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§
- Client
Hello Message - A client’s ClientHello as its first flight carried it.
- Directional
Keys - Packet and header protection for one direction.
- Export
Keying Material Error - 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.
- Unsupported
Version - Error indicating that the specified QUIC version is not supported
Enums§
- Handshake
Event - Ordered TLS output and packet-key installation events.
- Initial
Keys Error - Server
Config Resolution - What a
ServerConfigResolverlooked up for a ClientHello.
Traits§
- AeadKey
- A key for sealing data with AEAD-based algorithms
- Client
Config - Client-side configuration for the crypto protocol
- Handshake
Token Key - A pseudo random key for HKDF
- Initial
Server Config - What a server needs before any session starts: the keys of a client’s Initial packets and the integrity tags of Retry packets.
- Server
Config - Server-side configuration for the crypto protocol: every session starts from it.
- Server
Config Resolver - 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§
- Pending
Server Config - The work that resolves a server configuration; see
ServerConfigResolution::Pending. - Server
Config Lookup - The lookup a
ServerConfigResolverruns for a ClientHello.