aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys/src
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2017-01-04 20:54:53 -0800
committerSteven Fackler <[email protected]>2017-01-04 20:54:53 -0800
commit336175990cb3584b85385a093b2d1e245ffdb1f1 (patch)
treed476c779001d4d0f9c6177791e7993da5c7fce06 /openssl-sys/src
parentRelease v0.9.5 (diff)
downloadrust-openssl-336175990cb3584b85385a093b2d1e245ffdb1f1.tar.xz
rust-openssl-336175990cb3584b85385a093b2d1e245ffdb1f1.zip
Add SSL_SESSION
Diffstat (limited to 'openssl-sys/src')
-rw-r--r--openssl-sys/src/libressl.rs36
-rw-r--r--openssl-sys/src/ossl10x.rs63
-rw-r--r--openssl-sys/src/ossl110.rs1
3 files changed, 97 insertions, 3 deletions
diff --git a/openssl-sys/src/libressl.rs b/openssl-sys/src/libressl.rs
index 0f20713e..83c5aee6 100644
--- a/openssl-sys/src/libressl.rs
+++ b/openssl-sys/src/libressl.rs
@@ -359,6 +359,38 @@ pub struct SSL_CTX {
}
#[repr(C)]
+pub struct SSL_SESSION {
+ ssl_version: c_int,
+ master_key_length: c_int,
+ master_key: [c_uchar; SSL_MAX_MASTER_KEY_LENGTH as usize],
+ session_id_length: c_uint,
+ session_id: [c_uchar; SSL_MAX_SSL_SESSION_ID_LENGTH as usize],
+ sid_ctx_length: c_uint,
+ sid_ctx: [c_uchar; SSL_MAX_SID_CTX_LENGTH as usize],
+ not_resumable: c_int,
+ sess_cert: *mut c_void,
+ peer: *mut X509,
+ verify_result: c_long,
+ timeout: c_long,
+ time: time_t,
+ references: c_int,
+ cipher: *const c_void,
+ cipher_id: c_ulong,
+ ciphers: *mut c_void,
+ ex_data: ::CRYPTO_EX_DATA,
+ prev: *mut c_void,
+ next: *mut c_void,
+ tlsext_hostname: *mut c_char,
+ tlsext_ecpointformatlist_length: size_t,
+ tlsext_ecpointformatlist: *mut u8,
+ tlsext_ellipticcurvelist_length: size_t,
+ tlsext_ellipticcurvelist: *mut u16,
+ tlsext_tick: *mut c_uchar,
+ tlsext_ticklen: size_t,
+ tlsext_tick_lifetime_hint: c_long,
+}
+
+#[repr(C)]
pub struct X509_VERIFY_PARAM {
pub name: *mut c_char,
pub check_time: time_t,
@@ -393,6 +425,10 @@ pub const SSL_OP_SINGLE_ECDH_USE: c_ulong = 0x00080000;
pub const SSL_OP_SINGLE_DH_USE: c_ulong = 0x00100000;
pub const SSL_OP_NO_SSLv2: c_ulong = 0x0;
+pub const SSL_MAX_SSL_SESSION_ID_LENGTH: c_int = 32;
+pub const SSL_MAX_SID_CTX_LENGTH: c_int = 32;
+pub const SSL_MAX_MASTER_KEY_LENGTH: c_int = 48;
+
pub const SSLEAY_VERSION : c_int = 0;
pub const SSLEAY_CFLAGS : c_int = 2;
pub const SSLEAY_BUILT_ON : c_int = 3;
diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs
index 4f418f14..5b0ca3d5 100644
--- a/openssl-sys/src/ossl10x.rs
+++ b/openssl-sys/src/ossl10x.rs
@@ -2,9 +2,7 @@ use std::sync::{Mutex, MutexGuard};
use std::sync::{Once, ONCE_INIT};
use std::mem;
-use libc::{c_int, c_char, c_void, c_long, c_uchar, size_t, c_uint, c_ulong};
-#[cfg(not(ossl101))]
-use libc::time_t;
+use libc::{c_int, c_char, c_void, c_long, c_uchar, size_t, c_uint, c_ulong, time_t};
#[repr(C)]
pub struct stack_st_ASN1_OBJECT {
@@ -418,6 +416,59 @@ pub struct SSL_CTX {
}
#[repr(C)]
+pub struct SSL_SESSION {
+ ssl_version: c_int,
+ key_arg_length: c_uint,
+ key_arg: [c_uchar; SSL_MAX_KEY_ARG_LENGTH as usize],
+ master_key_length: c_uint,
+ master_key: [c_uchar; SSL_MAX_MASTER_KEY_LENGTH as usize],
+ session_id_length: c_uint,
+ session_id: [c_uchar; SSL_MAX_SSL_SESSION_ID_LENGTH as usize],
+ sid_ctx_length: c_uint,
+ sid_ctx: [c_uchar; SSL_MAX_SID_CTX_LENGTH as usize],
+ #[cfg(not(osslconf = "OPENSSL_NO_KRB5"))]
+ krb5_client_princ_len: c_uint,
+ #[cfg(not(osslconf = "OPENSSL_NO_KRB5"))]
+ krb5_client_princ: [c_uchar; SSL_MAX_KRB5_PRINCIPAL_LENGTH],
+ #[cfg(not(osslconf = "OPENSSL_NO_PSK"))]
+ psk_identity_hint: *mut c_char,
+ #[cfg(not(osslconf = "OPENSSL_NO_PSK"))]
+ psk_identity: *mut c_char,
+ not_resumable: c_int,
+ sess_cert: *mut c_void,
+ peer: *mut X509,
+ verify_result: c_long,
+ references: c_int,
+ timeout: c_long,
+ time: time_t,
+ compress_meth: c_uint,
+ cipher: *const c_void,
+ cipher_id: c_ulong,
+ ciphers: *mut c_void,
+ ex_data: ::CRYPTO_EX_DATA,
+ prev: *mut c_void,
+ next: *mut c_void,
+ #[cfg(not(osslconf = "OPENSSL_NO_TLSEXT"))]
+ tlsext_hostname: *mut c_char,
+ #[cfg(all(not(osslconf = "OPENSSL_NO_TLSEXT"), not(osslconf = "OPENSSL_NO_EC")))]
+ tlsext_ecpointformatlist_length: size_t,
+ #[cfg(all(not(osslconf = "OPENSSL_NO_TLSEXT"), not(osslconf = "OPENSSL_NO_EC")))]
+ tlsext_ecpointformatlist: *mut c_uchar,
+ #[cfg(all(not(osslconf = "OPENSSL_NO_TLSEXT"), not(osslconf = "OPENSSL_NO_EC")))]
+ tlsext_ellipticcurvelist_length: size_t,
+ #[cfg(all(not(osslconf = "OPENSSL_NO_TLSEXT"), not(osslconf = "OPENSSL_NO_EC")))]
+ tlsext_ellipticcurvelist: *mut c_uchar,
+ #[cfg(not(osslconf = "OPENSSL_NO_TLSEXT"))]
+ tlsext_tick: *mut c_uchar,
+ #[cfg(not(osslconf = "OPENSSL_NO_TLSEXT"))]
+ tlsext_ticklen: size_t,
+ #[cfg(not(osslconf = "OPENSSL_NO_TLSEXT"))]
+ tlsext_tick_lifetime_hint: c_long,
+ #[cfg(not(osslconf = "OPENSSL_NO_SRP"))]
+ srp_username: *mut c_char,
+}
+
+#[repr(C)]
pub struct SRP_CTX {
SRP_cb_arg: *mut c_void,
TLS_ext_srp_username_callback: *mut c_void,
@@ -470,6 +521,12 @@ pub const SSL_OP_SINGLE_ECDH_USE: c_ulong = 0x00080000;
pub const SSL_OP_SINGLE_DH_USE: c_ulong = 0x00100000;
pub const SSL_OP_NO_SSLv2: c_ulong = 0x01000000;
+pub const SSL_MAX_SSL_SESSION_ID_LENGTH: c_int = 32;
+pub const SSL_MAX_SID_CTX_LENGTH: c_int = 32;
+pub const SSL_MAX_KEY_ARG_LENGTH: c_int = 8;
+pub const SSL_MAX_MASTER_KEY_LENGTH: c_int = 48;
+pub const SSL_MAX_KRB5_PRINCIPAL_LENGTH: c_int = 256;
+
pub const SSLEAY_VERSION : c_int = 0;
pub const SSLEAY_CFLAGS : c_int = 2;
pub const SSLEAY_BUILT_ON : c_int = 3;
diff --git a/openssl-sys/src/ossl110.rs b/openssl-sys/src/ossl110.rs
index bb4fa19b..9a5d287b 100644
--- a/openssl-sys/src/ossl110.rs
+++ b/openssl-sys/src/ossl110.rs
@@ -13,6 +13,7 @@ pub enum HMAC_CTX {}
pub enum OPENSSL_STACK {}
pub enum RSA {}
pub enum SSL_CTX {}
+pub enum SSL_SESSION {}
pub enum stack_st_ASN1_OBJECT {}
pub enum stack_st_GENERAL_NAME {}
pub enum stack_st_OPENSSL_STRING {}