Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.jce.provider.asymmetric.ec
Class KeyAgreement

    java.lang.Object
      javax.crypto.KeyAgreementSpi
          org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement

Direct Known Subclasses:
  KeyAgreement.DH, KeyAgreement.DHC, KeyAgreement.DHwithSHA1KDF, KeyAgreement.MQV, KeyAgreement.MQVwithSHA1KDF

    public class KeyAgreement

extends javax.crypto.KeyAgreementSpi

Diffie-Hellman key agreement using elliptic curve keys, ala IEEE P1363 both the simple one, and the simple one with cofactors are supported. Also, MQV key agreement per SEC-1

Nested Class Summary
`static class` `KeyAgreement.DH`
`static class` `KeyAgreement.DHC`
`static class` `KeyAgreement.DHwithSHA1KDF`
`static class` `KeyAgreement.MQV`
`static class` `KeyAgreement.MQVwithSHA1KDF`

Constructor Summary
`protected` `KeyAgreement(java.lang.String kaAlgorithm, BasicAgreement agreement, DerivationFunction kdf)`

Method Summary
`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`

Constructor Detail

### KeyAgreement

    protected KeyAgreement(java.lang.String kaAlgorithm,
                           BasicAgreement agreement,
                           DerivationFunction kdf)

Method Detail

### 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)
                                                   throws java.security.NoSuchAlgorithmException

  Specified by:
    `engineGenerateSecret` in class `javax.crypto.KeyAgreementSpi`
  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:
    `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`

Bouncy Castle Cryptography Library 1.45