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.
| Modifier and Type | Field and Description |
|---|---|
| private DHParameters | |
| private DHPrivateKeyParameters | |
| private static final BigInteger | |
| private BigInteger | |
| private SecureRandom |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public BigInteger | calculateAgreement(DHPublicKeyParameters pub, BigInteger message)
given a message from a given party and the corresponding public key, calculate the next message in the agreement sequence. |
| public BigInteger | |
| public void |
| dhParams | back to summary |
|---|---|
| private DHParameters dhParams | |
| key | back to summary |
|---|---|
| private DHPrivateKeyParameters key | |
| ONE | back to summary |
|---|---|
| private static final BigInteger ONE | |
| privateValue | back to summary |
|---|---|
| private BigInteger privateValue | |
| random | back to summary |
|---|---|
| private SecureRandom random | |
| DHAgreement | back to summary |
|---|---|
| public DHAgreement() | |
| calculateAgreement | back to summary |
|---|---|
| public BigInteger calculateAgreement(DHPublicKeyParameters pub, 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. | |
| calculateMessage | back to summary |
|---|---|
| public BigInteger calculateMessage() calculate our initial message. | |
| init | back to summary |
|---|---|
| public void init(CipherParameters param) | |