Trait TlsListElement

Source
pub(crate) trait TlsListElement {
    const SIZE_LEN: ListLength;
}
Expand description

A trait for types that can be encoded and decoded in a list.

This trait is used to implement Codec for Vec<T>. Lists in the TLS wire format are prefixed with a length, the size of which depends on the type of the list elements. As such, the Codec implementation for Vec<T> requires an implementation of this trait for its element type T.

Required Associated Constants§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl TlsListElement for CertificateDer<'_>

Implementors§

Source§

impl TlsListElement for CertificateCompressionAlgorithm

RFC8879: CertificateCompressionAlgorithm algorithms<2..2^8-2>;

Source§

impl TlsListElement for CipherSuite

RFC8446: CipherSuite cipher_suites<2..2^16-2>;

Source§

impl TlsListElement for NamedGroup

RFC8422: NamedCurve named_curve_list<2..2^16-1>

Source§

impl TlsListElement for ProtocolVersion

Source§

impl TlsListElement for SignatureScheme

RFC8446: SignatureScheme supported_signature_algorithms<2..2^16-2>;

Source§

impl TlsListElement for CertificateType

RFC7250: CertificateType client_certificate_types<1..2^8-1>;

Ditto CertificateType server_certificate_types<1..2^8-1>;

Source§

impl TlsListElement for ClientCertificateType

RFC5246: ClientCertificateType certificate_types<1..2^8-1>;

Source§

impl TlsListElement for Compression

RFC5246: CompressionMethod compression_methods<1..2^8-1>;

Source§

impl TlsListElement for ECPointFormat

RFC8422: ECPointFormat ec_point_format_list<1..2^8-1>

Source§

impl TlsListElement for ExtensionType

draft-ietf-tls-esni-17: ExtensionType OuterExtensions<2..254>;

Source§

impl TlsListElement for PskKeyExchangeMode

Source§

impl TlsListElement for EchConfigExtension

Source§

const SIZE_LEN: ListLength = ListLength::U16

Source§

impl TlsListElement for EchConfigPayload

Source§

const SIZE_LEN: ListLength = ListLength::U16

Source§

impl TlsListElement for DistinguishedName

RFC8446: DistinguishedName authorities<3..2^16-1>; however, RFC5246: DistinguishedName certificate_authorities<0..2^16-1>;

Source§

const SIZE_LEN: ListLength = ListLength::U16

Source§

impl TlsListElement for CertificateEntry<'_>

Source§

impl TlsListElement for HpkeSymmetricCipherSuite

draft-ietf-tls-esni-24: HpkeSymmetricCipherSuite cipher_suites<4..2^16-4>;

Source§

impl TlsListElement for KeyShareEntry

RFC8446: KeyShareEntry client_shares<0..2^16-1>;

Source§

const SIZE_LEN: ListLength = ListLength::U16

Source§

impl TlsListElement for PresharedKeyBinder

RFC8446: PskBinderEntry binders<33..2^16-1>;

Source§

impl TlsListElement for PresharedKeyIdentity

RFC8446: PskIdentity identities<7..2^16-1>;

Source§

impl TlsListElement for ProtocolName

RFC7301: ProtocolName protocol_name_list<2..2^16-1>

Source§

impl TlsListElement for ResponderId

RFC6066: ResponderID responder_id_list<0..2^16-1>;

Source§

const SIZE_LEN: ListLength = ListLength::U16