From 47431f66bb8c0657475261321e0a947e10c8e93d Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Sun, 29 Apr 2018 01:54:16 -0700 Subject: Expose SslSession <-> DER conversion --- openssl/src/ssl/mod.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'openssl/src') diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index 0f9e8935..ce98b18f 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -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! { -- cgit v1.2.3