Crate tls_codec[][src]

Expand description

TLS Codec

This crate implements the TLS codec as defined in RFC 8446 as well as some extensions required by MLS.

With the feature derive TlsSerialize and TlsDeserialize can be derived.

This crate provides the following data structures that implement TLS serialization/deserialization

  • u8, u16, u32, u64
  • TlsVecU8, TlsVecU16, TlsVecU32
  • SecretTlsVecU8, SecretTlsVecU16, SecretTlsVecU32 The same as the TlsVec* versions but it implements zeroize, requiring the elements to implement zeroize as well.
  • [u8; l], for l ∈ [1..128]
  • Serialize for Option<T> where T: Serialize
  • Deserialize for Option<T> where T: Deserialize

Structs

SecretTlsVecU8
SecretTlsVecU16
SecretTlsVecU32
TlsVecU8
TlsVecU16
TlsVecU32

Enums

Error

Errors that are thrown by this crate.

Traits

Deserialize

The Deserialize trait provides functions to deserialize a byte slice to a struct or enum.

Serialize

The Serialize trait provides functions to serialize a struct or enum.

TlsSize

The TlsSize trait needs to be implemented by any struct that should be efficiently serialized. This allows to collect the length of a serialized structure before allocating memory.