Interface IGCMBlockCipher

All Known Implementing Classes:
GCMBlockCipherBC, GCMBlockCipherBCFips

public interface IGCMBlockCipher
Interface for aes-gcm cryptographic ciphers.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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
    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

      void doFinal (byte[] plainText, int i) throws GeneralSecurityException
      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