192f3ab15Sopenharmony_ciuse libc::*; 292f3ab15Sopenharmony_ciuse std::ptr; 392f3ab15Sopenharmony_ci 492f3ab15Sopenharmony_ciuse super::*; 592f3ab15Sopenharmony_ci 692f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 792f3ab15Sopenharmony_cipub const SSL_MAX_KRB5_PRINCIPAL_LENGTH: c_int = 256; 892f3ab15Sopenharmony_ci 992f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 1092f3ab15Sopenharmony_cipub const SSL_MAX_SSL_SESSION_ID_LENGTH: c_int = 32; 1192f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 1292f3ab15Sopenharmony_cipub const SSL_MAX_SID_CTX_LENGTH: c_int = 32; 1392f3ab15Sopenharmony_ci 1492f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 1592f3ab15Sopenharmony_cipub const SSL_MAX_KEY_ARG_LENGTH: c_int = 8; 1692f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 1792f3ab15Sopenharmony_cipub const SSL_MAX_MASTER_KEY_LENGTH: c_int = 48; 1892f3ab15Sopenharmony_ci 1992f3ab15Sopenharmony_cipub const SSL_SENT_SHUTDOWN: c_int = 1; 2092f3ab15Sopenharmony_cipub const SSL_RECEIVED_SHUTDOWN: c_int = 2; 2192f3ab15Sopenharmony_ci 2292f3ab15Sopenharmony_cipub const SSL_FILETYPE_PEM: c_int = X509_FILETYPE_PEM; 2392f3ab15Sopenharmony_cipub const SSL_FILETYPE_ASN1: c_int = X509_FILETYPE_ASN1; 2492f3ab15Sopenharmony_ci 2592f3ab15Sopenharmony_ci#[cfg(ossl111)] 2692f3ab15Sopenharmony_cipub const SSL_EXT_TLS_ONLY: c_uint = 0x0001; 2792f3ab15Sopenharmony_ci/* This extension is only allowed in DTLS */ 2892f3ab15Sopenharmony_ci#[cfg(ossl111)] 2992f3ab15Sopenharmony_cipub const SSL_EXT_DTLS_ONLY: c_uint = 0x0002; 3092f3ab15Sopenharmony_ci/* Some extensions may be allowed in DTLS but we don't implement them for it */ 3192f3ab15Sopenharmony_ci#[cfg(ossl111)] 3292f3ab15Sopenharmony_cipub const SSL_EXT_TLS_IMPLEMENTATION_ONLY: c_uint = 0x0004; 3392f3ab15Sopenharmony_ci/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ 3492f3ab15Sopenharmony_ci#[cfg(ossl111)] 3592f3ab15Sopenharmony_cipub const SSL_EXT_SSL3_ALLOWED: c_uint = 0x0008; 3692f3ab15Sopenharmony_ci/* Extension is only defined for TLS1.2 and below */ 3792f3ab15Sopenharmony_ci#[cfg(ossl111)] 3892f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_2_AND_BELOW_ONLY: c_uint = 0x0010; 3992f3ab15Sopenharmony_ci/* Extension is only defined for TLS1.3 and above */ 4092f3ab15Sopenharmony_ci#[cfg(ossl111)] 4192f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_ONLY: c_uint = 0x0020; 4292f3ab15Sopenharmony_ci/* Ignore this extension during parsing if we are resuming */ 4392f3ab15Sopenharmony_ci#[cfg(ossl111)] 4492f3ab15Sopenharmony_cipub const SSL_EXT_IGNORE_ON_RESUMPTION: c_uint = 0x0040; 4592f3ab15Sopenharmony_ci#[cfg(ossl111)] 4692f3ab15Sopenharmony_cipub const SSL_EXT_CLIENT_HELLO: c_uint = 0x0080; 4792f3ab15Sopenharmony_ci/* Really means TLS1.2 or below */ 4892f3ab15Sopenharmony_ci#[cfg(ossl111)] 4992f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_2_SERVER_HELLO: c_uint = 0x0100; 5092f3ab15Sopenharmony_ci#[cfg(ossl111)] 5192f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_SERVER_HELLO: c_uint = 0x0200; 5292f3ab15Sopenharmony_ci#[cfg(ossl111)] 5392f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS: c_uint = 0x0400; 5492f3ab15Sopenharmony_ci#[cfg(ossl111)] 5592f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST: c_uint = 0x0800; 5692f3ab15Sopenharmony_ci#[cfg(ossl111)] 5792f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_CERTIFICATE: c_uint = 0x1000; 5892f3ab15Sopenharmony_ci#[cfg(ossl111)] 5992f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_NEW_SESSION_TICKET: c_uint = 0x2000; 6092f3ab15Sopenharmony_ci#[cfg(ossl111)] 6192f3ab15Sopenharmony_cipub const SSL_EXT_TLS1_3_CERTIFICATE_REQUEST: c_uint = 0x4000; 6292f3ab15Sopenharmony_ci 6392f3ab15Sopenharmony_cicfg_if! { 6492f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 6592f3ab15Sopenharmony_ci macro_rules! ssl_op_type { 6692f3ab15Sopenharmony_ci () => {u64}; 6792f3ab15Sopenharmony_ci } 6892f3ab15Sopenharmony_ci } else { 6992f3ab15Sopenharmony_ci macro_rules! ssl_op_type { 7092f3ab15Sopenharmony_ci () => {c_ulong}; 7192f3ab15Sopenharmony_ci } 7292f3ab15Sopenharmony_ci } 7392f3ab15Sopenharmony_ci} 7492f3ab15Sopenharmony_ci 7592f3ab15Sopenharmony_cipub const SSL_OP_LEGACY_SERVER_CONNECT: ssl_op_type!() = 0x00000004; 7692f3ab15Sopenharmony_cicfg_if! { 7792f3ab15Sopenharmony_ci if #[cfg(libressl261)] { 7892f3ab15Sopenharmony_ci pub const SSL_OP_TLSEXT_PADDING: ssl_op_type!() = 0x0; 7992f3ab15Sopenharmony_ci } else if #[cfg(any(ossl102, libressl))] { 8092f3ab15Sopenharmony_ci pub const SSL_OP_TLSEXT_PADDING: ssl_op_type!() = 0x10; 8192f3ab15Sopenharmony_ci } 8292f3ab15Sopenharmony_ci} 8392f3ab15Sopenharmony_ci#[cfg(ossl101)] 8492f3ab15Sopenharmony_cipub const SSL_OP_SAFARI_ECDHE_ECDSA_BUG: ssl_op_type!() = 0x00000040; 8592f3ab15Sopenharmony_ci 8692f3ab15Sopenharmony_cipub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: ssl_op_type!() = 0x00000800; 8792f3ab15Sopenharmony_ci 8892f3ab15Sopenharmony_cipub const SSL_OP_NO_QUERY_MTU: ssl_op_type!() = 0x00001000; 8992f3ab15Sopenharmony_cipub const SSL_OP_COOKIE_EXCHANGE: ssl_op_type!() = 0x00002000; 9092f3ab15Sopenharmony_cipub const SSL_OP_NO_TICKET: ssl_op_type!() = 0x00004000; 9192f3ab15Sopenharmony_cicfg_if! { 9292f3ab15Sopenharmony_ci if #[cfg(ossl101)] { 9392f3ab15Sopenharmony_ci pub const SSL_OP_CISCO_ANYCONNECT: ssl_op_type!() = 0x00008000; 9492f3ab15Sopenharmony_ci } else { 9592f3ab15Sopenharmony_ci pub const SSL_OP_CISCO_ANYCONNECT: ssl_op_type!() = 0x0; 9692f3ab15Sopenharmony_ci } 9792f3ab15Sopenharmony_ci} 9892f3ab15Sopenharmony_ci 9992f3ab15Sopenharmony_cipub const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: ssl_op_type!() = 0x00010000; 10092f3ab15Sopenharmony_cicfg_if! { 10192f3ab15Sopenharmony_ci if #[cfg(ossl101)] { 10292f3ab15Sopenharmony_ci pub const SSL_OP_NO_COMPRESSION: ssl_op_type!() = 0x00020000; 10392f3ab15Sopenharmony_ci pub const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: ssl_op_type!() = 0x00040000; 10492f3ab15Sopenharmony_ci } else { 10592f3ab15Sopenharmony_ci pub const SSL_OP_NO_COMPRESSION: ssl_op_type!() = 0x0; 10692f3ab15Sopenharmony_ci pub const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: ssl_op_type!() = 0x0; 10792f3ab15Sopenharmony_ci } 10892f3ab15Sopenharmony_ci} 10992f3ab15Sopenharmony_ci 11092f3ab15Sopenharmony_ci#[cfg(ossl111)] 11192f3ab15Sopenharmony_cipub const SSL_OP_ENABLE_MIDDLEBOX_COMPAT: ssl_op_type!() = 0x00100000; 11292f3ab15Sopenharmony_ci#[cfg(ossl111)] 11392f3ab15Sopenharmony_cipub const SSL_OP_PRIORITIZE_CHACHA: ssl_op_type!() = 0x00200000; 11492f3ab15Sopenharmony_ci 11592f3ab15Sopenharmony_cipub const SSL_OP_CIPHER_SERVER_PREFERENCE: ssl_op_type!() = 0x00400000; 11692f3ab15Sopenharmony_cicfg_if! { 11792f3ab15Sopenharmony_ci if #[cfg(libressl280)] { 11892f3ab15Sopenharmony_ci pub const SSL_OP_TLS_ROLLBACK_BUG: ssl_op_type!() = 0; 11992f3ab15Sopenharmony_ci } else { 12092f3ab15Sopenharmony_ci pub const SSL_OP_TLS_ROLLBACK_BUG: ssl_op_type!() = 0x00800000; 12192f3ab15Sopenharmony_ci } 12292f3ab15Sopenharmony_ci} 12392f3ab15Sopenharmony_ci 12492f3ab15Sopenharmony_cicfg_if! { 12592f3ab15Sopenharmony_ci if #[cfg(ossl101)] { 12692f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSLv3: ssl_op_type!() = 0x02000000; 12792f3ab15Sopenharmony_ci } else { 12892f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSLv3: ssl_op_type!() = 0x0; 12992f3ab15Sopenharmony_ci } 13092f3ab15Sopenharmony_ci} 13192f3ab15Sopenharmony_cipub const SSL_OP_NO_TLSv1_1: ssl_op_type!() = 0x10000000; 13292f3ab15Sopenharmony_cipub const SSL_OP_NO_TLSv1_2: ssl_op_type!() = 0x08000000; 13392f3ab15Sopenharmony_ci 13492f3ab15Sopenharmony_cipub const SSL_OP_NO_TLSv1: ssl_op_type!() = 0x04000000; 13592f3ab15Sopenharmony_cicfg_if! { 13692f3ab15Sopenharmony_ci if #[cfg(ossl102)] { 13792f3ab15Sopenharmony_ci pub const SSL_OP_NO_DTLSv1: ssl_op_type!() = 0x04000000; 13892f3ab15Sopenharmony_ci pub const SSL_OP_NO_DTLSv1_2: ssl_op_type!() = 0x08000000; 13992f3ab15Sopenharmony_ci } else if #[cfg(libressl332)] { 14092f3ab15Sopenharmony_ci pub const SSL_OP_NO_DTLSv1: ssl_op_type!() = 0x40000000; 14192f3ab15Sopenharmony_ci pub const SSL_OP_NO_DTLSv1_2: ssl_op_type!() = 0x80000000; 14292f3ab15Sopenharmony_ci } 14392f3ab15Sopenharmony_ci} 14492f3ab15Sopenharmony_ci#[cfg(any(ossl111, libressl340))] 14592f3ab15Sopenharmony_cipub const SSL_OP_NO_TLSv1_3: ssl_op_type!() = 0x20000000; 14692f3ab15Sopenharmony_ci 14792f3ab15Sopenharmony_ci#[cfg(ossl110h)] 14892f3ab15Sopenharmony_cipub const SSL_OP_NO_RENEGOTIATION: ssl_op_type!() = 0x40000000; 14992f3ab15Sopenharmony_ci 15092f3ab15Sopenharmony_cicfg_if! { 15192f3ab15Sopenharmony_ci if #[cfg(ossl111)] { 15292f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSL_MASK: ssl_op_type!() = SSL_OP_NO_SSLv2 15392f3ab15Sopenharmony_ci | SSL_OP_NO_SSLv3 15492f3ab15Sopenharmony_ci | SSL_OP_NO_TLSv1 15592f3ab15Sopenharmony_ci | SSL_OP_NO_TLSv1_1 15692f3ab15Sopenharmony_ci | SSL_OP_NO_TLSv1_2 15792f3ab15Sopenharmony_ci | SSL_OP_NO_TLSv1_3; 15892f3ab15Sopenharmony_ci } else if #[cfg(ossl102)] { 15992f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSL_MASK: ssl_op_type!() = 16092f3ab15Sopenharmony_ci SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2; 16192f3ab15Sopenharmony_ci } 16292f3ab15Sopenharmony_ci} 16392f3ab15Sopenharmony_ci 16492f3ab15Sopenharmony_cicfg_if! { 16592f3ab15Sopenharmony_ci if #[cfg(libressl261)] { 16692f3ab15Sopenharmony_ci pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: ssl_op_type!() = 0x0; 16792f3ab15Sopenharmony_ci } else { 16892f3ab15Sopenharmony_ci pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: ssl_op_type!() = 0x80000000; 16992f3ab15Sopenharmony_ci } 17092f3ab15Sopenharmony_ci} 17192f3ab15Sopenharmony_ci 17292f3ab15Sopenharmony_cicfg_if! { 17392f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 17492f3ab15Sopenharmony_ci pub const SSL_OP_ALL: ssl_op_type!() = SSL_OP_CRYPTOPRO_TLSEXT_BUG 17592f3ab15Sopenharmony_ci | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 17692f3ab15Sopenharmony_ci | SSL_OP_TLSEXT_PADDING 17792f3ab15Sopenharmony_ci | SSL_OP_SAFARI_ECDHE_ECDSA_BUG; 17892f3ab15Sopenharmony_ci } else if #[cfg(ossl110f)] { 17992f3ab15Sopenharmony_ci pub const SSL_OP_ALL: ssl_op_type!() = SSL_OP_CRYPTOPRO_TLSEXT_BUG 18092f3ab15Sopenharmony_ci | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 18192f3ab15Sopenharmony_ci | SSL_OP_LEGACY_SERVER_CONNECT 18292f3ab15Sopenharmony_ci | SSL_OP_TLSEXT_PADDING 18392f3ab15Sopenharmony_ci | SSL_OP_SAFARI_ECDHE_ECDSA_BUG; 18492f3ab15Sopenharmony_ci } else if #[cfg(libressl261)] { 18592f3ab15Sopenharmony_ci pub const SSL_OP_ALL: ssl_op_type!() = 0x4; 18692f3ab15Sopenharmony_ci } else if #[cfg(libressl)] { 18792f3ab15Sopenharmony_ci pub const SSL_OP_ALL: ssl_op_type!() = 0x80000014; 18892f3ab15Sopenharmony_ci } else { 18992f3ab15Sopenharmony_ci pub const SSL_OP_ALL: ssl_op_type!() = 0x80000BFF; 19092f3ab15Sopenharmony_ci } 19192f3ab15Sopenharmony_ci} 19292f3ab15Sopenharmony_ci 19392f3ab15Sopenharmony_cicfg_if! { 19492f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 19592f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_SESS_ID_BUG: ssl_op_type!() = 0x00000000; 19692f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: ssl_op_type!() = 0x00000000; 19792f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: ssl_op_type!() = 0x00000000; 19892f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: ssl_op_type!() = 0x00000000; 19992f3ab15Sopenharmony_ci pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: ssl_op_type!() = 0x00000000; 20092f3ab15Sopenharmony_ci pub const SSL_OP_TLS_D5_BUG: ssl_op_type!() = 0x00000000; 20192f3ab15Sopenharmony_ci pub const SSL_OP_TLS_BLOCK_PADDING_BUG: ssl_op_type!() = 0x00000000; 20292f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_ECDH_USE: ssl_op_type!() = 0x00000000; 20392f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_DH_USE: ssl_op_type!() = 0x00000000; 20492f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSLv2: ssl_op_type!() = 0x00000000; 20592f3ab15Sopenharmony_ci } else if #[cfg(ossl101)] { 20692f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_SESS_ID_BUG: ssl_op_type!() = 0x00000001; 20792f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: ssl_op_type!() = 0x00000002; 20892f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: ssl_op_type!() = 0x00000008; 20992f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: ssl_op_type!() = 0x00000020; 21092f3ab15Sopenharmony_ci pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: ssl_op_type!() = 0x00000080; 21192f3ab15Sopenharmony_ci pub const SSL_OP_TLS_D5_BUG: ssl_op_type!() = 0x00000100; 21292f3ab15Sopenharmony_ci pub const SSL_OP_TLS_BLOCK_PADDING_BUG: ssl_op_type!() = 0x00000200; 21392f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_ECDH_USE: ssl_op_type!() = 0x00080000; 21492f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_DH_USE: ssl_op_type!() = 0x00100000; 21592f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSLv2: ssl_op_type!() = 0x01000000; 21692f3ab15Sopenharmony_ci } else { 21792f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_SESS_ID_BUG: ssl_op_type!() = 0x0; 21892f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: ssl_op_type!() = 0x0; 21992f3ab15Sopenharmony_ci pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: ssl_op_type!() = 0x0; 22092f3ab15Sopenharmony_ci pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: ssl_op_type!() = 0x0; 22192f3ab15Sopenharmony_ci pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: ssl_op_type!() = 0x0; 22292f3ab15Sopenharmony_ci pub const SSL_OP_TLS_D5_BUG: ssl_op_type!() = 0x0; 22392f3ab15Sopenharmony_ci pub const SSL_OP_TLS_BLOCK_PADDING_BUG: ssl_op_type!() = 0x0; 22492f3ab15Sopenharmony_ci #[cfg(libressl261)] 22592f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_ECDH_USE: ssl_op_type!() = 0x0; 22692f3ab15Sopenharmony_ci #[cfg(not(libressl261))] 22792f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_ECDH_USE: ssl_op_type!() = 0x00080000; 22892f3ab15Sopenharmony_ci pub const SSL_OP_SINGLE_DH_USE: ssl_op_type!() = 0x00100000; 22992f3ab15Sopenharmony_ci pub const SSL_OP_NO_SSLv2: ssl_op_type!() = 0x0; 23092f3ab15Sopenharmony_ci } 23192f3ab15Sopenharmony_ci} 23292f3ab15Sopenharmony_ci 23392f3ab15Sopenharmony_cipub const SSL_MODE_ENABLE_PARTIAL_WRITE: c_long = 0x1; 23492f3ab15Sopenharmony_cipub const SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER: c_long = 0x2; 23592f3ab15Sopenharmony_cipub const SSL_MODE_AUTO_RETRY: c_long = 0x4; 23692f3ab15Sopenharmony_cipub const SSL_MODE_NO_AUTO_CHAIN: c_long = 0x8; 23792f3ab15Sopenharmony_cipub const SSL_MODE_RELEASE_BUFFERS: c_long = 0x10; 23892f3ab15Sopenharmony_ci#[cfg(ossl101)] 23992f3ab15Sopenharmony_cipub const SSL_MODE_SEND_CLIENTHELLO_TIME: c_long = 0x20; 24092f3ab15Sopenharmony_ci#[cfg(ossl101)] 24192f3ab15Sopenharmony_cipub const SSL_MODE_SEND_SERVERHELLO_TIME: c_long = 0x40; 24292f3ab15Sopenharmony_ci#[cfg(ossl101)] 24392f3ab15Sopenharmony_cipub const SSL_MODE_SEND_FALLBACK_SCSV: c_long = 0x80; 24492f3ab15Sopenharmony_ci 24592f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_mode(ctx: *mut SSL_CTX, op: c_long) -> c_long { 24692f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_MODE, op, ptr::null_mut()) 24792f3ab15Sopenharmony_ci} 24892f3ab15Sopenharmony_ci 24992f3ab15Sopenharmony_ci#[cfg(ossl111)] 25092f3ab15Sopenharmony_cipub const SSL_COOKIE_LENGTH: c_int = 4096; 25192f3ab15Sopenharmony_ci 25292f3ab15Sopenharmony_cicfg_if! { 25392f3ab15Sopenharmony_ci if #[cfg(not(ossl110))] { 25492f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_get_options(ctx: *const SSL_CTX) -> c_ulong { 25592f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx as *mut _, SSL_CTRL_OPTIONS, 0, ptr::null_mut()) as c_ulong 25692f3ab15Sopenharmony_ci } 25792f3ab15Sopenharmony_ci 25892f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_set_options(ctx: *const SSL_CTX, op: c_ulong) -> c_ulong { 25992f3ab15Sopenharmony_ci SSL_CTX_ctrl( 26092f3ab15Sopenharmony_ci ctx as *mut _, 26192f3ab15Sopenharmony_ci SSL_CTRL_OPTIONS, 26292f3ab15Sopenharmony_ci op as c_long, 26392f3ab15Sopenharmony_ci ptr::null_mut(), 26492f3ab15Sopenharmony_ci ) as c_ulong 26592f3ab15Sopenharmony_ci } 26692f3ab15Sopenharmony_ci 26792f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_clear_options(ctx: *const SSL_CTX, op: c_ulong) -> c_ulong { 26892f3ab15Sopenharmony_ci SSL_CTX_ctrl( 26992f3ab15Sopenharmony_ci ctx as *mut _, 27092f3ab15Sopenharmony_ci SSL_CTRL_CLEAR_OPTIONS, 27192f3ab15Sopenharmony_ci op as c_long, 27292f3ab15Sopenharmony_ci ptr::null_mut(), 27392f3ab15Sopenharmony_ci ) as c_ulong 27492f3ab15Sopenharmony_ci } 27592f3ab15Sopenharmony_ci } 27692f3ab15Sopenharmony_ci} 27792f3ab15Sopenharmony_ci 27892f3ab15Sopenharmony_cipub unsafe fn SSL_set_mtu(ssl: *mut SSL, mtu: c_long) -> c_long { 27992f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_SET_MTU, mtu, ptr::null_mut()) 28092f3ab15Sopenharmony_ci} 28192f3ab15Sopenharmony_ci 28292f3ab15Sopenharmony_ci#[cfg(ossl110)] 28392f3ab15Sopenharmony_cipub unsafe fn SSL_get_extms_support(ssl: *mut SSL) -> c_long { 28492f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_GET_EXTMS_SUPPORT, 0, ptr::null_mut()) 28592f3ab15Sopenharmony_ci} 28692f3ab15Sopenharmony_ci 28792f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_OFF: c_long = 0x0; 28892f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_CLIENT: c_long = 0x1; 28992f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_SERVER: c_long = 0x2; 29092f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_BOTH: c_long = SSL_SESS_CACHE_CLIENT | SSL_SESS_CACHE_SERVER; 29192f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_NO_AUTO_CLEAR: c_long = 0x80; 29292f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: c_long = 0x100; 29392f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_NO_INTERNAL_STORE: c_long = 0x200; 29492f3ab15Sopenharmony_cipub const SSL_SESS_CACHE_NO_INTERNAL: c_long = 29592f3ab15Sopenharmony_ci SSL_SESS_CACHE_NO_INTERNAL_LOOKUP | SSL_SESS_CACHE_NO_INTERNAL_STORE; 29692f3ab15Sopenharmony_ci 29792f3ab15Sopenharmony_cipub const OPENSSL_NPN_UNSUPPORTED: c_int = 0; 29892f3ab15Sopenharmony_cipub const OPENSSL_NPN_NEGOTIATED: c_int = 1; 29992f3ab15Sopenharmony_cipub const OPENSSL_NPN_NO_OVERLAP: c_int = 2; 30092f3ab15Sopenharmony_ci 30192f3ab15Sopenharmony_cipub const SSL_AD_ILLEGAL_PARAMETER: c_int = SSL3_AD_ILLEGAL_PARAMETER; 30292f3ab15Sopenharmony_cipub const SSL_AD_DECODE_ERROR: c_int = TLS1_AD_DECODE_ERROR; 30392f3ab15Sopenharmony_cipub const SSL_AD_UNRECOGNIZED_NAME: c_int = TLS1_AD_UNRECOGNIZED_NAME; 30492f3ab15Sopenharmony_cipub const SSL_ERROR_NONE: c_int = 0; 30592f3ab15Sopenharmony_cipub const SSL_ERROR_SSL: c_int = 1; 30692f3ab15Sopenharmony_cipub const SSL_ERROR_SYSCALL: c_int = 5; 30792f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_ACCEPT: c_int = 8; 30892f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_CONNECT: c_int = 7; 30992f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_READ: c_int = 2; 31092f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_WRITE: c_int = 3; 31192f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_X509_LOOKUP: c_int = 4; 31292f3ab15Sopenharmony_cipub const SSL_ERROR_ZERO_RETURN: c_int = 6; 31392f3ab15Sopenharmony_ci#[cfg(ossl111)] 31492f3ab15Sopenharmony_cipub const SSL_ERROR_WANT_CLIENT_HELLO_CB: c_int = 11; 31592f3ab15Sopenharmony_cipub const SSL_VERIFY_NONE: c_int = 0; 31692f3ab15Sopenharmony_cipub const SSL_VERIFY_PEER: c_int = 1; 31792f3ab15Sopenharmony_cipub const SSL_VERIFY_FAIL_IF_NO_PEER_CERT: c_int = 2; 31892f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TMP_DH: c_int = 3; 31992f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TMP_ECDH: c_int = 4; 32092f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl101, not(ossl110))))] 32192f3ab15Sopenharmony_cipub const SSL_CTRL_GET_SESSION_REUSED: c_int = 8; 32292f3ab15Sopenharmony_cipub const SSL_CTRL_EXTRA_CHAIN_CERT: c_int = 14; 32392f3ab15Sopenharmony_cipub const SSL_CTRL_SET_MTU: c_int = 17; 32492f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl101, not(ossl110))))] 32592f3ab15Sopenharmony_cipub const SSL_CTRL_OPTIONS: c_int = 32; 32692f3ab15Sopenharmony_cipub const SSL_CTRL_MODE: c_int = 33; 32792f3ab15Sopenharmony_cipub const SSL_CTRL_SET_READ_AHEAD: c_int = 41; 32892f3ab15Sopenharmony_cipub const SSL_CTRL_SET_SESS_CACHE_SIZE: c_int = 42; 32992f3ab15Sopenharmony_cipub const SSL_CTRL_GET_SESS_CACHE_SIZE: c_int = 43; 33092f3ab15Sopenharmony_cipub const SSL_CTRL_SET_SESS_CACHE_MODE: c_int = 44; 33192f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_SERVERNAME_CB: c_int = 53; 33292f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG: c_int = 54; 33392f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_HOSTNAME: c_int = 55; 33492f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB: c_int = 63; 33592f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG: c_int = 64; 33692f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE: c_int = 65; 33792f3ab15Sopenharmony_cipub const SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP: c_int = 70; 33892f3ab15Sopenharmony_cipub const SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP: c_int = 71; 33992f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl101, not(ossl110))))] 34092f3ab15Sopenharmony_cipub const SSL_CTRL_CLEAR_OPTIONS: c_int = 77; 34192f3ab15Sopenharmony_cipub const SSL_CTRL_GET_EXTRA_CHAIN_CERTS: c_int = 82; 34292f3ab15Sopenharmony_ci#[cfg(ossl102)] 34392f3ab15Sopenharmony_cipub const SSL_CTRL_CHAIN_CERT: c_int = 89; 34492f3ab15Sopenharmony_ci#[cfg(any(ossl111, libressl252))] 34592f3ab15Sopenharmony_cipub const SSL_CTRL_SET_GROUPS_LIST: c_int = 92; 34692f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl102, not(ossl110))))] 34792f3ab15Sopenharmony_cipub const SSL_CTRL_SET_ECDH_AUTO: c_int = 94; 34892f3ab15Sopenharmony_ci#[cfg(ossl102)] 34992f3ab15Sopenharmony_cipub const SSL_CTRL_SET_SIGALGS_LIST: c_int = 98; 35092f3ab15Sopenharmony_ci#[cfg(ossl102)] 35192f3ab15Sopenharmony_cipub const SSL_CTRL_SET_VERIFY_CERT_STORE: c_int = 106; 35292f3ab15Sopenharmony_ci#[cfg(ossl110)] 35392f3ab15Sopenharmony_cipub const SSL_CTRL_GET_EXTMS_SUPPORT: c_int = 122; 35492f3ab15Sopenharmony_ci#[cfg(any(ossl110, libressl261))] 35592f3ab15Sopenharmony_cipub const SSL_CTRL_SET_MIN_PROTO_VERSION: c_int = 123; 35692f3ab15Sopenharmony_ci#[cfg(any(ossl110, libressl261))] 35792f3ab15Sopenharmony_cipub const SSL_CTRL_SET_MAX_PROTO_VERSION: c_int = 124; 35892f3ab15Sopenharmony_ci#[cfg(any(ossl110g, libressl270))] 35992f3ab15Sopenharmony_cipub const SSL_CTRL_GET_MIN_PROTO_VERSION: c_int = 130; 36092f3ab15Sopenharmony_ci#[cfg(any(ossl110g, libressl270))] 36192f3ab15Sopenharmony_cipub const SSL_CTRL_GET_MAX_PROTO_VERSION: c_int = 131; 36292f3ab15Sopenharmony_ci 36392f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_tmp_dh(ctx: *mut SSL_CTX, dh: *mut DH) -> c_long { 36492f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_TMP_DH, 0, dh as *mut c_void) 36592f3ab15Sopenharmony_ci} 36692f3ab15Sopenharmony_ci 36792f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_tmp_ecdh(ctx: *mut SSL_CTX, key: *mut EC_KEY) -> c_long { 36892f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_TMP_ECDH, 0, key as *mut c_void) 36992f3ab15Sopenharmony_ci} 37092f3ab15Sopenharmony_ci 37192f3ab15Sopenharmony_cipub unsafe fn SSL_set_tmp_dh(ssl: *mut SSL, dh: *mut DH) -> c_long { 37292f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_SET_TMP_DH, 0, dh as *mut c_void) 37392f3ab15Sopenharmony_ci} 37492f3ab15Sopenharmony_ci 37592f3ab15Sopenharmony_cipub unsafe fn SSL_set_tmp_ecdh(ssl: *mut SSL, key: *mut EC_KEY) -> c_long { 37692f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_SET_TMP_ECDH, 0, key as *mut c_void) 37792f3ab15Sopenharmony_ci} 37892f3ab15Sopenharmony_ci 37992f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_add_extra_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> c_long { 38092f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_EXTRA_CHAIN_CERT, 0, x509 as *mut c_void) 38192f3ab15Sopenharmony_ci} 38292f3ab15Sopenharmony_ci 38392f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_get_extra_chain_certs( 38492f3ab15Sopenharmony_ci ctx: *mut SSL_CTX, 38592f3ab15Sopenharmony_ci chain: *mut *mut stack_st_X509, 38692f3ab15Sopenharmony_ci) -> c_long { 38792f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_GET_EXTRA_CHAIN_CERTS, 0, chain as *mut c_void) 38892f3ab15Sopenharmony_ci} 38992f3ab15Sopenharmony_ci 39092f3ab15Sopenharmony_ci#[cfg(ossl102)] 39192f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set0_verify_cert_store(ctx: *mut SSL_CTX, st: *mut X509_STORE) -> c_long { 39292f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_VERIFY_CERT_STORE, 0, st as *mut c_void) 39392f3ab15Sopenharmony_ci} 39492f3ab15Sopenharmony_ci 39592f3ab15Sopenharmony_ci#[cfg(ossl102)] 39692f3ab15Sopenharmony_cipub unsafe fn SSL_set0_verify_cert_store(ssl: *mut SSL, st: *mut X509_STORE) -> c_long { 39792f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_SET_VERIFY_CERT_STORE, 0, st as *mut c_void) 39892f3ab15Sopenharmony_ci} 39992f3ab15Sopenharmony_ci 40092f3ab15Sopenharmony_cicfg_if! { 40192f3ab15Sopenharmony_ci if #[cfg(ossl111)] { 40292f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_set1_groups_list(ctx: *mut SSL_CTX, s: *const c_char) -> c_long { 40392f3ab15Sopenharmony_ci SSL_CTX_ctrl( 40492f3ab15Sopenharmony_ci ctx, 40592f3ab15Sopenharmony_ci SSL_CTRL_SET_GROUPS_LIST, 40692f3ab15Sopenharmony_ci 0, 40792f3ab15Sopenharmony_ci s as *const c_void as *mut c_void, 40892f3ab15Sopenharmony_ci ) 40992f3ab15Sopenharmony_ci } 41092f3ab15Sopenharmony_ci } else if #[cfg(libressl251)] { 41192f3ab15Sopenharmony_ci extern "C" { 41292f3ab15Sopenharmony_ci pub fn SSL_CTX_set1_groups_list(ctx: *mut SSL_CTX, s: *const c_char) -> c_int; 41392f3ab15Sopenharmony_ci } 41492f3ab15Sopenharmony_ci } 41592f3ab15Sopenharmony_ci} 41692f3ab15Sopenharmony_ci 41792f3ab15Sopenharmony_ci#[cfg(ossl102)] 41892f3ab15Sopenharmony_cipub unsafe fn SSL_add0_chain_cert(ssl: *mut SSL, ptr: *mut X509) -> c_long { 41992f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_CHAIN_CERT, 0, ptr as *mut c_void) 42092f3ab15Sopenharmony_ci} 42192f3ab15Sopenharmony_ci 42292f3ab15Sopenharmony_ci#[cfg(ossl102)] 42392f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set1_sigalgs_list(ctx: *mut SSL_CTX, s: *const c_char) -> c_long { 42492f3ab15Sopenharmony_ci SSL_CTX_ctrl( 42592f3ab15Sopenharmony_ci ctx, 42692f3ab15Sopenharmony_ci SSL_CTRL_SET_SIGALGS_LIST, 42792f3ab15Sopenharmony_ci 0, 42892f3ab15Sopenharmony_ci s as *const c_void as *mut c_void, 42992f3ab15Sopenharmony_ci ) 43092f3ab15Sopenharmony_ci} 43192f3ab15Sopenharmony_ci 43292f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl102, not(ossl110))))] 43392f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_ecdh_auto(ctx: *mut SSL_CTX, onoff: c_int) -> c_int { 43492f3ab15Sopenharmony_ci SSL_CTX_ctrl( 43592f3ab15Sopenharmony_ci ctx, 43692f3ab15Sopenharmony_ci SSL_CTRL_SET_ECDH_AUTO, 43792f3ab15Sopenharmony_ci onoff as c_long, 43892f3ab15Sopenharmony_ci ptr::null_mut(), 43992f3ab15Sopenharmony_ci ) as c_int 44092f3ab15Sopenharmony_ci} 44192f3ab15Sopenharmony_ci 44292f3ab15Sopenharmony_ci#[cfg(any(libressl, all(ossl102, not(ossl110))))] 44392f3ab15Sopenharmony_cipub unsafe fn SSL_set_ecdh_auto(ssl: *mut SSL, onoff: c_int) -> c_int { 44492f3ab15Sopenharmony_ci SSL_ctrl( 44592f3ab15Sopenharmony_ci ssl, 44692f3ab15Sopenharmony_ci SSL_CTRL_SET_ECDH_AUTO, 44792f3ab15Sopenharmony_ci onoff as c_long, 44892f3ab15Sopenharmony_ci ptr::null_mut(), 44992f3ab15Sopenharmony_ci ) as c_int 45092f3ab15Sopenharmony_ci} 45192f3ab15Sopenharmony_ci 45292f3ab15Sopenharmony_cicfg_if! { 45392f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 45492f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_set_min_proto_version(ctx: *mut SSL_CTX, version: c_int) -> c_int { 45592f3ab15Sopenharmony_ci SSL_CTX_ctrl( 45692f3ab15Sopenharmony_ci ctx, 45792f3ab15Sopenharmony_ci SSL_CTRL_SET_MIN_PROTO_VERSION, 45892f3ab15Sopenharmony_ci version as c_long, 45992f3ab15Sopenharmony_ci ptr::null_mut(), 46092f3ab15Sopenharmony_ci ) as c_int 46192f3ab15Sopenharmony_ci } 46292f3ab15Sopenharmony_ci 46392f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_set_max_proto_version(ctx: *mut SSL_CTX, version: c_int) -> c_int { 46492f3ab15Sopenharmony_ci SSL_CTX_ctrl( 46592f3ab15Sopenharmony_ci ctx, 46692f3ab15Sopenharmony_ci SSL_CTRL_SET_MAX_PROTO_VERSION, 46792f3ab15Sopenharmony_ci version as c_long, 46892f3ab15Sopenharmony_ci ptr::null_mut(), 46992f3ab15Sopenharmony_ci ) as c_int 47092f3ab15Sopenharmony_ci } 47192f3ab15Sopenharmony_ci 47292f3ab15Sopenharmony_ci pub unsafe fn SSL_set_min_proto_version(s: *mut SSL, version: c_int) -> c_int { 47392f3ab15Sopenharmony_ci SSL_ctrl( 47492f3ab15Sopenharmony_ci s, 47592f3ab15Sopenharmony_ci SSL_CTRL_SET_MIN_PROTO_VERSION, 47692f3ab15Sopenharmony_ci version as c_long, 47792f3ab15Sopenharmony_ci ptr::null_mut(), 47892f3ab15Sopenharmony_ci ) as c_int 47992f3ab15Sopenharmony_ci } 48092f3ab15Sopenharmony_ci 48192f3ab15Sopenharmony_ci pub unsafe fn SSL_set_max_proto_version(s: *mut SSL, version: c_int) -> c_int { 48292f3ab15Sopenharmony_ci SSL_ctrl( 48392f3ab15Sopenharmony_ci s, 48492f3ab15Sopenharmony_ci SSL_CTRL_SET_MAX_PROTO_VERSION, 48592f3ab15Sopenharmony_ci version as c_long, 48692f3ab15Sopenharmony_ci ptr::null_mut(), 48792f3ab15Sopenharmony_ci ) as c_int 48892f3ab15Sopenharmony_ci } 48992f3ab15Sopenharmony_ci } 49092f3ab15Sopenharmony_ci} 49192f3ab15Sopenharmony_ci 49292f3ab15Sopenharmony_cicfg_if! { 49392f3ab15Sopenharmony_ci if #[cfg(ossl110g)] { 49492f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_get_min_proto_version(ctx: *mut SSL_CTX) -> c_int { 49592f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, ptr::null_mut()) as c_int 49692f3ab15Sopenharmony_ci } 49792f3ab15Sopenharmony_ci 49892f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_get_max_proto_version(ctx: *mut SSL_CTX) -> c_int { 49992f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, ptr::null_mut()) as c_int 50092f3ab15Sopenharmony_ci } 50192f3ab15Sopenharmony_ci pub unsafe fn SSL_get_min_proto_version(s: *mut SSL) -> c_int { 50292f3ab15Sopenharmony_ci SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, ptr::null_mut()) as c_int 50392f3ab15Sopenharmony_ci } 50492f3ab15Sopenharmony_ci pub unsafe fn SSL_get_max_proto_version(s: *mut SSL) -> c_int { 50592f3ab15Sopenharmony_ci SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, ptr::null_mut()) as c_int 50692f3ab15Sopenharmony_ci } 50792f3ab15Sopenharmony_ci } 50892f3ab15Sopenharmony_ci} 50992f3ab15Sopenharmony_ci 51092f3ab15Sopenharmony_ci#[cfg(ossl111)] 51192f3ab15Sopenharmony_cipub const SSL_CLIENT_HELLO_SUCCESS: c_int = 1; 51292f3ab15Sopenharmony_ci#[cfg(ossl111)] 51392f3ab15Sopenharmony_cipub const SSL_CLIENT_HELLO_ERROR: c_int = 0; 51492f3ab15Sopenharmony_ci#[cfg(ossl111)] 51592f3ab15Sopenharmony_cipub const SSL_CLIENT_HELLO_RETRY: c_int = -1; 51692f3ab15Sopenharmony_ci 51792f3ab15Sopenharmony_ci#[cfg(any(ossl111, libressl340))] 51892f3ab15Sopenharmony_cipub const SSL_READ_EARLY_DATA_ERROR: c_int = 0; 51992f3ab15Sopenharmony_ci#[cfg(any(ossl111, libressl340))] 52092f3ab15Sopenharmony_cipub const SSL_READ_EARLY_DATA_SUCCESS: c_int = 1; 52192f3ab15Sopenharmony_ci#[cfg(any(ossl111, libressl340))] 52292f3ab15Sopenharmony_cipub const SSL_READ_EARLY_DATA_FINISH: c_int = 2; 52392f3ab15Sopenharmony_ci 52492f3ab15Sopenharmony_cicfg_if! { 52592f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 52692f3ab15Sopenharmony_ci pub unsafe fn SSL_get_ex_new_index( 52792f3ab15Sopenharmony_ci l: c_long, 52892f3ab15Sopenharmony_ci p: *mut c_void, 52992f3ab15Sopenharmony_ci newf: Option<CRYPTO_EX_new>, 53092f3ab15Sopenharmony_ci dupf: Option<CRYPTO_EX_dup>, 53192f3ab15Sopenharmony_ci freef: Option<CRYPTO_EX_free>, 53292f3ab15Sopenharmony_ci ) -> c_int { 53392f3ab15Sopenharmony_ci CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) 53492f3ab15Sopenharmony_ci } 53592f3ab15Sopenharmony_ci } 53692f3ab15Sopenharmony_ci} 53792f3ab15Sopenharmony_cicfg_if! { 53892f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 53992f3ab15Sopenharmony_ci pub unsafe fn SSL_CTX_get_ex_new_index( 54092f3ab15Sopenharmony_ci l: c_long, 54192f3ab15Sopenharmony_ci p: *mut c_void, 54292f3ab15Sopenharmony_ci newf: Option<CRYPTO_EX_new>, 54392f3ab15Sopenharmony_ci dupf: Option<CRYPTO_EX_dup>, 54492f3ab15Sopenharmony_ci freef: Option<CRYPTO_EX_free>, 54592f3ab15Sopenharmony_ci ) -> c_int { 54692f3ab15Sopenharmony_ci CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) 54792f3ab15Sopenharmony_ci } 54892f3ab15Sopenharmony_ci } 54992f3ab15Sopenharmony_ci} 55092f3ab15Sopenharmony_ci 55192f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_sess_set_cache_size(ctx: *mut SSL_CTX, t: c_long) -> c_long { 55292f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_SESS_CACHE_SIZE, t, ptr::null_mut()) 55392f3ab15Sopenharmony_ci} 55492f3ab15Sopenharmony_ci 55592f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_sess_get_cache_size(ctx: *mut SSL_CTX) -> c_long { 55692f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_GET_SESS_CACHE_SIZE, 0, ptr::null_mut()) 55792f3ab15Sopenharmony_ci} 55892f3ab15Sopenharmony_ci 55992f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_session_cache_mode(ctx: *mut SSL_CTX, m: c_long) -> c_long { 56092f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_SESS_CACHE_MODE, m, ptr::null_mut()) 56192f3ab15Sopenharmony_ci} 56292f3ab15Sopenharmony_ci 56392f3ab15Sopenharmony_cipub unsafe fn SSL_CTX_set_read_ahead(ctx: *mut SSL_CTX, m: c_long) -> c_long { 56492f3ab15Sopenharmony_ci SSL_CTX_ctrl(ctx, SSL_CTRL_SET_READ_AHEAD, m, ptr::null_mut()) 56592f3ab15Sopenharmony_ci} 56692f3ab15Sopenharmony_ci 56792f3ab15Sopenharmony_ci#[allow(clashing_extern_declarations)] 56892f3ab15Sopenharmony_ciextern "C" { 56992f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_CTX_set_tmp_dh_callback__fixed_rust instead")] 57092f3ab15Sopenharmony_ci pub fn SSL_CTX_set_tmp_dh_callback( 57192f3ab15Sopenharmony_ci ctx: *mut SSL_CTX, 57292f3ab15Sopenharmony_ci dh: unsafe extern "C" fn(ssl: *mut SSL, is_export: c_int, keylength: c_int) -> *mut DH, 57392f3ab15Sopenharmony_ci ); 57492f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_set_tmp_dh_callback__fixed_rust instead")] 57592f3ab15Sopenharmony_ci pub fn SSL_set_tmp_dh_callback( 57692f3ab15Sopenharmony_ci ctx: *mut SSL, 57792f3ab15Sopenharmony_ci dh: unsafe extern "C" fn(ssl: *mut SSL, is_export: c_int, keylength: c_int) -> *mut DH, 57892f3ab15Sopenharmony_ci ); 57992f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_CTX_set_tmp_ecdh_callback__fixed_rust instead")] 58092f3ab15Sopenharmony_ci #[cfg(not(ossl110))] 58192f3ab15Sopenharmony_ci pub fn SSL_CTX_set_tmp_ecdh_callback( 58292f3ab15Sopenharmony_ci ctx: *mut SSL_CTX, 58392f3ab15Sopenharmony_ci ecdh: unsafe extern "C" fn( 58492f3ab15Sopenharmony_ci ssl: *mut SSL, 58592f3ab15Sopenharmony_ci is_export: c_int, 58692f3ab15Sopenharmony_ci keylength: c_int, 58792f3ab15Sopenharmony_ci ) -> *mut EC_KEY, 58892f3ab15Sopenharmony_ci ); 58992f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_set_tmp_ecdh_callback__fixed_rust instead")] 59092f3ab15Sopenharmony_ci #[cfg(not(ossl110))] 59192f3ab15Sopenharmony_ci pub fn SSL_set_tmp_ecdh_callback( 59292f3ab15Sopenharmony_ci ssl: *mut SSL, 59392f3ab15Sopenharmony_ci ecdh: unsafe extern "C" fn( 59492f3ab15Sopenharmony_ci ssl: *mut SSL, 59592f3ab15Sopenharmony_ci is_export: c_int, 59692f3ab15Sopenharmony_ci keylength: c_int, 59792f3ab15Sopenharmony_ci ) -> *mut EC_KEY, 59892f3ab15Sopenharmony_ci ); 59992f3ab15Sopenharmony_ci 60092f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_CTX_callback_ctrl__fixed_rust instead")] 60192f3ab15Sopenharmony_ci pub fn SSL_CTX_callback_ctrl( 60292f3ab15Sopenharmony_ci ctx: *mut SSL_CTX, 60392f3ab15Sopenharmony_ci cmd: c_int, 60492f3ab15Sopenharmony_ci fp: Option<extern "C" fn()>, 60592f3ab15Sopenharmony_ci ) -> c_long; 60692f3ab15Sopenharmony_ci 60792f3ab15Sopenharmony_ci #[deprecated(note = "use SSL_CTX_set_alpn_select_cb__fixed_rust instead")] 60892f3ab15Sopenharmony_ci #[cfg(any(ossl102, libressl261))] 60992f3ab15Sopenharmony_ci pub fn SSL_CTX_set_alpn_select_cb( 61092f3ab15Sopenharmony_ci ssl: *mut SSL_CTX, 61192f3ab15Sopenharmony_ci cb: extern "C" fn( 61292f3ab15Sopenharmony_ci ssl: *mut SSL, 61392f3ab15Sopenharmony_ci out: *mut *const c_uchar, 61492f3ab15Sopenharmony_ci outlen: *mut c_uchar, 61592f3ab15Sopenharmony_ci inbuf: *const c_uchar, 61692f3ab15Sopenharmony_ci inlen: c_uint, 61792f3ab15Sopenharmony_ci arg: *mut c_void, 61892f3ab15Sopenharmony_ci ) -> c_int, 61992f3ab15Sopenharmony_ci arg: *mut c_void, 62092f3ab15Sopenharmony_ci ); 62192f3ab15Sopenharmony_ci} 62292f3ab15Sopenharmony_ci 62392f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 62492f3ab15Sopenharmony_cipub unsafe fn SSL_session_reused(ssl: *mut SSL) -> c_int { 62592f3ab15Sopenharmony_ci SSL_ctrl(ssl, SSL_CTRL_GET_SESSION_REUSED, 0, ptr::null_mut()) as c_int 62692f3ab15Sopenharmony_ci} 62792f3ab15Sopenharmony_ci 62892f3ab15Sopenharmony_ci#[cfg(ossl110)] 62992f3ab15Sopenharmony_cipub const OPENSSL_INIT_LOAD_SSL_STRINGS: u64 = 0x00200000; 63092f3ab15Sopenharmony_ci#[cfg(ossl111b)] 63192f3ab15Sopenharmony_cipub const OPENSSL_INIT_NO_ATEXIT: u64 = 0x00080000; 632