pingora_openssl::ssl

Struct SslSession

Source
pub struct SslSession(/* private fields */);
Expand description

An encoded SSL session.

These can be cached to share sessions across connections.

Implementations§

Source§

impl SslSession

Source

pub fn from_der(der: &[u8]) -> Result<SslSession, ErrorStack>

Deserializes a DER-encoded session structure.

This corresponds to d2i_SSL_SESSION.

Methods from Deref<Target = SslSessionRef>§

Source

pub fn id(&self) -> &[u8]

Returns the SSL session ID.

This corresponds to SSL_SESSION_get_id.

Source

pub fn master_key_len(&self) -> usize

Returns the length of the master key.

This corresponds to SSL_SESSION_get_master_key.

Source

pub fn master_key(&self, buf: &mut [u8]) -> usize

Copies the master key into the provided buffer.

Returns the number of bytes written, or the size of the master key if the buffer is empty.

This corresponds to SSL_SESSION_get_master_key.

Source

pub fn max_early_data(&self) -> u32

Gets the maximum amount of early data that can be sent on this session.

Requires OpenSSL 1.1.1 or LibreSSL 3.4.0 or newer.

This corresponds to SSL_SESSION_get_max_early_data.

Source

pub fn time(&self) -> i64

Returns the time at which the session was established, in seconds since the Unix epoch.

This corresponds to SSL_SESSION_get_time.

Source

pub fn timeout(&self) -> i64

Returns the sessions timeout, in seconds.

A session older than this time should not be used for session resumption.

This corresponds to SSL_SESSION_get_timeout.

Source

pub fn protocol_version(&self) -> SslVersion

Returns the session’s TLS protocol version.

Requires OpenSSL 1.1.0 or LibreSSL 2.7.0 or newer.

This corresponds to SSL_SESSION_get_protocol_version.

Source

pub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>

Serializes the session into a DER-encoded structure.

This corresponds to i2d_SSL_SESSION.

Trait Implementations§

Source§

impl AsRef<SslSessionRef> for SslSession

Source§

fn as_ref(&self) -> &SslSessionRef

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

impl Borrow<SslSessionRef> for SslSession

Source§

fn borrow(&self) -> &SslSessionRef

Immutably borrows from an owned value. Read more
Source§

impl Clone for SslSession

Source§

fn clone(&self) -> SslSession

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Deref for SslSession

Source§

type Target = SslSessionRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &SslSessionRef

Dereferences the value.
Source§

impl DerefMut for SslSession

Source§

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

Mutably dereferences the value.
Source§

impl Drop for SslSession

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl ForeignType for SslSession

Source§

type CType = SSL_SESSION

The raw C type.
Source§

type Ref = SslSessionRef

The type representing a reference to this type.
Source§

unsafe fn from_ptr(ptr: *mut SSL_SESSION) -> SslSession

Constructs an instance of this type from its raw type.
Source§

fn as_ptr(&self) -> *mut SSL_SESSION

Returns a raw pointer to the wrapped value.
Source§

impl Send for SslSession

Source§

impl Sync for SslSession

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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 = 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.