Package org.bouncycastle.crypto.engines
Class CramerShoupCoreEngine
- java.lang.Object
-
- org.bouncycastle.crypto.engines.CramerShoupCoreEngine
-
public class CramerShoupCoreEngine extends java.lang.ObjectEssentially the Cramer-Shoup encryption / decryption algorithms according to "A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack." (Crypto 1998)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCramerShoupCoreEngine.CramerShoupCiphertextExceptionCS exception for wrong cipher-texts
-
Constructor Summary
Constructors Constructor Description CramerShoupCoreEngine()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigIntegerconvertInput(byte[] in, int inOff, int inLen)byte[]convertOutput(java.math.BigInteger result)java.math.BigIntegerdecryptBlock(CramerShoupCiphertext input)CramerShoupCiphertextencryptBlock(java.math.BigInteger input)intgetInputBlockSize()Return the maximum size for an input block to this engine.intgetOutputBlockSize()Return the maximum size for an output block to this engine.voidinit(boolean forEncryption, CipherParameters param)initialise the CramerShoup engine.voidinit(boolean forEncryption, CipherParameters param, java.lang.String label)initialise the CramerShoup engine.protected java.security.SecureRandominitSecureRandom(boolean needed, java.security.SecureRandom provided)
-
-
-
Method Detail
-
init
public void init(boolean forEncryption, CipherParameters param, java.lang.String label)initialise the CramerShoup engine.- Parameters:
forEncryption- whether this engine should encrypt or decryptparam- the necessary CramerShoup key parameters.label- the label for labelled CS asString
-
init
public void init(boolean forEncryption, CipherParameters param)initialise the CramerShoup engine.- Parameters:
forEncryption- whether this engine should encrypt or decryptparam- the necessary CramerShoup key parameters.
-
getInputBlockSize
public int getInputBlockSize()
Return the maximum size for an input block to this engine. For Cramer Shoup this is always one byte less than the key size on encryption, and the same length as the key size on decryption. TODO: correct?- Returns:
- maximum size for an input block.
-
getOutputBlockSize
public int getOutputBlockSize()
Return the maximum size for an output block to this engine. For Cramer Shoup this is always one byte less than the key size on decryption, and the same length as the key size on encryption. TODO: correct?- Returns:
- maximum size for an output block.
-
convertInput
public java.math.BigInteger convertInput(byte[] in, int inOff, int inLen)
-
convertOutput
public byte[] convertOutput(java.math.BigInteger result)
-
encryptBlock
public CramerShoupCiphertext encryptBlock(java.math.BigInteger input)
-
decryptBlock
public java.math.BigInteger decryptBlock(CramerShoupCiphertext input) throws CramerShoupCoreEngine.CramerShoupCiphertextException
-
initSecureRandom
protected java.security.SecureRandom initSecureRandom(boolean needed, java.security.SecureRandom provided)
-
-