Class TlsAEADCipher

  • All Implemented Interfaces:
    TlsCipher

    public class TlsAEADCipher
    extends java.lang.Object
    implements TlsCipher
    A generic TLS 1.2 AEAD cipher.
    • Field Detail

      • macSize

        protected final int macSize
      • record_iv_length

        protected final int record_iv_length
      • encryptImplicitNonce

        protected final byte[] encryptImplicitNonce
      • decryptImplicitNonce

        protected final byte[] decryptImplicitNonce
      • nonceMode

        protected final int nonceMode
    • Method Detail

      • getCiphertextLimit

        public int getCiphertextLimit​(int plaintextLimit)
        Description copied from interface: TlsCipher
        Return the maximum size for the ciphertext given plaintextlimit bytes of plaintext.
        Specified by:
        getCiphertextLimit in interface TlsCipher
        Parameters:
        plaintextLimit - the maximum number of bytes of plaintext.
        Returns:
        the maximum size of the ciphertext for plaintextlimit bytes of input.
      • getPlaintextLimit

        public int getPlaintextLimit​(int ciphertextLimit)
        Description copied from interface: TlsCipher
        Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
        Specified by:
        getPlaintextLimit in interface TlsCipher
        Parameters:
        ciphertextLimit - the maximum number of bytes of ciphertext.
        Returns:
        the maximum size of the plaintext for ciphertextlimit bytes of input.
      • encodePlaintext

        public byte[] encodePlaintext​(long seqNo,
                                      short type,
                                      byte[] plaintext,
                                      int offset,
                                      int len)
                               throws java.io.IOException
        Description copied from interface: TlsCipher
        Encrypt and MAC the passed in plain text using the current cipher suite.
        Specified by:
        encodePlaintext in interface TlsCipher
        Parameters:
        seqNo - sequence number of the message represented by plaintext.
        type - content type of the message represented by plaintext.
        plaintext - array holding input plain text to the cipher.
        offset - offset into input array the plain text starts at.
        len - length of the plaintext in the array.
        Returns:
        the resulting cipher text.
        Throws:
        java.io.IOException
      • decodeCiphertext

        public byte[] decodeCiphertext​(long seqNo,
                                       short type,
                                       byte[] ciphertext,
                                       int offset,
                                       int len)
                                throws java.io.IOException
        Description copied from interface: TlsCipher
        Validate and decrypt the passed in cipher text using the current cipher suite.
        Specified by:
        decodeCiphertext in interface TlsCipher
        Parameters:
        seqNo - sequence number of the message represented by ciphertext.
        type - content type of the message represented by ciphertext.
        ciphertext - array holding input cipher text to the cipher.
        offset - offset into input array the cipher text starts at.
        len - length of the cipher text in the array.
        Returns:
        the resulting plaintext.
        Throws:
        java.io.IOException
      • getAdditionalData

        protected byte[] getAdditionalData​(long seqNo,
                                           short type,
                                           int len)
                                    throws java.io.IOException
        Throws:
        java.io.IOException