Top Fields Constructors Methods
org.bouncycastle.cms.jcajce

public abstract Class JceKEMRecipient

extends Object
implements KEMRecipient
Class Inheritance
All Implemented Interfaces
org.bouncycastle.cms.KEMRecipient, org.bouncycastle.cms.Recipient
Known Direct Subclasses
org.bouncycastle.cms.jcajce.JceKEMEnvelopedRecipient
Imports
java.security.Key, .PrivateKey, .Provider, java.util.HashMap, .Iterator, .Map, org.bouncycastle.asn1.ASN1ObjectIdentifier, org.bouncycastle.asn1.cms.KEMRecipientInfo, org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.cms.CMSException, .KEMRecipient, org.bouncycastle.operator.OperatorException

Field Summary

Modifier and TypeField and Description
protected EnvelopedDataHelper
protected Map<K, V>
protected EnvelopedDataHelper
private PrivateKey
protected boolean
protected boolean

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected Key
extractSecretKey(AlgorithmIdentifier keyEncryptionAlgorithm, AlgorithmIdentifier encryptedKeyAlgorithm, byte[] encryptedEncryptionKey)

public JceKEMRecipient

Returns:

the current Recipient.
setAlgorithmMapping
(ASN1ObjectIdentifier
OID of algorithm in recipient.
algorithm
,
String
JCE algorithm name to use.
algorithmName
)

Internally algorithm ids are converted into cipher names using a lookup table.

public JceKEMRecipient

Returns:

this recipient.
setContentProvider
(Provider
the provider to use.
provider
)

Set the provider to use for content processing.

public JceKEMRecipient

Returns:

this recipient.
setContentProvider
(String
the name of the provider to use.
providerName
)

Set the provider to use for content processing.

public JceKEMRecipient

Returns:

this recipient.
setKeySizeValidation
(boolean
true if unwrapped key's should be validated against the content encryption algorithm, false otherwise.
doValidate
)

Set validation of retrieved key sizes against the algorithm parameters for the encrypted key where possible - default is off.

public JceKEMRecipient

Returns:

this recipient.
setMustProduceEncodableUnwrappedKey
(boolean
true if getEncoded() should return key bytes, false if not necessary.
unwrappedKeyMustBeEncodable
)

Flag that unwrapping must produce a key that will return a meaningful value from a call to Key.getEncoded().

public JceKEMRecipient

Returns:

this recipient.
setProvider
(Provider
provider to use.
provider
)

Set the provider to use for key recovery and content processing.

public JceKEMRecipient

Returns:

this recipient.
setProvider
(String
the name of the provider to use.
providerName
)

Set the provider to use for key recovery and content processing.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

contentHelperback to summary
protected EnvelopedDataHelper contentHelper
extraMappingsback to summary
protected Map<K, V> extraMappings
helperback to summary
protected EnvelopedDataHelper helper
recipientKeyback to summary
private PrivateKey recipientKey
unwrappedKeyMustBeEncodableback to summary
protected boolean unwrappedKeyMustBeEncodable
validateKeySizeback to summary
protected boolean validateKeySize

Constructor Detail

JceKEMRecipientback to summary
public JceKEMRecipient(PrivateKey recipientKey)

Method Detail

extractSecretKeyback to summary
protected Key extractSecretKey(AlgorithmIdentifier keyEncryptionAlgorithm, AlgorithmIdentifier encryptedKeyAlgorithm, byte[] encryptedEncryptionKey) throws CMSException
setAlgorithmMappingback to summary
public JceKEMRecipient setAlgorithmMapping(ASN1ObjectIdentifier algorithm, String algorithmName)

Internally algorithm ids are converted into cipher names using a lookup table. For some providers the standard lookup table won't work. Use this method to establish a specific mapping from an algorithm identifier to a specific algorithm.

For example:

    unwrapper.setAlgorithmMapping(PKCSObjectIdentifiers.rsaEncryption, "RSA");
Parameters
algorithm:ASN1ObjectIdentifier

OID of algorithm in recipient.

algorithmName:String

JCE algorithm name to use.

Returns:JceKEMRecipient

the current Recipient.

setContentProviderback to summary
public JceKEMRecipient setContentProvider(Provider provider)

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:Provider

the provider to use.

Returns:JceKEMRecipient

this recipient.

setContentProviderback to summary
public JceKEMRecipient setContentProvider(String providerName)

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:String

the name of the provider to use.

Returns:JceKEMRecipient

this recipient.

setKeySizeValidationback to summary
public JceKEMRecipient setKeySizeValidation(boolean doValidate)

Set validation of retrieved key sizes against the algorithm parameters for the encrypted key where possible - default is off.

This setting will not have any affect if the encryption algorithm in the recipient does not specify a particular key size, or if the unwrapper is a HSM and the byte encoding of the unwrapped secret key is not available.

Parameters
doValidate:boolean

true if unwrapped key's should be validated against the content encryption algorithm, false otherwise.

Returns:JceKEMRecipient

this recipient.

setMustProduceEncodableUnwrappedKeyback to summary
public JceKEMRecipient setMustProduceEncodableUnwrappedKey(boolean unwrappedKeyMustBeEncodable)

Flag that unwrapping must produce a key that will return a meaningful value from a call to Key.getEncoded(). This is important if you are using a HSM for unwrapping and using a software based provider for decrypting the content. Default value: false.

Parameters
unwrappedKeyMustBeEncodable:boolean

true if getEncoded() should return key bytes, false if not necessary.

Returns:JceKEMRecipient

this recipient.

setProviderback to summary
public JceKEMRecipient setProvider(Provider provider)

Set the provider to use for key recovery and content processing.

Parameters
provider:Provider

provider to use.

Returns:JceKEMRecipient

this recipient.

setProviderback to summary
public JceKEMRecipient setProvider(String providerName)

Set the provider to use for key recovery and content processing.

Parameters
providerName:String

the name of the provider to use.

Returns:JceKEMRecipient

this recipient.