Class GCMBlockCipherBC

java.lang.Object
com.itextpdf.bouncycastle.crypto.modes.GCMBlockCipherBC
All Implemented Interfaces:
IGCMBlockCipher

public class GCMBlockCipherBC extends Object implements IGCMBlockCipher
This class provides the functionality of a cryptographic cipher of aes-gcm for encryption and decryption via wrapping the corresponding GCMBlockCipher class from bouncy-castle.
  • Constructor Summary

    Constructors
    Constructor
    Description
    GCMBlockCipherBC(org.bouncycastle.crypto.modes.GCMBlockCipher cipher)
    Creates new wrapper for GCMBlockCipher aes-gcm block cipher class.
  • 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.
    boolean
    org.bouncycastle.crypto.modes.GCMBlockCipher
    Gets actual org.bouncycastle object being wrapped.
    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).
    int
    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.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • GCMBlockCipherBC

      public GCMBlockCipherBC (org.bouncycastle.crypto.modes.GCMBlockCipher cipher)
      Creates new wrapper for GCMBlockCipher aes-gcm block cipher class.
      Parameters:
      cipher - bouncy-castle class to wrap
  • Method Details

    • getCipher

      public org.bouncycastle.crypto.modes.GCMBlockCipher getCipher()
      Gets actual org.bouncycastle object being wrapped.
      Returns:
      wrapped GCMBlockCipher
    • init

      public void init (boolean forEncryption, byte[] key, int macSizeBits, byte[] iv)
      Initialize this cipher with a key and a set of algorithm parameters.
      Specified by:
      init in interface IGCMBlockCipher
      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
    • getUpdateOutputSize

      public 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).
      Specified by:
      getUpdateOutputSize in interface IGCMBlockCipher
      Parameters:
      len - input length (in bytes)
      Returns:
      output length in bytes
    • processBytes

      public 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.
      Specified by:
      processBytes in interface IGCMBlockCipher
      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
    • getOutputSize

      public 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).
      Specified by:
      getOutputSize in interface IGCMBlockCipher
      Parameters:
      len - input length (in bytes)
      Returns:
      output length in bytes
    • doFinal

      public void doFinal (byte[] plainText, int i)
      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.
      Specified by:
      doFinal in interface IGCMBlockCipher
      Parameters:
      plainText - the buffer for the result
      i - the offset in output where the result is stored
    • equals

      public boolean equals (Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object