1 use super::*;
2 use libc::*;
3
4 extern "C" {
5 #[deprecated(note = "use CRYPTO_set_locking_callback__fixed_rust instead")]
6 #[cfg(not(ossl110))]
CRYPTO_set_locking_callback( func: unsafe extern "C" fn(mode: c_int, n: c_int, file: *const c_char, line: c_int), )7 pub fn CRYPTO_set_locking_callback(
8 func: unsafe extern "C" fn(mode: c_int, n: c_int, file: *const c_char, line: c_int),
9 );
10
11 #[deprecated(note = "use CRYPTO_set_id_callback__fixed_rust instead")]
12 #[cfg(not(ossl110))]
CRYPTO_set_id_callback(func: unsafe extern "C" fn() -> c_ulong)13 pub fn CRYPTO_set_id_callback(func: unsafe extern "C" fn() -> c_ulong);
14 }
15
16 cfg_if! {
17 if #[cfg(ossl110)] {
18 type CRYPTO_EX_new_ret = ();
19 type CRYPTO_EX_dup_from = *const CRYPTO_EX_DATA;
20 } else {
21 type CRYPTO_EX_new_ret = c_int;
22 type CRYPTO_EX_dup_from = *mut CRYPTO_EX_DATA;
23 }
24 }
25
26 cfg_if! {
27 if #[cfg(ossl300)] {
28 type CRYPTO_EX_dup_from_d = *mut *mut c_void;
29 } else {
30 type CRYPTO_EX_dup_from_d = *mut c_void;
31 }
32 }
33
34 // FIXME should be options
35 pub type CRYPTO_EX_new = unsafe extern "C" fn(
36 parent: *mut c_void,
37 ptr: *mut c_void,
38 ad: *mut CRYPTO_EX_DATA,
39 idx: c_int,
40 argl: c_long,
41 argp: *mut c_void,
42 ) -> CRYPTO_EX_new_ret;
43 pub type CRYPTO_EX_dup = unsafe extern "C" fn(
44 to: *mut CRYPTO_EX_DATA,
45 from: CRYPTO_EX_dup_from,
46 from_d: CRYPTO_EX_dup_from_d,
47 idx: c_int,
48 argl: c_long,
49 argp: *mut c_void,
50 ) -> c_int;
51 pub type CRYPTO_EX_free = unsafe extern "C" fn(
52 parent: *mut c_void,
53 ptr: *mut c_void,
54 ad: *mut CRYPTO_EX_DATA,
55 idx: c_int,
56 argl: c_long,
57 argp: *mut c_void,
58 );
59
60 #[cfg(ossl110)]
61 #[inline]
62 #[track_caller]
OPENSSL_malloc(num: usize) -> *mut c_void63 pub unsafe fn OPENSSL_malloc(num: usize) -> *mut c_void {
64 CRYPTO_malloc(
65 num,
66 concat!(file!(), "\0").as_ptr() as *const _,
67 line!() as _,
68 )
69 }
70
71 #[cfg(not(ossl110))]
72 #[inline]
73 #[track_caller]
OPENSSL_malloc(num: c_int) -> *mut c_void74 pub unsafe fn OPENSSL_malloc(num: c_int) -> *mut c_void {
75 CRYPTO_malloc(
76 num,
77 concat!(file!(), "\0").as_ptr() as *const _,
78 line!() as _,
79 )
80 }
81
82 #[cfg(ossl110)]
83 #[inline]
84 #[track_caller]
OPENSSL_free(addr: *mut c_void)85 pub unsafe fn OPENSSL_free(addr: *mut c_void) {
86 CRYPTO_free(
87 addr,
88 concat!(file!(), "\0").as_ptr() as *const _,
89 line!() as _,
90 )
91 }
92
93 #[cfg(not(ossl110))]
94 #[inline]
OPENSSL_free(addr: *mut c_void)95 pub unsafe fn OPENSSL_free(addr: *mut c_void) {
96 CRYPTO_free(addr)
97 }
98
99 #[cfg(not(ossl110))]
100 pub const CRYPTO_LOCK_X509: c_int = 3;
101 #[cfg(not(ossl110))]
102 pub const CRYPTO_LOCK_EVP_PKEY: c_int = 10;
103 #[cfg(not(ossl110))]
104 pub const CRYPTO_LOCK_SSL_CTX: c_int = 12;
105 #[cfg(not(ossl110))]
106 pub const CRYPTO_LOCK_SSL_SESSION: c_int = 14;
107
108 cfg_if! {
109 if #[cfg(ossl110)] {
110 pub const CRYPTO_EX_INDEX_SSL: c_int = 0;
111 pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 1;
112 } else if #[cfg(libressl)] {
113 pub const CRYPTO_EX_INDEX_SSL: c_int = 1;
114 pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 2;
115 }
116 }
117
118 cfg_if! {
119 if #[cfg(any(ossl110, libressl271))] {
120 pub const OPENSSL_VERSION: c_int = 0;
121 pub const OPENSSL_CFLAGS: c_int = 1;
122 pub const OPENSSL_BUILT_ON: c_int = 2;
123 pub const OPENSSL_PLATFORM: c_int = 3;
124 pub const OPENSSL_DIR: c_int = 4;
125 } else {
126 pub const SSLEAY_VERSION: c_int = 0;
127 pub const SSLEAY_CFLAGS: c_int = 2;
128 pub const SSLEAY_BUILT_ON: c_int = 3;
129 pub const SSLEAY_PLATFORM: c_int = 4;
130 pub const SSLEAY_DIR: c_int = 5;
131 }
132 }
133
134 pub const CRYPTO_LOCK: c_int = 1;
135