Bouncy Castle Cryptography 1.51

org.bouncycastle.crypto.kems
Class RSAKeyEncapsulation

java.lang.Object
  extended by 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
RSAKeyEncapsulation(DerivationFunction kdf, java.security.SecureRandom rnd)
          Set up the RSA-KEM.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 interface KeyEncapsulation
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 interface KeyEncapsulation
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 interface KeyEncapsulation
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)

Bouncy Castle Cryptography 1.51