variant_ssl_sys/
crypto.rs

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