Class KeyAgreementSpi
- java.lang.Object
-
- javax.crypto.KeyAgreementSpi
-
- org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
-
- org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi
-
- Direct Known Subclasses:
KeyAgreementSpi.DHUwithSHA1CKDF
,KeyAgreementSpi.DHUwithSHA1KDF
,KeyAgreementSpi.DHUwithSHA224CKDF
,KeyAgreementSpi.DHUwithSHA224KDF
,KeyAgreementSpi.DHUwithSHA256CKDF
,KeyAgreementSpi.DHUwithSHA256KDF
,KeyAgreementSpi.DHUwithSHA384CKDF
,KeyAgreementSpi.DHUwithSHA384KDF
,KeyAgreementSpi.DHUwithSHA512CKDF
,KeyAgreementSpi.DHUwithSHA512KDF
,KeyAgreementSpi.DHwithRFC2631KDF
,KeyAgreementSpi.DHwithSHA1CKDF
,KeyAgreementSpi.DHwithSHA1KDF
,KeyAgreementSpi.DHwithSHA224CKDF
,KeyAgreementSpi.DHwithSHA224KDF
,KeyAgreementSpi.DHwithSHA256CKDF
,KeyAgreementSpi.DHwithSHA256KDF
,KeyAgreementSpi.DHwithSHA384CKDF
,KeyAgreementSpi.DHwithSHA384KDF
,KeyAgreementSpi.DHwithSHA512CKDF
,KeyAgreementSpi.DHwithSHA512KDF
,KeyAgreementSpi.MQVwithSHA1CKDF
,KeyAgreementSpi.MQVwithSHA1KDF
,KeyAgreementSpi.MQVwithSHA224CKDF
,KeyAgreementSpi.MQVwithSHA224KDF
,KeyAgreementSpi.MQVwithSHA256CKDF
,KeyAgreementSpi.MQVwithSHA256KDF
,KeyAgreementSpi.MQVwithSHA384CKDF
,KeyAgreementSpi.MQVwithSHA384KDF
,KeyAgreementSpi.MQVwithSHA512CKDF
,KeyAgreementSpi.MQVwithSHA512KDF
public class KeyAgreementSpi extends BaseAgreementSpi
Diffie-Hellman key agreement. There's actually a better way of doing this if you are using long term public keys, see the light-weight version for details.
-
-
Nested Class Summary
-
Field Summary
-
Fields inherited from class org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
kaAlgorithm, kdf, ukmParameters
-
-
Constructor Summary
Constructors Constructor Description KeyAgreementSpi()
KeyAgreementSpi(java.lang.String kaAlgorithm, DHUnifiedAgreement unifiedAgreement, DerivationFunction kdf)
KeyAgreementSpi(java.lang.String kaAlgorithm, BasicAgreement mqvAgreement, DerivationFunction kdf)
KeyAgreementSpi(java.lang.String kaAlgorithm, DerivationFunction kdf)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]
bigIntToBytes(java.math.BigInteger r)
protected byte[]
calcSecret()
protected java.security.Key
engineDoPhase(java.security.Key key, boolean lastPhase)
protected byte[]
engineGenerateSecret()
protected int
engineGenerateSecret(byte[] sharedSecret, int offset)
protected javax.crypto.SecretKey
engineGenerateSecret(java.lang.String algorithm)
protected void
engineInit(java.security.Key key, java.security.SecureRandom random)
protected void
engineInit(java.security.Key key, java.security.spec.AlgorithmParameterSpec params, java.security.SecureRandom random)
-
Methods inherited from class org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
getAlgorithm, getKeySize, trimZeroes
-
-
-
-
Constructor Detail
-
KeyAgreementSpi
public KeyAgreementSpi()
-
KeyAgreementSpi
public KeyAgreementSpi(java.lang.String kaAlgorithm, DerivationFunction kdf)
-
KeyAgreementSpi
public KeyAgreementSpi(java.lang.String kaAlgorithm, DHUnifiedAgreement unifiedAgreement, DerivationFunction kdf)
-
KeyAgreementSpi
public KeyAgreementSpi(java.lang.String kaAlgorithm, BasicAgreement mqvAgreement, DerivationFunction kdf)
-
-
Method Detail
-
bigIntToBytes
protected byte[] bigIntToBytes(java.math.BigInteger r)
-
engineDoPhase
protected java.security.Key engineDoPhase(java.security.Key key, boolean lastPhase) throws java.security.InvalidKeyException, java.lang.IllegalStateException
- Specified by:
engineDoPhase
in classjavax.crypto.KeyAgreementSpi
- Throws:
java.security.InvalidKeyException
java.lang.IllegalStateException
-
engineGenerateSecret
protected byte[] engineGenerateSecret() throws java.lang.IllegalStateException
- Overrides:
engineGenerateSecret
in classBaseAgreementSpi
- Throws:
java.lang.IllegalStateException
-
engineGenerateSecret
protected int engineGenerateSecret(byte[] sharedSecret, int offset) throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
- Overrides:
engineGenerateSecret
in classBaseAgreementSpi
- Throws:
java.lang.IllegalStateException
javax.crypto.ShortBufferException
-
engineGenerateSecret
protected javax.crypto.SecretKey engineGenerateSecret(java.lang.String algorithm) throws java.security.NoSuchAlgorithmException
- Overrides:
engineGenerateSecret
in classBaseAgreementSpi
- Throws:
java.security.NoSuchAlgorithmException
-
engineInit
protected void engineInit(java.security.Key key, java.security.spec.AlgorithmParameterSpec params, java.security.SecureRandom random) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
- Specified by:
engineInit
in classjavax.crypto.KeyAgreementSpi
- Throws:
java.security.InvalidKeyException
java.security.InvalidAlgorithmParameterException
-
engineInit
protected void engineInit(java.security.Key key, java.security.SecureRandom random) throws java.security.InvalidKeyException
- Specified by:
engineInit
in classjavax.crypto.KeyAgreementSpi
- Throws:
java.security.InvalidKeyException
-
calcSecret
protected byte[] calcSecret()
- Specified by:
calcSecret
in classBaseAgreementSpi
-
-