Interface IGCMBlockCipher

  • All Known Implementing Classes:
    GCMBlockCipherBC

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

      All Methods Instance Methods Abstract Methods 
      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 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 Detail

      • init

        void init​(boolean forEncryption,
                  byte[] key,
                  int macSizeBits,
                  byte[] iv)
           throws java.security.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:
        java.security.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 java.security.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:
        java.security.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 java.security.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:
        java.security.GeneralSecurityException - in case any error during encryption or decryption