TlsClientConfig

Struct TlsClientConfig 

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

TLS Client Configuration

Implementations§

Source§

impl TlsClientConfig

Source

pub fn new<S: Into<String>>(server_name: S) -> Self

Create a new TLS client configuration

Source

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

Set allowed TLS protocol versions

Source

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

Set allowed cipher suites

Source

pub fn with_client_certificate<S: Into<String>>( self, cert_path: S, key_path: S, ) -> Self

Configure client authentication for mTLS

Source

pub fn insecure(self) -> Self

Allow insecure connections (skip certificate verification)

§WARNING: Security Risk

This mode disables certificate verification entirely and should ONLY be used for:

  • Development and testing
  • Debugging environments
  • Internal networks with certificate pinning enabled

NEVER use this in production without explicit certificate pinning via with_pinned_cert_hash().

For maximum security, only use this with the “dangerous_configuration” feature enabled, which is a strong indicator this is for testing/development only.

Source

pub fn with_pinned_cert_hash(self, hash: Vec<u8>) -> Self

Pin a certificate by its SHA-256 hash/fingerprint

This provides additional security by only accepting connections from servers with the exact certificate matching this hash. Can be combined with insecure mode for development environments where you want to skip standard CA verification but still verify a specific cert.

Source

pub fn calculate_cert_hash(cert: &Certificate) -> Vec<u8>

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

Source

pub fn load_client_config(&self) -> Result<ClientConfig>

Load the TLS client configuration

Source

pub fn server_name(&self) -> Result<ServerName>

Get the server name as a rustls::ServerName

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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