Bouncy Castle Cryptography Library 1.81

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

java.lang.Object
  extended byjavax.crypto.KeyAgreementSpi
      extended byorg.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
          extended byorg.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


Nested 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
           
 
Field Summary
 
Fields inherited from class org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi
kdf, ukmParameters, ukmParametersSalt
 
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
Throws:
java.security.InvalidKeyException
java.lang.IllegalStateException

doInitFromKey

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

doCalcSecret

protected byte[] doCalcSecret()
Specified by:
doCalcSecret in class BaseAgreementSpi

Bouncy Castle Cryptography Library 1.81