Skip to main content

TlsServerConfig

Struct TlsServerConfig 

Source
pub struct TlsServerConfig { /* private fields */ }
Expand description

TLS server configuration

Implementations§

Source§

impl TlsServerConfig

Source

pub fn new<P: AsRef<Path>>(cert_path: P, key_path: P) -> Self

Create a new TLS server configuration

Source

pub fn with_tls_versions(self, versions: Vec<TlsVersion>) -> Self

Set allowed TLS protocol versions

Only the listed versions are enabled. An empty list is rejected when the config is loaded.

Source

pub fn with_cipher_suites( self, cipher_suites: Vec<SupportedCipherSuite>, ) -> Self

Set allowed cipher suites

Only the listed suites are enabled, matched by suite identifier and kept in this crate’s preference order. Loading the config fails if none of them is supported, or if none of them can be used with the enabled TLS versions.

Source

pub fn with_client_auth<S: Into<String>>(self, client_ca_path: S) -> Self

Enable mutual TLS authentication by providing a CA certificate path

Source

pub fn require_client_auth(self, required: bool) -> Self

Set whether client authentication is required (true) or optional (false)

Client certificates are verified against the CA given to with_client_auth(), which also sets this to true. Call it after with_client_auth() to make client authentication optional: clients without a certificate are then accepted, but a certificate that is presented must still be signed by the client CA.

require_client_auth(true) without with_client_auth() has no CA to verify against, so load_server_config() returns an error instead of silently accepting clients without a certificate.

Source

pub fn with_alpn_protocols(self, protocols: Vec<Vec<u8>>) -> Self

Set ALPN protocols to advertise during TLS handshake

Source

pub fn generate_self_signed<P: AsRef<Path>>( cert_path: P, key_path: P, ) -> Result<Self>

Generate a self-signed certificate for development/testing purposes

Source

pub fn load_server_config(&self) -> Result<ServerConfig>

Load the TLS configuration from files

§Errors

Returns ProtocolError::TlsError if a file cannot be read or parsed, if the version or cipher-suite settings leave nothing usable, or if client authentication is required without a client CA (see require_client_auth()).

Source

pub fn calculate_cert_hash(cert: &CertificateDer<'_>) -> Vec<u8> ⓘ

Calculate SHA-256 hash for a certificate to use with pinning

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more