Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.jcajce.provider.asymmetric.ec
Class KeyAgreementSpi

java.lang.Object
  |
  +--javax.crypto.KeyAgreementSpi
        |
        +--org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
              |
              +--org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi
Direct Known Subclasses:
KeyAgreementSpi.CDHwithSHA1KDFAndSharedInfo, KeyAgreementSpi.CDHwithSHA224KDFAndSharedInfo, KeyAgreementSpi.CDHwithSHA256KDFAndSharedInfo, KeyAgreementSpi.CDHwithSHA384KDFAndSharedInfo, KeyAgreementSpi.CDHwithSHA512KDFAndSharedInfo, KeyAgreementSpi.DH, KeyAgreementSpi.DHC, KeyAgreementSpi.DHUC, KeyAgreementSpi.DHUwithSHA1CKDF, KeyAgreementSpi.DHUwithSHA1KDF, KeyAgreementSpi.DHUwithSHA224CKDF, KeyAgreementSpi.DHUwithSHA224KDF, KeyAgreementSpi.DHUwithSHA256CKDF, KeyAgreementSpi.DHUwithSHA256KDF, KeyAgreementSpi.DHUwithSHA384CKDF, KeyAgreementSpi.DHUwithSHA384KDF, KeyAgreementSpi.DHUwithSHA512CKDF, KeyAgreementSpi.DHUwithSHA512KDF, KeyAgreementSpi.DHwithSHA1CKDF, KeyAgreementSpi.DHwithSHA1KDF, KeyAgreementSpi.DHwithSHA1KDFAndSharedInfo, KeyAgreementSpi.DHwithSHA224KDFAndSharedInfo, KeyAgreementSpi.DHwithSHA256CKDF, KeyAgreementSpi.DHwithSHA256KDFAndSharedInfo, KeyAgreementSpi.DHwithSHA384CKDF, KeyAgreementSpi.DHwithSHA384KDFAndSharedInfo, KeyAgreementSpi.DHwithSHA512CKDF, KeyAgreementSpi.DHwithSHA512KDFAndSharedInfo, KeyAgreementSpi.ECKAEGwithRIPEMD160KDF, KeyAgreementSpi.ECKAEGwithSHA1KDF, KeyAgreementSpi.ECKAEGwithSHA224KDF, KeyAgreementSpi.ECKAEGwithSHA256KDF, KeyAgreementSpi.ECKAEGwithSHA384KDF, KeyAgreementSpi.ECKAEGwithSHA512KDF, KeyAgreementSpi.MQV, KeyAgreementSpi.MQVwithSHA1CKDF, KeyAgreementSpi.MQVwithSHA1KDF, KeyAgreementSpi.MQVwithSHA1KDFAndSharedInfo, KeyAgreementSpi.MQVwithSHA224CKDF, KeyAgreementSpi.MQVwithSHA224KDF, KeyAgreementSpi.MQVwithSHA224KDFAndSharedInfo, KeyAgreementSpi.MQVwithSHA256CKDF, KeyAgreementSpi.MQVwithSHA256KDF, KeyAgreementSpi.MQVwithSHA256KDFAndSharedInfo, KeyAgreementSpi.MQVwithSHA384CKDF, KeyAgreementSpi.MQVwithSHA384KDF, KeyAgreementSpi.MQVwithSHA384KDFAndSharedInfo, KeyAgreementSpi.MQVwithSHA512CKDF, KeyAgreementSpi.MQVwithSHA512KDF, KeyAgreementSpi.MQVwithSHA512KDFAndSharedInfo

public class KeyAgreementSpi
extends BaseAgreementSpi

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


Inner Class Summary
static class KeyAgreementSpi.CDHwithSHA1KDFAndSharedInfo
           
static class KeyAgreementSpi.CDHwithSHA224KDFAndSharedInfo
           
static class KeyAgreementSpi.CDHwithSHA256KDFAndSharedInfo
           
static class KeyAgreementSpi.CDHwithSHA384KDFAndSharedInfo
           
static class KeyAgreementSpi.CDHwithSHA512KDFAndSharedInfo
           
static class KeyAgreementSpi.DH
           
static class KeyAgreementSpi.DHC
           
static class KeyAgreementSpi.DHUC
           
static class KeyAgreementSpi.DHUwithSHA1CKDF
           
static class KeyAgreementSpi.DHUwithSHA1KDF
           
static class KeyAgreementSpi.DHUwithSHA224CKDF
           
static class KeyAgreementSpi.DHUwithSHA224KDF
           
static class KeyAgreementSpi.DHUwithSHA256CKDF
           
