org.bouncycastle.jce.provider
Class JCEDHKeyAgreement
java.lang.Object
javax.crypto.KeyAgreementSpi
org.bouncycastle.jce.provider.JCEDHKeyAgreement
public class JCEDHKeyAgreement
- extends javax.crypto.KeyAgreementSpi
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.
Field Summary |
private static java.util.Hashtable |
algorithms
|
private java.math.BigInteger |
g
|
private java.math.BigInteger |
p
|
private java.security.SecureRandom |
random
|
private java.math.BigInteger |
result
|
private java.math.BigInteger |
x
|
Method Summary |
private byte[] |
bigIntToBytes(java.math.BigInteger r)
|
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.spec.AlgorithmParameterSpec params,
java.security.SecureRandom random)
|
protected void |
engineInit(java.security.Key key,
java.security.SecureRandom random)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
x
private java.math.BigInteger x
p
private java.math.BigInteger p
g
private java.math.BigInteger g
result
private java.math.BigInteger result
random
private java.security.SecureRandom random
algorithms
private static final java.util.Hashtable algorithms
JCEDHKeyAgreement
public JCEDHKeyAgreement()
bigIntToBytes
private 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 class javax.crypto.KeyAgreementSpi
- Throws:
java.security.InvalidKeyException
java.lang.IllegalStateException
engineGenerateSecret
protected byte[] engineGenerateSecret()
throws java.lang.IllegalStateException
- Specified by:
engineGenerateSecret
in class javax.crypto.KeyAgreementSpi
- Throws:
java.lang.IllegalStateException
engineGenerateSecret
protected int engineGenerateSecret(byte[] sharedSecret,
int offset)
throws java.lang.IllegalStateException,
javax.crypto.ShortBufferException
- Specified by:
engineGenerateSecret
in class javax.crypto.KeyAgreementSpi
- Throws:
java.lang.IllegalStateException
javax.crypto.ShortBufferException
engineGenerateSecret
protected javax.crypto.SecretKey engineGenerateSecret(java.lang.String algorithm)
- Specified by:
engineGenerateSecret
in class javax.crypto.KeyAgreementSpi
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 class javax.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 class javax.crypto.KeyAgreementSpi
- Throws:
java.security.InvalidKeyException