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_free(s: *mut SSL_SESSION);
|
||||||
pub fn SSL_SESSION_get_id(s: *const SSL_SESSION, len: *mut c_uint) -> *const c_uchar;
|
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))]
|
#[cfg(not(ossl101))]
|
||||||
pub fn SSL_CTX_set_alpn_protos(s: *mut SSL_CTX, data: *const c_uchar, len: c_uint) -> c_int;
|
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 {
|
impl ToOwned for SslSessionRef {
|
||||||
type Owned = SslSession;
|
type Owned = SslSession;
|
||||||
|
|
||||||
|
|
@ -1958,6 +1971,16 @@ impl SslSessionRef {
|
||||||
pub fn master_key(&self, buf: &mut [u8]) -> usize {
|
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()) }
|
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! {
|
foreign_type! {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue