Interface TlsCipher

All Known Implementing Classes:
TlsAEADCipher, TlsBlockCipher, TlsNullCipher, TlsNullNullCipher

public interface TlsCipher
Base interface for a TLS bulk cipher.
  • Method Summary

    Modifier and Type
    Method
    Description
    decodeCiphertext(long seqNo, short recordType, ProtocolVersion recordVersion, byte[] ciphertext, int offset, int len)
    Decode the passed in ciphertext using the current bulk cipher.
    encodePlaintext(long seqNo, short contentType, ProtocolVersion recordVersion, int headerAllocation, byte[] plaintext, int offset, int len)
    Encode the passed in plaintext using the current bulk cipher.
    int
    getCiphertextDecodeLimit(int plaintextLimit)
    Return the maximum input size for a ciphertext given a maximum output size for the plaintext of plaintextLimit bytes.
    int
    getCiphertextEncodeLimit(int plaintextLimit)
    Return the maximum output size for a ciphertext given a maximum input size for the plaintext of plaintextLimit bytes.
    int
    getPlaintextDecodeLimit(int ciphertextLimit)
    Return the maximum output size for the plaintext given a maximum input size for the ciphertext of ciphertextLimit bytes.
    int
    getPlaintextEncodeLimit(int ciphertextLimit)
    Return the maximum input size for the plaintext given a maximum output size for the ciphertext of ciphertextLimit bytes.
    void
     
    void
     
    boolean
     
    boolean
     
  • Method Details

    • getCiphertextDecodeLimit

      int getCiphertextDecodeLimit(int plaintextLimit)
      Return the maximum input size for a ciphertext given a maximum output size for the plaintext of plaintextLimit bytes.
      Parameters:
      plaintextLimit - the maximum output size for the plaintext.
      Returns:
      the maximum input size of the ciphertext for plaintextLimit bytes of output.
    • getCiphertextEncodeLimit

      int getCiphertextEncodeLimit(int plaintextLimit)
      Return the maximum output size for a ciphertext given a maximum input size for the plaintext of plaintextLimit bytes.
      Parameters:
      plaintextLimit - the maximum input size for the plaintext.
      Returns:
      the maximum output size of the ciphertext for plaintextLimit bytes of input.
    • getPlaintextDecodeLimit

      int getPlaintextDecodeLimit(int ciphertextLimit)
      Return the maximum output size for the plaintext given a maximum input size for the ciphertext of ciphertextLimit bytes.
      Parameters:
      ciphertextLimit - the maximum input size for the ciphertext.
      Returns:
      the maximum output size of the plaintext for ciphertextLimit bytes of input.
    • getPlaintextEncodeLimit

      int getPlaintextEncodeLimit(int ciphertextLimit)
      Return the maximum input size for the plaintext given a maximum output size for the ciphertext of ciphertextLimit bytes.
      Parameters:
      ciphertextLimit - the maximum output size for the ciphertext.
      Returns:
      the maximum input size of the plaintext for ciphertextLimit bytes of output.
    • encodePlaintext

      TlsEncodeResult encodePlaintext(long seqNo, short contentType, ProtocolVersion recordVersion, int headerAllocation, byte[] plaintext, int offset, int len) throws IOException
      Encode the passed in plaintext using the current bulk cipher.
      Parameters:
      seqNo - sequence number of the message represented by plaintext.
      contentType - content type of the message represented by plaintext.
      recordVersion - ProtocolVersion used for the record.
      headerAllocation - extra bytes to allocate at start of returned byte array.
      plaintext - array holding input plaintext to the cipher.
      offset - offset into input array the plaintext starts at.
      len - length of the plaintext in the array.
      Returns:
      A TlsEncodeResult containing the result of encoding (after 'headerAllocation' unused bytes).
      Throws:
      IOException
    • decodeCiphertext

      TlsDecodeResult decodeCiphertext(long seqNo, short recordType, ProtocolVersion recordVersion, byte[] ciphertext, int offset, int len) throws IOException
      Decode the passed in ciphertext using the current bulk cipher.
      Parameters:
      seqNo - sequence number of the message represented by ciphertext.
      recordType - content type used in the record for this message.
      recordVersion - ProtocolVersion used for the record.
      ciphertext - array holding input ciphertext to the cipher.
      offset - offset into input array the ciphertext starts at.
      len - length of the ciphertext in the array.
      Returns:
      A TlsDecodeResult containing the result of decoding.
      Throws:
      IOException
    • rekeyDecoder

      void rekeyDecoder() throws IOException
      Throws:
      IOException
    • rekeyEncoder

      void rekeyEncoder() throws IOException
      Throws:
      IOException
    • usesOpaqueRecordTypeDecode

      boolean usesOpaqueRecordTypeDecode()
    • usesOpaqueRecordTypeEncode

      boolean usesOpaqueRecordTypeEncode()