Top Description Inners Fields Constructors Methods
org.bouncycastle.jcajce.provider.asymmetric.ec

public Class KeyAgreementSpi

extends BaseAgreementSpi
Class Inheritance
Known Direct Subclasses
org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DH, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHC, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQV, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUC, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA1KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA1KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.CDHwithSHA1KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA224KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.CDHwithSHA224KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA256KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.CDHwithSHA256KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA384KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.CDHwithSHA384KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA512KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.CDHwithSHA512KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA1KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA224KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA256KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA384KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA512KDFAndSharedInfo, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA1CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA256CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA384CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHwithSHA512CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA1CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA224CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA256CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA384CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA512CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA1KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA224KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA256KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA384KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.MQVwithSHA512KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA1CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA224CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA256CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA384CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA512CKDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA1KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA224KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA256KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA384KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.DHUwithSHA512KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithSHA1KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithRIPEMD160KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithSHA224KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithSHA256KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithSHA384KDF, org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi.ECKAEGwithSHA512KDF
Imports
java.math.BigInteger, java.security.InvalidAlgorithmParameterException, .InvalidKeyException, .Key, .PrivateKey, .PublicKey, .SecureRandom, java.security.spec.AlgorithmParameterSpec, org.bouncycastle.asn1.x9.X9IntegerConverter, org.bouncycastle.crypto.BasicAgreement, .CipherParameters, .DerivationFunction, org.bouncycastle.crypto.agreement.ECDHBasicAgreement, .ECDHCBasicAgreement, .ECDHCUnifiedAgreement, .ECMQVBasicAgreement, org.bouncycastle.crypto.agreement.kdf.ConcatenationKDFGenerator, org.bouncycastle.crypto.digests.RIPEMD160Digest, org.bouncycastle.crypto.generators.KDF2BytesGenerator, org.bouncycastle.crypto.params.ECDHUPrivateParameters, .ECDHUPublicParameters, .ECDomainParameters, .ECPrivateKeyParameters, .ECPublicKeyParameters, .MQVPrivateParameters, .MQVPublicParameters, org.bouncycastle.crypto.util.DigestFactory, org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi, org.bouncycastle.jcajce.spec.DHUParameterSpec, .MQVParameterSpec, .UserKeyingMaterialSpec, org.bouncycastle.jce.interfaces.ECPrivateKey, .ECPublicKey, .MQVPrivateKey, .MQVPublicKey, org.bouncycastle.util.Arrays

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 and Inner Type Summary

Modifier and TypeClass and Description
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
KeyAgreementSpi.ECKAEGwithRIPEMD160KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
KeyAgreementSpi.ECKAEGwithSHA1KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
KeyAgreementSpi.ECKAEGwithSHA224KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
KeyAgreementSpi.ECKAEGwithSHA256KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
KeyAgreementSpi.ECKAEGwithSHA384KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
KeyAgreementSpi.ECKAEGwithSHA512KDF

KeyAgreement according to BSI TR-03111 chapter 4.3.1

public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class

Field Summary

Modifier and TypeField and Description
private Object
private static final X9IntegerConverter
private DHUParameterSpec
private String
private MQVParameterSpec
private ECDomainParameters
private byte[]
Inherited from org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi:
kdfukmParametersukmParametersSalt

Constructor Summary

AccessConstructor and Description
protected
protected

Method Summary

Modifier and TypeMethod and Description
protected byte[]
protected byte[]
protected void
protected Key
engineDoPhase(Key
the key for this phase. For example, in the case of Diffie-Hellman between 2 parties, this would be the other party's Diffie-Hellman public key.
key
,
boolean
flag which indicates whether this is the last phase of this key agreement.
lastPhase
)

Implements abstract javax.crypto.KeyAgreementSpi.engineDoPhase.

Executes the next phase of this key agreement with the given key that was received from one of the other parties involved in this key agreement.

private static String
getSimpleName(Class<T> clazz)

Inherited from org.bouncycastle.jcajce.provider.asymmetric.util.BaseAgreementSpi:
engineGenerateSecretengineGenerateSecretengineGenerateSecretengineInitengineInitgetAlgorithmgetKeySizetrimZeroes