Uses of Package
io.github.mahmoudimus.quic.tls

Package
Description
A dependency-free QUIC transport (RFC 9000, 9001, 9002, 9221, 9369).
The sans-I/O QUIC connection and endpoint, ported from quinn-proto: the Connection state machine (handshake, packet assembly and processing, key updates, closing and draining), the Endpoint that routes datagrams and answers with Version Negotiation, Retry and stateless resets, their configurations (TransportConfig, ServerConfig, ClientConfig, EndpointConfig), and the building blocks they are made of: range sets (RangeSet), reassembly of received data (Assembler), buffering of sent data (SendBuffer), streams and flow control (StreamsState), packet number spaces and ACK generation (PacketSpace), loss detection (Recovery), pacing (Pacer), path MTU discovery (MtuDiscovery) and timers (TimerTable).
A TLS 1.3 handshake (RFC 8446) for QUIC (RFC 9001), client and server, ported from rustls with quinn's session interface.
  • Class
    Description
    The (EC)DHE groups the handshake offers and accepts for key exchange (RFC 8446 section 4.2.7).
  • Class
    Description
    Where a client keeps session tickets between connections, by server.
    Configuration for TLS 1.3 handshakes in QUIC, shared by any number of TlsSessions.
    A TLS 1.3 handshake for QUIC (RFC 9001), as a sans-I/O state machine modelled on quinn's crypto::Session.
  • Class
    Description
    A certificate chain, end-entity certificate first, and the private key for that certificate: what a server, or a client asked for a certificate, presents and signs with.
    Whether a server asks clients for a certificate (RFC 8446 section 4.3.2).
    What a server's certificate and ALPN selectors see of a ClientHello.
    Where a client keeps session tickets between connections, by server.
    A resuming client's offer of 0-RTT data, as an EarlyDataPolicy sees it.
    Decides, on a server, whether to accept the 0-RTT data a resuming client offers.
    The (EC)DHE groups the handshake offers and accepts for key exchange (RFC 8446 section 4.2.7).
    A session ticket a client received in a NewSessionTicket message (RFC 8446 section 4.6.1), with what it needs to resume the session: the pre-shared key derived from the resumption master secret, the cipher suite, the ticket age obfuscation, and for 0-RTT the ALPN protocol and the server's QUIC transport parameters, which a client must remember and use for its early data (RFC 9000 section 7.4.1).
    The signature schemes (RFC 8446 section 4.2.3) the handshake knows.
    A stateless session ticket encrypter for a server (RFC 8446 section 4.6.1, RFC 5077 section 4): the session state is sealed into the ticket with AES-256-GCM under a server key, so the server keeps nothing per session.
    Configuration for TLS 1.3 handshakes in QUIC, shared by any number of TlsSessions.
    Builds a TlsConfig.
    A TLS 1.3 handshake for QUIC (RFC 9001), as a sans-I/O state machine modelled on quinn's crypto::Session.