static class KeyAgreementSpi.DHUwithSHA256KDF
           
static class KeyAgreementSpi.DHUwithSHA384CKDF
           
static class KeyAgreementSpi.DHUwithSHA384KDF
           
static class KeyAgreementSpi.DHUwithSHA512CKDF
           
static class KeyAgreementSpi.DHUwithSHA512KDF
           
static class KeyAgreementSpi.DHwithSHA1CKDF
           
static class KeyAgreementSpi.DHwithSHA1KDF
           
static class KeyAgreementSpi.DHwithSHA1KDFAndSharedInfo
           
static class KeyAgreementSpi.DHwithSHA224KDFAndSharedInfo
           
static class KeyAgreementSpi.DHwithSHA256CKDF
           
static class KeyAgreementSpi.DHwithSHA256KDFAndSharedInfo
           
static class KeyAgreementSpi.DHwithSHA384CKDF
           
static class KeyAgreementSpi.DHwithSHA384KDFAndSharedInfo
           
static class KeyAgreementSpi.DHwithSHA512CKDF
           
static class KeyAgreementSpi.DHwithSHA512KDFAndSharedInfo
           
static class KeyAgreementSpi.ECKAEGwithRIPEMD160KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.ECKAEGwithSHA1KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.ECKAEGwithSHA224KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.ECKAEGwithSHA256KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.ECKAEGwithSHA384KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.ECKAEGwithSHA512KDF
          KeyAgreement according to BSI TR-03111 chapter 4.3.1
static class KeyAgreementSpi.MQV
           
static class KeyAgreementSpi.MQVwithSHA1CKDF
           
static class KeyAgreementSpi.MQVwithSHA1KDF
           
static class KeyAgreementSpi.MQVwithSHA1KDFAndSharedInfo
           
static class KeyAgreementSpi.MQVwithSHA224CKDF
           
static class KeyAgreementSpi.MQVwithSHA224KDF
           
static class KeyAgreementSpi.MQVwithSHA224KDFAndSharedInfo
           
static class KeyAgreementSpi.MQVwithSHA256CKDF
           
static class KeyAgreementSpi.MQVwithSHA256KDF
           
static class KeyAgreementSpi.MQVwithSHA256KDFAndSharedInfo
           
static class KeyAgreementSpi.MQVwithSHA384CKDF
           
static class KeyAgreementSpi.MQVwithSHA384KDF
           
static class KeyAgreementSpi.MQVwithSHA384KDFAndSharedInfo
           
static class KeyAgreementSpi.MQVwithSHA512CKDF
           
static class KeyAgreementSpi.MQVwithSHA512KDF
           
static class KeyAgreementSpi.MQVwithSHA512KDFAndSharedInfo
           
 
Fields inherited from class org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
kaAlgorithm, kdf, ukmParameters
 
Constructor Summary
protected KeyAgreementSpi(java.lang.String kaAlgorithm, BasicAgreement agreement, DerivationFunction kdf)
           
protected KeyAgreementSpi(java.lang.String kaAlgorithm, ECDHCUnifiedAgreement agreement, DerivationFunction kdf)
           
 
Method Summary
protected  byte[] bigIntToBytes(java.math.BigInteger r)
           
protected  byte[] doCalcSecret()
           
protected  void doInitFromKey(java.security.Key key, java.security.spec.AlgorithmParameterSpec parameterSpec, java.security.SecureRandom random)
           
protected  java.security.Key engineDoPhase(java.security.Key key, boolean lastPhase)
           
 
Methods inherited from class org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
engineGenerateSecret, engineGenerateSecret, engineGenerateSecret, engineInit, engineInit, getAlgorithm, getKeySize, trimZeroes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyAgreementSpi

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

KeyAgreementSpi

protected KeyAgreementSpi(java.lang.String kaAlgorithm,
                          ECDHCUnifiedAgreement agreement,
                          DerivationFunction kdf)
Method Detail

bigIntToBytes

protected 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
Overrides:
engineDoPhase in class javax.crypto.KeyAgreementSpi

doInitFromKey

protected void doInitFromKey(java.security.Key key,
                             java.security.spec.AlgorithmParameterSpec parameterSpec,
                             java.security.SecureRandom random)
                      throws java.security.InvalidKeyException,
                             java.security.InvalidAlgorithmParameterException
Overrides:
doInitFromKey in class BaseAgreementSpi

doCalcSecret

protected byte[] doCalcSecret()
Overrides:
doCalcSecret in class BaseAgreementSpi

Bouncy Castle Cryptography Library 1.77.0