public class SM4Engine extends java.lang.Object implements BlockCipher
The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
| Constructor and Description |
|---|
SM4Engine() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getAlgorithmName()
Return the name of the algorithm the cipher implements.
|
int |
getBlockSize()
Return the block size for this cipher (in bytes).
|
void |
init(boolean forEncryption,
CipherParameters params)
Initialise the cipher.
|
int |
processBlock(byte[] in,
int inOff,
byte[] out,
int outOff)
Process one block of input from the array in and write it to
the out array.
|
void |
reset()
Reset the cipher.
|
public void init(boolean forEncryption,
CipherParameters params)
throws java.lang.IllegalArgumentException
BlockCipherinit in interface BlockCipherforEncryption - if true the cipher is initialised for
encryption, if false for decryption.params - the key and other data required by the cipher.java.lang.IllegalArgumentException - if the params argument is
inappropriate.public java.lang.String getAlgorithmName()
BlockCiphergetAlgorithmName in interface BlockCipherpublic int getBlockSize()
BlockCiphergetBlockSize in interface BlockCipherpublic int processBlock(byte[] in,
int inOff,
byte[] out,
int outOff)
throws DataLengthException,
java.lang.IllegalStateException
BlockCipherprocessBlock in interface BlockCipherin - the array containing the input data.inOff - offset into the in array the data starts at.out - the array the output data will be copied into.outOff - the offset into the out array the output will start at.DataLengthException - if there isn't enough data in in, or
space in out.java.lang.IllegalStateException - if the cipher isn't initialised.public void reset()
BlockCipherreset in interface BlockCipher