aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffroy Couprie <[email protected]>2015-11-22 20:01:41 +0100
committerGeoffroy Couprie <[email protected]>2015-11-24 17:11:00 +0100
commitdba3a0ced24147414abaa9f8394b9f249b08f599 (patch)
treeda99b20484258027de111f8873f08275ff367945
parenttest SNI support (diff)
downloadrust-openssl-dba3a0ced24147414abaa9f8394b9f249b08f599.tar.xz
rust-openssl-dba3a0ced24147414abaa9f8394b9f249b08f599.zip
implement get/set ssl context
-rw-r--r--openssl-sys/src/lib.rs1
-rw-r--r--openssl/src/ssl/mod.rs8
2 files changed, 9 insertions, 0 deletions
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs
index be33ea4c..e2eaab38 100644
--- a/openssl-sys/src/lib.rs
+++ b/openssl-sys/src/lib.rs
@@ -534,6 +534,7 @@ extern "C" {
pub fn SSL_write(ssl: *mut SSL, buf: *const c_void, num: c_int) -> c_int;
pub fn SSL_get_ex_data_X509_STORE_CTX_idx() -> c_int;
pub fn SSL_get_SSL_CTX(ssl: *mut SSL) -> *mut SSL_CTX;
+ pub fn SSL_set_SSL_CTX(ssl: *mut SSL, ctx: *mut SSL_CTX) -> *mut SSL_CTX;
pub fn SSL_get_current_compression(ssl: *mut SSL) -> *const COMP_METHOD;
pub fn SSL_get_peer_certificate(ssl: *mut SSL) -> *mut X509;
pub fn SSL_get_ssl_method(ssl: *mut SSL) -> *const SSL_METHOD;
diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs
index f73c263a..736e6b4c 100644
--- a/openssl/src/ssl/mod.rs
+++ b/openssl/src/ssl/mod.rs
@@ -982,6 +982,14 @@ impl Ssl {
}
}
+ pub fn set_ssl_context(&self, ctx: &SslContext) -> SslContext {
+ SslContext { ctx: unsafe { ffi::SSL_set_SSL_CTX(self.ssl, ctx.ctx) } }
+ }
+
+ pub fn get_ssl_context(&self) -> SslContext {
+ let ssl_ctx = unsafe { ffi::SSL_get_SSL_CTX(self.ssl) };
+ SslContext { ctx: ssl_ctx }
+ }
}
macro_rules! make_LibSslError {