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. The latter also accepts a custom address-token key, so no built-in crypto feature is required. A provider encodes local provider::TransportParameters into its TLS extension and decodes its peer’s extension with provider::TransportParameters::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§

CryptoError
Generic crypto errors. cryptographic operation failed
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.
TransportParameters
Transport parameters used to negotiate connection-level preferences between peers
UnsupportedVersion
Error indicating that the specified QUIC version is not supported

Enums§

EncryptionLevel
Packet number space identifiers
HandshakeEvent
Ordered TLS output and packet-key installation events.
InitialKeysError
TransportParametersError
Errors encountered while decoding TransportParameters

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
HeaderKey
Keys used to protect packet headers
PacketKey
Keys used to protect packet payloads
ServerConfig
Server-side configuration for the crypto protocol
Session
A cryptographic session (commonly TLS)