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.KeyengineDoPhase(java.security.Key key, boolean lastPhase)protected byte[]engineGenerateSecret()protected intengineGenerateSecret(byte[] sharedSecret, int offset)protected javax.crypto.SecretKeyengineGenerateSecret(java.lang.String algorithm)protected voidengineInit(java.security.Key key, java.security.SecureRandom random)protected voidengineInit(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:
engineDoPhasein classjavax.crypto.KeyAgreementSpi- Throws:
java.security.InvalidKeyExceptionjava.lang.IllegalStateException
-
engineGenerateSecret
protected byte[] engineGenerateSecret() throws java.lang.IllegalStateException- Overrides:
engineGenerateSecretin classBaseAgreementSpi- Throws:
java.lang.IllegalStateException
-
engineGenerateSecret
protected int engineGenerateSecret(byte[] sharedSecret, int offset) throws java.lang.IllegalStateException, javax.crypto.ShortBufferException- Overrides:
engineGenerateSecretin classBaseAgreementSpi- Throws:
java.lang.IllegalStateExceptionjavax.crypto.ShortBufferException
-
engineGenerateSecret
protected javax.crypto.SecretKey engineGenerateSecret(java.lang.String algorithm) throws java.security.NoSuchAlgorithmException- Overrides:
engineGenerateSecretin 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:
engineInitin classjavax.crypto.KeyAgreementSpi- Throws:
java.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterException
-
engineInit
protected void engineInit(java.security.Key key, java.security.SecureRandom random) throws java.security.InvalidKeyException- Specified by:
engineInitin classjavax.crypto.KeyAgreementSpi- Throws:
java.security.InvalidKeyException
-
calcSecret
protected byte[] calcSecret()
- Specified by:
calcSecretin classBaseAgreementSpi
-
-