Expose SslSession <-> DER conversion

This commit is contained in:
Benjamin Saunders 2018-04-29 01:54:16 -07:00
parent 6f59406067
commit 47431f66bb
2 changed files with 26 additions and 0 deletions

View File

@ -2635,6 +2635,9 @@ extern "C" {
pub fn SSL_SESSION_free(s: *mut SSL_SESSION);
pub fn SSL_SESSION_get_id(s: *const SSL_SESSION, len: *mut c_uint) -> *const c_uchar;
pub fn d2i_SSL_SESSION(a: *mut *mut SSL_SESSION, pp: *mut *const c_uchar, len: c_long) -> *mut SSL_SESSION;
pub fn i2d_SSL_SESSION(s: *mut SSL_SESSION, pp: *mut *mut c_uchar) -> c_int;
#[cfg(not(ossl101))]
pub fn SSL_CTX_set_alpn_protos(s: *mut SSL_CTX, data: *const c_uchar, len: c_uint) -> c_int;

View File

@ -1914,6 +1914,19 @@ impl Clone for SslSession {
}
}
impl SslSession {
from_der! {
/// Deserializes a DER-encoded session structure.
///
/// This corresponds to [`d2i_SSL_SESSION`].
///
/// [`d2i_SSL_SESSION`]: https://www.openssl.org/docs/man1.0.2/ssl/d2i_SSL_SESSION.html
from_der,
SslSession,
ffi::d2i_SSL_SESSION
}
}
impl ToOwned for SslSessionRef {
type Owned = SslSession;
@ -1958,6 +1971,16 @@ impl SslSessionRef {
pub fn master_key(&self, buf: &mut [u8]) -> usize {
unsafe { compat::SSL_SESSION_get_master_key(self.as_ptr(), buf.as_mut_ptr(), buf.len()) }
}
to_der! {
/// Serializes the session into a DER-encoded structure.
///
/// This corresponds to [`i2d_SSL_SESSION`].
///
/// [`i2d_SSL_SESSION`]: https://www.openssl.org/docs/man1.0.2/ssl/i2d_SSL_SESSION.html
to_der,
ffi::i2d_SSL_SESSION
}
}
foreign_type! {