Package org.bouncycastle.crypto.engines
Class AESNativeCTR
java.lang.Object
org.bouncycastle.crypto.engines.AESNativeCTR
- All Implemented Interfaces:
BlockCipher,CTRModeCipher,MultiBlockCipher,SkippingCipher,SkippingStreamCipher,StreamCipher
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn the name of the algorithm the cipher implements.intReturn the block size for this cipher (in bytes).intReturn the multi-block size for this cipher (in bytes).longReturn the current "position" of the cipherreturn the underlying block cipher that we are wrapping.voidinit(boolean forEncryption, CipherParameters params) Initialise the cipher.intprocessBlock(byte[] in, int inOff, byte[] out, int outOff) Process one block of input from the array in and write it to the out array.intprocessBlocks(byte[] in, int inOff, int blockCount, byte[] out, int outOff) Process blockCount blocks from input in offset inOff and place the output in out from offset outOff.intprocessBytes(byte[] in, int inOff, int len, byte[] out, int outOff) process a block of bytes from in putting the result into out.voidreset()Reset the cipher.bytereturnByte(byte in) encrypt/decrypt a single byte returning the result.longseekTo(long position) Reset the cipher and then skip forward to a given position.longskip(long numberOfBytes) Skip numberOfBytes forwards, or backwards.toString()
-
Constructor Details
-
AESNativeCTR
public AESNativeCTR()
-
-
Method Details
-
getUnderlyingCipher
Description copied from interface:CTRModeCipherreturn the underlying block cipher that we are wrapping.- Specified by:
getUnderlyingCipherin interfaceCTRModeCipher- Returns:
- the underlying block cipher that we are wrapping.
-
getBlockSize
public int getBlockSize()Description copied from interface:BlockCipherReturn the block size for this cipher (in bytes).- Specified by:
getBlockSizein interfaceBlockCipher- Returns:
- the block size for this cipher in bytes.
-
processBlock
public int processBlock(byte[] in, int inOff, byte[] out, int outOff) throws DataLengthException, IllegalStateException Description copied from interface:BlockCipherProcess one block of input from the array in and write it to the out array.- Specified by:
processBlockin interfaceBlockCipher- Parameters:
in- 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.- Returns:
- the number of bytes processed and produced.
- Throws:
DataLengthException- if there isn't enough data in input , or space in out.IllegalStateException- if the cipher isn't initialised.
-
getMultiBlockSize
public int getMultiBlockSize()Description copied from interface:MultiBlockCipherReturn the multi-block size for this cipher (in bytes).- Specified by:
getMultiBlockSizein interfaceMultiBlockCipher- Returns:
- the multi-block size for this cipher in bytes.
-
processBlocks
public int processBlocks(byte[] in, int inOff, int blockCount, byte[] out, int outOff) throws DataLengthException, IllegalStateException Description copied from interface:MultiBlockCipherProcess blockCount blocks from input in offset inOff and place the output in out from offset outOff.- Specified by:
processBlocksin interfaceMultiBlockCipher- Parameters:
in- input data array.inOff- start of input data in in.blockCount- number of blocks to be processed.out- output data array.outOff- start position for output data.- Returns:
- number of bytes written to out.
- Throws:
DataLengthExceptionIllegalStateException
-
skip
public long skip(long numberOfBytes) Description copied from interface:SkippingCipherSkip numberOfBytes forwards, or backwards.- Specified by:
skipin interfaceSkippingCipher- Parameters:
numberOfBytes- the number of bytes to skip (positive forward, negative backwards).- Returns:
- the number of bytes actually skipped.
-
seekTo
public long seekTo(long position) Description copied from interface:SkippingCipherReset the cipher and then skip forward to a given position.- Specified by:
seekToin interfaceSkippingCipher- Parameters:
position- the number of bytes in to set the cipher state to.- Returns:
- the byte position moved to.
-
getPosition
public long getPosition()Description copied from interface:SkippingCipherReturn the current "position" of the cipher- Specified by:
getPositionin interfaceSkippingCipher- Returns:
- the current byte position.
-
init
Description copied from interface:BlockCipherInitialise the cipher.- Specified by:
initin interfaceBlockCipher- Specified by:
initin interfaceStreamCipher- Parameters:
forEncryption- if true the cipher is initialised for encryption, if false for decryption.params- the key and other data required by the cipher.- Throws:
IllegalArgumentException- if the params argument is inappropriate.
-
getAlgorithmName
Description copied from interface:BlockCipherReturn the name of the algorithm the cipher implements.- Specified by:
getAlgorithmNamein interfaceBlockCipher- Specified by:
getAlgorithmNamein interfaceStreamCipher- Returns:
- the name of the algorithm the cipher implements.
-
returnByte
public byte returnByte(byte in) Description copied from interface:StreamCipherencrypt/decrypt a single byte returning the result.- Specified by:
returnBytein interfaceStreamCipher- Parameters:
in- the byte to be processed.- Returns:
- the result of processing the input byte.
-
processBytes
public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff) throws DataLengthException Description copied from interface:StreamCipherprocess a block of bytes from in putting the result into out.- Specified by:
processBytesin interfaceStreamCipher- Parameters:
in- the input byte array.inOff- the offset into the in array where the data to be processed starts.len- the number of bytes to be processed.out- the output buffer the processed bytes go into.outOff- the offset into the output byte array the processed data starts at.- Returns:
- the number of bytes produced - should always be len.
- Throws:
DataLengthException- if the output buffer is too small.
-
reset
public void reset()Description copied from interface:BlockCipherReset the cipher. After resetting the cipher is in the same state as it was after the last init (if there was one).- Specified by:
resetin interfaceBlockCipher- Specified by:
resetin interfaceStreamCipher
-
toString
-