Package org.bouncycastle.crypto.kems
Class RSAKEMExtractor
- java.lang.Object
-
- org.bouncycastle.crypto.kems.RSAKEMExtractor
-
- All Implemented Interfaces:
EncapsulatedSecretExtractor
public class RSAKEMExtractor extends java.lang.Object implements EncapsulatedSecretExtractor
The RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.Decapsulation raises the caller-supplied encapsulation to the private exponent through
RSABlindedEngine, so the operation is blinded where the key permits it - a decapsulation oracle is attacker-driven, and an unblinded exponentiation exposes the private exponent to a remote timing attack. Blinding requires CRT key material carrying a public exponent (anRSAPrivateCrtKeyParameters); for a key holding only the private exponent the exponentiation is unblinded, as elsewhere in the provider.
-
-
Constructor Summary
Constructors Constructor Description RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf)Equivalent toRSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom)with aSecureRandomobtained fromCryptoServicesRegistrar.RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf, java.security.SecureRandom random)Set up the RSA-KEM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]extractSecret(byte[] encapsulation)Extract the secret based on the recipient private key.intgetEncapsulationLength()Return the length in bytes of the encapsulation.
-
-
-
Constructor Detail
-
RSAKEMExtractor
public RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf)
Equivalent toRSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom)with aSecureRandomobtained fromCryptoServicesRegistrar.- Parameters:
privKey- the decryption key.keyLen- length in bytes of key to generate.kdf- the key derivation function to be used.
-
RSAKEMExtractor
public RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf, java.security.SecureRandom random)
Set up the RSA-KEM.- Parameters:
privKey- the decryption key.keyLen- length in bytes of key to generate.kdf- the key derivation function to be used.random- source of randomness for the decapsulation blinding factor; must not benull- useRSAKEMExtractor(RSAKeyParameters, int, DerivationFunction)for theCryptoServicesRegistrardefault.
-
-
Method Detail
-
extractSecret
public byte[] extractSecret(byte[] encapsulation)
Description copied from interface:EncapsulatedSecretExtractorExtract the secret based on the recipient private key.- Specified by:
extractSecretin interfaceEncapsulatedSecretExtractor- Parameters:
encapsulation- the encapsulated secret.
-
getEncapsulationLength
public int getEncapsulationLength()
Description copied from interface:EncapsulatedSecretExtractorReturn the length in bytes of the encapsulation.- Specified by:
getEncapsulationLengthin interfaceEncapsulatedSecretExtractor- Returns:
- length in bytes of an encapsulation for this parameter set.
-
-