Class RSAKEMExtractor
java.lang.Object
org.bouncycastle.crypto.kems.RSAKEMExtractor
- All Implemented Interfaces:
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 (an RSAPrivateCrtKeyParameters);
for a key holding only the private exponent the exponentiation is unblinded, as elsewhere
in the provider.
-
Constructor Summary
ConstructorsConstructorDescriptionRSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf) Equivalent toRSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom)with aSecureRandomobtained fromCryptoServicesRegistrar.RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf, SecureRandom random) Set up the RSA-KEM. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]extractSecret(byte[] encapsulation) Extract the secret based on the recipient private key.intReturn the length in bytes of the encapsulation.
-
Constructor Details
-
RSAKEMExtractor
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, 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 Details
-
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.
-