192f3ab15Sopenharmony_ciuse super::*; 292f3ab15Sopenharmony_ciuse libc::*; 392f3ab15Sopenharmony_ci 492f3ab15Sopenharmony_ciextern "C" { 592f3ab15Sopenharmony_ci #[deprecated(note = "use CRYPTO_set_locking_callback__fixed_rust instead")] 692f3ab15Sopenharmony_ci #[cfg(not(ossl110))] 792f3ab15Sopenharmony_ci pub fn CRYPTO_set_locking_callback( 892f3ab15Sopenharmony_ci func: unsafe extern "C" fn(mode: c_int, n: c_int, file: *const c_char, line: c_int), 992f3ab15Sopenharmony_ci ); 1092f3ab15Sopenharmony_ci 1192f3ab15Sopenharmony_ci #[deprecated(note = "use CRYPTO_set_id_callback__fixed_rust instead")] 1292f3ab15Sopenharmony_ci #[cfg(not(ossl110))] 1392f3ab15Sopenharmony_ci pub fn CRYPTO_set_id_callback(func: unsafe extern "C" fn() -> c_ulong); 1492f3ab15Sopenharmony_ci} 1592f3ab15Sopenharmony_ci 1692f3ab15Sopenharmony_cicfg_if! { 1792f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 1892f3ab15Sopenharmony_ci type CRYPTO_EX_new_ret = (); 1992f3ab15Sopenharmony_ci type CRYPTO_EX_dup_from = *const CRYPTO_EX_DATA; 2092f3ab15Sopenharmony_ci } else { 2192f3ab15Sopenharmony_ci type CRYPTO_EX_new_ret = c_int; 2292f3ab15Sopenharmony_ci type CRYPTO_EX_dup_from = *mut CRYPTO_EX_DATA; 2392f3ab15Sopenharmony_ci } 2492f3ab15Sopenharmony_ci} 2592f3ab15Sopenharmony_ci 2692f3ab15Sopenharmony_cicfg_if! { 2792f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 2892f3ab15Sopenharmony_ci type CRYPTO_EX_dup_from_d = *mut *mut c_void; 2992f3ab15Sopenharmony_ci } else { 3092f3ab15Sopenharmony_ci type CRYPTO_EX_dup_from_d = *mut c_void; 3192f3ab15Sopenharmony_ci } 3292f3ab15Sopenharmony_ci} 3392f3ab15Sopenharmony_ci 3492f3ab15Sopenharmony_ci// FIXME should be options 3592f3ab15Sopenharmony_cipub type CRYPTO_EX_new = unsafe extern "C" fn( 3692f3ab15Sopenharmony_ci parent: *mut c_void, 3792f3ab15Sopenharmony_ci ptr: *mut c_void, 3892f3ab15Sopenharmony_ci ad: *mut CRYPTO_EX_DATA, 3992f3ab15Sopenharmony_ci idx: c_int, 4092f3ab15Sopenharmony_ci argl: c_long, 4192f3ab15Sopenharmony_ci argp: *mut c_void, 4292f3ab15Sopenharmony_ci) -> CRYPTO_EX_new_ret; 4392f3ab15Sopenharmony_cipub type CRYPTO_EX_dup = unsafe extern "C" fn( 4492f3ab15Sopenharmony_ci to: *mut CRYPTO_EX_DATA, 4592f3ab15Sopenharmony_ci from: CRYPTO_EX_dup_from, 4692f3ab15Sopenharmony_ci from_d: CRYPTO_EX_dup_from_d, 4792f3ab15Sopenharmony_ci idx: c_int, 4892f3ab15Sopenharmony_ci argl: c_long, 4992f3ab15Sopenharmony_ci argp: *mut c_void, 5092f3ab15Sopenharmony_ci) -> c_int; 5192f3ab15Sopenharmony_cipub type CRYPTO_EX_free = unsafe extern "C" fn( 5292f3ab15Sopenharmony_ci parent: *mut c_void, 5392f3ab15Sopenharmony_ci ptr: *mut c_void, 5492f3ab15Sopenharmony_ci ad: *mut CRYPTO_EX_DATA, 5592f3ab15Sopenharmony_ci idx: c_int, 5692f3ab15Sopenharmony_ci argl: c_long, 5792f3ab15Sopenharmony_ci argp: *mut c_void, 5892f3ab15Sopenharmony_ci); 5992f3ab15Sopenharmony_ci 6092f3ab15Sopenharmony_ci#[cfg(ossl110)] 6192f3ab15Sopenharmony_ci#[inline] 6292f3ab15Sopenharmony_ci#[track_caller] 6392f3ab15Sopenharmony_cipub unsafe fn OPENSSL_malloc(num: usize) -> *mut c_void { 6492f3ab15Sopenharmony_ci CRYPTO_malloc( 6592f3ab15Sopenharmony_ci num, 6692f3ab15Sopenharmony_ci concat!(file!(), "\0").as_ptr() as *const _, 6792f3ab15Sopenharmony_ci line!() as _, 6892f3ab15Sopenharmony_ci ) 6992f3ab15Sopenharmony_ci} 7092f3ab15Sopenharmony_ci 7192f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 7292f3ab15Sopenharmony_ci#[inline] 7392f3ab15Sopenharmony_ci#[track_caller] 7492f3ab15Sopenharmony_cipub unsafe fn OPENSSL_malloc(num: c_int) -> *mut c_void { 7592f3ab15Sopenharmony_ci CRYPTO_malloc( 7692f3ab15Sopenharmony_ci num, 7792f3ab15Sopenharmony_ci concat!(file!(), "\0").as_ptr() as *const _, 7892f3ab15Sopenharmony_ci line!() as _, 7992f3ab15Sopenharmony_ci ) 8092f3ab15Sopenharmony_ci} 8192f3ab15Sopenharmony_ci 8292f3ab15Sopenharmony_ci#[cfg(ossl110)] 8392f3ab15Sopenharmony_ci#[inline] 8492f3ab15Sopenharmony_ci#[track_caller] 8592f3ab15Sopenharmony_cipub unsafe fn OPENSSL_free(addr: *mut c_void) { 8692f3ab15Sopenharmony_ci CRYPTO_free( 8792f3ab15Sopenharmony_ci addr, 8892f3ab15Sopenharmony_ci concat!(file!(), "\0").as_ptr() as *const _, 8992f3ab15Sopenharmony_ci line!() as _, 9092f3ab15Sopenharmony_ci ) 9192f3ab15Sopenharmony_ci} 9292f3ab15Sopenharmony_ci 9392f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 9492f3ab15Sopenharmony_ci#[inline] 9592f3ab15Sopenharmony_cipub unsafe fn OPENSSL_free(addr: *mut c_void) { 9692f3ab15Sopenharmony_ci CRYPTO_free(addr) 9792f3ab15Sopenharmony_ci} 9892f3ab15Sopenharmony_ci 9992f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 10092f3ab15Sopenharmony_cipub const CRYPTO_LOCK_X509: c_int = 3; 10192f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 10292f3ab15Sopenharmony_cipub const CRYPTO_LOCK_EVP_PKEY: c_int = 10; 10392f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 10492f3ab15Sopenharmony_cipub const CRYPTO_LOCK_SSL_CTX: c_int = 12; 10592f3ab15Sopenharmony_ci#[cfg(not(ossl110))] 10692f3ab15Sopenharmony_cipub const CRYPTO_LOCK_SSL_SESSION: c_int = 14; 10792f3ab15Sopenharmony_ci 10892f3ab15Sopenharmony_cicfg_if! { 10992f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 11092f3ab15Sopenharmony_ci pub const CRYPTO_EX_INDEX_SSL: c_int = 0; 11192f3ab15Sopenharmony_ci pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 1; 11292f3ab15Sopenharmony_ci } else if #[cfg(libressl)] { 11392f3ab15Sopenharmony_ci pub const CRYPTO_EX_INDEX_SSL: c_int = 1; 11492f3ab15Sopenharmony_ci pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 2; 11592f3ab15Sopenharmony_ci } 11692f3ab15Sopenharmony_ci} 11792f3ab15Sopenharmony_ci 11892f3ab15Sopenharmony_cicfg_if! { 11992f3ab15Sopenharmony_ci if #[cfg(any(ossl110, libressl271))] { 12092f3ab15Sopenharmony_ci pub const OPENSSL_VERSION: c_int = 0; 12192f3ab15Sopenharmony_ci pub const OPENSSL_CFLAGS: c_int = 1; 12292f3ab15Sopenharmony_ci pub const OPENSSL_BUILT_ON: c_int = 2; 12392f3ab15Sopenharmony_ci pub const OPENSSL_PLATFORM: c_int = 3; 12492f3ab15Sopenharmony_ci pub const OPENSSL_DIR: c_int = 4; 12592f3ab15Sopenharmony_ci } else { 12692f3ab15Sopenharmony_ci pub const SSLEAY_VERSION: c_int = 0; 12792f3ab15Sopenharmony_ci pub const SSLEAY_CFLAGS: c_int = 2; 12892f3ab15Sopenharmony_ci pub const SSLEAY_BUILT_ON: c_int = 3; 12992f3ab15Sopenharmony_ci pub const SSLEAY_PLATFORM: c_int = 4; 13092f3ab15Sopenharmony_ci pub const SSLEAY_DIR: c_int = 5; 13192f3ab15Sopenharmony_ci } 13292f3ab15Sopenharmony_ci} 13392f3ab15Sopenharmony_ci 13492f3ab15Sopenharmony_cipub const CRYPTO_LOCK: c_int = 1; 135