Package org.bouncycastle.crypto.engines
Class CramerShoupCoreEngine
- java.lang.Object
-
- org.bouncycastle.crypto.engines.CramerShoupCoreEngine
-
public class CramerShoupCoreEngine extends java.lang.Object
Essentially 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 class
CramerShoupCoreEngine.CramerShoupCiphertextException
CS 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.BigInteger
convertInput(byte[] in, int inOff, int inLen)
byte[]
convertOutput(java.math.BigInteger result)
java.math.BigInteger
decryptBlock(CramerShoupCiphertext input)
CramerShoupCiphertext
encryptBlock(java.math.BigInteger input)
int
getInputBlockSize()
Return the maximum size for an input block to this engine.int
getOutputBlockSize()
Return the maximum size for an output block to this engine.void
init(boolean forEncryption, CipherParameters param)
initialise the CramerShoup engine.void
init(boolean forEncryption, CipherParameters param, java.lang.String label)
initialise the CramerShoup engine.protected java.security.SecureRandom
initSecureRandom(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)
-
-