Struct X509StoreContext

pub struct X509StoreContext(/* private fields */);
Expand description

An X509 certificate store context.

Implementations§

§

impl X509StoreContext

pub fn ssl_idx() -> Result<Index<X509StoreContext, SslRef>, ErrorStack>

Returns the index which can be used to obtain a reference to the Ssl associated with a context.

This corresponds to SSL_get_ex_data_X509_STORE_CTX_idx.

pub fn new() -> Result<X509StoreContext, ErrorStack>

Creates a new X509StoreContext instance.

This corresponds to X509_STORE_CTX_new.

Methods from Deref<Target = X509StoreContextRef>§

pub fn ex_data<T>(&self, index: Index<X509StoreContext, T>) -> Option<&T>

Returns application data pertaining to an X509 store context.

This corresponds to X509_STORE_CTX_get_ex_data.

pub fn verify_result(&self) -> Result<(), X509VerifyError>

Returns the verify result of the context.

This corresponds to X509_STORE_CTX_get_error.

pub fn init<F, T>( &mut self, trust: &X509StoreRef, cert: &X509Ref, cert_chain: &StackRef<X509>, with_context: F, ) -> Result<T, ErrorStack>

Initializes this context with the given certificate, certificates chain and certificate store. After initializing the context, the with_context closure is called with the prepared context. As long as the closure is running, the context stays initialized and can be used to e.g. verify a certificate. The context will be cleaned up, after the closure finished.

  • trust - The certificate store with the trusted certificates.
  • cert - The certificate that should be verified.
  • cert_chain - The certificates chain.
  • with_context - The closure that is called with the initialized context.

This corresponds to X509_STORE_CTX_init before calling with_context and to X509_STORE_CTX_cleanup after calling with_context.

pub fn verify_param_mut(&mut self) -> &mut X509VerifyParamRef

Returns a mutable reference to the X509 verification configuration.

This corresponds to X509_STORE_CTX_get0_param.

pub fn verify_cert(&mut self) -> Result<bool, ErrorStack>

Verifies the stored certificate.

Returns true if verification succeeds. The error method will return the specific validation error if the certificate was not valid.

This will only work inside of a call to init.

This corresponds to X509_verify_cert.

pub fn set_error(&mut self, result: Result<(), X509VerifyError>)

Set the verify result of the context.

This corresponds to X509_STORE_CTX_set_error.

pub fn current_cert(&self) -> Option<&X509Ref>

Returns a reference to the certificate which caused the error or None if no certificate is relevant to the error.

This corresponds to X509_STORE_CTX_get_current_cert.

pub fn error_depth(&self) -> u32

Returns a non-negative integer representing the depth in the certificate chain where the error occurred. If it is zero it occurred in the end entity certificate, one if it is the certificate which signed the end entity certificate and so on.

This corresponds to X509_STORE_CTX_get_error_depth.

pub fn chain(&self) -> Option<&StackRef<X509>>

Returns a reference to a complete valid X509 certificate chain.

This corresponds to X509_STORE_CTX_get0_chain.

Trait Implementations§

§

impl AsMut<X509StoreContextRef> for X509StoreContext

§

fn as_mut(&mut self) -> &mut X509StoreContextRef

Converts this type into a mutable reference of the (usually inferred) input type.
§

impl AsRef<X509StoreContextRef> for X509StoreContext

§

fn as_ref(&self) -> &X509StoreContextRef

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Borrow<X509StoreContextRef> for X509StoreContext

§

fn borrow(&self) -> &X509StoreContextRef

Immutably borrows from an owned value. Read more
§

impl BorrowMut<X509StoreContextRef> for X509StoreContext

§

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

Mutably borrows from an owned value. Read more
§

impl Deref for X509StoreContext

§

type Target = X509StoreContextRef

The resulting type after dereferencing.
§

fn deref(&self) -> &X509StoreContextRef

Dereferences the value.
§

impl DerefMut for X509StoreContext

§

fn deref_mut(&mut self) -> &mut X509StoreContextRef

Mutably dereferences the value.
§

impl Drop for X509StoreContext

§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

impl ForeignType for X509StoreContext

§

type CType = x509_store_ctx_st

The raw C type.
§

type Ref = X509StoreContextRef

The type representing a reference to this type.
§

unsafe fn from_ptr(ptr: *mut x509_store_ctx_st) -> X509StoreContext

Constructs an instance of this type from its raw type. Read more
§

fn as_ptr(&self) -> *mut x509_store_ctx_st

Returns a raw pointer to the wrapped value.
Source§

fn into_ptr(self) -> *mut Self::CType

Consumes the wrapper and returns the raw pointer.
§

impl Send for X509StoreContext

§

impl Sync for X509StoreContext

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

impl<T, U> RamaInto<U> for T
where U: RamaFrom<T>,

§

fn rama_into(self) -> U

§

impl<T, U> RamaInto<U> for T
where U: RamaFrom<T>,

§

fn rama_into(self) -> U

§

impl<T, U> RamaTryInto<U> for T
where U: RamaTryFrom<T>,

§

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

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T>>::Error>

§

impl<T, U> RamaTryInto<U> for T
where U: RamaTryFrom<T>,

§

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

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T>>::Error>

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,