Add SslCtx::{add,remove}_session
This commit is contained in:
parent
834c16d5c7
commit
913267e68a
|
|
@ -930,6 +930,8 @@ extern "C" {
|
||||||
pub fn SSL_SESSION_free(s: *mut SSL_SESSION);
|
pub fn SSL_SESSION_free(s: *mut SSL_SESSION);
|
||||||
pub fn i2d_SSL_SESSION(s: *mut SSL_SESSION, pp: *mut *mut c_uchar) -> c_int;
|
pub fn i2d_SSL_SESSION(s: *mut SSL_SESSION, pp: *mut *mut c_uchar) -> c_int;
|
||||||
pub fn SSL_set_session(ssl: *mut SSL, session: *mut SSL_SESSION) -> c_int;
|
pub fn SSL_set_session(ssl: *mut SSL, session: *mut SSL_SESSION) -> c_int;
|
||||||
|
pub fn SSL_CTX_add_session(ctx: *mut SSL_CTX, session: *mut SSL_SESSION) -> c_int;
|
||||||
|
pub fn SSL_CTX_remove_session(ctx: *mut SSL_CTX, session: *mut SSL_SESSION) -> c_int;
|
||||||
pub fn d2i_SSL_SESSION(
|
pub fn d2i_SSL_SESSION(
|
||||||
a: *mut *mut SSL_SESSION,
|
a: *mut *mut SSL_SESSION,
|
||||||
pp: *mut *const c_uchar,
|
pp: *mut *const c_uchar,
|
||||||
|
|
|
||||||
|
|
@ -1841,6 +1841,38 @@ impl SslContextRef {
|
||||||
pub fn max_early_data(&self) -> u32 {
|
pub fn max_early_data(&self) -> u32 {
|
||||||
unsafe { ffi::SSL_CTX_get_max_early_data(self.as_ptr()) }
|
unsafe { ffi::SSL_CTX_get_max_early_data(self.as_ptr()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Adds a session to the context's cache.
|
||||||
|
///
|
||||||
|
/// Returns `true` if the session was successfully added to the cache, and `false` if it was already present.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`SSL_CTX_add_session`].
|
||||||
|
///
|
||||||
|
/// # Safety
|
||||||
|
///
|
||||||
|
/// The caller of this method is responsible for ensuring that the session has never been used with another
|
||||||
|
/// `SslContext` than this one.
|
||||||
|
///
|
||||||
|
/// [`SSL_CTX_add_session`]: https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_remove_session.html
|
||||||
|
pub unsafe fn add_session(&self, session: &SslSessionRef) -> bool {
|
||||||
|
ffi::SSL_CTX_add_session(self.as_ptr(), session.as_ptr()) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Removes a session from the context's cache and marks it as non-resumable.
|
||||||
|
///
|
||||||
|
/// Returns `true` if the session was successfully found and removed, and `false` otherwise.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`SSL_CTX_remove_session`].
|
||||||
|
///
|
||||||
|
/// # Safety
|
||||||
|
///
|
||||||
|
/// The caller of this method is responsible for ensuring that the session has never been used with another
|
||||||
|
/// `SslContext` than this one.
|
||||||
|
///
|
||||||
|
/// [`SSL_CTX_remove_session`]: https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_remove_session.html
|
||||||
|
pub unsafe fn remove_session(&self, session: &SslSessionRef) -> bool {
|
||||||
|
ffi::SSL_CTX_remove_session(self.as_ptr(), session.as_ptr()) != 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Information about the state of a cipher.
|
/// Information about the state of a cipher.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue