Skip to main content

TrustRoots

Enum TrustRoots 

Source
pub enum TrustRoots {
    Platform,
    Bundled,
}
Expand description

Which certificate roots verify a server’s TLS certificate.

Verification is always on; there is no option that turns it off. Platform hands the decision to the operating system (macOS Security framework, Windows CryptoAPI, the system roots on Linux) through rustls-platform-verifier in both clients, so roots an enterprise or an inspection proxy installed on the machine are honoured, as curl and browsers honour them.

Android. Platform goes through rustls-platform-verifier, which on Android calls the system TrustManager over JNI and needs the verifier’s Android component and a one-time initialisation with the app’s JavaVM and Context (the rightkit-android bridge’s job). This crate does not do that initialisation. Until it has run, Platform fails closed as described below; it never falls back to another root set. An Android caller that has not wired the verifier selects Bundled, which needs no JNI. Both clients are built with rustls and ring only: there is no OpenSSL or native-tls to cross-build. Neither path has been run on a device.

Variants§

§

Platform

The operating system’s trust store. This is the default. When the store cannot be used the client fails closed: the handshake (blocking) or AsyncClient::new (async) returns an error.

§

Bundled

Mozilla’s root certificates compiled into the crate (webpki-roots), ignoring the machine’s store. Use it when the machine’s roots must not be trusted, or when results must not depend on the machine. A host behind TLS inspection will fail.

Implementations§

Source§

impl TrustRoots

Source

pub fn verifier_kind(self) -> &'static str

"platform" or "bundled": the verifier a client built from this setting uses.

Trait Implementations§

Source§

impl Clone for TrustRoots

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for TrustRoots

Source§

impl Debug for TrustRoots

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TrustRoots

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for TrustRoots

Source§

impl PartialEq for TrustRoots

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TrustRoots

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.