Class JceKeyAgreeRecipient
java.lang.Object
org.bouncycastle.cms.AbstractRecipient
org.bouncycastle.cms.AbstractKeyAgreeRecipient
org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient
- All Implemented Interfaces:
KeyAgreeRecipient, Recipient
- Direct Known Subclasses:
JceKeyAgreeAuthenticatedRecipient, JceKeyAgreeAuthEnvelopedRecipient, JceKeyAgreeEnvelopedRecipient
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EnvelopedDataHelperprotected EnvelopedDataHelperprotected EnvelopedDataHelper -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected KeyextractSecretKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm, org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm, org.bouncycastle.asn1.x509.SubjectPublicKeyInfo senderKey, org.bouncycastle.asn1.ASN1OctetString userKeyingMaterial, byte[] encryptedContentEncryptionKey) org.bouncycastle.asn1.x509.AlgorithmIdentifiersetAllowedContentAlgorithms(Set<org.bouncycastle.asn1.ASN1ObjectIdentifier> allowedContentAlgorithms) Set the content-encryption algorithms this recipient is willing to unwrap a key for.setContentProvider(String providerName) Set the provider to use for content processing.setContentProvider(Provider provider) Set the provider to use for content processing.setMinimumTagSize(int tagSizeInBits) Set the minimum AEAD authentication tag size (in bits) this recipient will accept.setPrivateKeyAlgorithmIdentifier(org.bouncycastle.asn1.x509.AlgorithmIdentifier privKeyAlgID) Set the algorithm identifier for the private key.setProvider(String providerName) Set the provider to use for key recovery and content processing.setProvider(Provider provider) Set the provider to use for key recovery and content processing.setUnwrappingProvider(String providerName) Set the provider to use for unwrapping the content session key.setUnwrappingProvider(Provider provider) Set the provider to use for unwrapping the content session key.protected KeyunwrapSessionKey(org.bouncycastle.asn1.ASN1ObjectIdentifier wrapAlg, SecretKey agreedKey, org.bouncycastle.asn1.ASN1ObjectIdentifier contentEncryptionAlgorithm, byte[] encryptedContentEncryptionKey) Methods inherited from class AbstractKeyAgreeRecipient
isEC, isGOST, isMQV, isRFC2631Methods inherited from class AbstractRecipient
checkTagSize, isContentAlgorithmAllowed, setAllowedContentAlgorithmSet, setMinimumTagSizeInBitsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface KeyAgreeRecipient
getRecipientOperator
-
Field Details
-
helper
-
contentHelper
-
unwrappingHelper
-
-
Constructor Details
-
JceKeyAgreeRecipient
-
-
Method Details
-
setProvider
Set the provider to use for key recovery and content processing.- Parameters:
provider- provider to use.- Returns:
- this recipient.
-
setProvider
Set the provider to use for key recovery and content processing.- Parameters:
providerName- the name of the provider to use.- Returns:
- this recipient.
-
setUnwrappingProvider
Set the provider to use for unwrapping the content session key.- Parameters:
provider- provider to use.- Returns:
- this recipient.
-
setUnwrappingProvider
Set the provider to use for unwrapping the content session key.- Parameters:
providerName- the name of the provider to use.- Returns:
- this recipient.
-
setContentProvider
Set the provider to use for content processing. If providerName is null a "no provider" search will be used to satisfy getInstance calls.- Parameters:
provider- the provider to use.- Returns:
- this recipient.
-
setContentProvider
Set the provider to use for content processing. If providerName is null a "no provider" search will be used to satisfy getInstance calls.- Parameters:
providerName- the name of the provider to use.- Returns:
- this recipient.
-
setPrivateKeyAlgorithmIdentifier
public JceKeyAgreeRecipient setPrivateKeyAlgorithmIdentifier(org.bouncycastle.asn1.x509.AlgorithmIdentifier privKeyAlgID) Set the algorithm identifier for the private key. You'll want to use this if you are dealing with a HSM and it is not possible to get the encoding of the private key.- Parameters:
privKeyAlgID- the algorithm identifier for the private key.- Returns:
- this recipient.
-
setAllowedContentAlgorithms
public JceKeyAgreeRecipient setAllowedContentAlgorithms(Set<org.bouncycastle.asn1.ASN1ObjectIdentifier> allowedContentAlgorithms) Set the content-encryption algorithms this recipient is willing to unwrap a key for. When set, an attempt to recover content protected under any other algorithm is rejected, mitigating an attacker substituting a weaker content-encryption algorithm into the recipient info.- Parameters:
allowedContentAlgorithms- the set of permitted content-encryption algorithm OIDs.- Returns:
- this recipient.
-
setMinimumTagSize
Set the minimum AEAD authentication tag size (in bits) this recipient will accept. When set, an attempt to recover AuthEnvelopedData whose content algorithm carries a shorter tag is rejected, mitigating an attacker downgrading the tag to a weaker length.- Parameters:
tagSizeInBits- the minimum acceptable AEAD tag size, in bits.- Returns:
- this recipient.
-
unwrapSessionKey
protected Key unwrapSessionKey(org.bouncycastle.asn1.ASN1ObjectIdentifier wrapAlg, SecretKey agreedKey, org.bouncycastle.asn1.ASN1ObjectIdentifier contentEncryptionAlgorithm, byte[] encryptedContentEncryptionKey) throws CMSException, InvalidKeyException, NoSuchAlgorithmException -
extractSecretKey
protected Key extractSecretKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm, org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm, org.bouncycastle.asn1.x509.SubjectPublicKeyInfo senderKey, org.bouncycastle.asn1.ASN1OctetString userKeyingMaterial, byte[] encryptedContentEncryptionKey) throws CMSException - Throws:
CMSException
-
getPrivateKeyAlgorithmIdentifier
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getPrivateKeyAlgorithmIdentifier()
-