Package org.bouncycastle.tls.crypto
Interface TlsCipher
-
- All Known Implementing Classes:
TlsAEADCipher
,TlsBlockCipher
,TlsNullCipher
,TlsNullNullCipher
public interface TlsCipher
Base interface for a TLS bulk cipher.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TlsDecodeResult
decodeCiphertext(long seqNo, short recordType, ProtocolVersion recordVersion, byte[] ciphertext, int offset, int len)
Decode the passed in ciphertext using the current bulk cipher.TlsEncodeResult
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 plaintextLength, int plaintextLimit)
Return the maximum output size for a ciphertext given an actual input plaintext size of plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.int
getPlaintextLimit(int ciphertextLimit)
Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.void
rekeyDecoder()
void
rekeyEncoder()
boolean
usesOpaqueRecordType()
-
-
-
Method Detail
-
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 plaintextLength, int plaintextLimit)
Return the maximum output size for a ciphertext given an actual input plaintext size of plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.- Parameters:
plaintextLength
- the actual input size for the plaintext.plaintextLimit
- the maximum input size for the plaintext.- Returns:
- the maximum output size of the ciphertext for plaintextlimit bytes of input.
-
getPlaintextLimit
int getPlaintextLimit(int ciphertextLimit)
Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.- Parameters:
ciphertextLimit
- the maximum number of bytes of ciphertext.- Returns:
- the maximum size of the plaintext for ciphertextlimit bytes of input.
-
encodePlaintext
TlsEncodeResult encodePlaintext(long seqNo, short contentType, ProtocolVersion recordVersion, int headerAllocation, byte[] plaintext, int offset, int len) throws java.io.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:
java.io.IOException
-
decodeCiphertext
TlsDecodeResult decodeCiphertext(long seqNo, short recordType, ProtocolVersion recordVersion, byte[] ciphertext, int offset, int len) throws java.io.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:
java.io.IOException
-
rekeyDecoder
void rekeyDecoder() throws java.io.IOException
- Throws:
java.io.IOException
-
rekeyEncoder
void rekeyEncoder() throws java.io.IOException
- Throws:
java.io.IOException
-
usesOpaqueRecordType
boolean usesOpaqueRecordType()
-
-