Module rustls

Expand description

Re-export of the rustls and tokio-rustls crates.

To facilitate the use of rustls types in API’s such as TlsAcceptorLayer.

Modules§

client
Re-export of client module of the rustls and tokio-rustls crates.
compress
Certificate compression and decompression support
crypto
Crypto provider interface.
ffdhe_groups
This module contains parameters for FFDHE named groups as defined in RFC 7919 Appendix A.
kernel
Kernel connection API.
lock
APIs abstracting over locking primitives.
manual
This is the rustls manual.
pki_types
Re-exports the contents of the rustls-pki-types crate for easy access
quic
APIs for implementing QUIC TLS
server
Re-export of server module of the rustls and tokio-rustls crates.
sign
Message signing interfaces.
ticketer
APIs for implementing TLS tickets
time_provider
The library’s source of time.
unbuffered
Unbuffered connection API
version
All defined protocol versions appear in this module.

Structs§

CipherSuiteCommon
Common state for cipher suites (both for TLS 1.2 and TLS 1.3)
ClientConfig
Common configuration for (typically) all connections made by a program.
ClientConnection
This represents a single TLS client connection.
CommonState
Connection state common to both client and server connections.
ConfigBuilder
A builder for ServerConfig or ClientConfig values.
ConnectionCommon
Interface shared by client and server connections.
DigitallySignedStruct
This type combines a SignatureScheme and a signature payload produced with that scheme.
DistinguishedName
A DistinguishedName is a Vec<u8> wrapped in internal types.
ExtractedSecrets
Secrets for transmitting/receiving data over a TLS session.
IoState
Values of this structure are returned from Connection::process_new_packets and tell the caller the current I/O state of the TLS connection.
KeyLogFile
KeyLog implementation that opens a file whose name is given by the SSLKEYLOGFILE environment variable, and writes keys into it.
NoKeyLog
KeyLog that does exactly nothing.
OtherError
Any other error that cannot be expressed by a more specific Error variant.
Reader
A structure that implements std::io::Read for reading plaintext.
RootCertStore
A container for root certificates able to provide a root-of-trust for connection authentication.
ServerConfig
Common configuration for a set of server sessions.
ServerConnection
This represents a single TLS server connection.
Stream
This type implements io::Read and io::Write, encapsulating a Connection C and an underlying transport T, such as a socket.
StreamOwned
This type implements io::Read and io::Write, encapsulating and owning a Connection C and an underlying blocking transport T, such as a socket.
SupportedProtocolVersion
A TLS protocol version supported by rustls.
TicketRotator
A ticketer that has a ‘current’ sub-ticketer and a single ‘previous’ ticketer. It creates a new ticketer every so often, demoting the current ticketer.
TicketSwitcher
A ticketer that has a ‘current’ sub-ticketer and a single ‘previous’ ticketer. It creates a new ticketer every so often, demoting the current ticketer.
Tls12CipherSuite
A TLS 1.2 cipher suite supported by rustls.
Tls13CipherSuite
A TLS 1.3 cipher suite supported by rustls.
WantsVerifier
Config builder state where the caller must supply a verifier.
WantsVersions
Config builder state where the caller must supply TLS protocol versions.
Writer
A structure that implements std::io::Write for writing plaintext.

Enums§

AlertDescription
The AlertDescription TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
CertRevocationListError
The ways in which a certificate revocation list (CRL) can be invalid.
CertificateCompressionAlgorithm
The “TLS Certificate Compression Algorithm IDs” TLS protocol enum. Values in this enum are taken from RFC8879.
CertificateError
The ways in which certificate validators can express errors.
CipherSuite
The CipherSuite TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
Connection
A client or server connection.
ConnectionTrafficSecrets
Secrets used to encrypt/decrypt data in a TLS session.
ContentType
The ContentType TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
EncryptedClientHelloError
An error that occurred while handling Encrypted Client Hello (ECH).
Error
rustls reports protocol errors using this type.
ExtendedKeyPurpose
Extended Key Usage (EKU) purpose values.
HandshakeKind
Describes which sort of handshake happened.
HandshakeType
The HandshakeType TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
InconsistentKeys
Specific failure cases from keys_match or a crate::crypto::signer::SigningKey that cannot produce a corresponding public key.
InvalidMessage
A corrupt TLS message payload that resulted in an error.
NamedGroup
The NamedGroup TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
PeerIncompatible
The set of cases where we failed to make a connection because a peer doesn’t support a TLS version/feature we require.
PeerMisbehaved
The set of cases where we failed to make a connection because we thought the peer was misbehaving.
ProtocolVersion
The ProtocolVersion TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
Side
Side of the connection.
SignatureAlgorithm
The SignatureAlgorithm TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
SignatureScheme
The SignatureScheme TLS protocol enum. Values in this enum are taken from the various RFCs covering TLS, and are listed by IANA. The Unknown item is used when processing unrecognised ordinals.
SupportedCipherSuite
A cipher suite supported by rustls.

Statics§

ALL_VERSIONS
A list of all the protocol versions supported by rustls.
DEFAULT_VERSIONS
The version configuration that an application should use by default.

Traits§

ConfigSide
Helper trait to abstract ConfigBuilder over building a ClientConfig or ServerConfig.
KeyLog
This trait represents the ability to do something useful with key material, such as logging it to a file for debugging.
SideData
Data specific to the peer’s side (client or server).