Bouncy Castle Cryptography Library 1.86

org.bouncycastle.crypto.kems
Class RSAKEMExtractor

java.lang.Object
  extended byorg.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 (an RSAPrivateCrtKeyParameters); for a key holding only the private exponent the exponentiation is unblinded, as elsewhere in the provider.


Constructor Summary
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.
 
Method Summary
 byte[] extractSecret(byte[] encapsulation)
          Extract the secret based on the recipient private key.
 int getEncapsulationLength()
          Return the length in bytes of the encapsulation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RSAKEMExtractor

public RSAKEMExtractor(RSAKeyParameters privKey,
                       int keyLen,
                       DerivationFunction kdf)
Equivalent to RSAKEMExtractor(RSAKeyParameters, int, DerivationFunction, SecureRandom) with a SecureRandom obtained from CryptoServicesRegistrar.

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 be - use RSAKEMExtractor(RSAKeyParameters, int, DerivationFunction) for the CryptoServicesRegistrar default.
Method Detail

extractSecret

public byte[] extractSecret(byte[] encapsulation)
Description copied from interface: EncapsulatedSecretExtractor
Extract the secret based on the recipient private key.

Specified by:
extractSecret in interface EncapsulatedSecretExtractor
Parameters:
encapsulation - the encapsulated secret.

getEncapsulationLength

public int getEncapsulationLength()
Description copied from interface: EncapsulatedSecretExtractor
Return the length in bytes of the encapsulation.

Specified by:
getEncapsulationLength in interface EncapsulatedSecretExtractor
Returns:
length in bytes of an encapsulation for this parameter set.

Bouncy Castle Cryptography Library 1.86