Struct X509StoreContext
pub struct X509StoreContext(/* private fields */);Expand description
An X509 certificate store context.
Implementations§
§impl X509StoreContext
impl X509StoreContext
pub fn ssl_idx() -> Result<Index<X509StoreContext, SslRef>, ErrorStack>
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>
pub fn new() -> Result<X509StoreContext, ErrorStack>
Creates a new X509StoreContext instance.
This corresponds to X509_STORE_CTX_new.
pub fn new_ex_index<T>() -> Result<Index<X509StoreContext, T>, ErrorStack>
pub fn new_ex_index<T>() -> Result<Index<X509StoreContext, T>, ErrorStack>
Returns a new extra data index.
Each invocation of this function is guaranteed to return a distinct index. These can be used to store data in the context that can be retrieved later by callbacks, for example.
This corresponds to SSL_CTX_get_ex_new_index.
Methods from Deref<Target = X509StoreContextRef>§
pub fn ex_data<T>(&self, index: Index<X509StoreContext, T>) -> Option<&T>
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 ex_data_mut<T>(
&mut self,
index: Index<X509StoreContext, T>,
) -> Option<&mut T>
pub fn ex_data_mut<T>( &mut self, index: Index<X509StoreContext, T>, ) -> Option<&mut T>
Returns a mutable reference to the extra data at the specified index.
This corresponds to X509_STORE_CTX_get_ex_data.
pub fn set_ex_data<T>(&mut self, index: Index<X509StoreContext, T>, data: T)
pub fn set_ex_data<T>(&mut self, index: Index<X509StoreContext, T>, data: T)
Sets or overwrites the extra data at the specified index.
This can be used to provide data to callbacks registered with the context. Use the
Ssl::new_ex_index method to create an Index.
This corresponds to X509_STORE_CTX_set_ex_data.
pub fn verify_result(&self) -> Result<(), X509VerifyError>
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>
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.
Calls X509_STORE_CTX_cleanup after calling with_context.
This corresponds to X509_STORE_CTX_init.
pub fn reset_with_context_data(
&mut self,
trust: X509Store,
cert: X509,
cert_chain: Stack<X509>,
) -> Result<(), ErrorStack>
pub fn reset_with_context_data( &mut self, trust: X509Store, cert: X509, cert_chain: Stack<X509>, ) -> Result<(), ErrorStack>
Initializes this context with the given certificate, certificates chain and certificate store.
trust- The certificate store with the trusted certificates.cert- The certificate that should be verified.cert_chain- The certificates chain.
This corresponds to X509_STORE_CTX_init.
pub fn verify_param(&mut self) -> &X509VerifyParamRef
pub fn verify_param(&mut self) -> &X509VerifyParamRef
Returns a reference to the X509 verification configuration.
This corresponds to X509_STORE_CTX_get0_param.
pub fn verify_param_mut(&mut self) -> &mut X509VerifyParamRef
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 set_verify_param(&mut self, param: X509VerifyParam)
pub fn set_verify_param(&mut self, param: X509VerifyParam)
Sets the X509 verification configuration.
This corresponds to X509_STORE_CTX_set0_param.
pub fn verify_cert(&mut self) -> Result<bool, ErrorStack>
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>)
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>
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
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>>
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.
pub fn untrusted(&self) -> Option<&StackRef<X509>>
pub fn untrusted(&self) -> Option<&StackRef<X509>>
Returns a reference to the X509 certificates used to initialize the
X509StoreContextRef.
This corresponds to X509_STORE_CTX_get0_untrusted.
pub fn cert(&self) -> Option<&X509Ref>
pub fn cert(&self) -> Option<&X509Ref>
Returns a reference to the certificate being verified. May return None if a raw public key is being verified.
This corresponds to X509_STORE_CTX_get0_cert.
Trait Implementations§
§impl AsMut<X509StoreContextRef> for X509StoreContext
impl AsMut<X509StoreContextRef> for X509StoreContext
§fn as_mut(&mut self) -> &mut X509StoreContextRef
fn as_mut(&mut self) -> &mut X509StoreContextRef
§impl AsRef<X509StoreContextRef> for X509StoreContext
impl AsRef<X509StoreContextRef> for X509StoreContext
§fn as_ref(&self) -> &X509StoreContextRef
fn as_ref(&self) -> &X509StoreContextRef
§impl Borrow<X509StoreContextRef> for X509StoreContext
impl Borrow<X509StoreContextRef> for X509StoreContext
§fn borrow(&self) -> &X509StoreContextRef
fn borrow(&self) -> &X509StoreContextRef
§impl BorrowMut<X509StoreContextRef> for X509StoreContext
impl BorrowMut<X509StoreContextRef> for X509StoreContext
§fn borrow_mut(&mut self) -> &mut X509StoreContextRef
fn borrow_mut(&mut self) -> &mut X509StoreContextRef
§impl Deref for X509StoreContext
impl Deref for X509StoreContext
§type Target = X509StoreContextRef
type Target = X509StoreContextRef
§fn deref(&self) -> &X509StoreContextRef
fn deref(&self) -> &X509StoreContextRef
§impl DerefMut for X509StoreContext
impl DerefMut for X509StoreContext
§fn deref_mut(&mut self) -> &mut X509StoreContextRef
fn deref_mut(&mut self) -> &mut X509StoreContextRef
§impl ForeignType for X509StoreContext
impl ForeignType for X509StoreContext
§type Ref = X509StoreContextRef
type Ref = X509StoreContextRef
§unsafe fn from_ptr(ptr: *mut x509_store_ctx_st) -> X509StoreContext
unsafe fn from_ptr(ptr: *mut x509_store_ctx_st) -> X509StoreContext
impl Send for X509StoreContext
impl Sync for X509StoreContext
Auto Trait Implementations§
impl Freeze for X509StoreContext
impl RefUnwindSafe for X509StoreContext
impl Unpin for X509StoreContext
impl UnwindSafe for X509StoreContext
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more