Package org.bouncycastle.crypto.kems
Class RSAKeyEncapsulation
- java.lang.Object
-
- org.bouncycastle.crypto.kems.RSAKeyEncapsulation
-
- All Implemented Interfaces:
KeyEncapsulation
public class RSAKeyEncapsulation extends java.lang.Object implements KeyEncapsulation
The RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.
-
-
Constructor Summary
Constructors Constructor Description RSAKeyEncapsulation(DerivationFunction kdf, java.security.SecureRandom rnd)
Set up the RSA-KEM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CipherParameters
decrypt(byte[] in, int keyLen)
Decrypt an encapsulated session key.CipherParameters
decrypt(byte[] in, int inOff, int inLen, int keyLen)
Decrypt an encapsulated session key.CipherParameters
encrypt(byte[] out, int keyLen)
Generate and encapsulate a random session key.CipherParameters
encrypt(byte[] out, int outOff, int keyLen)
Generate and encapsulate a random session key.protected KeyParameter
generateKey(java.math.BigInteger n, java.math.BigInteger r, int keyLen)
void
init(CipherParameters key)
Initialise the RSA-KEM.
-
-
-
Constructor Detail
-
RSAKeyEncapsulation
public RSAKeyEncapsulation(DerivationFunction kdf, java.security.SecureRandom rnd)
Set up the RSA-KEM.- Parameters:
kdf
- the key derivation function to be used.rnd
- the random source for the session key.
-
-
Method Detail
-
init
public void init(CipherParameters key) throws java.lang.IllegalArgumentException
Initialise the RSA-KEM.- Specified by:
init
in interfaceKeyEncapsulation
- Parameters:
key
- the recipient's public (for encryption) or private (for decryption) key.- Throws:
java.lang.IllegalArgumentException
-
encrypt
public CipherParameters encrypt(byte[] out, int outOff, int keyLen) throws java.lang.IllegalArgumentException
Generate and encapsulate a random session key.- Specified by:
encrypt
in interfaceKeyEncapsulation
- Parameters:
out
- the output buffer for the encapsulated key.outOff
- the offset for the output buffer.keyLen
- the length of the random session key.- Returns:
- the random session key.
- Throws:
java.lang.IllegalArgumentException
-
encrypt
public CipherParameters encrypt(byte[] out, int keyLen)
Generate and encapsulate a random session key.- Parameters:
out
- the output buffer for the encapsulated key.keyLen
- the length of the random session key.- Returns:
- the random session key.
-
decrypt
public CipherParameters decrypt(byte[] in, int inOff, int inLen, int keyLen) throws java.lang.IllegalArgumentException
Decrypt an encapsulated session key.- Specified by:
decrypt
in interfaceKeyEncapsulation
- Parameters:
in
- the input buffer for the encapsulated key.inOff
- the offset for the input buffer.inLen
- the length of the encapsulated key.keyLen
- the length of the session key.- Returns:
- the session key.
- Throws:
java.lang.IllegalArgumentException
-
decrypt
public CipherParameters decrypt(byte[] in, int keyLen)
Decrypt an encapsulated session key.- Parameters:
in
- the input buffer for the encapsulated key.keyLen
- the length of the session key.- Returns:
- the session key.
-
generateKey
protected KeyParameter generateKey(java.math.BigInteger n, java.math.BigInteger r, int keyLen)
-
-