1use super::*;
2use libc::*;
3
4extern "C" {
5 #[deprecated(note = "use CRYPTO_set_locking_callback__fixed_rust instead")]
6 #[cfg(not(ossl110))]
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))]
13 pub fn CRYPTO_set_id_callback(func: unsafe extern "C" fn() -> c_ulong);
14}
15
16cfg_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
26cfg_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
35pub 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;
43pub 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;
51pub 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(any(ossl110, libressl390))]
61#[inline]
62#[track_caller]
63pub unsafe fn OPENSSL_malloc(num: usize) -> *mut c_void {
64 CRYPTO_malloc(
65 num,
66 file:concat!(file!(), "\0").as_ptr() as *const _,
67 line!() as _,
68 )
69}
70
71#[cfg(not(any(ossl110, libressl390)))]
72#[inline]
73#[track_caller]
74pub 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(any(ossl110, libressl390))]
83#[inline]
84#[track_caller]
85pub unsafe fn OPENSSL_free(addr: *mut c_void) {
86 CRYPTO_free(
87 buf:addr,
88 file:concat!(file!(), "\0").as_ptr() as *const _,
89 line!() as _,
90 )
91}
92
93#[cfg(not(any(ossl110, libressl390)))]
94#[inline]
95pub unsafe fn OPENSSL_free(addr: *mut c_void) {
96 CRYPTO_free(addr)
97}
98
99#[cfg(not(ossl110))]
100pub const CRYPTO_LOCK_X509: c_int = 3;
101#[cfg(not(ossl110))]
102pub const CRYPTO_LOCK_EVP_PKEY: c_int = 10;
103#[cfg(not(ossl110))]
104pub const CRYPTO_LOCK_SSL_CTX: c_int = 12;
105#[cfg(not(ossl110))]
106pub const CRYPTO_LOCK_SSL_SESSION: c_int = 14;
107
108cfg_if! {
109 if #[cfg(any(ossl110, libressl381))] {
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
118cfg_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
134pub const CRYPTO_LOCK: c_int = 1;
135