# Struct openssl::x509::X509StoreContext [−] [src]

    pub struct X509StoreContext(_);

An `X509` certificate store context.

## Implementations

### `impl X509StoreContext` [src]

#### `pub fn ssl_idx() -> Result<Index<X509StoreContext, SslRef>, ErrorStack>` [src]

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

#### `pub fn new() -> Result<X509StoreContext, ErrorStack>` [src]

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>` [src]

Returns application data pertaining to an `X509` store context.

This corresponds to `X509_STORE_CTX_get_ex_data`.

#### `pub fn error(&self) -> X509VerifyResult` [src]

Returns the error code 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> where
F: FnOnce(&mut X509StoreContextRef) -> Result<T, ErrorStack>,` [src]

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_cert(&mut self) -> Result<bool, ErrorStack>` [src]

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: X509VerifyResult)` [src]

Set the error code of the context.

This corresponds to `X509_STORE_CTX_set_error`.

#### `pub fn current_cert(&self) -> Option<&X509Ref>` [src]

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` [src]

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>>` [src]

Returns a reference to a complete valid `X509` certificate chain.

This corresponds to `X509_STORE_CTX_get0_chain`.

## Trait Implementations

### `impl AsRef<X509StoreContextRef> for X509StoreContext` [src]

#### `fn as_ref(&self) -> &X509StoreContextRef` [src]

Performs the conversion.

### `impl Borrow<X509StoreContextRef> for X509StoreContext` [src]

#### `fn borrow(&self) -> &X509StoreContextRef` [src]

Immutably borrows from an owned value. Read more

### `impl Deref for X509StoreContext` [src]

#### `type Target = X509StoreContextRef`

The resulting type after dereferencing.

#### `fn deref(&self) -> &X509StoreContextRef` [src]

Dereferences the value.

### `impl DerefMut for X509StoreContext` [src]

#### `fn deref_mut(&mut self) -> &mut X509StoreContextRef` [src]

Mutably dereferences the value.

### `impl Drop for X509StoreContext` [src]

#### `fn drop(&mut self)` [src]

Executes the destructor for this type. Read more

### `impl ForeignType for X509StoreContext` [src]

#### `type CType = X509_STORE_CTX`

The raw C type.

#### `type Ref = X509StoreContextRef`

The type representing a reference to this type.

#### `unsafe fn from_ptr(ptr: *mut X509_STORE_CTX) -> X509StoreContext` [src]

Constructs an instance of this type from its raw type.

#### `fn as_ptr(&self) -> *mut X509_STORE_CTX` [src]

Returns a raw pointer to the wrapped value.

### `impl Send for X509StoreContext` [src]

### `impl Sync for X509StoreContext` [src]

## Auto Trait Implementations

### `impl RefUnwindSafe for X509StoreContext`

### `impl Unpin for X509StoreContext`

### `impl UnwindSafe for X509StoreContext`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.