Bouncy Castle Cryptography Library 1.37

org.bouncycastle.crypto.agreement
Class DHAgreement

java.lang.Object
  extended by org.bouncycastle.crypto.agreement.DHAgreement

public class DHAgreement
extends java.lang.Object

a Diffie-Hellman key exchange engine.

note: This uses MTI/A0 key agreement in order to make the key agreement secure against passive attacks. If you're doing Diffie-Hellman and both parties have long term public keys you should look at using this. For further information have a look at RFC 2631.

It's possible to extend this to more than two parties as well, for the moment that is left as an exercise for the reader.


Constructor Summary
DHAgreement()
           
 
Method Summary
 java.math.BigInteger calculateAgreement(DHPublicKeyParameters pub, java.math.BigInteger message)
          given a message from a given party and the coresponding public key calculate the next message in the agreement sequence.
 java.math.BigInteger calculateMessage()
          calculate our initial message.
 void init(CipherParameters param)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DHAgreement

public DHAgreement()
Method Detail

init

public void init(CipherParameters param)

calculateMessage

public java.math.BigInteger calculateMessage()
calculate our initial message.


calculateAgreement

public java.math.BigInteger calculateAgreement(DHPublicKeyParameters pub,
                                               java.math.BigInteger message)
given a message from a given party and the coresponding public key calculate the next message in the agreement sequence. In this case this will represent the shared secret.


Bouncy Castle Cryptography Library 1.37