public class RSAKEMExtractor extends java.lang.Object implements EncapsulatedSecretExtractor
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 and Description |
|---|
RSAKEMExtractor(RSAKeyParameters privKey,
int keyLen,
DerivationFunction kdf)
Equivalent to
RSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom)
with a SecureRandom obtained from CryptoServicesRegistrar. |
RSAKEMExtractor(RSAKeyParameters privKey,
int keyLen,
DerivationFunction kdf,
java.security.SecureRandom random)
Set up the RSA-KEM.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
extractSecret(byte[] encapsulation)
Extract the secret based on the recipient private key.
|
int |
getEncapsulationLength()
Return the length in bytes of the encapsulation.
|
public RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf)
RSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom)
with a SecureRandom obtained from CryptoServicesRegistrar.privKey - the decryption key.keyLen - length in bytes of key to generate.kdf - the key derivation function to be used.public RSAKEMExtractor(RSAKeyParameters privKey, int keyLen, DerivationFunction kdf, java.security.SecureRandom random)
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 be
null - use RSAKEMExtractor(RSAKeyParameters, int, DerivationFunction)
for the CryptoServicesRegistrar default.public byte[] extractSecret(byte[] encapsulation)
EncapsulatedSecretExtractorextractSecret in interface EncapsulatedSecretExtractorencapsulation - the encapsulated secret.public int getEncapsulationLength()
EncapsulatedSecretExtractorgetEncapsulationLength in interface EncapsulatedSecretExtractor