Skip to main content

openssl_sys/handwritten/
types.rs

1use libc::size_t;
2use std::ffi::{c_char, c_int, c_uint, c_void};
3
4#[allow(unused_imports)]
5use super::super::*;
6
7pub enum ASN1_OBJECT {}
8pub enum ASN1_VALUE {}
9
10pub type ASN1_BOOLEAN = c_int;
11pub enum ASN1_INTEGER {}
12pub enum ASN1_ENUMERATED {}
13pub enum ASN1_GENERALIZEDTIME {}
14pub enum ASN1_STRING {}
15pub enum ASN1_BIT_STRING {}
16pub enum ASN1_TIME {}
17pub enum ASN1_OCTET_STRING {}
18pub enum ASN1_NULL {}
19pub enum ASN1_PRINTABLESTRING {}
20pub enum ASN1_T61STRING {}
21pub enum ASN1_IA5STRING {}
22pub enum ASN1_GENERALSTRING {}
23pub enum ASN1_BMPSTRING {}
24pub enum ASN1_UNIVERSALSTRING {}
25pub enum ASN1_UTCTIME {}
26pub enum ASN1_VISIBLESTRING {}
27pub enum ASN1_UTF8STRING {}
28
29pub enum bio_st {} // FIXME remove
30pub enum BIO {}
31cfg_if! {
32    if #[cfg(ossl320)] {
33        pub enum BIO_ADDR {}
34        pub enum BIO_POLL_DESCRIPTOR {}
35        #[repr(C)]
36        pub struct BIO_MSG {
37            pub data: *mut c_void,
38            pub data_len: usize,
39            pub peer: *mut BIO_ADDR,
40            pub local: *mut BIO_ADDR,
41            pub flags: u64,
42        }
43    }
44}
45pub enum BIGNUM {}
46pub enum BN_BLINDING {}
47pub enum BN_MONT_CTX {}
48
49pub enum BN_CTX {}
50pub enum BN_GENCB {}
51
52pub enum EVP_CIPHER {}
53pub enum EVP_CIPHER_CTX {}
54pub enum EVP_MD {}
55pub enum EVP_MD_CTX {}
56
57pub enum PKCS8_PRIV_KEY_INFO {}
58
59pub enum EVP_PKEY_ASN1_METHOD {}
60
61pub enum EVP_PKEY_CTX {}
62
63pub enum CMAC_CTX {}
64
65pub enum HMAC_CTX {}
66
67pub enum DH {}
68pub enum DH_METHOD {}
69
70pub enum DSA {}
71pub enum DSA_METHOD {}
72
73pub enum RSA {}
74pub enum RSA_METHOD {}
75
76pub enum EC_KEY {}
77
78pub enum X509 {}
79cfg_if! {
80    if #[cfg(any(ossl110, libressl382))] {
81        pub enum X509_ALGOR {}
82    } else {
83        #[repr(C)]
84        pub struct X509_ALGOR {
85            pub algorithm: *mut ASN1_OBJECT,
86            parameter: *mut c_void,
87        }
88    }
89}
90
91stack!(stack_st_X509_ALGOR);
92
93pub enum X509_LOOKUP_METHOD {}
94
95pub enum X509_NAME {}
96
97pub enum X509_STORE {}
98
99pub enum X509_STORE_CTX {}
100pub enum X509_VERIFY_PARAM {}
101pub enum X509_OBJECT {}
102pub enum X509_LOOKUP {}
103
104#[repr(C)]
105pub struct X509V3_CTX {
106    flags: c_int,
107    issuer_cert: *mut c_void,
108    subject_cert: *mut c_void,
109    subject_req: *mut c_void,
110    crl: *mut c_void,
111    #[cfg(not(libressl400))]
112    db_meth: *mut c_void,
113    db: *mut c_void,
114    #[cfg(ossl300)]
115    issuer_pkey: *mut c_void,
116    // I like the last comment line, it is copied from OpenSSL sources:
117    // Maybe more here
118}
119pub enum CONF {}
120#[cfg(ossl110)]
121pub enum OPENSSL_INIT_SETTINGS {}
122
123pub enum ENGINE {}
124pub enum SSL {}
125pub enum SSL_CTX {}
126
127cfg_if! {
128    if #[cfg(ossl320)] {
129        #[repr(C)]
130        pub struct SSL_CONN_CLOSE_INFO {
131            pub error_code: u64,
132            pub frame_type: u64,
133            pub reason: *const c_char,
134            pub reason_len: usize,
135            pub flags: u32,
136        }
137        #[repr(C)]
138        pub struct SSL_SHUTDOWN_EX_ARGS {
139            pub quic_error_code: u64,
140            pub quic_reason: *const c_char,
141        }
142        #[repr(C)]
143        pub struct SSL_STREAM_RESET_ARGS {
144            pub quic_error_code: u64,
145        }
146    }
147}
148
149pub enum COMP_CTX {}
150
151#[cfg(not(osslconf = "OPENSSL_NO_COMP"))]
152pub enum COMP_METHOD {}
153
154pub enum CRYPTO_EX_DATA {}
155
156pub enum OCSP_RESPONSE {}
157
158#[cfg(ossl300)]
159pub enum OSSL_PROVIDER {}
160
161#[cfg(ossl300)]
162pub enum OSSL_LIB_CTX {}
163
164#[cfg(ossl300)]
165#[repr(C)]
166pub struct OSSL_PARAM {
167    pub key: *const c_char,
168    pub data_type: c_uint,
169    pub data: *mut c_void,
170    pub data_size: size_t,
171    /// Number of bytes the most recent get-params call wrote into this
172    /// parameter's data buffer. Only meaningful once
173    /// [`crate::OSSL_PARAM_modified`] has confirmed the parameter was
174    /// touched -- before that, this field still holds the sentinel set
175    /// by the `OSSL_PARAM_construct_*` typed constructors.
176    pub return_size: size_t,
177}
178
179#[cfg(ossl300)]
180pub enum OSSL_PARAM_BLD {}
181
182#[cfg(ossl300)]
183pub enum EVP_KDF {}
184#[cfg(ossl300)]
185pub enum EVP_KDF_CTX {}
186
187#[cfg(ossl300)]
188pub enum OSSL_ENCODER_CTX {}
189#[cfg(ossl300)]
190pub enum OSSL_DECODER_CTX {}
191
192#[cfg(ossl300)]
193pub type OSSL_PASSPHRASE_CALLBACK = Option<
194    unsafe extern "C" fn(
195        pass: *mut c_char,
196        pass_size: size_t,
197        pass_len: *mut size_t,
198        params: *const OSSL_PARAM,
199        arg: *mut c_void,
200    ) -> c_int,
201>;
202
203#[cfg(ossl300)]
204pub enum EVP_MAC {}
205#[cfg(ossl300)]
206pub enum EVP_MAC_CTX {}