Interface IGCMBlockCipher
- All Known Implementing Classes:
-
GCMBlockCipherBC
,GCMBlockCipherBCFips
public interface IGCMBlockCipher
Interface for aes-gcm cryptographic ciphers.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
doFinal
(byte[] plainText, int i) Finishes a multiple-part encryption or decryption operation, depending on how this cipher was initialized.int
getOutputSize
(int len) Returns the length in bytes that an output buffer would need to be in order to hold the result of the next doFinal operation, given the input length (in bytes).int
getUpdateOutputSize
(int len) Returns the length in bytes that an output buffer would need to be in order to hold the result of the next update operation, given the input length (in bytes).void
init
(boolean forEncryption, byte[] key, int macSizeBits, byte[] iv) Initialize this cipher with a key and a set of algorithm parameters.void
processBytes
(byte[] input, int inputOffset, int len, byte[] output, int outOffset) Perform a multiple-part encryption or decryption operation (depending on how this cipher was initialized), processing another data part.
-
Method Details
-
init
void init(boolean forEncryption, byte[] key, int macSizeBits, byte[] iv) throws GeneralSecurityException Initialize this cipher with a key and a set of algorithm parameters.- Parameters:
-
forEncryption
- true to use encrypt mode, false to use decrypt mode -
key
- the encryption key -
macSizeBits
- MAC size, MAC sizes from 32 bits to 128 bits (must be a multiple of 8) -
iv
- the IV source buffer - Throws:
-
GeneralSecurityException
- in case any error during encryption or decryption
-
getUpdateOutputSize
int getUpdateOutputSize(int len) Returns the length in bytes that an output buffer would need to be in order to hold the result of the next update operation, given the input length (in bytes).- Parameters:
-
len
- input length (in bytes) - Returns:
- output length in bytes
-
processBytes
void processBytes(byte[] input, int inputOffset, int len, byte[] output, int outOffset) throws GeneralSecurityException Perform a multiple-part encryption or decryption operation (depending on how this cipher was initialized), processing another data part.- Parameters:
-
input
- the input buffer -
inputOffset
- the offset in input where the input starts -
len
- the input length -
output
- the buffer for the result -
outOffset
- the offset in output where the result is stored - Throws:
-
GeneralSecurityException
- in case any error during encryption or decryption
-
getOutputSize
int getOutputSize(int len) Returns the length in bytes that an output buffer would need to be in order to hold the result of the next doFinal operation, given the input length (in bytes).- Parameters:
-
len
- input length (in bytes) - Returns:
- output length in bytes
-
doFinal
Finishes a multiple-part encryption or decryption operation, depending on how this cipher was initialized. Input data that may have been buffered during a previous update operation is processed, also the authentication tag is appended in the case of encryption, or verified in the case of decryption.- Parameters:
-
plainText
- the buffer for the result -
i
- the offset in output where the result is stored - Throws:
-
GeneralSecurityException
- in case any error during encryption or decryption
-