Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.crypto.agreement
Class DHAgreement

    java.lang.Object
      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 corresponding 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 corresponding public key, calculate the next message in the agreement sequence. In this case this will represent the shared secret.

Bouncy Castle Cryptography Library 1.45