Skip to main content

Module provider

Module provider 

Available on crate features quic and std only.
Expand description

Interfaces for supplying a QUIC TLS 1.3 implementation.

Implement provider::ClientConfig and provider::ServerConfig and pass them to crate::ClientConfig::new and crate::ServerConfig::new; a provider::ServerConfigResolver that resolves the server configuration per ClientHello goes to crate::ServerConfig::new_resolving. The server constructors also take a custom address-token key, so no built-in crypto feature is required. A provider encodes local rama_quic_proto::transport_parameters::TransportParameters into its TLS extension and decodes its peer’s extension with that type’s read.

Sessions must preserve the order of provider::HandshakeEvent values, distinguish read and write keys, and report TLS failures through Rama’s transport error types.

Structs§

ClientHelloMessage
A client’s ClientHello as its first flight carried it.
DirectionalKeys
Packet and header protection for one direction.
ExportKeyingMaterialError
The requested output length exceeds the exporter’s limit. failed to export keying material
KeyPair
A pair of keys for bidirectional communication
Keys
Write keys become available before read keys on a TLS server.
UnsupportedVersion
Error indicating that the specified QUIC version is not supported

Enums§

HandshakeEvent
Ordered TLS output and packet-key installation events.
InitialKeysError
ServerConfigResolution
What a ServerConfigResolver looked up for a ClientHello.

Traits§

AeadKey
A key for sealing data with AEAD-based algorithms
ClientConfig
Client-side configuration for the crypto protocol
HandshakeTokenKey
A pseudo random key for HKDF
InitialServerConfig
What a server needs before any session starts: the keys of a client’s Initial packets and the integrity tags of Retry packets.
ServerConfig
Server-side configuration for the crypto protocol: every session starts from it.
ServerConfigResolver
Server-side configuration resolved per connection from its ClientHello, for instance to issue a certificate for the requested server name.
Session
A cryptographic session (commonly TLS)

Type Aliases§

PendingServerConfig
The work that resolves a server configuration; see ServerConfigResolution::Pending.
ServerConfigLookup
The lookup a ServerConfigResolver runs for a ClientHello.