Merge pull request #906 from Ralith/session-der
Expose SslSession <-> DER conversion
This commit is contained in:
commit
80606fc0f0
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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! {
|
||||
|
|
|
|||
Loading…
Reference in New Issue