Bouncy Castle Cryptography 1.51

org.bouncycastle.crypto.kems
Class ECIESKeyEncapsulation

java.lang.Object
  extended by org.bouncycastle.crypto.kems.ECIESKeyEncapsulation
All Implemented Interfaces:
KeyEncapsulation

public class ECIESKeyEncapsulation
extends java.lang.Object
implements KeyEncapsulation

The ECIES Key Encapsulation Mechanism (ECIES-KEM) from ISO 18033-2.


Constructor Summary
ECIESKeyEncapsulation(DerivationFunction kdf, java.security.SecureRandom rnd)
          Set up the ECIES-KEM.
ECIESKeyEncapsulation(DerivationFunction kdf, java.security.SecureRandom rnd, boolean cofactorMode, boolean oldCofactorMode, boolean singleHashMode)
          Set up the ECIES-KEM.
 
Method Summary
protected  ECMultiplier createBasePointMultiplier()
           
 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.
 void init(CipherParameters key)
          Initialise the ECIES-KEM.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ECIESKeyEncapsulation

public ECIESKeyEncapsulation(DerivationFunction kdf,
                             java.security.SecureRandom rnd)
Set up the ECIES-KEM.

Parameters:
kdf - the key derivation function to be used.
rnd - the random source for the session key.

ECIESKeyEncapsulation

public ECIESKeyEncapsulation(DerivationFunction kdf,
                             java.security.SecureRandom rnd,
                             boolean cofactorMode,
                             boolean oldCofactorMode,
                             boolean singleHashMode)
Set up the ECIES-KEM.

Parameters:
kdf - the key derivation function to be used.
rnd - the random source for the session key.
cofactorMode - true to use the new cofactor ECDH.
oldCofactorMode - true to use the old cofactor ECDH.
singleHashMode - true to use single hash mode.
Method Detail

init

public void init(CipherParameters key)
          throws java.lang.IllegalArgumentException
Initialise the ECIES-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 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 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.

createBasePointMultiplier

protected ECMultiplier createBasePointMultiplier()

Bouncy Castle Cryptography 1.51