Interface TlsAEADCipherImpl

All Known Implementing Classes:
BcChaCha20Poly1305, JceAEADCipherImpl, JceChaCha20Poly1305

public interface TlsAEADCipherImpl
Base interface for services supporting AEAD encryption/decryption.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    doFinal(byte[] additionalData, byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset)
    Perform the cipher encryption/decryption returning the output in output.
    int
    getOutputSize(int inputLength)
    Return the maximum size of the output for input of inputLength bytes.
    void
    init(byte[] nonce, int macSize)
    Initialise the parameters for the AEAD operator.
    void
    setKey(byte[] key, int keyOff, int keyLen)
    Set the key to be used by the AEAD cipher implementation supporting this service.
  • Method Details

    • setKey

      void setKey(byte[] key, int keyOff, int keyLen) throws IOException
      Set the key to be used by the AEAD cipher implementation supporting this service.
      Parameters:
      key - array holding the AEAD cipher key.
      keyOff - offset into the array the key starts at.
      keyLen - length of the key in the array.
      Throws:
      IOException
    • init

      void init(byte[] nonce, int macSize) throws IOException
      Initialise the parameters for the AEAD operator.
      Parameters:
      nonce - the nonce.
      macSize - MAC size in bytes.
      Throws:
      IOException - if the parameters are inappropriate.
    • getOutputSize

      int getOutputSize(int inputLength)
      Return the maximum size of the output for input of inputLength bytes.
      Parameters:
      inputLength - the length (in bytes) of the proposed input.
      Returns:
      the maximum size of the output.
    • doFinal

      int doFinal(byte[] additionalData, byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset) throws IOException
      Perform the cipher encryption/decryption returning the output in output.

      Note: we have to use doFinal() here as it is the only way to guarantee output from the underlying cipher.

      Parameters:
      additionalData - any additional data to be included in the MAC calculation.
      input - array holding input data to the cipher.
      inputOffset - offset into input array data starts at.
      inputLength - length of the input data in the array.
      output - array to hold the cipher output.
      outputOffset - offset into output array to start saving output.
      Returns:
      the amount of data written to output.
      Throws:
      IOException - in case of failure.