aws_lc_sys/
x86_64_unknown_linux_gnu_crypto.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3
4// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5// SPDX-License-Identifier: Apache-2.0 OR ISC
6
7
8#![allow(
9    clippy::cast_lossless,
10    clippy::cast_possible_truncation,
11    clippy::cast_possible_wrap,
12    clippy::default_trait_access,
13    clippy::missing_safety_doc,
14    clippy::must_use_candidate,
15    clippy::not_unsafe_ptr_arg_deref,
16    clippy::ptr_as_ptr,
17    clippy::ptr_offset_with_cast,
18    clippy::pub_underscore_fields,
19    clippy::semicolon_if_nothing_returned,
20    clippy::too_many_lines,
21    clippy::unreadable_literal,
22    clippy::used_underscore_binding,
23    clippy::useless_transmute,
24    dead_code,
25    improper_ctypes,
26    non_camel_case_types,
27    non_snake_case,
28    non_upper_case_globals,
29    unpredictable_function_pointer_comparisons,
30    unused_imports
31)]
32
33
34#[repr(C)]
35#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
36pub struct __BindgenBitfieldUnit<Storage> {
37    storage: Storage,
38}
39impl<Storage> __BindgenBitfieldUnit<Storage> {
40    #[inline]
41    pub const fn new(storage: Storage) -> Self {
42        Self { storage }
43    }
44}
45impl<Storage> __BindgenBitfieldUnit<Storage>
46where
47    Storage: AsRef<[u8]> + AsMut<[u8]>,
48{
49    #[inline]
50    fn extract_bit(byte: u8, index: usize) -> bool {
51        let bit_index = if cfg!(target_endian = "big") {
52            7 - (index % 8)
53        } else {
54            index % 8
55        };
56        let mask = 1 << bit_index;
57        byte & mask == mask
58    }
59    #[inline]
60    pub fn get_bit(&self, index: usize) -> bool {
61        debug_assert!(index / 8 < self.storage.as_ref().len());
62        let byte_index = index / 8;
63        let byte = self.storage.as_ref()[byte_index];
64        Self::extract_bit(byte, index)
65    }
66    #[inline]
67    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
68        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
69        let byte_index = index / 8;
70        let byte = unsafe {
71            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
72        };
73        Self::extract_bit(byte, index)
74    }
75    #[inline]
76    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
77        let bit_index = if cfg!(target_endian = "big") {
78            7 - (index % 8)
79        } else {
80            index % 8
81        };
82        let mask = 1 << bit_index;
83        if val {
84            byte | mask
85        } else {
86            byte & !mask
87        }
88    }
89    #[inline]
90    pub fn set_bit(&mut self, index: usize, val: bool) {
91        debug_assert!(index / 8 < self.storage.as_ref().len());
92        let byte_index = index / 8;
93        let byte = &mut self.storage.as_mut()[byte_index];
94        *byte = Self::change_bit(*byte, index, val);
95    }
96    #[inline]
97    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
98        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
99        let byte_index = index / 8;
100        let byte = unsafe {
101            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
102        };
103        unsafe { *byte = Self::change_bit(*byte, index, val) };
104    }
105    #[inline]
106    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
107        debug_assert!(bit_width <= 64);
108        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
109        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
110        let mut val = 0;
111        for i in 0..(bit_width as usize) {
112            if self.get_bit(i + bit_offset) {
113                let index = if cfg!(target_endian = "big") {
114                    bit_width as usize - 1 - i
115                } else {
116                    i
117                };
118                val |= 1 << index;
119            }
120        }
121        val
122    }
123    #[inline]
124    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
125        debug_assert!(bit_width <= 64);
126        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
127        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
128        let mut val = 0;
129        for i in 0..(bit_width as usize) {
130            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
131                let index = if cfg!(target_endian = "big") {
132                    bit_width as usize - 1 - i
133                } else {
134                    i
135                };
136                val |= 1 << index;
137            }
138        }
139        val
140    }
141    #[inline]
142    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
143        debug_assert!(bit_width <= 64);
144        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
145        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
146        for i in 0..(bit_width as usize) {
147            let mask = 1 << i;
148            let val_bit_is_set = val & mask == mask;
149            let index = if cfg!(target_endian = "big") {
150                bit_width as usize - 1 - i
151            } else {
152                i
153            };
154            self.set_bit(index + bit_offset, val_bit_is_set);
155        }
156    }
157    #[inline]
158    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
159        debug_assert!(bit_width <= 64);
160        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
161        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
162        for i in 0..(bit_width as usize) {
163            let mask = 1 << i;
164            let val_bit_is_set = val & mask == mask;
165            let index = if cfg!(target_endian = "big") {
166                bit_width as usize - 1 - i
167            } else {
168                i
169            };
170            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
171        }
172    }
173}
174pub const AWSLC_VERSION_NAME: &[u8; 7] = b"AWS-LC\0";
175pub const OPENSSL_VERSION_NUMBER: i32 = 269488255;
176pub const SSLEAY_VERSION_NUMBER: i32 = 269488255;
177pub const AWSLC_API_VERSION: i32 = 35;
178pub const AWSLC_VERSION_NUMBER_STRING: &[u8; 7] = b"1.67.0\0";
179pub const AES_ENCRYPT: i32 = 1;
180pub const AES_DECRYPT: i32 = 0;
181pub const AES_MAXNR: i32 = 14;
182pub const AES_BLOCK_SIZE: i32 = 16;
183pub const SHA_CBLOCK: i32 = 64;
184pub const SHA_DIGEST_LENGTH: i32 = 20;
185pub const SHA224_CBLOCK: i32 = 64;
186pub const SHA224_DIGEST_LENGTH: i32 = 28;
187pub const SHA256_CBLOCK: i32 = 64;
188pub const SHA256_DIGEST_LENGTH: i32 = 32;
189pub const SHA384_CBLOCK: i32 = 128;
190pub const SHA384_DIGEST_LENGTH: i32 = 48;
191pub const SHA512_CBLOCK: i32 = 128;
192pub const SHA512_DIGEST_LENGTH: i32 = 64;
193pub const SHA512_224_DIGEST_LENGTH: i32 = 28;
194pub const SHA512_256_DIGEST_LENGTH: i32 = 32;
195pub const CRYPTO_LOCK: i32 = 1;
196pub const CRYPTO_UNLOCK: i32 = 2;
197pub const CRYPTO_READ: i32 = 4;
198pub const CRYPTO_WRITE: i32 = 8;
199pub const OPENSSL_VERSION_TEXT: &[u8; 42] = b"OpenSSL 1.1.1 (compatible; AWS-LC 1.67.0)\0";
200pub const OPENSSL_VERSION: i32 = 0;
201pub const OPENSSL_CFLAGS: i32 = 1;
202pub const OPENSSL_BUILT_ON: i32 = 2;
203pub const OPENSSL_PLATFORM: i32 = 3;
204pub const OPENSSL_DIR: i32 = 4;
205pub const SSLEAY_VERSION: i32 = 0;
206pub const SSLEAY_CFLAGS: i32 = 1;
207pub const SSLEAY_BUILT_ON: i32 = 2;
208pub const SSLEAY_PLATFORM: i32 = 3;
209pub const SSLEAY_DIR: i32 = 4;
210pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: i32 = 0;
211pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: i32 = 0;
212pub const OPENSSL_INIT_ADD_ALL_CIPHERS: i32 = 0;
213pub const OPENSSL_INIT_ADD_ALL_DIGESTS: i32 = 0;
214pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: i32 = 0;
215pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: i32 = 0;
216pub const OPENSSL_INIT_LOAD_CONFIG: i32 = 0;
217pub const OPENSSL_INIT_NO_LOAD_CONFIG: i32 = 0;
218pub const OPENSSL_INIT_ENGINE_ALL_BUILTIN: i32 = 0;
219pub const CRYPTO_MEM_CHECK_ON: i32 = 0;
220pub const ERR_FLAG_STRING: i32 = 1;
221pub const ERR_FLAG_MALLOCED: i32 = 2;
222pub const ERR_LIB_NONE: i32 = 1;
223pub const ERR_LIB_SYS: i32 = 2;
224pub const ERR_LIB_BN: i32 = 3;
225pub const ERR_LIB_RSA: i32 = 4;
226pub const ERR_LIB_DH: i32 = 5;
227pub const ERR_LIB_EVP: i32 = 6;
228pub const ERR_LIB_BUF: i32 = 7;
229pub const ERR_LIB_OBJ: i32 = 8;
230pub const ERR_LIB_PEM: i32 = 9;
231pub const ERR_LIB_DSA: i32 = 10;
232pub const ERR_LIB_X509: i32 = 11;
233pub const ERR_LIB_ASN1: i32 = 12;
234pub const ERR_LIB_CONF: i32 = 13;
235pub const ERR_LIB_CRYPTO: i32 = 14;
236pub const ERR_LIB_EC: i32 = 15;
237pub const ERR_LIB_SSL: i32 = 16;
238pub const ERR_LIB_BIO: i32 = 17;
239pub const ERR_LIB_PKCS7: i32 = 18;
240pub const ERR_LIB_PKCS8: i32 = 19;
241pub const ERR_LIB_X509V3: i32 = 20;
242pub const ERR_LIB_RAND: i32 = 21;
243pub const ERR_LIB_ENGINE: i32 = 22;
244pub const ERR_LIB_OCSP: i32 = 23;
245pub const ERR_LIB_UI: i32 = 24;
246pub const ERR_LIB_COMP: i32 = 25;
247pub const ERR_LIB_ECDSA: i32 = 26;
248pub const ERR_LIB_ECDH: i32 = 27;
249pub const ERR_LIB_HMAC: i32 = 28;
250pub const ERR_LIB_DIGEST: i32 = 29;
251pub const ERR_LIB_CIPHER: i32 = 30;
252pub const ERR_LIB_HKDF: i32 = 31;
253pub const ERR_LIB_TRUST_TOKEN: i32 = 32;
254pub const ERR_LIB_USER: i32 = 33;
255pub const ERR_NUM_LIBS: i32 = 34;
256pub const ERR_LIB_PKCS12: i32 = 35;
257pub const ERR_LIB_DSO: i32 = 36;
258pub const ERR_LIB_OSSL_STORE: i32 = 37;
259pub const ERR_LIB_FIPS: i32 = 38;
260pub const ERR_LIB_CMS: i32 = 39;
261pub const ERR_LIB_TS: i32 = 40;
262pub const ERR_LIB_CT: i32 = 41;
263pub const ERR_LIB_ASYNC: i32 = 42;
264pub const ERR_LIB_KDF: i32 = 43;
265pub const ERR_LIB_SM2: i32 = 44;
266pub const ERR_R_SYS_LIB: i32 = 2;
267pub const ERR_R_BN_LIB: i32 = 3;
268pub const ERR_R_RSA_LIB: i32 = 4;
269pub const ERR_R_DH_LIB: i32 = 5;
270pub const ERR_R_EVP_LIB: i32 = 6;
271pub const ERR_R_BUF_LIB: i32 = 7;
272pub const ERR_R_OBJ_LIB: i32 = 8;
273pub const ERR_R_PEM_LIB: i32 = 9;
274pub const ERR_R_DSA_LIB: i32 = 10;
275pub const ERR_R_X509_LIB: i32 = 11;
276pub const ERR_R_ASN1_LIB: i32 = 12;
277pub const ERR_R_CONF_LIB: i32 = 13;
278pub const ERR_R_CRYPTO_LIB: i32 = 14;
279pub const ERR_R_EC_LIB: i32 = 15;
280pub const ERR_R_SSL_LIB: i32 = 16;
281pub const ERR_R_BIO_LIB: i32 = 17;
282pub const ERR_R_PKCS7_LIB: i32 = 18;
283pub const ERR_R_PKCS8_LIB: i32 = 19;
284pub const ERR_R_X509V3_LIB: i32 = 20;
285pub const ERR_R_RAND_LIB: i32 = 21;
286pub const ERR_R_DSO_LIB: i32 = 36;
287pub const ERR_R_ENGINE_LIB: i32 = 22;
288pub const ERR_R_OCSP_LIB: i32 = 23;
289pub const ERR_R_UI_LIB: i32 = 24;
290pub const ERR_R_COMP_LIB: i32 = 25;
291pub const ERR_R_ECDSA_LIB: i32 = 26;
292pub const ERR_R_ECDH_LIB: i32 = 27;
293pub const ERR_R_FIPS_LIB: i32 = 38;
294pub const ERR_R_CMS_LIB: i32 = 39;
295pub const ERR_R_TS_LIB: i32 = 40;
296pub const ERR_R_HMAC_LIB: i32 = 28;
297pub const ERR_R_USER_LIB: i32 = 33;
298pub const ERR_R_DIGEST_LIB: i32 = 29;
299pub const ERR_R_CIPHER_LIB: i32 = 30;
300pub const ERR_R_HKDF_LIB: i32 = 31;
301pub const ERR_R_TRUST_TOKEN_LIB: i32 = 32;
302pub const ERR_R_FATAL: i32 = 64;
303pub const ERR_R_MALLOC_FAILURE: i32 = 65;
304pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: i32 = 66;
305pub const ERR_R_PASSED_NULL_PARAMETER: i32 = 67;
306pub const ERR_R_INTERNAL_ERROR: i32 = 68;
307pub const ERR_R_OVERFLOW: i32 = 69;
308pub const ERR_ERROR_STRING_BUF_LEN: i32 = 120;
309pub const ERR_TXT_STRING: i32 = 1;
310pub const ERR_TXT_MALLOCED: i32 = 2;
311pub const ERR_NUM_ERRORS: i32 = 16;
312pub const BIO_RR_CONNECT: i32 = 2;
313pub const BIO_RR_ACCEPT: i32 = 3;
314pub const BIO_CB_FREE: i32 = 1;
315pub const BIO_CB_READ: i32 = 2;
316pub const BIO_CB_WRITE: i32 = 3;
317pub const BIO_CB_PUTS: i32 = 4;
318pub const BIO_CB_GETS: i32 = 5;
319pub const BIO_CB_CTRL: i32 = 6;
320pub const BIO_CB_RETURN: i32 = 128;
321pub const BIO_NOCLOSE: i32 = 0;
322pub const BIO_CLOSE: i32 = 1;
323pub const BIO_FP_TEXT: i32 = 16;
324pub const BIO_CTRL_DGRAM_CONNECT: i32 = 31;
325pub const BIO_CTRL_DGRAM_SET_CONNECTED: i32 = 32;
326pub const BIO_CTRL_DGRAM_SET_RECV_TIMEOUT: i32 = 33;
327pub const BIO_CTRL_DGRAM_GET_RECV_TIMEOUT: i32 = 34;
328pub const BIO_CTRL_DGRAM_SET_SEND_TIMEOUT: i32 = 35;
329pub const BIO_CTRL_DGRAM_GET_SEND_TIMEOUT: i32 = 36;
330pub const BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP: i32 = 37;
331pub const BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP: i32 = 38;
332pub const BIO_CTRL_DGRAM_QUERY_MTU: i32 = 40;
333pub const BIO_CTRL_DGRAM_GET_MTU: i32 = 41;
334pub const BIO_CTRL_DGRAM_SET_MTU: i32 = 42;
335pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: i32 = 43;
336pub const BIO_CTRL_DGRAM_SET_PEER: i32 = 44;
337pub const BIO_CTRL_DGRAM_GET_PEER: i32 = 46;
338pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: i32 = 47;
339pub const BIO_CTRL_RESET: i32 = 1;
340pub const BIO_CTRL_EOF: i32 = 2;
341pub const BIO_CTRL_INFO: i32 = 3;
342pub const BIO_CTRL_GET_CLOSE: i32 = 8;
343pub const BIO_CTRL_SET_CLOSE: i32 = 9;
344pub const BIO_CTRL_PENDING: i32 = 10;
345pub const BIO_CTRL_FLUSH: i32 = 11;
346pub const BIO_CTRL_WPENDING: i32 = 13;
347pub const BIO_CTRL_SET_CALLBACK: i32 = 14;
348pub const BIO_CTRL_GET_CALLBACK: i32 = 15;
349pub const BIO_CTRL_SET: i32 = 4;
350pub const BIO_CTRL_GET: i32 = 5;
351pub const BIO_CTRL_PUSH: i32 = 6;
352pub const BIO_CTRL_POP: i32 = 7;
353pub const BIO_CTRL_DUP: i32 = 12;
354pub const BIO_CTRL_SET_FILENAME: i32 = 30;
355pub const BIO_FLAGS_READ: i32 = 1;
356pub const BIO_FLAGS_WRITE: i32 = 2;
357pub const BIO_FLAGS_IO_SPECIAL: i32 = 4;
358pub const BIO_FLAGS_RWS: i32 = 7;
359pub const BIO_FLAGS_SHOULD_RETRY: i32 = 8;
360pub const BIO_FLAGS_BASE64_NO_NL: i32 = 256;
361pub const BIO_FLAGS_MEM_RDONLY: i32 = 512;
362pub const BIO_TYPE_DESCRIPTOR: i32 = 256;
363pub const BIO_TYPE_FILTER: i32 = 512;
364pub const BIO_TYPE_SOURCE_SINK: i32 = 1024;
365pub const BIO_TYPE_NONE: i32 = 0;
366pub const BIO_TYPE_MEM: i32 = 1025;
367pub const BIO_TYPE_FILE: i32 = 1026;
368pub const BIO_TYPE_FD: i32 = 1284;
369pub const BIO_TYPE_SOCKET: i32 = 1285;
370pub const BIO_TYPE_NULL: i32 = 1030;
371pub const BIO_TYPE_SSL: i32 = 519;
372pub const BIO_TYPE_MD: i32 = 520;
373pub const BIO_TYPE_BUFFER: i32 = 521;
374pub const BIO_TYPE_CIPHER: i32 = 522;
375pub const BIO_TYPE_BASE64: i32 = 523;
376pub const BIO_TYPE_CONNECT: i32 = 1292;
377pub const BIO_TYPE_ACCEPT: i32 = 1293;
378pub const BIO_TYPE_PROXY_CLIENT: i32 = 526;
379pub const BIO_TYPE_PROXY_SERVER: i32 = 527;
380pub const BIO_TYPE_NBIO_TEST: i32 = 528;
381pub const BIO_TYPE_NULL_FILTER: i32 = 529;
382pub const BIO_TYPE_BER: i32 = 530;
383pub const BIO_TYPE_BIO: i32 = 1043;
384pub const BIO_TYPE_LINEBUFFER: i32 = 532;
385pub const BIO_TYPE_DGRAM: i32 = 1301;
386pub const BIO_TYPE_ASN1: i32 = 534;
387pub const BIO_TYPE_COMP: i32 = 535;
388pub const BIO_TYPE_START: i32 = 128;
389pub const BIO_C_SET_CONNECT: i32 = 100;
390pub const BIO_C_DO_STATE_MACHINE: i32 = 101;
391pub const BIO_C_SET_NBIO: i32 = 102;
392pub const BIO_C_SET_PROXY_PARAM: i32 = 103;
393pub const BIO_C_SET_FD: i32 = 104;
394pub const BIO_C_GET_FD: i32 = 105;
395pub const BIO_C_SET_FILE_PTR: i32 = 106;
396pub const BIO_C_GET_FILE_PTR: i32 = 107;
397pub const BIO_C_SET_FILENAME: i32 = 108;
398pub const BIO_C_SET_SSL: i32 = 109;
399pub const BIO_C_GET_SSL: i32 = 110;
400pub const BIO_C_SET_MD: i32 = 111;
401pub const BIO_C_GET_MD: i32 = 112;
402pub const BIO_C_GET_CIPHER_STATUS: i32 = 113;
403pub const BIO_C_SET_BUF_MEM: i32 = 114;
404pub const BIO_C_GET_BUF_MEM_PTR: i32 = 115;
405pub const BIO_C_GET_BUFF_NUM_LINES: i32 = 116;
406pub const BIO_C_SET_BUFF_SIZE: i32 = 117;
407pub const BIO_C_SET_ACCEPT: i32 = 118;
408pub const BIO_C_SSL_MODE: i32 = 119;
409pub const BIO_C_GET_MD_CTX: i32 = 120;
410pub const BIO_C_GET_PROXY_PARAM: i32 = 121;
411pub const BIO_C_SET_BUFF_READ_DATA: i32 = 122;
412pub const BIO_C_GET_ACCEPT: i32 = 124;
413pub const BIO_C_FILE_SEEK: i32 = 128;
414pub const BIO_C_GET_CIPHER_CTX: i32 = 129;
415pub const BIO_C_SET_BUF_MEM_EOF_RETURN: i32 = 130;
416pub const BIO_C_SET_BIND_MODE: i32 = 131;
417pub const BIO_C_GET_BIND_MODE: i32 = 132;
418pub const BIO_C_FILE_TELL: i32 = 133;
419pub const BIO_C_GET_SOCKS: i32 = 134;
420pub const BIO_C_SET_SOCKS: i32 = 135;
421pub const BIO_C_SET_WRITE_BUF_SIZE: i32 = 136;
422pub const BIO_C_GET_WRITE_BUF_SIZE: i32 = 137;
423pub const BIO_C_GET_WRITE_GUARANTEE: i32 = 140;
424pub const BIO_C_GET_READ_REQUEST: i32 = 141;
425pub const BIO_C_SHUTDOWN_WR: i32 = 142;
426pub const BIO_C_NREAD0: i32 = 143;
427pub const BIO_C_NREAD: i32 = 144;
428pub const BIO_C_NWRITE0: i32 = 145;
429pub const BIO_C_NWRITE: i32 = 146;
430pub const BIO_C_RESET_READ_REQUEST: i32 = 147;
431pub const BIO_C_SET_MD_CTX: i32 = 148;
432pub const BIO_C_SET_PREFIX: i32 = 149;
433pub const BIO_C_GET_PREFIX: i32 = 150;
434pub const BIO_C_SET_SUFFIX: i32 = 151;
435pub const BIO_C_GET_SUFFIX: i32 = 152;
436pub const BIO_C_SET_EX_ARG: i32 = 153;
437pub const BIO_C_GET_EX_ARG: i32 = 154;
438pub const BIO_R_BAD_FOPEN_MODE: i32 = 100;
439pub const BIO_R_BROKEN_PIPE: i32 = 101;
440pub const BIO_R_CONNECT_ERROR: i32 = 102;
441pub const BIO_R_ERROR_SETTING_NBIO: i32 = 103;
442pub const BIO_R_INVALID_ARGUMENT: i32 = 104;
443pub const BIO_R_IN_USE: i32 = 105;
444pub const BIO_R_KEEPALIVE: i32 = 106;
445pub const BIO_R_NBIO_CONNECT_ERROR: i32 = 107;
446pub const BIO_R_NO_HOSTNAME_SPECIFIED: i32 = 108;
447pub const BIO_R_NO_PORT_SPECIFIED: i32 = 109;
448pub const BIO_R_NO_SUCH_FILE: i32 = 110;
449pub const BIO_R_NULL_PARAMETER: i32 = 111;
450pub const BIO_R_SYS_LIB: i32 = 112;
451pub const BIO_R_UNABLE_TO_CREATE_SOCKET: i32 = 113;
452pub const BIO_R_UNINITIALIZED: i32 = 114;
453pub const BIO_R_UNSUPPORTED_METHOD: i32 = 115;
454pub const BIO_R_WRITE_TO_READ_ONLY_BIO: i32 = 116;
455pub const BN_BITS2: i32 = 64;
456pub const BN_DEC_FMT1: &[u8; 4] = b"%lu\0";
457pub const BN_HEX_FMT1: &[u8; 4] = b"%lx\0";
458pub const BN_HEX_FMT2: &[u8; 7] = b"%016lx\0";
459pub const BN_RAND_TOP_ANY: i32 = -1;
460pub const BN_RAND_TOP_ONE: i32 = 0;
461pub const BN_RAND_TOP_TWO: i32 = 1;
462pub const BN_RAND_BOTTOM_ANY: i32 = 0;
463pub const BN_RAND_BOTTOM_ODD: i32 = 1;
464pub const BN_GENCB_GENERATED: i32 = 0;
465pub const BN_GENCB_PRIME_TEST: i32 = 1;
466pub const BN_prime_checks_for_validation: i32 = 64;
467pub const BN_prime_checks_for_generation: i32 = 0;
468pub const BN_prime_checks: i32 = 64;
469pub const BN_FLG_MALLOCED: i32 = 1;
470pub const BN_FLG_STATIC_DATA: i32 = 2;
471pub const BN_R_ARG2_LT_ARG3: i32 = 100;
472pub const BN_R_BAD_RECIPROCAL: i32 = 101;
473pub const BN_R_BIGNUM_TOO_LONG: i32 = 102;
474pub const BN_R_BITS_TOO_SMALL: i32 = 103;
475pub const BN_R_CALLED_WITH_EVEN_MODULUS: i32 = 104;
476pub const BN_R_DIV_BY_ZERO: i32 = 105;
477pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: i32 = 106;
478pub const BN_R_INPUT_NOT_REDUCED: i32 = 107;
479pub const BN_R_INVALID_RANGE: i32 = 108;
480pub const BN_R_NEGATIVE_NUMBER: i32 = 109;
481pub const BN_R_NOT_A_SQUARE: i32 = 110;
482pub const BN_R_NOT_INITIALIZED: i32 = 111;
483pub const BN_R_NO_INVERSE: i32 = 112;
484pub const BN_R_PRIVATE_KEY_TOO_LARGE: i32 = 113;
485pub const BN_R_P_IS_NOT_PRIME: i32 = 114;
486pub const BN_R_TOO_MANY_ITERATIONS: i32 = 115;
487pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: i32 = 116;
488pub const BN_R_BAD_ENCODING: i32 = 117;
489pub const BN_R_ENCODE_ERROR: i32 = 118;
490pub const BN_R_INVALID_INPUT: i32 = 119;
491pub const BN_F_BN_GENERATE_PRIME_EX: i32 = 0;
492pub const V_ASN1_UNIVERSAL: i32 = 0;
493pub const V_ASN1_APPLICATION: i32 = 64;
494pub const V_ASN1_CONTEXT_SPECIFIC: i32 = 128;
495pub const V_ASN1_PRIVATE: i32 = 192;
496pub const V_ASN1_CONSTRUCTED: i32 = 32;
497pub const V_ASN1_PRIMITIVE_TAG: i32 = 31;
498pub const V_ASN1_MAX_UNIVERSAL: i32 = 255;
499pub const V_ASN1_UNDEF: i32 = -1;
500pub const V_ASN1_OTHER: i32 = -3;
501pub const V_ASN1_ANY: i32 = -4;
502pub const V_ASN1_EOC: i32 = 0;
503pub const V_ASN1_BOOLEAN: i32 = 1;
504pub const V_ASN1_INTEGER: i32 = 2;
505pub const V_ASN1_BIT_STRING: i32 = 3;
506pub const V_ASN1_OCTET_STRING: i32 = 4;
507pub const V_ASN1_NULL: i32 = 5;
508pub const V_ASN1_OBJECT: i32 = 6;
509pub const V_ASN1_OBJECT_DESCRIPTOR: i32 = 7;
510pub const V_ASN1_EXTERNAL: i32 = 8;
511pub const V_ASN1_REAL: i32 = 9;
512pub const V_ASN1_ENUMERATED: i32 = 10;
513pub const V_ASN1_UTF8STRING: i32 = 12;
514pub const V_ASN1_SEQUENCE: i32 = 16;
515pub const V_ASN1_SET: i32 = 17;
516pub const V_ASN1_NUMERICSTRING: i32 = 18;
517pub const V_ASN1_PRINTABLESTRING: i32 = 19;
518pub const V_ASN1_T61STRING: i32 = 20;
519pub const V_ASN1_TELETEXSTRING: i32 = 20;
520pub const V_ASN1_VIDEOTEXSTRING: i32 = 21;
521pub const V_ASN1_IA5STRING: i32 = 22;
522pub const V_ASN1_UTCTIME: i32 = 23;
523pub const V_ASN1_GENERALIZEDTIME: i32 = 24;
524pub const V_ASN1_GRAPHICSTRING: i32 = 25;
525pub const V_ASN1_ISO64STRING: i32 = 26;
526pub const V_ASN1_VISIBLESTRING: i32 = 26;
527pub const V_ASN1_GENERALSTRING: i32 = 27;
528pub const V_ASN1_UNIVERSALSTRING: i32 = 28;
529pub const V_ASN1_BMPSTRING: i32 = 30;
530pub const V_ASN1_NEG: i32 = 256;
531pub const V_ASN1_NEG_INTEGER: i32 = 258;
532pub const V_ASN1_NEG_ENUMERATED: i32 = 266;
533pub const B_ASN1_NUMERICSTRING: i32 = 1;
534pub const B_ASN1_PRINTABLESTRING: i32 = 2;
535pub const B_ASN1_T61STRING: i32 = 4;
536pub const B_ASN1_TELETEXSTRING: i32 = 4;
537pub const B_ASN1_VIDEOTEXSTRING: i32 = 8;
538pub const B_ASN1_IA5STRING: i32 = 16;
539pub const B_ASN1_GRAPHICSTRING: i32 = 32;
540pub const B_ASN1_ISO64STRING: i32 = 64;
541pub const B_ASN1_VISIBLESTRING: i32 = 64;
542pub const B_ASN1_GENERALSTRING: i32 = 128;
543pub const B_ASN1_UNIVERSALSTRING: i32 = 256;
544pub const B_ASN1_OCTET_STRING: i32 = 512;
545pub const B_ASN1_BIT_STRING: i32 = 1024;
546pub const B_ASN1_BMPSTRING: i32 = 2048;
547pub const B_ASN1_UNKNOWN: i32 = 4096;
548pub const B_ASN1_UTF8STRING: i32 = 8192;
549pub const B_ASN1_UTCTIME: i32 = 16384;
550pub const B_ASN1_GENERALIZEDTIME: i32 = 32768;
551pub const B_ASN1_SEQUENCE: i32 = 65536;
552pub const ASN1_BOOLEAN_FALSE: i32 = 0;
553pub const ASN1_BOOLEAN_TRUE: i32 = 255;
554pub const ASN1_BOOLEAN_NONE: i32 = -1;
555pub const ASN1_STRING_FLAG_BITS_LEFT: i32 = 8;
556pub const MBSTRING_FLAG: i32 = 4096;
557pub const MBSTRING_UTF8: i32 = 4096;
558pub const MBSTRING_ASC: i32 = 4097;
559pub const MBSTRING_BMP: i32 = 4098;
560pub const MBSTRING_UNIV: i32 = 4100;
561pub const DIRSTRING_TYPE: i32 = 10246;
562pub const PKCS9STRING_TYPE: i32 = 10262;
563pub const STABLE_NO_MASK: i32 = 2;
564pub const B_ASN1_DIRECTORYSTRING: i32 = 10502;
565pub const B_ASN1_DISPLAYTEXT: i32 = 10320;
566pub const B_ASN1_TIME: i32 = 49152;
567pub const ASN1_STRFLGS_ESC_2253: i32 = 1;
568pub const ASN1_STRFLGS_ESC_CTRL: i32 = 2;
569pub const ASN1_STRFLGS_ESC_MSB: i32 = 4;
570pub const ASN1_STRFLGS_ESC_QUOTE: i32 = 8;
571pub const ASN1_STRFLGS_UTF8_CONVERT: i32 = 16;
572pub const ASN1_STRFLGS_IGNORE_TYPE: i32 = 32;
573pub const ASN1_STRFLGS_SHOW_TYPE: i32 = 64;
574pub const ASN1_STRFLGS_DUMP_ALL: i32 = 128;
575pub const ASN1_STRFLGS_DUMP_UNKNOWN: i32 = 256;
576pub const ASN1_STRFLGS_DUMP_DER: i32 = 512;
577pub const ASN1_STRFLGS_RFC2253: i32 = 791;
578pub const B_ASN1_PRINTABLE: i32 = 81175;
579pub const ASN1_R_ASN1_LENGTH_MISMATCH: i32 = 100;
580pub const ASN1_R_AUX_ERROR: i32 = 101;
581pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: i32 = 102;
582pub const ASN1_R_BAD_OBJECT_HEADER: i32 = 103;
583pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: i32 = 104;
584pub const ASN1_R_BN_LIB: i32 = 105;
585pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: i32 = 106;
586pub const ASN1_R_BUFFER_TOO_SMALL: i32 = 107;
587pub const ASN1_R_CONTEXT_NOT_INITIALISED: i32 = 108;
588pub const ASN1_R_DECODE_ERROR: i32 = 109;
589pub const ASN1_R_DEPTH_EXCEEDED: i32 = 110;
590pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: i32 = 111;
591pub const ASN1_R_ENCODE_ERROR: i32 = 112;
592pub const ASN1_R_ERROR_GETTING_TIME: i32 = 113;
593pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: i32 = 114;
594pub const ASN1_R_EXPECTING_AN_INTEGER: i32 = 115;
595pub const ASN1_R_EXPECTING_AN_OBJECT: i32 = 116;
596pub const ASN1_R_EXPECTING_A_BOOLEAN: i32 = 117;
597pub const ASN1_R_EXPECTING_A_TIME: i32 = 118;
598pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: i32 = 119;
599pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: i32 = 120;
600pub const ASN1_R_FIELD_MISSING: i32 = 121;
601pub const ASN1_R_FIRST_NUM_TOO_LARGE: i32 = 122;
602pub const ASN1_R_HEADER_TOO_LONG: i32 = 123;
603pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: i32 = 124;
604pub const ASN1_R_ILLEGAL_BOOLEAN: i32 = 125;
605pub const ASN1_R_ILLEGAL_CHARACTERS: i32 = 126;
606pub const ASN1_R_ILLEGAL_FORMAT: i32 = 127;
607pub const ASN1_R_ILLEGAL_HEX: i32 = 128;
608pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: i32 = 129;
609pub const ASN1_R_ILLEGAL_INTEGER: i32 = 130;
610pub const ASN1_R_ILLEGAL_NESTED_TAGGING: i32 = 131;
611pub const ASN1_R_ILLEGAL_NULL: i32 = 132;
612pub const ASN1_R_ILLEGAL_NULL_VALUE: i32 = 133;
613pub const ASN1_R_ILLEGAL_OBJECT: i32 = 134;
614pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: i32 = 135;
615pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: i32 = 136;
616pub const ASN1_R_ILLEGAL_TAGGED_ANY: i32 = 137;
617pub const ASN1_R_ILLEGAL_TIME_VALUE: i32 = 138;
618pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: i32 = 139;
619pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: i32 = 140;
620pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 141;
621pub const ASN1_R_INVALID_BMPSTRING: i32 = 142;
622pub const ASN1_R_INVALID_DIGIT: i32 = 143;
623pub const ASN1_R_INVALID_MODIFIER: i32 = 144;
624pub const ASN1_R_INVALID_NUMBER: i32 = 145;
625pub const ASN1_R_INVALID_OBJECT_ENCODING: i32 = 146;
626pub const ASN1_R_INVALID_SEPARATOR: i32 = 147;
627pub const ASN1_R_INVALID_TIME_FORMAT: i32 = 148;
628pub const ASN1_R_INVALID_UNIVERSALSTRING: i32 = 149;
629pub const ASN1_R_INVALID_UTF8STRING: i32 = 150;
630pub const ASN1_R_LIST_ERROR: i32 = 151;
631pub const ASN1_R_MISSING_ASN1_EOS: i32 = 152;
632pub const ASN1_R_MISSING_EOC: i32 = 153;
633pub const ASN1_R_MISSING_SECOND_NUMBER: i32 = 154;
634pub const ASN1_R_MISSING_VALUE: i32 = 155;
635pub const ASN1_R_MSTRING_NOT_UNIVERSAL: i32 = 156;
636pub const ASN1_R_MSTRING_WRONG_TAG: i32 = 157;
637pub const ASN1_R_NESTED_ASN1_ERROR: i32 = 158;
638pub const ASN1_R_NESTED_ASN1_STRING: i32 = 159;
639pub const ASN1_R_NON_HEX_CHARACTERS: i32 = 160;
640pub const ASN1_R_NOT_ASCII_FORMAT: i32 = 161;
641pub const ASN1_R_NOT_ENOUGH_DATA: i32 = 162;
642pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: i32 = 163;
643pub const ASN1_R_NULL_IS_WRONG_LENGTH: i32 = 164;
644pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: i32 = 165;
645pub const ASN1_R_ODD_NUMBER_OF_CHARS: i32 = 166;
646pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: i32 = 167;
647pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: i32 = 168;
648pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: i32 = 169;
649pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: i32 = 170;
650pub const ASN1_R_SHORT_LINE: i32 = 171;
651pub const ASN1_R_STREAMING_NOT_SUPPORTED: i32 = 172;
652pub const ASN1_R_STRING_TOO_LONG: i32 = 173;
653pub const ASN1_R_STRING_TOO_SHORT: i32 = 174;
654pub const ASN1_R_TAG_VALUE_TOO_HIGH: i32 = 175;
655pub const ASN1_R_TIME_NOT_ASCII_FORMAT: i32 = 176;
656pub const ASN1_R_TOO_LONG: i32 = 177;
657pub const ASN1_R_TYPE_NOT_CONSTRUCTED: i32 = 178;
658pub const ASN1_R_TYPE_NOT_PRIMITIVE: i32 = 179;
659pub const ASN1_R_UNEXPECTED_EOC: i32 = 180;
660pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: i32 = 181;
661pub const ASN1_R_UNKNOWN_FORMAT: i32 = 182;
662pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: i32 = 183;
663pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: i32 = 184;
664pub const ASN1_R_UNKNOWN_TAG: i32 = 185;
665pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: i32 = 186;
666pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 187;
667pub const ASN1_R_UNSUPPORTED_TYPE: i32 = 188;
668pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: i32 = 189;
669pub const ASN1_R_WRONG_TAG: i32 = 190;
670pub const ASN1_R_WRONG_TYPE: i32 = 191;
671pub const ASN1_R_NESTED_TOO_DEEP: i32 = 192;
672pub const ASN1_R_BAD_TEMPLATE: i32 = 193;
673pub const ASN1_R_INVALID_BIT_STRING_PADDING: i32 = 194;
674pub const ASN1_R_WRONG_INTEGER_TYPE: i32 = 195;
675pub const ASN1_R_INVALID_INTEGER: i32 = 196;
676pub const ASN1_TFLG_OPTIONAL: i32 = 1;
677pub const ASN1_TFLG_SET_OF: i32 = 2;
678pub const ASN1_TFLG_SEQUENCE_OF: i32 = 4;
679pub const ASN1_TFLG_SK_MASK: i32 = 6;
680pub const ASN1_TFLG_IMPTAG: i32 = 8;
681pub const ASN1_TFLG_EXPTAG: i32 = 16;
682pub const ASN1_TFLG_TAG_MASK: i32 = 24;
683pub const ASN1_TFLG_UNIVERSAL: i32 = 0;
684pub const ASN1_TFLG_APPLICATION: i32 = 64;
685pub const ASN1_TFLG_CONTEXT: i32 = 128;
686pub const ASN1_TFLG_PRIVATE: i32 = 192;
687pub const ASN1_TFLG_TAG_CLASS: i32 = 192;
688pub const ASN1_TFLG_ADB_MASK: i32 = 768;
689pub const ASN1_TFLG_ADB_OID: i32 = 256;
690pub const ASN1_TFLG_COMBINE: i32 = 1024;
691pub const ASN1_ITYPE_PRIMITIVE: i32 = 0;
692pub const ASN1_ITYPE_SEQUENCE: i32 = 1;
693pub const ASN1_ITYPE_CHOICE: i32 = 2;
694pub const ASN1_ITYPE_EXTERN: i32 = 4;
695pub const ASN1_ITYPE_MSTRING: i32 = 5;
696pub const ASN1_AFLG_REFCOUNT: i32 = 1;
697pub const ASN1_AFLG_ENCODING: i32 = 2;
698pub const ASN1_OP_NEW_PRE: i32 = 0;
699pub const ASN1_OP_NEW_POST: i32 = 1;
700pub const ASN1_OP_FREE_PRE: i32 = 2;
701pub const ASN1_OP_FREE_POST: i32 = 3;
702pub const ASN1_OP_D2I_PRE: i32 = 4;
703pub const ASN1_OP_D2I_POST: i32 = 5;
704pub const ASN1_OP_PRINT_PRE: i32 = 8;
705pub const ASN1_OP_PRINT_POST: i32 = 9;
706pub const ASN1_OP_STREAM_PRE: i32 = 10;
707pub const ASN1_OP_STREAM_POST: i32 = 11;
708pub const ASN1_OP_DETACHED_PRE: i32 = 12;
709pub const ASN1_OP_DETACHED_POST: i32 = 13;
710pub const BLAKE2B256_DIGEST_LENGTH: i32 = 32;
711pub const BLAKE2B_CBLOCK: i32 = 128;
712pub const BF_ENCRYPT: i32 = 1;
713pub const BF_DECRYPT: i32 = 0;
714pub const BF_ROUNDS: i32 = 16;
715pub const BF_BLOCK: i32 = 8;
716pub const CBS_ASN1_TAG_SHIFT: i32 = 24;
717pub const CBS_ASN1_CONSTRUCTED: i32 = 536870912;
718pub const CBS_ASN1_UNIVERSAL: i32 = 0;
719pub const CBS_ASN1_APPLICATION: i32 = 1073741824;
720pub const CBS_ASN1_CONTEXT_SPECIFIC: i64 = 2147483648;
721pub const CBS_ASN1_PRIVATE: i64 = 3221225472;
722pub const CBS_ASN1_CLASS_MASK: i64 = 3221225472;
723pub const CBS_ASN1_TAG_NUMBER_MASK: i32 = 536870911;
724pub const CBS_ASN1_BOOLEAN: i32 = 1;
725pub const CBS_ASN1_INTEGER: i32 = 2;
726pub const CBS_ASN1_BITSTRING: i32 = 3;
727pub const CBS_ASN1_OCTETSTRING: i32 = 4;
728pub const CBS_ASN1_NULL: i32 = 5;
729pub const CBS_ASN1_OBJECT: i32 = 6;
730pub const CBS_ASN1_ENUMERATED: i32 = 10;
731pub const CBS_ASN1_UTF8STRING: i32 = 12;
732pub const CBS_ASN1_SEQUENCE: i32 = 536870928;
733pub const CBS_ASN1_SET: i32 = 536870929;
734pub const CBS_ASN1_NUMERICSTRING: i32 = 18;
735pub const CBS_ASN1_PRINTABLESTRING: i32 = 19;
736pub const CBS_ASN1_T61STRING: i32 = 20;
737pub const CBS_ASN1_VIDEOTEXSTRING: i32 = 21;
738pub const CBS_ASN1_IA5STRING: i32 = 22;
739pub const CBS_ASN1_UTCTIME: i32 = 23;
740pub const CBS_ASN1_GENERALIZEDTIME: i32 = 24;
741pub const CBS_ASN1_GRAPHICSTRING: i32 = 25;
742pub const CBS_ASN1_VISIBLESTRING: i32 = 26;
743pub const CBS_ASN1_GENERALSTRING: i32 = 27;
744pub const CBS_ASN1_UNIVERSALSTRING: i32 = 28;
745pub const CBS_ASN1_BMPSTRING: i32 = 30;
746pub const EVP_CIPH_STREAM_CIPHER: i32 = 0;
747pub const EVP_CIPH_ECB_MODE: i32 = 1;
748pub const EVP_CIPH_CBC_MODE: i32 = 2;
749pub const EVP_CIPH_CFB_MODE: i32 = 3;
750pub const EVP_CIPH_OFB_MODE: i32 = 4;
751pub const EVP_CIPH_CTR_MODE: i32 = 5;
752pub const EVP_CIPH_GCM_MODE: i32 = 6;
753pub const EVP_CIPH_XTS_MODE: i32 = 7;
754pub const EVP_CIPH_CCM_MODE: i32 = 8;
755pub const EVP_CIPH_FLAG_LENGTH_BITS: i32 = 8192;
756pub const EVP_CIPH_OCB_MODE: i32 = 9;
757pub const EVP_CIPH_WRAP_MODE: i32 = 10;
758pub const EVP_CIPH_VARIABLE_LENGTH: i32 = 64;
759pub const EVP_CIPH_ALWAYS_CALL_INIT: i32 = 128;
760pub const EVP_CIPH_CUSTOM_IV: i32 = 256;
761pub const EVP_CIPH_CTRL_INIT: i32 = 512;
762pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: i32 = 1024;
763pub const EVP_CIPH_FLAG_AEAD_CIPHER: i32 = 2048;
764pub const EVP_CIPH_CUSTOM_COPY: i32 = 4096;
765pub const EVP_CIPH_FLAG_NON_FIPS_ALLOW: i32 = 0;
766pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: i32 = 0;
767pub const EVP_CIPH_NO_PADDING: i32 = 2048;
768pub const EVP_CTRL_INIT: i32 = 0;
769pub const EVP_CTRL_SET_KEY_LENGTH: i32 = 1;
770pub const EVP_CTRL_GET_RC2_KEY_BITS: i32 = 2;
771pub const EVP_CTRL_SET_RC2_KEY_BITS: i32 = 3;
772pub const EVP_CTRL_GET_RC5_ROUNDS: i32 = 4;
773pub const EVP_CTRL_SET_RC5_ROUNDS: i32 = 5;
774pub const EVP_CTRL_RAND_KEY: i32 = 6;
775pub const EVP_CTRL_PBE_PRF_NID: i32 = 7;
776pub const EVP_CTRL_COPY: i32 = 8;
777pub const EVP_CTRL_AEAD_SET_IVLEN: i32 = 9;
778pub const EVP_CTRL_AEAD_GET_TAG: i32 = 16;
779pub const EVP_CTRL_AEAD_SET_TAG: i32 = 17;
780pub const EVP_CTRL_AEAD_SET_IV_FIXED: i32 = 18;
781pub const EVP_CTRL_GCM_IV_GEN: i32 = 19;
782pub const EVP_CTRL_CCM_SET_L: i32 = 20;
783pub const EVP_CTRL_AEAD_SET_MAC_KEY: i32 = 23;
784pub const EVP_CTRL_GCM_SET_IV_INV: i32 = 24;
785pub const EVP_CTRL_GET_IVLEN: i32 = 25;
786pub const EVP_GCM_TLS_FIXED_IV_LEN: i32 = 4;
787pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: i32 = 8;
788pub const EVP_GCM_TLS_TAG_LEN: i32 = 16;
789pub const EVP_CTRL_GCM_SET_IVLEN: i32 = 9;
790pub const EVP_CTRL_GCM_GET_TAG: i32 = 16;
791pub const EVP_CTRL_GCM_SET_TAG: i32 = 17;
792pub const EVP_CTRL_GCM_SET_IV_FIXED: i32 = 18;
793pub const EVP_MAX_KEY_LENGTH: i32 = 64;
794pub const EVP_MAX_IV_LENGTH: i32 = 16;
795pub const EVP_MAX_BLOCK_LENGTH: i32 = 32;
796pub const EVP_CTRL_AEAD_TLS1_AAD: i32 = 22;
797pub const EVP_AEAD_TLS1_AAD_LEN: i32 = 13;
798pub const CIPHER_R_AES_KEY_SETUP_FAILED: i32 = 100;
799pub const CIPHER_R_BAD_DECRYPT: i32 = 101;
800pub const CIPHER_R_BAD_KEY_LENGTH: i32 = 102;
801pub const CIPHER_R_BUFFER_TOO_SMALL: i32 = 103;
802pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: i32 = 104;
803pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: i32 = 105;
804pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: i32 = 106;
805pub const CIPHER_R_INITIALIZATION_ERROR: i32 = 107;
806pub const CIPHER_R_INPUT_NOT_INITIALIZED: i32 = 108;
807pub const CIPHER_R_INVALID_AD_SIZE: i32 = 109;
808pub const CIPHER_R_INVALID_KEY_LENGTH: i32 = 110;
809pub const CIPHER_R_INVALID_NONCE_SIZE: i32 = 111;
810pub const CIPHER_R_INVALID_OPERATION: i32 = 112;
811pub const CIPHER_R_IV_TOO_LARGE: i32 = 113;
812pub const CIPHER_R_NO_CIPHER_SET: i32 = 114;
813pub const CIPHER_R_OUTPUT_ALIASES_INPUT: i32 = 115;
814pub const CIPHER_R_TAG_TOO_LARGE: i32 = 116;
815pub const CIPHER_R_TOO_LARGE: i32 = 117;
816pub const CIPHER_R_UNSUPPORTED_AD_SIZE: i32 = 118;
817pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: i32 = 119;
818pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: i32 = 120;
819pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: i32 = 121;
820pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: i32 = 122;
821pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: i32 = 123;
822pub const CIPHER_R_NO_DIRECTION_SET: i32 = 124;
823pub const CIPHER_R_INVALID_NONCE: i32 = 125;
824pub const CIPHER_R_XTS_DUPLICATED_KEYS: i32 = 138;
825pub const CIPHER_R_XTS_DATA_UNIT_IS_TOO_LARGE: i32 = 139;
826pub const CIPHER_R_CTRL_OPERATION_NOT_PERFORMED: i32 = 140;
827pub const CIPHER_R_SERIALIZATION_INVALID_EVP_AEAD_CTX: i32 = 141;
828pub const CIPHER_R_ALIGNMENT_CHANGED: i32 = 142;
829pub const CIPHER_R_SERIALIZATION_INVALID_SERDE_VERSION: i32 = 143;
830pub const CIPHER_R_SERIALIZATION_INVALID_CIPHER_ID: i32 = 144;
831pub const CONF_MFLAGS_DEFAULT_SECTION: i32 = 0;
832pub const CONF_MFLAGS_IGNORE_MISSING_FILE: i32 = 0;
833pub const CONF_R_LIST_CANNOT_BE_NULL: i32 = 100;
834pub const CONF_R_MISSING_CLOSE_SQUARE_BRACKET: i32 = 101;
835pub const CONF_R_MISSING_EQUAL_SIGN: i32 = 102;
836pub const CONF_R_NO_CLOSE_BRACE: i32 = 103;
837pub const CONF_R_UNABLE_TO_CREATE_NEW_SECTION: i32 = 104;
838pub const CONF_R_VARIABLE_HAS_NO_VALUE: i32 = 105;
839pub const CONF_R_VARIABLE_EXPANSION_TOO_LONG: i32 = 106;
840pub const CONF_R_VARIABLE_EXPANSION_NOT_SUPPORTED: i32 = 107;
841pub const CTR_DRBG_ENTROPY_LEN: i32 = 48;
842pub const CTR_DRBG_MAX_GENERATE_LENGTH: i32 = 65536;
843pub const X25519_PRIVATE_KEY_LEN: i32 = 32;
844pub const X25519_PUBLIC_VALUE_LEN: i32 = 32;
845pub const X25519_SHARED_KEY_LEN: i32 = 32;
846pub const ED25519_PRIVATE_KEY_LEN: i32 = 64;
847pub const ED25519_PRIVATE_KEY_SEED_LEN: i32 = 32;
848pub const ED25519_PUBLIC_KEY_LEN: i32 = 32;
849pub const ED25519_SIGNATURE_LEN: i32 = 64;
850pub const ED25519_SEED_LEN: i32 = 32;
851pub const SPAKE2_MAX_MSG_SIZE: i32 = 32;
852pub const SPAKE2_MAX_KEY_SIZE: i32 = 64;
853pub const DES_ENCRYPT: i32 = 1;
854pub const DES_DECRYPT: i32 = 0;
855pub const DES_CBC_MODE: i32 = 0;
856pub const DES_PCBC_MODE: i32 = 1;
857pub const DH_GENERATOR_2: i32 = 2;
858pub const DH_GENERATOR_5: i32 = 5;
859pub const DH_CHECK_P_NOT_PRIME: i32 = 1;
860pub const DH_CHECK_P_NOT_SAFE_PRIME: i32 = 2;
861pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
862pub const DH_CHECK_NOT_SUITABLE_GENERATOR: i32 = 8;
863pub const DH_CHECK_Q_NOT_PRIME: i32 = 16;
864pub const DH_CHECK_INVALID_Q_VALUE: i32 = 32;
865pub const DH_NOT_SUITABLE_GENERATOR: i32 = 8;
866pub const DH_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
867pub const DH_CHECK_PUBKEY_TOO_SMALL: i32 = 1;
868pub const DH_CHECK_PUBKEY_TOO_LARGE: i32 = 2;
869pub const DH_CHECK_PUBKEY_INVALID: i32 = 4;
870pub const DH_FLAG_CACHE_MONT_P: i32 = 0;
871pub const DH_R_BAD_GENERATOR: i32 = 100;
872pub const DH_R_INVALID_PUBKEY: i32 = 101;
873pub const DH_R_MODULUS_TOO_LARGE: i32 = 102;
874pub const DH_R_NO_PRIVATE_VALUE: i32 = 103;
875pub const DH_R_DECODE_ERROR: i32 = 104;
876pub const DH_R_ENCODE_ERROR: i32 = 105;
877pub const DH_R_INVALID_NID: i32 = 106;
878pub const DH_R_INVALID_PARAMETERS: i32 = 107;
879pub const DH_F_DH_BUILTIN_GENPARAMS: i32 = 0;
880pub const EVP_MAX_MD_SIZE: i32 = 64;
881pub const EVP_MAX_MD_CHAINING_LENGTH: i32 = 64;
882pub const EVP_MAX_MD_BLOCK_SIZE: i32 = 144;
883pub const EVP_MD_FLAG_DIGALGID_ABSENT: i32 = 2;
884pub const EVP_MD_FLAG_XOF: i32 = 4;
885pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW: i32 = 0;
886pub const DIGEST_R_INPUT_NOT_INITIALIZED: i32 = 100;
887pub const DIGEST_R_DECODE_ERROR: i32 = 101;
888pub const DIGEST_R_UNKNOWN_HASH: i32 = 102;
889pub const OPENSSL_DSA_MAX_MODULUS_BITS: i32 = 10000;
890pub const DSA_R_BAD_Q_VALUE: i32 = 100;
891pub const DSA_R_MISSING_PARAMETERS: i32 = 101;
892pub const DSA_R_MODULUS_TOO_LARGE: i32 = 102;
893pub const DSA_R_NEED_NEW_SETUP_VALUES: i32 = 103;
894pub const DSA_R_BAD_VERSION: i32 = 104;
895pub const DSA_R_DECODE_ERROR: i32 = 105;
896pub const DSA_R_ENCODE_ERROR: i32 = 106;
897pub const DSA_R_INVALID_PARAMETERS: i32 = 107;
898pub const DSA_R_TOO_MANY_ITERATIONS: i32 = 108;
899pub const OPENSSL_EC_EXPLICIT_CURVE: i32 = 0;
900pub const OPENSSL_EC_NAMED_CURVE: i32 = 1;
901pub const ENGINE_R_OPERATION_NOT_SUPPORTED: i32 = 100;
902pub const EC_PKEY_NO_PARAMETERS: i32 = 1;
903pub const EC_PKEY_NO_PUBKEY: i32 = 2;
904pub const ECDSA_FLAG_OPAQUE: i32 = 1;
905pub const EC_R_BUFFER_TOO_SMALL: i32 = 100;
906pub const EC_R_COORDINATES_OUT_OF_RANGE: i32 = 101;
907pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: i32 = 102;
908pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: i32 = 103;
909pub const EC_R_GROUP2PKPARAMETERS_FAILURE: i32 = 104;
910pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: i32 = 105;
911pub const EC_R_INCOMPATIBLE_OBJECTS: i32 = 106;
912pub const EC_R_INVALID_COMPRESSED_POINT: i32 = 107;
913pub const EC_R_INVALID_COMPRESSION_BIT: i32 = 108;
914pub const EC_R_INVALID_ENCODING: i32 = 109;
915pub const EC_R_INVALID_FIELD: i32 = 110;
916pub const EC_R_INVALID_FORM: i32 = 111;
917pub const EC_R_INVALID_GROUP_ORDER: i32 = 112;
918pub const EC_R_INVALID_PRIVATE_KEY: i32 = 113;
919pub const EC_R_MISSING_PARAMETERS: i32 = 114;
920pub const EC_R_MISSING_PRIVATE_KEY: i32 = 115;
921pub const EC_R_NON_NAMED_CURVE: i32 = 116;
922pub const EC_R_NOT_INITIALIZED: i32 = 117;
923pub const EC_R_PKPARAMETERS2GROUP_FAILURE: i32 = 118;
924pub const EC_R_POINT_AT_INFINITY: i32 = 119;
925pub const EC_R_POINT_IS_NOT_ON_CURVE: i32 = 120;
926pub const EC_R_SLOT_FULL: i32 = 121;
927pub const EC_R_UNDEFINED_GENERATOR: i32 = 122;
928pub const EC_R_UNKNOWN_GROUP: i32 = 123;
929pub const EC_R_UNKNOWN_ORDER: i32 = 124;
930pub const EC_R_WRONG_ORDER: i32 = 125;
931pub const EC_R_BIGNUM_OUT_OF_RANGE: i32 = 126;
932pub const EC_R_WRONG_CURVE_PARAMETERS: i32 = 127;
933pub const EC_R_DECODE_ERROR: i32 = 128;
934pub const EC_R_ENCODE_ERROR: i32 = 129;
935pub const EC_R_GROUP_MISMATCH: i32 = 130;
936pub const EC_R_INVALID_COFACTOR: i32 = 131;
937pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 132;
938pub const EC_R_INVALID_SCALAR: i32 = 133;
939pub const ECDH_R_KDF_FAILED: i32 = 100;
940pub const ECDH_R_NO_PRIVATE_VALUE: i32 = 101;
941pub const ECDH_R_POINT_ARITHMETIC_FAILURE: i32 = 102;
942pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: i32 = 103;
943pub const ECDSA_R_BAD_SIGNATURE: i32 = 100;
944pub const ECDSA_R_MISSING_PARAMETERS: i32 = 101;
945pub const ECDSA_R_NEED_NEW_SETUP_VALUES: i32 = 102;
946pub const ECDSA_R_NOT_IMPLEMENTED: i32 = 103;
947pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: i32 = 104;
948pub const ECDSA_R_ENCODE_ERROR: i32 = 105;
949pub const ECDSA_R_MISMATCHED_SIGNATURE: i32 = 205;
950pub const ECDSA_R_TOO_MANY_ITERATIONS: i32 = 106;
951pub const EVP_R_BUFFER_TOO_SMALL: i32 = 100;
952pub const EVP_R_COMMAND_NOT_SUPPORTED: i32 = 101;
953pub const EVP_R_DECODE_ERROR: i32 = 102;
954pub const EVP_R_DIFFERENT_KEY_TYPES: i32 = 103;
955pub const EVP_R_DIFFERENT_PARAMETERS: i32 = 104;
956pub const EVP_R_ENCODE_ERROR: i32 = 105;
957pub const EVP_R_EXPECTING_AN_EC_KEY_KEY: i32 = 106;
958pub const EVP_R_EXPECTING_AN_RSA_KEY: i32 = 107;
959pub const EVP_R_EXPECTING_A_DSA_KEY: i32 = 108;
960pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: i32 = 109;
961pub const EVP_R_INVALID_DIGEST_LENGTH: i32 = 110;
962pub const EVP_R_INVALID_DIGEST_TYPE: i32 = 111;
963pub const EVP_R_INVALID_KEYBITS: i32 = 112;
964pub const EVP_R_INVALID_MGF1_MD: i32 = 113;
965pub const EVP_R_INVALID_OPERATION: i32 = 114;
966pub const EVP_R_INVALID_PADDING_MODE: i32 = 115;
967pub const EVP_R_INVALID_PSS_SALTLEN: i32 = 116;
968pub const EVP_R_KEYS_NOT_SET: i32 = 117;
969pub const EVP_R_MISSING_PARAMETERS: i32 = 118;
970pub const EVP_R_NO_DEFAULT_DIGEST: i32 = 119;
971pub const EVP_R_NO_KEY_SET: i32 = 120;
972pub const EVP_R_NO_MDC2_SUPPORT: i32 = 121;
973pub const EVP_R_NO_NID_FOR_CURVE: i32 = 122;
974pub const EVP_R_NO_OPERATION_SET: i32 = 123;
975pub const EVP_R_NO_PARAMETERS_SET: i32 = 124;
976pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: i32 = 125;
977pub const EVP_R_OPERATON_NOT_INITIALIZED: i32 = 126;
978pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: i32 = 127;
979pub const EVP_R_UNSUPPORTED_ALGORITHM: i32 = 128;
980pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 129;
981pub const EVP_R_NOT_A_PRIVATE_KEY: i32 = 130;
982pub const EVP_R_INVALID_SIGNATURE: i32 = 131;
983pub const EVP_R_MEMORY_LIMIT_EXCEEDED: i32 = 132;
984pub const EVP_R_INVALID_PARAMETERS: i32 = 133;
985pub const EVP_R_INVALID_PEER_KEY: i32 = 134;
986pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH: i32 = 135;
987pub const EVP_R_EMPTY_PSK: i32 = 136;
988pub const EVP_R_INVALID_BUFFER_SIZE: i32 = 137;
989pub const EVP_R_BAD_DECRYPT: i32 = 138;
990pub const EVP_R_EXPECTING_A_DH_KEY: i32 = 139;
991pub const EVP_R_INVALID_PSS_MD: i32 = 500;
992pub const EVP_R_INVALID_PSS_SALT_LEN: i32 = 501;
993pub const EVP_R_INVALID_PSS_TRAILER_FIELD: i32 = 502;
994pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
995pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
996pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
997pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
998pub const FIPS_AES_GCM_NONCE_LENGTH: i32 = 12;
999pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1000pub const LN_undef: &[u8; 10] = b"undefined\0";
1001pub const NID_undef: i32 = 0;
1002pub const OBJ_undef: i32 = 0;
1003pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1004pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1005pub const NID_rsadsi: i32 = 1;
1006pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1007pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1008pub const NID_pkcs: i32 = 2;
1009pub const SN_md2: &[u8; 4] = b"MD2\0";
1010pub const LN_md2: &[u8; 4] = b"md2\0";
1011pub const NID_md2: i32 = 3;
1012pub const SN_md5: &[u8; 4] = b"MD5\0";
1013pub const LN_md5: &[u8; 4] = b"md5\0";
1014pub const NID_md5: i32 = 4;
1015pub const SN_rc4: &[u8; 4] = b"RC4\0";
1016pub const LN_rc4: &[u8; 4] = b"rc4\0";
1017pub const NID_rc4: i32 = 5;
1018pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1019pub const NID_rsaEncryption: i32 = 6;
1020pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1021pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1022pub const NID_md2WithRSAEncryption: i32 = 7;
1023pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1024pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1025pub const NID_md5WithRSAEncryption: i32 = 8;
1026pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1027pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1028pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1029pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1030pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1031pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1032pub const SN_X500: &[u8; 5] = b"X500\0";
1033pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1034pub const NID_X500: i32 = 11;
1035pub const SN_X509: &[u8; 5] = b"X509\0";
1036pub const NID_X509: i32 = 12;
1037pub const SN_commonName: &[u8; 3] = b"CN\0";
1038pub const LN_commonName: &[u8; 11] = b"commonName\0";
1039pub const NID_commonName: i32 = 13;
1040pub const SN_countryName: &[u8; 2] = b"C\0";
1041pub const LN_countryName: &[u8; 12] = b"countryName\0";
1042pub const NID_countryName: i32 = 14;
1043pub const SN_localityName: &[u8; 2] = b"L\0";
1044pub const LN_localityName: &[u8; 13] = b"localityName\0";
1045pub const NID_localityName: i32 = 15;
1046pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1047pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1048pub const NID_stateOrProvinceName: i32 = 16;
1049pub const SN_organizationName: &[u8; 2] = b"O\0";
1050pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1051pub const NID_organizationName: i32 = 17;
1052pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1053pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1054pub const NID_organizationalUnitName: i32 = 18;
1055pub const SN_rsa: &[u8; 4] = b"RSA\0";
1056pub const LN_rsa: &[u8; 4] = b"rsa\0";
1057pub const NID_rsa: i32 = 19;
1058pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1059pub const NID_pkcs7: i32 = 20;
1060pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1061pub const NID_pkcs7_data: i32 = 21;
1062pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1063pub const NID_pkcs7_signed: i32 = 22;
1064pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1065pub const NID_pkcs7_enveloped: i32 = 23;
1066pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1067pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1068pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1069pub const NID_pkcs7_digest: i32 = 25;
1070pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1071pub const NID_pkcs7_encrypted: i32 = 26;
1072pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1073pub const NID_pkcs3: i32 = 27;
1074pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1075pub const NID_dhKeyAgreement: i32 = 28;
1076pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1077pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1078pub const NID_des_ecb: i32 = 29;
1079pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1080pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1081pub const NID_des_cfb64: i32 = 30;
1082pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1083pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1084pub const NID_des_cbc: i32 = 31;
1085pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1086pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1087pub const NID_des_ede_ecb: i32 = 32;
1088pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1089pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1090pub const NID_des_ede3_ecb: i32 = 33;
1091pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1092pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1093pub const NID_idea_cbc: i32 = 34;
1094pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1095pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1096pub const NID_idea_cfb64: i32 = 35;
1097pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1098pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1099pub const NID_idea_ecb: i32 = 36;
1100pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1101pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1102pub const NID_rc2_cbc: i32 = 37;
1103pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1104pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1105pub const NID_rc2_ecb: i32 = 38;
1106pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1107pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1108pub const NID_rc2_cfb64: i32 = 39;
1109pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1110pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1111pub const NID_rc2_ofb64: i32 = 40;
1112pub const SN_sha: &[u8; 4] = b"SHA\0";
1113pub const LN_sha: &[u8; 4] = b"sha\0";
1114pub const NID_sha: i32 = 41;
1115pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1116pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1117pub const NID_shaWithRSAEncryption: i32 = 42;
1118pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1119pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1120pub const NID_des_ede_cbc: i32 = 43;
1121pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1122pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1123pub const NID_des_ede3_cbc: i32 = 44;
1124pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1125pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1126pub const NID_des_ofb64: i32 = 45;
1127pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1128pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1129pub const NID_idea_ofb64: i32 = 46;
1130pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1131pub const NID_pkcs9: i32 = 47;
1132pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1133pub const NID_pkcs9_emailAddress: i32 = 48;
1134pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1135pub const NID_pkcs9_unstructuredName: i32 = 49;
1136pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1137pub const NID_pkcs9_contentType: i32 = 50;
1138pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1139pub const NID_pkcs9_messageDigest: i32 = 51;
1140pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1141pub const NID_pkcs9_signingTime: i32 = 52;
1142pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1143pub const NID_pkcs9_countersignature: i32 = 53;
1144pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1145pub const NID_pkcs9_challengePassword: i32 = 54;
1146pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1147pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1148pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1149pub const NID_pkcs9_extCertAttributes: i32 = 56;
1150pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1151pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1152pub const NID_netscape: i32 = 57;
1153pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1154pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1155pub const NID_netscape_cert_extension: i32 = 58;
1156pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1157pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1158pub const NID_netscape_data_type: i32 = 59;
1159pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1160pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1161pub const NID_des_ede_cfb64: i32 = 60;
1162pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1163pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1164pub const NID_des_ede3_cfb64: i32 = 61;
1165pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1166pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1167pub const NID_des_ede_ofb64: i32 = 62;
1168pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1169pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1170pub const NID_des_ede3_ofb64: i32 = 63;
1171pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1172pub const LN_sha1: &[u8; 5] = b"sha1\0";
1173pub const NID_sha1: i32 = 64;
1174pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1175pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1176pub const NID_sha1WithRSAEncryption: i32 = 65;
1177pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1178pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1179pub const NID_dsaWithSHA: i32 = 66;
1180pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1181pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1182pub const NID_dsa_2: i32 = 67;
1183pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1184pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1185pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1186pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1187pub const NID_id_pbkdf2: i32 = 69;
1188pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1189pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1190pub const NID_dsaWithSHA1_2: i32 = 70;
1191pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1192pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1193pub const NID_netscape_cert_type: i32 = 71;
1194pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1195pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1196pub const NID_netscape_base_url: i32 = 72;
1197pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1198pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1199pub const NID_netscape_revocation_url: i32 = 73;
1200pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1201pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1202pub const NID_netscape_ca_revocation_url: i32 = 74;
1203pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1204pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1205pub const NID_netscape_renewal_url: i32 = 75;
1206pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1207pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1208pub const NID_netscape_ca_policy_url: i32 = 76;
1209pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1210pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1211pub const NID_netscape_ssl_server_name: i32 = 77;
1212pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1213pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1214pub const NID_netscape_comment: i32 = 78;
1215pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1216pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1217pub const NID_netscape_cert_sequence: i32 = 79;
1218pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1219pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1220pub const NID_desx_cbc: i32 = 80;
1221pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1222pub const NID_id_ce: i32 = 81;
1223pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1224pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1225pub const NID_subject_key_identifier: i32 = 82;
1226pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1227pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1228pub const NID_key_usage: i32 = 83;
1229pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1230pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1231pub const NID_private_key_usage_period: i32 = 84;
1232pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1233pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1234pub const NID_subject_alt_name: i32 = 85;
1235pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1236pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1237pub const NID_issuer_alt_name: i32 = 86;
1238pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1239pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1240pub const NID_basic_constraints: i32 = 87;
1241pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1242pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1243pub const NID_crl_number: i32 = 88;
1244pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1245pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1246pub const NID_certificate_policies: i32 = 89;
1247pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1248pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1249pub const NID_authority_key_identifier: i32 = 90;
1250pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1251pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1252pub const NID_bf_cbc: i32 = 91;
1253pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1254pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1255pub const NID_bf_ecb: i32 = 92;
1256pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1257pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1258pub const NID_bf_cfb64: i32 = 93;
1259pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1260pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1261pub const NID_bf_ofb64: i32 = 94;
1262pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1263pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1264pub const NID_mdc2: i32 = 95;
1265pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1266pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1267pub const NID_mdc2WithRSA: i32 = 96;
1268pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1269pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1270pub const NID_rc4_40: i32 = 97;
1271pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1272pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1273pub const NID_rc2_40_cbc: i32 = 98;
1274pub const SN_givenName: &[u8; 3] = b"GN\0";
1275pub const LN_givenName: &[u8; 10] = b"givenName\0";
1276pub const NID_givenName: i32 = 99;
1277pub const SN_surname: &[u8; 3] = b"SN\0";
1278pub const LN_surname: &[u8; 8] = b"surname\0";
1279pub const NID_surname: i32 = 100;
1280pub const SN_initials: &[u8; 9] = b"initials\0";
1281pub const LN_initials: &[u8; 9] = b"initials\0";
1282pub const NID_initials: i32 = 101;
1283pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1284pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1285pub const NID_crl_distribution_points: i32 = 103;
1286pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1287pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1288pub const NID_md5WithRSA: i32 = 104;
1289pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1290pub const NID_serialNumber: i32 = 105;
1291pub const SN_title: &[u8; 6] = b"title\0";
1292pub const LN_title: &[u8; 6] = b"title\0";
1293pub const NID_title: i32 = 106;
1294pub const LN_description: &[u8; 12] = b"description\0";
1295pub const NID_description: i32 = 107;
1296pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1297pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1298pub const NID_cast5_cbc: i32 = 108;
1299pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1300pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1301pub const NID_cast5_ecb: i32 = 109;
1302pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1303pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1304pub const NID_cast5_cfb64: i32 = 110;
1305pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1306pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1307pub const NID_cast5_ofb64: i32 = 111;
1308pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1309pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1310pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1311pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1312pub const NID_dsaWithSHA1: i32 = 113;
1313pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1314pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1315pub const NID_md5_sha1: i32 = 114;
1316pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1317pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1318pub const NID_sha1WithRSA: i32 = 115;
1319pub const SN_dsa: &[u8; 4] = b"DSA\0";
1320pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1321pub const NID_dsa: i32 = 116;
1322pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1323pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1324pub const NID_ripemd160: i32 = 117;
1325pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1326pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1327pub const NID_ripemd160WithRSA: i32 = 119;
1328pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1329pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1330pub const NID_rc5_cbc: i32 = 120;
1331pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1332pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1333pub const NID_rc5_ecb: i32 = 121;
1334pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1335pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1336pub const NID_rc5_cfb64: i32 = 122;
1337pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1338pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1339pub const NID_rc5_ofb64: i32 = 123;
1340pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1341pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1342pub const NID_zlib_compression: i32 = 125;
1343pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1344pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1345pub const NID_ext_key_usage: i32 = 126;
1346pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1347pub const NID_id_pkix: i32 = 127;
1348pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1349pub const NID_id_kp: i32 = 128;
1350pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1351pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1352pub const NID_server_auth: i32 = 129;
1353pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1354pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1355pub const NID_client_auth: i32 = 130;
1356pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1357pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1358pub const NID_code_sign: i32 = 131;
1359pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1360pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1361pub const NID_email_protect: i32 = 132;
1362pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1363pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1364pub const NID_time_stamp: i32 = 133;
1365pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1366pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1367pub const NID_ms_code_ind: i32 = 134;
1368pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1369pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1370pub const NID_ms_code_com: i32 = 135;
1371pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1372pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1373pub const NID_ms_ctl_sign: i32 = 136;
1374pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1375pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1376pub const NID_ms_sgc: i32 = 137;
1377pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1378pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1379pub const NID_ms_efs: i32 = 138;
1380pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1381pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1382pub const NID_ns_sgc: i32 = 139;
1383pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1384pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1385pub const NID_delta_crl: i32 = 140;
1386pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1387pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1388pub const NID_crl_reason: i32 = 141;
1389pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1390pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1391pub const NID_invalidity_date: i32 = 142;
1392pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1393pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1394pub const NID_sxnet: i32 = 143;
1395pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1396pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1397pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1398pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1399pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1400pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1401pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1402pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1403pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1404pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1405pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1406pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1407pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1408pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1409pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1410pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1411pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1412pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1413pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1414pub const NID_keyBag: i32 = 150;
1415pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1416pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1417pub const LN_certBag: &[u8; 8] = b"certBag\0";
1418pub const NID_certBag: i32 = 152;
1419pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1420pub const NID_crlBag: i32 = 153;
1421pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1422pub const NID_secretBag: i32 = 154;
1423pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1424pub const NID_safeContentsBag: i32 = 155;
1425pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1426pub const NID_friendlyName: i32 = 156;
1427pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1428pub const NID_localKeyID: i32 = 157;
1429pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1430pub const NID_x509Certificate: i32 = 158;
1431pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1432pub const NID_sdsiCertificate: i32 = 159;
1433pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1434pub const NID_x509Crl: i32 = 160;
1435pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1436pub const NID_pbes2: i32 = 161;
1437pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1438pub const NID_pbmac1: i32 = 162;
1439pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1440pub const NID_hmacWithSHA1: i32 = 163;
1441pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1442pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1443pub const NID_id_qt_cps: i32 = 164;
1444pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1445pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1446pub const NID_id_qt_unotice: i32 = 165;
1447pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1448pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1449pub const NID_rc2_64_cbc: i32 = 166;
1450pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1451pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1452pub const NID_SMIMECapabilities: i32 = 167;
1453pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1454pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1455pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1456pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1457pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1458pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1459pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1460pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1461pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1462pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1463pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1464pub const NID_ms_ext_req: i32 = 171;
1465pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1466pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1467pub const NID_ext_req: i32 = 172;
1468pub const SN_name: &[u8; 5] = b"name\0";
1469pub const LN_name: &[u8; 5] = b"name\0";
1470pub const NID_name: i32 = 173;
1471pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1472pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1473pub const NID_dnQualifier: i32 = 174;
1474pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1475pub const NID_id_pe: i32 = 175;
1476pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1477pub const NID_id_ad: i32 = 176;
1478pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1479pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1480pub const NID_info_access: i32 = 177;
1481pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1482pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1483pub const NID_ad_OCSP: i32 = 178;
1484pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1485pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1486pub const NID_ad_ca_issuers: i32 = 179;
1487pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1488pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1489pub const NID_OCSP_sign: i32 = 180;
1490pub const SN_iso: &[u8; 4] = b"ISO\0";
1491pub const LN_iso: &[u8; 4] = b"iso\0";
1492pub const NID_iso: i32 = 181;
1493pub const OBJ_iso: i32 = 1;
1494pub const SN_member_body: &[u8; 12] = b"member-body\0";
1495pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1496pub const NID_member_body: i32 = 182;
1497pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1498pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1499pub const NID_ISO_US: i32 = 183;
1500pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1501pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1502pub const NID_X9_57: i32 = 184;
1503pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1504pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1505pub const NID_X9cm: i32 = 185;
1506pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1507pub const NID_pkcs1: i32 = 186;
1508pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1509pub const NID_pkcs5: i32 = 187;
1510pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1511pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1512pub const NID_SMIME: i32 = 188;
1513pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1514pub const NID_id_smime_mod: i32 = 189;
1515pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1516pub const NID_id_smime_ct: i32 = 190;
1517pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1518pub const NID_id_smime_aa: i32 = 191;
1519pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1520pub const NID_id_smime_alg: i32 = 192;
1521pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1522pub const NID_id_smime_cd: i32 = 193;
1523pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1524pub const NID_id_smime_spq: i32 = 194;
1525pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1526pub const NID_id_smime_cti: i32 = 195;
1527pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1528pub const NID_id_smime_mod_cms: i32 = 196;
1529pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1530pub const NID_id_smime_mod_ess: i32 = 197;
1531pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1532pub const NID_id_smime_mod_oid: i32 = 198;
1533pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1534pub const NID_id_smime_mod_msg_v3: i32 = 199;
1535pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1536pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1537pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1538pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1539pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1540pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1541pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1542pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1543pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1544pub const NID_id_smime_ct_receipt: i32 = 204;
1545pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1546pub const NID_id_smime_ct_authData: i32 = 205;
1547pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1548pub const NID_id_smime_ct_publishCert: i32 = 206;
1549pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1550pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1551pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1552pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1553pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1554pub const NID_id_smime_ct_contentInfo: i32 = 209;
1555pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1556pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1557pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1558pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1559pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1560pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1561pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1562pub const NID_id_smime_aa_securityLabel: i32 = 213;
1563pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1564pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1565pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1566pub const NID_id_smime_aa_contentHint: i32 = 215;
1567pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1568pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1569pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1570pub const NID_id_smime_aa_encapContentType: i32 = 217;
1571pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1572pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1573pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1574pub const NID_id_smime_aa_macValue: i32 = 219;
1575pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1576pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1577pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1578pub const NID_id_smime_aa_contentReference: i32 = 221;
1579pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1580pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1581pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1582pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1583pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1584pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1585pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1586pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1587pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1588pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1589pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1590pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1591pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1592pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1593pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1594pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1595pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1596pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1597pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1598pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1599pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1600pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1601pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1602pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1603pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1604pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1605pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1606pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1607pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1608pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1609pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1610pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1611pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1612pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1613pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1614pub const NID_id_smime_aa_signatureType: i32 = 239;
1615pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1616pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1617pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1618pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1619pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1620pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1621pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1622pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1623pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1624pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1625pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1626pub const NID_id_smime_alg_ESDH: i32 = 245;
1627pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1628pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1629pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1630pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1631pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1632pub const NID_id_smime_cd_ldap: i32 = 248;
1633pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1634pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1635pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1636pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1637pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1638pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1639pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1640pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1641pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1642pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1643pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1644pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1645pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1646pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1647pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1648pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1649pub const SN_md4: &[u8; 4] = b"MD4\0";
1650pub const LN_md4: &[u8; 4] = b"md4\0";
1651pub const NID_md4: i32 = 257;
1652pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1653pub const NID_id_pkix_mod: i32 = 258;
1654pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1655pub const NID_id_qt: i32 = 259;
1656pub const SN_id_it: &[u8; 6] = b"id-it\0";
1657pub const NID_id_it: i32 = 260;
1658pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1659pub const NID_id_pkip: i32 = 261;
1660pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1661pub const NID_id_alg: i32 = 262;
1662pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1663pub const NID_id_cmc: i32 = 263;
1664pub const SN_id_on: &[u8; 6] = b"id-on\0";
1665pub const NID_id_on: i32 = 264;
1666pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1667pub const NID_id_pda: i32 = 265;
1668pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1669pub const NID_id_aca: i32 = 266;
1670pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1671pub const NID_id_qcs: i32 = 267;
1672pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1673pub const NID_id_cct: i32 = 268;
1674pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1675pub const NID_id_pkix1_explicit_88: i32 = 269;
1676pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1677pub const NID_id_pkix1_implicit_88: i32 = 270;
1678pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1679pub const NID_id_pkix1_explicit_93: i32 = 271;
1680pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1681pub const NID_id_pkix1_implicit_93: i32 = 272;
1682pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1683pub const NID_id_mod_crmf: i32 = 273;
1684pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1685pub const NID_id_mod_cmc: i32 = 274;
1686pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1687pub const NID_id_mod_kea_profile_88: i32 = 275;
1688pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1689pub const NID_id_mod_kea_profile_93: i32 = 276;
1690pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1691pub const NID_id_mod_cmp: i32 = 277;
1692pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1693pub const NID_id_mod_qualified_cert_88: i32 = 278;
1694pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1695pub const NID_id_mod_qualified_cert_93: i32 = 279;
1696pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1697pub const NID_id_mod_attribute_cert: i32 = 280;
1698pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1699pub const NID_id_mod_timestamp_protocol: i32 = 281;
1700pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1701pub const NID_id_mod_ocsp: i32 = 282;
1702pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1703pub const NID_id_mod_dvcs: i32 = 283;
1704pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1705pub const NID_id_mod_cmp2000: i32 = 284;
1706pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1707pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1708pub const NID_biometricInfo: i32 = 285;
1709pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1710pub const NID_qcStatements: i32 = 286;
1711pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1712pub const NID_ac_auditEntity: i32 = 287;
1713pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1714pub const NID_ac_targeting: i32 = 288;
1715pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1716pub const NID_aaControls: i32 = 289;
1717pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1718pub const NID_sbgp_ipAddrBlock: i32 = 290;
1719pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1720pub const NID_sbgp_autonomousSysNum: i32 = 291;
1721pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1722pub const NID_sbgp_routerIdentifier: i32 = 292;
1723pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1724pub const NID_textNotice: i32 = 293;
1725pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1726pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1727pub const NID_ipsecEndSystem: i32 = 294;
1728pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1729pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1730pub const NID_ipsecTunnel: i32 = 295;
1731pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1732pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1733pub const NID_ipsecUser: i32 = 296;
1734pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1735pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1736pub const NID_dvcs: i32 = 297;
1737pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1738pub const NID_id_it_caProtEncCert: i32 = 298;
1739pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1740pub const NID_id_it_signKeyPairTypes: i32 = 299;
1741pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1742pub const NID_id_it_encKeyPairTypes: i32 = 300;
1743pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1744pub const NID_id_it_preferredSymmAlg: i32 = 301;
1745pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1746pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1747pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1748pub const NID_id_it_currentCRL: i32 = 303;
1749pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1750pub const NID_id_it_unsupportedOIDs: i32 = 304;
1751pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1752pub const NID_id_it_subscriptionRequest: i32 = 305;
1753pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1754pub const NID_id_it_subscriptionResponse: i32 = 306;
1755pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1756pub const NID_id_it_keyPairParamReq: i32 = 307;
1757pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1758pub const NID_id_it_keyPairParamRep: i32 = 308;
1759pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1760pub const NID_id_it_revPassphrase: i32 = 309;
1761pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1762pub const NID_id_it_implicitConfirm: i32 = 310;
1763pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1764pub const NID_id_it_confirmWaitTime: i32 = 311;
1765pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1766pub const NID_id_it_origPKIMessage: i32 = 312;
1767pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1768pub const NID_id_regCtrl: i32 = 313;
1769pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1770pub const NID_id_regInfo: i32 = 314;
1771pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1772pub const NID_id_regCtrl_regToken: i32 = 315;
1773pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1774pub const NID_id_regCtrl_authenticator: i32 = 316;
1775pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1776pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1777pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
1778pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
1779pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
1780pub const NID_id_regCtrl_oldCertID: i32 = 319;
1781pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
1782pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
1783pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
1784pub const NID_id_regInfo_utf8Pairs: i32 = 321;
1785pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
1786pub const NID_id_regInfo_certReq: i32 = 322;
1787pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
1788pub const NID_id_alg_des40: i32 = 323;
1789pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
1790pub const NID_id_alg_noSignature: i32 = 324;
1791pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
1792pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
1793pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
1794pub const NID_id_alg_dh_pop: i32 = 326;
1795pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
1796pub const NID_id_cmc_statusInfo: i32 = 327;
1797pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
1798pub const NID_id_cmc_identification: i32 = 328;
1799pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
1800pub const NID_id_cmc_identityProof: i32 = 329;
1801pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
1802pub const NID_id_cmc_dataReturn: i32 = 330;
1803pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
1804pub const NID_id_cmc_transactionId: i32 = 331;
1805pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
1806pub const NID_id_cmc_senderNonce: i32 = 332;
1807pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
1808pub const NID_id_cmc_recipientNonce: i32 = 333;
1809pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
1810pub const NID_id_cmc_addExtensions: i32 = 334;
1811pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
1812pub const NID_id_cmc_encryptedPOP: i32 = 335;
1813pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
1814pub const NID_id_cmc_decryptedPOP: i32 = 336;
1815pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
1816pub const NID_id_cmc_lraPOPWitness: i32 = 337;
1817pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
1818pub const NID_id_cmc_getCert: i32 = 338;
1819pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
1820pub const NID_id_cmc_getCRL: i32 = 339;
1821pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
1822pub const NID_id_cmc_revokeRequest: i32 = 340;
1823pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
1824pub const NID_id_cmc_regInfo: i32 = 341;
1825pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
1826pub const NID_id_cmc_responseInfo: i32 = 342;
1827pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
1828pub const NID_id_cmc_queryPending: i32 = 343;
1829pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
1830pub const NID_id_cmc_popLinkRandom: i32 = 344;
1831pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
1832pub const NID_id_cmc_popLinkWitness: i32 = 345;
1833pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
1834pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
1835pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
1836pub const NID_id_on_personalData: i32 = 347;
1837pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
1838pub const NID_id_pda_dateOfBirth: i32 = 348;
1839pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
1840pub const NID_id_pda_placeOfBirth: i32 = 349;
1841pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
1842pub const NID_id_pda_gender: i32 = 351;
1843pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
1844pub const NID_id_pda_countryOfCitizenship: i32 = 352;
1845pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
1846pub const NID_id_pda_countryOfResidence: i32 = 353;
1847pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
1848pub const NID_id_aca_authenticationInfo: i32 = 354;
1849pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
1850pub const NID_id_aca_accessIdentity: i32 = 355;
1851pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
1852pub const NID_id_aca_chargingIdentity: i32 = 356;
1853pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
1854pub const NID_id_aca_group: i32 = 357;
1855pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
1856pub const NID_id_aca_role: i32 = 358;
1857pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
1858pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
1859pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
1860pub const NID_id_cct_crs: i32 = 360;
1861pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
1862pub const NID_id_cct_PKIData: i32 = 361;
1863pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
1864pub const NID_id_cct_PKIResponse: i32 = 362;
1865pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
1866pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
1867pub const NID_ad_timeStamping: i32 = 363;
1868pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
1869pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
1870pub const NID_ad_dvcs: i32 = 364;
1871pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
1872pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
1873pub const NID_id_pkix_OCSP_basic: i32 = 365;
1874pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
1875pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
1876pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
1877pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
1878pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
1879pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
1880pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
1881pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
1882pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
1883pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
1884pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
1885pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
1886pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
1887pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
1888pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
1889pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
1890pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
1891pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
1892pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
1893pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
1894pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
1895pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
1896pub const NID_id_pkix_OCSP_valid: i32 = 373;
1897pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
1898pub const NID_id_pkix_OCSP_path: i32 = 374;
1899pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
1900pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
1901pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
1902pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
1903pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
1904pub const NID_algorithm: i32 = 376;
1905pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
1906pub const NID_rsaSignature: i32 = 377;
1907pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
1908pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
1909pub const NID_X500algorithms: i32 = 378;
1910pub const SN_org: &[u8; 4] = b"ORG\0";
1911pub const LN_org: &[u8; 4] = b"org\0";
1912pub const NID_org: i32 = 379;
1913pub const SN_dod: &[u8; 4] = b"DOD\0";
1914pub const LN_dod: &[u8; 4] = b"dod\0";
1915pub const NID_dod: i32 = 380;
1916pub const SN_iana: &[u8; 5] = b"IANA\0";
1917pub const LN_iana: &[u8; 5] = b"iana\0";
1918pub const NID_iana: i32 = 381;
1919pub const SN_Directory: &[u8; 10] = b"directory\0";
1920pub const LN_Directory: &[u8; 10] = b"Directory\0";
1921pub const NID_Directory: i32 = 382;
1922pub const SN_Management: &[u8; 5] = b"mgmt\0";
1923pub const LN_Management: &[u8; 11] = b"Management\0";
1924pub const NID_Management: i32 = 383;
1925pub const SN_Experimental: &[u8; 13] = b"experimental\0";
1926pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
1927pub const NID_Experimental: i32 = 384;
1928pub const SN_Private: &[u8; 8] = b"private\0";
1929pub const LN_Private: &[u8; 8] = b"Private\0";
1930pub const NID_Private: i32 = 385;
1931pub const SN_Security: &[u8; 9] = b"security\0";
1932pub const LN_Security: &[u8; 9] = b"Security\0";
1933pub const NID_Security: i32 = 386;
1934pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
1935pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
1936pub const NID_SNMPv2: i32 = 387;
1937pub const LN_Mail: &[u8; 5] = b"Mail\0";
1938pub const NID_Mail: i32 = 388;
1939pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
1940pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
1941pub const NID_Enterprises: i32 = 389;
1942pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
1943pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
1944pub const NID_dcObject: i32 = 390;
1945pub const SN_domainComponent: &[u8; 3] = b"DC\0";
1946pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
1947pub const NID_domainComponent: i32 = 391;
1948pub const SN_Domain: &[u8; 7] = b"domain\0";
1949pub const LN_Domain: &[u8; 7] = b"Domain\0";
1950pub const NID_Domain: i32 = 392;
1951pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
1952pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
1953pub const NID_selected_attribute_types: i32 = 394;
1954pub const SN_clearance: &[u8; 10] = b"clearance\0";
1955pub const NID_clearance: i32 = 395;
1956pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
1957pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
1958pub const NID_md4WithRSAEncryption: i32 = 396;
1959pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
1960pub const NID_ac_proxying: i32 = 397;
1961pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
1962pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
1963pub const NID_sinfo_access: i32 = 398;
1964pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
1965pub const NID_id_aca_encAttrs: i32 = 399;
1966pub const SN_role: &[u8; 5] = b"role\0";
1967pub const LN_role: &[u8; 5] = b"role\0";
1968pub const NID_role: i32 = 400;
1969pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
1970pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
1971pub const NID_policy_constraints: i32 = 401;
1972pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
1973pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
1974pub const NID_target_information: i32 = 402;
1975pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
1976pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
1977pub const NID_no_rev_avail: i32 = 403;
1978pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
1979pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
1980pub const NID_ansi_X9_62: i32 = 405;
1981pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
1982pub const NID_X9_62_prime_field: i32 = 406;
1983pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
1984pub const NID_X9_62_characteristic_two_field: i32 = 407;
1985pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
1986pub const NID_X9_62_id_ecPublicKey: i32 = 408;
1987pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
1988pub const NID_X9_62_prime192v1: i32 = 409;
1989pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
1990pub const NID_X9_62_prime192v2: i32 = 410;
1991pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
1992pub const NID_X9_62_prime192v3: i32 = 411;
1993pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
1994pub const NID_X9_62_prime239v1: i32 = 412;
1995pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
1996pub const NID_X9_62_prime239v2: i32 = 413;
1997pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
1998pub const NID_X9_62_prime239v3: i32 = 414;
1999pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2000pub const NID_X9_62_prime256v1: i32 = 415;
2001pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2002pub const NID_ecdsa_with_SHA1: i32 = 416;
2003pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2004pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2005pub const NID_ms_csp_name: i32 = 417;
2006pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2007pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2008pub const NID_aes_128_ecb: i32 = 418;
2009pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2010pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2011pub const NID_aes_128_cbc: i32 = 419;
2012pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2013pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2014pub const NID_aes_128_ofb128: i32 = 420;
2015pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2016pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2017pub const NID_aes_128_cfb128: i32 = 421;
2018pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2019pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2020pub const NID_aes_192_ecb: i32 = 422;
2021pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2022pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2023pub const NID_aes_192_cbc: i32 = 423;
2024pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2025pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2026pub const NID_aes_192_ofb128: i32 = 424;
2027pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2028pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2029pub const NID_aes_192_cfb128: i32 = 425;
2030pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2031pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2032pub const NID_aes_256_ecb: i32 = 426;
2033pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2034pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2035pub const NID_aes_256_cbc: i32 = 427;
2036pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2037pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2038pub const NID_aes_256_ofb128: i32 = 428;
2039pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2040pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2041pub const NID_aes_256_cfb128: i32 = 429;
2042pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2043pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2044pub const NID_hold_instruction_code: i32 = 430;
2045pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2046pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2047pub const NID_hold_instruction_none: i32 = 431;
2048pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2049pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2050pub const NID_hold_instruction_call_issuer: i32 = 432;
2051pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2052pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2053pub const NID_hold_instruction_reject: i32 = 433;
2054pub const SN_data: &[u8; 5] = b"data\0";
2055pub const NID_data: i32 = 434;
2056pub const SN_pss: &[u8; 4] = b"pss\0";
2057pub const NID_pss: i32 = 435;
2058pub const SN_ucl: &[u8; 4] = b"ucl\0";
2059pub const NID_ucl: i32 = 436;
2060pub const SN_pilot: &[u8; 6] = b"pilot\0";
2061pub const NID_pilot: i32 = 437;
2062pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2063pub const NID_pilotAttributeType: i32 = 438;
2064pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2065pub const NID_pilotAttributeSyntax: i32 = 439;
2066pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2067pub const NID_pilotObjectClass: i32 = 440;
2068pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2069pub const NID_pilotGroups: i32 = 441;
2070pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2071pub const NID_iA5StringSyntax: i32 = 442;
2072pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2073pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2074pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2075pub const NID_pilotObject: i32 = 444;
2076pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2077pub const NID_pilotPerson: i32 = 445;
2078pub const SN_account: &[u8; 8] = b"account\0";
2079pub const NID_account: i32 = 446;
2080pub const SN_document: &[u8; 9] = b"document\0";
2081pub const NID_document: i32 = 447;
2082pub const SN_room: &[u8; 5] = b"room\0";
2083pub const NID_room: i32 = 448;
2084pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2085pub const NID_documentSeries: i32 = 449;
2086pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2087pub const NID_rFC822localPart: i32 = 450;
2088pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2089pub const NID_dNSDomain: i32 = 451;
2090pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2091pub const NID_domainRelatedObject: i32 = 452;
2092pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2093pub const NID_friendlyCountry: i32 = 453;
2094pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2095pub const NID_simpleSecurityObject: i32 = 454;
2096pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2097pub const NID_pilotOrganization: i32 = 455;
2098pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2099pub const NID_pilotDSA: i32 = 456;
2100pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2101pub const NID_qualityLabelledData: i32 = 457;
2102pub const SN_userId: &[u8; 4] = b"UID\0";
2103pub const LN_userId: &[u8; 7] = b"userId\0";
2104pub const NID_userId: i32 = 458;
2105pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2106pub const NID_textEncodedORAddress: i32 = 459;
2107pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2108pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2109pub const NID_rfc822Mailbox: i32 = 460;
2110pub const SN_info: &[u8; 5] = b"info\0";
2111pub const NID_info: i32 = 461;
2112pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2113pub const NID_favouriteDrink: i32 = 462;
2114pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2115pub const NID_roomNumber: i32 = 463;
2116pub const SN_photo: &[u8; 6] = b"photo\0";
2117pub const NID_photo: i32 = 464;
2118pub const LN_userClass: &[u8; 10] = b"userClass\0";
2119pub const NID_userClass: i32 = 465;
2120pub const SN_host: &[u8; 5] = b"host\0";
2121pub const NID_host: i32 = 466;
2122pub const SN_manager: &[u8; 8] = b"manager\0";
2123pub const NID_manager: i32 = 467;
2124pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2125pub const NID_documentIdentifier: i32 = 468;
2126pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2127pub const NID_documentTitle: i32 = 469;
2128pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2129pub const NID_documentVersion: i32 = 470;
2130pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2131pub const NID_documentAuthor: i32 = 471;
2132pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2133pub const NID_documentLocation: i32 = 472;
2134pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2135pub const NID_homeTelephoneNumber: i32 = 473;
2136pub const SN_secretary: &[u8; 10] = b"secretary\0";
2137pub const NID_secretary: i32 = 474;
2138pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2139pub const NID_otherMailbox: i32 = 475;
2140pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2141pub const NID_lastModifiedTime: i32 = 476;
2142pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2143pub const NID_lastModifiedBy: i32 = 477;
2144pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2145pub const NID_aRecord: i32 = 478;
2146pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2147pub const NID_pilotAttributeType27: i32 = 479;
2148pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2149pub const NID_mXRecord: i32 = 480;
2150pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2151pub const NID_nSRecord: i32 = 481;
2152pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2153pub const NID_sOARecord: i32 = 482;
2154pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2155pub const NID_cNAMERecord: i32 = 483;
2156pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2157pub const NID_associatedDomain: i32 = 484;
2158pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2159pub const NID_associatedName: i32 = 485;
2160pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2161pub const NID_homePostalAddress: i32 = 486;
2162pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2163pub const NID_personalTitle: i32 = 487;
2164pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2165pub const NID_mobileTelephoneNumber: i32 = 488;
2166pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2167pub const NID_pagerTelephoneNumber: i32 = 489;
2168pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2169pub const NID_friendlyCountryName: i32 = 490;
2170pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2171pub const NID_organizationalStatus: i32 = 491;
2172pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2173pub const NID_janetMailbox: i32 = 492;
2174pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2175pub const NID_mailPreferenceOption: i32 = 493;
2176pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2177pub const NID_buildingName: i32 = 494;
2178pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2179pub const NID_dSAQuality: i32 = 495;
2180pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2181pub const NID_singleLevelQuality: i32 = 496;
2182pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2183pub const NID_subtreeMinimumQuality: i32 = 497;
2184pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2185pub const NID_subtreeMaximumQuality: i32 = 498;
2186pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2187pub const NID_personalSignature: i32 = 499;
2188pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2189pub const NID_dITRedirect: i32 = 500;
2190pub const SN_audio: &[u8; 6] = b"audio\0";
2191pub const NID_audio: i32 = 501;
2192pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2193pub const NID_documentPublisher: i32 = 502;
2194pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2195pub const NID_x500UniqueIdentifier: i32 = 503;
2196pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2197pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2198pub const NID_mime_mhs: i32 = 504;
2199pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2200pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2201pub const NID_mime_mhs_headings: i32 = 505;
2202pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2203pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2204pub const NID_mime_mhs_bodies: i32 = 506;
2205pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2206pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2207pub const NID_id_hex_partial_message: i32 = 507;
2208pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2209pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2210pub const NID_id_hex_multipart_message: i32 = 508;
2211pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2212pub const NID_generationQualifier: i32 = 509;
2213pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2214pub const NID_pseudonym: i32 = 510;
2215pub const SN_id_set: &[u8; 7] = b"id-set\0";
2216pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2217pub const NID_id_set: i32 = 512;
2218pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2219pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2220pub const NID_set_ctype: i32 = 513;
2221pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2222pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2223pub const NID_set_msgExt: i32 = 514;
2224pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2225pub const NID_set_attr: i32 = 515;
2226pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2227pub const NID_set_policy: i32 = 516;
2228pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2229pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2230pub const NID_set_certExt: i32 = 517;
2231pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2232pub const NID_set_brand: i32 = 518;
2233pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2234pub const NID_setct_PANData: i32 = 519;
2235pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2236pub const NID_setct_PANToken: i32 = 520;
2237pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2238pub const NID_setct_PANOnly: i32 = 521;
2239pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2240pub const NID_setct_OIData: i32 = 522;
2241pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2242pub const NID_setct_PI: i32 = 523;
2243pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2244pub const NID_setct_PIData: i32 = 524;
2245pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2246pub const NID_setct_PIDataUnsigned: i32 = 525;
2247pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2248pub const NID_setct_HODInput: i32 = 526;
2249pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2250pub const NID_setct_AuthResBaggage: i32 = 527;
2251pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2252pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2253pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2254pub const NID_setct_AuthRevResBaggage: i32 = 529;
2255pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2256pub const NID_setct_CapTokenSeq: i32 = 530;
2257pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2258pub const NID_setct_PInitResData: i32 = 531;
2259pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2260pub const NID_setct_PI_TBS: i32 = 532;
2261pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2262pub const NID_setct_PResData: i32 = 533;
2263pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2264pub const NID_setct_AuthReqTBS: i32 = 534;
2265pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2266pub const NID_setct_AuthResTBS: i32 = 535;
2267pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2268pub const NID_setct_AuthResTBSX: i32 = 536;
2269pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2270pub const NID_setct_AuthTokenTBS: i32 = 537;
2271pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2272pub const NID_setct_CapTokenData: i32 = 538;
2273pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2274pub const NID_setct_CapTokenTBS: i32 = 539;
2275pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2276pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2277pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2278pub const NID_setct_AuthRevReqTBS: i32 = 541;
2279pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2280pub const NID_setct_AuthRevResData: i32 = 542;
2281pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2282pub const NID_setct_AuthRevResTBS: i32 = 543;
2283pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2284pub const NID_setct_CapReqTBS: i32 = 544;
2285pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2286pub const NID_setct_CapReqTBSX: i32 = 545;
2287pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2288pub const NID_setct_CapResData: i32 = 546;
2289pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2290pub const NID_setct_CapRevReqTBS: i32 = 547;
2291pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2292pub const NID_setct_CapRevReqTBSX: i32 = 548;
2293pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2294pub const NID_setct_CapRevResData: i32 = 549;
2295pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2296pub const NID_setct_CredReqTBS: i32 = 550;
2297pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2298pub const NID_setct_CredReqTBSX: i32 = 551;
2299pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2300pub const NID_setct_CredResData: i32 = 552;
2301pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2302pub const NID_setct_CredRevReqTBS: i32 = 553;
2303pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2304pub const NID_setct_CredRevReqTBSX: i32 = 554;
2305pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2306pub const NID_setct_CredRevResData: i32 = 555;
2307pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2308pub const NID_setct_PCertReqData: i32 = 556;
2309pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2310pub const NID_setct_PCertResTBS: i32 = 557;
2311pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2312pub const NID_setct_BatchAdminReqData: i32 = 558;
2313pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2314pub const NID_setct_BatchAdminResData: i32 = 559;
2315pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2316pub const NID_setct_CardCInitResTBS: i32 = 560;
2317pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2318pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2319pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2320pub const NID_setct_RegFormResTBS: i32 = 562;
2321pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2322pub const NID_setct_CertReqData: i32 = 563;
2323pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2324pub const NID_setct_CertReqTBS: i32 = 564;
2325pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2326pub const NID_setct_CertResData: i32 = 565;
2327pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2328pub const NID_setct_CertInqReqTBS: i32 = 566;
2329pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2330pub const NID_setct_ErrorTBS: i32 = 567;
2331pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2332pub const NID_setct_PIDualSignedTBE: i32 = 568;
2333pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2334pub const NID_setct_PIUnsignedTBE: i32 = 569;
2335pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2336pub const NID_setct_AuthReqTBE: i32 = 570;
2337pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2338pub const NID_setct_AuthResTBE: i32 = 571;
2339pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2340pub const NID_setct_AuthResTBEX: i32 = 572;
2341pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2342pub const NID_setct_AuthTokenTBE: i32 = 573;
2343pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2344pub const NID_setct_CapTokenTBE: i32 = 574;
2345pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2346pub const NID_setct_CapTokenTBEX: i32 = 575;
2347pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2348pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2349pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2350pub const NID_setct_AuthRevReqTBE: i32 = 577;
2351pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2352pub const NID_setct_AuthRevResTBE: i32 = 578;
2353pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2354pub const NID_setct_AuthRevResTBEB: i32 = 579;
2355pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2356pub const NID_setct_CapReqTBE: i32 = 580;
2357pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2358pub const NID_setct_CapReqTBEX: i32 = 581;
2359pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2360pub const NID_setct_CapResTBE: i32 = 582;
2361pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2362pub const NID_setct_CapRevReqTBE: i32 = 583;
2363pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2364pub const NID_setct_CapRevReqTBEX: i32 = 584;
2365pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2366pub const NID_setct_CapRevResTBE: i32 = 585;
2367pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2368pub const NID_setct_CredReqTBE: i32 = 586;
2369pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2370pub const NID_setct_CredReqTBEX: i32 = 587;
2371pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2372pub const NID_setct_CredResTBE: i32 = 588;
2373pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2374pub const NID_setct_CredRevReqTBE: i32 = 589;
2375pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2376pub const NID_setct_CredRevReqTBEX: i32 = 590;
2377pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2378pub const NID_setct_CredRevResTBE: i32 = 591;
2379pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2380pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2381pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2382pub const NID_setct_BatchAdminResTBE: i32 = 593;
2383pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2384pub const NID_setct_RegFormReqTBE: i32 = 594;
2385pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2386pub const NID_setct_CertReqTBE: i32 = 595;
2387pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2388pub const NID_setct_CertReqTBEX: i32 = 596;
2389pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2390pub const NID_setct_CertResTBE: i32 = 597;
2391pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2392pub const NID_setct_CRLNotificationTBS: i32 = 598;
2393pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2394pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2395pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2396pub const NID_setct_BCIDistributionTBS: i32 = 600;
2397pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2398pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2399pub const NID_setext_genCrypt: i32 = 601;
2400pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2401pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2402pub const NID_setext_miAuth: i32 = 602;
2403pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2404pub const NID_setext_pinSecure: i32 = 603;
2405pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2406pub const NID_setext_pinAny: i32 = 604;
2407pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2408pub const NID_setext_track2: i32 = 605;
2409pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2410pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2411pub const NID_setext_cv: i32 = 606;
2412pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2413pub const NID_set_policy_root: i32 = 607;
2414pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2415pub const NID_setCext_hashedRoot: i32 = 608;
2416pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2417pub const NID_setCext_certType: i32 = 609;
2418pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2419pub const NID_setCext_merchData: i32 = 610;
2420pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2421pub const NID_setCext_cCertRequired: i32 = 611;
2422pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2423pub const NID_setCext_tunneling: i32 = 612;
2424pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2425pub const NID_setCext_setExt: i32 = 613;
2426pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2427pub const NID_setCext_setQualf: i32 = 614;
2428pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2429pub const NID_setCext_PGWYcapabilities: i32 = 615;
2430pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2431pub const NID_setCext_TokenIdentifier: i32 = 616;
2432pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2433pub const NID_setCext_Track2Data: i32 = 617;
2434pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2435pub const NID_setCext_TokenType: i32 = 618;
2436pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2437pub const NID_setCext_IssuerCapabilities: i32 = 619;
2438pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2439pub const NID_setAttr_Cert: i32 = 620;
2440pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2441pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2442pub const NID_setAttr_PGWYcap: i32 = 621;
2443pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2444pub const NID_setAttr_TokenType: i32 = 622;
2445pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2446pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2447pub const NID_setAttr_IssCap: i32 = 623;
2448pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2449pub const NID_set_rootKeyThumb: i32 = 624;
2450pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2451pub const NID_set_addPolicy: i32 = 625;
2452pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2453pub const NID_setAttr_Token_EMV: i32 = 626;
2454pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2455pub const NID_setAttr_Token_B0Prime: i32 = 627;
2456pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2457pub const NID_setAttr_IssCap_CVM: i32 = 628;
2458pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2459pub const NID_setAttr_IssCap_T2: i32 = 629;
2460pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2461pub const NID_setAttr_IssCap_Sig: i32 = 630;
2462pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2463pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2464pub const NID_setAttr_GenCryptgrm: i32 = 631;
2465pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2466pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2467pub const NID_setAttr_T2Enc: i32 = 632;
2468pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2469pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2470pub const NID_setAttr_T2cleartxt: i32 = 633;
2471pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2472pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2473pub const NID_setAttr_TokICCsig: i32 = 634;
2474pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2475pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2476pub const NID_setAttr_SecDevSig: i32 = 635;
2477pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2478pub const NID_set_brand_IATA_ATA: i32 = 636;
2479pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2480pub const NID_set_brand_Diners: i32 = 637;
2481pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2482pub const NID_set_brand_AmericanExpress: i32 = 638;
2483pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2484pub const NID_set_brand_JCB: i32 = 639;
2485pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2486pub const NID_set_brand_Visa: i32 = 640;
2487pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2488pub const NID_set_brand_MasterCard: i32 = 641;
2489pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2490pub const NID_set_brand_Novus: i32 = 642;
2491pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2492pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2493pub const NID_des_cdmf: i32 = 643;
2494pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2495pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2496pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2497pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2498pub const NID_itu_t: i32 = 645;
2499pub const OBJ_itu_t: i32 = 0;
2500pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2501pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2502pub const NID_joint_iso_itu_t: i32 = 646;
2503pub const OBJ_joint_iso_itu_t: i32 = 2;
2504pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2505pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2506pub const NID_international_organizations: i32 = 647;
2507pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2508pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2509pub const NID_ms_smartcard_login: i32 = 648;
2510pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2511pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2512pub const NID_ms_upn: i32 = 649;
2513pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2514pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2515pub const NID_aes_128_cfb1: i32 = 650;
2516pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2517pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2518pub const NID_aes_192_cfb1: i32 = 651;
2519pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2520pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2521pub const NID_aes_256_cfb1: i32 = 652;
2522pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2523pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2524pub const NID_aes_128_cfb8: i32 = 653;
2525pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2526pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2527pub const NID_aes_192_cfb8: i32 = 654;
2528pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2529pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2530pub const NID_aes_256_cfb8: i32 = 655;
2531pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2532pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2533pub const NID_des_cfb1: i32 = 656;
2534pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2535pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2536pub const NID_des_cfb8: i32 = 657;
2537pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2538pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2539pub const NID_des_ede3_cfb1: i32 = 658;
2540pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2541pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2542pub const NID_des_ede3_cfb8: i32 = 659;
2543pub const SN_streetAddress: &[u8; 7] = b"street\0";
2544pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2545pub const NID_streetAddress: i32 = 660;
2546pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2547pub const NID_postalCode: i32 = 661;
2548pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2549pub const NID_id_ppl: i32 = 662;
2550pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2551pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2552pub const NID_proxyCertInfo: i32 = 663;
2553pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2554pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2555pub const NID_id_ppl_anyLanguage: i32 = 664;
2556pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2557pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2558pub const NID_id_ppl_inheritAll: i32 = 665;
2559pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2560pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2561pub const NID_name_constraints: i32 = 666;
2562pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2563pub const LN_Independent: &[u8; 12] = b"Independent\0";
2564pub const NID_Independent: i32 = 667;
2565pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2566pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2567pub const NID_sha256WithRSAEncryption: i32 = 668;
2568pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2569pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2570pub const NID_sha384WithRSAEncryption: i32 = 669;
2571pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2572pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2573pub const NID_sha512WithRSAEncryption: i32 = 670;
2574pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2575pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2576pub const NID_sha224WithRSAEncryption: i32 = 671;
2577pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2578pub const LN_sha256: &[u8; 7] = b"sha256\0";
2579pub const NID_sha256: i32 = 672;
2580pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2581pub const LN_sha384: &[u8; 7] = b"sha384\0";
2582pub const NID_sha384: i32 = 673;
2583pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2584pub const LN_sha512: &[u8; 7] = b"sha512\0";
2585pub const NID_sha512: i32 = 674;
2586pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2587pub const LN_sha224: &[u8; 7] = b"sha224\0";
2588pub const NID_sha224: i32 = 675;
2589pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2590pub const NID_identified_organization: i32 = 676;
2591pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2592pub const NID_certicom_arc: i32 = 677;
2593pub const SN_wap: &[u8; 4] = b"wap\0";
2594pub const NID_wap: i32 = 678;
2595pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2596pub const NID_wap_wsg: i32 = 679;
2597pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2598pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2599pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2600pub const NID_X9_62_onBasis: i32 = 681;
2601pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2602pub const NID_X9_62_tpBasis: i32 = 682;
2603pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2604pub const NID_X9_62_ppBasis: i32 = 683;
2605pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2606pub const NID_X9_62_c2pnb163v1: i32 = 684;
2607pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2608pub const NID_X9_62_c2pnb163v2: i32 = 685;
2609pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2610pub const NID_X9_62_c2pnb163v3: i32 = 686;
2611pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2612pub const NID_X9_62_c2pnb176v1: i32 = 687;
2613pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2614pub const NID_X9_62_c2tnb191v1: i32 = 688;
2615pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2616pub const NID_X9_62_c2tnb191v2: i32 = 689;
2617pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2618pub const NID_X9_62_c2tnb191v3: i32 = 690;
2619pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2620pub const NID_X9_62_c2onb191v4: i32 = 691;
2621pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2622pub const NID_X9_62_c2onb191v5: i32 = 692;
2623pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2624pub const NID_X9_62_c2pnb208w1: i32 = 693;
2625pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2626pub const NID_X9_62_c2tnb239v1: i32 = 694;
2627pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2628pub const NID_X9_62_c2tnb239v2: i32 = 695;
2629pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2630pub const NID_X9_62_c2tnb239v3: i32 = 696;
2631pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2632pub const NID_X9_62_c2onb239v4: i32 = 697;
2633pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2634pub const NID_X9_62_c2onb239v5: i32 = 698;
2635pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2636pub const NID_X9_62_c2pnb272w1: i32 = 699;
2637pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2638pub const NID_X9_62_c2pnb304w1: i32 = 700;
2639pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2640pub const NID_X9_62_c2tnb359v1: i32 = 701;
2641pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2642pub const NID_X9_62_c2pnb368w1: i32 = 702;
2643pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2644pub const NID_X9_62_c2tnb431r1: i32 = 703;
2645pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2646pub const NID_secp112r1: i32 = 704;
2647pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2648pub const NID_secp112r2: i32 = 705;
2649pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2650pub const NID_secp128r1: i32 = 706;
2651pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2652pub const NID_secp128r2: i32 = 707;
2653pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2654pub const NID_secp160k1: i32 = 708;
2655pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2656pub const NID_secp160r1: i32 = 709;
2657pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2658pub const NID_secp160r2: i32 = 710;
2659pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2660pub const NID_secp192k1: i32 = 711;
2661pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2662pub const NID_secp224k1: i32 = 712;
2663pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2664pub const NID_secp224r1: i32 = 713;
2665pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2666pub const NID_secp256k1: i32 = 714;
2667pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2668pub const NID_secp384r1: i32 = 715;
2669pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2670pub const NID_secp521r1: i32 = 716;
2671pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2672pub const NID_sect113r1: i32 = 717;
2673pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2674pub const NID_sect113r2: i32 = 718;
2675pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2676pub const NID_sect131r1: i32 = 719;
2677pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2678pub const NID_sect131r2: i32 = 720;
2679pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2680pub const NID_sect163k1: i32 = 721;
2681pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2682pub const NID_sect163r1: i32 = 722;
2683pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2684pub const NID_sect163r2: i32 = 723;
2685pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2686pub const NID_sect193r1: i32 = 724;
2687pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2688pub const NID_sect193r2: i32 = 725;
2689pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2690pub const NID_sect233k1: i32 = 726;
2691pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2692pub const NID_sect233r1: i32 = 727;
2693pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2694pub const NID_sect239k1: i32 = 728;
2695pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2696pub const NID_sect283k1: i32 = 729;
2697pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2698pub const NID_sect283r1: i32 = 730;
2699pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2700pub const NID_sect409k1: i32 = 731;
2701pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2702pub const NID_sect409r1: i32 = 732;
2703pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2704pub const NID_sect571k1: i32 = 733;
2705pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2706pub const NID_sect571r1: i32 = 734;
2707pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2708pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2709pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2710pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2711pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2712pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2713pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2714pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2715pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2716pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2717pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2718pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2719pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2720pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2721pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2722pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2723pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2724pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2725pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2726pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2727pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2728pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2729pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2730pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2731pub const NID_any_policy: i32 = 746;
2732pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2733pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2734pub const NID_policy_mappings: i32 = 747;
2735pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2736pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2737pub const NID_inhibit_any_policy: i32 = 748;
2738pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2739pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2740pub const NID_ipsec3: i32 = 749;
2741pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2742pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2743pub const NID_ipsec4: i32 = 750;
2744pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2745pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2746pub const NID_camellia_128_cbc: i32 = 751;
2747pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2748pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2749pub const NID_camellia_192_cbc: i32 = 752;
2750pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2751pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2752pub const NID_camellia_256_cbc: i32 = 753;
2753pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2754pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2755pub const NID_camellia_128_ecb: i32 = 754;
2756pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2757pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2758pub const NID_camellia_192_ecb: i32 = 755;
2759pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2760pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2761pub const NID_camellia_256_ecb: i32 = 756;
2762pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2763pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2764pub const NID_camellia_128_cfb128: i32 = 757;
2765pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2766pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2767pub const NID_camellia_192_cfb128: i32 = 758;
2768pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2769pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2770pub const NID_camellia_256_cfb128: i32 = 759;
2771pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2772pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2773pub const NID_camellia_128_cfb1: i32 = 760;
2774pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
2775pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
2776pub const NID_camellia_192_cfb1: i32 = 761;
2777pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
2778pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
2779pub const NID_camellia_256_cfb1: i32 = 762;
2780pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
2781pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
2782pub const NID_camellia_128_cfb8: i32 = 763;
2783pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
2784pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
2785pub const NID_camellia_192_cfb8: i32 = 764;
2786pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
2787pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
2788pub const NID_camellia_256_cfb8: i32 = 765;
2789pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
2790pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
2791pub const NID_camellia_128_ofb128: i32 = 766;
2792pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
2793pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
2794pub const NID_camellia_192_ofb128: i32 = 767;
2795pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
2796pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
2797pub const NID_camellia_256_ofb128: i32 = 768;
2798pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
2799pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
2800pub const NID_subject_directory_attributes: i32 = 769;
2801pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
2802pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
2803pub const NID_issuing_distribution_point: i32 = 770;
2804pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
2805pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
2806pub const NID_certificate_issuer: i32 = 771;
2807pub const SN_kisa: &[u8; 5] = b"KISA\0";
2808pub const LN_kisa: &[u8; 5] = b"kisa\0";
2809pub const NID_kisa: i32 = 773;
2810pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
2811pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
2812pub const NID_seed_ecb: i32 = 776;
2813pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
2814pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
2815pub const NID_seed_cbc: i32 = 777;
2816pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
2817pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
2818pub const NID_seed_ofb128: i32 = 778;
2819pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
2820pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
2821pub const NID_seed_cfb128: i32 = 779;
2822pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
2823pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
2824pub const NID_hmac_md5: i32 = 780;
2825pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
2826pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
2827pub const NID_hmac_sha1: i32 = 781;
2828pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
2829pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
2830pub const NID_id_PasswordBasedMAC: i32 = 782;
2831pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
2832pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
2833pub const NID_id_DHBasedMac: i32 = 783;
2834pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
2835pub const NID_id_it_suppLangTags: i32 = 784;
2836pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
2837pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
2838pub const NID_caRepository: i32 = 785;
2839pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
2840pub const NID_id_smime_ct_compressedData: i32 = 786;
2841pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
2842pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
2843pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
2844pub const NID_id_aes128_wrap: i32 = 788;
2845pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
2846pub const NID_id_aes192_wrap: i32 = 789;
2847pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
2848pub const NID_id_aes256_wrap: i32 = 790;
2849pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
2850pub const NID_ecdsa_with_Recommended: i32 = 791;
2851pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
2852pub const NID_ecdsa_with_Specified: i32 = 792;
2853pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
2854pub const NID_ecdsa_with_SHA224: i32 = 793;
2855pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
2856pub const NID_ecdsa_with_SHA256: i32 = 794;
2857pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
2858pub const NID_ecdsa_with_SHA384: i32 = 795;
2859pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
2860pub const NID_ecdsa_with_SHA512: i32 = 796;
2861pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
2862pub const NID_hmacWithMD5: i32 = 797;
2863pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
2864pub const NID_hmacWithSHA224: i32 = 798;
2865pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
2866pub const NID_hmacWithSHA256: i32 = 799;
2867pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
2868pub const NID_hmacWithSHA384: i32 = 800;
2869pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
2870pub const NID_hmacWithSHA512: i32 = 801;
2871pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
2872pub const NID_dsa_with_SHA224: i32 = 802;
2873pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
2874pub const NID_dsa_with_SHA256: i32 = 803;
2875pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
2876pub const NID_whirlpool: i32 = 804;
2877pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
2878pub const NID_cryptopro: i32 = 805;
2879pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
2880pub const NID_cryptocom: i32 = 806;
2881pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
2882    b"id-GostR3411-94-with-GostR3410-2001\0";
2883pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
2884    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
2885pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
2886pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
2887pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
2888    b"GOST R 34.11-94 with GOST R 34.10-94\0";
2889pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
2890pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
2891pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
2892pub const NID_id_GostR3411_94: i32 = 809;
2893pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
2894pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
2895pub const NID_id_HMACGostR3411_94: i32 = 810;
2896pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
2897pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
2898pub const NID_id_GostR3410_2001: i32 = 811;
2899pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
2900pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
2901pub const NID_id_GostR3410_94: i32 = 812;
2902pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
2903pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
2904pub const NID_id_Gost28147_89: i32 = 813;
2905pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
2906pub const NID_gost89_cnt: i32 = 814;
2907pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
2908pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
2909pub const NID_id_Gost28147_89_MAC: i32 = 815;
2910pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
2911pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
2912pub const NID_id_GostR3411_94_prf: i32 = 816;
2913pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
2914pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
2915pub const NID_id_GostR3410_2001DH: i32 = 817;
2916pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
2917pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
2918pub const NID_id_GostR3410_94DH: i32 = 818;
2919pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
2920    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
2921pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
2922pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
2923pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
2924pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
2925pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
2926pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
2927pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
2928pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
2929pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
2930pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
2931    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
2932pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
2933pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
2934    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
2935pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
2936pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
2937    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
2938pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
2939pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
2940    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
2941pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
2942pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
2943    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
2944pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
2945pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
2946    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
2947pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
2948pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
2949    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
2950pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
2951pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
2952pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
2953pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
2954    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
2955pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
2956pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
2957    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
2958pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
2959pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
2960    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
2961pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
2962pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
2963    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
2964pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
2965pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
2966    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
2967pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
2968pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
2969    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
2970pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
2971pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
2972    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
2973pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
2974pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
2975pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
2976pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
2977    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
2978pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
2979pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
2980    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
2981pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
2982pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
2983    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
2984pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
2985pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
2986    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
2987pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
2988pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
2989    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
2990pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
2991pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
2992pub const NID_id_GostR3410_94_a: i32 = 845;
2993pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
2994pub const NID_id_GostR3410_94_aBis: i32 = 846;
2995pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
2996pub const NID_id_GostR3410_94_b: i32 = 847;
2997pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
2998pub const NID_id_GostR3410_94_bBis: i32 = 848;
2999pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3000pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3001pub const NID_id_Gost28147_89_cc: i32 = 849;
3002pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3003pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3004pub const NID_id_GostR3410_94_cc: i32 = 850;
3005pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3006pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3007pub const NID_id_GostR3410_2001_cc: i32 = 851;
3008pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3009    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3010pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3011    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3012pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3013pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3014    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3015pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3016    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3017pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3018pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3019pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3020    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3021pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3022pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3023pub const LN_hmac: &[u8; 5] = b"hmac\0";
3024pub const NID_hmac: i32 = 855;
3025pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3026pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3027pub const NID_LocalKeySet: i32 = 856;
3028pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3029pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3030pub const NID_freshest_crl: i32 = 857;
3031pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3032pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3033pub const NID_id_on_permanentIdentifier: i32 = 858;
3034pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3035pub const NID_searchGuide: i32 = 859;
3036pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3037pub const NID_businessCategory: i32 = 860;
3038pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3039pub const NID_postalAddress: i32 = 861;
3040pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3041pub const NID_postOfficeBox: i32 = 862;
3042pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3043pub const NID_physicalDeliveryOfficeName: i32 = 863;
3044pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3045pub const NID_telephoneNumber: i32 = 864;
3046pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3047pub const NID_telexNumber: i32 = 865;
3048pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3049pub const NID_teletexTerminalIdentifier: i32 = 866;
3050pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3051pub const NID_facsimileTelephoneNumber: i32 = 867;
3052pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3053pub const NID_x121Address: i32 = 868;
3054pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3055pub const NID_internationaliSDNNumber: i32 = 869;
3056pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3057pub const NID_registeredAddress: i32 = 870;
3058pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3059pub const NID_destinationIndicator: i32 = 871;
3060pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3061pub const NID_preferredDeliveryMethod: i32 = 872;
3062pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3063pub const NID_presentationAddress: i32 = 873;
3064pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3065pub const NID_supportedApplicationContext: i32 = 874;
3066pub const SN_member: &[u8; 7] = b"member\0";
3067pub const NID_member: i32 = 875;
3068pub const SN_owner: &[u8; 6] = b"owner\0";
3069pub const NID_owner: i32 = 876;
3070pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3071pub const NID_roleOccupant: i32 = 877;
3072pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3073pub const NID_seeAlso: i32 = 878;
3074pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3075pub const NID_userPassword: i32 = 879;
3076pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3077pub const NID_userCertificate: i32 = 880;
3078pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3079pub const NID_cACertificate: i32 = 881;
3080pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3081pub const NID_authorityRevocationList: i32 = 882;
3082pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3083pub const NID_certificateRevocationList: i32 = 883;
3084pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3085pub const NID_crossCertificatePair: i32 = 884;
3086pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3087pub const NID_enhancedSearchGuide: i32 = 885;
3088pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3089pub const NID_protocolInformation: i32 = 886;
3090pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3091pub const NID_distinguishedName: i32 = 887;
3092pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3093pub const NID_uniqueMember: i32 = 888;
3094pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3095pub const NID_houseIdentifier: i32 = 889;
3096pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3097pub const NID_supportedAlgorithms: i32 = 890;
3098pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3099pub const NID_deltaRevocationList: i32 = 891;
3100pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3101pub const NID_dmdName: i32 = 892;
3102pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3103pub const NID_id_alg_PWRI_KEK: i32 = 893;
3104pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3105pub const LN_cmac: &[u8; 5] = b"cmac\0";
3106pub const NID_cmac: i32 = 894;
3107pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3108pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3109pub const NID_aes_128_gcm: i32 = 895;
3110pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3111pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3112pub const NID_aes_128_ccm: i32 = 896;
3113pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3114pub const NID_id_aes128_wrap_pad: i32 = 897;
3115pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3116pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3117pub const NID_aes_192_gcm: i32 = 898;
3118pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3119pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3120pub const NID_aes_192_ccm: i32 = 899;
3121pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3122pub const NID_id_aes192_wrap_pad: i32 = 900;
3123pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3124pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3125pub const NID_aes_256_gcm: i32 = 901;
3126pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3127pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3128pub const NID_aes_256_ccm: i32 = 902;
3129pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3130pub const NID_id_aes256_wrap_pad: i32 = 903;
3131pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3132pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3133pub const NID_aes_128_ctr: i32 = 904;
3134pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3135pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3136pub const NID_aes_192_ctr: i32 = 905;
3137pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3138pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3139pub const NID_aes_256_ctr: i32 = 906;
3140pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3141pub const NID_id_camellia128_wrap: i32 = 907;
3142pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3143pub const NID_id_camellia192_wrap: i32 = 908;
3144pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3145pub const NID_id_camellia256_wrap: i32 = 909;
3146pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3147pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3148pub const NID_anyExtendedKeyUsage: i32 = 910;
3149pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3150pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3151pub const NID_mgf1: i32 = 911;
3152pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3153pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3154pub const NID_rsassaPss: i32 = 912;
3155pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3156pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3157pub const NID_aes_128_xts: i32 = 913;
3158pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3159pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3160pub const NID_aes_256_xts: i32 = 914;
3161pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3162pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3163pub const NID_rc4_hmac_md5: i32 = 915;
3164pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3165pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3166pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3167pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3168pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3169pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3170pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3171pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3172pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3173pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3174pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3175pub const NID_rsaesOaep: i32 = 919;
3176pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3177pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3178pub const NID_dhpublicnumber: i32 = 920;
3179pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3180pub const NID_brainpoolP160r1: i32 = 921;
3181pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3182pub const NID_brainpoolP160t1: i32 = 922;
3183pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3184pub const NID_brainpoolP192r1: i32 = 923;
3185pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3186pub const NID_brainpoolP192t1: i32 = 924;
3187pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3188pub const NID_brainpoolP224r1: i32 = 925;
3189pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3190pub const NID_brainpoolP224t1: i32 = 926;
3191pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3192pub const NID_brainpoolP256r1: i32 = 927;
3193pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3194pub const NID_brainpoolP256t1: i32 = 928;
3195pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3196pub const NID_brainpoolP320r1: i32 = 929;
3197pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3198pub const NID_brainpoolP320t1: i32 = 930;
3199pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3200pub const NID_brainpoolP384r1: i32 = 931;
3201pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3202pub const NID_brainpoolP384t1: i32 = 932;
3203pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3204pub const NID_brainpoolP512r1: i32 = 933;
3205pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3206pub const NID_brainpoolP512t1: i32 = 934;
3207pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3208pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3209pub const NID_pSpecified: i32 = 935;
3210pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3211pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3212pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3213    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3214pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3215pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3216    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3217pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3218pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3219    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3220pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3221pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3222    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3223pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3224pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3225    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3226pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3227pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3228    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3229pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3230pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3231    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3232pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3233pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3234    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3235pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3236pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3237    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3238pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3239pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3240pub const NID_dh_std_kdf: i32 = 946;
3241pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3242pub const NID_dh_cofactor_kdf: i32 = 947;
3243pub const SN_X25519: &[u8; 7] = b"X25519\0";
3244pub const NID_X25519: i32 = 948;
3245pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3246pub const NID_ED25519: i32 = 949;
3247pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3248pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3249pub const NID_chacha20_poly1305: i32 = 950;
3250pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3251pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3252pub const NID_kx_rsa: i32 = 951;
3253pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3254pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3255pub const NID_kx_ecdhe: i32 = 952;
3256pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3257pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3258pub const NID_kx_psk: i32 = 953;
3259pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3260pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3261pub const NID_auth_rsa: i32 = 954;
3262pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3263pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3264pub const NID_auth_ecdsa: i32 = 955;
3265pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3266pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3267pub const NID_auth_psk: i32 = 956;
3268pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3269pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3270pub const NID_kx_any: i32 = 957;
3271pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3272pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3273pub const NID_auth_any: i32 = 958;
3274pub const SN_ED448: &[u8; 6] = b"ED448\0";
3275pub const NID_ED448: i32 = 960;
3276pub const SN_X448: &[u8; 5] = b"X448\0";
3277pub const NID_X448: i32 = 961;
3278pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3279pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3280pub const NID_sha512_256: i32 = 962;
3281pub const SN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"AES-128-CBC-HMAC-SHA256\0";
3282pub const LN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"aes-128-cbc-hmac-sha256\0";
3283pub const NID_aes_128_cbc_hmac_sha256: i32 = 963;
3284pub const SN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"AES-256-CBC-HMAC-SHA256\0";
3285pub const LN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"aes-256-cbc-hmac-sha256\0";
3286pub const NID_aes_256_cbc_hmac_sha256: i32 = 964;
3287pub const SN_sha3_224: &[u8; 9] = b"SHA3-224\0";
3288pub const LN_sha3_224: &[u8; 9] = b"sha3-224\0";
3289pub const NID_sha3_224: i32 = 965;
3290pub const SN_sha3_256: &[u8; 9] = b"SHA3-256\0";
3291pub const LN_sha3_256: &[u8; 9] = b"sha3-256\0";
3292pub const NID_sha3_256: i32 = 966;
3293pub const SN_sha3_384: &[u8; 9] = b"SHA3-384\0";
3294pub const LN_sha3_384: &[u8; 9] = b"sha3-384\0";
3295pub const NID_sha3_384: i32 = 967;
3296pub const SN_sha3_512: &[u8; 9] = b"SHA3-512\0";
3297pub const LN_sha3_512: &[u8; 9] = b"sha3-512\0";
3298pub const NID_sha3_512: i32 = 968;
3299pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3300pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3301pub const NID_hkdf: i32 = 969;
3302pub const SN_kem: &[u8; 4] = b"KEM\0";
3303pub const LN_kem: &[u8; 4] = b"kem\0";
3304pub const NID_kem: i32 = 970;
3305pub const SN_ffdhe2048: &[u8; 10] = b"ffdhe2048\0";
3306pub const NID_ffdhe2048: i32 = 976;
3307pub const SN_ffdhe4096: &[u8; 10] = b"ffdhe4096\0";
3308pub const NID_ffdhe4096: i32 = 977;
3309pub const SN_sha512_224: &[u8; 11] = b"SHA512-224\0";
3310pub const LN_sha512_224: &[u8; 11] = b"sha512-224\0";
3311pub const NID_sha512_224: i32 = 978;
3312pub const SN_shake128: &[u8; 9] = b"SHAKE128\0";
3313pub const LN_shake128: &[u8; 9] = b"shake128\0";
3314pub const NID_shake128: i32 = 979;
3315pub const SN_shake256: &[u8; 9] = b"SHAKE256\0";
3316pub const LN_shake256: &[u8; 9] = b"shake256\0";
3317pub const NID_shake256: i32 = 980;
3318pub const SN_ffdhe3072: &[u8; 10] = b"ffdhe3072\0";
3319pub const NID_ffdhe3072: i32 = 983;
3320pub const SN_ffdhe8192: &[u8; 10] = b"ffdhe8192\0";
3321pub const NID_ffdhe8192: i32 = 984;
3322pub const SN_MLKEM512IPD: &[u8; 12] = b"MLKEM512IPD\0";
3323pub const NID_MLKEM512IPD: i32 = 985;
3324pub const SN_MLKEM768IPD: &[u8; 12] = b"MLKEM768IPD\0";
3325pub const NID_MLKEM768IPD: i32 = 986;
3326pub const SN_MLKEM1024IPD: &[u8; 13] = b"MLKEM1024IPD\0";
3327pub const NID_MLKEM1024IPD: i32 = 987;
3328pub const SN_MLKEM512: &[u8; 9] = b"MLKEM512\0";
3329pub const NID_MLKEM512: i32 = 988;
3330pub const SN_MLKEM768: &[u8; 9] = b"MLKEM768\0";
3331pub const NID_MLKEM768: i32 = 989;
3332pub const SN_MLKEM1024: &[u8; 10] = b"MLKEM1024\0";
3333pub const NID_MLKEM1024: i32 = 990;
3334pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3335pub const NID_X25519MLKEM768: i32 = 991;
3336pub const SN_SecP256r1MLKEM768: &[u8; 18] = b"SecP256r1MLKEM768\0";
3337pub const NID_SecP256r1MLKEM768: i32 = 992;
3338pub const SN_PQDSA: &[u8; 6] = b"PQDSA\0";
3339pub const NID_PQDSA: i32 = 993;
3340pub const SN_MLDSA44: &[u8; 8] = b"MLDSA44\0";
3341pub const NID_MLDSA44: i32 = 994;
3342pub const SN_MLDSA65: &[u8; 8] = b"MLDSA65\0";
3343pub const NID_MLDSA65: i32 = 995;
3344pub const SN_MLDSA87: &[u8; 8] = b"MLDSA87\0";
3345pub const NID_MLDSA87: i32 = 996;
3346pub const SN_ED25519ph: &[u8; 10] = b"ED25519ph\0";
3347pub const NID_ED25519ph: i32 = 997;
3348pub const SN_SecP384r1MLKEM1024: &[u8; 19] = b"SecP384r1MLKEM1024\0";
3349pub const NID_SecP384r1MLKEM1024: i32 = 998;
3350pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3351pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3352pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3353pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3354pub const MD5_CBLOCK: i32 = 64;
3355pub const MD5_DIGEST_LENGTH: i32 = 16;
3356pub const HMAC_MD5_PRECOMPUTED_KEY_SIZE: i32 = 32;
3357pub const HMAC_SHA1_PRECOMPUTED_KEY_SIZE: i32 = 40;
3358pub const HMAC_SHA224_PRECOMPUTED_KEY_SIZE: i32 = 64;
3359pub const HMAC_SHA256_PRECOMPUTED_KEY_SIZE: i32 = 64;
3360pub const HMAC_SHA384_PRECOMPUTED_KEY_SIZE: i32 = 128;
3361pub const HMAC_SHA512_PRECOMPUTED_KEY_SIZE: i32 = 128;
3362pub const HMAC_SHA512_224_PRECOMPUTED_KEY_SIZE: i32 = 128;
3363pub const HMAC_SHA512_256_PRECOMPUTED_KEY_SIZE: i32 = 128;
3364pub const HMAC_MAX_PRECOMPUTED_KEY_SIZE: i32 = 128;
3365pub const HMAC_R_MISSING_PARAMETERS: i32 = 100;
3366pub const HMAC_R_BUFFER_TOO_SMALL: i32 = 102;
3367pub const HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED: i32 = 103;
3368pub const HMAC_R_NOT_CALLED_JUST_AFTER_INIT: i32 = 104;
3369pub const HMAC_R_PRECOMPUTED_KEY_NOT_SUPPORTED_FOR_DIGEST: i32 = 105;
3370pub const EVP_PKEY_NONE: i32 = 0;
3371pub const EVP_PKEY_RSA: i32 = 6;
3372pub const EVP_PKEY_RSA_PSS: i32 = 912;
3373pub const EVP_PKEY_EC: i32 = 408;
3374pub const EVP_PKEY_ED25519: i32 = 949;
3375pub const EVP_PKEY_ED25519PH: i32 = 997;
3376pub const EVP_PKEY_X25519: i32 = 948;
3377pub const EVP_PKEY_HKDF: i32 = 969;
3378pub const EVP_PKEY_HMAC: i32 = 855;
3379pub const EVP_PKEY_DH: i32 = 28;
3380pub const EVP_PKEY_PQDSA: i32 = 993;
3381pub const EVP_PKEY_KEM: i32 = 970;
3382pub const PKCS5_SALT_LEN: i32 = 8;
3383pub const EVP_PKEY_RSA2: i32 = 19;
3384pub const EVP_PKEY_X448: i32 = 961;
3385pub const EVP_PKEY_ED448: i32 = 960;
3386pub const EVP_PKEY_DSA: i32 = 116;
3387pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3388pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3389pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3390pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3391pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3392pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 32;
3393pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 32;
3394pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 32;
3395pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3396pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3397pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3398pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3399pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3400pub const HRSS_SAMPLE_BYTES: i32 = 700;
3401pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3402pub const HRSS_ENCAP_BYTES: i32 = 1400;
3403pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3404pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3405pub const HRSS_KEY_BYTES: i32 = 32;
3406pub const HRSS_POLY3_BYTES: i32 = 140;
3407pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3408pub const MD4_CBLOCK: i32 = 64;
3409pub const MD4_DIGEST_LENGTH: i32 = 16;
3410pub const PKCS7_DETACHED: i32 = 64;
3411pub const PKCS7_BINARY: i32 = 128;
3412pub const PKCS7_NOINTERN: i32 = 16;
3413pub const PKCS7_NOATTR: i32 = 256;
3414pub const PKCS7_NOCERTS: i32 = 2;
3415pub const PKCS7_NOVERIFY: i32 = 32;
3416pub const PKCS7_TEXT: i32 = 1;
3417pub const PKCS7_NOSIGS: i32 = 4;
3418pub const PKCS7_NOCHAIN: i32 = 8;
3419pub const PKCS7_NOSMIMECAP: i32 = 512;
3420pub const PKCS7_STREAM: i32 = 4096;
3421pub const PKCS7_PARTIAL: i32 = 16384;
3422pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3423pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3424pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3425pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3426pub const PKCS7_R_INVALID_NULL_POINTER: i32 = 104;
3427pub const PKCS7_R_NO_CONTENT: i32 = 105;
3428pub const PKCS7_R_CIPHER_NOT_INITIALIZED: i32 = 106;
3429pub const PKCS7_R_UNSUPPORTED_CONTENT_TYPE: i32 = 107;
3430pub const PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST: i32 = 108;
3431pub const PKCS7_R_UNABLE_TO_FIND_MEM_BIO: i32 = 109;
3432pub const PKCS7_R_WRONG_CONTENT_TYPE: i32 = 110;
3433pub const PKCS7_R_CONTENT_AND_DATA_PRESENT: i32 = 111;
3434pub const PKCS7_R_NO_SIGNATURES_ON_DATA: i32 = 112;
3435pub const PKCS7_R_CERTIFICATE_VERIFY_ERROR: i32 = 113;
3436pub const PKCS7_R_SMIME_TEXT_ERROR: i32 = 114;
3437pub const PKCS7_R_SIGNATURE_FAILURE: i32 = 115;
3438pub const PKCS7_R_NO_SIGNERS: i32 = 116;
3439pub const PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 117;
3440pub const PKCS7_R_ERROR_SETTING_CIPHER: i32 = 118;
3441pub const PKCS7_R_ERROR_ADDING_RECIPIENT: i32 = 119;
3442pub const PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 120;
3443pub const PKCS7_R_DECRYPT_ERROR: i32 = 121;
3444pub const PKCS7_R_PKCS7_DATASIGN: i32 = 122;
3445pub const PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 123;
3446pub const PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE: i32 = 124;
3447pub const PKCS7_R_UNKNOWN_DIGEST_TYPE: i32 = 125;
3448pub const PKCS7_R_INVALID_SIGNED_DATA_TYPE: i32 = 126;
3449pub const PKCS7_R_UNSUPPORTED_CIPHER_TYPE: i32 = 127;
3450pub const PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE: i32 = 128;
3451pub const PKCS7_R_DIGEST_FAILURE: i32 = 129;
3452pub const PKCS7_R_WRONG_PKCS7_TYPE: i32 = 130;
3453pub const PKCS7_R_PKCS7_ADD_SIGNER_ERROR: i32 = 131;
3454pub const PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR: i32 = 132;
3455pub const PKCS7_R_NO_DEFAULT_DIGEST: i32 = 133;
3456pub const PKCS7_R_CERT_MUST_BE_RSA: i32 = 134;
3457pub const PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE: i32 = 135;
3458pub const RSA_PKCS1_PADDING: i32 = 1;
3459pub const RSA_NO_PADDING: i32 = 3;
3460pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3461pub const RSA_X931_PADDING: i32 = 5;
3462pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3463pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3464pub const RSA_FLAG_OPAQUE: i32 = 1;
3465pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3466pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3467pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3468pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3469pub const RSA_3: i32 = 3;
3470pub const RSA_F4: i32 = 65537;
3471pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3472pub const RSA_R_BAD_ENCODING: i32 = 100;
3473pub const RSA_R_BAD_E_VALUE: i32 = 101;
3474pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3475pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3476pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3477pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3478pub const RSA_R_BAD_VERSION: i32 = 106;
3479pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3480pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3481pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3482pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3483pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3484pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3485pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3486pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3487pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3488pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3489pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3490pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3491pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3492pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3493pub const RSA_R_ENCODE_ERROR: i32 = 121;
3494pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3495pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3496pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3497pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3498pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3499pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3500pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3501pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3502pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3503pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3504pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3505pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3506pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3507pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3508pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3509pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3510pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3511pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3512pub const RSA_R_TOO_LONG: i32 = 140;
3513pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3514pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3515pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3516pub const RSA_R_VALUE_MISSING: i32 = 144;
3517pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3518pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3519pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3520pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3521pub const RSA_R_MISMATCHED_SIGNATURE: i32 = 248;
3522pub const RSA_F_RSA_OSSL_PRIVATE_ENCRYPT: i32 = 0;
3523pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3524pub const X509V3_R_BAD_OBJECT: i32 = 101;
3525pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3526pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3527pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3528pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3529pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3530pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3531pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3532pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3533pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3534pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3535pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3536pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3537pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3538pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3539pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3540pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3541pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3542pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3543pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3544pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3545pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3546pub const X509V3_R_INVALID_NAME: i32 = 123;
3547pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3548pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3549pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3550pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3551pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3552pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3553pub const X509V3_R_INVALID_OPTION: i32 = 130;
3554pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3555pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3556pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3557pub const X509V3_R_INVALID_SECTION: i32 = 134;
3558pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3559pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3560pub const X509V3_R_MISSING_VALUE: i32 = 137;
3561pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3562pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3563pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3564pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3565pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3566pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3567pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3568pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3569pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3570pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3571pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3572pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3573pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3574pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3575pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3576pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3577pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3578pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3579pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3580pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3581pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3582pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3583pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3584pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3585pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3586pub const X509V3_R_INVALID_VALUE: i32 = 163;
3587pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3588pub const X509_VERSION_1: i32 = 0;
3589pub const X509_VERSION_2: i32 = 1;
3590pub const X509_VERSION_3: i32 = 2;
3591pub const EXFLAG_BCONS: i32 = 1;
3592pub const EXFLAG_KUSAGE: i32 = 2;
3593pub const EXFLAG_XKUSAGE: i32 = 4;
3594pub const EXFLAG_NSCERT: i32 = 8;
3595pub const EXFLAG_CA: i32 = 16;
3596pub const EXFLAG_SI: i32 = 32;
3597pub const EXFLAG_V1: i32 = 64;
3598pub const EXFLAG_INVALID: i32 = 128;
3599pub const EXFLAG_SET: i32 = 256;
3600pub const EXFLAG_CRITICAL: i32 = 512;
3601pub const EXFLAG_SS: i32 = 8192;
3602pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3603pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3604pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3605pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3606pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3607pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3608pub const X509v3_KU_CRL_SIGN: i32 = 2;
3609pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3610pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3611pub const XKU_SSL_SERVER: i32 = 1;
3612pub const XKU_SSL_CLIENT: i32 = 2;
3613pub const XKU_SMIME: i32 = 4;
3614pub const XKU_CODE_SIGN: i32 = 8;
3615pub const XKU_SGC: i32 = 16;
3616pub const XKU_OCSP_SIGN: i32 = 32;
3617pub const XKU_TIMESTAMP: i32 = 64;
3618pub const XKU_DVCS: i32 = 128;
3619pub const XKU_ANYEKU: i32 = 256;
3620pub const X509_SIG_INFO_VALID: i32 = 1;
3621pub const X509_SIG_INFO_TLS: i32 = 2;
3622pub const X509_CRL_VERSION_1: i32 = 0;
3623pub const X509_CRL_VERSION_2: i32 = 1;
3624pub const X509_REQ_VERSION_1: i32 = 0;
3625pub const X509V3_ADD_OP_MASK: i32 = 15;
3626pub const X509V3_ADD_DEFAULT: i32 = 0;
3627pub const X509V3_ADD_APPEND: i32 = 1;
3628pub const X509V3_ADD_REPLACE: i32 = 2;
3629pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3630pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3631pub const X509V3_ADD_DELETE: i32 = 5;
3632pub const X509V3_ADD_SILENT: i32 = 16;
3633pub const GEN_OTHERNAME: i32 = 0;
3634pub const GEN_EMAIL: i32 = 1;
3635pub const GEN_DNS: i32 = 2;
3636pub const GEN_X400: i32 = 3;
3637pub const GEN_DIRNAME: i32 = 4;
3638pub const GEN_EDIPARTY: i32 = 5;
3639pub const GEN_URI: i32 = 6;
3640pub const GEN_IPADD: i32 = 7;
3641pub const GEN_RID: i32 = 8;
3642pub const X509_LU_NONE: i32 = 0;
3643pub const X509_LU_X509: i32 = 1;
3644pub const X509_LU_CRL: i32 = 2;
3645pub const X509_LU_PKEY: i32 = 3;
3646pub const X509_V_OK: i32 = 0;
3647pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3648pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3649pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3650pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3651pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3652pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3653pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3654pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3655pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3656pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3657pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3658pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3659pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3660pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3661pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3662pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3663pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3664pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3665pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3666pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3667pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3668pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3669pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3670pub const X509_V_ERR_INVALID_CA: i32 = 24;
3671pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3672pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3673pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3674pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3675pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3676pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3677pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3678pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3679pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3680pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3681pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3682pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3683pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3684pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3685pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3686pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3687pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3688pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3689pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3690pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3691pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3692pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3693pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3694pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3695pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3696pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3697pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3698pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3699pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3700pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3701pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3702pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3703pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3704pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3705pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3706pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3707pub const X509_V_ERR_EE_KEY_TOO_SMALL: i32 = 68;
3708pub const X509_V_ERR_CA_KEY_TOO_SMALL: i32 = 69;
3709pub const X509_V_ERR_CA_MD_TOO_WEAK: i32 = 70;
3710pub const X509_V_UNABLE_TO_GET_CERTS_PUBLIC_KEY: i32 = 71;
3711pub const X509_V_ERR_EC_KEY_EXPLICIT_PARAMS: i32 = 72;
3712pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3713pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3714pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3715pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3716pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3717pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3718pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3719pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3720pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3721pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3722pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3723pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3724pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3725pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3726pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3727pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
3728pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3729pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
3730pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3731pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 1;
3732pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3733pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 16;
3734pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3735pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3736pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3737pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3738pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3739pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3740pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3741pub const X509_PURPOSE_ANY: i32 = 7;
3742pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3743pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3744pub const X509_TRUST_COMPAT: i32 = 1;
3745pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3746pub const X509_TRUST_SSL_SERVER: i32 = 3;
3747pub const X509_TRUST_EMAIL: i32 = 4;
3748pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3749pub const X509_TRUST_OCSP_SIGN: i32 = 6;
3750pub const X509_TRUST_OCSP_REQUEST: i32 = 7;
3751pub const X509_TRUST_TSA: i32 = 8;
3752pub const X509_FILETYPE_PEM: i32 = 1;
3753pub const X509_FILETYPE_ASN1: i32 = 2;
3754pub const X509_FILETYPE_DEFAULT: i32 = 3;
3755pub const X509_L_FILE_LOAD: i32 = 1;
3756pub const X509_L_ADD_DIR: i32 = 2;
3757pub const X509_FLAG_COMPAT: i32 = 0;
3758pub const X509_FLAG_NO_HEADER: i32 = 1;
3759pub const X509_FLAG_NO_VERSION: i32 = 2;
3760pub const X509_FLAG_NO_SERIAL: i32 = 4;
3761pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3762pub const X509_FLAG_NO_ISSUER: i32 = 16;
3763pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3764pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3765pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3766pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3767pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3768pub const X509_FLAG_NO_AUX: i32 = 1024;
3769pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3770pub const X509_FLAG_NO_IDS: i32 = 4096;
3771pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3772pub const X509V3_EXT_DEFAULT: i32 = 0;
3773pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3774pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3775pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3776pub const XN_FLAG_COMPAT: i32 = 0;
3777pub const XN_FLAG_SEP_MASK: i32 = 983040;
3778pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3779pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3780pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3781pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3782pub const XN_FLAG_DN_REV: i32 = 1048576;
3783pub const XN_FLAG_FN_MASK: i32 = 6291456;
3784pub const XN_FLAG_FN_SN: i32 = 0;
3785pub const XN_FLAG_FN_LN: i32 = 2097152;
3786pub const XN_FLAG_FN_OID: i32 = 4194304;
3787pub const XN_FLAG_FN_NONE: i32 = 6291456;
3788pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3789pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3790pub const XN_FLAG_FN_ALIGN: i32 = 33554432;
3791pub const XN_FLAG_RFC2253: i32 = 17892119;
3792pub const XN_FLAG_ONELINE: i32 = 8520479;
3793pub const XN_FLAG_MULTILINE: i32 = 44302342;
3794pub const X509_TRUST_TRUSTED: i32 = 1;
3795pub const X509_TRUST_REJECTED: i32 = 2;
3796pub const X509_TRUST_UNTRUSTED: i32 = 3;
3797pub const X509V3_EXT_MULTILINE: i32 = 4;
3798pub const X509V3_CTX_TEST: i32 = 1;
3799pub const X509V3_CTX_REPLACE: i32 = 2;
3800pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3801pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3802pub const NS_SSL_CLIENT: i32 = 128;
3803pub const NS_SSL_SERVER: i32 = 64;
3804pub const NS_SMIME: i32 = 32;
3805pub const NS_OBJSIGN: i32 = 16;
3806pub const NS_SSL_CA: i32 = 4;
3807pub const NS_SMIME_CA: i32 = 2;
3808pub const NS_OBJSIGN_CA: i32 = 1;
3809pub const NS_ANY_CA: i32 = 7;
3810pub const X509_V_FLAG_POLICY_MASK: i32 = 1920;
3811pub const X509_R_AKID_MISMATCH: i32 = 100;
3812pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3813pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3814pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3815pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3816pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3817pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3818pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3819pub const X509_R_IDP_MISMATCH: i32 = 108;
3820pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3821pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3822pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3823pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3824pub const X509_R_INVALID_TRUST: i32 = 113;
3825pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3826pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3827pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3828pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3829pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3830pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3831pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3832pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3833pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3834pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3835pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3836pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3837pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3838pub const X509_R_SHOULD_RETRY: i32 = 127;
3839pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3840pub const X509_R_UNKNOWN_NID: i32 = 129;
3841pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3842pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3843pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3844pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3845pub const X509_R_WRONG_TYPE: i32 = 134;
3846pub const X509_R_NAME_TOO_LONG: i32 = 135;
3847pub const X509_R_INVALID_PARAMETER: i32 = 136;
3848pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3849pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3850pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3851pub const X509_R_INVALID_VERSION: i32 = 140;
3852pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3853pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3854pub const X509_R_NO_CRL_FOUND: i32 = 143;
3855pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
3856pub const X509_R_UNKNOWN_SIGID_ALGS: i32 = 145;
3857pub const CRL_REASON_NONE: i32 = -1;
3858pub const CRL_REASON_UNSPECIFIED: i32 = 0;
3859pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
3860pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
3861pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
3862pub const CRL_REASON_SUPERSEDED: i32 = 4;
3863pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
3864pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
3865pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
3866pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
3867pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
3868pub const KU_DIGITAL_SIGNATURE: i32 = 128;
3869pub const KU_NON_REPUDIATION: i32 = 64;
3870pub const KU_KEY_ENCIPHERMENT: i32 = 32;
3871pub const KU_DATA_ENCIPHERMENT: i32 = 16;
3872pub const KU_KEY_AGREEMENT: i32 = 8;
3873pub const KU_KEY_CERT_SIGN: i32 = 4;
3874pub const KU_CRL_SIGN: i32 = 2;
3875pub const KU_ENCIPHER_ONLY: i32 = 1;
3876pub const KU_DECIPHER_ONLY: i32 = 32768;
3877pub const OCSP_REVOKED_STATUS_NOSTATUS: i32 = -1;
3878pub const OCSP_REVOKED_STATUS_UNSPECIFIED: i32 = 0;
3879pub const OCSP_REVOKED_STATUS_KEYCOMPROMISE: i32 = 1;
3880pub const OCSP_REVOKED_STATUS_CACOMPROMISE: i32 = 2;
3881pub const OCSP_REVOKED_STATUS_AFFILIATIONCHANGED: i32 = 3;
3882pub const OCSP_REVOKED_STATUS_SUPERSEDED: i32 = 4;
3883pub const OCSP_REVOKED_STATUS_CESSATIONOFOPERATION: i32 = 5;
3884pub const OCSP_REVOKED_STATUS_CERTIFICATEHOLD: i32 = 6;
3885pub const OCSP_REVOKED_STATUS_REMOVEFROMCRL: i32 = 8;
3886pub const OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN: i32 = 9;
3887pub const OCSP_REVOKED_STATUS_AACOMPROMISE: i32 = 10;
3888pub const OCSP_NOCERTS: i32 = 1;
3889pub const OCSP_NOINTERN: i32 = 2;
3890pub const OCSP_NOCHAIN: i32 = 8;
3891pub const OCSP_NOVERIFY: i32 = 16;
3892pub const OCSP_NOEXPLICIT: i32 = 32;
3893pub const OCSP_TRUSTOTHER: i32 = 512;
3894pub const OCSP_RESPID_KEY: i32 = 1024;
3895pub const OCSP_NOTIME: i32 = 2048;
3896pub const OCSP_NOSIGS: i32 = 0;
3897pub const OCSP_NOCASIGN: i32 = 0;
3898pub const OCSP_NODELEGATED: i32 = 0;
3899pub const OCSP_NOCHECKS: i32 = 0;
3900pub const OCSP_RESPONSE_STATUS_SUCCESSFUL: i32 = 0;
3901pub const OCSP_RESPONSE_STATUS_MALFORMEDREQUEST: i32 = 1;
3902pub const OCSP_RESPONSE_STATUS_INTERNALERROR: i32 = 2;
3903pub const OCSP_RESPONSE_STATUS_TRYLATER: i32 = 3;
3904pub const OCSP_RESPONSE_STATUS_SIGREQUIRED: i32 = 5;
3905pub const OCSP_RESPONSE_STATUS_UNAUTHORIZED: i32 = 6;
3906pub const V_OCSP_RESPID_NAME: i32 = 0;
3907pub const V_OCSP_RESPID_KEY: i32 = 1;
3908pub const V_OCSP_CERTSTATUS_GOOD: i32 = 0;
3909pub const V_OCSP_CERTSTATUS_REVOKED: i32 = 1;
3910pub const V_OCSP_CERTSTATUS_UNKNOWN: i32 = 2;
3911pub const OCSP_NONCE_EQUAL: i32 = 1;
3912pub const OCSP_NONCE_BOTH_ABSENT: i32 = 2;
3913pub const OCSP_NONCE_RESPONSE_ONLY: i32 = 3;
3914pub const OCSP_NONCE_NOT_EQUAL: i32 = 0;
3915pub const OCSP_NONCE_REQUEST_ONLY: i32 = -1;
3916pub const OCSP_R_CERTIFICATE_VERIFY_ERROR: i32 = 101;
3917pub const OCSP_R_DIGEST_ERR: i32 = 102;
3918pub const OCSP_R_MISSING_OCSPSIGNING_USAGE: i32 = 103;
3919pub const OCSP_R_NOT_BASIC_RESPONSE: i32 = 104;
3920pub const OCSP_R_NO_CERTIFICATES_IN_CHAIN: i32 = 105;
3921pub const OCSP_R_NO_RESPONSE_DATA: i32 = 108;
3922pub const OCSP_R_NO_REVOKED_TIME: i32 = 109;
3923pub const OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 110;
3924pub const OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA: i32 = 111;
3925pub const OCSP_R_ROOT_CA_NOT_TRUSTED: i32 = 112;
3926pub const OCSP_R_SERVER_RESPONSE_PARSE_ERROR: i32 = 115;
3927pub const OCSP_R_SIGNATURE_FAILURE: i32 = 117;
3928pub const OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 118;
3929pub const OCSP_R_UNKNOWN_MESSAGE_DIGEST: i32 = 119;
3930pub const OCSP_R_UNKNOWN_NID: i32 = 120;
3931pub const OCSP_R_ERROR_PARSING_URL: i32 = 121;
3932pub const OCSP_R_ERROR_IN_NEXTUPDATE_FIELD: i32 = 122;
3933pub const OCSP_R_ERROR_IN_THISUPDATE_FIELD: i32 = 123;
3934pub const OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE: i32 = 124;
3935pub const OCSP_R_STATUS_EXPIRED: i32 = 125;
3936pub const OCSP_R_STATUS_NOT_YET_VALID: i32 = 126;
3937pub const OCSP_R_STATUS_TOO_OLD: i32 = 127;
3938pub const OCSP_R_REQUEST_NOT_SIGNED: i32 = 128;
3939pub const OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE: i32 = 129;
3940pub const OCSP_R_NO_SIGNER_KEY: i32 = 130;
3941pub const OCSP_R_OCSP_REQUEST_DUPLICATE_SIGNATURE: i32 = 131;
3942pub const OCSP_R_UNKNOWN_FIELD_VALUE: i32 = 132;
3943pub const PEM_BUFSIZE: i32 = 1024;
3944pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
3945pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
3946pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
3947pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
3948pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
3949pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
3950pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
3951pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
3952pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
3953pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
3954pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
3955pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
3956pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
3957pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
3958pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
3959pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
3960pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
3961pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
3962pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
3963pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
3964pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
3965pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
3966pub const PEM_STRING_ECPARAMETERS: &[u8; 14] = b"EC PARAMETERS\0";
3967pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
3968pub const PEM_STRING_PARAMETERS: &[u8; 11] = b"PARAMETERS\0";
3969pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
3970pub const PEM_TYPE_ENCRYPTED: i32 = 10;
3971pub const PEM_TYPE_MIC_ONLY: i32 = 20;
3972pub const PEM_TYPE_MIC_CLEAR: i32 = 30;
3973pub const PEM_TYPE_CLEAR: i32 = 40;
3974pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
3975pub const PEM_R_BAD_DECRYPT: i32 = 101;
3976pub const PEM_R_BAD_END_LINE: i32 = 102;
3977pub const PEM_R_BAD_IV_CHARS: i32 = 103;
3978pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
3979pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
3980pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
3981pub const PEM_R_NOT_DEK_INFO: i32 = 107;
3982pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
3983pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
3984pub const PEM_R_NO_START_LINE: i32 = 110;
3985pub const PEM_R_READ_KEY: i32 = 111;
3986pub const PEM_R_SHORT_HEADER: i32 = 112;
3987pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
3988pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
3989pub const PEM_R_PROBLEMS_GETTING_PASSWORD: i32 = 115;
3990pub const PKCS12_DEFAULT_ITER: i32 = 2048;
3991pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
3992pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
3993pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
3994pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
3995pub const PKCS8_R_DECODE_ERROR: i32 = 104;
3996pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
3997pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
3998pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
3999pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4000pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4001pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4002pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4003pub const PKCS8_R_MISSING_MAC: i32 = 112;
4004pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4005pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4006pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4007pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4008pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4009pub const PKCS8_R_TOO_LONG: i32 = 118;
4010pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4011pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4012pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4013pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4014pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4015pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4016pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4017pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4018pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4019pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4020pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4021pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4022pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4023pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4024pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4025pub const PKCS12_R_MAC_VERIFY_FAILURE: i32 = 108;
4026pub const RAND_PRED_RESISTANCE_LEN: i32 = 32;
4027pub const RIPEMD160_CBLOCK: i32 = 64;
4028pub const RIPEMD160_LBLOCK: i32 = 16;
4029pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4030pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4031pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4032pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4033pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4034pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4035pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4036pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4037pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4038pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4039pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4040pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4041pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4042pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4043pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4044pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4045pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4046pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4047pub type __off_t = ::std::os::raw::c_long;
4048pub type __off64_t = ::std::os::raw::c_long;
4049pub type __time_t = ::std::os::raw::c_long;
4050pub type time_t = __time_t;
4051#[repr(C)]
4052#[repr(align(4))]
4053#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
4054pub struct static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4055    pub _bitfield_align_1: [u8; 0],
4056    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
4057    pub __bindgen_padding_0: [u8; 3usize],
4058}
4059#[test]
4060fn bindgen_test_layout_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4061) {
4062    assert_eq!(
4063        ::std::mem::size_of::<
4064            static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit,
4065        >(),
4066        4usize,
4067        "Size of static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit"
4068    );
4069    assert_eq ! (:: std :: mem :: align_of :: < static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit > () , 4usize , "Alignment of static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit");
4070}
4071impl static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4072    #[inline]
4073    pub fn static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4074        &self,
4075    ) -> ::std::os::raw::c_uint {
4076        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
4077    }
4078    #[inline]
4079    pub fn set_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4080        &mut self,
4081        val: ::std::os::raw::c_uint,
4082    ) {
4083        unsafe {
4084            let val: u32 = ::std::mem::transmute(val);
4085            self._bitfield_1.set(0usize, 1u8, val as u64)
4086        }
4087    }
4088    #[inline]
4089    pub unsafe fn static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4090        this: *const Self,
4091    ) -> ::std::os::raw::c_uint {
4092        unsafe {
4093            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4094                ::std::ptr::addr_of!((*this)._bitfield_1),
4095                0usize,
4096                1u8,
4097            ) as u32)
4098        }
4099    }
4100    #[inline]
4101    pub unsafe fn set_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4102        this: *mut Self,
4103        val: ::std::os::raw::c_uint,
4104    ) {
4105        unsafe {
4106            let val: u32 = ::std::mem::transmute(val);
4107            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4108                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4109                0usize,
4110                1u8,
4111                val as u64,
4112            )
4113        }
4114    }
4115    #[inline]
4116    pub fn new_bitfield_1(
4117        static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit : :: std :: os :: raw :: c_uint,
4118    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
4119        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
4120        __bindgen_bitfield_unit . set (0usize , 1u8 , { let static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit : u32 = unsafe { :: std :: mem :: transmute (static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit) } ; static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit as u64 }) ;
4121        __bindgen_bitfield_unit
4122    }
4123}
4124pub type ossl_ssize_t = isize;
4125pub type CBS_ASN1_TAG = u32;
4126pub type CRYPTO_THREADID = ::std::os::raw::c_int;
4127#[repr(C)]
4128#[derive(Debug, Copy, Clone)]
4129pub struct asn1_null_st {
4130    _unused: [u8; 0],
4131}
4132pub type ASN1_NULL = asn1_null_st;
4133pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
4134pub type ASN1_ITEM = ASN1_ITEM_st;
4135#[repr(C)]
4136#[derive(Debug, Copy, Clone)]
4137pub struct asn1_object_st {
4138    _unused: [u8; 0],
4139}
4140pub type ASN1_OBJECT = asn1_object_st;
4141#[repr(C)]
4142#[derive(Debug, Copy, Clone)]
4143pub struct asn1_pctx_st {
4144    _unused: [u8; 0],
4145}
4146pub type ASN1_PCTX = asn1_pctx_st;
4147pub type ASN1_BIT_STRING = asn1_string_st;
4148pub type ASN1_BMPSTRING = asn1_string_st;
4149pub type ASN1_ENUMERATED = asn1_string_st;
4150pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4151pub type ASN1_GENERALSTRING = asn1_string_st;
4152pub type ASN1_IA5STRING = asn1_string_st;
4153pub type ASN1_INTEGER = asn1_string_st;
4154pub type ASN1_OCTET_STRING = asn1_string_st;
4155pub type ASN1_PRINTABLESTRING = asn1_string_st;
4156pub type ASN1_STRING = asn1_string_st;
4157pub type ASN1_T61STRING = asn1_string_st;
4158pub type ASN1_TIME = asn1_string_st;
4159pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4160pub type ASN1_UTCTIME = asn1_string_st;
4161pub type ASN1_UTF8STRING = asn1_string_st;
4162pub type ASN1_VISIBLESTRING = asn1_string_st;
4163pub type ASN1_TYPE = asn1_type_st;
4164pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4165pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4166pub type DIST_POINT = DIST_POINT_st;
4167pub type DSA_SIG = DSA_SIG_st;
4168pub type GENERAL_NAME = GENERAL_NAME_st;
4169pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4170pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4171pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4172pub type NETSCAPE_SPKI = Netscape_spki_st;
4173pub type RIPEMD160_CTX = RIPEMD160state_st;
4174#[repr(C)]
4175#[derive(Debug, Copy, Clone)]
4176pub struct X509_VERIFY_PARAM_st {
4177    _unused: [u8; 0],
4178}
4179pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4180pub type X509_ALGOR = X509_algor_st;
4181#[repr(C)]
4182#[derive(Debug, Copy, Clone)]
4183pub struct X509_crl_st {
4184    _unused: [u8; 0],
4185}
4186pub type X509_CRL = X509_crl_st;
4187#[repr(C)]
4188#[derive(Debug, Copy, Clone)]
4189pub struct X509_extension_st {
4190    _unused: [u8; 0],
4191}
4192pub type X509_EXTENSION = X509_extension_st;
4193pub type X509_INFO = X509_info_st;
4194#[repr(C)]
4195#[derive(Debug, Copy, Clone)]
4196pub struct X509_name_entry_st {
4197    _unused: [u8; 0],
4198}
4199pub type X509_NAME_ENTRY = X509_name_entry_st;
4200#[repr(C)]
4201#[derive(Debug, Copy, Clone)]
4202pub struct X509_name_st {
4203    _unused: [u8; 0],
4204}
4205pub type X509_NAME = X509_name_st;
4206#[repr(C)]
4207#[derive(Debug, Copy, Clone)]
4208pub struct X509_pubkey_st {
4209    _unused: [u8; 0],
4210}
4211pub type X509_PUBKEY = X509_pubkey_st;
4212#[repr(C)]
4213#[derive(Debug, Copy, Clone)]
4214pub struct X509_req_st {
4215    _unused: [u8; 0],
4216}
4217pub type X509_REQ = X509_req_st;
4218#[repr(C)]
4219#[derive(Debug, Copy, Clone)]
4220pub struct x509_sig_info_st {
4221    _unused: [u8; 0],
4222}
4223pub type X509_SIG_INFO = x509_sig_info_st;
4224#[repr(C)]
4225#[derive(Debug, Copy, Clone)]
4226pub struct X509_sig_st {
4227    _unused: [u8; 0],
4228}
4229pub type X509_SIG = X509_sig_st;
4230#[repr(C)]
4231#[derive(Debug, Copy, Clone)]
4232pub struct bignum_ctx {
4233    _unused: [u8; 0],
4234}
4235pub type BN_CTX = bignum_ctx;
4236pub type BIGNUM = bignum_st;
4237pub type BIO_METHOD = bio_method_st;
4238pub type BIO = bio_st;
4239pub type BLAKE2B_CTX = blake2b_state_st;
4240pub type BN_GENCB = bn_gencb_st;
4241pub type BN_MONT_CTX = bn_mont_ctx_st;
4242pub type BUF_MEM = buf_mem_st;
4243#[repr(C)]
4244#[derive(Debug, Copy, Clone)]
4245pub struct cast_key_st {
4246    _unused: [u8; 0],
4247}
4248pub type CAST_KEY = cast_key_st;
4249pub type CBB = cbb_st;
4250pub type CBS = cbs_st;
4251#[repr(C)]
4252#[derive(Debug, Copy, Clone)]
4253pub struct cmac_ctx_st {
4254    _unused: [u8; 0],
4255}
4256pub type CMAC_CTX = cmac_ctx_st;
4257pub type CONF = conf_st;
4258pub type CONF_VALUE = conf_value_st;
4259#[repr(C)]
4260#[derive(Debug, Copy, Clone)]
4261pub struct crypto_buffer_pool_st {
4262    _unused: [u8; 0],
4263}
4264pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
4265#[repr(C)]
4266#[derive(Debug, Copy, Clone)]
4267pub struct crypto_buffer_st {
4268    _unused: [u8; 0],
4269}
4270pub type CRYPTO_BUFFER = crypto_buffer_st;
4271#[repr(C)]
4272#[derive(Debug, Copy, Clone)]
4273pub struct ctr_drbg_state_st {
4274    _unused: [u8; 0],
4275}
4276pub type CTR_DRBG_STATE = ctr_drbg_state_st;
4277#[repr(C)]
4278#[derive(Debug, Copy, Clone)]
4279pub struct dh_st {
4280    _unused: [u8; 0],
4281}
4282pub type DH = dh_st;
4283#[repr(C)]
4284#[derive(Debug, Copy, Clone)]
4285pub struct dsa_st {
4286    _unused: [u8; 0],
4287}
4288pub type DSA = dsa_st;
4289#[repr(C)]
4290#[derive(Debug, Copy, Clone)]
4291pub struct ec_group_st {
4292    _unused: [u8; 0],
4293}
4294pub type EC_GROUP = ec_group_st;
4295#[repr(C)]
4296#[derive(Debug, Copy, Clone)]
4297pub struct ec_key_st {
4298    _unused: [u8; 0],
4299}
4300pub type EC_KEY = ec_key_st;
4301#[repr(C)]
4302#[derive(Debug, Copy, Clone)]
4303pub struct ec_point_st {
4304    _unused: [u8; 0],
4305}
4306pub type EC_POINT = ec_point_st;
4307#[repr(C)]
4308#[derive(Debug, Copy, Clone)]
4309pub struct ec_key_method_st {
4310    _unused: [u8; 0],
4311}
4312pub type EC_KEY_METHOD = ec_key_method_st;
4313pub type ECDSA_SIG = ecdsa_sig_st;
4314#[repr(C)]
4315#[derive(Debug, Copy, Clone)]
4316pub struct engine_st {
4317    _unused: [u8; 0],
4318}
4319pub type ENGINE = engine_st;
4320pub type EVP_MD_CTX = env_md_ctx_st;
4321#[repr(C)]
4322#[derive(Debug, Copy, Clone)]
4323pub struct env_md_st {
4324    _unused: [u8; 0],
4325}
4326pub type EVP_MD = env_md_st;
4327#[repr(C)]
4328#[derive(Debug, Copy, Clone)]
4329pub struct evp_aead_st {
4330    _unused: [u8; 0],
4331}
4332pub type EVP_AEAD = evp_aead_st;
4333pub type EVP_AEAD_CTX = evp_aead_ctx_st;
4334pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
4335#[repr(C)]
4336#[derive(Debug, Copy, Clone)]
4337pub struct evp_cipher_st {
4338    _unused: [u8; 0],
4339}
4340pub type EVP_CIPHER = evp_cipher_st;
4341pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
4342#[repr(C)]
4343#[derive(Debug, Copy, Clone)]
4344pub struct evp_hpke_aead_st {
4345    _unused: [u8; 0],
4346}
4347pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
4348pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
4349#[repr(C)]
4350#[derive(Debug, Copy, Clone)]
4351pub struct evp_hpke_kdf_st {
4352    _unused: [u8; 0],
4353}
4354pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
4355#[repr(C)]
4356#[derive(Debug, Copy, Clone)]
4357pub struct evp_hpke_kem_st {
4358    _unused: [u8; 0],
4359}
4360pub type EVP_HPKE_KEM = evp_hpke_kem_st;
4361pub type EVP_HPKE_KEY = evp_hpke_key_st;
4362#[repr(C)]
4363#[derive(Debug, Copy, Clone)]
4364pub struct evp_kem_st {
4365    _unused: [u8; 0],
4366}
4367pub type EVP_KEM = evp_kem_st;
4368#[repr(C)]
4369#[derive(Debug, Copy, Clone)]
4370pub struct kem_key_st {
4371    _unused: [u8; 0],
4372}
4373pub type KEM_KEY = kem_key_st;
4374#[repr(C)]
4375#[derive(Debug, Copy, Clone)]
4376pub struct evp_pkey_ctx_st {
4377    _unused: [u8; 0],
4378}
4379pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
4380#[repr(C)]
4381#[derive(Debug, Copy, Clone)]
4382pub struct evp_pkey_asn1_method_st {
4383    _unused: [u8; 0],
4384}
4385pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st;
4386#[repr(C)]
4387#[derive(Debug, Copy, Clone)]
4388pub struct evp_pkey_st {
4389    _unused: [u8; 0],
4390}
4391pub type EVP_PKEY = evp_pkey_st;
4392#[repr(C)]
4393#[derive(Debug, Copy, Clone)]
4394pub struct evp_pkey_ctx_signature_context_params_st {
4395    _unused: [u8; 0],
4396}
4397pub type EVP_PKEY_CTX_SIGNATURE_CONTEXT_PARAMS = evp_pkey_ctx_signature_context_params_st;
4398pub type HMAC_CTX = hmac_ctx_st;
4399pub type MD4_CTX = md4_state_st;
4400pub type MD5_CTX = md5_state_st;
4401#[repr(C)]
4402#[derive(Debug, Copy, Clone)]
4403pub struct pqdsa_key_st {
4404    _unused: [u8; 0],
4405}
4406pub type PQDSA_KEY = pqdsa_key_st;
4407#[repr(C)]
4408#[derive(Debug, Copy, Clone)]
4409pub struct ocsp_req_ctx_st {
4410    _unused: [u8; 0],
4411}
4412pub type OCSP_REQ_CTX = ocsp_req_ctx_st;
4413#[repr(C)]
4414#[derive(Debug, Copy, Clone)]
4415pub struct ossl_init_settings_st {
4416    _unused: [u8; 0],
4417}
4418pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
4419#[repr(C)]
4420#[derive(Debug, Copy, Clone)]
4421pub struct pkcs7_digest_st {
4422    _unused: [u8; 0],
4423}
4424pub type PKCS7_DIGEST = pkcs7_digest_st;
4425#[repr(C)]
4426#[derive(Debug, Copy, Clone)]
4427pub struct pkcs7_enc_content_st {
4428    _unused: [u8; 0],
4429}
4430pub type PKCS7_ENC_CONTENT = pkcs7_enc_content_st;
4431#[repr(C)]
4432#[derive(Debug, Copy, Clone)]
4433pub struct pkcs7_encrypt_st {
4434    _unused: [u8; 0],
4435}
4436pub type PKCS7_ENCRYPT = pkcs7_encrypt_st;
4437pub type PKCS7_ENVELOPE = pkcs7_envelope_st;
4438pub type PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st;
4439pub type PKCS7_RECIP_INFO = pkcs7_recip_info_st;
4440pub type PKCS7_SIGN_ENVELOPE = pkcs7_sign_envelope_st;
4441pub type PKCS7_SIGNED = pkcs7_signed_st;
4442pub type PKCS7_SIGNER_INFO = pkcs7_signer_info_st;
4443pub type PKCS7 = pkcs7_st;
4444#[repr(C)]
4445#[derive(Debug, Copy, Clone)]
4446pub struct pkcs12_st {
4447    _unused: [u8; 0],
4448}
4449pub type PKCS12 = pkcs12_st;
4450#[repr(C)]
4451#[derive(Debug, Copy, Clone)]
4452pub struct pkcs8_priv_key_info_st {
4453    _unused: [u8; 0],
4454}
4455pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
4456pub type X509_PKEY = private_key_st;
4457pub type RAND_METHOD = rand_meth_st;
4458pub type RC4_KEY = rc4_key_st;
4459#[repr(C)]
4460#[derive(Debug, Copy, Clone)]
4461pub struct rsa_meth_st {
4462    _unused: [u8; 0],
4463}
4464pub type RSA_METHOD = rsa_meth_st;
4465#[repr(C)]
4466#[derive(Debug, Copy, Clone)]
4467pub struct rsassa_pss_params_st {
4468    _unused: [u8; 0],
4469}
4470pub type RSASSA_PSS_PARAMS = rsassa_pss_params_st;
4471pub type RSA_PSS_PARAMS = rsa_pss_params_st;
4472#[repr(C)]
4473#[derive(Debug, Copy, Clone)]
4474pub struct rsa_st {
4475    _unused: [u8; 0],
4476}
4477pub type RSA = rsa_st;
4478pub type SHA256_CTX = sha256_state_st;
4479pub type SHA512_CTX = sha512_state_st;
4480pub type SHA_CTX = sha_state_st;
4481#[repr(C)]
4482#[derive(Debug, Copy, Clone)]
4483pub struct spake2_ctx_st {
4484    _unused: [u8; 0],
4485}
4486pub type SPAKE2_CTX = spake2_ctx_st;
4487#[repr(C)]
4488#[derive(Debug, Copy, Clone)]
4489pub struct srtp_protection_profile_st {
4490    _unused: [u8; 0],
4491}
4492pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
4493#[repr(C)]
4494#[derive(Debug, Copy, Clone)]
4495pub struct ssl_cipher_st {
4496    _unused: [u8; 0],
4497}
4498pub type SSL_CIPHER = ssl_cipher_st;
4499#[repr(C)]
4500#[derive(Debug, Copy, Clone)]
4501pub struct ssl_ctx_st {
4502    _unused: [u8; 0],
4503}
4504pub type SSL_CTX = ssl_ctx_st;
4505#[repr(C)]
4506#[derive(Debug, Copy, Clone)]
4507pub struct ssl_early_callback_ctx {
4508    _unused: [u8; 0],
4509}
4510pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
4511#[repr(C)]
4512#[derive(Debug, Copy, Clone)]
4513pub struct ssl_ech_keys_st {
4514    _unused: [u8; 0],
4515}
4516pub type SSL_ECH_KEYS = ssl_ech_keys_st;
4517#[repr(C)]
4518#[derive(Debug, Copy, Clone)]
4519pub struct ssl_method_st {
4520    _unused: [u8; 0],
4521}
4522pub type SSL_METHOD = ssl_method_st;
4523#[repr(C)]
4524#[derive(Debug, Copy, Clone)]
4525pub struct ssl_private_key_method_st {
4526    _unused: [u8; 0],
4527}
4528pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
4529#[repr(C)]
4530#[derive(Debug, Copy, Clone)]
4531pub struct ssl_quic_method_st {
4532    _unused: [u8; 0],
4533}
4534pub type SSL_QUIC_METHOD = ssl_quic_method_st;
4535#[repr(C)]
4536#[derive(Debug, Copy, Clone)]
4537pub struct ssl_session_st {
4538    _unused: [u8; 0],
4539}
4540pub type SSL_SESSION = ssl_session_st;
4541#[repr(C)]
4542#[derive(Debug, Copy, Clone)]
4543pub struct ssl_st {
4544    _unused: [u8; 0],
4545}
4546pub type SSL = ssl_st;
4547#[repr(C)]
4548#[derive(Debug, Copy, Clone)]
4549pub struct ssl_ticket_aead_method_st {
4550    _unused: [u8; 0],
4551}
4552pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
4553#[repr(C)]
4554#[derive(Debug, Copy, Clone)]
4555pub struct st_ERR_FNS {
4556    _unused: [u8; 0],
4557}
4558pub type ERR_FNS = st_ERR_FNS;
4559pub type TRUST_TOKEN = trust_token_st;
4560#[repr(C)]
4561#[derive(Debug, Copy, Clone)]
4562pub struct trust_token_client_st {
4563    _unused: [u8; 0],
4564}
4565pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
4566#[repr(C)]
4567#[derive(Debug, Copy, Clone)]
4568pub struct trust_token_issuer_st {
4569    _unused: [u8; 0],
4570}
4571pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
4572#[repr(C)]
4573#[derive(Debug, Copy, Clone)]
4574pub struct trust_token_method_st {
4575    _unused: [u8; 0],
4576}
4577pub type TRUST_TOKEN_METHOD = trust_token_method_st;
4578pub type X509V3_CTX = v3_ext_ctx;
4579pub type X509V3_EXT_METHOD = v3_ext_method;
4580#[repr(C)]
4581#[derive(Debug, Copy, Clone)]
4582pub struct x509_attributes_st {
4583    _unused: [u8; 0],
4584}
4585pub type X509_ATTRIBUTE = x509_attributes_st;
4586#[repr(C)]
4587#[derive(Debug, Copy, Clone)]
4588pub struct x509_lookup_st {
4589    _unused: [u8; 0],
4590}
4591pub type X509_LOOKUP = x509_lookup_st;
4592#[repr(C)]
4593#[derive(Debug, Copy, Clone)]
4594pub struct x509_lookup_method_st {
4595    _unused: [u8; 0],
4596}
4597pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
4598#[repr(C)]
4599#[derive(Debug, Copy, Clone)]
4600pub struct x509_object_st {
4601    _unused: [u8; 0],
4602}
4603pub type X509_OBJECT = x509_object_st;
4604#[repr(C)]
4605#[derive(Debug, Copy, Clone)]
4606pub struct x509_revoked_st {
4607    _unused: [u8; 0],
4608}
4609pub type X509_REVOKED = x509_revoked_st;
4610#[repr(C)]
4611#[derive(Debug, Copy, Clone)]
4612pub struct x509_st {
4613    _unused: [u8; 0],
4614}
4615pub type X509 = x509_st;
4616#[repr(C)]
4617#[derive(Debug, Copy, Clone)]
4618pub struct x509_store_ctx_st {
4619    _unused: [u8; 0],
4620}
4621pub type X509_STORE_CTX = x509_store_ctx_st;
4622#[repr(C)]
4623#[derive(Debug, Copy, Clone)]
4624pub struct x509_store_st {
4625    _unused: [u8; 0],
4626}
4627pub type X509_STORE = x509_store_st;
4628pub type X509_TRUST = x509_trust_st;
4629pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
4630#[repr(C)]
4631#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4632pub struct aes_key_st {
4633    pub rd_key: [u32; 60usize],
4634    pub rounds: ::std::os::raw::c_uint,
4635}
4636#[test]
4637fn bindgen_test_layout_aes_key_st() {
4638    const UNINIT: ::std::mem::MaybeUninit<aes_key_st> = ::std::mem::MaybeUninit::uninit();
4639    let ptr = UNINIT.as_ptr();
4640    assert_eq!(
4641        ::std::mem::size_of::<aes_key_st>(),
4642        244usize,
4643        "Size of aes_key_st"
4644    );
4645    assert_eq!(
4646        ::std::mem::align_of::<aes_key_st>(),
4647        4usize,
4648        "Alignment of aes_key_st"
4649    );
4650    assert_eq!(
4651        unsafe { ::std::ptr::addr_of!((*ptr).rd_key) as usize - ptr as usize },
4652        0usize,
4653        "Offset of field: aes_key_st::rd_key"
4654    );
4655    assert_eq!(
4656        unsafe { ::std::ptr::addr_of!((*ptr).rounds) as usize - ptr as usize },
4657        240usize,
4658        "Offset of field: aes_key_st::rounds"
4659    );
4660}
4661impl Default for aes_key_st {
4662    fn default() -> Self {
4663        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4664        unsafe {
4665            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4666            s.assume_init()
4667        }
4668    }
4669}
4670pub type AES_KEY = aes_key_st;
4671extern "C" {
4672    #[link_name = "\u{1}aws_lc_0_37_0_AES_set_encrypt_key"]
4673    pub fn AES_set_encrypt_key(
4674        key: *const u8,
4675        bits: ::std::os::raw::c_uint,
4676        aeskey: *mut AES_KEY,
4677    ) -> ::std::os::raw::c_int;
4678}
4679extern "C" {
4680    #[link_name = "\u{1}aws_lc_0_37_0_AES_set_decrypt_key"]
4681    pub fn AES_set_decrypt_key(
4682        key: *const u8,
4683        bits: ::std::os::raw::c_uint,
4684        aeskey: *mut AES_KEY,
4685    ) -> ::std::os::raw::c_int;
4686}
4687extern "C" {
4688    #[link_name = "\u{1}aws_lc_0_37_0_AES_encrypt"]
4689    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4690}
4691extern "C" {
4692    #[link_name = "\u{1}aws_lc_0_37_0_AES_decrypt"]
4693    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4694}
4695extern "C" {
4696    #[link_name = "\u{1}aws_lc_0_37_0_AES_ctr128_encrypt"]
4697    pub fn AES_ctr128_encrypt(
4698        in_: *const u8,
4699        out: *mut u8,
4700        len: usize,
4701        key: *const AES_KEY,
4702        ivec: *mut u8,
4703        ecount_buf: *mut u8,
4704        num: *mut ::std::os::raw::c_uint,
4705    );
4706}
4707extern "C" {
4708    #[link_name = "\u{1}aws_lc_0_37_0_AES_ecb_encrypt"]
4709    pub fn AES_ecb_encrypt(
4710        in_: *const u8,
4711        out: *mut u8,
4712        key: *const AES_KEY,
4713        enc: ::std::os::raw::c_int,
4714    );
4715}
4716extern "C" {
4717    #[link_name = "\u{1}aws_lc_0_37_0_AES_cbc_encrypt"]
4718    pub fn AES_cbc_encrypt(
4719        in_: *const u8,
4720        out: *mut u8,
4721        len: usize,
4722        key: *const AES_KEY,
4723        ivec: *mut u8,
4724        enc: ::std::os::raw::c_int,
4725    );
4726}
4727extern "C" {
4728    #[link_name = "\u{1}aws_lc_0_37_0_AES_ofb128_encrypt"]
4729    pub fn AES_ofb128_encrypt(
4730        in_: *const u8,
4731        out: *mut u8,
4732        len: usize,
4733        key: *const AES_KEY,
4734        ivec: *mut u8,
4735        num: *mut ::std::os::raw::c_int,
4736    );
4737}
4738extern "C" {
4739    #[link_name = "\u{1}aws_lc_0_37_0_AES_cfb1_encrypt"]
4740    pub fn AES_cfb1_encrypt(
4741        in_: *const u8,
4742        out: *mut u8,
4743        bits: usize,
4744        key: *const AES_KEY,
4745        ivec: *mut u8,
4746        num: *mut ::std::os::raw::c_int,
4747        enc: ::std::os::raw::c_int,
4748    );
4749}
4750extern "C" {
4751    #[link_name = "\u{1}aws_lc_0_37_0_AES_cfb8_encrypt"]
4752    pub fn AES_cfb8_encrypt(
4753        in_: *const u8,
4754        out: *mut u8,
4755        len: usize,
4756        key: *const AES_KEY,
4757        ivec: *mut u8,
4758        num: *mut ::std::os::raw::c_int,
4759        enc: ::std::os::raw::c_int,
4760    );
4761}
4762extern "C" {
4763    #[link_name = "\u{1}aws_lc_0_37_0_AES_cfb128_encrypt"]
4764    pub fn AES_cfb128_encrypt(
4765        in_: *const u8,
4766        out: *mut u8,
4767        len: usize,
4768        key: *const AES_KEY,
4769        ivec: *mut u8,
4770        num: *mut ::std::os::raw::c_int,
4771        enc: ::std::os::raw::c_int,
4772    );
4773}
4774extern "C" {
4775    #[link_name = "\u{1}aws_lc_0_37_0_AES_wrap_key"]
4776    pub fn AES_wrap_key(
4777        key: *const AES_KEY,
4778        iv: *const u8,
4779        out: *mut u8,
4780        in_: *const u8,
4781        in_len: usize,
4782    ) -> ::std::os::raw::c_int;
4783}
4784extern "C" {
4785    #[link_name = "\u{1}aws_lc_0_37_0_AES_unwrap_key"]
4786    pub fn AES_unwrap_key(
4787        key: *const AES_KEY,
4788        iv: *const u8,
4789        out: *mut u8,
4790        in_: *const u8,
4791        in_len: usize,
4792    ) -> ::std::os::raw::c_int;
4793}
4794extern "C" {
4795    #[link_name = "\u{1}aws_lc_0_37_0_AES_wrap_key_padded"]
4796    pub fn AES_wrap_key_padded(
4797        key: *const AES_KEY,
4798        out: *mut u8,
4799        out_len: *mut usize,
4800        max_out: usize,
4801        in_: *const u8,
4802        in_len: usize,
4803    ) -> ::std::os::raw::c_int;
4804}
4805extern "C" {
4806    #[link_name = "\u{1}aws_lc_0_37_0_AES_unwrap_key_padded"]
4807    pub fn AES_unwrap_key_padded(
4808        key: *const AES_KEY,
4809        out: *mut u8,
4810        out_len: *mut usize,
4811        max_out: usize,
4812        in_: *const u8,
4813        in_len: usize,
4814    ) -> ::std::os::raw::c_int;
4815}
4816#[repr(C)]
4817#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4818pub struct tm {
4819    pub tm_sec: ::std::os::raw::c_int,
4820    pub tm_min: ::std::os::raw::c_int,
4821    pub tm_hour: ::std::os::raw::c_int,
4822    pub tm_mday: ::std::os::raw::c_int,
4823    pub tm_mon: ::std::os::raw::c_int,
4824    pub tm_year: ::std::os::raw::c_int,
4825    pub tm_wday: ::std::os::raw::c_int,
4826    pub tm_yday: ::std::os::raw::c_int,
4827    pub tm_isdst: ::std::os::raw::c_int,
4828    pub tm_gmtoff: ::std::os::raw::c_long,
4829    pub tm_zone: *const ::std::os::raw::c_char,
4830}
4831#[test]
4832fn bindgen_test_layout_tm() {
4833    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
4834    let ptr = UNINIT.as_ptr();
4835    assert_eq!(::std::mem::size_of::<tm>(), 56usize, "Size of tm");
4836    assert_eq!(::std::mem::align_of::<tm>(), 8usize, "Alignment of tm");
4837    assert_eq!(
4838        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
4839        0usize,
4840        "Offset of field: tm::tm_sec"
4841    );
4842    assert_eq!(
4843        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
4844        4usize,
4845        "Offset of field: tm::tm_min"
4846    );
4847    assert_eq!(
4848        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
4849        8usize,
4850        "Offset of field: tm::tm_hour"
4851    );
4852    assert_eq!(
4853        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
4854        12usize,
4855        "Offset of field: tm::tm_mday"
4856    );
4857    assert_eq!(
4858        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
4859        16usize,
4860        "Offset of field: tm::tm_mon"
4861    );
4862    assert_eq!(
4863        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
4864        20usize,
4865        "Offset of field: tm::tm_year"
4866    );
4867    assert_eq!(
4868        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
4869        24usize,
4870        "Offset of field: tm::tm_wday"
4871    );
4872    assert_eq!(
4873        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
4874        28usize,
4875        "Offset of field: tm::tm_yday"
4876    );
4877    assert_eq!(
4878        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
4879        32usize,
4880        "Offset of field: tm::tm_isdst"
4881    );
4882    assert_eq!(
4883        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
4884        40usize,
4885        "Offset of field: tm::tm_gmtoff"
4886    );
4887    assert_eq!(
4888        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
4889        48usize,
4890        "Offset of field: tm::tm_zone"
4891    );
4892}
4893impl Default for tm {
4894    fn default() -> Self {
4895        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4896        unsafe {
4897            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4898            s.assume_init()
4899        }
4900    }
4901}
4902pub type __gnuc_va_list = __builtin_va_list;
4903pub type FILE = _IO_FILE;
4904#[repr(C)]
4905#[derive(Debug, Copy, Clone)]
4906pub struct _IO_marker {
4907    _unused: [u8; 0],
4908}
4909#[repr(C)]
4910#[derive(Debug, Copy, Clone)]
4911pub struct _IO_codecvt {
4912    _unused: [u8; 0],
4913}
4914#[repr(C)]
4915#[derive(Debug, Copy, Clone)]
4916pub struct _IO_wide_data {
4917    _unused: [u8; 0],
4918}
4919pub type _IO_lock_t = ::std::os::raw::c_void;
4920#[repr(C)]
4921#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4922pub struct _IO_FILE {
4923    pub _flags: ::std::os::raw::c_int,
4924    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
4925    pub _IO_read_end: *mut ::std::os::raw::c_char,
4926    pub _IO_read_base: *mut ::std::os::raw::c_char,
4927    pub _IO_write_base: *mut ::std::os::raw::c_char,
4928    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
4929    pub _IO_write_end: *mut ::std::os::raw::c_char,
4930    pub _IO_buf_base: *mut ::std::os::raw::c_char,
4931    pub _IO_buf_end: *mut ::std::os::raw::c_char,
4932    pub _IO_save_base: *mut ::std::os::raw::c_char,
4933    pub _IO_backup_base: *mut ::std::os::raw::c_char,
4934    pub _IO_save_end: *mut ::std::os::raw::c_char,
4935    pub _markers: *mut _IO_marker,
4936    pub _chain: *mut _IO_FILE,
4937    pub _fileno: ::std::os::raw::c_int,
4938    pub _flags2: ::std::os::raw::c_int,
4939    pub _old_offset: __off_t,
4940    pub _cur_column: ::std::os::raw::c_ushort,
4941    pub _vtable_offset: ::std::os::raw::c_schar,
4942    pub _shortbuf: [::std::os::raw::c_char; 1usize],
4943    pub _lock: *mut _IO_lock_t,
4944    pub _offset: __off64_t,
4945    pub _codecvt: *mut _IO_codecvt,
4946    pub _wide_data: *mut _IO_wide_data,
4947    pub _freeres_list: *mut _IO_FILE,
4948    pub _freeres_buf: *mut ::std::os::raw::c_void,
4949    pub __pad5: usize,
4950    pub _mode: ::std::os::raw::c_int,
4951    pub _unused2: [::std::os::raw::c_char; 20usize],
4952}
4953#[test]
4954fn bindgen_test_layout__IO_FILE() {
4955    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
4956    let ptr = UNINIT.as_ptr();
4957    assert_eq!(
4958        ::std::mem::size_of::<_IO_FILE>(),
4959        216usize,
4960        "Size of _IO_FILE"
4961    );
4962    assert_eq!(
4963        ::std::mem::align_of::<_IO_FILE>(),
4964        8usize,
4965        "Alignment of _IO_FILE"
4966    );
4967    assert_eq!(
4968        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
4969        0usize,
4970        "Offset of field: _IO_FILE::_flags"
4971    );
4972    assert_eq!(
4973        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
4974        8usize,
4975        "Offset of field: _IO_FILE::_IO_read_ptr"
4976    );
4977    assert_eq!(
4978        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
4979        16usize,
4980        "Offset of field: _IO_FILE::_IO_read_end"
4981    );
4982    assert_eq!(
4983        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
4984        24usize,
4985        "Offset of field: _IO_FILE::_IO_read_base"
4986    );
4987    assert_eq!(
4988        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
4989        32usize,
4990        "Offset of field: _IO_FILE::_IO_write_base"
4991    );
4992    assert_eq!(
4993        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
4994        40usize,
4995        "Offset of field: _IO_FILE::_IO_write_ptr"
4996    );
4997    assert_eq!(
4998        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
4999        48usize,
5000        "Offset of field: _IO_FILE::_IO_write_end"
5001    );
5002    assert_eq!(
5003        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
5004        56usize,
5005        "Offset of field: _IO_FILE::_IO_buf_base"
5006    );
5007    assert_eq!(
5008        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
5009        64usize,
5010        "Offset of field: _IO_FILE::_IO_buf_end"
5011    );
5012    assert_eq!(
5013        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
5014        72usize,
5015        "Offset of field: _IO_FILE::_IO_save_base"
5016    );
5017    assert_eq!(
5018        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
5019        80usize,
5020        "Offset of field: _IO_FILE::_IO_backup_base"
5021    );
5022    assert_eq!(
5023        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
5024        88usize,
5025        "Offset of field: _IO_FILE::_IO_save_end"
5026    );
5027    assert_eq!(
5028        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
5029        96usize,
5030        "Offset of field: _IO_FILE::_markers"
5031    );
5032    assert_eq!(
5033        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
5034        104usize,
5035        "Offset of field: _IO_FILE::_chain"
5036    );
5037    assert_eq!(
5038        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
5039        112usize,
5040        "Offset of field: _IO_FILE::_fileno"
5041    );
5042    assert_eq!(
5043        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
5044        116usize,
5045        "Offset of field: _IO_FILE::_flags2"
5046    );
5047    assert_eq!(
5048        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
5049        120usize,
5050        "Offset of field: _IO_FILE::_old_offset"
5051    );
5052    assert_eq!(
5053        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
5054        128usize,
5055        "Offset of field: _IO_FILE::_cur_column"
5056    );
5057    assert_eq!(
5058        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
5059        130usize,
5060        "Offset of field: _IO_FILE::_vtable_offset"
5061    );
5062    assert_eq!(
5063        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
5064        131usize,
5065        "Offset of field: _IO_FILE::_shortbuf"
5066    );
5067    assert_eq!(
5068        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
5069        136usize,
5070        "Offset of field: _IO_FILE::_lock"
5071    );
5072    assert_eq!(
5073        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
5074        144usize,
5075        "Offset of field: _IO_FILE::_offset"
5076    );
5077    assert_eq!(
5078        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
5079        152usize,
5080        "Offset of field: _IO_FILE::_codecvt"
5081    );
5082    assert_eq!(
5083        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
5084        160usize,
5085        "Offset of field: _IO_FILE::_wide_data"
5086    );
5087    assert_eq!(
5088        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
5089        168usize,
5090        "Offset of field: _IO_FILE::_freeres_list"
5091    );
5092    assert_eq!(
5093        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
5094        176usize,
5095        "Offset of field: _IO_FILE::_freeres_buf"
5096    );
5097    assert_eq!(
5098        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
5099        184usize,
5100        "Offset of field: _IO_FILE::__pad5"
5101    );
5102    assert_eq!(
5103        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
5104        192usize,
5105        "Offset of field: _IO_FILE::_mode"
5106    );
5107    assert_eq!(
5108        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
5109        196usize,
5110        "Offset of field: _IO_FILE::_unused2"
5111    );
5112}
5113impl Default for _IO_FILE {
5114    fn default() -> Self {
5115        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5116        unsafe {
5117            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5118            s.assume_init()
5119        }
5120    }
5121}
5122pub type va_list = __gnuc_va_list;
5123#[repr(C)]
5124#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5125pub struct buf_mem_st {
5126    pub length: usize,
5127    pub data: *mut ::std::os::raw::c_char,
5128    pub max: usize,
5129}
5130#[test]
5131fn bindgen_test_layout_buf_mem_st() {
5132    const UNINIT: ::std::mem::MaybeUninit<buf_mem_st> = ::std::mem::MaybeUninit::uninit();
5133    let ptr = UNINIT.as_ptr();
5134    assert_eq!(
5135        ::std::mem::size_of::<buf_mem_st>(),
5136        24usize,
5137        "Size of buf_mem_st"
5138    );
5139    assert_eq!(
5140        ::std::mem::align_of::<buf_mem_st>(),
5141        8usize,
5142        "Alignment of buf_mem_st"
5143    );
5144    assert_eq!(
5145        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
5146        0usize,
5147        "Offset of field: buf_mem_st::length"
5148    );
5149    assert_eq!(
5150        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5151        8usize,
5152        "Offset of field: buf_mem_st::data"
5153    );
5154    assert_eq!(
5155        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
5156        16usize,
5157        "Offset of field: buf_mem_st::max"
5158    );
5159}
5160impl Default for buf_mem_st {
5161    fn default() -> Self {
5162        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5163        unsafe {
5164            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5165            s.assume_init()
5166        }
5167    }
5168}
5169extern "C" {
5170    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_new"]
5171    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5172}
5173extern "C" {
5174    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_free"]
5175    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5176}
5177extern "C" {
5178    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_reserve"]
5179    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::std::os::raw::c_int;
5180}
5181extern "C" {
5182    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_grow"]
5183    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5184}
5185extern "C" {
5186    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_grow_clean"]
5187    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5188}
5189extern "C" {
5190    #[link_name = "\u{1}aws_lc_0_37_0_BUF_MEM_append"]
5191    pub fn BUF_MEM_append(
5192        buf: *mut BUF_MEM,
5193        in_: *const ::std::os::raw::c_void,
5194        len: usize,
5195    ) -> ::std::os::raw::c_int;
5196}
5197extern "C" {
5198    #[link_name = "\u{1}aws_lc_0_37_0_BUF_strdup"]
5199    pub fn BUF_strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5200}
5201extern "C" {
5202    #[link_name = "\u{1}aws_lc_0_37_0_BUF_strnlen"]
5203    pub fn BUF_strnlen(str_: *const ::std::os::raw::c_char, max_len: usize) -> usize;
5204}
5205extern "C" {
5206    #[link_name = "\u{1}aws_lc_0_37_0_BUF_strndup"]
5207    pub fn BUF_strndup(
5208        str_: *const ::std::os::raw::c_char,
5209        size: usize,
5210    ) -> *mut ::std::os::raw::c_char;
5211}
5212extern "C" {
5213    #[link_name = "\u{1}aws_lc_0_37_0_BUF_memdup"]
5214    pub fn BUF_memdup(
5215        data: *const ::std::os::raw::c_void,
5216        size: usize,
5217    ) -> *mut ::std::os::raw::c_void;
5218}
5219extern "C" {
5220    #[link_name = "\u{1}aws_lc_0_37_0_BUF_strlcpy"]
5221    pub fn BUF_strlcpy(
5222        dst: *mut ::std::os::raw::c_char,
5223        src: *const ::std::os::raw::c_char,
5224        dst_size: usize,
5225    ) -> usize;
5226}
5227extern "C" {
5228    #[link_name = "\u{1}aws_lc_0_37_0_BUF_strlcat"]
5229    pub fn BUF_strlcat(
5230        dst: *mut ::std::os::raw::c_char,
5231        src: *const ::std::os::raw::c_char,
5232        dst_size: usize,
5233    ) -> usize;
5234}
5235extern "C" {
5236    #[link_name = "\u{1}aws_lc_0_37_0_SHA1_Init"]
5237    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5238}
5239extern "C" {
5240    #[link_name = "\u{1}aws_lc_0_37_0_SHA1_Update"]
5241    pub fn SHA1_Update(
5242        sha: *mut SHA_CTX,
5243        data: *const ::std::os::raw::c_void,
5244        len: usize,
5245    ) -> ::std::os::raw::c_int;
5246}
5247extern "C" {
5248    #[link_name = "\u{1}aws_lc_0_37_0_SHA1_Final"]
5249    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5250}
5251extern "C" {
5252    #[link_name = "\u{1}aws_lc_0_37_0_SHA1"]
5253    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5254}
5255extern "C" {
5256    #[link_name = "\u{1}aws_lc_0_37_0_SHA1_Transform"]
5257    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
5258}
5259#[repr(C)]
5260#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5261pub struct sha_state_st {
5262    pub h: [u32; 5usize],
5263    pub Nl: u32,
5264    pub Nh: u32,
5265    pub data: [u8; 64usize],
5266    pub num: ::std::os::raw::c_uint,
5267}
5268#[test]
5269fn bindgen_test_layout_sha_state_st() {
5270    const UNINIT: ::std::mem::MaybeUninit<sha_state_st> = ::std::mem::MaybeUninit::uninit();
5271    let ptr = UNINIT.as_ptr();
5272    assert_eq!(
5273        ::std::mem::size_of::<sha_state_st>(),
5274        96usize,
5275        "Size of sha_state_st"
5276    );
5277    assert_eq!(
5278        ::std::mem::align_of::<sha_state_st>(),
5279        4usize,
5280        "Alignment of sha_state_st"
5281    );
5282    assert_eq!(
5283        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5284        0usize,
5285        "Offset of field: sha_state_st::h"
5286    );
5287    assert_eq!(
5288        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5289        20usize,
5290        "Offset of field: sha_state_st::Nl"
5291    );
5292    assert_eq!(
5293        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5294        24usize,
5295        "Offset of field: sha_state_st::Nh"
5296    );
5297    assert_eq!(
5298        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5299        28usize,
5300        "Offset of field: sha_state_st::data"
5301    );
5302    assert_eq!(
5303        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5304        92usize,
5305        "Offset of field: sha_state_st::num"
5306    );
5307}
5308impl Default for sha_state_st {
5309    fn default() -> Self {
5310        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5311        unsafe {
5312            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5313            s.assume_init()
5314        }
5315    }
5316}
5317extern "C" {
5318    #[link_name = "\u{1}aws_lc_0_37_0_SHA224_Init"]
5319    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5320}
5321extern "C" {
5322    #[link_name = "\u{1}aws_lc_0_37_0_SHA224_Update"]
5323    pub fn SHA224_Update(
5324        sha: *mut SHA256_CTX,
5325        data: *const ::std::os::raw::c_void,
5326        len: usize,
5327    ) -> ::std::os::raw::c_int;
5328}
5329extern "C" {
5330    #[link_name = "\u{1}aws_lc_0_37_0_SHA224_Final"]
5331    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5332}
5333extern "C" {
5334    #[link_name = "\u{1}aws_lc_0_37_0_SHA224"]
5335    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5336}
5337extern "C" {
5338    #[link_name = "\u{1}aws_lc_0_37_0_SHA256_Init"]
5339    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5340}
5341extern "C" {
5342    #[link_name = "\u{1}aws_lc_0_37_0_SHA256_Update"]
5343    pub fn SHA256_Update(
5344        sha: *mut SHA256_CTX,
5345        data: *const ::std::os::raw::c_void,
5346        len: usize,
5347    ) -> ::std::os::raw::c_int;
5348}
5349extern "C" {
5350    #[link_name = "\u{1}aws_lc_0_37_0_SHA256_Final"]
5351    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5352}
5353extern "C" {
5354    #[link_name = "\u{1}aws_lc_0_37_0_SHA256"]
5355    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5356}
5357extern "C" {
5358    #[link_name = "\u{1}aws_lc_0_37_0_SHA256_Transform"]
5359    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
5360}
5361extern "C" {
5362    #[link_name = "\u{1}aws_lc_0_37_0_SHA256_TransformBlocks"]
5363    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
5364}
5365#[repr(C)]
5366#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5367pub struct sha256_state_st {
5368    pub h: [u32; 8usize],
5369    pub Nl: u32,
5370    pub Nh: u32,
5371    pub data: [u8; 64usize],
5372    pub num: ::std::os::raw::c_uint,
5373    pub md_len: ::std::os::raw::c_uint,
5374}
5375#[test]
5376fn bindgen_test_layout_sha256_state_st() {
5377    const UNINIT: ::std::mem::MaybeUninit<sha256_state_st> = ::std::mem::MaybeUninit::uninit();
5378    let ptr = UNINIT.as_ptr();
5379    assert_eq!(
5380        ::std::mem::size_of::<sha256_state_st>(),
5381        112usize,
5382        "Size of sha256_state_st"
5383    );
5384    assert_eq!(
5385        ::std::mem::align_of::<sha256_state_st>(),
5386        4usize,
5387        "Alignment of sha256_state_st"
5388    );
5389    assert_eq!(
5390        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5391        0usize,
5392        "Offset of field: sha256_state_st::h"
5393    );
5394    assert_eq!(
5395        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5396        32usize,
5397        "Offset of field: sha256_state_st::Nl"
5398    );
5399    assert_eq!(
5400        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5401        36usize,
5402        "Offset of field: sha256_state_st::Nh"
5403    );
5404    assert_eq!(
5405        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5406        40usize,
5407        "Offset of field: sha256_state_st::data"
5408    );
5409    assert_eq!(
5410        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5411        104usize,
5412        "Offset of field: sha256_state_st::num"
5413    );
5414    assert_eq!(
5415        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5416        108usize,
5417        "Offset of field: sha256_state_st::md_len"
5418    );
5419}
5420impl Default for sha256_state_st {
5421    fn default() -> Self {
5422        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5423        unsafe {
5424            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5425            s.assume_init()
5426        }
5427    }
5428}
5429extern "C" {
5430    #[link_name = "\u{1}aws_lc_0_37_0_SHA384_Init"]
5431    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5432}
5433extern "C" {
5434    #[link_name = "\u{1}aws_lc_0_37_0_SHA384_Update"]
5435    pub fn SHA384_Update(
5436        sha: *mut SHA512_CTX,
5437        data: *const ::std::os::raw::c_void,
5438        len: usize,
5439    ) -> ::std::os::raw::c_int;
5440}
5441extern "C" {
5442    #[link_name = "\u{1}aws_lc_0_37_0_SHA384_Final"]
5443    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5444}
5445extern "C" {
5446    #[link_name = "\u{1}aws_lc_0_37_0_SHA384"]
5447    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5448}
5449extern "C" {
5450    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_Init"]
5451    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5452}
5453extern "C" {
5454    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_Update"]
5455    pub fn SHA512_Update(
5456        sha: *mut SHA512_CTX,
5457        data: *const ::std::os::raw::c_void,
5458        len: usize,
5459    ) -> ::std::os::raw::c_int;
5460}
5461extern "C" {
5462    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_Final"]
5463    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5464}
5465extern "C" {
5466    #[link_name = "\u{1}aws_lc_0_37_0_SHA512"]
5467    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5468}
5469extern "C" {
5470    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_Transform"]
5471    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
5472}
5473#[repr(C)]
5474#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5475pub struct sha512_state_st {
5476    pub h: [u64; 8usize],
5477    pub Nl: u64,
5478    pub Nh: u64,
5479    pub p: [u8; 128usize],
5480    pub num: ::std::os::raw::c_uint,
5481    pub md_len: ::std::os::raw::c_uint,
5482}
5483#[test]
5484fn bindgen_test_layout_sha512_state_st() {
5485    const UNINIT: ::std::mem::MaybeUninit<sha512_state_st> = ::std::mem::MaybeUninit::uninit();
5486    let ptr = UNINIT.as_ptr();
5487    assert_eq!(
5488        ::std::mem::size_of::<sha512_state_st>(),
5489        216usize,
5490        "Size of sha512_state_st"
5491    );
5492    assert_eq!(
5493        ::std::mem::align_of::<sha512_state_st>(),
5494        8usize,
5495        "Alignment of sha512_state_st"
5496    );
5497    assert_eq!(
5498        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5499        0usize,
5500        "Offset of field: sha512_state_st::h"
5501    );
5502    assert_eq!(
5503        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5504        64usize,
5505        "Offset of field: sha512_state_st::Nl"
5506    );
5507    assert_eq!(
5508        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5509        72usize,
5510        "Offset of field: sha512_state_st::Nh"
5511    );
5512    assert_eq!(
5513        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
5514        80usize,
5515        "Offset of field: sha512_state_st::p"
5516    );
5517    assert_eq!(
5518        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5519        208usize,
5520        "Offset of field: sha512_state_st::num"
5521    );
5522    assert_eq!(
5523        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5524        212usize,
5525        "Offset of field: sha512_state_st::md_len"
5526    );
5527}
5528impl Default for sha512_state_st {
5529    fn default() -> Self {
5530        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5531        unsafe {
5532            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5533            s.assume_init()
5534        }
5535    }
5536}
5537extern "C" {
5538    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_224_Init"]
5539    pub fn SHA512_224_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5540}
5541extern "C" {
5542    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_224_Update"]
5543    pub fn SHA512_224_Update(
5544        sha: *mut SHA512_CTX,
5545        data: *const ::std::os::raw::c_void,
5546        len: usize,
5547    ) -> ::std::os::raw::c_int;
5548}
5549extern "C" {
5550    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_224_Final"]
5551    pub fn SHA512_224_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5552}
5553extern "C" {
5554    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_224"]
5555    pub fn SHA512_224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5556}
5557extern "C" {
5558    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_256_Init"]
5559    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5560}
5561extern "C" {
5562    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_256_Update"]
5563    pub fn SHA512_256_Update(
5564        sha: *mut SHA512_CTX,
5565        data: *const ::std::os::raw::c_void,
5566        len: usize,
5567    ) -> ::std::os::raw::c_int;
5568}
5569extern "C" {
5570    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_256_Final"]
5571    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5572}
5573extern "C" {
5574    #[link_name = "\u{1}aws_lc_0_37_0_SHA512_256"]
5575    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5576}
5577extern "C" {
5578    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_malloc"]
5579    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5580}
5581extern "C" {
5582    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_zalloc"]
5583    pub fn OPENSSL_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5584}
5585extern "C" {
5586    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_calloc"]
5587    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
5588}
5589extern "C" {
5590    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_realloc"]
5591    pub fn OPENSSL_realloc(
5592        ptr: *mut ::std::os::raw::c_void,
5593        new_size: usize,
5594    ) -> *mut ::std::os::raw::c_void;
5595}
5596extern "C" {
5597    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_free"]
5598    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
5599}
5600extern "C" {
5601    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_cleanse"]
5602    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
5603}
5604extern "C" {
5605    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_memcmp"]
5606    pub fn CRYPTO_memcmp(
5607        a: *const ::std::os::raw::c_void,
5608        b: *const ::std::os::raw::c_void,
5609        len: usize,
5610    ) -> ::std::os::raw::c_int;
5611}
5612extern "C" {
5613    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_hash32"]
5614    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
5615}
5616extern "C" {
5617    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strhash"]
5618    pub fn OPENSSL_strhash(s: *const ::std::os::raw::c_char) -> u32;
5619}
5620extern "C" {
5621    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strdup"]
5622    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5623}
5624extern "C" {
5625    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strnlen"]
5626    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
5627}
5628extern "C" {
5629    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_isalpha"]
5630    pub fn OPENSSL_isalpha(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5631}
5632extern "C" {
5633    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_isdigit"]
5634    pub fn OPENSSL_isdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5635}
5636extern "C" {
5637    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_isxdigit"]
5638    pub fn OPENSSL_isxdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5639}
5640extern "C" {
5641    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_fromxdigit"]
5642    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5643}
5644extern "C" {
5645    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_hexstr2buf"]
5646    pub fn OPENSSL_hexstr2buf(str_: *const ::std::os::raw::c_char, len: *mut usize) -> *mut u8;
5647}
5648extern "C" {
5649    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_isalnum"]
5650    pub fn OPENSSL_isalnum(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5651}
5652extern "C" {
5653    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_tolower"]
5654    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5655}
5656extern "C" {
5657    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_isspace"]
5658    pub fn OPENSSL_isspace(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5659}
5660extern "C" {
5661    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strcasecmp"]
5662    pub fn OPENSSL_strcasecmp(
5663        a: *const ::std::os::raw::c_char,
5664        b: *const ::std::os::raw::c_char,
5665    ) -> ::std::os::raw::c_int;
5666}
5667extern "C" {
5668    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strncasecmp"]
5669    pub fn OPENSSL_strncasecmp(
5670        a: *const ::std::os::raw::c_char,
5671        b: *const ::std::os::raw::c_char,
5672        n: usize,
5673    ) -> ::std::os::raw::c_int;
5674}
5675extern "C" {
5676    #[link_name = "\u{1}aws_lc_0_37_0_BIO_snprintf"]
5677    pub fn BIO_snprintf(
5678        buf: *mut ::std::os::raw::c_char,
5679        n: usize,
5680        format: *const ::std::os::raw::c_char,
5681        ...
5682    ) -> ::std::os::raw::c_int;
5683}
5684extern "C" {
5685    #[link_name = "\u{1}aws_lc_0_37_0_BIO_vsnprintf"]
5686    pub fn BIO_vsnprintf(
5687        buf: *mut ::std::os::raw::c_char,
5688        n: usize,
5689        format: *const ::std::os::raw::c_char,
5690        args: *mut __va_list_tag,
5691    ) -> ::std::os::raw::c_int;
5692}
5693extern "C" {
5694    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_vasprintf"]
5695    pub fn OPENSSL_vasprintf(
5696        str_: *mut *mut ::std::os::raw::c_char,
5697        format: *const ::std::os::raw::c_char,
5698        args: *mut __va_list_tag,
5699    ) -> ::std::os::raw::c_int;
5700}
5701extern "C" {
5702    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_asprintf"]
5703    pub fn OPENSSL_asprintf(
5704        str_: *mut *mut ::std::os::raw::c_char,
5705        format: *const ::std::os::raw::c_char,
5706        ...
5707    ) -> ::std::os::raw::c_int;
5708}
5709extern "C" {
5710    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strndup"]
5711    pub fn OPENSSL_strndup(
5712        str_: *const ::std::os::raw::c_char,
5713        size: usize,
5714    ) -> *mut ::std::os::raw::c_char;
5715}
5716extern "C" {
5717    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_memdup"]
5718    pub fn OPENSSL_memdup(
5719        data: *const ::std::os::raw::c_void,
5720        size: usize,
5721    ) -> *mut ::std::os::raw::c_void;
5722}
5723extern "C" {
5724    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strlcpy"]
5725    pub fn OPENSSL_strlcpy(
5726        dst: *mut ::std::os::raw::c_char,
5727        src: *const ::std::os::raw::c_char,
5728        dst_size: usize,
5729    ) -> usize;
5730}
5731extern "C" {
5732    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_strlcat"]
5733    pub fn OPENSSL_strlcat(
5734        dst: *mut ::std::os::raw::c_char,
5735        src: *const ::std::os::raw::c_char,
5736        dst_size: usize,
5737    ) -> usize;
5738}
5739extern "C" {
5740    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_malloc"]
5741    pub fn CRYPTO_malloc(
5742        size: usize,
5743        file: *const ::std::os::raw::c_char,
5744        line: ::std::os::raw::c_int,
5745    ) -> *mut ::std::os::raw::c_void;
5746}
5747extern "C" {
5748    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_realloc"]
5749    pub fn CRYPTO_realloc(
5750        ptr: *mut ::std::os::raw::c_void,
5751        new_size: usize,
5752        file: *const ::std::os::raw::c_char,
5753        line: ::std::os::raw::c_int,
5754    ) -> *mut ::std::os::raw::c_void;
5755}
5756extern "C" {
5757    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_free"]
5758    pub fn CRYPTO_free(
5759        ptr: *mut ::std::os::raw::c_void,
5760        file: *const ::std::os::raw::c_char,
5761        line: ::std::os::raw::c_int,
5762    );
5763}
5764extern "C" {
5765    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_clear_free"]
5766    pub fn OPENSSL_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5767}
5768extern "C" {
5769    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_mem_functions"]
5770    pub fn CRYPTO_set_mem_functions(
5771        m: ::std::option::Option<
5772            unsafe extern "C" fn(
5773                arg1: usize,
5774                arg2: *const ::std::os::raw::c_char,
5775                arg3: ::std::os::raw::c_int,
5776            ) -> *mut ::std::os::raw::c_void,
5777        >,
5778        r: ::std::option::Option<
5779            unsafe extern "C" fn(
5780                arg1: *mut ::std::os::raw::c_void,
5781                arg2: usize,
5782                arg3: *const ::std::os::raw::c_char,
5783                arg4: ::std::os::raw::c_int,
5784            ) -> *mut ::std::os::raw::c_void,
5785        >,
5786        f: ::std::option::Option<
5787            unsafe extern "C" fn(
5788                arg1: *mut ::std::os::raw::c_void,
5789                arg2: *const ::std::os::raw::c_char,
5790                arg3: ::std::os::raw::c_int,
5791            ),
5792        >,
5793    ) -> ::std::os::raw::c_int;
5794}
5795extern "C" {
5796    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_secure_malloc_init"]
5797    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::std::os::raw::c_int;
5798}
5799extern "C" {
5800    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_secure_malloc_initialized"]
5801    pub fn CRYPTO_secure_malloc_initialized() -> ::std::os::raw::c_int;
5802}
5803extern "C" {
5804    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_secure_used"]
5805    pub fn CRYPTO_secure_used() -> usize;
5806}
5807extern "C" {
5808    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_secure_malloc"]
5809    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5810}
5811extern "C" {
5812    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_secure_zalloc"]
5813    pub fn OPENSSL_secure_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5814}
5815extern "C" {
5816    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_secure_clear_free"]
5817    pub fn OPENSSL_secure_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5818}
5819#[repr(C)]
5820#[derive(Copy, Clone)]
5821pub union crypto_mutex_st {
5822    pub alignment: f64,
5823    pub padding: [u8; 56usize],
5824}
5825#[test]
5826fn bindgen_test_layout_crypto_mutex_st() {
5827    const UNINIT: ::std::mem::MaybeUninit<crypto_mutex_st> = ::std::mem::MaybeUninit::uninit();
5828    let ptr = UNINIT.as_ptr();
5829    assert_eq!(
5830        ::std::mem::size_of::<crypto_mutex_st>(),
5831        56usize,
5832        "Size of crypto_mutex_st"
5833    );
5834    assert_eq!(
5835        ::std::mem::align_of::<crypto_mutex_st>(),
5836        8usize,
5837        "Alignment of crypto_mutex_st"
5838    );
5839    assert_eq!(
5840        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
5841        0usize,
5842        "Offset of field: crypto_mutex_st::alignment"
5843    );
5844    assert_eq!(
5845        unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
5846        0usize,
5847        "Offset of field: crypto_mutex_st::padding"
5848    );
5849}
5850impl Default for crypto_mutex_st {
5851    fn default() -> Self {
5852        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5853        unsafe {
5854            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5855            s.assume_init()
5856        }
5857    }
5858}
5859pub type CRYPTO_MUTEX = crypto_mutex_st;
5860pub type CRYPTO_refcount_t = u32;
5861extern "C" {
5862    #[link_name = "\u{1}aws_lc_0_37_0_AWSLC_thread_local_clear"]
5863    pub fn AWSLC_thread_local_clear() -> ::std::os::raw::c_int;
5864}
5865extern "C" {
5866    #[link_name = "\u{1}aws_lc_0_37_0_AWSLC_thread_local_shutdown"]
5867    pub fn AWSLC_thread_local_shutdown() -> ::std::os::raw::c_int;
5868}
5869extern "C" {
5870    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_num_locks"]
5871    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
5872}
5873extern "C" {
5874    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_locking_callback"]
5875    pub fn CRYPTO_set_locking_callback(
5876        func: ::std::option::Option<
5877            unsafe extern "C" fn(
5878                mode: ::std::os::raw::c_int,
5879                lock_num: ::std::os::raw::c_int,
5880                file: *const ::std::os::raw::c_char,
5881                line: ::std::os::raw::c_int,
5882            ),
5883        >,
5884    );
5885}
5886extern "C" {
5887    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_add_lock_callback"]
5888    pub fn CRYPTO_set_add_lock_callback(
5889        func: ::std::option::Option<
5890            unsafe extern "C" fn(
5891                num: *mut ::std::os::raw::c_int,
5892                amount: ::std::os::raw::c_int,
5893                lock_num: ::std::os::raw::c_int,
5894                file: *const ::std::os::raw::c_char,
5895                line: ::std::os::raw::c_int,
5896            ) -> ::std::os::raw::c_int,
5897        >,
5898    );
5899}
5900extern "C" {
5901    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_get_locking_callback"]
5902    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<
5903        unsafe extern "C" fn(
5904            arg1: ::std::os::raw::c_int,
5905            arg2: ::std::os::raw::c_int,
5906            arg3: *const ::std::os::raw::c_char,
5907            arg4: ::std::os::raw::c_int,
5908        ),
5909    >;
5910}
5911extern "C" {
5912    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_get_lock_name"]
5913    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
5914}
5915extern "C" {
5916    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_THREADID_set_callback"]
5917    pub fn CRYPTO_THREADID_set_callback(
5918        threadid_func: ::std::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
5919    ) -> ::std::os::raw::c_int;
5920}
5921extern "C" {
5922    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_THREADID_set_numeric"]
5923    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
5924}
5925extern "C" {
5926    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_THREADID_set_pointer"]
5927    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
5928}
5929extern "C" {
5930    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_THREADID_current"]
5931    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
5932}
5933extern "C" {
5934    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_id_callback"]
5935    pub fn CRYPTO_set_id_callback(
5936        func: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_ulong>,
5937    );
5938}
5939#[repr(C)]
5940#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5941pub struct CRYPTO_dynlock {
5942    pub references: ::std::os::raw::c_int,
5943    pub data: *mut CRYPTO_dynlock_value,
5944}
5945#[test]
5946fn bindgen_test_layout_CRYPTO_dynlock() {
5947    const UNINIT: ::std::mem::MaybeUninit<CRYPTO_dynlock> = ::std::mem::MaybeUninit::uninit();
5948    let ptr = UNINIT.as_ptr();
5949    assert_eq!(
5950        ::std::mem::size_of::<CRYPTO_dynlock>(),
5951        16usize,
5952        "Size of CRYPTO_dynlock"
5953    );
5954    assert_eq!(
5955        ::std::mem::align_of::<CRYPTO_dynlock>(),
5956        8usize,
5957        "Alignment of CRYPTO_dynlock"
5958    );
5959    assert_eq!(
5960        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
5961        0usize,
5962        "Offset of field: CRYPTO_dynlock::references"
5963    );
5964    assert_eq!(
5965        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5966        8usize,
5967        "Offset of field: CRYPTO_dynlock::data"
5968    );
5969}
5970impl Default for CRYPTO_dynlock {
5971    fn default() -> Self {
5972        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5973        unsafe {
5974            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5975            s.assume_init()
5976        }
5977    }
5978}
5979extern "C" {
5980    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_dynlock_create_callback"]
5981    pub fn CRYPTO_set_dynlock_create_callback(
5982        dyn_create_function: ::std::option::Option<
5983            unsafe extern "C" fn(
5984                file: *const ::std::os::raw::c_char,
5985                line: ::std::os::raw::c_int,
5986            ) -> *mut CRYPTO_dynlock_value,
5987        >,
5988    );
5989}
5990extern "C" {
5991    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_dynlock_lock_callback"]
5992    pub fn CRYPTO_set_dynlock_lock_callback(
5993        dyn_lock_function: ::std::option::Option<
5994            unsafe extern "C" fn(
5995                mode: ::std::os::raw::c_int,
5996                l: *mut CRYPTO_dynlock_value,
5997                file: *const ::std::os::raw::c_char,
5998                line: ::std::os::raw::c_int,
5999            ),
6000        >,
6001    );
6002}
6003extern "C" {
6004    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_set_dynlock_destroy_callback"]
6005    pub fn CRYPTO_set_dynlock_destroy_callback(
6006        dyn_destroy_function: ::std::option::Option<
6007            unsafe extern "C" fn(
6008                l: *mut CRYPTO_dynlock_value,
6009                file: *const ::std::os::raw::c_char,
6010                line: ::std::os::raw::c_int,
6011            ),
6012        >,
6013    );
6014}
6015extern "C" {
6016    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_get_dynlock_create_callback"]
6017    pub fn CRYPTO_get_dynlock_create_callback() -> ::std::option::Option<
6018        unsafe extern "C" fn(
6019            arg1: *const ::std::os::raw::c_char,
6020            arg2: ::std::os::raw::c_int,
6021        ) -> *mut CRYPTO_dynlock_value,
6022    >;
6023}
6024extern "C" {
6025    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_get_dynlock_lock_callback"]
6026    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<
6027        unsafe extern "C" fn(
6028            arg1: ::std::os::raw::c_int,
6029            arg2: *mut CRYPTO_dynlock_value,
6030            arg3: *const ::std::os::raw::c_char,
6031            arg4: ::std::os::raw::c_int,
6032        ),
6033    >;
6034}
6035extern "C" {
6036    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_get_dynlock_destroy_callback"]
6037    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<
6038        unsafe extern "C" fn(
6039            arg1: *mut CRYPTO_dynlock_value,
6040            arg2: *const ::std::os::raw::c_char,
6041            arg3: ::std::os::raw::c_int,
6042        ),
6043    >;
6044}
6045extern "C" {
6046    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_library_init"]
6047    pub fn CRYPTO_library_init();
6048}
6049extern "C" {
6050    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_is_confidential_build"]
6051    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
6052}
6053extern "C" {
6054    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_has_asm"]
6055    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
6056}
6057extern "C" {
6058    #[link_name = "\u{1}aws_lc_0_37_0_BORINGSSL_self_test"]
6059    pub fn BORINGSSL_self_test() -> ::std::os::raw::c_int;
6060}
6061extern "C" {
6062    pub fn BORINGSSL_integrity_test() -> ::std::os::raw::c_int;
6063}
6064extern "C" {
6065    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_pre_sandbox_init"]
6066    pub fn CRYPTO_pre_sandbox_init();
6067}
6068extern "C" {
6069    #[link_name = "\u{1}aws_lc_0_37_0_FIPS_mode"]
6070    pub fn FIPS_mode() -> ::std::os::raw::c_int;
6071}
6072extern "C" {
6073    #[link_name = "\u{1}aws_lc_0_37_0_FIPS_is_entropy_cpu_jitter"]
6074    pub fn FIPS_is_entropy_cpu_jitter() -> ::std::os::raw::c_int;
6075}
6076pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
6077pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
6078pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
6079pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
6080pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
6081pub type fips_counter_t = ::std::os::raw::c_uint;
6082extern "C" {
6083    #[link_name = "\u{1}aws_lc_0_37_0_FIPS_read_counter"]
6084    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
6085}
6086extern "C" {
6087    #[link_name = "\u{1}aws_lc_0_37_0_OpenSSL_version"]
6088    pub fn OpenSSL_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6089}
6090extern "C" {
6091    #[link_name = "\u{1}aws_lc_0_37_0_SSLeay_version"]
6092    pub fn SSLeay_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6093}
6094extern "C" {
6095    #[link_name = "\u{1}aws_lc_0_37_0_SSLeay"]
6096    pub fn SSLeay() -> ::std::os::raw::c_ulong;
6097}
6098extern "C" {
6099    #[link_name = "\u{1}aws_lc_0_37_0_OpenSSL_version_num"]
6100    pub fn OpenSSL_version_num() -> ::std::os::raw::c_ulong;
6101}
6102extern "C" {
6103    #[link_name = "\u{1}aws_lc_0_37_0_awslc_api_version_num"]
6104    pub fn awslc_api_version_num() -> ::std::os::raw::c_ulong;
6105}
6106extern "C" {
6107    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_malloc_init"]
6108    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
6109}
6110extern "C" {
6111    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_malloc_init"]
6112    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
6113}
6114extern "C" {
6115    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_load_builtin_engines"]
6116    pub fn ENGINE_load_builtin_engines();
6117}
6118extern "C" {
6119    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_register_all_ciphers"]
6120    pub fn ENGINE_register_all_ciphers();
6121}
6122extern "C" {
6123    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_register_all_digests"]
6124    pub fn ENGINE_register_all_digests();
6125}
6126extern "C" {
6127    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_register_all_complete"]
6128    pub fn ENGINE_register_all_complete() -> ::std::os::raw::c_int;
6129}
6130extern "C" {
6131    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_load_builtin_modules"]
6132    pub fn OPENSSL_load_builtin_modules();
6133}
6134extern "C" {
6135    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_init_crypto"]
6136    pub fn OPENSSL_init_crypto(
6137        opts: u64,
6138        settings: *const OPENSSL_INIT_SETTINGS,
6139    ) -> ::std::os::raw::c_int;
6140}
6141extern "C" {
6142    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_init"]
6143    pub fn OPENSSL_init();
6144}
6145extern "C" {
6146    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_cleanup"]
6147    pub fn OPENSSL_cleanup();
6148}
6149extern "C" {
6150    #[link_name = "\u{1}aws_lc_0_37_0_FIPS_mode_set"]
6151    pub fn FIPS_mode_set(on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6152}
6153extern "C" {
6154    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_mem_ctrl"]
6155    pub fn CRYPTO_mem_ctrl(mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6156}
6157extern "C" {
6158    #[link_name = "\u{1}aws_lc_0_37_0_ERR_load_BIO_strings"]
6159    pub fn ERR_load_BIO_strings();
6160}
6161extern "C" {
6162    #[link_name = "\u{1}aws_lc_0_37_0_ERR_load_ERR_strings"]
6163    pub fn ERR_load_ERR_strings();
6164}
6165extern "C" {
6166    #[link_name = "\u{1}aws_lc_0_37_0_ERR_load_CRYPTO_strings"]
6167    pub fn ERR_load_CRYPTO_strings();
6168}
6169extern "C" {
6170    #[link_name = "\u{1}aws_lc_0_37_0_ERR_load_crypto_strings"]
6171    pub fn ERR_load_crypto_strings();
6172}
6173extern "C" {
6174    #[link_name = "\u{1}aws_lc_0_37_0_ERR_load_RAND_strings"]
6175    pub fn ERR_load_RAND_strings();
6176}
6177extern "C" {
6178    #[link_name = "\u{1}aws_lc_0_37_0_ERR_free_strings"]
6179    pub fn ERR_free_strings();
6180}
6181extern "C" {
6182    #[link_name = "\u{1}aws_lc_0_37_0_ERR_get_error"]
6183    pub fn ERR_get_error() -> u32;
6184}
6185extern "C" {
6186    #[link_name = "\u{1}aws_lc_0_37_0_ERR_get_error_line"]
6187    pub fn ERR_get_error_line(
6188        file: *mut *const ::std::os::raw::c_char,
6189        line: *mut ::std::os::raw::c_int,
6190    ) -> u32;
6191}
6192extern "C" {
6193    #[link_name = "\u{1}aws_lc_0_37_0_ERR_get_error_line_data"]
6194    pub fn ERR_get_error_line_data(
6195        file: *mut *const ::std::os::raw::c_char,
6196        line: *mut ::std::os::raw::c_int,
6197        data: *mut *const ::std::os::raw::c_char,
6198        flags: *mut ::std::os::raw::c_int,
6199    ) -> u32;
6200}
6201extern "C" {
6202    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_error"]
6203    pub fn ERR_peek_error() -> u32;
6204}
6205extern "C" {
6206    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_error_line"]
6207    pub fn ERR_peek_error_line(
6208        file: *mut *const ::std::os::raw::c_char,
6209        line: *mut ::std::os::raw::c_int,
6210    ) -> u32;
6211}
6212extern "C" {
6213    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_error_line_data"]
6214    pub fn ERR_peek_error_line_data(
6215        file: *mut *const ::std::os::raw::c_char,
6216        line: *mut ::std::os::raw::c_int,
6217        data: *mut *const ::std::os::raw::c_char,
6218        flags: *mut ::std::os::raw::c_int,
6219    ) -> u32;
6220}
6221extern "C" {
6222    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_last_error"]
6223    pub fn ERR_peek_last_error() -> u32;
6224}
6225extern "C" {
6226    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_last_error_line"]
6227    pub fn ERR_peek_last_error_line(
6228        file: *mut *const ::std::os::raw::c_char,
6229        line: *mut ::std::os::raw::c_int,
6230    ) -> u32;
6231}
6232extern "C" {
6233    #[link_name = "\u{1}aws_lc_0_37_0_ERR_peek_last_error_line_data"]
6234    pub fn ERR_peek_last_error_line_data(
6235        file: *mut *const ::std::os::raw::c_char,
6236        line: *mut ::std::os::raw::c_int,
6237        data: *mut *const ::std::os::raw::c_char,
6238        flags: *mut ::std::os::raw::c_int,
6239    ) -> u32;
6240}
6241extern "C" {
6242    #[link_name = "\u{1}aws_lc_0_37_0_ERR_error_string_n"]
6243    pub fn ERR_error_string_n(
6244        packed_error: u32,
6245        buf: *mut ::std::os::raw::c_char,
6246        len: usize,
6247    ) -> *mut ::std::os::raw::c_char;
6248}
6249extern "C" {
6250    #[link_name = "\u{1}aws_lc_0_37_0_ERR_lib_error_string"]
6251    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6252}
6253extern "C" {
6254    #[link_name = "\u{1}aws_lc_0_37_0_ERR_reason_error_string"]
6255    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6256}
6257pub type ERR_print_errors_callback_t = ::std::option::Option<
6258    unsafe extern "C" fn(
6259        str_: *const ::std::os::raw::c_char,
6260        len: usize,
6261        ctx: *mut ::std::os::raw::c_void,
6262    ) -> ::std::os::raw::c_int,
6263>;
6264extern "C" {
6265    #[link_name = "\u{1}aws_lc_0_37_0_ERR_print_errors_cb"]
6266    pub fn ERR_print_errors_cb(
6267        callback: ERR_print_errors_callback_t,
6268        ctx: *mut ::std::os::raw::c_void,
6269    );
6270}
6271extern "C" {
6272    #[link_name = "\u{1}aws_lc_0_37_0_ERR_print_errors_fp"]
6273    pub fn ERR_print_errors_fp(file: *mut FILE);
6274}
6275extern "C" {
6276    #[link_name = "\u{1}aws_lc_0_37_0_ERR_clear_error"]
6277    pub fn ERR_clear_error();
6278}
6279extern "C" {
6280    #[link_name = "\u{1}aws_lc_0_37_0_ERR_set_mark"]
6281    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
6282}
6283extern "C" {
6284    #[link_name = "\u{1}aws_lc_0_37_0_ERR_pop_to_mark"]
6285    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
6286}
6287extern "C" {
6288    #[link_name = "\u{1}aws_lc_0_37_0_ERR_get_next_error_library"]
6289    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
6290}
6291extern "C" {
6292    #[link_name = "\u{1}aws_lc_0_37_0_ERR_remove_state"]
6293    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
6294}
6295extern "C" {
6296    #[link_name = "\u{1}aws_lc_0_37_0_ERR_remove_thread_state"]
6297    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
6298}
6299extern "C" {
6300    #[link_name = "\u{1}aws_lc_0_37_0_ERR_func_error_string"]
6301    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6302}
6303extern "C" {
6304    #[link_name = "\u{1}aws_lc_0_37_0_ERR_error_string"]
6305    pub fn ERR_error_string(
6306        packed_error: u32,
6307        buf: *mut ::std::os::raw::c_char,
6308    ) -> *mut ::std::os::raw::c_char;
6309}
6310extern "C" {
6311    #[link_name = "\u{1}aws_lc_0_37_0_ERR_clear_system_error"]
6312    pub fn ERR_clear_system_error();
6313}
6314extern "C" {
6315    #[link_name = "\u{1}aws_lc_0_37_0_ERR_put_error"]
6316    pub fn ERR_put_error(
6317        library: ::std::os::raw::c_int,
6318        unused: ::std::os::raw::c_int,
6319        reason: ::std::os::raw::c_int,
6320        file: *const ::std::os::raw::c_char,
6321        line: ::std::os::raw::c_uint,
6322    );
6323}
6324extern "C" {
6325    #[link_name = "\u{1}aws_lc_0_37_0_ERR_add_error_data"]
6326    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
6327}
6328extern "C" {
6329    #[link_name = "\u{1}aws_lc_0_37_0_ERR_add_error_dataf"]
6330    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
6331}
6332extern "C" {
6333    #[link_name = "\u{1}aws_lc_0_37_0_ERR_set_error_data"]
6334    pub fn ERR_set_error_data(data: *mut ::std::os::raw::c_char, flags: ::std::os::raw::c_int);
6335}
6336pub type OPENSSL_sk_free_func =
6337    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
6338pub type OPENSSL_sk_copy_func = ::std::option::Option<
6339    unsafe extern "C" fn(ptr: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6340>;
6341pub type OPENSSL_sk_cmp_func = ::std::option::Option<
6342    unsafe extern "C" fn(
6343        a: *const *const ::std::os::raw::c_void,
6344        b: *const *const ::std::os::raw::c_void,
6345    ) -> ::std::os::raw::c_int,
6346>;
6347pub type OPENSSL_sk_delete_if_func = ::std::option::Option<
6348    unsafe extern "C" fn(
6349        obj: *mut ::std::os::raw::c_void,
6350        data: *mut ::std::os::raw::c_void,
6351    ) -> ::std::os::raw::c_int,
6352>;
6353pub type OPENSSL_sk_call_free_func = ::std::option::Option<
6354    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::std::os::raw::c_void),
6355>;
6356pub type OPENSSL_sk_call_copy_func = ::std::option::Option<
6357    unsafe extern "C" fn(
6358        arg1: OPENSSL_sk_copy_func,
6359        arg2: *const ::std::os::raw::c_void,
6360    ) -> *mut ::std::os::raw::c_void,
6361>;
6362pub type OPENSSL_sk_call_cmp_func = ::std::option::Option<
6363    unsafe extern "C" fn(
6364        arg1: OPENSSL_sk_cmp_func,
6365        arg2: *const ::std::os::raw::c_void,
6366        arg3: *const ::std::os::raw::c_void,
6367    ) -> ::std::os::raw::c_int,
6368>;
6369pub type OPENSSL_sk_call_delete_if_func = ::std::option::Option<
6370    unsafe extern "C" fn(
6371        arg1: OPENSSL_sk_delete_if_func,
6372        arg2: *mut ::std::os::raw::c_void,
6373        arg3: *mut ::std::os::raw::c_void,
6374    ) -> ::std::os::raw::c_int,
6375>;
6376#[repr(C)]
6377#[derive(Debug, Copy, Clone)]
6378pub struct stack_st {
6379    _unused: [u8; 0],
6380}
6381pub type OPENSSL_STACK = stack_st;
6382extern "C" {
6383    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_new"]
6384    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
6385}
6386extern "C" {
6387    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_new_null"]
6388    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
6389}
6390extern "C" {
6391    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_num"]
6392    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
6393}
6394extern "C" {
6395    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_zero"]
6396    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
6397}
6398extern "C" {
6399    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_value"]
6400    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::std::os::raw::c_void;
6401}
6402extern "C" {
6403    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_set"]
6404    pub fn OPENSSL_sk_set(
6405        sk: *mut OPENSSL_STACK,
6406        i: usize,
6407        p: *mut ::std::os::raw::c_void,
6408    ) -> *mut ::std::os::raw::c_void;
6409}
6410extern "C" {
6411    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_free"]
6412    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
6413}
6414extern "C" {
6415    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_pop_free_ex"]
6416    pub fn OPENSSL_sk_pop_free_ex(
6417        sk: *mut OPENSSL_STACK,
6418        call_free_func: OPENSSL_sk_call_free_func,
6419        free_func: OPENSSL_sk_free_func,
6420    );
6421}
6422extern "C" {
6423    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_insert"]
6424    pub fn OPENSSL_sk_insert(
6425        sk: *mut OPENSSL_STACK,
6426        p: *mut ::std::os::raw::c_void,
6427        where_: usize,
6428    ) -> usize;
6429}
6430extern "C" {
6431    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_delete"]
6432    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::std::os::raw::c_void;
6433}
6434extern "C" {
6435    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_delete_ptr"]
6436    pub fn OPENSSL_sk_delete_ptr(
6437        sk: *mut OPENSSL_STACK,
6438        p: *const ::std::os::raw::c_void,
6439    ) -> *mut ::std::os::raw::c_void;
6440}
6441extern "C" {
6442    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_delete_if"]
6443    pub fn OPENSSL_sk_delete_if(
6444        sk: *mut OPENSSL_STACK,
6445        call_func: OPENSSL_sk_call_delete_if_func,
6446        func: OPENSSL_sk_delete_if_func,
6447        data: *mut ::std::os::raw::c_void,
6448    );
6449}
6450extern "C" {
6451    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_find"]
6452    pub fn OPENSSL_sk_find(
6453        sk: *const OPENSSL_STACK,
6454        out_index: *mut usize,
6455        p: *const ::std::os::raw::c_void,
6456        call_cmp_func: OPENSSL_sk_call_cmp_func,
6457    ) -> ::std::os::raw::c_int;
6458}
6459extern "C" {
6460    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_unshift"]
6461    pub fn OPENSSL_sk_unshift(
6462        sk: *mut OPENSSL_STACK,
6463        data: *mut ::std::os::raw::c_void,
6464    ) -> ::std::os::raw::c_int;
6465}
6466extern "C" {
6467    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_shift"]
6468    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6469}
6470extern "C" {
6471    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_push"]
6472    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::std::os::raw::c_void) -> usize;
6473}
6474extern "C" {
6475    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_pop"]
6476    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6477}
6478extern "C" {
6479    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_dup"]
6480    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6481}
6482extern "C" {
6483    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_sort"]
6484    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6485}
6486extern "C" {
6487    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_is_sorted"]
6488    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::std::os::raw::c_int;
6489}
6490extern "C" {
6491    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_set_cmp_func"]
6492    pub fn OPENSSL_sk_set_cmp_func(
6493        sk: *mut OPENSSL_STACK,
6494        comp: OPENSSL_sk_cmp_func,
6495    ) -> OPENSSL_sk_cmp_func;
6496}
6497extern "C" {
6498    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_sk_deep_copy"]
6499    pub fn OPENSSL_sk_deep_copy(
6500        sk: *const OPENSSL_STACK,
6501        call_copy_func: OPENSSL_sk_call_copy_func,
6502        copy_func: OPENSSL_sk_copy_func,
6503        call_free_func: OPENSSL_sk_call_free_func,
6504        free_func: OPENSSL_sk_free_func,
6505    ) -> *mut OPENSSL_STACK;
6506}
6507pub type _STACK = OPENSSL_STACK;
6508extern "C" {
6509    #[link_name = "\u{1}aws_lc_0_37_0_sk_pop_free"]
6510    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6511}
6512pub type OPENSSL_STRING = *mut ::std::os::raw::c_char;
6513#[repr(C)]
6514#[derive(Debug, Copy, Clone)]
6515pub struct stack_st_void {
6516    _unused: [u8; 0],
6517}
6518pub type sk_void_free_func =
6519    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
6520pub type sk_void_copy_func = ::std::option::Option<
6521    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6522>;
6523pub type sk_void_cmp_func = ::std::option::Option<
6524    unsafe extern "C" fn(
6525        arg1: *const *const ::std::os::raw::c_void,
6526        arg2: *const *const ::std::os::raw::c_void,
6527    ) -> ::std::os::raw::c_int,
6528>;
6529pub type sk_void_delete_if_func = ::std::option::Option<
6530    unsafe extern "C" fn(
6531        arg1: *mut ::std::os::raw::c_void,
6532        arg2: *mut ::std::os::raw::c_void,
6533    ) -> ::std::os::raw::c_int,
6534>;
6535#[repr(C)]
6536#[derive(Debug, Copy, Clone)]
6537pub struct stack_st_OPENSSL_STRING {
6538    _unused: [u8; 0],
6539}
6540pub type sk_OPENSSL_STRING_free_func =
6541    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char)>;
6542pub type sk_OPENSSL_STRING_copy_func = ::std::option::Option<
6543    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
6544>;
6545pub type sk_OPENSSL_STRING_cmp_func = ::std::option::Option<
6546    unsafe extern "C" fn(
6547        arg1: *const *const ::std::os::raw::c_char,
6548        arg2: *const *const ::std::os::raw::c_char,
6549    ) -> ::std::os::raw::c_int,
6550>;
6551pub type sk_OPENSSL_STRING_delete_if_func = ::std::option::Option<
6552    unsafe extern "C" fn(
6553        arg1: *mut ::std::os::raw::c_char,
6554        arg2: *mut ::std::os::raw::c_void,
6555    ) -> ::std::os::raw::c_int,
6556>;
6557pub type CRYPTO_EX_DATA = crypto_ex_data_st;
6558pub type CRYPTO_EX_free = ::std::option::Option<
6559    unsafe extern "C" fn(
6560        parent: *mut ::std::os::raw::c_void,
6561        ptr: *mut ::std::os::raw::c_void,
6562        ad: *mut CRYPTO_EX_DATA,
6563        index: ::std::os::raw::c_int,
6564        argl: ::std::os::raw::c_long,
6565        argp: *mut ::std::os::raw::c_void,
6566    ),
6567>;
6568extern "C" {
6569    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_cleanup_all_ex_data"]
6570    pub fn CRYPTO_cleanup_all_ex_data();
6571}
6572pub type CRYPTO_EX_dup = ::std::option::Option<
6573    unsafe extern "C" fn(
6574        to: *mut CRYPTO_EX_DATA,
6575        from: *const CRYPTO_EX_DATA,
6576        from_d: *mut *mut ::std::os::raw::c_void,
6577        index: ::std::os::raw::c_int,
6578        argl: ::std::os::raw::c_long,
6579        argp: *mut ::std::os::raw::c_void,
6580    ) -> ::std::os::raw::c_int,
6581>;
6582pub type CRYPTO_EX_unused = ::std::os::raw::c_int;
6583#[repr(C)]
6584#[derive(Debug, Copy, Clone, PartialEq, Eq)]
6585pub struct crypto_ex_data_st {
6586    pub sk: *mut stack_st_void,
6587}
6588#[test]
6589fn bindgen_test_layout_crypto_ex_data_st() {
6590    const UNINIT: ::std::mem::MaybeUninit<crypto_ex_data_st> = ::std::mem::MaybeUninit::uninit();
6591    let ptr = UNINIT.as_ptr();
6592    assert_eq!(
6593        ::std::mem::size_of::<crypto_ex_data_st>(),
6594        8usize,
6595        "Size of crypto_ex_data_st"
6596    );
6597    assert_eq!(
6598        ::std::mem::align_of::<crypto_ex_data_st>(),
6599        8usize,
6600        "Alignment of crypto_ex_data_st"
6601    );
6602    assert_eq!(
6603        unsafe { ::std::ptr::addr_of!((*ptr).sk) as usize - ptr as usize },
6604        0usize,
6605        "Offset of field: crypto_ex_data_st::sk"
6606    );
6607}
6608impl Default for crypto_ex_data_st {
6609    fn default() -> Self {
6610        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6611        unsafe {
6612            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6613            s.assume_init()
6614        }
6615    }
6616}
6617#[repr(C)]
6618#[derive(Debug, Copy, Clone)]
6619pub struct stack_st_BIO {
6620    _unused: [u8; 0],
6621}
6622pub type sk_BIO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6623pub type sk_BIO_copy_func =
6624    ::std::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6625pub type sk_BIO_cmp_func = ::std::option::Option<
6626    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::std::os::raw::c_int,
6627>;
6628pub type sk_BIO_delete_if_func = ::std::option::Option<
6629    unsafe extern "C" fn(
6630        arg1: *mut BIO,
6631        arg2: *mut ::std::os::raw::c_void,
6632    ) -> ::std::os::raw::c_int,
6633>;
6634extern "C" {
6635    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new"]
6636    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6637}
6638extern "C" {
6639    #[link_name = "\u{1}aws_lc_0_37_0_BIO_free"]
6640    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
6641}
6642extern "C" {
6643    #[link_name = "\u{1}aws_lc_0_37_0_BIO_vfree"]
6644    pub fn BIO_vfree(bio: *mut BIO);
6645}
6646extern "C" {
6647    #[link_name = "\u{1}aws_lc_0_37_0_BIO_up_ref"]
6648    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
6649}
6650extern "C" {
6651    #[link_name = "\u{1}aws_lc_0_37_0_BIO_read"]
6652    pub fn BIO_read(
6653        bio: *mut BIO,
6654        data: *mut ::std::os::raw::c_void,
6655        len: ::std::os::raw::c_int,
6656    ) -> ::std::os::raw::c_int;
6657}
6658extern "C" {
6659    #[link_name = "\u{1}aws_lc_0_37_0_BIO_read_ex"]
6660    pub fn BIO_read_ex(
6661        bio: *mut BIO,
6662        data: *mut ::std::os::raw::c_void,
6663        data_len: usize,
6664        read_bytes: *mut usize,
6665    ) -> ::std::os::raw::c_int;
6666}
6667extern "C" {
6668    #[link_name = "\u{1}aws_lc_0_37_0_BIO_gets"]
6669    pub fn BIO_gets(
6670        bio: *mut BIO,
6671        buf: *mut ::std::os::raw::c_char,
6672        size: ::std::os::raw::c_int,
6673    ) -> ::std::os::raw::c_int;
6674}
6675extern "C" {
6676    #[link_name = "\u{1}aws_lc_0_37_0_BIO_write"]
6677    pub fn BIO_write(
6678        bio: *mut BIO,
6679        data: *const ::std::os::raw::c_void,
6680        len: ::std::os::raw::c_int,
6681    ) -> ::std::os::raw::c_int;
6682}
6683extern "C" {
6684    #[link_name = "\u{1}aws_lc_0_37_0_BIO_write_ex"]
6685    pub fn BIO_write_ex(
6686        bio: *mut BIO,
6687        data: *const ::std::os::raw::c_void,
6688        data_len: usize,
6689        written_bytes: *mut usize,
6690    ) -> ::std::os::raw::c_int;
6691}
6692extern "C" {
6693    #[link_name = "\u{1}aws_lc_0_37_0_BIO_write_all"]
6694    pub fn BIO_write_all(
6695        bio: *mut BIO,
6696        data: *const ::std::os::raw::c_void,
6697        len: usize,
6698    ) -> ::std::os::raw::c_int;
6699}
6700extern "C" {
6701    #[link_name = "\u{1}aws_lc_0_37_0_BIO_puts"]
6702    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6703}
6704extern "C" {
6705    #[link_name = "\u{1}aws_lc_0_37_0_BIO_flush"]
6706    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
6707}
6708extern "C" {
6709    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl"]
6710    pub fn BIO_ctrl(
6711        bio: *mut BIO,
6712        cmd: ::std::os::raw::c_int,
6713        larg: ::std::os::raw::c_long,
6714        parg: *mut ::std::os::raw::c_void,
6715    ) -> ::std::os::raw::c_long;
6716}
6717extern "C" {
6718    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ptr_ctrl"]
6719    pub fn BIO_ptr_ctrl(
6720        bp: *mut BIO,
6721        cmd: ::std::os::raw::c_int,
6722        larg: ::std::os::raw::c_long,
6723    ) -> *mut ::std::os::raw::c_char;
6724}
6725extern "C" {
6726    #[link_name = "\u{1}aws_lc_0_37_0_BIO_int_ctrl"]
6727    pub fn BIO_int_ctrl(
6728        bp: *mut BIO,
6729        cmd: ::std::os::raw::c_int,
6730        larg: ::std::os::raw::c_long,
6731        iarg: ::std::os::raw::c_int,
6732    ) -> ::std::os::raw::c_long;
6733}
6734extern "C" {
6735    #[link_name = "\u{1}aws_lc_0_37_0_BIO_reset"]
6736    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
6737}
6738extern "C" {
6739    #[link_name = "\u{1}aws_lc_0_37_0_BIO_eof"]
6740    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
6741}
6742extern "C" {
6743    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_flags"]
6744    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6745}
6746extern "C" {
6747    #[link_name = "\u{1}aws_lc_0_37_0_BIO_test_flags"]
6748    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6749}
6750extern "C" {
6751    #[link_name = "\u{1}aws_lc_0_37_0_BIO_should_read"]
6752    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
6753}
6754extern "C" {
6755    #[link_name = "\u{1}aws_lc_0_37_0_BIO_should_write"]
6756    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
6757}
6758extern "C" {
6759    #[link_name = "\u{1}aws_lc_0_37_0_BIO_should_retry"]
6760    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
6761}
6762extern "C" {
6763    #[link_name = "\u{1}aws_lc_0_37_0_BIO_should_io_special"]
6764    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
6765}
6766extern "C" {
6767    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_retry_reason"]
6768    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
6769}
6770extern "C" {
6771    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_retry_reason"]
6772    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::std::os::raw::c_int);
6773}
6774extern "C" {
6775    #[link_name = "\u{1}aws_lc_0_37_0_BIO_clear_flags"]
6776    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6777}
6778extern "C" {
6779    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_retry_read"]
6780    pub fn BIO_set_retry_read(bio: *mut BIO);
6781}
6782extern "C" {
6783    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_retry_write"]
6784    pub fn BIO_set_retry_write(bio: *mut BIO);
6785}
6786extern "C" {
6787    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_retry_flags"]
6788    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
6789}
6790extern "C" {
6791    #[link_name = "\u{1}aws_lc_0_37_0_BIO_clear_retry_flags"]
6792    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6793}
6794extern "C" {
6795    #[link_name = "\u{1}aws_lc_0_37_0_BIO_method_type"]
6796    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
6797}
6798extern "C" {
6799    #[link_name = "\u{1}aws_lc_0_37_0_BIO_method_name"]
6800    pub fn BIO_method_name(b: *const BIO) -> *const ::std::os::raw::c_char;
6801}
6802pub type bio_info_cb = ::std::option::Option<
6803    unsafe extern "C" fn(
6804        b: *mut BIO,
6805        state: ::std::os::raw::c_int,
6806        res: ::std::os::raw::c_int,
6807    ) -> ::std::os::raw::c_long,
6808>;
6809pub type BIO_callback_fn_ex = ::std::option::Option<
6810    unsafe extern "C" fn(
6811        bio: *mut BIO,
6812        oper: ::std::os::raw::c_int,
6813        argp: *const ::std::os::raw::c_char,
6814        len: usize,
6815        argi: ::std::os::raw::c_int,
6816        argl: ::std::os::raw::c_long,
6817        bio_ret: ::std::os::raw::c_int,
6818        processed: *mut usize,
6819    ) -> ::std::os::raw::c_long,
6820>;
6821pub type BIO_callback_fn = ::std::option::Option<
6822    unsafe extern "C" fn(
6823        bio: *mut BIO,
6824        oper: ::std::os::raw::c_int,
6825        argp: *const ::std::os::raw::c_char,
6826        argi: ::std::os::raw::c_int,
6827        argl: ::std::os::raw::c_long,
6828        bio_ret: ::std::os::raw::c_long,
6829    ) -> ::std::os::raw::c_long,
6830>;
6831extern "C" {
6832    #[link_name = "\u{1}aws_lc_0_37_0_BIO_callback_ctrl"]
6833    pub fn BIO_callback_ctrl(
6834        bio: *mut BIO,
6835        cmd: ::std::os::raw::c_int,
6836        fp: bio_info_cb,
6837    ) -> ::std::os::raw::c_long;
6838}
6839extern "C" {
6840    #[link_name = "\u{1}aws_lc_0_37_0_BIO_pending"]
6841    pub fn BIO_pending(bio: *const BIO) -> usize;
6842}
6843extern "C" {
6844    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl_pending"]
6845    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6846}
6847extern "C" {
6848    #[link_name = "\u{1}aws_lc_0_37_0_BIO_wpending"]
6849    pub fn BIO_wpending(bio: *const BIO) -> usize;
6850}
6851extern "C" {
6852    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_close"]
6853    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
6854        -> ::std::os::raw::c_int;
6855}
6856extern "C" {
6857    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_close"]
6858    pub fn BIO_get_close(bio: *mut BIO) -> ::std::os::raw::c_int;
6859}
6860extern "C" {
6861    #[link_name = "\u{1}aws_lc_0_37_0_BIO_number_read"]
6862    pub fn BIO_number_read(bio: *const BIO) -> u64;
6863}
6864extern "C" {
6865    #[link_name = "\u{1}aws_lc_0_37_0_BIO_number_written"]
6866    pub fn BIO_number_written(bio: *const BIO) -> u64;
6867}
6868extern "C" {
6869    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_callback_ex"]
6870    pub fn BIO_set_callback_ex(bio: *mut BIO, callback_ex: BIO_callback_fn_ex);
6871}
6872extern "C" {
6873    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_callback"]
6874    pub fn BIO_set_callback(bio: *mut BIO, callback: BIO_callback_fn);
6875}
6876extern "C" {
6877    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_callback_arg"]
6878    pub fn BIO_set_callback_arg(bio: *mut BIO, arg: *mut ::std::os::raw::c_char);
6879}
6880extern "C" {
6881    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_callback_arg"]
6882    pub fn BIO_get_callback_arg(bio: *const BIO) -> *mut ::std::os::raw::c_char;
6883}
6884extern "C" {
6885    #[link_name = "\u{1}aws_lc_0_37_0_BIO_push"]
6886    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6887}
6888extern "C" {
6889    #[link_name = "\u{1}aws_lc_0_37_0_BIO_pop"]
6890    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6891}
6892extern "C" {
6893    #[link_name = "\u{1}aws_lc_0_37_0_BIO_next"]
6894    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6895}
6896extern "C" {
6897    #[link_name = "\u{1}aws_lc_0_37_0_BIO_free_all"]
6898    pub fn BIO_free_all(bio: *mut BIO);
6899}
6900extern "C" {
6901    #[link_name = "\u{1}aws_lc_0_37_0_BIO_find_type"]
6902    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
6903}
6904extern "C" {
6905    #[link_name = "\u{1}aws_lc_0_37_0_BIO_copy_next_retry"]
6906    pub fn BIO_copy_next_retry(bio: *mut BIO);
6907}
6908extern "C" {
6909    #[link_name = "\u{1}aws_lc_0_37_0_BIO_printf"]
6910    pub fn BIO_printf(
6911        bio: *mut BIO,
6912        format: *const ::std::os::raw::c_char,
6913        ...
6914    ) -> ::std::os::raw::c_int;
6915}
6916extern "C" {
6917    #[link_name = "\u{1}aws_lc_0_37_0_BIO_indent"]
6918    pub fn BIO_indent(
6919        bio: *mut BIO,
6920        indent: ::std::os::raw::c_uint,
6921        max_indent: ::std::os::raw::c_uint,
6922    ) -> ::std::os::raw::c_int;
6923}
6924extern "C" {
6925    #[link_name = "\u{1}aws_lc_0_37_0_BIO_hexdump"]
6926    pub fn BIO_hexdump(
6927        bio: *mut BIO,
6928        data: *const u8,
6929        len: usize,
6930        indent: ::std::os::raw::c_uint,
6931    ) -> ::std::os::raw::c_int;
6932}
6933extern "C" {
6934    #[link_name = "\u{1}aws_lc_0_37_0_BIO_dump"]
6935    pub fn BIO_dump(
6936        bio: *mut BIO,
6937        data: *const ::std::os::raw::c_void,
6938        len: ::std::os::raw::c_int,
6939    ) -> ::std::os::raw::c_int;
6940}
6941extern "C" {
6942    #[link_name = "\u{1}aws_lc_0_37_0_ERR_print_errors"]
6943    pub fn ERR_print_errors(bio: *mut BIO);
6944}
6945extern "C" {
6946    #[link_name = "\u{1}aws_lc_0_37_0_BIO_read_asn1"]
6947    pub fn BIO_read_asn1(
6948        bio: *mut BIO,
6949        out: *mut *mut u8,
6950        out_len: *mut usize,
6951        max_len: usize,
6952    ) -> ::std::os::raw::c_int;
6953}
6954extern "C" {
6955    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_mem"]
6956    pub fn BIO_s_mem() -> *const BIO_METHOD;
6957}
6958extern "C" {
6959    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_mem_buf"]
6960    pub fn BIO_new_mem_buf(buf: *const ::std::os::raw::c_void, len: ossl_ssize_t) -> *mut BIO;
6961}
6962extern "C" {
6963    #[link_name = "\u{1}aws_lc_0_37_0_BIO_mem_contents"]
6964    pub fn BIO_mem_contents(
6965        bio: *const BIO,
6966        out_contents: *mut *const u8,
6967        out_len: *mut usize,
6968    ) -> ::std::os::raw::c_int;
6969}
6970extern "C" {
6971    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_mem_ptr"]
6972    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
6973}
6974extern "C" {
6975    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_mem_buf"]
6976    pub fn BIO_set_mem_buf(
6977        bio: *mut BIO,
6978        b: *mut BUF_MEM,
6979        take_ownership: ::std::os::raw::c_int,
6980    ) -> ::std::os::raw::c_int;
6981}
6982extern "C" {
6983    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_mem_eof_return"]
6984    pub fn BIO_set_mem_eof_return(
6985        bio: *mut BIO,
6986        eof_value: ::std::os::raw::c_int,
6987    ) -> ::std::os::raw::c_int;
6988}
6989extern "C" {
6990    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_fd"]
6991    pub fn BIO_s_fd() -> *const BIO_METHOD;
6992}
6993extern "C" {
6994    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_fd"]
6995    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
6996}
6997extern "C" {
6998    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_fd"]
6999    pub fn BIO_set_fd(
7000        bio: *mut BIO,
7001        fd: ::std::os::raw::c_int,
7002        close_flag: ::std::os::raw::c_int,
7003    ) -> ::std::os::raw::c_int;
7004}
7005extern "C" {
7006    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_fd"]
7007    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7008}
7009extern "C" {
7010    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_file"]
7011    pub fn BIO_s_file() -> *const BIO_METHOD;
7012}
7013extern "C" {
7014    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_file"]
7015    pub fn BIO_new_file(
7016        filename: *const ::std::os::raw::c_char,
7017        mode: *const ::std::os::raw::c_char,
7018    ) -> *mut BIO;
7019}
7020extern "C" {
7021    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_fp"]
7022    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7023}
7024extern "C" {
7025    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_fp"]
7026    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
7027}
7028extern "C" {
7029    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_fp"]
7030    pub fn BIO_set_fp(
7031        bio: *mut BIO,
7032        file: *mut FILE,
7033        close_flag: ::std::os::raw::c_int,
7034    ) -> ::std::os::raw::c_int;
7035}
7036extern "C" {
7037    #[link_name = "\u{1}aws_lc_0_37_0_BIO_read_filename"]
7038    pub fn BIO_read_filename(
7039        bio: *mut BIO,
7040        filename: *const ::std::os::raw::c_char,
7041    ) -> ::std::os::raw::c_int;
7042}
7043extern "C" {
7044    #[link_name = "\u{1}aws_lc_0_37_0_BIO_write_filename"]
7045    pub fn BIO_write_filename(
7046        bio: *mut BIO,
7047        filename: *const ::std::os::raw::c_char,
7048    ) -> ::std::os::raw::c_int;
7049}
7050extern "C" {
7051    #[link_name = "\u{1}aws_lc_0_37_0_BIO_append_filename"]
7052    pub fn BIO_append_filename(
7053        bio: *mut BIO,
7054        filename: *const ::std::os::raw::c_char,
7055    ) -> ::std::os::raw::c_int;
7056}
7057extern "C" {
7058    #[link_name = "\u{1}aws_lc_0_37_0_BIO_rw_filename"]
7059    pub fn BIO_rw_filename(
7060        bio: *mut BIO,
7061        filename: *const ::std::os::raw::c_char,
7062    ) -> ::std::os::raw::c_int;
7063}
7064extern "C" {
7065    #[link_name = "\u{1}aws_lc_0_37_0_BIO_tell"]
7066    pub fn BIO_tell(bio: *mut BIO) -> ::std::os::raw::c_long;
7067}
7068extern "C" {
7069    #[link_name = "\u{1}aws_lc_0_37_0_BIO_seek"]
7070    pub fn BIO_seek(bio: *mut BIO, offset: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
7071}
7072extern "C" {
7073    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_socket"]
7074    pub fn BIO_s_socket() -> *const BIO_METHOD;
7075}
7076extern "C" {
7077    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_socket"]
7078    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
7079        -> *mut BIO;
7080}
7081extern "C" {
7082    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_connect"]
7083    pub fn BIO_s_connect() -> *const BIO_METHOD;
7084}
7085extern "C" {
7086    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_connect"]
7087    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
7088}
7089extern "C" {
7090    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_conn_hostname"]
7091    pub fn BIO_set_conn_hostname(
7092        bio: *mut BIO,
7093        host_and_optional_port: *const ::std::os::raw::c_char,
7094    ) -> ::std::os::raw::c_int;
7095}
7096extern "C" {
7097    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_conn_port"]
7098    pub fn BIO_set_conn_port(
7099        bio: *mut BIO,
7100        port_str: *const ::std::os::raw::c_char,
7101    ) -> ::std::os::raw::c_int;
7102}
7103extern "C" {
7104    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_conn_int_port"]
7105    pub fn BIO_set_conn_int_port(
7106        bio: *mut BIO,
7107        port: *const ::std::os::raw::c_int,
7108    ) -> ::std::os::raw::c_int;
7109}
7110extern "C" {
7111    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_nbio"]
7112    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7113}
7114extern "C" {
7115    #[link_name = "\u{1}aws_lc_0_37_0_BIO_do_connect"]
7116    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
7117}
7118extern "C" {
7119    #[link_name = "\u{1}aws_lc_0_37_0_BIO_f_md"]
7120    pub fn BIO_f_md() -> *const BIO_METHOD;
7121}
7122extern "C" {
7123    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_md_ctx"]
7124    pub fn BIO_get_md_ctx(b: *mut BIO, ctx: *mut *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
7125}
7126extern "C" {
7127    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_md"]
7128    pub fn BIO_set_md(b: *mut BIO, md: *const EVP_MD) -> ::std::os::raw::c_int;
7129}
7130extern "C" {
7131    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_md"]
7132    pub fn BIO_get_md(b: *mut BIO, md: *mut *mut EVP_MD) -> ::std::os::raw::c_int;
7133}
7134#[repr(C)]
7135#[derive(Copy, Clone)]
7136pub struct bio_addr_st {
7137    _unused: [u8; 0],
7138}
7139pub type BIO_ADDR = bio_addr_st;
7140extern "C" {
7141    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_datagram"]
7142    pub fn BIO_s_datagram() -> *const BIO_METHOD;
7143}
7144extern "C" {
7145    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_dgram"]
7146    pub fn BIO_new_dgram(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7147}
7148extern "C" {
7149    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl_dgram_connect"]
7150    pub fn BIO_ctrl_dgram_connect(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7151}
7152extern "C" {
7153    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl_set_connected"]
7154    pub fn BIO_ctrl_set_connected(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7155}
7156extern "C" {
7157    #[link_name = "\u{1}aws_lc_0_37_0_BIO_dgram_recv_timedout"]
7158    pub fn BIO_dgram_recv_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7159}
7160extern "C" {
7161    #[link_name = "\u{1}aws_lc_0_37_0_BIO_dgram_send_timedout"]
7162    pub fn BIO_dgram_send_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7163}
7164extern "C" {
7165    #[link_name = "\u{1}aws_lc_0_37_0_BIO_dgram_get_peer"]
7166    pub fn BIO_dgram_get_peer(bp: *mut BIO, peer: *mut BIO_ADDR) -> ::std::os::raw::c_int;
7167}
7168extern "C" {
7169    #[link_name = "\u{1}aws_lc_0_37_0_BIO_dgram_set_peer"]
7170    pub fn BIO_dgram_set_peer(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7171}
7172extern "C" {
7173    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_new"]
7174    pub fn BIO_ADDR_new() -> *mut BIO_ADDR;
7175}
7176extern "C" {
7177    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_copy"]
7178    pub fn BIO_ADDR_copy(dst: *mut BIO_ADDR, src: *const BIO_ADDR) -> ::std::os::raw::c_int;
7179}
7180extern "C" {
7181    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_dup"]
7182    pub fn BIO_ADDR_dup(ap: *const BIO_ADDR) -> *mut BIO_ADDR;
7183}
7184extern "C" {
7185    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_free"]
7186    pub fn BIO_ADDR_free(ap: *mut BIO_ADDR);
7187}
7188extern "C" {
7189    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_clear"]
7190    pub fn BIO_ADDR_clear(ap: *mut BIO_ADDR);
7191}
7192extern "C" {
7193    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_rawmake"]
7194    pub fn BIO_ADDR_rawmake(
7195        ap: *mut BIO_ADDR,
7196        family: ::std::os::raw::c_int,
7197        where_: *const ::std::os::raw::c_void,
7198        wherelen: usize,
7199        port: ::std::os::raw::c_ushort,
7200    ) -> ::std::os::raw::c_int;
7201}
7202extern "C" {
7203    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_family"]
7204    pub fn BIO_ADDR_family(ap: *const BIO_ADDR) -> ::std::os::raw::c_int;
7205}
7206extern "C" {
7207    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_rawaddress"]
7208    pub fn BIO_ADDR_rawaddress(
7209        ap: *const BIO_ADDR,
7210        p: *mut ::std::os::raw::c_void,
7211        l: *mut usize,
7212    ) -> ::std::os::raw::c_int;
7213}
7214extern "C" {
7215    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ADDR_rawport"]
7216    pub fn BIO_ADDR_rawport(ap: *const BIO_ADDR) -> ::std::os::raw::c_ushort;
7217}
7218extern "C" {
7219    #[link_name = "\u{1}aws_lc_0_37_0_BIO_new_bio_pair"]
7220    pub fn BIO_new_bio_pair(
7221        out1: *mut *mut BIO,
7222        writebuf1: usize,
7223        out2: *mut *mut BIO,
7224        writebuf2: usize,
7225    ) -> ::std::os::raw::c_int;
7226}
7227extern "C" {
7228    #[link_name = "\u{1}aws_lc_0_37_0_BIO_destroy_bio_pair"]
7229    pub fn BIO_destroy_bio_pair(b: *mut BIO) -> ::std::os::raw::c_int;
7230}
7231extern "C" {
7232    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl_get_read_request"]
7233    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
7234}
7235extern "C" {
7236    #[link_name = "\u{1}aws_lc_0_37_0_BIO_ctrl_get_write_guarantee"]
7237    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
7238}
7239extern "C" {
7240    #[link_name = "\u{1}aws_lc_0_37_0_BIO_shutdown_wr"]
7241    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
7242}
7243extern "C" {
7244    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_new_index"]
7245    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
7246}
7247extern "C" {
7248    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_new"]
7249    pub fn BIO_meth_new(
7250        type_: ::std::os::raw::c_int,
7251        name: *const ::std::os::raw::c_char,
7252    ) -> *mut BIO_METHOD;
7253}
7254extern "C" {
7255    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_free"]
7256    pub fn BIO_meth_free(method: *mut BIO_METHOD);
7257}
7258extern "C" {
7259    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_create"]
7260    pub fn BIO_meth_set_create(
7261        method: *mut BIO_METHOD,
7262        create: ::std::option::Option<
7263            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7264        >,
7265    ) -> ::std::os::raw::c_int;
7266}
7267extern "C" {
7268    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_create"]
7269    pub fn BIO_meth_get_create(
7270        method: *const BIO_METHOD,
7271    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7272}
7273extern "C" {
7274    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_destroy"]
7275    pub fn BIO_meth_set_destroy(
7276        method: *mut BIO_METHOD,
7277        destroy: ::std::option::Option<
7278            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7279        >,
7280    ) -> ::std::os::raw::c_int;
7281}
7282extern "C" {
7283    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_destroy"]
7284    pub fn BIO_meth_get_destroy(
7285        method: *const BIO_METHOD,
7286    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7287}
7288extern "C" {
7289    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_write"]
7290    pub fn BIO_meth_set_write(
7291        method: *mut BIO_METHOD,
7292        write: ::std::option::Option<
7293            unsafe extern "C" fn(
7294                arg1: *mut BIO,
7295                arg2: *const ::std::os::raw::c_char,
7296                arg3: ::std::os::raw::c_int,
7297            ) -> ::std::os::raw::c_int,
7298        >,
7299    ) -> ::std::os::raw::c_int;
7300}
7301extern "C" {
7302    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_read"]
7303    pub fn BIO_meth_set_read(
7304        method: *mut BIO_METHOD,
7305        read: ::std::option::Option<
7306            unsafe extern "C" fn(
7307                arg1: *mut BIO,
7308                arg2: *mut ::std::os::raw::c_char,
7309                arg3: ::std::os::raw::c_int,
7310            ) -> ::std::os::raw::c_int,
7311        >,
7312    ) -> ::std::os::raw::c_int;
7313}
7314extern "C" {
7315    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_gets"]
7316    pub fn BIO_meth_set_gets(
7317        method: *mut BIO_METHOD,
7318        gets: ::std::option::Option<
7319            unsafe extern "C" fn(
7320                arg1: *mut BIO,
7321                arg2: *mut ::std::os::raw::c_char,
7322                arg3: ::std::os::raw::c_int,
7323            ) -> ::std::os::raw::c_int,
7324        >,
7325    ) -> ::std::os::raw::c_int;
7326}
7327extern "C" {
7328    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_gets"]
7329    pub fn BIO_meth_get_gets(
7330        method: *const BIO_METHOD,
7331    ) -> ::std::option::Option<
7332        unsafe extern "C" fn(
7333            method: *mut BIO,
7334            arg1: *mut ::std::os::raw::c_char,
7335            arg2: ::std::os::raw::c_int,
7336        ) -> ::std::os::raw::c_int,
7337    >;
7338}
7339extern "C" {
7340    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_ctrl"]
7341    pub fn BIO_meth_set_ctrl(
7342        method: *mut BIO_METHOD,
7343        ctrl: ::std::option::Option<
7344            unsafe extern "C" fn(
7345                arg1: *mut BIO,
7346                arg2: ::std::os::raw::c_int,
7347                arg3: ::std::os::raw::c_long,
7348                arg4: *mut ::std::os::raw::c_void,
7349            ) -> ::std::os::raw::c_long,
7350        >,
7351    ) -> ::std::os::raw::c_int;
7352}
7353extern "C" {
7354    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_ctrl"]
7355    pub fn BIO_meth_get_ctrl(
7356        method: *const BIO_METHOD,
7357    ) -> ::std::option::Option<
7358        unsafe extern "C" fn(
7359            method: *mut BIO,
7360            arg1: ::std::os::raw::c_int,
7361            arg2: ::std::os::raw::c_long,
7362            arg3: *mut ::std::os::raw::c_void,
7363        ) -> ::std::os::raw::c_long,
7364    >;
7365}
7366extern "C" {
7367    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_callback_ctrl"]
7368    pub fn BIO_meth_set_callback_ctrl(
7369        method: *mut BIO_METHOD,
7370        callback_ctrl: ::std::option::Option<
7371            unsafe extern "C" fn(
7372                arg1: *mut BIO,
7373                arg2: ::std::os::raw::c_int,
7374                arg3: bio_info_cb,
7375            ) -> ::std::os::raw::c_long,
7376        >,
7377    ) -> ::std::os::raw::c_int;
7378}
7379extern "C" {
7380    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_callback_ctrl"]
7381    pub fn BIO_meth_get_callback_ctrl(
7382        method: *const BIO_METHOD,
7383    ) -> ::std::option::Option<
7384        unsafe extern "C" fn(
7385            method: *mut BIO,
7386            arg1: ::std::os::raw::c_int,
7387            arg2: bio_info_cb,
7388        ) -> ::std::os::raw::c_long,
7389    >;
7390}
7391extern "C" {
7392    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_data"]
7393    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
7394}
7395extern "C" {
7396    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_data"]
7397    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
7398}
7399extern "C" {
7400    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_init"]
7401    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
7402}
7403extern "C" {
7404    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_init"]
7405    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
7406}
7407extern "C" {
7408    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_ex_new_index"]
7409    pub fn BIO_get_ex_new_index(
7410        argl: ::std::os::raw::c_long,
7411        argp: *mut ::std::os::raw::c_void,
7412        unused: *mut CRYPTO_EX_unused,
7413        dup_unused: CRYPTO_EX_dup,
7414        free_func: CRYPTO_EX_free,
7415    ) -> ::std::os::raw::c_int;
7416}
7417extern "C" {
7418    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_ex_data"]
7419    pub fn BIO_set_ex_data(
7420        bio: *mut BIO,
7421        idx: ::std::os::raw::c_int,
7422        arg: *mut ::std::os::raw::c_void,
7423    ) -> ::std::os::raw::c_int;
7424}
7425extern "C" {
7426    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_ex_data"]
7427    pub fn BIO_get_ex_data(
7428        bio: *const BIO,
7429        idx: ::std::os::raw::c_int,
7430    ) -> *mut ::std::os::raw::c_void;
7431}
7432extern "C" {
7433    #[link_name = "\u{1}aws_lc_0_37_0_BIO_f_base64"]
7434    pub fn BIO_f_base64() -> *const BIO_METHOD;
7435}
7436extern "C" {
7437    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_retry_special"]
7438    pub fn BIO_set_retry_special(bio: *mut BIO);
7439}
7440extern "C" {
7441    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_shutdown"]
7442    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
7443}
7444extern "C" {
7445    #[link_name = "\u{1}aws_lc_0_37_0_BIO_get_shutdown"]
7446    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
7447}
7448extern "C" {
7449    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_set_puts"]
7450    pub fn BIO_meth_set_puts(
7451        method: *mut BIO_METHOD,
7452        puts: ::std::option::Option<
7453            unsafe extern "C" fn(
7454                arg1: *mut BIO,
7455                arg2: *const ::std::os::raw::c_char,
7456            ) -> ::std::os::raw::c_int,
7457        >,
7458    ) -> ::std::os::raw::c_int;
7459}
7460extern "C" {
7461    #[link_name = "\u{1}aws_lc_0_37_0_BIO_meth_get_puts"]
7462    pub fn BIO_meth_get_puts(
7463        method: *const BIO_METHOD,
7464    ) -> ::std::option::Option<
7465        unsafe extern "C" fn(
7466            method: *mut BIO,
7467            arg1: *const ::std::os::raw::c_char,
7468        ) -> ::std::os::raw::c_int,
7469    >;
7470}
7471extern "C" {
7472    #[link_name = "\u{1}aws_lc_0_37_0_BIO_s_secmem"]
7473    pub fn BIO_s_secmem() -> *const BIO_METHOD;
7474}
7475extern "C" {
7476    #[link_name = "\u{1}aws_lc_0_37_0_BIO_set_write_buffer_size"]
7477    pub fn BIO_set_write_buffer_size(
7478        bio: *mut BIO,
7479        buffer_size: ::std::os::raw::c_int,
7480    ) -> ::std::os::raw::c_int;
7481}
7482#[repr(C)]
7483#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7484pub struct bio_method_st {
7485    pub type_: ::std::os::raw::c_int,
7486    pub name: *const ::std::os::raw::c_char,
7487    pub bwrite: ::std::option::Option<
7488        unsafe extern "C" fn(
7489            arg1: *mut BIO,
7490            arg2: *const ::std::os::raw::c_char,
7491            arg3: ::std::os::raw::c_int,
7492        ) -> ::std::os::raw::c_int,
7493    >,
7494    pub bread: ::std::option::Option<
7495        unsafe extern "C" fn(
7496            arg1: *mut BIO,
7497            arg2: *mut ::std::os::raw::c_char,
7498            arg3: ::std::os::raw::c_int,
7499        ) -> ::std::os::raw::c_int,
7500    >,
7501    pub bputs: ::std::option::Option<
7502        unsafe extern "C" fn(
7503            arg1: *mut BIO,
7504            arg2: *const ::std::os::raw::c_char,
7505        ) -> ::std::os::raw::c_int,
7506    >,
7507    pub bgets: ::std::option::Option<
7508        unsafe extern "C" fn(
7509            arg1: *mut BIO,
7510            arg2: *mut ::std::os::raw::c_char,
7511            arg3: ::std::os::raw::c_int,
7512        ) -> ::std::os::raw::c_int,
7513    >,
7514    pub ctrl: ::std::option::Option<
7515        unsafe extern "C" fn(
7516            arg1: *mut BIO,
7517            arg2: ::std::os::raw::c_int,
7518            arg3: ::std::os::raw::c_long,
7519            arg4: *mut ::std::os::raw::c_void,
7520        ) -> ::std::os::raw::c_long,
7521    >,
7522    pub create:
7523        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7524    pub destroy:
7525        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7526    pub callback_ctrl: ::std::option::Option<
7527        unsafe extern "C" fn(
7528            arg1: *mut BIO,
7529            arg2: ::std::os::raw::c_int,
7530            arg3: bio_info_cb,
7531        ) -> ::std::os::raw::c_long,
7532    >,
7533}
7534#[test]
7535fn bindgen_test_layout_bio_method_st() {
7536    const UNINIT: ::std::mem::MaybeUninit<bio_method_st> = ::std::mem::MaybeUninit::uninit();
7537    let ptr = UNINIT.as_ptr();
7538    assert_eq!(
7539        ::std::mem::size_of::<bio_method_st>(),
7540        80usize,
7541        "Size of bio_method_st"
7542    );
7543    assert_eq!(
7544        ::std::mem::align_of::<bio_method_st>(),
7545        8usize,
7546        "Alignment of bio_method_st"
7547    );
7548    assert_eq!(
7549        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
7550        0usize,
7551        "Offset of field: bio_method_st::type_"
7552    );
7553    assert_eq!(
7554        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
7555        8usize,
7556        "Offset of field: bio_method_st::name"
7557    );
7558    assert_eq!(
7559        unsafe { ::std::ptr::addr_of!((*ptr).bwrite) as usize - ptr as usize },
7560        16usize,
7561        "Offset of field: bio_method_st::bwrite"
7562    );
7563    assert_eq!(
7564        unsafe { ::std::ptr::addr_of!((*ptr).bread) as usize - ptr as usize },
7565        24usize,
7566        "Offset of field: bio_method_st::bread"
7567    );
7568    assert_eq!(
7569        unsafe { ::std::ptr::addr_of!((*ptr).bputs) as usize - ptr as usize },
7570        32usize,
7571        "Offset of field: bio_method_st::bputs"
7572    );
7573    assert_eq!(
7574        unsafe { ::std::ptr::addr_of!((*ptr).bgets) as usize - ptr as usize },
7575        40usize,
7576        "Offset of field: bio_method_st::bgets"
7577    );
7578    assert_eq!(
7579        unsafe { ::std::ptr::addr_of!((*ptr).ctrl) as usize - ptr as usize },
7580        48usize,
7581        "Offset of field: bio_method_st::ctrl"
7582    );
7583    assert_eq!(
7584        unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize },
7585        56usize,
7586        "Offset of field: bio_method_st::create"
7587    );
7588    assert_eq!(
7589        unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize },
7590        64usize,
7591        "Offset of field: bio_method_st::destroy"
7592    );
7593    assert_eq!(
7594        unsafe { ::std::ptr::addr_of!((*ptr).callback_ctrl) as usize - ptr as usize },
7595        72usize,
7596        "Offset of field: bio_method_st::callback_ctrl"
7597    );
7598}
7599impl Default for bio_method_st {
7600    fn default() -> Self {
7601        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7602        unsafe {
7603            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7604            s.assume_init()
7605        }
7606    }
7607}
7608#[repr(C)]
7609#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7610pub struct bio_st {
7611    pub method: *const BIO_METHOD,
7612    pub ex_data: CRYPTO_EX_DATA,
7613    pub callback_ex: BIO_callback_fn_ex,
7614    pub callback: BIO_callback_fn,
7615    pub cb_arg: *mut ::std::os::raw::c_char,
7616    pub init: ::std::os::raw::c_int,
7617    pub shutdown: ::std::os::raw::c_int,
7618    pub flags: ::std::os::raw::c_int,
7619    pub retry_reason: ::std::os::raw::c_int,
7620    pub num: ::std::os::raw::c_int,
7621    pub references: CRYPTO_refcount_t,
7622    pub ptr: *mut ::std::os::raw::c_void,
7623    pub next_bio: *mut BIO,
7624    pub num_read: u64,
7625    pub num_write: u64,
7626}
7627#[test]
7628fn bindgen_test_layout_bio_st() {
7629    const UNINIT: ::std::mem::MaybeUninit<bio_st> = ::std::mem::MaybeUninit::uninit();
7630    let ptr = UNINIT.as_ptr();
7631    assert_eq!(::std::mem::size_of::<bio_st>(), 96usize, "Size of bio_st");
7632    assert_eq!(
7633        ::std::mem::align_of::<bio_st>(),
7634        8usize,
7635        "Alignment of bio_st"
7636    );
7637    assert_eq!(
7638        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
7639        0usize,
7640        "Offset of field: bio_st::method"
7641    );
7642    assert_eq!(
7643        unsafe { ::std::ptr::addr_of!((*ptr).ex_data) as usize - ptr as usize },
7644        8usize,
7645        "Offset of field: bio_st::ex_data"
7646    );
7647    assert_eq!(
7648        unsafe { ::std::ptr::addr_of!((*ptr).callback_ex) as usize - ptr as usize },
7649        16usize,
7650        "Offset of field: bio_st::callback_ex"
7651    );
7652    assert_eq!(
7653        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
7654        24usize,
7655        "Offset of field: bio_st::callback"
7656    );
7657    assert_eq!(
7658        unsafe { ::std::ptr::addr_of!((*ptr).cb_arg) as usize - ptr as usize },
7659        32usize,
7660        "Offset of field: bio_st::cb_arg"
7661    );
7662    assert_eq!(
7663        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
7664        40usize,
7665        "Offset of field: bio_st::init"
7666    );
7667    assert_eq!(
7668        unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize },
7669        44usize,
7670        "Offset of field: bio_st::shutdown"
7671    );
7672    assert_eq!(
7673        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
7674        48usize,
7675        "Offset of field: bio_st::flags"
7676    );
7677    assert_eq!(
7678        unsafe { ::std::ptr::addr_of!((*ptr).retry_reason) as usize - ptr as usize },
7679        52usize,
7680        "Offset of field: bio_st::retry_reason"
7681    );
7682    assert_eq!(
7683        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
7684        56usize,
7685        "Offset of field: bio_st::num"
7686    );
7687    assert_eq!(
7688        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
7689        60usize,
7690        "Offset of field: bio_st::references"
7691    );
7692    assert_eq!(
7693        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
7694        64usize,
7695        "Offset of field: bio_st::ptr"
7696    );
7697    assert_eq!(
7698        unsafe { ::std::ptr::addr_of!((*ptr).next_bio) as usize - ptr as usize },
7699        72usize,
7700        "Offset of field: bio_st::next_bio"
7701    );
7702    assert_eq!(
7703        unsafe { ::std::ptr::addr_of!((*ptr).num_read) as usize - ptr as usize },
7704        80usize,
7705        "Offset of field: bio_st::num_read"
7706    );
7707    assert_eq!(
7708        unsafe { ::std::ptr::addr_of!((*ptr).num_write) as usize - ptr as usize },
7709        88usize,
7710        "Offset of field: bio_st::num_write"
7711    );
7712}
7713impl Default for bio_st {
7714    fn default() -> Self {
7715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7716        unsafe {
7717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7718            s.assume_init()
7719        }
7720    }
7721}
7722pub type BN_ULONG = u64;
7723extern "C" {
7724    #[link_name = "\u{1}aws_lc_0_37_0_BN_new"]
7725    pub fn BN_new() -> *mut BIGNUM;
7726}
7727extern "C" {
7728    #[link_name = "\u{1}aws_lc_0_37_0_BN_init"]
7729    pub fn BN_init(bn: *mut BIGNUM);
7730}
7731extern "C" {
7732    #[link_name = "\u{1}aws_lc_0_37_0_BN_free"]
7733    pub fn BN_free(bn: *mut BIGNUM);
7734}
7735extern "C" {
7736    #[link_name = "\u{1}aws_lc_0_37_0_BN_clear_free"]
7737    pub fn BN_clear_free(bn: *mut BIGNUM);
7738}
7739extern "C" {
7740    #[link_name = "\u{1}aws_lc_0_37_0_BN_dup"]
7741    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7742}
7743extern "C" {
7744    #[link_name = "\u{1}aws_lc_0_37_0_BN_copy"]
7745    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7746}
7747extern "C" {
7748    #[link_name = "\u{1}aws_lc_0_37_0_BN_clear"]
7749    pub fn BN_clear(bn: *mut BIGNUM);
7750}
7751extern "C" {
7752    #[link_name = "\u{1}aws_lc_0_37_0_BN_value_one"]
7753    pub fn BN_value_one() -> *const BIGNUM;
7754}
7755extern "C" {
7756    #[link_name = "\u{1}aws_lc_0_37_0_BN_num_bits"]
7757    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7758}
7759extern "C" {
7760    #[link_name = "\u{1}aws_lc_0_37_0_BN_num_bytes"]
7761    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7762}
7763extern "C" {
7764    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_minimal_width"]
7765    pub fn BN_get_minimal_width(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7766}
7767extern "C" {
7768    #[link_name = "\u{1}aws_lc_0_37_0_BN_zero"]
7769    pub fn BN_zero(bn: *mut BIGNUM);
7770}
7771extern "C" {
7772    #[link_name = "\u{1}aws_lc_0_37_0_BN_one"]
7773    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
7774}
7775extern "C" {
7776    #[link_name = "\u{1}aws_lc_0_37_0_BN_set_word"]
7777    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::std::os::raw::c_int;
7778}
7779extern "C" {
7780    #[link_name = "\u{1}aws_lc_0_37_0_BN_set_u64"]
7781    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
7782}
7783extern "C" {
7784    #[link_name = "\u{1}aws_lc_0_37_0_BN_set_negative"]
7785    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
7786}
7787extern "C" {
7788    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_negative"]
7789    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7790}
7791extern "C" {
7792    #[link_name = "\u{1}aws_lc_0_37_0_BN_bin2bn"]
7793    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7794}
7795extern "C" {
7796    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2bin"]
7797    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7798}
7799extern "C" {
7800    #[link_name = "\u{1}aws_lc_0_37_0_BN_le2bn"]
7801    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7802}
7803extern "C" {
7804    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2le_padded"]
7805    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7806}
7807extern "C" {
7808    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2bin_padded"]
7809    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7810}
7811extern "C" {
7812    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2cbb_padded"]
7813    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
7814        -> ::std::os::raw::c_int;
7815}
7816extern "C" {
7817    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2hex"]
7818    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7819}
7820extern "C" {
7821    #[link_name = "\u{1}aws_lc_0_37_0_BN_hex2bn"]
7822    pub fn BN_hex2bn(
7823        outp: *mut *mut BIGNUM,
7824        in_: *const ::std::os::raw::c_char,
7825    ) -> ::std::os::raw::c_int;
7826}
7827extern "C" {
7828    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2dec"]
7829    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7830}
7831extern "C" {
7832    #[link_name = "\u{1}aws_lc_0_37_0_BN_dec2bn"]
7833    pub fn BN_dec2bn(
7834        outp: *mut *mut BIGNUM,
7835        in_: *const ::std::os::raw::c_char,
7836    ) -> ::std::os::raw::c_int;
7837}
7838extern "C" {
7839    #[link_name = "\u{1}aws_lc_0_37_0_BN_asc2bn"]
7840    pub fn BN_asc2bn(
7841        outp: *mut *mut BIGNUM,
7842        in_: *const ::std::os::raw::c_char,
7843    ) -> ::std::os::raw::c_int;
7844}
7845extern "C" {
7846    #[link_name = "\u{1}aws_lc_0_37_0_BN_print"]
7847    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
7848}
7849extern "C" {
7850    #[link_name = "\u{1}aws_lc_0_37_0_BN_print_fp"]
7851    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
7852}
7853extern "C" {
7854    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_word"]
7855    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7856}
7857extern "C" {
7858    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_u64"]
7859    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
7860}
7861extern "C" {
7862    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_flags"]
7863    pub fn BN_get_flags(bn: *const BIGNUM, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7864}
7865extern "C" {
7866    #[link_name = "\u{1}aws_lc_0_37_0_BN_parse_asn1_unsigned"]
7867    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
7868}
7869extern "C" {
7870    #[link_name = "\u{1}aws_lc_0_37_0_BN_marshal_asn1"]
7871    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
7872}
7873extern "C" {
7874    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_new"]
7875    pub fn BN_CTX_new() -> *mut BN_CTX;
7876}
7877extern "C" {
7878    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_free"]
7879    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7880}
7881extern "C" {
7882    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_start"]
7883    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7884}
7885extern "C" {
7886    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_get"]
7887    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7888}
7889extern "C" {
7890    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_end"]
7891    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7892}
7893extern "C" {
7894    #[link_name = "\u{1}aws_lc_0_37_0_BN_add"]
7895    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7896}
7897extern "C" {
7898    #[link_name = "\u{1}aws_lc_0_37_0_BN_uadd"]
7899    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7900}
7901extern "C" {
7902    #[link_name = "\u{1}aws_lc_0_37_0_BN_add_word"]
7903    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7904}
7905extern "C" {
7906    #[link_name = "\u{1}aws_lc_0_37_0_BN_sub"]
7907    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7908}
7909extern "C" {
7910    #[link_name = "\u{1}aws_lc_0_37_0_BN_usub"]
7911    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7912}
7913extern "C" {
7914    #[link_name = "\u{1}aws_lc_0_37_0_BN_sub_word"]
7915    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7916}
7917extern "C" {
7918    #[link_name = "\u{1}aws_lc_0_37_0_BN_mul"]
7919    pub fn BN_mul(
7920        r: *mut BIGNUM,
7921        a: *const BIGNUM,
7922        b: *const BIGNUM,
7923        ctx: *mut BN_CTX,
7924    ) -> ::std::os::raw::c_int;
7925}
7926extern "C" {
7927    #[link_name = "\u{1}aws_lc_0_37_0_BN_mul_word"]
7928    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7929}
7930extern "C" {
7931    #[link_name = "\u{1}aws_lc_0_37_0_BN_sqr"]
7932    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
7933}
7934extern "C" {
7935    #[link_name = "\u{1}aws_lc_0_37_0_BN_div"]
7936    pub fn BN_div(
7937        quotient: *mut BIGNUM,
7938        rem: *mut BIGNUM,
7939        numerator: *const BIGNUM,
7940        divisor: *const BIGNUM,
7941        ctx: *mut BN_CTX,
7942    ) -> ::std::os::raw::c_int;
7943}
7944extern "C" {
7945    #[link_name = "\u{1}aws_lc_0_37_0_BN_div_word"]
7946    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7947}
7948extern "C" {
7949    #[link_name = "\u{1}aws_lc_0_37_0_BN_sqrt"]
7950    pub fn BN_sqrt(
7951        out_sqrt: *mut BIGNUM,
7952        in_: *const BIGNUM,
7953        ctx: *mut BN_CTX,
7954    ) -> ::std::os::raw::c_int;
7955}
7956extern "C" {
7957    #[link_name = "\u{1}aws_lc_0_37_0_BN_cmp"]
7958    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7959}
7960extern "C" {
7961    #[link_name = "\u{1}aws_lc_0_37_0_BN_cmp_word"]
7962    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::std::os::raw::c_int;
7963}
7964extern "C" {
7965    #[link_name = "\u{1}aws_lc_0_37_0_BN_ucmp"]
7966    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7967}
7968extern "C" {
7969    #[link_name = "\u{1}aws_lc_0_37_0_BN_equal_consttime"]
7970    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7971}
7972extern "C" {
7973    #[link_name = "\u{1}aws_lc_0_37_0_BN_abs_is_word"]
7974    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7975}
7976extern "C" {
7977    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_zero"]
7978    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7979}
7980extern "C" {
7981    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_one"]
7982    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7983}
7984extern "C" {
7985    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_word"]
7986    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7987}
7988extern "C" {
7989    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_odd"]
7990    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7991}
7992extern "C" {
7993    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_pow2"]
7994    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
7995}
7996extern "C" {
7997    #[link_name = "\u{1}aws_lc_0_37_0_BN_lshift"]
7998    pub fn BN_lshift(
7999        r: *mut BIGNUM,
8000        a: *const BIGNUM,
8001        n: ::std::os::raw::c_int,
8002    ) -> ::std::os::raw::c_int;
8003}
8004extern "C" {
8005    #[link_name = "\u{1}aws_lc_0_37_0_BN_lshift1"]
8006    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8007}
8008extern "C" {
8009    #[link_name = "\u{1}aws_lc_0_37_0_BN_rshift"]
8010    pub fn BN_rshift(
8011        r: *mut BIGNUM,
8012        a: *const BIGNUM,
8013        n: ::std::os::raw::c_int,
8014    ) -> ::std::os::raw::c_int;
8015}
8016extern "C" {
8017    #[link_name = "\u{1}aws_lc_0_37_0_BN_rshift1"]
8018    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8019}
8020extern "C" {
8021    #[link_name = "\u{1}aws_lc_0_37_0_BN_set_bit"]
8022    pub fn BN_set_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8023}
8024extern "C" {
8025    #[link_name = "\u{1}aws_lc_0_37_0_BN_clear_bit"]
8026    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8027}
8028extern "C" {
8029    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_bit_set"]
8030    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8031}
8032extern "C" {
8033    #[link_name = "\u{1}aws_lc_0_37_0_BN_mask_bits"]
8034    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8035}
8036extern "C" {
8037    #[link_name = "\u{1}aws_lc_0_37_0_BN_count_low_zero_bits"]
8038    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
8039}
8040extern "C" {
8041    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_word"]
8042    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
8043}
8044extern "C" {
8045    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_pow2"]
8046    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8047}
8048extern "C" {
8049    #[link_name = "\u{1}aws_lc_0_37_0_BN_nnmod_pow2"]
8050    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8051}
8052extern "C" {
8053    #[link_name = "\u{1}aws_lc_0_37_0_BN_nnmod"]
8054    pub fn BN_nnmod(
8055        rem: *mut BIGNUM,
8056        numerator: *const BIGNUM,
8057        divisor: *const BIGNUM,
8058        ctx: *mut BN_CTX,
8059    ) -> ::std::os::raw::c_int;
8060}
8061extern "C" {
8062    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_add"]
8063    pub fn BN_mod_add(
8064        r: *mut BIGNUM,
8065        a: *const BIGNUM,
8066        b: *const BIGNUM,
8067        m: *const BIGNUM,
8068        ctx: *mut BN_CTX,
8069    ) -> ::std::os::raw::c_int;
8070}
8071extern "C" {
8072    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_add_quick"]
8073    pub fn BN_mod_add_quick(
8074        r: *mut BIGNUM,
8075        a: *const BIGNUM,
8076        b: *const BIGNUM,
8077        m: *const BIGNUM,
8078    ) -> ::std::os::raw::c_int;
8079}
8080extern "C" {
8081    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_sub"]
8082    pub fn BN_mod_sub(
8083        r: *mut BIGNUM,
8084        a: *const BIGNUM,
8085        b: *const BIGNUM,
8086        m: *const BIGNUM,
8087        ctx: *mut BN_CTX,
8088    ) -> ::std::os::raw::c_int;
8089}
8090extern "C" {
8091    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_sub_quick"]
8092    pub fn BN_mod_sub_quick(
8093        r: *mut BIGNUM,
8094        a: *const BIGNUM,
8095        b: *const BIGNUM,
8096        m: *const BIGNUM,
8097    ) -> ::std::os::raw::c_int;
8098}
8099extern "C" {
8100    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_mul"]
8101    pub fn BN_mod_mul(
8102        r: *mut BIGNUM,
8103        a: *const BIGNUM,
8104        b: *const BIGNUM,
8105        m: *const BIGNUM,
8106        ctx: *mut BN_CTX,
8107    ) -> ::std::os::raw::c_int;
8108}
8109extern "C" {
8110    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_sqr"]
8111    pub fn BN_mod_sqr(
8112        r: *mut BIGNUM,
8113        a: *const BIGNUM,
8114        m: *const BIGNUM,
8115        ctx: *mut BN_CTX,
8116    ) -> ::std::os::raw::c_int;
8117}
8118extern "C" {
8119    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_lshift"]
8120    pub fn BN_mod_lshift(
8121        r: *mut BIGNUM,
8122        a: *const BIGNUM,
8123        n: ::std::os::raw::c_int,
8124        m: *const BIGNUM,
8125        ctx: *mut BN_CTX,
8126    ) -> ::std::os::raw::c_int;
8127}
8128extern "C" {
8129    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_lshift_quick"]
8130    pub fn BN_mod_lshift_quick(
8131        r: *mut BIGNUM,
8132        a: *const BIGNUM,
8133        n: ::std::os::raw::c_int,
8134        m: *const BIGNUM,
8135    ) -> ::std::os::raw::c_int;
8136}
8137extern "C" {
8138    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_lshift1"]
8139    pub fn BN_mod_lshift1(
8140        r: *mut BIGNUM,
8141        a: *const BIGNUM,
8142        m: *const BIGNUM,
8143        ctx: *mut BN_CTX,
8144    ) -> ::std::os::raw::c_int;
8145}
8146extern "C" {
8147    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_lshift1_quick"]
8148    pub fn BN_mod_lshift1_quick(
8149        r: *mut BIGNUM,
8150        a: *const BIGNUM,
8151        m: *const BIGNUM,
8152    ) -> ::std::os::raw::c_int;
8153}
8154extern "C" {
8155    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_sqrt"]
8156    pub fn BN_mod_sqrt(
8157        in_: *mut BIGNUM,
8158        a: *const BIGNUM,
8159        p: *const BIGNUM,
8160        ctx: *mut BN_CTX,
8161    ) -> *mut BIGNUM;
8162}
8163extern "C" {
8164    #[link_name = "\u{1}aws_lc_0_37_0_BN_rand"]
8165    pub fn BN_rand(
8166        rnd: *mut BIGNUM,
8167        bits: ::std::os::raw::c_int,
8168        top: ::std::os::raw::c_int,
8169        bottom: ::std::os::raw::c_int,
8170    ) -> ::std::os::raw::c_int;
8171}
8172extern "C" {
8173    #[link_name = "\u{1}aws_lc_0_37_0_BN_pseudo_rand"]
8174    pub fn BN_pseudo_rand(
8175        rnd: *mut BIGNUM,
8176        bits: ::std::os::raw::c_int,
8177        top: ::std::os::raw::c_int,
8178        bottom: ::std::os::raw::c_int,
8179    ) -> ::std::os::raw::c_int;
8180}
8181extern "C" {
8182    #[link_name = "\u{1}aws_lc_0_37_0_BN_rand_range"]
8183    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8184}
8185extern "C" {
8186    #[link_name = "\u{1}aws_lc_0_37_0_BN_rand_range_ex"]
8187    pub fn BN_rand_range_ex(
8188        r: *mut BIGNUM,
8189        min_inclusive: BN_ULONG,
8190        max_exclusive: *const BIGNUM,
8191    ) -> ::std::os::raw::c_int;
8192}
8193extern "C" {
8194    #[link_name = "\u{1}aws_lc_0_37_0_BN_pseudo_rand_range"]
8195    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8196}
8197#[repr(C)]
8198#[derive(Copy, Clone)]
8199pub struct bn_gencb_st {
8200    pub type_: u8,
8201    pub arg: *mut ::std::os::raw::c_void,
8202    pub callback: bn_gencb_st__bindgen_ty_1,
8203}
8204#[repr(C)]
8205#[derive(Copy, Clone)]
8206pub union bn_gencb_st__bindgen_ty_1 {
8207    pub new_style: ::std::option::Option<
8208        unsafe extern "C" fn(
8209            event: ::std::os::raw::c_int,
8210            n: ::std::os::raw::c_int,
8211            arg1: *mut bn_gencb_st,
8212        ) -> ::std::os::raw::c_int,
8213    >,
8214    pub old_style: ::std::option::Option<
8215        unsafe extern "C" fn(
8216            arg1: ::std::os::raw::c_int,
8217            arg2: ::std::os::raw::c_int,
8218            arg3: *mut ::std::os::raw::c_void,
8219        ),
8220    >,
8221}
8222#[test]
8223fn bindgen_test_layout_bn_gencb_st__bindgen_ty_1() {
8224    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st__bindgen_ty_1> =
8225        ::std::mem::MaybeUninit::uninit();
8226    let ptr = UNINIT.as_ptr();
8227    assert_eq!(
8228        ::std::mem::size_of::<bn_gencb_st__bindgen_ty_1>(),
8229        8usize,
8230        "Size of bn_gencb_st__bindgen_ty_1"
8231    );
8232    assert_eq!(
8233        ::std::mem::align_of::<bn_gencb_st__bindgen_ty_1>(),
8234        8usize,
8235        "Alignment of bn_gencb_st__bindgen_ty_1"
8236    );
8237    assert_eq!(
8238        unsafe { ::std::ptr::addr_of!((*ptr).new_style) as usize - ptr as usize },
8239        0usize,
8240        "Offset of field: bn_gencb_st__bindgen_ty_1::new_style"
8241    );
8242    assert_eq!(
8243        unsafe { ::std::ptr::addr_of!((*ptr).old_style) as usize - ptr as usize },
8244        0usize,
8245        "Offset of field: bn_gencb_st__bindgen_ty_1::old_style"
8246    );
8247}
8248impl Default for bn_gencb_st__bindgen_ty_1 {
8249    fn default() -> Self {
8250        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8251        unsafe {
8252            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8253            s.assume_init()
8254        }
8255    }
8256}
8257#[test]
8258fn bindgen_test_layout_bn_gencb_st() {
8259    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st> = ::std::mem::MaybeUninit::uninit();
8260    let ptr = UNINIT.as_ptr();
8261    assert_eq!(
8262        ::std::mem::size_of::<bn_gencb_st>(),
8263        24usize,
8264        "Size of bn_gencb_st"
8265    );
8266    assert_eq!(
8267        ::std::mem::align_of::<bn_gencb_st>(),
8268        8usize,
8269        "Alignment of bn_gencb_st"
8270    );
8271    assert_eq!(
8272        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8273        0usize,
8274        "Offset of field: bn_gencb_st::type_"
8275    );
8276    assert_eq!(
8277        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
8278        8usize,
8279        "Offset of field: bn_gencb_st::arg"
8280    );
8281    assert_eq!(
8282        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
8283        16usize,
8284        "Offset of field: bn_gencb_st::callback"
8285    );
8286}
8287impl Default for bn_gencb_st {
8288    fn default() -> Self {
8289        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8290        unsafe {
8291            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8292            s.assume_init()
8293        }
8294    }
8295}
8296extern "C" {
8297    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_new"]
8298    pub fn BN_GENCB_new() -> *mut BN_GENCB;
8299}
8300extern "C" {
8301    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_free"]
8302    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
8303}
8304extern "C" {
8305    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_set"]
8306    pub fn BN_GENCB_set(
8307        callback: *mut BN_GENCB,
8308        f: ::std::option::Option<
8309            unsafe extern "C" fn(
8310                event: ::std::os::raw::c_int,
8311                n: ::std::os::raw::c_int,
8312                arg1: *mut BN_GENCB,
8313            ) -> ::std::os::raw::c_int,
8314        >,
8315        arg: *mut ::std::os::raw::c_void,
8316    );
8317}
8318extern "C" {
8319    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_call"]
8320    pub fn BN_GENCB_call(
8321        callback: *mut BN_GENCB,
8322        event: ::std::os::raw::c_int,
8323        n: ::std::os::raw::c_int,
8324    ) -> ::std::os::raw::c_int;
8325}
8326extern "C" {
8327    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_get_arg"]
8328    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::std::os::raw::c_void;
8329}
8330extern "C" {
8331    #[link_name = "\u{1}aws_lc_0_37_0_BN_generate_prime_ex"]
8332    pub fn BN_generate_prime_ex(
8333        ret: *mut BIGNUM,
8334        bits: ::std::os::raw::c_int,
8335        safe: ::std::os::raw::c_int,
8336        add: *const BIGNUM,
8337        rem: *const BIGNUM,
8338        cb: *mut BN_GENCB,
8339    ) -> ::std::os::raw::c_int;
8340}
8341pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
8342pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
8343pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
8344pub type bn_primality_result_t = ::std::os::raw::c_uint;
8345extern "C" {
8346    #[link_name = "\u{1}aws_lc_0_37_0_BN_enhanced_miller_rabin_primality_test"]
8347    pub fn BN_enhanced_miller_rabin_primality_test(
8348        out_result: *mut bn_primality_result_t,
8349        w: *const BIGNUM,
8350        checks: ::std::os::raw::c_int,
8351        ctx: *mut BN_CTX,
8352        cb: *mut BN_GENCB,
8353    ) -> ::std::os::raw::c_int;
8354}
8355extern "C" {
8356    #[link_name = "\u{1}aws_lc_0_37_0_BN_primality_test"]
8357    pub fn BN_primality_test(
8358        is_probably_prime: *mut ::std::os::raw::c_int,
8359        candidate: *const BIGNUM,
8360        checks: ::std::os::raw::c_int,
8361        ctx: *mut BN_CTX,
8362        do_trial_division: ::std::os::raw::c_int,
8363        cb: *mut BN_GENCB,
8364    ) -> ::std::os::raw::c_int;
8365}
8366extern "C" {
8367    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_prime_fasttest_ex"]
8368    pub fn BN_is_prime_fasttest_ex(
8369        candidate: *const BIGNUM,
8370        checks: ::std::os::raw::c_int,
8371        ctx: *mut BN_CTX,
8372        do_trial_division: ::std::os::raw::c_int,
8373        cb: *mut BN_GENCB,
8374    ) -> ::std::os::raw::c_int;
8375}
8376extern "C" {
8377    #[link_name = "\u{1}aws_lc_0_37_0_BN_is_prime_ex"]
8378    pub fn BN_is_prime_ex(
8379        candidate: *const BIGNUM,
8380        checks: ::std::os::raw::c_int,
8381        ctx: *mut BN_CTX,
8382        cb: *mut BN_GENCB,
8383    ) -> ::std::os::raw::c_int;
8384}
8385extern "C" {
8386    #[link_name = "\u{1}aws_lc_0_37_0_BN_gcd"]
8387    pub fn BN_gcd(
8388        r: *mut BIGNUM,
8389        a: *const BIGNUM,
8390        b: *const BIGNUM,
8391        ctx: *mut BN_CTX,
8392    ) -> ::std::os::raw::c_int;
8393}
8394extern "C" {
8395    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_inverse"]
8396    pub fn BN_mod_inverse(
8397        out: *mut BIGNUM,
8398        a: *const BIGNUM,
8399        n: *const BIGNUM,
8400        ctx: *mut BN_CTX,
8401    ) -> *mut BIGNUM;
8402}
8403extern "C" {
8404    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_inverse_blinded"]
8405    pub fn BN_mod_inverse_blinded(
8406        out: *mut BIGNUM,
8407        out_no_inverse: *mut ::std::os::raw::c_int,
8408        a: *const BIGNUM,
8409        mont: *const BN_MONT_CTX,
8410        ctx: *mut BN_CTX,
8411    ) -> ::std::os::raw::c_int;
8412}
8413extern "C" {
8414    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_inverse_odd"]
8415    pub fn BN_mod_inverse_odd(
8416        out: *mut BIGNUM,
8417        out_no_inverse: *mut ::std::os::raw::c_int,
8418        a: *const BIGNUM,
8419        n: *const BIGNUM,
8420        ctx: *mut BN_CTX,
8421    ) -> ::std::os::raw::c_int;
8422}
8423extern "C" {
8424    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_new_for_modulus"]
8425    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8426}
8427extern "C" {
8428    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_new_consttime"]
8429    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8430}
8431extern "C" {
8432    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_free"]
8433    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
8434}
8435extern "C" {
8436    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_copy"]
8437    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
8438}
8439extern "C" {
8440    #[link_name = "\u{1}aws_lc_0_37_0_BN_to_montgomery"]
8441    pub fn BN_to_montgomery(
8442        ret: *mut BIGNUM,
8443        a: *const BIGNUM,
8444        mont: *const BN_MONT_CTX,
8445        ctx: *mut BN_CTX,
8446    ) -> ::std::os::raw::c_int;
8447}
8448extern "C" {
8449    #[link_name = "\u{1}aws_lc_0_37_0_BN_from_montgomery"]
8450    pub fn BN_from_montgomery(
8451        ret: *mut BIGNUM,
8452        a: *const BIGNUM,
8453        mont: *const BN_MONT_CTX,
8454        ctx: *mut BN_CTX,
8455    ) -> ::std::os::raw::c_int;
8456}
8457extern "C" {
8458    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_mul_montgomery"]
8459    pub fn BN_mod_mul_montgomery(
8460        r: *mut BIGNUM,
8461        a: *const BIGNUM,
8462        b: *const BIGNUM,
8463        mont: *const BN_MONT_CTX,
8464        ctx: *mut BN_CTX,
8465    ) -> ::std::os::raw::c_int;
8466}
8467extern "C" {
8468    #[link_name = "\u{1}aws_lc_0_37_0_BN_exp"]
8469    pub fn BN_exp(
8470        r: *mut BIGNUM,
8471        a: *const BIGNUM,
8472        p: *const BIGNUM,
8473        ctx: *mut BN_CTX,
8474    ) -> ::std::os::raw::c_int;
8475}
8476extern "C" {
8477    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp"]
8478    pub fn BN_mod_exp(
8479        r: *mut BIGNUM,
8480        a: *const BIGNUM,
8481        p: *const BIGNUM,
8482        m: *const BIGNUM,
8483        ctx: *mut BN_CTX,
8484    ) -> ::std::os::raw::c_int;
8485}
8486extern "C" {
8487    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp_mont"]
8488    pub fn BN_mod_exp_mont(
8489        r: *mut BIGNUM,
8490        a: *const BIGNUM,
8491        p: *const BIGNUM,
8492        m: *const BIGNUM,
8493        ctx: *mut BN_CTX,
8494        mont: *const BN_MONT_CTX,
8495    ) -> ::std::os::raw::c_int;
8496}
8497extern "C" {
8498    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp_mont_consttime"]
8499    pub fn BN_mod_exp_mont_consttime(
8500        rr: *mut BIGNUM,
8501        a: *const BIGNUM,
8502        p: *const BIGNUM,
8503        m: *const BIGNUM,
8504        ctx: *mut BN_CTX,
8505        mont: *const BN_MONT_CTX,
8506    ) -> ::std::os::raw::c_int;
8507}
8508extern "C" {
8509    #[link_name = "\u{1}aws_lc_0_37_0_BN_GENCB_set_old"]
8510    pub fn BN_GENCB_set_old(
8511        callback: *mut BN_GENCB,
8512        f: ::std::option::Option<
8513            unsafe extern "C" fn(
8514                arg1: ::std::os::raw::c_int,
8515                arg2: ::std::os::raw::c_int,
8516                arg3: *mut ::std::os::raw::c_void,
8517            ),
8518        >,
8519        cb_arg: *mut ::std::os::raw::c_void,
8520    );
8521}
8522extern "C" {
8523    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2mpi"]
8524    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
8525}
8526extern "C" {
8527    #[link_name = "\u{1}aws_lc_0_37_0_BN_mpi2bn"]
8528    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
8529}
8530extern "C" {
8531    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp_mont_word"]
8532    pub fn BN_mod_exp_mont_word(
8533        r: *mut BIGNUM,
8534        a: BN_ULONG,
8535        p: *const BIGNUM,
8536        m: *const BIGNUM,
8537        ctx: *mut BN_CTX,
8538        mont: *const BN_MONT_CTX,
8539    ) -> ::std::os::raw::c_int;
8540}
8541extern "C" {
8542    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp2_mont"]
8543    pub fn BN_mod_exp2_mont(
8544        r: *mut BIGNUM,
8545        a1: *const BIGNUM,
8546        p1: *const BIGNUM,
8547        a2: *const BIGNUM,
8548        p2: *const BIGNUM,
8549        m: *const BIGNUM,
8550        ctx: *mut BN_CTX,
8551        mont: *const BN_MONT_CTX,
8552    ) -> ::std::os::raw::c_int;
8553}
8554extern "C" {
8555    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_new"]
8556    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
8557}
8558extern "C" {
8559    #[link_name = "\u{1}aws_lc_0_37_0_BN_MONT_CTX_set"]
8560    pub fn BN_MONT_CTX_set(
8561        mont: *mut BN_MONT_CTX,
8562        mod_: *const BIGNUM,
8563        ctx: *mut BN_CTX,
8564    ) -> ::std::os::raw::c_int;
8565}
8566extern "C" {
8567    #[link_name = "\u{1}aws_lc_0_37_0_BN_bn2binpad"]
8568    pub fn BN_bn2binpad(
8569        in_: *const BIGNUM,
8570        out: *mut u8,
8571        len: ::std::os::raw::c_int,
8572    ) -> ::std::os::raw::c_int;
8573}
8574extern "C" {
8575    #[link_name = "\u{1}aws_lc_0_37_0_BN_secure_new"]
8576    pub fn BN_secure_new() -> *mut BIGNUM;
8577}
8578extern "C" {
8579    #[link_name = "\u{1}aws_lc_0_37_0_BN_CTX_secure_new"]
8580    pub fn BN_CTX_secure_new() -> *mut BN_CTX;
8581}
8582extern "C" {
8583    #[link_name = "\u{1}aws_lc_0_37_0_BN_mod_exp_mont_consttime_x2"]
8584    pub fn BN_mod_exp_mont_consttime_x2(
8585        rr1: *mut BIGNUM,
8586        a1: *const BIGNUM,
8587        p1: *const BIGNUM,
8588        m1: *const BIGNUM,
8589        in_mont1: *const BN_MONT_CTX,
8590        rr2: *mut BIGNUM,
8591        a2: *const BIGNUM,
8592        p2: *const BIGNUM,
8593        m2: *const BIGNUM,
8594        in_mont2: *const BN_MONT_CTX,
8595        ctx: *mut BN_CTX,
8596    ) -> ::std::os::raw::c_int;
8597}
8598extern "C" {
8599    #[link_name = "\u{1}aws_lc_0_37_0_BN_set_flags"]
8600    pub fn BN_set_flags(b: *mut BIGNUM, n: ::std::os::raw::c_int);
8601}
8602#[repr(C)]
8603#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8604pub struct bignum_st {
8605    pub d: *mut BN_ULONG,
8606    pub width: ::std::os::raw::c_int,
8607    pub dmax: ::std::os::raw::c_int,
8608    pub neg: ::std::os::raw::c_int,
8609    pub flags: ::std::os::raw::c_int,
8610}
8611#[test]
8612fn bindgen_test_layout_bignum_st() {
8613    const UNINIT: ::std::mem::MaybeUninit<bignum_st> = ::std::mem::MaybeUninit::uninit();
8614    let ptr = UNINIT.as_ptr();
8615    assert_eq!(
8616        ::std::mem::size_of::<bignum_st>(),
8617        24usize,
8618        "Size of bignum_st"
8619    );
8620    assert_eq!(
8621        ::std::mem::align_of::<bignum_st>(),
8622        8usize,
8623        "Alignment of bignum_st"
8624    );
8625    assert_eq!(
8626        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
8627        0usize,
8628        "Offset of field: bignum_st::d"
8629    );
8630    assert_eq!(
8631        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
8632        8usize,
8633        "Offset of field: bignum_st::width"
8634    );
8635    assert_eq!(
8636        unsafe { ::std::ptr::addr_of!((*ptr).dmax) as usize - ptr as usize },
8637        12usize,
8638        "Offset of field: bignum_st::dmax"
8639    );
8640    assert_eq!(
8641        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
8642        16usize,
8643        "Offset of field: bignum_st::neg"
8644    );
8645    assert_eq!(
8646        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8647        20usize,
8648        "Offset of field: bignum_st::flags"
8649    );
8650}
8651impl Default for bignum_st {
8652    fn default() -> Self {
8653        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8654        unsafe {
8655            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8656            s.assume_init()
8657        }
8658    }
8659}
8660#[repr(C)]
8661#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8662pub struct bn_mont_ctx_st {
8663    pub RR: BIGNUM,
8664    pub N: BIGNUM,
8665    pub n0: [BN_ULONG; 2usize],
8666}
8667#[test]
8668fn bindgen_test_layout_bn_mont_ctx_st() {
8669    const UNINIT: ::std::mem::MaybeUninit<bn_mont_ctx_st> = ::std::mem::MaybeUninit::uninit();
8670    let ptr = UNINIT.as_ptr();
8671    assert_eq!(
8672        ::std::mem::size_of::<bn_mont_ctx_st>(),
8673        64usize,
8674        "Size of bn_mont_ctx_st"
8675    );
8676    assert_eq!(
8677        ::std::mem::align_of::<bn_mont_ctx_st>(),
8678        8usize,
8679        "Alignment of bn_mont_ctx_st"
8680    );
8681    assert_eq!(
8682        unsafe { ::std::ptr::addr_of!((*ptr).RR) as usize - ptr as usize },
8683        0usize,
8684        "Offset of field: bn_mont_ctx_st::RR"
8685    );
8686    assert_eq!(
8687        unsafe { ::std::ptr::addr_of!((*ptr).N) as usize - ptr as usize },
8688        24usize,
8689        "Offset of field: bn_mont_ctx_st::N"
8690    );
8691    assert_eq!(
8692        unsafe { ::std::ptr::addr_of!((*ptr).n0) as usize - ptr as usize },
8693        48usize,
8694        "Offset of field: bn_mont_ctx_st::n0"
8695    );
8696}
8697impl Default for bn_mont_ctx_st {
8698    fn default() -> Self {
8699        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8700        unsafe {
8701            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8702            s.assume_init()
8703        }
8704    }
8705}
8706extern "C" {
8707    #[link_name = "\u{1}aws_lc_0_37_0_BN_num_bits_word"]
8708    pub fn BN_num_bits_word(l: BN_ULONG) -> ::std::os::raw::c_uint;
8709}
8710extern "C" {
8711    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_tag2bit"]
8712    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
8713}
8714extern "C" {
8715    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_tag2str"]
8716    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
8717}
8718pub type d2i_of_void = ::std::option::Option<
8719    unsafe extern "C" fn(
8720        arg1: *mut *mut ::std::os::raw::c_void,
8721        arg2: *mut *const ::std::os::raw::c_uchar,
8722        arg3: ::std::os::raw::c_long,
8723    ) -> *mut ::std::os::raw::c_void,
8724>;
8725pub type i2d_of_void = ::std::option::Option<
8726    unsafe extern "C" fn(
8727        arg1: *const ::std::os::raw::c_void,
8728        arg2: *mut *mut ::std::os::raw::c_uchar,
8729    ) -> ::std::os::raw::c_int,
8730>;
8731pub type ASN1_ITEM_EXP = ASN1_ITEM;
8732#[repr(C)]
8733#[derive(Debug, Copy, Clone)]
8734pub struct ASN1_VALUE_st {
8735    _unused: [u8; 0],
8736}
8737pub type ASN1_VALUE = ASN1_VALUE_st;
8738extern "C" {
8739    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_parse"]
8740    pub fn ASN1_parse(
8741        bp: *mut BIO,
8742        pp: *const ::std::os::raw::c_uchar,
8743        len: ::std::os::raw::c_long,
8744        indent: ::std::os::raw::c_int,
8745    ) -> ::std::os::raw::c_int;
8746}
8747extern "C" {
8748    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_new"]
8749    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
8750}
8751extern "C" {
8752    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_free"]
8753    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
8754}
8755extern "C" {
8756    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_d2i"]
8757    pub fn ASN1_item_d2i(
8758        out: *mut *mut ASN1_VALUE,
8759        inp: *mut *const ::std::os::raw::c_uchar,
8760        len: ::std::os::raw::c_long,
8761        it: *const ASN1_ITEM,
8762    ) -> *mut ASN1_VALUE;
8763}
8764extern "C" {
8765    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_i2d"]
8766    pub fn ASN1_item_i2d(
8767        val: *mut ASN1_VALUE,
8768        outp: *mut *mut ::std::os::raw::c_uchar,
8769        it: *const ASN1_ITEM,
8770    ) -> ::std::os::raw::c_int;
8771}
8772extern "C" {
8773    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_dup"]
8774    pub fn ASN1_dup(
8775        i2d: i2d_of_void,
8776        d2i: d2i_of_void,
8777        x: *mut ::std::os::raw::c_void,
8778    ) -> *mut ::std::os::raw::c_void;
8779}
8780extern "C" {
8781    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_dup"]
8782    pub fn ASN1_item_dup(
8783        it: *const ASN1_ITEM,
8784        x: *mut ::std::os::raw::c_void,
8785    ) -> *mut ::std::os::raw::c_void;
8786}
8787extern "C" {
8788    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_d2i_fp"]
8789    pub fn ASN1_item_d2i_fp(
8790        it: *const ASN1_ITEM,
8791        in_: *mut FILE,
8792        out: *mut ::std::os::raw::c_void,
8793    ) -> *mut ::std::os::raw::c_void;
8794}
8795extern "C" {
8796    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_d2i_bio"]
8797    pub fn ASN1_item_d2i_bio(
8798        it: *const ASN1_ITEM,
8799        in_: *mut BIO,
8800        out: *mut ::std::os::raw::c_void,
8801    ) -> *mut ::std::os::raw::c_void;
8802}
8803extern "C" {
8804    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_i2d_fp"]
8805    pub fn ASN1_item_i2d_fp(
8806        it: *const ASN1_ITEM,
8807        out: *mut FILE,
8808        in_: *mut ::std::os::raw::c_void,
8809    ) -> ::std::os::raw::c_int;
8810}
8811extern "C" {
8812    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_i2d_bio"]
8813    pub fn ASN1_item_i2d_bio(
8814        it: *const ASN1_ITEM,
8815        out: *mut BIO,
8816        in_: *mut ::std::os::raw::c_void,
8817    ) -> ::std::os::raw::c_int;
8818}
8819extern "C" {
8820    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_i2d_bio"]
8821    pub fn ASN1_i2d_bio(
8822        i2d: i2d_of_void,
8823        out: *mut BIO,
8824        in_: *mut ::std::os::raw::c_void,
8825    ) -> ::std::os::raw::c_int;
8826}
8827extern "C" {
8828    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_unpack"]
8829    pub fn ASN1_item_unpack(
8830        oct: *const ASN1_STRING,
8831        it: *const ASN1_ITEM,
8832    ) -> *mut ::std::os::raw::c_void;
8833}
8834extern "C" {
8835    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_pack"]
8836    pub fn ASN1_item_pack(
8837        obj: *mut ::std::os::raw::c_void,
8838        it: *const ASN1_ITEM,
8839        out: *mut *mut ASN1_STRING,
8840    ) -> *mut ASN1_STRING;
8841}
8842extern "C" {
8843    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_BOOLEAN"]
8844    pub fn d2i_ASN1_BOOLEAN(
8845        out: *mut ASN1_BOOLEAN,
8846        inp: *mut *const ::std::os::raw::c_uchar,
8847        len: ::std::os::raw::c_long,
8848    ) -> ASN1_BOOLEAN;
8849}
8850extern "C" {
8851    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_BOOLEAN"]
8852    pub fn i2d_ASN1_BOOLEAN(
8853        a: ASN1_BOOLEAN,
8854        outp: *mut *mut ::std::os::raw::c_uchar,
8855    ) -> ::std::os::raw::c_int;
8856}
8857extern "C" {
8858    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BOOLEAN_it"]
8859    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
8860}
8861extern "C" {
8862    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TBOOLEAN_it"]
8863    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
8864}
8865extern "C" {
8866    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_FBOOLEAN_it"]
8867    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
8868}
8869#[repr(C)]
8870#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8871pub struct asn1_string_st {
8872    pub length: ::std::os::raw::c_int,
8873    pub type_: ::std::os::raw::c_int,
8874    pub data: *mut ::std::os::raw::c_uchar,
8875    pub flags: ::std::os::raw::c_long,
8876}
8877#[test]
8878fn bindgen_test_layout_asn1_string_st() {
8879    const UNINIT: ::std::mem::MaybeUninit<asn1_string_st> = ::std::mem::MaybeUninit::uninit();
8880    let ptr = UNINIT.as_ptr();
8881    assert_eq!(
8882        ::std::mem::size_of::<asn1_string_st>(),
8883        24usize,
8884        "Size of asn1_string_st"
8885    );
8886    assert_eq!(
8887        ::std::mem::align_of::<asn1_string_st>(),
8888        8usize,
8889        "Alignment of asn1_string_st"
8890    );
8891    assert_eq!(
8892        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
8893        0usize,
8894        "Offset of field: asn1_string_st::length"
8895    );
8896    assert_eq!(
8897        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8898        4usize,
8899        "Offset of field: asn1_string_st::type_"
8900    );
8901    assert_eq!(
8902        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
8903        8usize,
8904        "Offset of field: asn1_string_st::data"
8905    );
8906    assert_eq!(
8907        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8908        16usize,
8909        "Offset of field: asn1_string_st::flags"
8910    );
8911}
8912impl Default for asn1_string_st {
8913    fn default() -> Self {
8914        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8915        unsafe {
8916            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8917            s.assume_init()
8918        }
8919    }
8920}
8921extern "C" {
8922    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_type_new"]
8923    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
8924}
8925extern "C" {
8926    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_new"]
8927    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
8928}
8929extern "C" {
8930    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_free"]
8931    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
8932}
8933extern "C" {
8934    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_clear_free"]
8935    pub fn ASN1_STRING_clear_free(str_: *mut ASN1_STRING);
8936}
8937extern "C" {
8938    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_copy"]
8939    pub fn ASN1_STRING_copy(
8940        dst: *mut ASN1_STRING,
8941        str_: *const ASN1_STRING,
8942    ) -> ::std::os::raw::c_int;
8943}
8944extern "C" {
8945    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_dup"]
8946    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
8947}
8948extern "C" {
8949    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_type"]
8950    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8951}
8952extern "C" {
8953    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_get0_data"]
8954    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
8955}
8956extern "C" {
8957    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_data"]
8958    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
8959}
8960extern "C" {
8961    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_length"]
8962    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8963}
8964extern "C" {
8965    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_cmp"]
8966    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
8967}
8968extern "C" {
8969    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_set"]
8970    pub fn ASN1_STRING_set(
8971        str_: *mut ASN1_STRING,
8972        data: *const ::std::os::raw::c_void,
8973        len: ossl_ssize_t,
8974    ) -> ::std::os::raw::c_int;
8975}
8976extern "C" {
8977    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_set0"]
8978    pub fn ASN1_STRING_set0(
8979        str_: *mut ASN1_STRING,
8980        data: *mut ::std::os::raw::c_void,
8981        len: ::std::os::raw::c_int,
8982    );
8983}
8984extern "C" {
8985    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BMPSTRING_new"]
8986    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
8987}
8988extern "C" {
8989    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALSTRING_new"]
8990    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
8991}
8992extern "C" {
8993    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_IA5STRING_new"]
8994    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
8995}
8996extern "C" {
8997    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_new"]
8998    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
8999}
9000extern "C" {
9001    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLESTRING_new"]
9002    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
9003}
9004extern "C" {
9005    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_T61STRING_new"]
9006    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
9007}
9008extern "C" {
9009    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UNIVERSALSTRING_new"]
9010    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
9011}
9012extern "C" {
9013    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTF8STRING_new"]
9014    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
9015}
9016extern "C" {
9017    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_VISIBLESTRING_new"]
9018    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
9019}
9020extern "C" {
9021    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BMPSTRING_free"]
9022    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
9023}
9024extern "C" {
9025    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALSTRING_free"]
9026    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
9027}
9028extern "C" {
9029    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_IA5STRING_free"]
9030    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
9031}
9032extern "C" {
9033    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_free"]
9034    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
9035}
9036extern "C" {
9037    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLESTRING_free"]
9038    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
9039}
9040extern "C" {
9041    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_T61STRING_free"]
9042    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
9043}
9044extern "C" {
9045    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UNIVERSALSTRING_free"]
9046    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
9047}
9048extern "C" {
9049    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTF8STRING_free"]
9050    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
9051}
9052extern "C" {
9053    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_VISIBLESTRING_free"]
9054    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
9055}
9056extern "C" {
9057    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_BMPSTRING"]
9058    pub fn d2i_ASN1_BMPSTRING(
9059        out: *mut *mut ASN1_BMPSTRING,
9060        inp: *mut *const u8,
9061        len: ::std::os::raw::c_long,
9062    ) -> *mut ASN1_BMPSTRING;
9063}
9064extern "C" {
9065    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_GENERALSTRING"]
9066    pub fn d2i_ASN1_GENERALSTRING(
9067        out: *mut *mut ASN1_GENERALSTRING,
9068        inp: *mut *const u8,
9069        len: ::std::os::raw::c_long,
9070    ) -> *mut ASN1_GENERALSTRING;
9071}
9072extern "C" {
9073    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_IA5STRING"]
9074    pub fn d2i_ASN1_IA5STRING(
9075        out: *mut *mut ASN1_IA5STRING,
9076        inp: *mut *const u8,
9077        len: ::std::os::raw::c_long,
9078    ) -> *mut ASN1_IA5STRING;
9079}
9080extern "C" {
9081    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_OCTET_STRING"]
9082    pub fn d2i_ASN1_OCTET_STRING(
9083        out: *mut *mut ASN1_OCTET_STRING,
9084        inp: *mut *const u8,
9085        len: ::std::os::raw::c_long,
9086    ) -> *mut ASN1_OCTET_STRING;
9087}
9088extern "C" {
9089    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_PRINTABLESTRING"]
9090    pub fn d2i_ASN1_PRINTABLESTRING(
9091        out: *mut *mut ASN1_PRINTABLESTRING,
9092        inp: *mut *const u8,
9093        len: ::std::os::raw::c_long,
9094    ) -> *mut ASN1_PRINTABLESTRING;
9095}
9096extern "C" {
9097    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_T61STRING"]
9098    pub fn d2i_ASN1_T61STRING(
9099        out: *mut *mut ASN1_T61STRING,
9100        inp: *mut *const u8,
9101        len: ::std::os::raw::c_long,
9102    ) -> *mut ASN1_T61STRING;
9103}
9104extern "C" {
9105    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_UNIVERSALSTRING"]
9106    pub fn d2i_ASN1_UNIVERSALSTRING(
9107        out: *mut *mut ASN1_UNIVERSALSTRING,
9108        inp: *mut *const u8,
9109        len: ::std::os::raw::c_long,
9110    ) -> *mut ASN1_UNIVERSALSTRING;
9111}
9112extern "C" {
9113    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_UTF8STRING"]
9114    pub fn d2i_ASN1_UTF8STRING(
9115        out: *mut *mut ASN1_UTF8STRING,
9116        inp: *mut *const u8,
9117        len: ::std::os::raw::c_long,
9118    ) -> *mut ASN1_UTF8STRING;
9119}
9120extern "C" {
9121    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_VISIBLESTRING"]
9122    pub fn d2i_ASN1_VISIBLESTRING(
9123        out: *mut *mut ASN1_VISIBLESTRING,
9124        inp: *mut *const u8,
9125        len: ::std::os::raw::c_long,
9126    ) -> *mut ASN1_VISIBLESTRING;
9127}
9128extern "C" {
9129    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_BMPSTRING"]
9130    pub fn i2d_ASN1_BMPSTRING(
9131        in_: *const ASN1_BMPSTRING,
9132        outp: *mut *mut u8,
9133    ) -> ::std::os::raw::c_int;
9134}
9135extern "C" {
9136    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_GENERALSTRING"]
9137    pub fn i2d_ASN1_GENERALSTRING(
9138        in_: *const ASN1_GENERALSTRING,
9139        outp: *mut *mut u8,
9140    ) -> ::std::os::raw::c_int;
9141}
9142extern "C" {
9143    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_IA5STRING"]
9144    pub fn i2d_ASN1_IA5STRING(
9145        in_: *const ASN1_IA5STRING,
9146        outp: *mut *mut u8,
9147    ) -> ::std::os::raw::c_int;
9148}
9149extern "C" {
9150    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_OCTET_STRING"]
9151    pub fn i2d_ASN1_OCTET_STRING(
9152        in_: *const ASN1_OCTET_STRING,
9153        outp: *mut *mut u8,
9154    ) -> ::std::os::raw::c_int;
9155}
9156extern "C" {
9157    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_PRINTABLESTRING"]
9158    pub fn i2d_ASN1_PRINTABLESTRING(
9159        in_: *const ASN1_PRINTABLESTRING,
9160        outp: *mut *mut u8,
9161    ) -> ::std::os::raw::c_int;
9162}
9163extern "C" {
9164    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_T61STRING"]
9165    pub fn i2d_ASN1_T61STRING(
9166        in_: *const ASN1_T61STRING,
9167        outp: *mut *mut u8,
9168    ) -> ::std::os::raw::c_int;
9169}
9170extern "C" {
9171    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_UNIVERSALSTRING"]
9172    pub fn i2d_ASN1_UNIVERSALSTRING(
9173        in_: *const ASN1_UNIVERSALSTRING,
9174        outp: *mut *mut u8,
9175    ) -> ::std::os::raw::c_int;
9176}
9177extern "C" {
9178    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_UTF8STRING"]
9179    pub fn i2d_ASN1_UTF8STRING(
9180        in_: *const ASN1_UTF8STRING,
9181        outp: *mut *mut u8,
9182    ) -> ::std::os::raw::c_int;
9183}
9184extern "C" {
9185    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_VISIBLESTRING"]
9186    pub fn i2d_ASN1_VISIBLESTRING(
9187        in_: *const ASN1_VISIBLESTRING,
9188        outp: *mut *mut u8,
9189    ) -> ::std::os::raw::c_int;
9190}
9191extern "C" {
9192    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BMPSTRING_it"]
9193    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
9194}
9195extern "C" {
9196    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALSTRING_it"]
9197    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
9198}
9199extern "C" {
9200    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_IA5STRING_it"]
9201    pub static ASN1_IA5STRING_it: ASN1_ITEM;
9202}
9203extern "C" {
9204    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_it"]
9205    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
9206}
9207extern "C" {
9208    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLESTRING_it"]
9209    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
9210}
9211extern "C" {
9212    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_T61STRING_it"]
9213    pub static ASN1_T61STRING_it: ASN1_ITEM;
9214}
9215extern "C" {
9216    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UNIVERSALSTRING_it"]
9217    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
9218}
9219extern "C" {
9220    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTF8STRING_it"]
9221    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
9222}
9223extern "C" {
9224    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_VISIBLESTRING_it"]
9225    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
9226}
9227extern "C" {
9228    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_dup"]
9229    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
9230}
9231extern "C" {
9232    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_cmp"]
9233    pub fn ASN1_OCTET_STRING_cmp(
9234        a: *const ASN1_OCTET_STRING,
9235        b: *const ASN1_OCTET_STRING,
9236    ) -> ::std::os::raw::c_int;
9237}
9238extern "C" {
9239    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OCTET_STRING_set"]
9240    pub fn ASN1_OCTET_STRING_set(
9241        str_: *mut ASN1_OCTET_STRING,
9242        data: *const ::std::os::raw::c_uchar,
9243        len: ::std::os::raw::c_int,
9244    ) -> ::std::os::raw::c_int;
9245}
9246extern "C" {
9247    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_to_UTF8"]
9248    pub fn ASN1_STRING_to_UTF8(
9249        out: *mut *mut ::std::os::raw::c_uchar,
9250        in_: *const ASN1_STRING,
9251    ) -> ::std::os::raw::c_int;
9252}
9253extern "C" {
9254    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_mbstring_copy"]
9255    pub fn ASN1_mbstring_copy(
9256        out: *mut *mut ASN1_STRING,
9257        in_: *const u8,
9258        len: ossl_ssize_t,
9259        inform: ::std::os::raw::c_int,
9260        mask: ::std::os::raw::c_ulong,
9261    ) -> ::std::os::raw::c_int;
9262}
9263extern "C" {
9264    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_mbstring_ncopy"]
9265    pub fn ASN1_mbstring_ncopy(
9266        out: *mut *mut ASN1_STRING,
9267        in_: *const u8,
9268        len: ossl_ssize_t,
9269        inform: ::std::os::raw::c_int,
9270        mask: ::std::os::raw::c_ulong,
9271        minsize: ossl_ssize_t,
9272        maxsize: ossl_ssize_t,
9273    ) -> ::std::os::raw::c_int;
9274}
9275extern "C" {
9276    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_set_by_NID"]
9277    pub fn ASN1_STRING_set_by_NID(
9278        out: *mut *mut ASN1_STRING,
9279        in_: *const ::std::os::raw::c_uchar,
9280        len: ossl_ssize_t,
9281        inform: ::std::os::raw::c_int,
9282        nid: ::std::os::raw::c_int,
9283    ) -> *mut ASN1_STRING;
9284}
9285extern "C" {
9286    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_TABLE_add"]
9287    pub fn ASN1_STRING_TABLE_add(
9288        nid: ::std::os::raw::c_int,
9289        minsize: ::std::os::raw::c_long,
9290        maxsize: ::std::os::raw::c_long,
9291        mask: ::std::os::raw::c_ulong,
9292        flags: ::std::os::raw::c_ulong,
9293    ) -> ::std::os::raw::c_int;
9294}
9295extern "C" {
9296    #[link_name = "\u{1}aws_lc_0_37_0_DIRECTORYSTRING_new"]
9297    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
9298}
9299extern "C" {
9300    #[link_name = "\u{1}aws_lc_0_37_0_DIRECTORYSTRING_free"]
9301    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
9302}
9303extern "C" {
9304    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DIRECTORYSTRING"]
9305    pub fn d2i_DIRECTORYSTRING(
9306        out: *mut *mut ASN1_STRING,
9307        inp: *mut *const u8,
9308        len: ::std::os::raw::c_long,
9309    ) -> *mut ASN1_STRING;
9310}
9311extern "C" {
9312    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DIRECTORYSTRING"]
9313    pub fn i2d_DIRECTORYSTRING(
9314        in_: *const ASN1_STRING,
9315        outp: *mut *mut u8,
9316    ) -> ::std::os::raw::c_int;
9317}
9318extern "C" {
9319    #[link_name = "\u{1}aws_lc_0_37_0_DIRECTORYSTRING_it"]
9320    pub static DIRECTORYSTRING_it: ASN1_ITEM;
9321}
9322extern "C" {
9323    #[link_name = "\u{1}aws_lc_0_37_0_DISPLAYTEXT_new"]
9324    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
9325}
9326extern "C" {
9327    #[link_name = "\u{1}aws_lc_0_37_0_DISPLAYTEXT_free"]
9328    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
9329}
9330extern "C" {
9331    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DISPLAYTEXT"]
9332    pub fn d2i_DISPLAYTEXT(
9333        out: *mut *mut ASN1_STRING,
9334        inp: *mut *const u8,
9335        len: ::std::os::raw::c_long,
9336    ) -> *mut ASN1_STRING;
9337}
9338extern "C" {
9339    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DISPLAYTEXT"]
9340    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9341}
9342extern "C" {
9343    #[link_name = "\u{1}aws_lc_0_37_0_DISPLAYTEXT_it"]
9344    pub static DISPLAYTEXT_it: ASN1_ITEM;
9345}
9346extern "C" {
9347    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_new"]
9348    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
9349}
9350extern "C" {
9351    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_free"]
9352    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
9353}
9354extern "C" {
9355    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_BIT_STRING"]
9356    pub fn d2i_ASN1_BIT_STRING(
9357        out: *mut *mut ASN1_BIT_STRING,
9358        inp: *mut *const u8,
9359        len: ::std::os::raw::c_long,
9360    ) -> *mut ASN1_BIT_STRING;
9361}
9362extern "C" {
9363    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_BIT_STRING"]
9364    pub fn i2d_ASN1_BIT_STRING(
9365        in_: *const ASN1_BIT_STRING,
9366        outp: *mut *mut u8,
9367    ) -> ::std::os::raw::c_int;
9368}
9369extern "C" {
9370    #[link_name = "\u{1}aws_lc_0_37_0_c2i_ASN1_BIT_STRING"]
9371    pub fn c2i_ASN1_BIT_STRING(
9372        out: *mut *mut ASN1_BIT_STRING,
9373        inp: *mut *const u8,
9374        len: ::std::os::raw::c_long,
9375    ) -> *mut ASN1_BIT_STRING;
9376}
9377extern "C" {
9378    #[link_name = "\u{1}aws_lc_0_37_0_i2c_ASN1_BIT_STRING"]
9379    pub fn i2c_ASN1_BIT_STRING(
9380        in_: *const ASN1_BIT_STRING,
9381        outp: *mut *mut u8,
9382    ) -> ::std::os::raw::c_int;
9383}
9384extern "C" {
9385    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_it"]
9386    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
9387}
9388extern "C" {
9389    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_num_bytes"]
9390    pub fn ASN1_BIT_STRING_num_bytes(
9391        str_: *const ASN1_BIT_STRING,
9392        out: *mut usize,
9393    ) -> ::std::os::raw::c_int;
9394}
9395extern "C" {
9396    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_set"]
9397    pub fn ASN1_BIT_STRING_set(
9398        str_: *mut ASN1_BIT_STRING,
9399        d: *const ::std::os::raw::c_uchar,
9400        length: ossl_ssize_t,
9401    ) -> ::std::os::raw::c_int;
9402}
9403extern "C" {
9404    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_set_bit"]
9405    pub fn ASN1_BIT_STRING_set_bit(
9406        str_: *mut ASN1_BIT_STRING,
9407        n: ::std::os::raw::c_int,
9408        value: ::std::os::raw::c_int,
9409    ) -> ::std::os::raw::c_int;
9410}
9411extern "C" {
9412    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_get_bit"]
9413    pub fn ASN1_BIT_STRING_get_bit(
9414        str_: *const ASN1_BIT_STRING,
9415        n: ::std::os::raw::c_int,
9416    ) -> ::std::os::raw::c_int;
9417}
9418extern "C" {
9419    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_BIT_STRING_check"]
9420    pub fn ASN1_BIT_STRING_check(
9421        str_: *const ASN1_BIT_STRING,
9422        flags: *const ::std::os::raw::c_uchar,
9423        flags_len: ::std::os::raw::c_int,
9424    ) -> ::std::os::raw::c_int;
9425}
9426#[repr(C)]
9427#[derive(Debug, Copy, Clone)]
9428pub struct stack_st_ASN1_INTEGER {
9429    _unused: [u8; 0],
9430}
9431pub type sk_ASN1_INTEGER_free_func =
9432    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
9433pub type sk_ASN1_INTEGER_copy_func =
9434    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
9435pub type sk_ASN1_INTEGER_cmp_func = ::std::option::Option<
9436    unsafe extern "C" fn(
9437        arg1: *const *const ASN1_INTEGER,
9438        arg2: *const *const ASN1_INTEGER,
9439    ) -> ::std::os::raw::c_int,
9440>;
9441pub type sk_ASN1_INTEGER_delete_if_func = ::std::option::Option<
9442    unsafe extern "C" fn(
9443        arg1: *mut ASN1_INTEGER,
9444        arg2: *mut ::std::os::raw::c_void,
9445    ) -> ::std::os::raw::c_int,
9446>;
9447extern "C" {
9448    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_new"]
9449    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
9450}
9451extern "C" {
9452    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_free"]
9453    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
9454}
9455extern "C" {
9456    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_dup"]
9457    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
9458}
9459extern "C" {
9460    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_INTEGER"]
9461    pub fn d2i_ASN1_INTEGER(
9462        out: *mut *mut ASN1_INTEGER,
9463        inp: *mut *const u8,
9464        len: ::std::os::raw::c_long,
9465    ) -> *mut ASN1_INTEGER;
9466}
9467extern "C" {
9468    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_INTEGER"]
9469    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9470}
9471extern "C" {
9472    #[link_name = "\u{1}aws_lc_0_37_0_c2i_ASN1_INTEGER"]
9473    pub fn c2i_ASN1_INTEGER(
9474        in_: *mut *mut ASN1_INTEGER,
9475        outp: *mut *const u8,
9476        len: ::std::os::raw::c_long,
9477    ) -> *mut ASN1_INTEGER;
9478}
9479extern "C" {
9480    #[link_name = "\u{1}aws_lc_0_37_0_i2c_ASN1_INTEGER"]
9481    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9482}
9483extern "C" {
9484    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_it"]
9485    pub static ASN1_INTEGER_it: ASN1_ITEM;
9486}
9487extern "C" {
9488    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_set_uint64"]
9489    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
9490}
9491extern "C" {
9492    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_set_int64"]
9493    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::std::os::raw::c_int;
9494}
9495extern "C" {
9496    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_get_uint64"]
9497    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9498}
9499extern "C" {
9500    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_get_int64"]
9501    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9502}
9503extern "C" {
9504    #[link_name = "\u{1}aws_lc_0_37_0_BN_to_ASN1_INTEGER"]
9505    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
9506}
9507extern "C" {
9508    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_to_BN"]
9509    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
9510}
9511extern "C" {
9512    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_cmp"]
9513    pub fn ASN1_INTEGER_cmp(
9514        x: *const ASN1_INTEGER,
9515        y: *const ASN1_INTEGER,
9516    ) -> ::std::os::raw::c_int;
9517}
9518extern "C" {
9519    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_new"]
9520    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
9521}
9522extern "C" {
9523    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_free"]
9524    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
9525}
9526extern "C" {
9527    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_ENUMERATED"]
9528    pub fn d2i_ASN1_ENUMERATED(
9529        out: *mut *mut ASN1_ENUMERATED,
9530        inp: *mut *const u8,
9531        len: ::std::os::raw::c_long,
9532    ) -> *mut ASN1_ENUMERATED;
9533}
9534extern "C" {
9535    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_ENUMERATED"]
9536    pub fn i2d_ASN1_ENUMERATED(
9537        in_: *const ASN1_ENUMERATED,
9538        outp: *mut *mut u8,
9539    ) -> ::std::os::raw::c_int;
9540}
9541extern "C" {
9542    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_it"]
9543    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
9544}
9545extern "C" {
9546    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_set_uint64"]
9547    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::std::os::raw::c_int;
9548}
9549extern "C" {
9550    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_set_int64"]
9551    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::std::os::raw::c_int;
9552}
9553extern "C" {
9554    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_get_uint64"]
9555    pub fn ASN1_ENUMERATED_get_uint64(
9556        out: *mut u64,
9557        a: *const ASN1_ENUMERATED,
9558    ) -> ::std::os::raw::c_int;
9559}
9560extern "C" {
9561    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_get_int64"]
9562    pub fn ASN1_ENUMERATED_get_int64(
9563        out: *mut i64,
9564        a: *const ASN1_ENUMERATED,
9565    ) -> ::std::os::raw::c_int;
9566}
9567extern "C" {
9568    #[link_name = "\u{1}aws_lc_0_37_0_BN_to_ASN1_ENUMERATED"]
9569    pub fn BN_to_ASN1_ENUMERATED(
9570        bn: *const BIGNUM,
9571        ai: *mut ASN1_ENUMERATED,
9572    ) -> *mut ASN1_ENUMERATED;
9573}
9574extern "C" {
9575    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_to_BN"]
9576    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
9577}
9578extern "C" {
9579    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_new"]
9580    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
9581}
9582extern "C" {
9583    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_free"]
9584    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
9585}
9586extern "C" {
9587    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_UTCTIME"]
9588    pub fn d2i_ASN1_UTCTIME(
9589        out: *mut *mut ASN1_UTCTIME,
9590        inp: *mut *const u8,
9591        len: ::std::os::raw::c_long,
9592    ) -> *mut ASN1_UTCTIME;
9593}
9594extern "C" {
9595    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_UTCTIME"]
9596    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9597}
9598extern "C" {
9599    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_it"]
9600    pub static ASN1_UTCTIME_it: ASN1_ITEM;
9601}
9602extern "C" {
9603    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_check"]
9604    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
9605}
9606extern "C" {
9607    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_set"]
9608    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
9609}
9610extern "C" {
9611    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_adj"]
9612    pub fn ASN1_UTCTIME_adj(
9613        s: *mut ASN1_UTCTIME,
9614        posix_time: i64,
9615        offset_day: ::std::os::raw::c_int,
9616        offset_sec: ::std::os::raw::c_long,
9617    ) -> *mut ASN1_UTCTIME;
9618}
9619extern "C" {
9620    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_set_string"]
9621    pub fn ASN1_UTCTIME_set_string(
9622        s: *mut ASN1_UTCTIME,
9623        str_: *const ::std::os::raw::c_char,
9624    ) -> ::std::os::raw::c_int;
9625}
9626extern "C" {
9627    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_cmp_time_t"]
9628    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
9629}
9630extern "C" {
9631    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_new"]
9632    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
9633}
9634extern "C" {
9635    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_free"]
9636    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
9637}
9638extern "C" {
9639    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_GENERALIZEDTIME"]
9640    pub fn d2i_ASN1_GENERALIZEDTIME(
9641        out: *mut *mut ASN1_GENERALIZEDTIME,
9642        inp: *mut *const u8,
9643        len: ::std::os::raw::c_long,
9644    ) -> *mut ASN1_GENERALIZEDTIME;
9645}
9646extern "C" {
9647    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_GENERALIZEDTIME"]
9648    pub fn i2d_ASN1_GENERALIZEDTIME(
9649        in_: *const ASN1_GENERALIZEDTIME,
9650        outp: *mut *mut u8,
9651    ) -> ::std::os::raw::c_int;
9652}
9653extern "C" {
9654    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_it"]
9655    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
9656}
9657extern "C" {
9658    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_check"]
9659    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
9660}
9661extern "C" {
9662    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_set"]
9663    pub fn ASN1_GENERALIZEDTIME_set(
9664        s: *mut ASN1_GENERALIZEDTIME,
9665        posix_time: i64,
9666    ) -> *mut ASN1_GENERALIZEDTIME;
9667}
9668extern "C" {
9669    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_adj"]
9670    pub fn ASN1_GENERALIZEDTIME_adj(
9671        s: *mut ASN1_GENERALIZEDTIME,
9672        posix_time: i64,
9673        offset_day: ::std::os::raw::c_int,
9674        offset_sec: ::std::os::raw::c_long,
9675    ) -> *mut ASN1_GENERALIZEDTIME;
9676}
9677extern "C" {
9678    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_set_string"]
9679    pub fn ASN1_GENERALIZEDTIME_set_string(
9680        s: *mut ASN1_GENERALIZEDTIME,
9681        str_: *const ::std::os::raw::c_char,
9682    ) -> ::std::os::raw::c_int;
9683}
9684extern "C" {
9685    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_new"]
9686    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
9687}
9688extern "C" {
9689    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_free"]
9690    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
9691}
9692extern "C" {
9693    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_TIME"]
9694    pub fn d2i_ASN1_TIME(
9695        out: *mut *mut ASN1_TIME,
9696        inp: *mut *const u8,
9697        len: ::std::os::raw::c_long,
9698    ) -> *mut ASN1_TIME;
9699}
9700extern "C" {
9701    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_TIME"]
9702    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9703}
9704extern "C" {
9705    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_it"]
9706    pub static ASN1_TIME_it: ASN1_ITEM;
9707}
9708extern "C" {
9709    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_diff"]
9710    pub fn ASN1_TIME_diff(
9711        out_days: *mut ::std::os::raw::c_int,
9712        out_seconds: *mut ::std::os::raw::c_int,
9713        from: *const ASN1_TIME,
9714        to: *const ASN1_TIME,
9715    ) -> ::std::os::raw::c_int;
9716}
9717extern "C" {
9718    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_set_posix"]
9719    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
9720}
9721extern "C" {
9722    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_set"]
9723    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
9724}
9725extern "C" {
9726    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_adj"]
9727    pub fn ASN1_TIME_adj(
9728        s: *mut ASN1_TIME,
9729        posix_time: i64,
9730        offset_day: ::std::os::raw::c_int,
9731        offset_sec: ::std::os::raw::c_long,
9732    ) -> *mut ASN1_TIME;
9733}
9734extern "C" {
9735    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_check"]
9736    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::std::os::raw::c_int;
9737}
9738extern "C" {
9739    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_to_generalizedtime"]
9740    pub fn ASN1_TIME_to_generalizedtime(
9741        t: *const ASN1_TIME,
9742        out: *mut *mut ASN1_GENERALIZEDTIME,
9743    ) -> *mut ASN1_GENERALIZEDTIME;
9744}
9745extern "C" {
9746    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_set_string"]
9747    pub fn ASN1_TIME_set_string(
9748        s: *mut ASN1_TIME,
9749        str_: *const ::std::os::raw::c_char,
9750    ) -> ::std::os::raw::c_int;
9751}
9752extern "C" {
9753    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_to_tm"]
9754    pub fn ASN1_TIME_to_tm(t: *const ASN1_TIME, out: *mut tm) -> ::std::os::raw::c_int;
9755}
9756extern "C" {
9757    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_set_string_X509"]
9758    pub fn ASN1_TIME_set_string_X509(
9759        s: *mut ASN1_TIME,
9760        str_: *const ::std::os::raw::c_char,
9761    ) -> ::std::os::raw::c_int;
9762}
9763extern "C" {
9764    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_to_time_t"]
9765    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::std::os::raw::c_int;
9766}
9767extern "C" {
9768    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_to_posix"]
9769    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::std::os::raw::c_int;
9770}
9771extern "C" {
9772    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_NULL_new"]
9773    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
9774}
9775extern "C" {
9776    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_NULL_free"]
9777    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
9778}
9779extern "C" {
9780    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_NULL"]
9781    pub fn d2i_ASN1_NULL(
9782        out: *mut *mut ASN1_NULL,
9783        inp: *mut *const u8,
9784        len: ::std::os::raw::c_long,
9785    ) -> *mut ASN1_NULL;
9786}
9787extern "C" {
9788    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_NULL"]
9789    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9790}
9791extern "C" {
9792    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_NULL_it"]
9793    pub static ASN1_NULL_it: ASN1_ITEM;
9794}
9795#[repr(C)]
9796#[derive(Debug, Copy, Clone)]
9797pub struct stack_st_ASN1_OBJECT {
9798    _unused: [u8; 0],
9799}
9800pub type sk_ASN1_OBJECT_free_func =
9801    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
9802pub type sk_ASN1_OBJECT_copy_func =
9803    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
9804pub type sk_ASN1_OBJECT_cmp_func = ::std::option::Option<
9805    unsafe extern "C" fn(
9806        arg1: *const *const ASN1_OBJECT,
9807        arg2: *const *const ASN1_OBJECT,
9808    ) -> ::std::os::raw::c_int,
9809>;
9810pub type sk_ASN1_OBJECT_delete_if_func = ::std::option::Option<
9811    unsafe extern "C" fn(
9812        arg1: *mut ASN1_OBJECT,
9813        arg2: *mut ::std::os::raw::c_void,
9814    ) -> ::std::os::raw::c_int,
9815>;
9816extern "C" {
9817    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OBJECT_create"]
9818    pub fn ASN1_OBJECT_create(
9819        nid: ::std::os::raw::c_int,
9820        data: *const u8,
9821        len: usize,
9822        sn: *const ::std::os::raw::c_char,
9823        ln: *const ::std::os::raw::c_char,
9824    ) -> *mut ASN1_OBJECT;
9825}
9826extern "C" {
9827    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OBJECT_free"]
9828    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
9829}
9830extern "C" {
9831    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_OBJECT"]
9832    pub fn d2i_ASN1_OBJECT(
9833        out: *mut *mut ASN1_OBJECT,
9834        inp: *mut *const u8,
9835        len: ::std::os::raw::c_long,
9836    ) -> *mut ASN1_OBJECT;
9837}
9838extern "C" {
9839    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_OBJECT"]
9840    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9841}
9842extern "C" {
9843    #[link_name = "\u{1}aws_lc_0_37_0_c2i_ASN1_OBJECT"]
9844    pub fn c2i_ASN1_OBJECT(
9845        out: *mut *mut ASN1_OBJECT,
9846        inp: *mut *const u8,
9847        len: ::std::os::raw::c_long,
9848    ) -> *mut ASN1_OBJECT;
9849}
9850extern "C" {
9851    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_OBJECT_it"]
9852    pub static ASN1_OBJECT_it: ASN1_ITEM;
9853}
9854#[repr(C)]
9855#[derive(Copy, Clone)]
9856pub struct asn1_type_st {
9857    pub type_: ::std::os::raw::c_int,
9858    pub value: asn1_type_st__bindgen_ty_1,
9859}
9860#[repr(C)]
9861#[derive(Copy, Clone)]
9862pub union asn1_type_st__bindgen_ty_1 {
9863    pub ptr: *mut ::std::os::raw::c_char,
9864    pub boolean: ASN1_BOOLEAN,
9865    pub asn1_string: *mut ASN1_STRING,
9866    pub object: *mut ASN1_OBJECT,
9867    pub integer: *mut ASN1_INTEGER,
9868    pub enumerated: *mut ASN1_ENUMERATED,
9869    pub bit_string: *mut ASN1_BIT_STRING,
9870    pub octet_string: *mut ASN1_OCTET_STRING,
9871    pub printablestring: *mut ASN1_PRINTABLESTRING,
9872    pub t61string: *mut ASN1_T61STRING,
9873    pub ia5string: *mut ASN1_IA5STRING,
9874    pub generalstring: *mut ASN1_GENERALSTRING,
9875    pub bmpstring: *mut ASN1_BMPSTRING,
9876    pub universalstring: *mut ASN1_UNIVERSALSTRING,
9877    pub utctime: *mut ASN1_UTCTIME,
9878    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
9879    pub visiblestring: *mut ASN1_VISIBLESTRING,
9880    pub utf8string: *mut ASN1_UTF8STRING,
9881    pub set: *mut ASN1_STRING,
9882    pub sequence: *mut ASN1_STRING,
9883    pub asn1_value: *mut ASN1_VALUE,
9884}
9885#[test]
9886fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
9887    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st__bindgen_ty_1> =
9888        ::std::mem::MaybeUninit::uninit();
9889    let ptr = UNINIT.as_ptr();
9890    assert_eq!(
9891        ::std::mem::size_of::<asn1_type_st__bindgen_ty_1>(),
9892        8usize,
9893        "Size of asn1_type_st__bindgen_ty_1"
9894    );
9895    assert_eq!(
9896        ::std::mem::align_of::<asn1_type_st__bindgen_ty_1>(),
9897        8usize,
9898        "Alignment of asn1_type_st__bindgen_ty_1"
9899    );
9900    assert_eq!(
9901        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
9902        0usize,
9903        "Offset of field: asn1_type_st__bindgen_ty_1::ptr"
9904    );
9905    assert_eq!(
9906        unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize },
9907        0usize,
9908        "Offset of field: asn1_type_st__bindgen_ty_1::boolean"
9909    );
9910    assert_eq!(
9911        unsafe { ::std::ptr::addr_of!((*ptr).asn1_string) as usize - ptr as usize },
9912        0usize,
9913        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_string"
9914    );
9915    assert_eq!(
9916        unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize },
9917        0usize,
9918        "Offset of field: asn1_type_st__bindgen_ty_1::object"
9919    );
9920    assert_eq!(
9921        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
9922        0usize,
9923        "Offset of field: asn1_type_st__bindgen_ty_1::integer"
9924    );
9925    assert_eq!(
9926        unsafe { ::std::ptr::addr_of!((*ptr).enumerated) as usize - ptr as usize },
9927        0usize,
9928        "Offset of field: asn1_type_st__bindgen_ty_1::enumerated"
9929    );
9930    assert_eq!(
9931        unsafe { ::std::ptr::addr_of!((*ptr).bit_string) as usize - ptr as usize },
9932        0usize,
9933        "Offset of field: asn1_type_st__bindgen_ty_1::bit_string"
9934    );
9935    assert_eq!(
9936        unsafe { ::std::ptr::addr_of!((*ptr).octet_string) as usize - ptr as usize },
9937        0usize,
9938        "Offset of field: asn1_type_st__bindgen_ty_1::octet_string"
9939    );
9940    assert_eq!(
9941        unsafe { ::std::ptr::addr_of!((*ptr).printablestring) as usize - ptr as usize },
9942        0usize,
9943        "Offset of field: asn1_type_st__bindgen_ty_1::printablestring"
9944    );
9945    assert_eq!(
9946        unsafe { ::std::ptr::addr_of!((*ptr).t61string) as usize - ptr as usize },
9947        0usize,
9948        "Offset of field: asn1_type_st__bindgen_ty_1::t61string"
9949    );
9950    assert_eq!(
9951        unsafe { ::std::ptr::addr_of!((*ptr).ia5string) as usize - ptr as usize },
9952        0usize,
9953        "Offset of field: asn1_type_st__bindgen_ty_1::ia5string"
9954    );
9955    assert_eq!(
9956        unsafe { ::std::ptr::addr_of!((*ptr).generalstring) as usize - ptr as usize },
9957        0usize,
9958        "Offset of field: asn1_type_st__bindgen_ty_1::generalstring"
9959    );
9960    assert_eq!(
9961        unsafe { ::std::ptr::addr_of!((*ptr).bmpstring) as usize - ptr as usize },
9962        0usize,
9963        "Offset of field: asn1_type_st__bindgen_ty_1::bmpstring"
9964    );
9965    assert_eq!(
9966        unsafe { ::std::ptr::addr_of!((*ptr).universalstring) as usize - ptr as usize },
9967        0usize,
9968        "Offset of field: asn1_type_st__bindgen_ty_1::universalstring"
9969    );
9970    assert_eq!(
9971        unsafe { ::std::ptr::addr_of!((*ptr).utctime) as usize - ptr as usize },
9972        0usize,
9973        "Offset of field: asn1_type_st__bindgen_ty_1::utctime"
9974    );
9975    assert_eq!(
9976        unsafe { ::std::ptr::addr_of!((*ptr).generalizedtime) as usize - ptr as usize },
9977        0usize,
9978        "Offset of field: asn1_type_st__bindgen_ty_1::generalizedtime"
9979    );
9980    assert_eq!(
9981        unsafe { ::std::ptr::addr_of!((*ptr).visiblestring) as usize - ptr as usize },
9982        0usize,
9983        "Offset of field: asn1_type_st__bindgen_ty_1::visiblestring"
9984    );
9985    assert_eq!(
9986        unsafe { ::std::ptr::addr_of!((*ptr).utf8string) as usize - ptr as usize },
9987        0usize,
9988        "Offset of field: asn1_type_st__bindgen_ty_1::utf8string"
9989    );
9990    assert_eq!(
9991        unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize },
9992        0usize,
9993        "Offset of field: asn1_type_st__bindgen_ty_1::set"
9994    );
9995    assert_eq!(
9996        unsafe { ::std::ptr::addr_of!((*ptr).sequence) as usize - ptr as usize },
9997        0usize,
9998        "Offset of field: asn1_type_st__bindgen_ty_1::sequence"
9999    );
10000    assert_eq!(
10001        unsafe { ::std::ptr::addr_of!((*ptr).asn1_value) as usize - ptr as usize },
10002        0usize,
10003        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_value"
10004    );
10005}
10006impl Default for asn1_type_st__bindgen_ty_1 {
10007    fn default() -> Self {
10008        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10009        unsafe {
10010            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10011            s.assume_init()
10012        }
10013    }
10014}
10015#[test]
10016fn bindgen_test_layout_asn1_type_st() {
10017    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st> = ::std::mem::MaybeUninit::uninit();
10018    let ptr = UNINIT.as_ptr();
10019    assert_eq!(
10020        ::std::mem::size_of::<asn1_type_st>(),
10021        16usize,
10022        "Size of asn1_type_st"
10023    );
10024    assert_eq!(
10025        ::std::mem::align_of::<asn1_type_st>(),
10026        8usize,
10027        "Alignment of asn1_type_st"
10028    );
10029    assert_eq!(
10030        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
10031        0usize,
10032        "Offset of field: asn1_type_st::type_"
10033    );
10034    assert_eq!(
10035        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10036        8usize,
10037        "Offset of field: asn1_type_st::value"
10038    );
10039}
10040impl Default for asn1_type_st {
10041    fn default() -> Self {
10042        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10043        unsafe {
10044            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10045            s.assume_init()
10046        }
10047    }
10048}
10049#[repr(C)]
10050#[derive(Debug, Copy, Clone)]
10051pub struct stack_st_ASN1_TYPE {
10052    _unused: [u8; 0],
10053}
10054pub type sk_ASN1_TYPE_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
10055pub type sk_ASN1_TYPE_copy_func =
10056    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
10057pub type sk_ASN1_TYPE_cmp_func = ::std::option::Option<
10058    unsafe extern "C" fn(
10059        arg1: *const *const ASN1_TYPE,
10060        arg2: *const *const ASN1_TYPE,
10061    ) -> ::std::os::raw::c_int,
10062>;
10063pub type sk_ASN1_TYPE_delete_if_func = ::std::option::Option<
10064    unsafe extern "C" fn(
10065        arg1: *mut ASN1_TYPE,
10066        arg2: *mut ::std::os::raw::c_void,
10067    ) -> ::std::os::raw::c_int,
10068>;
10069extern "C" {
10070    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_new"]
10071    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
10072}
10073extern "C" {
10074    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_free"]
10075    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
10076}
10077extern "C" {
10078    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_TYPE"]
10079    pub fn d2i_ASN1_TYPE(
10080        out: *mut *mut ASN1_TYPE,
10081        inp: *mut *const u8,
10082        len: ::std::os::raw::c_long,
10083    ) -> *mut ASN1_TYPE;
10084}
10085extern "C" {
10086    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_TYPE"]
10087    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::std::os::raw::c_int;
10088}
10089extern "C" {
10090    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ANY_it"]
10091    pub static ASN1_ANY_it: ASN1_ITEM;
10092}
10093extern "C" {
10094    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_get"]
10095    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10096}
10097extern "C" {
10098    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_set"]
10099    pub fn ASN1_TYPE_set(
10100        a: *mut ASN1_TYPE,
10101        type_: ::std::os::raw::c_int,
10102        value: *mut ::std::os::raw::c_void,
10103    );
10104}
10105extern "C" {
10106    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_set1"]
10107    pub fn ASN1_TYPE_set1(
10108        a: *mut ASN1_TYPE,
10109        type_: ::std::os::raw::c_int,
10110        value: *const ::std::os::raw::c_void,
10111    ) -> ::std::os::raw::c_int;
10112}
10113extern "C" {
10114    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TYPE_cmp"]
10115    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10116}
10117pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
10118extern "C" {
10119    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_SEQUENCE_ANY"]
10120    pub fn d2i_ASN1_SEQUENCE_ANY(
10121        out: *mut *mut ASN1_SEQUENCE_ANY,
10122        inp: *mut *const u8,
10123        len: ::std::os::raw::c_long,
10124    ) -> *mut ASN1_SEQUENCE_ANY;
10125}
10126extern "C" {
10127    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_SEQUENCE_ANY"]
10128    pub fn i2d_ASN1_SEQUENCE_ANY(
10129        in_: *const ASN1_SEQUENCE_ANY,
10130        outp: *mut *mut u8,
10131    ) -> ::std::os::raw::c_int;
10132}
10133extern "C" {
10134    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_SET_ANY"]
10135    pub fn d2i_ASN1_SET_ANY(
10136        out: *mut *mut ASN1_SEQUENCE_ANY,
10137        inp: *mut *const u8,
10138        len: ::std::os::raw::c_long,
10139    ) -> *mut ASN1_SEQUENCE_ANY;
10140}
10141extern "C" {
10142    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_SET_ANY"]
10143    pub fn i2d_ASN1_SET_ANY(
10144        in_: *const ASN1_SEQUENCE_ANY,
10145        outp: *mut *mut u8,
10146    ) -> ::std::os::raw::c_int;
10147}
10148extern "C" {
10149    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_UTCTIME_print"]
10150    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
10151}
10152extern "C" {
10153    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_GENERALIZEDTIME_print"]
10154    pub fn ASN1_GENERALIZEDTIME_print(
10155        out: *mut BIO,
10156        a: *const ASN1_GENERALIZEDTIME,
10157    ) -> ::std::os::raw::c_int;
10158}
10159extern "C" {
10160    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_TIME_print"]
10161    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
10162}
10163extern "C" {
10164    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_print"]
10165    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
10166}
10167extern "C" {
10168    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_print_ex"]
10169    pub fn ASN1_STRING_print_ex(
10170        out: *mut BIO,
10171        str_: *const ASN1_STRING,
10172        flags: ::std::os::raw::c_ulong,
10173    ) -> ::std::os::raw::c_int;
10174}
10175extern "C" {
10176    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_print_ex_fp"]
10177    pub fn ASN1_STRING_print_ex_fp(
10178        fp: *mut FILE,
10179        str_: *const ASN1_STRING,
10180        flags: ::std::os::raw::c_ulong,
10181    ) -> ::std::os::raw::c_int;
10182}
10183extern "C" {
10184    #[link_name = "\u{1}aws_lc_0_37_0_i2a_ASN1_INTEGER"]
10185    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
10186}
10187extern "C" {
10188    #[link_name = "\u{1}aws_lc_0_37_0_i2a_ASN1_ENUMERATED"]
10189    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_int;
10190}
10191extern "C" {
10192    #[link_name = "\u{1}aws_lc_0_37_0_i2a_ASN1_OBJECT"]
10193    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
10194}
10195extern "C" {
10196    #[link_name = "\u{1}aws_lc_0_37_0_i2a_ASN1_STRING"]
10197    pub fn i2a_ASN1_STRING(
10198        bp: *mut BIO,
10199        a: *const ASN1_STRING,
10200        type_: ::std::os::raw::c_int,
10201    ) -> ::std::os::raw::c_int;
10202}
10203extern "C" {
10204    #[link_name = "\u{1}aws_lc_0_37_0_i2t_ASN1_OBJECT"]
10205    pub fn i2t_ASN1_OBJECT(
10206        buf: *mut ::std::os::raw::c_char,
10207        buf_len: ::std::os::raw::c_int,
10208        a: *const ASN1_OBJECT,
10209    ) -> ::std::os::raw::c_int;
10210}
10211extern "C" {
10212    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_get_object"]
10213    pub fn ASN1_get_object(
10214        inp: *mut *const ::std::os::raw::c_uchar,
10215        out_length: *mut ::std::os::raw::c_long,
10216        out_tag: *mut ::std::os::raw::c_int,
10217        out_class: *mut ::std::os::raw::c_int,
10218        max_len: ::std::os::raw::c_long,
10219    ) -> ::std::os::raw::c_int;
10220}
10221extern "C" {
10222    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_put_object"]
10223    pub fn ASN1_put_object(
10224        outp: *mut *mut ::std::os::raw::c_uchar,
10225        constructed: ::std::os::raw::c_int,
10226        length: ::std::os::raw::c_int,
10227        tag: ::std::os::raw::c_int,
10228        xclass: ::std::os::raw::c_int,
10229    );
10230}
10231extern "C" {
10232    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_put_eoc"]
10233    pub fn ASN1_put_eoc(outp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
10234}
10235extern "C" {
10236    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_object_size"]
10237    pub fn ASN1_object_size(
10238        constructed: ::std::os::raw::c_int,
10239        length: ::std::os::raw::c_int,
10240        tag: ::std::os::raw::c_int,
10241    ) -> ::std::os::raw::c_int;
10242}
10243extern "C" {
10244    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLE_new"]
10245    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
10246}
10247extern "C" {
10248    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLE_free"]
10249    pub fn ASN1_PRINTABLE_free(str_: *mut ASN1_STRING);
10250}
10251extern "C" {
10252    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ASN1_PRINTABLE"]
10253    pub fn d2i_ASN1_PRINTABLE(
10254        out: *mut *mut ASN1_STRING,
10255        inp: *mut *const u8,
10256        len: ::std::os::raw::c_long,
10257    ) -> *mut ASN1_STRING;
10258}
10259extern "C" {
10260    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ASN1_PRINTABLE"]
10261    pub fn i2d_ASN1_PRINTABLE(in_: *const ASN1_STRING, outp: *mut *mut u8)
10262        -> ::std::os::raw::c_int;
10263}
10264extern "C" {
10265    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_PRINTABLE_it"]
10266    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
10267}
10268extern "C" {
10269    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_set"]
10270    pub fn ASN1_INTEGER_set(
10271        a: *mut ASN1_INTEGER,
10272        v: ::std::os::raw::c_long,
10273    ) -> ::std::os::raw::c_int;
10274}
10275extern "C" {
10276    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_set"]
10277    pub fn ASN1_ENUMERATED_set(
10278        a: *mut ASN1_ENUMERATED,
10279        v: ::std::os::raw::c_long,
10280    ) -> ::std::os::raw::c_int;
10281}
10282extern "C" {
10283    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_INTEGER_get"]
10284    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
10285}
10286extern "C" {
10287    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_ENUMERATED_get"]
10288    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_long;
10289}
10290extern "C" {
10291    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_set_default_mask"]
10292    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
10293}
10294extern "C" {
10295    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_set_default_mask_asc"]
10296    pub fn ASN1_STRING_set_default_mask_asc(
10297        p: *const ::std::os::raw::c_char,
10298    ) -> ::std::os::raw::c_int;
10299}
10300extern "C" {
10301    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_get_default_mask"]
10302    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
10303}
10304extern "C" {
10305    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_STRING_TABLE_cleanup"]
10306    pub fn ASN1_STRING_TABLE_cleanup();
10307}
10308pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
10309#[repr(C)]
10310#[derive(Debug, Copy, Clone)]
10311pub struct ASN1_TLC_st {
10312    _unused: [u8; 0],
10313}
10314pub type ASN1_TLC = ASN1_TLC_st;
10315#[repr(C)]
10316#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10317pub struct ASN1_TEMPLATE_st {
10318    pub flags: u32,
10319    pub tag: ::std::os::raw::c_int,
10320    pub offset: ::std::os::raw::c_ulong,
10321    pub field_name: *const ::std::os::raw::c_char,
10322    pub item: *const ASN1_ITEM_st,
10323}
10324#[test]
10325fn bindgen_test_layout_ASN1_TEMPLATE_st() {
10326    const UNINIT: ::std::mem::MaybeUninit<ASN1_TEMPLATE_st> = ::std::mem::MaybeUninit::uninit();
10327    let ptr = UNINIT.as_ptr();
10328    assert_eq!(
10329        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
10330        32usize,
10331        "Size of ASN1_TEMPLATE_st"
10332    );
10333    assert_eq!(
10334        ::std::mem::align_of::<ASN1_TEMPLATE_st>(),
10335        8usize,
10336        "Alignment of ASN1_TEMPLATE_st"
10337    );
10338    assert_eq!(
10339        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10340        0usize,
10341        "Offset of field: ASN1_TEMPLATE_st::flags"
10342    );
10343    assert_eq!(
10344        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
10345        4usize,
10346        "Offset of field: ASN1_TEMPLATE_st::tag"
10347    );
10348    assert_eq!(
10349        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10350        8usize,
10351        "Offset of field: ASN1_TEMPLATE_st::offset"
10352    );
10353    assert_eq!(
10354        unsafe { ::std::ptr::addr_of!((*ptr).field_name) as usize - ptr as usize },
10355        16usize,
10356        "Offset of field: ASN1_TEMPLATE_st::field_name"
10357    );
10358    assert_eq!(
10359        unsafe { ::std::ptr::addr_of!((*ptr).item) as usize - ptr as usize },
10360        24usize,
10361        "Offset of field: ASN1_TEMPLATE_st::item"
10362    );
10363}
10364impl Default for ASN1_TEMPLATE_st {
10365    fn default() -> Self {
10366        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10367        unsafe {
10368            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10369            s.assume_init()
10370        }
10371    }
10372}
10373pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
10374pub type ASN1_ADB = ASN1_ADB_st;
10375#[repr(C)]
10376#[derive(Debug, Copy, Clone)]
10377pub struct asn1_must_be_null_st {
10378    _unused: [u8; 0],
10379}
10380pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st;
10381#[repr(C)]
10382#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10383pub struct ASN1_ADB_st {
10384    pub flags: u32,
10385    pub offset: ::std::os::raw::c_ulong,
10386    pub unused: *mut ASN1_MUST_BE_NULL,
10387    pub tbl: *const ASN1_ADB_TABLE,
10388    pub tblcount: ::std::os::raw::c_long,
10389    pub default_tt: *const ASN1_TEMPLATE,
10390    pub null_tt: *const ASN1_TEMPLATE,
10391}
10392#[test]
10393fn bindgen_test_layout_ASN1_ADB_st() {
10394    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_st> = ::std::mem::MaybeUninit::uninit();
10395    let ptr = UNINIT.as_ptr();
10396    assert_eq!(
10397        ::std::mem::size_of::<ASN1_ADB_st>(),
10398        56usize,
10399        "Size of ASN1_ADB_st"
10400    );
10401    assert_eq!(
10402        ::std::mem::align_of::<ASN1_ADB_st>(),
10403        8usize,
10404        "Alignment of ASN1_ADB_st"
10405    );
10406    assert_eq!(
10407        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10408        0usize,
10409        "Offset of field: ASN1_ADB_st::flags"
10410    );
10411    assert_eq!(
10412        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10413        8usize,
10414        "Offset of field: ASN1_ADB_st::offset"
10415    );
10416    assert_eq!(
10417        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
10418        16usize,
10419        "Offset of field: ASN1_ADB_st::unused"
10420    );
10421    assert_eq!(
10422        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
10423        24usize,
10424        "Offset of field: ASN1_ADB_st::tbl"
10425    );
10426    assert_eq!(
10427        unsafe { ::std::ptr::addr_of!((*ptr).tblcount) as usize - ptr as usize },
10428        32usize,
10429        "Offset of field: ASN1_ADB_st::tblcount"
10430    );
10431    assert_eq!(
10432        unsafe { ::std::ptr::addr_of!((*ptr).default_tt) as usize - ptr as usize },
10433        40usize,
10434        "Offset of field: ASN1_ADB_st::default_tt"
10435    );
10436    assert_eq!(
10437        unsafe { ::std::ptr::addr_of!((*ptr).null_tt) as usize - ptr as usize },
10438        48usize,
10439        "Offset of field: ASN1_ADB_st::null_tt"
10440    );
10441}
10442impl Default for ASN1_ADB_st {
10443    fn default() -> Self {
10444        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10445        unsafe {
10446            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10447            s.assume_init()
10448        }
10449    }
10450}
10451#[repr(C)]
10452#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10453pub struct ASN1_ADB_TABLE_st {
10454    pub value: ::std::os::raw::c_int,
10455    pub tt: ASN1_TEMPLATE,
10456}
10457#[test]
10458fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
10459    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_TABLE_st> = ::std::mem::MaybeUninit::uninit();
10460    let ptr = UNINIT.as_ptr();
10461    assert_eq!(
10462        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
10463        40usize,
10464        "Size of ASN1_ADB_TABLE_st"
10465    );
10466    assert_eq!(
10467        ::std::mem::align_of::<ASN1_ADB_TABLE_st>(),
10468        8usize,
10469        "Alignment of ASN1_ADB_TABLE_st"
10470    );
10471    assert_eq!(
10472        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10473        0usize,
10474        "Offset of field: ASN1_ADB_TABLE_st::value"
10475    );
10476    assert_eq!(
10477        unsafe { ::std::ptr::addr_of!((*ptr).tt) as usize - ptr as usize },
10478        8usize,
10479        "Offset of field: ASN1_ADB_TABLE_st::tt"
10480    );
10481}
10482impl Default for ASN1_ADB_TABLE_st {
10483    fn default() -> Self {
10484        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10485        unsafe {
10486            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10487            s.assume_init()
10488        }
10489    }
10490}
10491#[repr(C)]
10492#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10493pub struct ASN1_ITEM_st {
10494    pub itype: ::std::os::raw::c_char,
10495    pub utype: ::std::os::raw::c_int,
10496    pub templates: *const ASN1_TEMPLATE,
10497    pub tcount: ::std::os::raw::c_long,
10498    pub funcs: *const ::std::os::raw::c_void,
10499    pub size: ::std::os::raw::c_long,
10500    pub sname: *const ::std::os::raw::c_char,
10501}
10502#[test]
10503fn bindgen_test_layout_ASN1_ITEM_st() {
10504    const UNINIT: ::std::mem::MaybeUninit<ASN1_ITEM_st> = ::std::mem::MaybeUninit::uninit();
10505    let ptr = UNINIT.as_ptr();
10506    assert_eq!(
10507        ::std::mem::size_of::<ASN1_ITEM_st>(),
10508        48usize,
10509        "Size of ASN1_ITEM_st"
10510    );
10511    assert_eq!(
10512        ::std::mem::align_of::<ASN1_ITEM_st>(),
10513        8usize,
10514        "Alignment of ASN1_ITEM_st"
10515    );
10516    assert_eq!(
10517        unsafe { ::std::ptr::addr_of!((*ptr).itype) as usize - ptr as usize },
10518        0usize,
10519        "Offset of field: ASN1_ITEM_st::itype"
10520    );
10521    assert_eq!(
10522        unsafe { ::std::ptr::addr_of!((*ptr).utype) as usize - ptr as usize },
10523        4usize,
10524        "Offset of field: ASN1_ITEM_st::utype"
10525    );
10526    assert_eq!(
10527        unsafe { ::std::ptr::addr_of!((*ptr).templates) as usize - ptr as usize },
10528        8usize,
10529        "Offset of field: ASN1_ITEM_st::templates"
10530    );
10531    assert_eq!(
10532        unsafe { ::std::ptr::addr_of!((*ptr).tcount) as usize - ptr as usize },
10533        16usize,
10534        "Offset of field: ASN1_ITEM_st::tcount"
10535    );
10536    assert_eq!(
10537        unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize },
10538        24usize,
10539        "Offset of field: ASN1_ITEM_st::funcs"
10540    );
10541    assert_eq!(
10542        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
10543        32usize,
10544        "Offset of field: ASN1_ITEM_st::size"
10545    );
10546    assert_eq!(
10547        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
10548        40usize,
10549        "Offset of field: ASN1_ITEM_st::sname"
10550    );
10551}
10552impl Default for ASN1_ITEM_st {
10553    fn default() -> Self {
10554        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10555        unsafe {
10556            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10557            s.assume_init()
10558        }
10559    }
10560}
10561pub type ASN1_new_func = ::std::option::Option<unsafe extern "C" fn() -> *mut ASN1_VALUE>;
10562pub type ASN1_free_func = ::std::option::Option<unsafe extern "C" fn(a: *mut ASN1_VALUE)>;
10563pub type ASN1_d2i_func = ::std::option::Option<
10564    unsafe extern "C" fn(
10565        a: *mut *mut ASN1_VALUE,
10566        in_: *mut *const ::std::os::raw::c_uchar,
10567        length: ::std::os::raw::c_long,
10568    ) -> *mut ASN1_VALUE,
10569>;
10570pub type ASN1_i2d_func = ::std::option::Option<
10571    unsafe extern "C" fn(
10572        a: *mut ASN1_VALUE,
10573        in_: *mut *mut ::std::os::raw::c_uchar,
10574    ) -> ::std::os::raw::c_int,
10575>;
10576pub type ASN1_ex_d2i = ::std::option::Option<
10577    unsafe extern "C" fn(
10578        pval: *mut *mut ASN1_VALUE,
10579        in_: *mut *const ::std::os::raw::c_uchar,
10580        len: ::std::os::raw::c_long,
10581        it: *const ASN1_ITEM,
10582        tag: ::std::os::raw::c_int,
10583        aclass: ::std::os::raw::c_int,
10584        opt: ::std::os::raw::c_char,
10585        ctx: *mut ASN1_TLC,
10586    ) -> ::std::os::raw::c_int,
10587>;
10588pub type ASN1_ex_i2d = ::std::option::Option<
10589    unsafe extern "C" fn(
10590        pval: *mut *mut ASN1_VALUE,
10591        out: *mut *mut ::std::os::raw::c_uchar,
10592        it: *const ASN1_ITEM,
10593        tag: ::std::os::raw::c_int,
10594        aclass: ::std::os::raw::c_int,
10595    ) -> ::std::os::raw::c_int,
10596>;
10597pub type ASN1_ex_new_func = ::std::option::Option<
10598    unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM) -> ::std::os::raw::c_int,
10599>;
10600pub type ASN1_ex_free_func =
10601    ::std::option::Option<unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM)>;
10602pub type ASN1_ex_print_func = ::std::option::Option<
10603    unsafe extern "C" fn(
10604        out: *mut BIO,
10605        pval: *mut *mut ASN1_VALUE,
10606        indent: ::std::os::raw::c_int,
10607        fname: *const ::std::os::raw::c_char,
10608        pctx: *const ASN1_PCTX,
10609    ) -> ::std::os::raw::c_int,
10610>;
10611#[repr(C)]
10612#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10613pub struct ASN1_EXTERN_FUNCS_st {
10614    pub app_data: *mut ::std::os::raw::c_void,
10615    pub asn1_ex_new: ASN1_ex_new_func,
10616    pub asn1_ex_free: ASN1_ex_free_func,
10617    pub asn1_ex_d2i: ASN1_ex_d2i,
10618    pub asn1_ex_i2d: ASN1_ex_i2d,
10619    pub asn1_ex_print: ASN1_ex_print_func,
10620}
10621#[test]
10622fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st() {
10623    const UNINIT: ::std::mem::MaybeUninit<ASN1_EXTERN_FUNCS_st> = ::std::mem::MaybeUninit::uninit();
10624    let ptr = UNINIT.as_ptr();
10625    assert_eq!(
10626        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
10627        48usize,
10628        "Size of ASN1_EXTERN_FUNCS_st"
10629    );
10630    assert_eq!(
10631        ::std::mem::align_of::<ASN1_EXTERN_FUNCS_st>(),
10632        8usize,
10633        "Alignment of ASN1_EXTERN_FUNCS_st"
10634    );
10635    assert_eq!(
10636        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10637        0usize,
10638        "Offset of field: ASN1_EXTERN_FUNCS_st::app_data"
10639    );
10640    assert_eq!(
10641        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_new) as usize - ptr as usize },
10642        8usize,
10643        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_new"
10644    );
10645    assert_eq!(
10646        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_free) as usize - ptr as usize },
10647        16usize,
10648        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_free"
10649    );
10650    assert_eq!(
10651        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_d2i) as usize - ptr as usize },
10652        24usize,
10653        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_d2i"
10654    );
10655    assert_eq!(
10656        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_i2d) as usize - ptr as usize },
10657        32usize,
10658        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_i2d"
10659    );
10660    assert_eq!(
10661        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_print) as usize - ptr as usize },
10662        40usize,
10663        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_print"
10664    );
10665}
10666impl Default for ASN1_EXTERN_FUNCS_st {
10667    fn default() -> Self {
10668        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10669        unsafe {
10670            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10671            s.assume_init()
10672        }
10673    }
10674}
10675pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st;
10676pub type ASN1_aux_cb = ::std::option::Option<
10677    unsafe extern "C" fn(
10678        operation: ::std::os::raw::c_int,
10679        in_: *mut *mut ASN1_VALUE,
10680        it: *const ASN1_ITEM,
10681        exarg: *mut ::std::os::raw::c_void,
10682    ) -> ::std::os::raw::c_int,
10683>;
10684#[repr(C)]
10685#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10686pub struct ASN1_AUX_st {
10687    pub app_data: *mut ::std::os::raw::c_void,
10688    pub flags: u32,
10689    pub ref_offset: ::std::os::raw::c_int,
10690    pub asn1_cb: ASN1_aux_cb,
10691    pub enc_offset: ::std::os::raw::c_int,
10692}
10693#[test]
10694fn bindgen_test_layout_ASN1_AUX_st() {
10695    const UNINIT: ::std::mem::MaybeUninit<ASN1_AUX_st> = ::std::mem::MaybeUninit::uninit();
10696    let ptr = UNINIT.as_ptr();
10697    assert_eq!(
10698        ::std::mem::size_of::<ASN1_AUX_st>(),
10699        32usize,
10700        "Size of ASN1_AUX_st"
10701    );
10702    assert_eq!(
10703        ::std::mem::align_of::<ASN1_AUX_st>(),
10704        8usize,
10705        "Alignment of ASN1_AUX_st"
10706    );
10707    assert_eq!(
10708        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10709        0usize,
10710        "Offset of field: ASN1_AUX_st::app_data"
10711    );
10712    assert_eq!(
10713        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10714        8usize,
10715        "Offset of field: ASN1_AUX_st::flags"
10716    );
10717    assert_eq!(
10718        unsafe { ::std::ptr::addr_of!((*ptr).ref_offset) as usize - ptr as usize },
10719        12usize,
10720        "Offset of field: ASN1_AUX_st::ref_offset"
10721    );
10722    assert_eq!(
10723        unsafe { ::std::ptr::addr_of!((*ptr).asn1_cb) as usize - ptr as usize },
10724        16usize,
10725        "Offset of field: ASN1_AUX_st::asn1_cb"
10726    );
10727    assert_eq!(
10728        unsafe { ::std::ptr::addr_of!((*ptr).enc_offset) as usize - ptr as usize },
10729        24usize,
10730        "Offset of field: ASN1_AUX_st::enc_offset"
10731    );
10732}
10733impl Default for ASN1_AUX_st {
10734    fn default() -> Self {
10735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10736        unsafe {
10737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10738            s.assume_init()
10739        }
10740    }
10741}
10742pub type ASN1_AUX = ASN1_AUX_st;
10743extern "C" {
10744    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_SEQUENCE_it"]
10745    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
10746}
10747#[repr(C)]
10748#[derive(Debug, Copy, Clone)]
10749pub struct stack_st_ASN1_VALUE {
10750    _unused: [u8; 0],
10751}
10752pub type sk_ASN1_VALUE_free_func =
10753    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
10754pub type sk_ASN1_VALUE_copy_func =
10755    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
10756pub type sk_ASN1_VALUE_cmp_func = ::std::option::Option<
10757    unsafe extern "C" fn(
10758        arg1: *const *const ASN1_VALUE,
10759        arg2: *const *const ASN1_VALUE,
10760    ) -> ::std::os::raw::c_int,
10761>;
10762pub type sk_ASN1_VALUE_delete_if_func = ::std::option::Option<
10763    unsafe extern "C" fn(
10764        arg1: *mut ASN1_VALUE,
10765        arg2: *mut ::std::os::raw::c_void,
10766    ) -> ::std::os::raw::c_int,
10767>;
10768extern "C" {
10769    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncodeBlock"]
10770    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
10771}
10772extern "C" {
10773    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncodedLength"]
10774    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10775}
10776extern "C" {
10777    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodedLength"]
10778    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10779}
10780extern "C" {
10781    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodeBase64"]
10782    pub fn EVP_DecodeBase64(
10783        out: *mut u8,
10784        out_len: *mut usize,
10785        max_out: usize,
10786        in_: *const u8,
10787        in_len: usize,
10788    ) -> ::std::os::raw::c_int;
10789}
10790extern "C" {
10791    #[link_name = "\u{1}aws_lc_0_37_0_EVP_ENCODE_CTX_new"]
10792    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
10793}
10794extern "C" {
10795    #[link_name = "\u{1}aws_lc_0_37_0_EVP_ENCODE_CTX_free"]
10796    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
10797}
10798extern "C" {
10799    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncodeInit"]
10800    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
10801}
10802extern "C" {
10803    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncodeUpdate"]
10804    pub fn EVP_EncodeUpdate(
10805        ctx: *mut EVP_ENCODE_CTX,
10806        out: *mut u8,
10807        out_len: *mut ::std::os::raw::c_int,
10808        in_: *const u8,
10809        in_len: usize,
10810    ) -> ::std::os::raw::c_int;
10811}
10812extern "C" {
10813    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncodeFinal"]
10814    pub fn EVP_EncodeFinal(
10815        ctx: *mut EVP_ENCODE_CTX,
10816        out: *mut u8,
10817        out_len: *mut ::std::os::raw::c_int,
10818    );
10819}
10820extern "C" {
10821    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodeInit"]
10822    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
10823}
10824extern "C" {
10825    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodeUpdate"]
10826    pub fn EVP_DecodeUpdate(
10827        ctx: *mut EVP_ENCODE_CTX,
10828        out: *mut u8,
10829        out_len: *mut ::std::os::raw::c_int,
10830        in_: *const u8,
10831        in_len: usize,
10832    ) -> ::std::os::raw::c_int;
10833}
10834extern "C" {
10835    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodeFinal"]
10836    pub fn EVP_DecodeFinal(
10837        ctx: *mut EVP_ENCODE_CTX,
10838        out: *mut u8,
10839        out_len: *mut ::std::os::raw::c_int,
10840    ) -> ::std::os::raw::c_int;
10841}
10842extern "C" {
10843    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecodeBlock"]
10844    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
10845}
10846#[repr(C)]
10847#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10848pub struct evp_encode_ctx_st {
10849    pub data_used: ::std::os::raw::c_uint,
10850    pub data: [u8; 48usize],
10851    pub eof_seen: ::std::os::raw::c_char,
10852    pub error_encountered: ::std::os::raw::c_char,
10853}
10854#[test]
10855fn bindgen_test_layout_evp_encode_ctx_st() {
10856    const UNINIT: ::std::mem::MaybeUninit<evp_encode_ctx_st> = ::std::mem::MaybeUninit::uninit();
10857    let ptr = UNINIT.as_ptr();
10858    assert_eq!(
10859        ::std::mem::size_of::<evp_encode_ctx_st>(),
10860        56usize,
10861        "Size of evp_encode_ctx_st"
10862    );
10863    assert_eq!(
10864        ::std::mem::align_of::<evp_encode_ctx_st>(),
10865        4usize,
10866        "Alignment of evp_encode_ctx_st"
10867    );
10868    assert_eq!(
10869        unsafe { ::std::ptr::addr_of!((*ptr).data_used) as usize - ptr as usize },
10870        0usize,
10871        "Offset of field: evp_encode_ctx_st::data_used"
10872    );
10873    assert_eq!(
10874        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
10875        4usize,
10876        "Offset of field: evp_encode_ctx_st::data"
10877    );
10878    assert_eq!(
10879        unsafe { ::std::ptr::addr_of!((*ptr).eof_seen) as usize - ptr as usize },
10880        52usize,
10881        "Offset of field: evp_encode_ctx_st::eof_seen"
10882    );
10883    assert_eq!(
10884        unsafe { ::std::ptr::addr_of!((*ptr).error_encountered) as usize - ptr as usize },
10885        53usize,
10886        "Offset of field: evp_encode_ctx_st::error_encountered"
10887    );
10888}
10889impl Default for evp_encode_ctx_st {
10890    fn default() -> Self {
10891        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10892        unsafe {
10893            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10894            s.assume_init()
10895        }
10896    }
10897}
10898#[repr(C)]
10899#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10900pub struct blake2b_state_st {
10901    pub h: [u64; 8usize],
10902    pub t_low: u64,
10903    pub t_high: u64,
10904    pub block: [u8; 128usize],
10905    pub block_used: usize,
10906}
10907#[test]
10908fn bindgen_test_layout_blake2b_state_st() {
10909    const UNINIT: ::std::mem::MaybeUninit<blake2b_state_st> = ::std::mem::MaybeUninit::uninit();
10910    let ptr = UNINIT.as_ptr();
10911    assert_eq!(
10912        ::std::mem::size_of::<blake2b_state_st>(),
10913        216usize,
10914        "Size of blake2b_state_st"
10915    );
10916    assert_eq!(
10917        ::std::mem::align_of::<blake2b_state_st>(),
10918        8usize,
10919        "Alignment of blake2b_state_st"
10920    );
10921    assert_eq!(
10922        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
10923        0usize,
10924        "Offset of field: blake2b_state_st::h"
10925    );
10926    assert_eq!(
10927        unsafe { ::std::ptr::addr_of!((*ptr).t_low) as usize - ptr as usize },
10928        64usize,
10929        "Offset of field: blake2b_state_st::t_low"
10930    );
10931    assert_eq!(
10932        unsafe { ::std::ptr::addr_of!((*ptr).t_high) as usize - ptr as usize },
10933        72usize,
10934        "Offset of field: blake2b_state_st::t_high"
10935    );
10936    assert_eq!(
10937        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
10938        80usize,
10939        "Offset of field: blake2b_state_st::block"
10940    );
10941    assert_eq!(
10942        unsafe { ::std::ptr::addr_of!((*ptr).block_used) as usize - ptr as usize },
10943        208usize,
10944        "Offset of field: blake2b_state_st::block_used"
10945    );
10946}
10947impl Default for blake2b_state_st {
10948    fn default() -> Self {
10949        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10950        unsafe {
10951            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10952            s.assume_init()
10953        }
10954    }
10955}
10956extern "C" {
10957    #[link_name = "\u{1}aws_lc_0_37_0_BLAKE2B256_Init"]
10958    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
10959}
10960extern "C" {
10961    #[link_name = "\u{1}aws_lc_0_37_0_BLAKE2B256_Update"]
10962    pub fn BLAKE2B256_Update(
10963        b2b: *mut BLAKE2B_CTX,
10964        data: *const ::std::os::raw::c_void,
10965        len: usize,
10966    );
10967}
10968extern "C" {
10969    #[link_name = "\u{1}aws_lc_0_37_0_BLAKE2B256_Final"]
10970    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
10971}
10972extern "C" {
10973    #[link_name = "\u{1}aws_lc_0_37_0_BLAKE2B256"]
10974    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
10975}
10976#[repr(C)]
10977#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10978pub struct bf_key_st {
10979    pub P: [u32; 18usize],
10980    pub S: [u32; 1024usize],
10981}
10982#[test]
10983fn bindgen_test_layout_bf_key_st() {
10984    const UNINIT: ::std::mem::MaybeUninit<bf_key_st> = ::std::mem::MaybeUninit::uninit();
10985    let ptr = UNINIT.as_ptr();
10986    assert_eq!(
10987        ::std::mem::size_of::<bf_key_st>(),
10988        4168usize,
10989        "Size of bf_key_st"
10990    );
10991    assert_eq!(
10992        ::std::mem::align_of::<bf_key_st>(),
10993        4usize,
10994        "Alignment of bf_key_st"
10995    );
10996    assert_eq!(
10997        unsafe { ::std::ptr::addr_of!((*ptr).P) as usize - ptr as usize },
10998        0usize,
10999        "Offset of field: bf_key_st::P"
11000    );
11001    assert_eq!(
11002        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
11003        72usize,
11004        "Offset of field: bf_key_st::S"
11005    );
11006}
11007impl Default for bf_key_st {
11008    fn default() -> Self {
11009        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11010        unsafe {
11011            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11012            s.assume_init()
11013        }
11014    }
11015}
11016pub type BF_KEY = bf_key_st;
11017extern "C" {
11018    #[link_name = "\u{1}aws_lc_0_37_0_BF_set_key"]
11019    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
11020}
11021extern "C" {
11022    #[link_name = "\u{1}aws_lc_0_37_0_BF_encrypt"]
11023    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
11024}
11025extern "C" {
11026    #[link_name = "\u{1}aws_lc_0_37_0_BF_decrypt"]
11027    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
11028}
11029extern "C" {
11030    #[link_name = "\u{1}aws_lc_0_37_0_BF_ecb_encrypt"]
11031    pub fn BF_ecb_encrypt(
11032        in_: *const u8,
11033        out: *mut u8,
11034        key: *const BF_KEY,
11035        enc: ::std::os::raw::c_int,
11036    );
11037}
11038extern "C" {
11039    #[link_name = "\u{1}aws_lc_0_37_0_BF_cbc_encrypt"]
11040    pub fn BF_cbc_encrypt(
11041        in_: *const u8,
11042        out: *mut u8,
11043        length: usize,
11044        schedule: *const BF_KEY,
11045        ivec: *mut u8,
11046        enc: ::std::os::raw::c_int,
11047    );
11048}
11049extern "C" {
11050    #[link_name = "\u{1}aws_lc_0_37_0_BF_cfb64_encrypt"]
11051    pub fn BF_cfb64_encrypt(
11052        in_: *const u8,
11053        out: *mut u8,
11054        length: usize,
11055        schedule: *const BF_KEY,
11056        ivec: *mut u8,
11057        num: *mut ::std::os::raw::c_int,
11058        encrypt: ::std::os::raw::c_int,
11059    );
11060}
11061extern "C" {
11062    #[link_name = "\u{1}aws_lc_0_37_0_BF_ofb64_encrypt"]
11063    pub fn BF_ofb64_encrypt(
11064        in_: *const u8,
11065        out: *mut u8,
11066        length: usize,
11067        schedule: *const BF_KEY,
11068        ivec: *mut u8,
11069        num: *mut ::std::os::raw::c_int,
11070    );
11071}
11072#[repr(C)]
11073#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11074pub struct cbs_st {
11075    pub data: *const u8,
11076    pub len: usize,
11077}
11078#[test]
11079fn bindgen_test_layout_cbs_st() {
11080    const UNINIT: ::std::mem::MaybeUninit<cbs_st> = ::std::mem::MaybeUninit::uninit();
11081    let ptr = UNINIT.as_ptr();
11082    assert_eq!(::std::mem::size_of::<cbs_st>(), 16usize, "Size of cbs_st");
11083    assert_eq!(
11084        ::std::mem::align_of::<cbs_st>(),
11085        8usize,
11086        "Alignment of cbs_st"
11087    );
11088    assert_eq!(
11089        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
11090        0usize,
11091        "Offset of field: cbs_st::data"
11092    );
11093    assert_eq!(
11094        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11095        8usize,
11096        "Offset of field: cbs_st::len"
11097    );
11098}
11099impl Default for cbs_st {
11100    fn default() -> Self {
11101        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11102        unsafe {
11103            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11104            s.assume_init()
11105        }
11106    }
11107}
11108extern "C" {
11109    #[link_name = "\u{1}aws_lc_0_37_0_CBS_init"]
11110    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
11111}
11112extern "C" {
11113    #[link_name = "\u{1}aws_lc_0_37_0_CBS_skip"]
11114    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11115}
11116extern "C" {
11117    #[link_name = "\u{1}aws_lc_0_37_0_CBS_data"]
11118    pub fn CBS_data(cbs: *const CBS) -> *const u8;
11119}
11120extern "C" {
11121    #[link_name = "\u{1}aws_lc_0_37_0_CBS_len"]
11122    pub fn CBS_len(cbs: *const CBS) -> usize;
11123}
11124extern "C" {
11125    #[link_name = "\u{1}aws_lc_0_37_0_CBS_stow"]
11126    pub fn CBS_stow(
11127        cbs: *const CBS,
11128        out_ptr: *mut *mut u8,
11129        out_len: *mut usize,
11130    ) -> ::std::os::raw::c_int;
11131}
11132extern "C" {
11133    #[link_name = "\u{1}aws_lc_0_37_0_CBS_strdup"]
11134    pub fn CBS_strdup(
11135        cbs: *const CBS,
11136        out_ptr: *mut *mut ::std::os::raw::c_char,
11137    ) -> ::std::os::raw::c_int;
11138}
11139extern "C" {
11140    #[link_name = "\u{1}aws_lc_0_37_0_CBS_contains_zero_byte"]
11141    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
11142}
11143extern "C" {
11144    #[link_name = "\u{1}aws_lc_0_37_0_CBS_mem_equal"]
11145    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11146}
11147extern "C" {
11148    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u8"]
11149    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11150}
11151extern "C" {
11152    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u16"]
11153    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11154}
11155extern "C" {
11156    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u16le"]
11157    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11158}
11159extern "C" {
11160    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u24"]
11161    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11162}
11163extern "C" {
11164    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u32"]
11165    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11166}
11167extern "C" {
11168    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u32le"]
11169    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11170}
11171extern "C" {
11172    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u64"]
11173    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11174}
11175extern "C" {
11176    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u64le"]
11177    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11178}
11179extern "C" {
11180    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_last_u8"]
11181    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11182}
11183extern "C" {
11184    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_bytes"]
11185    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11186}
11187extern "C" {
11188    #[link_name = "\u{1}aws_lc_0_37_0_CBS_copy_bytes"]
11189    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
11190}
11191extern "C" {
11192    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u8_length_prefixed"]
11193    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11194}
11195extern "C" {
11196    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u16_length_prefixed"]
11197    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11198}
11199extern "C" {
11200    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u24_length_prefixed"]
11201    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11202}
11203extern "C" {
11204    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_until_first"]
11205    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::std::os::raw::c_int;
11206}
11207extern "C" {
11208    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_u64_decimal"]
11209    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11210}
11211extern "C" {
11212    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_asn1"]
11213    pub fn CBS_get_asn1(
11214        cbs: *mut CBS,
11215        out: *mut CBS,
11216        tag_value: CBS_ASN1_TAG,
11217    ) -> ::std::os::raw::c_int;
11218}
11219extern "C" {
11220    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_asn1_element"]
11221    pub fn CBS_get_asn1_element(
11222        cbs: *mut CBS,
11223        out: *mut CBS,
11224        tag_value: CBS_ASN1_TAG,
11225    ) -> ::std::os::raw::c_int;
11226}
11227extern "C" {
11228    #[link_name = "\u{1}aws_lc_0_37_0_CBS_peek_asn1_tag"]
11229    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::std::os::raw::c_int;
11230}
11231extern "C" {
11232    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_any_asn1"]
11233    pub fn CBS_get_any_asn1(
11234        cbs: *mut CBS,
11235        out: *mut CBS,
11236        out_tag: *mut CBS_ASN1_TAG,
11237    ) -> ::std::os::raw::c_int;
11238}
11239extern "C" {
11240    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_any_asn1_element"]
11241    pub fn CBS_get_any_asn1_element(
11242        cbs: *mut CBS,
11243        out: *mut CBS,
11244        out_tag: *mut CBS_ASN1_TAG,
11245        out_header_len: *mut usize,
11246    ) -> ::std::os::raw::c_int;
11247}
11248extern "C" {
11249    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_any_ber_asn1_element"]
11250    pub fn CBS_get_any_ber_asn1_element(
11251        cbs: *mut CBS,
11252        out: *mut CBS,
11253        out_tag: *mut CBS_ASN1_TAG,
11254        out_header_len: *mut usize,
11255        out_ber_found: *mut ::std::os::raw::c_int,
11256        out_indefinite: *mut ::std::os::raw::c_int,
11257    ) -> ::std::os::raw::c_int;
11258}
11259extern "C" {
11260    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_asn1_uint64"]
11261    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11262}
11263extern "C" {
11264    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_asn1_int64"]
11265    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::std::os::raw::c_int;
11266}
11267extern "C" {
11268    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_asn1_bool"]
11269    pub fn CBS_get_asn1_bool(
11270        cbs: *mut CBS,
11271        out: *mut ::std::os::raw::c_int,
11272    ) -> ::std::os::raw::c_int;
11273}
11274extern "C" {
11275    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_optional_asn1"]
11276    pub fn CBS_get_optional_asn1(
11277        cbs: *mut CBS,
11278        out: *mut CBS,
11279        out_present: *mut ::std::os::raw::c_int,
11280        tag: CBS_ASN1_TAG,
11281    ) -> ::std::os::raw::c_int;
11282}
11283extern "C" {
11284    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_optional_asn1_octet_string"]
11285    pub fn CBS_get_optional_asn1_octet_string(
11286        cbs: *mut CBS,
11287        out: *mut CBS,
11288        out_present: *mut ::std::os::raw::c_int,
11289        tag: CBS_ASN1_TAG,
11290    ) -> ::std::os::raw::c_int;
11291}
11292extern "C" {
11293    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_optional_asn1_uint64"]
11294    pub fn CBS_get_optional_asn1_uint64(
11295        cbs: *mut CBS,
11296        out: *mut u64,
11297        tag: CBS_ASN1_TAG,
11298        default_value: u64,
11299    ) -> ::std::os::raw::c_int;
11300}
11301extern "C" {
11302    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_optional_asn1_bool"]
11303    pub fn CBS_get_optional_asn1_bool(
11304        cbs: *mut CBS,
11305        out: *mut ::std::os::raw::c_int,
11306        tag: CBS_ASN1_TAG,
11307        default_value: ::std::os::raw::c_int,
11308    ) -> ::std::os::raw::c_int;
11309}
11310extern "C" {
11311    #[link_name = "\u{1}aws_lc_0_37_0_CBS_is_valid_asn1_bitstring"]
11312    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
11313}
11314extern "C" {
11315    #[link_name = "\u{1}aws_lc_0_37_0_CBS_asn1_bitstring_has_bit"]
11316    pub fn CBS_asn1_bitstring_has_bit(
11317        cbs: *const CBS,
11318        bit: ::std::os::raw::c_uint,
11319    ) -> ::std::os::raw::c_int;
11320}
11321extern "C" {
11322    #[link_name = "\u{1}aws_lc_0_37_0_CBS_is_valid_asn1_integer"]
11323    pub fn CBS_is_valid_asn1_integer(
11324        cbs: *const CBS,
11325        out_is_negative: *mut ::std::os::raw::c_int,
11326    ) -> ::std::os::raw::c_int;
11327}
11328extern "C" {
11329    #[link_name = "\u{1}aws_lc_0_37_0_CBS_is_unsigned_asn1_integer"]
11330    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::std::os::raw::c_int;
11331}
11332extern "C" {
11333    #[link_name = "\u{1}aws_lc_0_37_0_CBS_is_valid_asn1_oid"]
11334    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::std::os::raw::c_int;
11335}
11336extern "C" {
11337    #[link_name = "\u{1}aws_lc_0_37_0_CBS_asn1_oid_to_text"]
11338    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
11339}
11340extern "C" {
11341    #[link_name = "\u{1}aws_lc_0_37_0_CBS_parse_generalized_time"]
11342    pub fn CBS_parse_generalized_time(
11343        cbs: *const CBS,
11344        out_tm: *mut tm,
11345        allow_timezone_offset: ::std::os::raw::c_int,
11346    ) -> ::std::os::raw::c_int;
11347}
11348extern "C" {
11349    #[link_name = "\u{1}aws_lc_0_37_0_CBS_parse_utc_time"]
11350    pub fn CBS_parse_utc_time(
11351        cbs: *const CBS,
11352        out_tm: *mut tm,
11353        allow_timezone_offset: ::std::os::raw::c_int,
11354    ) -> ::std::os::raw::c_int;
11355}
11356extern "C" {
11357    #[link_name = "\u{1}aws_lc_0_37_0_CBS_get_optional_asn1_int64"]
11358    pub fn CBS_get_optional_asn1_int64(
11359        cbs: *mut CBS,
11360        out: *mut i64,
11361        tag: CBS_ASN1_TAG,
11362        default_value: i64,
11363    ) -> ::std::os::raw::c_int;
11364}
11365#[repr(C)]
11366#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11367pub struct cbb_buffer_st {
11368    pub buf: *mut u8,
11369    pub len: usize,
11370    pub cap: usize,
11371    pub _bitfield_align_1: [u8; 0],
11372    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11373    pub __bindgen_padding_0: [u8; 7usize],
11374}
11375#[test]
11376fn bindgen_test_layout_cbb_buffer_st() {
11377    const UNINIT: ::std::mem::MaybeUninit<cbb_buffer_st> = ::std::mem::MaybeUninit::uninit();
11378    let ptr = UNINIT.as_ptr();
11379    assert_eq!(
11380        ::std::mem::size_of::<cbb_buffer_st>(),
11381        32usize,
11382        "Size of cbb_buffer_st"
11383    );
11384    assert_eq!(
11385        ::std::mem::align_of::<cbb_buffer_st>(),
11386        8usize,
11387        "Alignment of cbb_buffer_st"
11388    );
11389    assert_eq!(
11390        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
11391        0usize,
11392        "Offset of field: cbb_buffer_st::buf"
11393    );
11394    assert_eq!(
11395        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11396        8usize,
11397        "Offset of field: cbb_buffer_st::len"
11398    );
11399    assert_eq!(
11400        unsafe { ::std::ptr::addr_of!((*ptr).cap) as usize - ptr as usize },
11401        16usize,
11402        "Offset of field: cbb_buffer_st::cap"
11403    );
11404}
11405impl Default for cbb_buffer_st {
11406    fn default() -> Self {
11407        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11408        unsafe {
11409            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11410            s.assume_init()
11411        }
11412    }
11413}
11414impl cbb_buffer_st {
11415    #[inline]
11416    pub fn can_resize(&self) -> ::std::os::raw::c_uint {
11417        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11418    }
11419    #[inline]
11420    pub fn set_can_resize(&mut self, val: ::std::os::raw::c_uint) {
11421        unsafe {
11422            let val: u32 = ::std::mem::transmute(val);
11423            self._bitfield_1.set(0usize, 1u8, val as u64)
11424        }
11425    }
11426    #[inline]
11427    pub unsafe fn can_resize_raw(this: *const Self) -> ::std::os::raw::c_uint {
11428        unsafe {
11429            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11430                ::std::ptr::addr_of!((*this)._bitfield_1),
11431                0usize,
11432                1u8,
11433            ) as u32)
11434        }
11435    }
11436    #[inline]
11437    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11438        unsafe {
11439            let val: u32 = ::std::mem::transmute(val);
11440            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11441                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11442                0usize,
11443                1u8,
11444                val as u64,
11445            )
11446        }
11447    }
11448    #[inline]
11449    pub fn error(&self) -> ::std::os::raw::c_uint {
11450        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11451    }
11452    #[inline]
11453    pub fn set_error(&mut self, val: ::std::os::raw::c_uint) {
11454        unsafe {
11455            let val: u32 = ::std::mem::transmute(val);
11456            self._bitfield_1.set(1usize, 1u8, val as u64)
11457        }
11458    }
11459    #[inline]
11460    pub unsafe fn error_raw(this: *const Self) -> ::std::os::raw::c_uint {
11461        unsafe {
11462            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11463                ::std::ptr::addr_of!((*this)._bitfield_1),
11464                1usize,
11465                1u8,
11466            ) as u32)
11467        }
11468    }
11469    #[inline]
11470    pub unsafe fn set_error_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11471        unsafe {
11472            let val: u32 = ::std::mem::transmute(val);
11473            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11474                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11475                1usize,
11476                1u8,
11477                val as u64,
11478            )
11479        }
11480    }
11481    #[inline]
11482    pub fn new_bitfield_1(
11483        can_resize: ::std::os::raw::c_uint,
11484        error: ::std::os::raw::c_uint,
11485    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11486        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11487        __bindgen_bitfield_unit.set(0usize, 1u8, {
11488            let can_resize: u32 = unsafe { ::std::mem::transmute(can_resize) };
11489            can_resize as u64
11490        });
11491        __bindgen_bitfield_unit.set(1usize, 1u8, {
11492            let error: u32 = unsafe { ::std::mem::transmute(error) };
11493            error as u64
11494        });
11495        __bindgen_bitfield_unit
11496    }
11497}
11498#[repr(C)]
11499#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11500pub struct cbb_child_st {
11501    pub base: *mut cbb_buffer_st,
11502    pub offset: usize,
11503    pub pending_len_len: u8,
11504    pub _bitfield_align_1: [u8; 0],
11505    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11506    pub __bindgen_padding_0: [u16; 3usize],
11507}
11508#[test]
11509fn bindgen_test_layout_cbb_child_st() {
11510    const UNINIT: ::std::mem::MaybeUninit<cbb_child_st> = ::std::mem::MaybeUninit::uninit();
11511    let ptr = UNINIT.as_ptr();
11512    assert_eq!(
11513        ::std::mem::size_of::<cbb_child_st>(),
11514        24usize,
11515        "Size of cbb_child_st"
11516    );
11517    assert_eq!(
11518        ::std::mem::align_of::<cbb_child_st>(),
11519        8usize,
11520        "Alignment of cbb_child_st"
11521    );
11522    assert_eq!(
11523        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11524        0usize,
11525        "Offset of field: cbb_child_st::base"
11526    );
11527    assert_eq!(
11528        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
11529        8usize,
11530        "Offset of field: cbb_child_st::offset"
11531    );
11532    assert_eq!(
11533        unsafe { ::std::ptr::addr_of!((*ptr).pending_len_len) as usize - ptr as usize },
11534        16usize,
11535        "Offset of field: cbb_child_st::pending_len_len"
11536    );
11537}
11538impl Default for cbb_child_st {
11539    fn default() -> Self {
11540        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11541        unsafe {
11542            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11543            s.assume_init()
11544        }
11545    }
11546}
11547impl cbb_child_st {
11548    #[inline]
11549    pub fn pending_is_asn1(&self) -> ::std::os::raw::c_uint {
11550        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11551    }
11552    #[inline]
11553    pub fn set_pending_is_asn1(&mut self, val: ::std::os::raw::c_uint) {
11554        unsafe {
11555            let val: u32 = ::std::mem::transmute(val);
11556            self._bitfield_1.set(0usize, 1u8, val as u64)
11557        }
11558    }
11559    #[inline]
11560    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::std::os::raw::c_uint {
11561        unsafe {
11562            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11563                ::std::ptr::addr_of!((*this)._bitfield_1),
11564                0usize,
11565                1u8,
11566            ) as u32)
11567        }
11568    }
11569    #[inline]
11570    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11571        unsafe {
11572            let val: u32 = ::std::mem::transmute(val);
11573            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11574                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11575                0usize,
11576                1u8,
11577                val as u64,
11578            )
11579        }
11580    }
11581    #[inline]
11582    pub fn new_bitfield_1(
11583        pending_is_asn1: ::std::os::raw::c_uint,
11584    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11585        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11586        __bindgen_bitfield_unit.set(0usize, 1u8, {
11587            let pending_is_asn1: u32 = unsafe { ::std::mem::transmute(pending_is_asn1) };
11588            pending_is_asn1 as u64
11589        });
11590        __bindgen_bitfield_unit
11591    }
11592}
11593#[repr(C)]
11594#[derive(Copy, Clone)]
11595pub struct cbb_st {
11596    pub child: *mut CBB,
11597    pub is_child: ::std::os::raw::c_char,
11598    pub u: cbb_st__bindgen_ty_1,
11599}
11600#[repr(C)]
11601#[derive(Copy, Clone)]
11602pub union cbb_st__bindgen_ty_1 {
11603    pub base: cbb_buffer_st,
11604    pub child: cbb_child_st,
11605}
11606#[test]
11607fn bindgen_test_layout_cbb_st__bindgen_ty_1() {
11608    const UNINIT: ::std::mem::MaybeUninit<cbb_st__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
11609    let ptr = UNINIT.as_ptr();
11610    assert_eq!(
11611        ::std::mem::size_of::<cbb_st__bindgen_ty_1>(),
11612        32usize,
11613        "Size of cbb_st__bindgen_ty_1"
11614    );
11615    assert_eq!(
11616        ::std::mem::align_of::<cbb_st__bindgen_ty_1>(),
11617        8usize,
11618        "Alignment of cbb_st__bindgen_ty_1"
11619    );
11620    assert_eq!(
11621        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11622        0usize,
11623        "Offset of field: cbb_st__bindgen_ty_1::base"
11624    );
11625    assert_eq!(
11626        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11627        0usize,
11628        "Offset of field: cbb_st__bindgen_ty_1::child"
11629    );
11630}
11631impl Default for cbb_st__bindgen_ty_1 {
11632    fn default() -> Self {
11633        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11634        unsafe {
11635            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11636            s.assume_init()
11637        }
11638    }
11639}
11640#[test]
11641fn bindgen_test_layout_cbb_st() {
11642    const UNINIT: ::std::mem::MaybeUninit<cbb_st> = ::std::mem::MaybeUninit::uninit();
11643    let ptr = UNINIT.as_ptr();
11644    assert_eq!(::std::mem::size_of::<cbb_st>(), 48usize, "Size of cbb_st");
11645    assert_eq!(
11646        ::std::mem::align_of::<cbb_st>(),
11647        8usize,
11648        "Alignment of cbb_st"
11649    );
11650    assert_eq!(
11651        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11652        0usize,
11653        "Offset of field: cbb_st::child"
11654    );
11655    assert_eq!(
11656        unsafe { ::std::ptr::addr_of!((*ptr).is_child) as usize - ptr as usize },
11657        8usize,
11658        "Offset of field: cbb_st::is_child"
11659    );
11660    assert_eq!(
11661        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
11662        16usize,
11663        "Offset of field: cbb_st::u"
11664    );
11665}
11666impl Default for cbb_st {
11667    fn default() -> Self {
11668        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11669        unsafe {
11670            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11671            s.assume_init()
11672        }
11673    }
11674}
11675extern "C" {
11676    #[link_name = "\u{1}aws_lc_0_37_0_CBB_zero"]
11677    pub fn CBB_zero(cbb: *mut CBB);
11678}
11679extern "C" {
11680    #[link_name = "\u{1}aws_lc_0_37_0_CBB_init"]
11681    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
11682}
11683extern "C" {
11684    #[link_name = "\u{1}aws_lc_0_37_0_CBB_init_fixed"]
11685    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
11686}
11687extern "C" {
11688    #[link_name = "\u{1}aws_lc_0_37_0_CBB_cleanup"]
11689    pub fn CBB_cleanup(cbb: *mut CBB);
11690}
11691extern "C" {
11692    #[link_name = "\u{1}aws_lc_0_37_0_CBB_finish"]
11693    pub fn CBB_finish(
11694        cbb: *mut CBB,
11695        out_data: *mut *mut u8,
11696        out_len: *mut usize,
11697    ) -> ::std::os::raw::c_int;
11698}
11699extern "C" {
11700    #[link_name = "\u{1}aws_lc_0_37_0_CBB_flush"]
11701    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
11702}
11703extern "C" {
11704    #[link_name = "\u{1}aws_lc_0_37_0_CBB_data"]
11705    pub fn CBB_data(cbb: *const CBB) -> *const u8;
11706}
11707extern "C" {
11708    #[link_name = "\u{1}aws_lc_0_37_0_CBB_len"]
11709    pub fn CBB_len(cbb: *const CBB) -> usize;
11710}
11711extern "C" {
11712    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u8_length_prefixed"]
11713    pub fn CBB_add_u8_length_prefixed(
11714        cbb: *mut CBB,
11715        out_contents: *mut CBB,
11716    ) -> ::std::os::raw::c_int;
11717}
11718extern "C" {
11719    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u16_length_prefixed"]
11720    pub fn CBB_add_u16_length_prefixed(
11721        cbb: *mut CBB,
11722        out_contents: *mut CBB,
11723    ) -> ::std::os::raw::c_int;
11724}
11725extern "C" {
11726    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u24_length_prefixed"]
11727    pub fn CBB_add_u24_length_prefixed(
11728        cbb: *mut CBB,
11729        out_contents: *mut CBB,
11730    ) -> ::std::os::raw::c_int;
11731}
11732extern "C" {
11733    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1"]
11734    pub fn CBB_add_asn1(
11735        cbb: *mut CBB,
11736        out_contents: *mut CBB,
11737        tag: CBS_ASN1_TAG,
11738    ) -> ::std::os::raw::c_int;
11739}
11740extern "C" {
11741    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_bytes"]
11742    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11743}
11744extern "C" {
11745    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_zeros"]
11746    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11747}
11748extern "C" {
11749    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_space"]
11750    pub fn CBB_add_space(
11751        cbb: *mut CBB,
11752        out_data: *mut *mut u8,
11753        len: usize,
11754    ) -> ::std::os::raw::c_int;
11755}
11756extern "C" {
11757    #[link_name = "\u{1}aws_lc_0_37_0_CBB_reserve"]
11758    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
11759}
11760extern "C" {
11761    #[link_name = "\u{1}aws_lc_0_37_0_CBB_did_write"]
11762    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11763}
11764extern "C" {
11765    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u8"]
11766    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
11767}
11768extern "C" {
11769    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u16"]
11770    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11771}
11772extern "C" {
11773    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u16le"]
11774    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11775}
11776extern "C" {
11777    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u24"]
11778    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11779}
11780extern "C" {
11781    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u32"]
11782    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11783}
11784extern "C" {
11785    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u32le"]
11786    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11787}
11788extern "C" {
11789    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u64"]
11790    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11791}
11792extern "C" {
11793    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_u64le"]
11794    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11795}
11796extern "C" {
11797    #[link_name = "\u{1}aws_lc_0_37_0_CBB_discard_child"]
11798    pub fn CBB_discard_child(cbb: *mut CBB);
11799}
11800extern "C" {
11801    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_uint64"]
11802    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11803}
11804extern "C" {
11805    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_uint64_with_tag"]
11806    pub fn CBB_add_asn1_uint64_with_tag(
11807        cbb: *mut CBB,
11808        value: u64,
11809        tag: CBS_ASN1_TAG,
11810    ) -> ::std::os::raw::c_int;
11811}
11812extern "C" {
11813    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_int64"]
11814    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::std::os::raw::c_int;
11815}
11816extern "C" {
11817    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_int64_with_tag"]
11818    pub fn CBB_add_asn1_int64_with_tag(
11819        cbb: *mut CBB,
11820        value: i64,
11821        tag: CBS_ASN1_TAG,
11822    ) -> ::std::os::raw::c_int;
11823}
11824extern "C" {
11825    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_octet_string"]
11826    pub fn CBB_add_asn1_octet_string(
11827        cbb: *mut CBB,
11828        data: *const u8,
11829        data_len: usize,
11830    ) -> ::std::os::raw::c_int;
11831}
11832extern "C" {
11833    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_bool"]
11834    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
11835}
11836extern "C" {
11837    #[link_name = "\u{1}aws_lc_0_37_0_CBB_add_asn1_oid_from_text"]
11838    pub fn CBB_add_asn1_oid_from_text(
11839        cbb: *mut CBB,
11840        text: *const ::std::os::raw::c_char,
11841        len: usize,
11842    ) -> ::std::os::raw::c_int;
11843}
11844extern "C" {
11845    #[link_name = "\u{1}aws_lc_0_37_0_CBB_flush_asn1_set_of"]
11846    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
11847}
11848extern "C" {
11849    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11850}
11851extern "C" {
11852    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11853}
11854extern "C" {
11855    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11856}
11857extern "C" {
11858    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11859}
11860extern "C" {
11861    pub fn CBB_get_utf8_len(u: u32) -> usize;
11862}
11863extern "C" {
11864    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11865}
11866extern "C" {
11867    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11868}
11869extern "C" {
11870    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11871}
11872extern "C" {
11873    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11874}
11875extern "C" {
11876    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_chacha_20"]
11877    pub fn CRYPTO_chacha_20(
11878        out: *mut u8,
11879        in_: *const u8,
11880        in_len: usize,
11881        key: *const u8,
11882        nonce: *const u8,
11883        counter: u32,
11884    );
11885}
11886extern "C" {
11887    #[link_name = "\u{1}aws_lc_0_37_0_EVP_rc4"]
11888    pub fn EVP_rc4() -> *const EVP_CIPHER;
11889}
11890extern "C" {
11891    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_cbc"]
11892    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
11893}
11894extern "C" {
11895    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ecb"]
11896    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
11897}
11898extern "C" {
11899    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ede"]
11900    pub fn EVP_des_ede() -> *const EVP_CIPHER;
11901}
11902extern "C" {
11903    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ede3"]
11904    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
11905}
11906extern "C" {
11907    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ede_cbc"]
11908    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
11909}
11910extern "C" {
11911    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ede3_cbc"]
11912    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
11913}
11914extern "C" {
11915    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_ecb"]
11916    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
11917}
11918extern "C" {
11919    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cbc"]
11920    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
11921}
11922extern "C" {
11923    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_ctr"]
11924    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
11925}
11926extern "C" {
11927    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_ofb"]
11928    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
11929}
11930extern "C" {
11931    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_ecb"]
11932    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
11933}
11934extern "C" {
11935    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cbc"]
11936    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
11937}
11938extern "C" {
11939    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_ctr"]
11940    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
11941}
11942extern "C" {
11943    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_ofb"]
11944    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
11945}
11946extern "C" {
11947    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_xts"]
11948    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
11949}
11950extern "C" {
11951    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_wrap"]
11952    pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER;
11953}
11954extern "C" {
11955    #[link_name = "\u{1}aws_lc_0_37_0_EVP_enc_null"]
11956    pub fn EVP_enc_null() -> *const EVP_CIPHER;
11957}
11958extern "C" {
11959    #[link_name = "\u{1}aws_lc_0_37_0_EVP_rc2_cbc"]
11960    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
11961}
11962extern "C" {
11963    #[link_name = "\u{1}aws_lc_0_37_0_EVP_rc2_40_cbc"]
11964    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
11965}
11966extern "C" {
11967    #[link_name = "\u{1}aws_lc_0_37_0_EVP_chacha20_poly1305"]
11968    pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER;
11969}
11970extern "C" {
11971    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_cipherbynid"]
11972    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
11973}
11974extern "C" {
11975    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_init"]
11976    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
11977}
11978extern "C" {
11979    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_new"]
11980    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
11981}
11982extern "C" {
11983    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_cleanup"]
11984    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
11985}
11986extern "C" {
11987    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_free"]
11988    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
11989}
11990extern "C" {
11991    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_copy"]
11992    pub fn EVP_CIPHER_CTX_copy(
11993        out: *mut EVP_CIPHER_CTX,
11994        in_: *const EVP_CIPHER_CTX,
11995    ) -> ::std::os::raw::c_int;
11996}
11997extern "C" {
11998    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_reset"]
11999    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12000}
12001extern "C" {
12002    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CipherInit_ex"]
12003    pub fn EVP_CipherInit_ex(
12004        ctx: *mut EVP_CIPHER_CTX,
12005        cipher: *const EVP_CIPHER,
12006        engine: *mut ENGINE,
12007        key: *const u8,
12008        iv: *const u8,
12009        enc: ::std::os::raw::c_int,
12010    ) -> ::std::os::raw::c_int;
12011}
12012extern "C" {
12013    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncryptInit_ex"]
12014    pub fn EVP_EncryptInit_ex(
12015        ctx: *mut EVP_CIPHER_CTX,
12016        cipher: *const EVP_CIPHER,
12017        impl_: *mut ENGINE,
12018        key: *const u8,
12019        iv: *const u8,
12020    ) -> ::std::os::raw::c_int;
12021}
12022extern "C" {
12023    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecryptInit_ex"]
12024    pub fn EVP_DecryptInit_ex(
12025        ctx: *mut EVP_CIPHER_CTX,
12026        cipher: *const EVP_CIPHER,
12027        impl_: *mut ENGINE,
12028        key: *const u8,
12029        iv: *const u8,
12030    ) -> ::std::os::raw::c_int;
12031}
12032extern "C" {
12033    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncryptUpdate"]
12034    pub fn EVP_EncryptUpdate(
12035        ctx: *mut EVP_CIPHER_CTX,
12036        out: *mut u8,
12037        out_len: *mut ::std::os::raw::c_int,
12038        in_: *const u8,
12039        in_len: ::std::os::raw::c_int,
12040    ) -> ::std::os::raw::c_int;
12041}
12042extern "C" {
12043    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncryptFinal_ex"]
12044    pub fn EVP_EncryptFinal_ex(
12045        ctx: *mut EVP_CIPHER_CTX,
12046        out: *mut u8,
12047        out_len: *mut ::std::os::raw::c_int,
12048    ) -> ::std::os::raw::c_int;
12049}
12050extern "C" {
12051    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecryptUpdate"]
12052    pub fn EVP_DecryptUpdate(
12053        ctx: *mut EVP_CIPHER_CTX,
12054        out: *mut u8,
12055        out_len: *mut ::std::os::raw::c_int,
12056        in_: *const u8,
12057        in_len: ::std::os::raw::c_int,
12058    ) -> ::std::os::raw::c_int;
12059}
12060extern "C" {
12061    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecryptFinal_ex"]
12062    pub fn EVP_DecryptFinal_ex(
12063        ctx: *mut EVP_CIPHER_CTX,
12064        out: *mut u8,
12065        out_len: *mut ::std::os::raw::c_int,
12066    ) -> ::std::os::raw::c_int;
12067}
12068extern "C" {
12069    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CipherUpdate"]
12070    pub fn EVP_CipherUpdate(
12071        ctx: *mut EVP_CIPHER_CTX,
12072        out: *mut u8,
12073        out_len: *mut ::std::os::raw::c_int,
12074        in_: *const u8,
12075        in_len: ::std::os::raw::c_int,
12076    ) -> ::std::os::raw::c_int;
12077}
12078extern "C" {
12079    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CipherFinal_ex"]
12080    pub fn EVP_CipherFinal_ex(
12081        ctx: *mut EVP_CIPHER_CTX,
12082        out: *mut u8,
12083        out_len: *mut ::std::os::raw::c_int,
12084    ) -> ::std::os::raw::c_int;
12085}
12086extern "C" {
12087    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_cipher"]
12088    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
12089}
12090extern "C" {
12091    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_nid"]
12092    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12093}
12094extern "C" {
12095    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_encrypting"]
12096    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12097}
12098extern "C" {
12099    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_block_size"]
12100    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12101}
12102extern "C" {
12103    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_key_length"]
12104    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12105}
12106extern "C" {
12107    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_iv_length"]
12108    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12109}
12110extern "C" {
12111    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_get_app_data"]
12112    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
12113}
12114extern "C" {
12115    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_set_app_data"]
12116    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
12117}
12118extern "C" {
12119    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_flags"]
12120    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
12121}
12122extern "C" {
12123    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_mode"]
12124    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
12125}
12126extern "C" {
12127    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_ctrl"]
12128    pub fn EVP_CIPHER_CTX_ctrl(
12129        ctx: *mut EVP_CIPHER_CTX,
12130        command: ::std::os::raw::c_int,
12131        arg: ::std::os::raw::c_int,
12132        ptr: *mut ::std::os::raw::c_void,
12133    ) -> ::std::os::raw::c_int;
12134}
12135extern "C" {
12136    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_set_padding"]
12137    pub fn EVP_CIPHER_CTX_set_padding(
12138        ctx: *mut EVP_CIPHER_CTX,
12139        pad: ::std::os::raw::c_int,
12140    ) -> ::std::os::raw::c_int;
12141}
12142extern "C" {
12143    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_set_key_length"]
12144    pub fn EVP_CIPHER_CTX_set_key_length(
12145        ctx: *mut EVP_CIPHER_CTX,
12146        key_len: ::std::os::raw::c_uint,
12147    ) -> ::std::os::raw::c_int;
12148}
12149extern "C" {
12150    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_nid"]
12151    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
12152}
12153extern "C" {
12154    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_name"]
12155    pub fn EVP_CIPHER_name(cipher: *const EVP_CIPHER) -> *const ::std::os::raw::c_char;
12156}
12157extern "C" {
12158    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_block_size"]
12159    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12160}
12161extern "C" {
12162    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_key_length"]
12163    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12164}
12165extern "C" {
12166    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_iv_length"]
12167    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12168}
12169extern "C" {
12170    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_flags"]
12171    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
12172}
12173extern "C" {
12174    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_mode"]
12175    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
12176}
12177extern "C" {
12178    #[link_name = "\u{1}aws_lc_0_37_0_EVP_BytesToKey"]
12179    pub fn EVP_BytesToKey(
12180        type_: *const EVP_CIPHER,
12181        md: *const EVP_MD,
12182        salt: *const u8,
12183        data: *const u8,
12184        data_len: usize,
12185        count: ::std::os::raw::c_uint,
12186        key: *mut u8,
12187        iv: *mut u8,
12188    ) -> ::std::os::raw::c_int;
12189}
12190extern "C" {
12191    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cbc_hmac_sha1"]
12192    pub fn EVP_aes_128_cbc_hmac_sha1() -> *const EVP_CIPHER;
12193}
12194extern "C" {
12195    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cbc_hmac_sha1"]
12196    pub fn EVP_aes_256_cbc_hmac_sha1() -> *const EVP_CIPHER;
12197}
12198extern "C" {
12199    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cbc_hmac_sha256"]
12200    pub fn EVP_aes_128_cbc_hmac_sha256() -> *const EVP_CIPHER;
12201}
12202extern "C" {
12203    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cbc_hmac_sha256"]
12204    pub fn EVP_aes_256_cbc_hmac_sha256() -> *const EVP_CIPHER;
12205}
12206extern "C" {
12207    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CipherInit"]
12208    pub fn EVP_CipherInit(
12209        ctx: *mut EVP_CIPHER_CTX,
12210        cipher: *const EVP_CIPHER,
12211        key: *const u8,
12212        iv: *const u8,
12213        enc: ::std::os::raw::c_int,
12214    ) -> ::std::os::raw::c_int;
12215}
12216extern "C" {
12217    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncryptInit"]
12218    pub fn EVP_EncryptInit(
12219        ctx: *mut EVP_CIPHER_CTX,
12220        cipher: *const EVP_CIPHER,
12221        key: *const u8,
12222        iv: *const u8,
12223    ) -> ::std::os::raw::c_int;
12224}
12225extern "C" {
12226    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecryptInit"]
12227    pub fn EVP_DecryptInit(
12228        ctx: *mut EVP_CIPHER_CTX,
12229        cipher: *const EVP_CIPHER,
12230        key: *const u8,
12231        iv: *const u8,
12232    ) -> ::std::os::raw::c_int;
12233}
12234extern "C" {
12235    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CipherFinal"]
12236    pub fn EVP_CipherFinal(
12237        ctx: *mut EVP_CIPHER_CTX,
12238        out: *mut u8,
12239        out_len: *mut ::std::os::raw::c_int,
12240    ) -> ::std::os::raw::c_int;
12241}
12242extern "C" {
12243    #[link_name = "\u{1}aws_lc_0_37_0_EVP_EncryptFinal"]
12244    pub fn EVP_EncryptFinal(
12245        ctx: *mut EVP_CIPHER_CTX,
12246        out: *mut u8,
12247        out_len: *mut ::std::os::raw::c_int,
12248    ) -> ::std::os::raw::c_int;
12249}
12250extern "C" {
12251    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DecryptFinal"]
12252    pub fn EVP_DecryptFinal(
12253        ctx: *mut EVP_CIPHER_CTX,
12254        out: *mut u8,
12255        out_len: *mut ::std::os::raw::c_int,
12256    ) -> ::std::os::raw::c_int;
12257}
12258extern "C" {
12259    #[link_name = "\u{1}aws_lc_0_37_0_EVP_Cipher"]
12260    pub fn EVP_Cipher(
12261        ctx: *mut EVP_CIPHER_CTX,
12262        out: *mut u8,
12263        in_: *const u8,
12264        in_len: usize,
12265    ) -> ::std::os::raw::c_int;
12266}
12267extern "C" {
12268    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_cipherbyname"]
12269    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
12270}
12271extern "C" {
12272    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_gcm"]
12273    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
12274}
12275extern "C" {
12276    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_gcm"]
12277    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
12278}
12279extern "C" {
12280    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_ccm"]
12281    pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER;
12282}
12283extern "C" {
12284    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_ccm"]
12285    pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER;
12286}
12287extern "C" {
12288    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_ccm"]
12289    pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER;
12290}
12291extern "C" {
12292    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_ecb"]
12293    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
12294}
12295extern "C" {
12296    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_cbc"]
12297    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
12298}
12299extern "C" {
12300    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_ctr"]
12301    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
12302}
12303extern "C" {
12304    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_gcm"]
12305    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
12306}
12307extern "C" {
12308    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_ofb"]
12309    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
12310}
12311extern "C" {
12312    #[link_name = "\u{1}aws_lc_0_37_0_EVP_des_ede3_ecb"]
12313    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
12314}
12315extern "C" {
12316    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cfb128"]
12317    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
12318}
12319extern "C" {
12320    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cfb"]
12321    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
12322}
12323extern "C" {
12324    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cfb1"]
12325    pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
12326}
12327extern "C" {
12328    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_128_cfb8"]
12329    pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
12330}
12331extern "C" {
12332    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_cfb128"]
12333    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
12334}
12335extern "C" {
12336    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_cfb"]
12337    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
12338}
12339extern "C" {
12340    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_cfb1"]
12341    pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER;
12342}
12343extern "C" {
12344    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_192_cfb8"]
12345    pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER;
12346}
12347extern "C" {
12348    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cfb128"]
12349    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
12350}
12351extern "C" {
12352    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cfb"]
12353    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
12354}
12355extern "C" {
12356    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cfb1"]
12357    pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
12358}
12359extern "C" {
12360    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aes_256_cfb8"]
12361    pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
12362}
12363extern "C" {
12364    #[link_name = "\u{1}aws_lc_0_37_0_EVP_bf_ecb"]
12365    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
12366}
12367extern "C" {
12368    #[link_name = "\u{1}aws_lc_0_37_0_EVP_bf_cbc"]
12369    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
12370}
12371extern "C" {
12372    #[link_name = "\u{1}aws_lc_0_37_0_EVP_bf_cfb"]
12373    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
12374}
12375extern "C" {
12376    #[link_name = "\u{1}aws_lc_0_37_0_EVP_bf_cfb64"]
12377    pub fn EVP_bf_cfb64() -> *const EVP_CIPHER;
12378}
12379extern "C" {
12380    #[link_name = "\u{1}aws_lc_0_37_0_EVP_bf_ofb"]
12381    pub fn EVP_bf_ofb() -> *const EVP_CIPHER;
12382}
12383extern "C" {
12384    #[link_name = "\u{1}aws_lc_0_37_0_EVP_cast5_ecb"]
12385    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
12386}
12387extern "C" {
12388    #[link_name = "\u{1}aws_lc_0_37_0_EVP_cast5_cbc"]
12389    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
12390}
12391extern "C" {
12392    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_CTX_set_flags"]
12393    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
12394}
12395extern "C" {
12396    #[link_name = "\u{1}aws_lc_0_37_0_EVP_add_cipher_alias"]
12397    pub fn EVP_add_cipher_alias(
12398        a: *const ::std::os::raw::c_char,
12399        b: *const ::std::os::raw::c_char,
12400    ) -> ::std::os::raw::c_int;
12401}
12402#[repr(C)]
12403#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12404pub struct evp_cipher_ctx_st {
12405    pub cipher: *const EVP_CIPHER,
12406    pub app_data: *mut ::std::os::raw::c_void,
12407    pub cipher_data: *mut ::std::os::raw::c_void,
12408    pub key_len: ::std::os::raw::c_uint,
12409    pub encrypt: ::std::os::raw::c_int,
12410    pub flags: u32,
12411    pub oiv: [u8; 16usize],
12412    pub iv: [u8; 16usize],
12413    pub buf: [u8; 32usize],
12414    pub buf_len: ::std::os::raw::c_int,
12415    pub num: ::std::os::raw::c_uint,
12416    pub final_used: ::std::os::raw::c_int,
12417    pub final_: [u8; 32usize],
12418    pub poisoned: ::std::os::raw::c_int,
12419}
12420#[test]
12421fn bindgen_test_layout_evp_cipher_ctx_st() {
12422    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_ctx_st> = ::std::mem::MaybeUninit::uninit();
12423    let ptr = UNINIT.as_ptr();
12424    assert_eq!(
12425        ::std::mem::size_of::<evp_cipher_ctx_st>(),
12426        152usize,
12427        "Size of evp_cipher_ctx_st"
12428    );
12429    assert_eq!(
12430        ::std::mem::align_of::<evp_cipher_ctx_st>(),
12431        8usize,
12432        "Alignment of evp_cipher_ctx_st"
12433    );
12434    assert_eq!(
12435        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12436        0usize,
12437        "Offset of field: evp_cipher_ctx_st::cipher"
12438    );
12439    assert_eq!(
12440        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
12441        8usize,
12442        "Offset of field: evp_cipher_ctx_st::app_data"
12443    );
12444    assert_eq!(
12445        unsafe { ::std::ptr::addr_of!((*ptr).cipher_data) as usize - ptr as usize },
12446        16usize,
12447        "Offset of field: evp_cipher_ctx_st::cipher_data"
12448    );
12449    assert_eq!(
12450        unsafe { ::std::ptr::addr_of!((*ptr).key_len) as usize - ptr as usize },
12451        24usize,
12452        "Offset of field: evp_cipher_ctx_st::key_len"
12453    );
12454    assert_eq!(
12455        unsafe { ::std::ptr::addr_of!((*ptr).encrypt) as usize - ptr as usize },
12456        28usize,
12457        "Offset of field: evp_cipher_ctx_st::encrypt"
12458    );
12459    assert_eq!(
12460        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
12461        32usize,
12462        "Offset of field: evp_cipher_ctx_st::flags"
12463    );
12464    assert_eq!(
12465        unsafe { ::std::ptr::addr_of!((*ptr).oiv) as usize - ptr as usize },
12466        36usize,
12467        "Offset of field: evp_cipher_ctx_st::oiv"
12468    );
12469    assert_eq!(
12470        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12471        52usize,
12472        "Offset of field: evp_cipher_ctx_st::iv"
12473    );
12474    assert_eq!(
12475        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
12476        68usize,
12477        "Offset of field: evp_cipher_ctx_st::buf"
12478    );
12479    assert_eq!(
12480        unsafe { ::std::ptr::addr_of!((*ptr).buf_len) as usize - ptr as usize },
12481        100usize,
12482        "Offset of field: evp_cipher_ctx_st::buf_len"
12483    );
12484    assert_eq!(
12485        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
12486        104usize,
12487        "Offset of field: evp_cipher_ctx_st::num"
12488    );
12489    assert_eq!(
12490        unsafe { ::std::ptr::addr_of!((*ptr).final_used) as usize - ptr as usize },
12491        108usize,
12492        "Offset of field: evp_cipher_ctx_st::final_used"
12493    );
12494    assert_eq!(
12495        unsafe { ::std::ptr::addr_of!((*ptr).final_) as usize - ptr as usize },
12496        112usize,
12497        "Offset of field: evp_cipher_ctx_st::final_"
12498    );
12499    assert_eq!(
12500        unsafe { ::std::ptr::addr_of!((*ptr).poisoned) as usize - ptr as usize },
12501        144usize,
12502        "Offset of field: evp_cipher_ctx_st::poisoned"
12503    );
12504}
12505impl Default for evp_cipher_ctx_st {
12506    fn default() -> Self {
12507        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12508        unsafe {
12509            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12510            s.assume_init()
12511        }
12512    }
12513}
12514#[repr(C)]
12515#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12516pub struct evp_cipher_info_st {
12517    pub cipher: *const EVP_CIPHER,
12518    pub iv: [::std::os::raw::c_uchar; 16usize],
12519}
12520#[test]
12521fn bindgen_test_layout_evp_cipher_info_st() {
12522    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_info_st> = ::std::mem::MaybeUninit::uninit();
12523    let ptr = UNINIT.as_ptr();
12524    assert_eq!(
12525        ::std::mem::size_of::<evp_cipher_info_st>(),
12526        24usize,
12527        "Size of evp_cipher_info_st"
12528    );
12529    assert_eq!(
12530        ::std::mem::align_of::<evp_cipher_info_st>(),
12531        8usize,
12532        "Alignment of evp_cipher_info_st"
12533    );
12534    assert_eq!(
12535        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12536        0usize,
12537        "Offset of field: evp_cipher_info_st::cipher"
12538    );
12539    assert_eq!(
12540        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12541        8usize,
12542        "Offset of field: evp_cipher_info_st::iv"
12543    );
12544}
12545impl Default for evp_cipher_info_st {
12546    fn default() -> Self {
12547        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12548        unsafe {
12549            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12550            s.assume_init()
12551        }
12552    }
12553}
12554pub type EVP_CIPHER_INFO = evp_cipher_info_st;
12555extern "C" {
12556    #[link_name = "\u{1}aws_lc_0_37_0_AES_CMAC"]
12557    pub fn AES_CMAC(
12558        out: *mut u8,
12559        key: *const u8,
12560        key_len: usize,
12561        in_: *const u8,
12562        in_len: usize,
12563    ) -> ::std::os::raw::c_int;
12564}
12565extern "C" {
12566    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_CTX_new"]
12567    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
12568}
12569extern "C" {
12570    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_CTX_free"]
12571    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
12572}
12573extern "C" {
12574    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_CTX_copy"]
12575    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::std::os::raw::c_int;
12576}
12577extern "C" {
12578    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_Init"]
12579    pub fn CMAC_Init(
12580        ctx: *mut CMAC_CTX,
12581        key: *const ::std::os::raw::c_void,
12582        key_len: usize,
12583        cipher: *const EVP_CIPHER,
12584        engine: *mut ENGINE,
12585    ) -> ::std::os::raw::c_int;
12586}
12587extern "C" {
12588    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_Reset"]
12589    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::std::os::raw::c_int;
12590}
12591extern "C" {
12592    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_Update"]
12593    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::std::os::raw::c_int;
12594}
12595extern "C" {
12596    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_Final"]
12597    pub fn CMAC_Final(
12598        ctx: *mut CMAC_CTX,
12599        out: *mut u8,
12600        out_len: *mut usize,
12601    ) -> ::std::os::raw::c_int;
12602}
12603extern "C" {
12604    #[link_name = "\u{1}aws_lc_0_37_0_CMAC_CTX_get0_cipher_ctx"]
12605    pub fn CMAC_CTX_get0_cipher_ctx(ctx: *mut CMAC_CTX) -> *mut EVP_CIPHER_CTX;
12606}
12607#[repr(C)]
12608#[derive(Debug, Copy, Clone)]
12609pub struct lhash_st {
12610    _unused: [u8; 0],
12611}
12612pub type _LHASH = lhash_st;
12613extern "C" {
12614    #[link_name = "\u{1}aws_lc_0_37_0_lh_doall_arg"]
12615    pub fn lh_doall_arg(
12616        lh: *mut _LHASH,
12617        func: ::std::option::Option<
12618            unsafe extern "C" fn(
12619                arg1: *mut ::std::os::raw::c_void,
12620                arg2: *mut ::std::os::raw::c_void,
12621            ),
12622        >,
12623        arg: *mut ::std::os::raw::c_void,
12624    );
12625}
12626#[repr(C)]
12627#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12628pub struct conf_value_st {
12629    pub section: *mut ::std::os::raw::c_char,
12630    pub name: *mut ::std::os::raw::c_char,
12631    pub value: *mut ::std::os::raw::c_char,
12632}
12633#[test]
12634fn bindgen_test_layout_conf_value_st() {
12635    const UNINIT: ::std::mem::MaybeUninit<conf_value_st> = ::std::mem::MaybeUninit::uninit();
12636    let ptr = UNINIT.as_ptr();
12637    assert_eq!(
12638        ::std::mem::size_of::<conf_value_st>(),
12639        24usize,
12640        "Size of conf_value_st"
12641    );
12642    assert_eq!(
12643        ::std::mem::align_of::<conf_value_st>(),
12644        8usize,
12645        "Alignment of conf_value_st"
12646    );
12647    assert_eq!(
12648        unsafe { ::std::ptr::addr_of!((*ptr).section) as usize - ptr as usize },
12649        0usize,
12650        "Offset of field: conf_value_st::section"
12651    );
12652    assert_eq!(
12653        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
12654        8usize,
12655        "Offset of field: conf_value_st::name"
12656    );
12657    assert_eq!(
12658        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
12659        16usize,
12660        "Offset of field: conf_value_st::value"
12661    );
12662}
12663impl Default for conf_value_st {
12664    fn default() -> Self {
12665        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12666        unsafe {
12667            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12668            s.assume_init()
12669        }
12670    }
12671}
12672#[repr(C)]
12673#[derive(Debug, Copy, Clone)]
12674pub struct stack_st_CONF_VALUE {
12675    _unused: [u8; 0],
12676}
12677pub type sk_CONF_VALUE_free_func =
12678    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
12679pub type sk_CONF_VALUE_copy_func =
12680    ::std::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
12681pub type sk_CONF_VALUE_cmp_func = ::std::option::Option<
12682    unsafe extern "C" fn(
12683        arg1: *const *const CONF_VALUE,
12684        arg2: *const *const CONF_VALUE,
12685    ) -> ::std::os::raw::c_int,
12686>;
12687pub type sk_CONF_VALUE_delete_if_func = ::std::option::Option<
12688    unsafe extern "C" fn(
12689        arg1: *mut CONF_VALUE,
12690        arg2: *mut ::std::os::raw::c_void,
12691    ) -> ::std::os::raw::c_int,
12692>;
12693#[repr(C)]
12694#[derive(Debug, Copy, Clone)]
12695pub struct lhash_st_CONF_VALUE {
12696    _unused: [u8; 0],
12697}
12698#[repr(C)]
12699#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12700pub struct conf_st {
12701    pub data: *mut lhash_st_CONF_VALUE,
12702}
12703#[test]
12704fn bindgen_test_layout_conf_st() {
12705    const UNINIT: ::std::mem::MaybeUninit<conf_st> = ::std::mem::MaybeUninit::uninit();
12706    let ptr = UNINIT.as_ptr();
12707    assert_eq!(::std::mem::size_of::<conf_st>(), 8usize, "Size of conf_st");
12708    assert_eq!(
12709        ::std::mem::align_of::<conf_st>(),
12710        8usize,
12711        "Alignment of conf_st"
12712    );
12713    assert_eq!(
12714        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
12715        0usize,
12716        "Offset of field: conf_st::data"
12717    );
12718}
12719impl Default for conf_st {
12720    fn default() -> Self {
12721        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12722        unsafe {
12723            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12724            s.assume_init()
12725        }
12726    }
12727}
12728extern "C" {
12729    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_new"]
12730    pub fn NCONF_new(method: *mut ::std::os::raw::c_void) -> *mut CONF;
12731}
12732extern "C" {
12733    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_free"]
12734    pub fn NCONF_free(conf: *mut CONF);
12735}
12736extern "C" {
12737    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_load"]
12738    pub fn NCONF_load(
12739        conf: *mut CONF,
12740        filename: *const ::std::os::raw::c_char,
12741        out_error_line: *mut ::std::os::raw::c_long,
12742    ) -> ::std::os::raw::c_int;
12743}
12744extern "C" {
12745    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_load_bio"]
12746    pub fn NCONF_load_bio(
12747        conf: *mut CONF,
12748        bio: *mut BIO,
12749        out_error_line: *mut ::std::os::raw::c_long,
12750    ) -> ::std::os::raw::c_int;
12751}
12752extern "C" {
12753    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_get_section"]
12754    pub fn NCONF_get_section(
12755        conf: *const CONF,
12756        section: *const ::std::os::raw::c_char,
12757    ) -> *const stack_st_CONF_VALUE;
12758}
12759extern "C" {
12760    #[link_name = "\u{1}aws_lc_0_37_0_NCONF_get_string"]
12761    pub fn NCONF_get_string(
12762        conf: *const CONF,
12763        section: *const ::std::os::raw::c_char,
12764        name: *const ::std::os::raw::c_char,
12765    ) -> *const ::std::os::raw::c_char;
12766}
12767extern "C" {
12768    #[link_name = "\u{1}aws_lc_0_37_0_CONF_modules_load_file"]
12769    pub fn CONF_modules_load_file(
12770        filename: *const ::std::os::raw::c_char,
12771        appname: *const ::std::os::raw::c_char,
12772        flags: ::std::os::raw::c_ulong,
12773    ) -> ::std::os::raw::c_int;
12774}
12775extern "C" {
12776    #[link_name = "\u{1}aws_lc_0_37_0_CONF_get1_default_config_file"]
12777    pub fn CONF_get1_default_config_file() -> *mut ::std::os::raw::c_char;
12778}
12779extern "C" {
12780    #[link_name = "\u{1}aws_lc_0_37_0_CONF_modules_free"]
12781    pub fn CONF_modules_free();
12782}
12783extern "C" {
12784    #[link_name = "\u{1}aws_lc_0_37_0_CONF_modules_unload"]
12785    pub fn CONF_modules_unload(all: ::std::os::raw::c_int);
12786}
12787extern "C" {
12788    #[link_name = "\u{1}aws_lc_0_37_0_CONF_modules_finish"]
12789    pub fn CONF_modules_finish();
12790}
12791extern "C" {
12792    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_config"]
12793    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
12794}
12795extern "C" {
12796    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_no_config"]
12797    pub fn OPENSSL_no_config();
12798}
12799extern "C" {
12800    #[link_name = "\u{1}aws_lc_0_37_0_CTR_DRBG_new"]
12801    pub fn CTR_DRBG_new(
12802        entropy: *const u8,
12803        personalization: *const u8,
12804        personalization_len: usize,
12805    ) -> *mut CTR_DRBG_STATE;
12806}
12807extern "C" {
12808    #[link_name = "\u{1}aws_lc_0_37_0_CTR_DRBG_free"]
12809    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
12810}
12811extern "C" {
12812    #[link_name = "\u{1}aws_lc_0_37_0_CTR_DRBG_reseed"]
12813    pub fn CTR_DRBG_reseed(
12814        drbg: *mut CTR_DRBG_STATE,
12815        entropy: *const u8,
12816        additional_data: *const u8,
12817        additional_data_len: usize,
12818    ) -> ::std::os::raw::c_int;
12819}
12820extern "C" {
12821    #[link_name = "\u{1}aws_lc_0_37_0_CTR_DRBG_generate"]
12822    pub fn CTR_DRBG_generate(
12823        drbg: *mut CTR_DRBG_STATE,
12824        out: *mut u8,
12825        out_len: usize,
12826        additional_data: *const u8,
12827        additional_data_len: usize,
12828    ) -> ::std::os::raw::c_int;
12829}
12830extern "C" {
12831    #[link_name = "\u{1}aws_lc_0_37_0_CTR_DRBG_clear"]
12832    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
12833}
12834extern "C" {
12835    #[link_name = "\u{1}aws_lc_0_37_0_X25519_keypair"]
12836    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
12837}
12838extern "C" {
12839    #[link_name = "\u{1}aws_lc_0_37_0_X25519"]
12840    pub fn X25519(
12841        out_shared_key: *mut u8,
12842        private_key: *const u8,
12843        peer_public_value: *const u8,
12844    ) -> ::std::os::raw::c_int;
12845}
12846extern "C" {
12847    #[link_name = "\u{1}aws_lc_0_37_0_X25519_public_from_private"]
12848    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
12849}
12850extern "C" {
12851    #[link_name = "\u{1}aws_lc_0_37_0_ED25519_keypair"]
12852    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
12853}
12854extern "C" {
12855    #[link_name = "\u{1}aws_lc_0_37_0_ED25519_sign"]
12856    pub fn ED25519_sign(
12857        out_sig: *mut u8,
12858        message: *const u8,
12859        message_len: usize,
12860        private_key: *const u8,
12861    ) -> ::std::os::raw::c_int;
12862}
12863extern "C" {
12864    #[link_name = "\u{1}aws_lc_0_37_0_ED25519_verify"]
12865    pub fn ED25519_verify(
12866        message: *const u8,
12867        message_len: usize,
12868        signature: *const u8,
12869        public_key: *const u8,
12870    ) -> ::std::os::raw::c_int;
12871}
12872extern "C" {
12873    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ctx_sign"]
12874    pub fn ED25519ctx_sign(
12875        out_sig: *mut u8,
12876        message: *const u8,
12877        message_len: usize,
12878        private_key: *const u8,
12879        context: *const u8,
12880        context_len: usize,
12881    ) -> ::std::os::raw::c_int;
12882}
12883extern "C" {
12884    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ctx_verify"]
12885    pub fn ED25519ctx_verify(
12886        message: *const u8,
12887        message_len: usize,
12888        signature: *const u8,
12889        public_key: *const u8,
12890        context: *const u8,
12891        context_len: usize,
12892    ) -> ::std::os::raw::c_int;
12893}
12894extern "C" {
12895    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ph_sign"]
12896    pub fn ED25519ph_sign(
12897        out_sig: *mut u8,
12898        message: *const u8,
12899        message_len: usize,
12900        private_key: *const u8,
12901        context: *const u8,
12902        context_len: usize,
12903    ) -> ::std::os::raw::c_int;
12904}
12905extern "C" {
12906    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ph_verify"]
12907    pub fn ED25519ph_verify(
12908        message: *const u8,
12909        message_len: usize,
12910        signature: *const u8,
12911        public_key: *const u8,
12912        context: *const u8,
12913        context_len: usize,
12914    ) -> ::std::os::raw::c_int;
12915}
12916extern "C" {
12917    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ph_sign_digest"]
12918    pub fn ED25519ph_sign_digest(
12919        out_sig: *mut u8,
12920        digest: *const u8,
12921        private_key: *const u8,
12922        context: *const u8,
12923        context_len: usize,
12924    ) -> ::std::os::raw::c_int;
12925}
12926extern "C" {
12927    #[link_name = "\u{1}aws_lc_0_37_0_ED25519ph_verify_digest"]
12928    pub fn ED25519ph_verify_digest(
12929        digest: *const u8,
12930        signature: *const u8,
12931        public_key: *const u8,
12932        context: *const u8,
12933        context_len: usize,
12934    ) -> ::std::os::raw::c_int;
12935}
12936extern "C" {
12937    #[link_name = "\u{1}aws_lc_0_37_0_ED25519_keypair_from_seed"]
12938    pub fn ED25519_keypair_from_seed(
12939        out_public_key: *mut u8,
12940        out_private_key: *mut u8,
12941        seed: *const u8,
12942    );
12943}
12944pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
12945pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
12946pub type spake2_role_t = ::std::os::raw::c_uint;
12947extern "C" {
12948    #[link_name = "\u{1}aws_lc_0_37_0_SPAKE2_CTX_new"]
12949    pub fn SPAKE2_CTX_new(
12950        my_role: spake2_role_t,
12951        my_name: *const u8,
12952        my_name_len: usize,
12953        their_name: *const u8,
12954        their_name_len: usize,
12955    ) -> *mut SPAKE2_CTX;
12956}
12957extern "C" {
12958    #[link_name = "\u{1}aws_lc_0_37_0_SPAKE2_CTX_free"]
12959    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
12960}
12961extern "C" {
12962    #[link_name = "\u{1}aws_lc_0_37_0_SPAKE2_generate_msg"]
12963    pub fn SPAKE2_generate_msg(
12964        ctx: *mut SPAKE2_CTX,
12965        out: *mut u8,
12966        out_len: *mut usize,
12967        max_out_len: usize,
12968        password: *const u8,
12969        password_len: usize,
12970    ) -> ::std::os::raw::c_int;
12971}
12972extern "C" {
12973    #[link_name = "\u{1}aws_lc_0_37_0_SPAKE2_process_msg"]
12974    pub fn SPAKE2_process_msg(
12975        ctx: *mut SPAKE2_CTX,
12976        out_key: *mut u8,
12977        out_key_len: *mut usize,
12978        max_out_key_len: usize,
12979        their_msg: *const u8,
12980        their_msg_len: usize,
12981    ) -> ::std::os::raw::c_int;
12982}
12983#[repr(C)]
12984#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
12985pub struct DES_cblock_st {
12986    pub bytes: [u8; 8usize],
12987}
12988#[test]
12989fn bindgen_test_layout_DES_cblock_st() {
12990    const UNINIT: ::std::mem::MaybeUninit<DES_cblock_st> = ::std::mem::MaybeUninit::uninit();
12991    let ptr = UNINIT.as_ptr();
12992    assert_eq!(
12993        ::std::mem::size_of::<DES_cblock_st>(),
12994        8usize,
12995        "Size of DES_cblock_st"
12996    );
12997    assert_eq!(
12998        ::std::mem::align_of::<DES_cblock_st>(),
12999        1usize,
13000        "Alignment of DES_cblock_st"
13001    );
13002    assert_eq!(
13003        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
13004        0usize,
13005        "Offset of field: DES_cblock_st::bytes"
13006    );
13007}
13008pub type DES_cblock = DES_cblock_st;
13009pub type const_DES_cblock = DES_cblock_st;
13010#[repr(C)]
13011#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
13012pub struct DES_ks {
13013    pub subkeys: [[u32; 2usize]; 16usize],
13014}
13015#[test]
13016fn bindgen_test_layout_DES_ks() {
13017    const UNINIT: ::std::mem::MaybeUninit<DES_ks> = ::std::mem::MaybeUninit::uninit();
13018    let ptr = UNINIT.as_ptr();
13019    assert_eq!(::std::mem::size_of::<DES_ks>(), 128usize, "Size of DES_ks");
13020    assert_eq!(
13021        ::std::mem::align_of::<DES_ks>(),
13022        4usize,
13023        "Alignment of DES_ks"
13024    );
13025    assert_eq!(
13026        unsafe { ::std::ptr::addr_of!((*ptr).subkeys) as usize - ptr as usize },
13027        0usize,
13028        "Offset of field: DES_ks::subkeys"
13029    );
13030}
13031pub type DES_key_schedule = DES_ks;
13032extern "C" {
13033    #[link_name = "\u{1}aws_lc_0_37_0_DES_is_weak_key"]
13034    pub fn DES_is_weak_key(key: *const DES_cblock) -> ::std::os::raw::c_int;
13035}
13036extern "C" {
13037    #[link_name = "\u{1}aws_lc_0_37_0_DES_set_key"]
13038    pub fn DES_set_key(
13039        key: *const DES_cblock,
13040        schedule: *mut DES_key_schedule,
13041    ) -> ::std::os::raw::c_int;
13042}
13043extern "C" {
13044    #[link_name = "\u{1}aws_lc_0_37_0_DES_set_key_unchecked"]
13045    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
13046}
13047extern "C" {
13048    #[link_name = "\u{1}aws_lc_0_37_0_DES_key_sched"]
13049    pub fn DES_key_sched(
13050        key: *const DES_cblock,
13051        schedule: *mut DES_key_schedule,
13052    ) -> ::std::os::raw::c_int;
13053}
13054extern "C" {
13055    #[link_name = "\u{1}aws_lc_0_37_0_DES_set_odd_parity"]
13056    pub fn DES_set_odd_parity(key: *mut DES_cblock);
13057}
13058extern "C" {
13059    #[link_name = "\u{1}aws_lc_0_37_0_DES_ecb_encrypt"]
13060    pub fn DES_ecb_encrypt(
13061        in_: *const DES_cblock,
13062        out: *mut DES_cblock,
13063        schedule: *const DES_key_schedule,
13064        is_encrypt: ::std::os::raw::c_int,
13065    );
13066}
13067extern "C" {
13068    #[link_name = "\u{1}aws_lc_0_37_0_DES_ncbc_encrypt"]
13069    pub fn DES_ncbc_encrypt(
13070        in_: *const u8,
13071        out: *mut u8,
13072        len: usize,
13073        schedule: *const DES_key_schedule,
13074        ivec: *mut DES_cblock,
13075        enc: ::std::os::raw::c_int,
13076    );
13077}
13078extern "C" {
13079    #[link_name = "\u{1}aws_lc_0_37_0_DES_ecb3_encrypt"]
13080    pub fn DES_ecb3_encrypt(
13081        input: *const DES_cblock,
13082        output: *mut DES_cblock,
13083        ks1: *const DES_key_schedule,
13084        ks2: *const DES_key_schedule,
13085        ks3: *const DES_key_schedule,
13086        enc: ::std::os::raw::c_int,
13087    );
13088}
13089extern "C" {
13090    #[link_name = "\u{1}aws_lc_0_37_0_DES_ede3_cbc_encrypt"]
13091    pub fn DES_ede3_cbc_encrypt(
13092        in_: *const u8,
13093        out: *mut u8,
13094        len: usize,
13095        ks1: *const DES_key_schedule,
13096        ks2: *const DES_key_schedule,
13097        ks3: *const DES_key_schedule,
13098        ivec: *mut DES_cblock,
13099        enc: ::std::os::raw::c_int,
13100    );
13101}
13102extern "C" {
13103    #[link_name = "\u{1}aws_lc_0_37_0_DES_ede2_cbc_encrypt"]
13104    pub fn DES_ede2_cbc_encrypt(
13105        in_: *const u8,
13106        out: *mut u8,
13107        len: usize,
13108        ks1: *const DES_key_schedule,
13109        ks2: *const DES_key_schedule,
13110        ivec: *mut DES_cblock,
13111        enc: ::std::os::raw::c_int,
13112    );
13113}
13114extern "C" {
13115    #[link_name = "\u{1}aws_lc_0_37_0_DH_new"]
13116    pub fn DH_new() -> *mut DH;
13117}
13118extern "C" {
13119    #[link_name = "\u{1}aws_lc_0_37_0_DH_new_by_nid"]
13120    pub fn DH_new_by_nid(nid: ::std::os::raw::c_int) -> *mut DH;
13121}
13122extern "C" {
13123    #[link_name = "\u{1}aws_lc_0_37_0_DH_free"]
13124    pub fn DH_free(dh: *mut DH);
13125}
13126extern "C" {
13127    #[link_name = "\u{1}aws_lc_0_37_0_DH_up_ref"]
13128    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
13129}
13130extern "C" {
13131    #[link_name = "\u{1}aws_lc_0_37_0_DH_bits"]
13132    pub fn DH_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13133}
13134extern "C" {
13135    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_pub_key"]
13136    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
13137}
13138extern "C" {
13139    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_priv_key"]
13140    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
13141}
13142extern "C" {
13143    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_p"]
13144    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
13145}
13146extern "C" {
13147    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_q"]
13148    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
13149}
13150extern "C" {
13151    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_g"]
13152    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
13153}
13154extern "C" {
13155    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_key"]
13156    pub fn DH_get0_key(
13157        dh: *const DH,
13158        out_pub_key: *mut *const BIGNUM,
13159        out_priv_key: *mut *const BIGNUM,
13160    );
13161}
13162extern "C" {
13163    #[link_name = "\u{1}aws_lc_0_37_0_DH_set0_key"]
13164    pub fn DH_set0_key(
13165        dh: *mut DH,
13166        pub_key: *mut BIGNUM,
13167        priv_key: *mut BIGNUM,
13168    ) -> ::std::os::raw::c_int;
13169}
13170extern "C" {
13171    #[link_name = "\u{1}aws_lc_0_37_0_DH_get0_pqg"]
13172    pub fn DH_get0_pqg(
13173        dh: *const DH,
13174        out_p: *mut *const BIGNUM,
13175        out_q: *mut *const BIGNUM,
13176        out_g: *mut *const BIGNUM,
13177    );
13178}
13179extern "C" {
13180    #[link_name = "\u{1}aws_lc_0_37_0_DH_set0_pqg"]
13181    pub fn DH_set0_pqg(
13182        dh: *mut DH,
13183        p: *mut BIGNUM,
13184        q: *mut BIGNUM,
13185        g: *mut BIGNUM,
13186    ) -> ::std::os::raw::c_int;
13187}
13188extern "C" {
13189    #[link_name = "\u{1}aws_lc_0_37_0_DH_set_length"]
13190    pub fn DH_set_length(dh: *mut DH, priv_length: ::std::os::raw::c_uint)
13191        -> ::std::os::raw::c_int;
13192}
13193extern "C" {
13194    #[link_name = "\u{1}aws_lc_0_37_0_DH_get_rfc7919_2048"]
13195    pub fn DH_get_rfc7919_2048() -> *mut DH;
13196}
13197extern "C" {
13198    #[link_name = "\u{1}aws_lc_0_37_0_DH_get_rfc7919_4096"]
13199    pub fn DH_get_rfc7919_4096() -> *mut DH;
13200}
13201extern "C" {
13202    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_1536"]
13203    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
13204}
13205extern "C" {
13206    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_2048"]
13207    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
13208}
13209extern "C" {
13210    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_3072"]
13211    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
13212}
13213extern "C" {
13214    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_4096"]
13215    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
13216}
13217extern "C" {
13218    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_6144"]
13219    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
13220}
13221extern "C" {
13222    #[link_name = "\u{1}aws_lc_0_37_0_BN_get_rfc3526_prime_8192"]
13223    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
13224}
13225extern "C" {
13226    #[link_name = "\u{1}aws_lc_0_37_0_DH_generate_parameters_ex"]
13227    pub fn DH_generate_parameters_ex(
13228        dh: *mut DH,
13229        prime_bits: ::std::os::raw::c_int,
13230        generator: ::std::os::raw::c_int,
13231        cb: *mut BN_GENCB,
13232    ) -> ::std::os::raw::c_int;
13233}
13234extern "C" {
13235    #[link_name = "\u{1}aws_lc_0_37_0_DH_generate_key"]
13236    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
13237}
13238extern "C" {
13239    #[link_name = "\u{1}aws_lc_0_37_0_DH_compute_key_padded"]
13240    pub fn DH_compute_key_padded(
13241        out: *mut u8,
13242        peers_key: *const BIGNUM,
13243        dh: *mut DH,
13244    ) -> ::std::os::raw::c_int;
13245}
13246extern "C" {
13247    #[link_name = "\u{1}aws_lc_0_37_0_DH_compute_key_hashed"]
13248    pub fn DH_compute_key_hashed(
13249        dh: *mut DH,
13250        out: *mut u8,
13251        out_len: *mut usize,
13252        max_out_len: usize,
13253        peers_key: *const BIGNUM,
13254        digest: *const EVP_MD,
13255    ) -> ::std::os::raw::c_int;
13256}
13257extern "C" {
13258    #[link_name = "\u{1}aws_lc_0_37_0_DH_size"]
13259    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
13260}
13261extern "C" {
13262    #[link_name = "\u{1}aws_lc_0_37_0_DH_num_bits"]
13263    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13264}
13265extern "C" {
13266    #[link_name = "\u{1}aws_lc_0_37_0_DH_check"]
13267    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13268}
13269extern "C" {
13270    #[link_name = "\u{1}aws_lc_0_37_0_DH_check_pub_key"]
13271    pub fn DH_check_pub_key(
13272        dh: *const DH,
13273        pub_key: *const BIGNUM,
13274        out_flags: *mut ::std::os::raw::c_int,
13275    ) -> ::std::os::raw::c_int;
13276}
13277extern "C" {
13278    #[link_name = "\u{1}aws_lc_0_37_0_DHparams_dup"]
13279    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
13280}
13281extern "C" {
13282    #[link_name = "\u{1}aws_lc_0_37_0_DH_parse_parameters"]
13283    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
13284}
13285extern "C" {
13286    #[link_name = "\u{1}aws_lc_0_37_0_DH_marshal_parameters"]
13287    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
13288}
13289extern "C" {
13290    #[link_name = "\u{1}aws_lc_0_37_0_DH_generate_parameters"]
13291    pub fn DH_generate_parameters(
13292        prime_len: ::std::os::raw::c_int,
13293        generator: ::std::os::raw::c_int,
13294        callback: ::std::option::Option<
13295            unsafe extern "C" fn(
13296                arg1: ::std::os::raw::c_int,
13297                arg2: ::std::os::raw::c_int,
13298                arg3: *mut ::std::os::raw::c_void,
13299            ),
13300        >,
13301        cb_arg: *mut ::std::os::raw::c_void,
13302    ) -> *mut DH;
13303}
13304extern "C" {
13305    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DHparams"]
13306    pub fn d2i_DHparams(
13307        ret: *mut *mut DH,
13308        inp: *mut *const ::std::os::raw::c_uchar,
13309        len: ::std::os::raw::c_long,
13310    ) -> *mut DH;
13311}
13312extern "C" {
13313    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DHparams"]
13314    pub fn i2d_DHparams(
13315        in_: *const DH,
13316        outp: *mut *mut ::std::os::raw::c_uchar,
13317    ) -> ::std::os::raw::c_int;
13318}
13319extern "C" {
13320    #[link_name = "\u{1}aws_lc_0_37_0_DH_compute_key"]
13321    pub fn DH_compute_key(
13322        out: *mut u8,
13323        peers_key: *const BIGNUM,
13324        dh: *mut DH,
13325    ) -> ::std::os::raw::c_int;
13326}
13327extern "C" {
13328    #[link_name = "\u{1}aws_lc_0_37_0_DH_get_2048_256"]
13329    pub fn DH_get_2048_256() -> *mut DH;
13330}
13331extern "C" {
13332    #[link_name = "\u{1}aws_lc_0_37_0_DH_clear_flags"]
13333    pub fn DH_clear_flags(dh: *mut DH, flags: ::std::os::raw::c_int);
13334}
13335extern "C" {
13336    #[link_name = "\u{1}aws_lc_0_37_0_EVP_md4"]
13337    pub fn EVP_md4() -> *const EVP_MD;
13338}
13339extern "C" {
13340    #[link_name = "\u{1}aws_lc_0_37_0_EVP_md5"]
13341    pub fn EVP_md5() -> *const EVP_MD;
13342}
13343extern "C" {
13344    #[link_name = "\u{1}aws_lc_0_37_0_EVP_ripemd160"]
13345    pub fn EVP_ripemd160() -> *const EVP_MD;
13346}
13347extern "C" {
13348    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha1"]
13349    pub fn EVP_sha1() -> *const EVP_MD;
13350}
13351extern "C" {
13352    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha224"]
13353    pub fn EVP_sha224() -> *const EVP_MD;
13354}
13355extern "C" {
13356    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha256"]
13357    pub fn EVP_sha256() -> *const EVP_MD;
13358}
13359extern "C" {
13360    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha384"]
13361    pub fn EVP_sha384() -> *const EVP_MD;
13362}
13363extern "C" {
13364    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha512"]
13365    pub fn EVP_sha512() -> *const EVP_MD;
13366}
13367extern "C" {
13368    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha512_224"]
13369    pub fn EVP_sha512_224() -> *const EVP_MD;
13370}
13371extern "C" {
13372    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha512_256"]
13373    pub fn EVP_sha512_256() -> *const EVP_MD;
13374}
13375extern "C" {
13376    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha3_224"]
13377    pub fn EVP_sha3_224() -> *const EVP_MD;
13378}
13379extern "C" {
13380    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha3_256"]
13381    pub fn EVP_sha3_256() -> *const EVP_MD;
13382}
13383extern "C" {
13384    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha3_384"]
13385    pub fn EVP_sha3_384() -> *const EVP_MD;
13386}
13387extern "C" {
13388    #[link_name = "\u{1}aws_lc_0_37_0_EVP_sha3_512"]
13389    pub fn EVP_sha3_512() -> *const EVP_MD;
13390}
13391extern "C" {
13392    #[link_name = "\u{1}aws_lc_0_37_0_EVP_shake128"]
13393    pub fn EVP_shake128() -> *const EVP_MD;
13394}
13395extern "C" {
13396    #[link_name = "\u{1}aws_lc_0_37_0_EVP_shake256"]
13397    pub fn EVP_shake256() -> *const EVP_MD;
13398}
13399extern "C" {
13400    #[link_name = "\u{1}aws_lc_0_37_0_EVP_blake2b256"]
13401    pub fn EVP_blake2b256() -> *const EVP_MD;
13402}
13403extern "C" {
13404    #[link_name = "\u{1}aws_lc_0_37_0_EVP_md5_sha1"]
13405    pub fn EVP_md5_sha1() -> *const EVP_MD;
13406}
13407extern "C" {
13408    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_digestbynid"]
13409    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
13410}
13411extern "C" {
13412    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_digestbyobj"]
13413    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
13414}
13415extern "C" {
13416    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_init"]
13417    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
13418}
13419extern "C" {
13420    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_new"]
13421    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
13422}
13423extern "C" {
13424    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_cleanup"]
13425    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13426}
13427extern "C" {
13428    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_cleanse"]
13429    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
13430}
13431extern "C" {
13432    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_free"]
13433    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
13434}
13435extern "C" {
13436    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_copy_ex"]
13437    pub fn EVP_MD_CTX_copy_ex(
13438        out: *mut EVP_MD_CTX,
13439        in_: *const EVP_MD_CTX,
13440    ) -> ::std::os::raw::c_int;
13441}
13442extern "C" {
13443    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_move"]
13444    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
13445}
13446extern "C" {
13447    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_reset"]
13448    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13449}
13450extern "C" {
13451    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestInit_ex"]
13452    pub fn EVP_DigestInit_ex(
13453        ctx: *mut EVP_MD_CTX,
13454        type_: *const EVP_MD,
13455        engine: *mut ENGINE,
13456    ) -> ::std::os::raw::c_int;
13457}
13458extern "C" {
13459    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestInit"]
13460    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
13461}
13462extern "C" {
13463    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestUpdate"]
13464    pub fn EVP_DigestUpdate(
13465        ctx: *mut EVP_MD_CTX,
13466        data: *const ::std::os::raw::c_void,
13467        len: usize,
13468    ) -> ::std::os::raw::c_int;
13469}
13470extern "C" {
13471    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestFinal_ex"]
13472    pub fn EVP_DigestFinal_ex(
13473        ctx: *mut EVP_MD_CTX,
13474        md_out: *mut u8,
13475        out_size: *mut ::std::os::raw::c_uint,
13476    ) -> ::std::os::raw::c_int;
13477}
13478extern "C" {
13479    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestFinal"]
13480    pub fn EVP_DigestFinal(
13481        ctx: *mut EVP_MD_CTX,
13482        md_out: *mut u8,
13483        out_size: *mut ::std::os::raw::c_uint,
13484    ) -> ::std::os::raw::c_int;
13485}
13486extern "C" {
13487    #[link_name = "\u{1}aws_lc_0_37_0_EVP_Digest"]
13488    pub fn EVP_Digest(
13489        data: *const ::std::os::raw::c_void,
13490        len: usize,
13491        md_out: *mut u8,
13492        out_size: *mut ::std::os::raw::c_uint,
13493        type_: *const EVP_MD,
13494        impl_: *mut ENGINE,
13495    ) -> ::std::os::raw::c_int;
13496}
13497extern "C" {
13498    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_type"]
13499    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
13500}
13501extern "C" {
13502    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_flags"]
13503    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
13504}
13505extern "C" {
13506    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_size"]
13507    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
13508}
13509extern "C" {
13510    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_block_size"]
13511    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
13512}
13513extern "C" {
13514    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_md"]
13515    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
13516}
13517extern "C" {
13518    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_size"]
13519    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
13520}
13521extern "C" {
13522    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_block_size"]
13523    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
13524}
13525extern "C" {
13526    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_type"]
13527    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13528}
13529extern "C" {
13530    #[link_name = "\u{1}aws_lc_0_37_0_EVP_parse_digest_algorithm"]
13531    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
13532}
13533extern "C" {
13534    #[link_name = "\u{1}aws_lc_0_37_0_EVP_marshal_digest_algorithm"]
13535    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
13536}
13537extern "C" {
13538    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_copy"]
13539    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13540}
13541extern "C" {
13542    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_digestbyname"]
13543    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
13544}
13545extern "C" {
13546    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_create"]
13547    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
13548}
13549extern "C" {
13550    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_destroy"]
13551    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
13552}
13553extern "C" {
13554    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestFinalXOF"]
13555    pub fn EVP_DigestFinalXOF(
13556        ctx: *mut EVP_MD_CTX,
13557        out: *mut u8,
13558        len: usize,
13559    ) -> ::std::os::raw::c_int;
13560}
13561extern "C" {
13562    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestSqueeze"]
13563    pub fn EVP_DigestSqueeze(
13564        ctx: *mut EVP_MD_CTX,
13565        out: *mut u8,
13566        len: usize,
13567    ) -> ::std::os::raw::c_int;
13568}
13569extern "C" {
13570    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_meth_get_flags"]
13571    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
13572}
13573extern "C" {
13574    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_nid"]
13575    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::std::os::raw::c_int;
13576}
13577extern "C" {
13578    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_set_pkey_ctx"]
13579    pub fn EVP_MD_CTX_set_pkey_ctx(ctx: *mut EVP_MD_CTX, pctx: *mut EVP_PKEY_CTX);
13580}
13581extern "C" {
13582    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_get_pkey_ctx"]
13583    pub fn EVP_MD_CTX_get_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13584}
13585extern "C" {
13586    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_pkey_ctx"]
13587    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13588}
13589#[repr(C)]
13590#[derive(Debug, Copy, Clone)]
13591pub struct evp_md_pctx_ops {
13592    _unused: [u8; 0],
13593}
13594#[repr(C)]
13595#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13596pub struct env_md_ctx_st {
13597    pub digest: *const EVP_MD,
13598    pub md_data: *mut ::std::os::raw::c_void,
13599    pub update: ::std::option::Option<
13600        unsafe extern "C" fn(
13601            ctx: *mut EVP_MD_CTX,
13602            data: *const ::std::os::raw::c_void,
13603            count: usize,
13604        ) -> ::std::os::raw::c_int,
13605    >,
13606    pub pctx: *mut EVP_PKEY_CTX,
13607    pub pctx_ops: *const evp_md_pctx_ops,
13608    pub flags: ::std::os::raw::c_ulong,
13609}
13610#[test]
13611fn bindgen_test_layout_env_md_ctx_st() {
13612    const UNINIT: ::std::mem::MaybeUninit<env_md_ctx_st> = ::std::mem::MaybeUninit::uninit();
13613    let ptr = UNINIT.as_ptr();
13614    assert_eq!(
13615        ::std::mem::size_of::<env_md_ctx_st>(),
13616        48usize,
13617        "Size of env_md_ctx_st"
13618    );
13619    assert_eq!(
13620        ::std::mem::align_of::<env_md_ctx_st>(),
13621        8usize,
13622        "Alignment of env_md_ctx_st"
13623    );
13624    assert_eq!(
13625        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
13626        0usize,
13627        "Offset of field: env_md_ctx_st::digest"
13628    );
13629    assert_eq!(
13630        unsafe { ::std::ptr::addr_of!((*ptr).md_data) as usize - ptr as usize },
13631        8usize,
13632        "Offset of field: env_md_ctx_st::md_data"
13633    );
13634    assert_eq!(
13635        unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize },
13636        16usize,
13637        "Offset of field: env_md_ctx_st::update"
13638    );
13639    assert_eq!(
13640        unsafe { ::std::ptr::addr_of!((*ptr).pctx) as usize - ptr as usize },
13641        24usize,
13642        "Offset of field: env_md_ctx_st::pctx"
13643    );
13644    assert_eq!(
13645        unsafe { ::std::ptr::addr_of!((*ptr).pctx_ops) as usize - ptr as usize },
13646        32usize,
13647        "Offset of field: env_md_ctx_st::pctx_ops"
13648    );
13649    assert_eq!(
13650        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
13651        40usize,
13652        "Offset of field: env_md_ctx_st::flags"
13653    );
13654}
13655impl Default for env_md_ctx_st {
13656    fn default() -> Self {
13657        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13658        unsafe {
13659            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13660            s.assume_init()
13661        }
13662    }
13663}
13664extern "C" {
13665    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_unstable_sha3_enable"]
13666    pub fn EVP_MD_unstable_sha3_enable(enable: bool);
13667}
13668extern "C" {
13669    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_unstable_sha3_is_enabled"]
13670    pub fn EVP_MD_unstable_sha3_is_enabled() -> bool;
13671}
13672extern "C" {
13673    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_CTX_set_flags"]
13674    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::std::os::raw::c_int);
13675}
13676extern "C" {
13677    #[link_name = "\u{1}aws_lc_0_37_0_EVP_add_digest"]
13678    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
13679}
13680extern "C" {
13681    #[link_name = "\u{1}aws_lc_0_37_0_EVP_md_null"]
13682    pub fn EVP_md_null() -> *const EVP_MD;
13683}
13684extern "C" {
13685    #[link_name = "\u{1}aws_lc_0_37_0_DSA_new"]
13686    pub fn DSA_new() -> *mut DSA;
13687}
13688extern "C" {
13689    #[link_name = "\u{1}aws_lc_0_37_0_DSA_free"]
13690    pub fn DSA_free(dsa: *mut DSA);
13691}
13692extern "C" {
13693    #[link_name = "\u{1}aws_lc_0_37_0_DSA_up_ref"]
13694    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
13695}
13696extern "C" {
13697    #[link_name = "\u{1}aws_lc_0_37_0_DSA_print"]
13698    pub fn DSA_print(
13699        bio: *mut BIO,
13700        dsa: *const DSA,
13701        indent: ::std::os::raw::c_int,
13702    ) -> ::std::os::raw::c_int;
13703}
13704extern "C" {
13705    #[link_name = "\u{1}aws_lc_0_37_0_DSA_print_fp"]
13706    pub fn DSA_print_fp(
13707        fp: *mut FILE,
13708        dsa: *const DSA,
13709        indent: ::std::os::raw::c_int,
13710    ) -> ::std::os::raw::c_int;
13711}
13712extern "C" {
13713    #[link_name = "\u{1}aws_lc_0_37_0_DSA_bits"]
13714    pub fn DSA_bits(dsa: *const DSA) -> ::std::os::raw::c_uint;
13715}
13716extern "C" {
13717    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_pub_key"]
13718    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
13719}
13720extern "C" {
13721    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_priv_key"]
13722    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
13723}
13724extern "C" {
13725    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_p"]
13726    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
13727}
13728extern "C" {
13729    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_q"]
13730    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
13731}
13732extern "C" {
13733    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_g"]
13734    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
13735}
13736extern "C" {
13737    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_key"]
13738    pub fn DSA_get0_key(
13739        dsa: *const DSA,
13740        out_pub_key: *mut *const BIGNUM,
13741        out_priv_key: *mut *const BIGNUM,
13742    );
13743}
13744extern "C" {
13745    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get0_pqg"]
13746    pub fn DSA_get0_pqg(
13747        dsa: *const DSA,
13748        out_p: *mut *const BIGNUM,
13749        out_q: *mut *const BIGNUM,
13750        out_g: *mut *const BIGNUM,
13751    );
13752}
13753extern "C" {
13754    #[link_name = "\u{1}aws_lc_0_37_0_DSA_set0_key"]
13755    pub fn DSA_set0_key(
13756        dsa: *mut DSA,
13757        pub_key: *mut BIGNUM,
13758        priv_key: *mut BIGNUM,
13759    ) -> ::std::os::raw::c_int;
13760}
13761extern "C" {
13762    #[link_name = "\u{1}aws_lc_0_37_0_DSA_set0_pqg"]
13763    pub fn DSA_set0_pqg(
13764        dsa: *mut DSA,
13765        p: *mut BIGNUM,
13766        q: *mut BIGNUM,
13767        g: *mut BIGNUM,
13768    ) -> ::std::os::raw::c_int;
13769}
13770extern "C" {
13771    #[link_name = "\u{1}aws_lc_0_37_0_DSA_generate_parameters_ex"]
13772    pub fn DSA_generate_parameters_ex(
13773        dsa: *mut DSA,
13774        bits: ::std::os::raw::c_uint,
13775        seed: *const u8,
13776        seed_len: usize,
13777        out_counter: *mut ::std::os::raw::c_int,
13778        out_h: *mut ::std::os::raw::c_ulong,
13779        cb: *mut BN_GENCB,
13780    ) -> ::std::os::raw::c_int;
13781}
13782extern "C" {
13783    #[link_name = "\u{1}aws_lc_0_37_0_DSAparams_dup"]
13784    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
13785}
13786extern "C" {
13787    #[link_name = "\u{1}aws_lc_0_37_0_DSA_generate_key"]
13788    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
13789}
13790#[repr(C)]
13791#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13792pub struct DSA_SIG_st {
13793    pub r: *mut BIGNUM,
13794    pub s: *mut BIGNUM,
13795}
13796#[test]
13797fn bindgen_test_layout_DSA_SIG_st() {
13798    const UNINIT: ::std::mem::MaybeUninit<DSA_SIG_st> = ::std::mem::MaybeUninit::uninit();
13799    let ptr = UNINIT.as_ptr();
13800    assert_eq!(
13801        ::std::mem::size_of::<DSA_SIG_st>(),
13802        16usize,
13803        "Size of DSA_SIG_st"
13804    );
13805    assert_eq!(
13806        ::std::mem::align_of::<DSA_SIG_st>(),
13807        8usize,
13808        "Alignment of DSA_SIG_st"
13809    );
13810    assert_eq!(
13811        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
13812        0usize,
13813        "Offset of field: DSA_SIG_st::r"
13814    );
13815    assert_eq!(
13816        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
13817        8usize,
13818        "Offset of field: DSA_SIG_st::s"
13819    );
13820}
13821impl Default for DSA_SIG_st {
13822    fn default() -> Self {
13823        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13824        unsafe {
13825            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13826            s.assume_init()
13827        }
13828    }
13829}
13830extern "C" {
13831    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_new"]
13832    pub fn DSA_SIG_new() -> *mut DSA_SIG;
13833}
13834extern "C" {
13835    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_free"]
13836    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
13837}
13838extern "C" {
13839    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_get0"]
13840    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
13841}
13842extern "C" {
13843    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_set0"]
13844    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM)
13845        -> ::std::os::raw::c_int;
13846}
13847extern "C" {
13848    #[link_name = "\u{1}aws_lc_0_37_0_DSA_do_sign"]
13849    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
13850}
13851extern "C" {
13852    #[link_name = "\u{1}aws_lc_0_37_0_DSA_do_verify"]
13853    pub fn DSA_do_verify(
13854        digest: *const u8,
13855        digest_len: usize,
13856        sig: *const DSA_SIG,
13857        dsa: *const DSA,
13858    ) -> ::std::os::raw::c_int;
13859}
13860extern "C" {
13861    #[link_name = "\u{1}aws_lc_0_37_0_DSA_do_check_signature"]
13862    pub fn DSA_do_check_signature(
13863        out_valid: *mut ::std::os::raw::c_int,
13864        digest: *const u8,
13865        digest_len: usize,
13866        sig: *const DSA_SIG,
13867        dsa: *const DSA,
13868    ) -> ::std::os::raw::c_int;
13869}
13870extern "C" {
13871    #[link_name = "\u{1}aws_lc_0_37_0_DSA_sign"]
13872    pub fn DSA_sign(
13873        type_: ::std::os::raw::c_int,
13874        digest: *const u8,
13875        digest_len: usize,
13876        out_sig: *mut u8,
13877        out_siglen: *mut ::std::os::raw::c_uint,
13878        dsa: *const DSA,
13879    ) -> ::std::os::raw::c_int;
13880}
13881extern "C" {
13882    #[link_name = "\u{1}aws_lc_0_37_0_DSA_verify"]
13883    pub fn DSA_verify(
13884        type_: ::std::os::raw::c_int,
13885        digest: *const u8,
13886        digest_len: usize,
13887        sig: *const u8,
13888        sig_len: usize,
13889        dsa: *const DSA,
13890    ) -> ::std::os::raw::c_int;
13891}
13892extern "C" {
13893    #[link_name = "\u{1}aws_lc_0_37_0_DSA_check_signature"]
13894    pub fn DSA_check_signature(
13895        out_valid: *mut ::std::os::raw::c_int,
13896        digest: *const u8,
13897        digest_len: usize,
13898        sig: *const u8,
13899        sig_len: usize,
13900        dsa: *const DSA,
13901    ) -> ::std::os::raw::c_int;
13902}
13903extern "C" {
13904    #[link_name = "\u{1}aws_lc_0_37_0_DSA_size"]
13905    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
13906}
13907extern "C" {
13908    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_parse"]
13909    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
13910}
13911extern "C" {
13912    #[link_name = "\u{1}aws_lc_0_37_0_DSA_SIG_marshal"]
13913    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
13914}
13915extern "C" {
13916    #[link_name = "\u{1}aws_lc_0_37_0_DSA_parse_public_key"]
13917    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
13918}
13919extern "C" {
13920    #[link_name = "\u{1}aws_lc_0_37_0_DSA_marshal_public_key"]
13921    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13922}
13923extern "C" {
13924    #[link_name = "\u{1}aws_lc_0_37_0_DSA_parse_private_key"]
13925    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
13926}
13927extern "C" {
13928    #[link_name = "\u{1}aws_lc_0_37_0_DSA_marshal_private_key"]
13929    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13930}
13931extern "C" {
13932    #[link_name = "\u{1}aws_lc_0_37_0_DSA_parse_parameters"]
13933    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
13934}
13935extern "C" {
13936    #[link_name = "\u{1}aws_lc_0_37_0_DSA_marshal_parameters"]
13937    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13938}
13939extern "C" {
13940    #[link_name = "\u{1}aws_lc_0_37_0_DSA_dup_DH"]
13941    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
13942}
13943extern "C" {
13944    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get_ex_new_index"]
13945    pub fn DSA_get_ex_new_index(
13946        argl: ::std::os::raw::c_long,
13947        argp: *mut ::std::os::raw::c_void,
13948        unused: *mut CRYPTO_EX_unused,
13949        dup_unused: CRYPTO_EX_dup,
13950        free_func: CRYPTO_EX_free,
13951    ) -> ::std::os::raw::c_int;
13952}
13953extern "C" {
13954    #[link_name = "\u{1}aws_lc_0_37_0_DSA_set_ex_data"]
13955    pub fn DSA_set_ex_data(
13956        dsa: *mut DSA,
13957        idx: ::std::os::raw::c_int,
13958        arg: *mut ::std::os::raw::c_void,
13959    ) -> ::std::os::raw::c_int;
13960}
13961extern "C" {
13962    #[link_name = "\u{1}aws_lc_0_37_0_DSA_get_ex_data"]
13963    pub fn DSA_get_ex_data(
13964        dsa: *const DSA,
13965        idx: ::std::os::raw::c_int,
13966    ) -> *mut ::std::os::raw::c_void;
13967}
13968extern "C" {
13969    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSA_SIG"]
13970    pub fn d2i_DSA_SIG(
13971        out_sig: *mut *mut DSA_SIG,
13972        inp: *mut *const u8,
13973        len: ::std::os::raw::c_long,
13974    ) -> *mut DSA_SIG;
13975}
13976extern "C" {
13977    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSA_SIG"]
13978    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13979}
13980extern "C" {
13981    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSAPublicKey"]
13982    pub fn d2i_DSAPublicKey(
13983        out: *mut *mut DSA,
13984        inp: *mut *const u8,
13985        len: ::std::os::raw::c_long,
13986    ) -> *mut DSA;
13987}
13988extern "C" {
13989    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSAPublicKey"]
13990    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13991}
13992extern "C" {
13993    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSAPrivateKey"]
13994    pub fn d2i_DSAPrivateKey(
13995        out: *mut *mut DSA,
13996        inp: *mut *const u8,
13997        len: ::std::os::raw::c_long,
13998    ) -> *mut DSA;
13999}
14000extern "C" {
14001    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSAPrivateKey"]
14002    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14003}
14004extern "C" {
14005    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSAparams"]
14006    pub fn d2i_DSAparams(
14007        out: *mut *mut DSA,
14008        inp: *mut *const u8,
14009        len: ::std::os::raw::c_long,
14010    ) -> *mut DSA;
14011}
14012extern "C" {
14013    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSAparams"]
14014    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14015}
14016#[repr(u32)]
14017#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14018pub enum point_conversion_form_t {
14019    POINT_CONVERSION_COMPRESSED = 2,
14020    POINT_CONVERSION_UNCOMPRESSED = 4,
14021    POINT_CONVERSION_HYBRID = 6,
14022}
14023extern "C" {
14024    #[link_name = "\u{1}aws_lc_0_37_0_EC_group_p224"]
14025    pub fn EC_group_p224() -> *const EC_GROUP;
14026}
14027extern "C" {
14028    #[link_name = "\u{1}aws_lc_0_37_0_EC_group_p256"]
14029    pub fn EC_group_p256() -> *const EC_GROUP;
14030}
14031extern "C" {
14032    #[link_name = "\u{1}aws_lc_0_37_0_EC_group_p384"]
14033    pub fn EC_group_p384() -> *const EC_GROUP;
14034}
14035extern "C" {
14036    #[link_name = "\u{1}aws_lc_0_37_0_EC_group_p521"]
14037    pub fn EC_group_p521() -> *const EC_GROUP;
14038}
14039extern "C" {
14040    #[link_name = "\u{1}aws_lc_0_37_0_EC_group_secp256k1"]
14041    pub fn EC_group_secp256k1() -> *const EC_GROUP;
14042}
14043extern "C" {
14044    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_new_by_curve_name"]
14045    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14046}
14047extern "C" {
14048    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_new_by_curve_name_mutable"]
14049    pub fn EC_GROUP_new_by_curve_name_mutable(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14050}
14051extern "C" {
14052    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_cmp"]
14053    pub fn EC_GROUP_cmp(
14054        a: *const EC_GROUP,
14055        b: *const EC_GROUP,
14056        ignored: *mut BN_CTX,
14057    ) -> ::std::os::raw::c_int;
14058}
14059extern "C" {
14060    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get0_generator"]
14061    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
14062}
14063extern "C" {
14064    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get0_order"]
14065    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
14066}
14067extern "C" {
14068    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_order_bits"]
14069    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14070}
14071extern "C" {
14072    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_cofactor"]
14073    pub fn EC_GROUP_get_cofactor(
14074        group: *const EC_GROUP,
14075        cofactor: *mut BIGNUM,
14076        ctx: *mut BN_CTX,
14077    ) -> ::std::os::raw::c_int;
14078}
14079extern "C" {
14080    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_curve_GFp"]
14081    pub fn EC_GROUP_get_curve_GFp(
14082        group: *const EC_GROUP,
14083        out_p: *mut BIGNUM,
14084        out_a: *mut BIGNUM,
14085        out_b: *mut BIGNUM,
14086        ctx: *mut BN_CTX,
14087    ) -> ::std::os::raw::c_int;
14088}
14089extern "C" {
14090    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_curve_name"]
14091    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14092}
14093extern "C" {
14094    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_degree"]
14095    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
14096}
14097extern "C" {
14098    #[link_name = "\u{1}aws_lc_0_37_0_EC_curve_nid2nist"]
14099    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
14100}
14101extern "C" {
14102    #[link_name = "\u{1}aws_lc_0_37_0_EC_curve_nist2nid"]
14103    pub fn EC_curve_nist2nid(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
14104}
14105extern "C" {
14106    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_new"]
14107    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
14108}
14109extern "C" {
14110    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_free"]
14111    pub fn EC_POINT_free(point: *mut EC_POINT);
14112}
14113extern "C" {
14114    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_copy"]
14115    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
14116}
14117extern "C" {
14118    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_dup"]
14119    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
14120}
14121extern "C" {
14122    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_set_to_infinity"]
14123    pub fn EC_POINT_set_to_infinity(
14124        group: *const EC_GROUP,
14125        point: *mut EC_POINT,
14126    ) -> ::std::os::raw::c_int;
14127}
14128extern "C" {
14129    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_is_at_infinity"]
14130    pub fn EC_POINT_is_at_infinity(
14131        group: *const EC_GROUP,
14132        point: *const EC_POINT,
14133    ) -> ::std::os::raw::c_int;
14134}
14135extern "C" {
14136    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_is_on_curve"]
14137    pub fn EC_POINT_is_on_curve(
14138        group: *const EC_GROUP,
14139        point: *const EC_POINT,
14140        ctx: *mut BN_CTX,
14141    ) -> ::std::os::raw::c_int;
14142}
14143extern "C" {
14144    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_cmp"]
14145    pub fn EC_POINT_cmp(
14146        group: *const EC_GROUP,
14147        a: *const EC_POINT,
14148        b: *const EC_POINT,
14149        ctx: *mut BN_CTX,
14150    ) -> ::std::os::raw::c_int;
14151}
14152extern "C" {
14153    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_get_affine_coordinates_GFp"]
14154    pub fn EC_POINT_get_affine_coordinates_GFp(
14155        group: *const EC_GROUP,
14156        point: *const EC_POINT,
14157        x: *mut BIGNUM,
14158        y: *mut BIGNUM,
14159        ctx: *mut BN_CTX,
14160    ) -> ::std::os::raw::c_int;
14161}
14162extern "C" {
14163    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_get_affine_coordinates"]
14164    pub fn EC_POINT_get_affine_coordinates(
14165        group: *const EC_GROUP,
14166        point: *const EC_POINT,
14167        x: *mut BIGNUM,
14168        y: *mut BIGNUM,
14169        ctx: *mut BN_CTX,
14170    ) -> ::std::os::raw::c_int;
14171}
14172extern "C" {
14173    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_set_affine_coordinates_GFp"]
14174    pub fn EC_POINT_set_affine_coordinates_GFp(
14175        group: *const EC_GROUP,
14176        point: *mut EC_POINT,
14177        x: *const BIGNUM,
14178        y: *const BIGNUM,
14179        ctx: *mut BN_CTX,
14180    ) -> ::std::os::raw::c_int;
14181}
14182extern "C" {
14183    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_set_affine_coordinates"]
14184    pub fn EC_POINT_set_affine_coordinates(
14185        group: *const EC_GROUP,
14186        point: *mut EC_POINT,
14187        x: *const BIGNUM,
14188        y: *const BIGNUM,
14189        ctx: *mut BN_CTX,
14190    ) -> ::std::os::raw::c_int;
14191}
14192extern "C" {
14193    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_point2oct"]
14194    pub fn EC_POINT_point2oct(
14195        group: *const EC_GROUP,
14196        point: *const EC_POINT,
14197        form: point_conversion_form_t,
14198        buf: *mut u8,
14199        len: usize,
14200        ctx: *mut BN_CTX,
14201    ) -> usize;
14202}
14203extern "C" {
14204    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_point2cbb"]
14205    pub fn EC_POINT_point2cbb(
14206        out: *mut CBB,
14207        group: *const EC_GROUP,
14208        point: *const EC_POINT,
14209        form: point_conversion_form_t,
14210        ctx: *mut BN_CTX,
14211    ) -> ::std::os::raw::c_int;
14212}
14213extern "C" {
14214    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_oct2point"]
14215    pub fn EC_POINT_oct2point(
14216        group: *const EC_GROUP,
14217        point: *mut EC_POINT,
14218        buf: *const u8,
14219        len: usize,
14220        ctx: *mut BN_CTX,
14221    ) -> ::std::os::raw::c_int;
14222}
14223extern "C" {
14224    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_set_compressed_coordinates_GFp"]
14225    pub fn EC_POINT_set_compressed_coordinates_GFp(
14226        group: *const EC_GROUP,
14227        point: *mut EC_POINT,
14228        x: *const BIGNUM,
14229        y_bit: ::std::os::raw::c_int,
14230        ctx: *mut BN_CTX,
14231    ) -> ::std::os::raw::c_int;
14232}
14233extern "C" {
14234    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_add"]
14235    pub fn EC_POINT_add(
14236        group: *const EC_GROUP,
14237        r: *mut EC_POINT,
14238        a: *const EC_POINT,
14239        b: *const EC_POINT,
14240        ctx: *mut BN_CTX,
14241    ) -> ::std::os::raw::c_int;
14242}
14243extern "C" {
14244    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_dbl"]
14245    pub fn EC_POINT_dbl(
14246        group: *const EC_GROUP,
14247        r: *mut EC_POINT,
14248        a: *const EC_POINT,
14249        ctx: *mut BN_CTX,
14250    ) -> ::std::os::raw::c_int;
14251}
14252extern "C" {
14253    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_invert"]
14254    pub fn EC_POINT_invert(
14255        group: *const EC_GROUP,
14256        a: *mut EC_POINT,
14257        ctx: *mut BN_CTX,
14258    ) -> ::std::os::raw::c_int;
14259}
14260extern "C" {
14261    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_mul"]
14262    pub fn EC_POINT_mul(
14263        group: *const EC_GROUP,
14264        r: *mut EC_POINT,
14265        n: *const BIGNUM,
14266        q: *const EC_POINT,
14267        m: *const BIGNUM,
14268        ctx: *mut BN_CTX,
14269    ) -> ::std::os::raw::c_int;
14270}
14271extern "C" {
14272    #[link_name = "\u{1}aws_lc_0_37_0_EC_hash_to_curve_p256_xmd_sha256_sswu"]
14273    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
14274        group: *const EC_GROUP,
14275        out: *mut EC_POINT,
14276        dst: *const u8,
14277        dst_len: usize,
14278        msg: *const u8,
14279        msg_len: usize,
14280    ) -> ::std::os::raw::c_int;
14281}
14282extern "C" {
14283    #[link_name = "\u{1}aws_lc_0_37_0_EC_hash_to_curve_p384_xmd_sha384_sswu"]
14284    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
14285        group: *const EC_GROUP,
14286        out: *mut EC_POINT,
14287        dst: *const u8,
14288        dst_len: usize,
14289        msg: *const u8,
14290        msg_len: usize,
14291    ) -> ::std::os::raw::c_int;
14292}
14293extern "C" {
14294    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_free"]
14295    pub fn EC_GROUP_free(group: *mut EC_GROUP);
14296}
14297extern "C" {
14298    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_dup"]
14299    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
14300}
14301extern "C" {
14302    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_new_curve_GFp"]
14303    pub fn EC_GROUP_new_curve_GFp(
14304        p: *const BIGNUM,
14305        a: *const BIGNUM,
14306        b: *const BIGNUM,
14307        ctx: *mut BN_CTX,
14308    ) -> *mut EC_GROUP;
14309}
14310extern "C" {
14311    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_set_generator"]
14312    pub fn EC_GROUP_set_generator(
14313        group: *mut EC_GROUP,
14314        generator: *const EC_POINT,
14315        order: *const BIGNUM,
14316        cofactor: *const BIGNUM,
14317    ) -> ::std::os::raw::c_int;
14318}
14319extern "C" {
14320    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_point2bn"]
14321    pub fn EC_POINT_point2bn(
14322        group: *const EC_GROUP,
14323        point: *const EC_POINT,
14324        form: point_conversion_form_t,
14325        ret: *mut BIGNUM,
14326        ctx: *mut BN_CTX,
14327    ) -> *mut BIGNUM;
14328}
14329extern "C" {
14330    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_bn2point"]
14331    pub fn EC_POINT_bn2point(
14332        group: *const EC_GROUP,
14333        bn: *const BIGNUM,
14334        point: *mut EC_POINT,
14335        ctx: *mut BN_CTX,
14336    ) -> *mut EC_POINT;
14337}
14338extern "C" {
14339    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_order"]
14340    pub fn EC_GROUP_get_order(
14341        group: *const EC_GROUP,
14342        order: *mut BIGNUM,
14343        ctx: *mut BN_CTX,
14344    ) -> ::std::os::raw::c_int;
14345}
14346#[repr(C)]
14347#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14348pub struct EC_builtin_curve {
14349    pub nid: ::std::os::raw::c_int,
14350    pub comment: *const ::std::os::raw::c_char,
14351}
14352#[test]
14353fn bindgen_test_layout_EC_builtin_curve() {
14354    const UNINIT: ::std::mem::MaybeUninit<EC_builtin_curve> = ::std::mem::MaybeUninit::uninit();
14355    let ptr = UNINIT.as_ptr();
14356    assert_eq!(
14357        ::std::mem::size_of::<EC_builtin_curve>(),
14358        16usize,
14359        "Size of EC_builtin_curve"
14360    );
14361    assert_eq!(
14362        ::std::mem::align_of::<EC_builtin_curve>(),
14363        8usize,
14364        "Alignment of EC_builtin_curve"
14365    );
14366    assert_eq!(
14367        unsafe { ::std::ptr::addr_of!((*ptr).nid) as usize - ptr as usize },
14368        0usize,
14369        "Offset of field: EC_builtin_curve::nid"
14370    );
14371    assert_eq!(
14372        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
14373        8usize,
14374        "Offset of field: EC_builtin_curve::comment"
14375    );
14376}
14377impl Default for EC_builtin_curve {
14378    fn default() -> Self {
14379        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14380        unsafe {
14381            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14382            s.assume_init()
14383        }
14384    }
14385}
14386extern "C" {
14387    #[link_name = "\u{1}aws_lc_0_37_0_EC_get_builtin_curves"]
14388    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
14389        -> usize;
14390}
14391extern "C" {
14392    #[link_name = "\u{1}aws_lc_0_37_0_EC_POINT_clear_free"]
14393    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
14394}
14395extern "C" {
14396    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_set_seed"]
14397    pub fn EC_GROUP_set_seed(
14398        group: *mut EC_GROUP,
14399        p: *const ::std::os::raw::c_uchar,
14400        len: usize,
14401    ) -> usize;
14402}
14403extern "C" {
14404    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get0_seed"]
14405    pub fn EC_GROUP_get0_seed(group: *const EC_GROUP) -> *mut ::std::os::raw::c_uchar;
14406}
14407extern "C" {
14408    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_seed_len"]
14409    pub fn EC_GROUP_get_seed_len(group: *const EC_GROUP) -> usize;
14410}
14411extern "C" {
14412    #[link_name = "\u{1}aws_lc_0_37_0_ECPKParameters_print"]
14413    pub fn ECPKParameters_print(
14414        bio: *mut BIO,
14415        group: *const EC_GROUP,
14416        offset: ::std::os::raw::c_int,
14417    ) -> ::std::os::raw::c_int;
14418}
14419extern "C" {
14420    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_set_asn1_flag"]
14421    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
14422}
14423extern "C" {
14424    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_asn1_flag"]
14425    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14426}
14427extern "C" {
14428    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_set_point_conversion_form"]
14429    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
14430}
14431extern "C" {
14432    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_get_point_conversion_form"]
14433    pub fn EC_GROUP_get_point_conversion_form(group: *const EC_GROUP) -> point_conversion_form_t;
14434}
14435extern "C" {
14436    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_decoded_from_explicit_params"]
14437    pub fn EC_KEY_decoded_from_explicit_params(key: *const EC_KEY) -> ::std::os::raw::c_int;
14438}
14439#[repr(C)]
14440#[derive(Debug, Copy, Clone)]
14441pub struct ec_method_st {
14442    _unused: [u8; 0],
14443}
14444pub type EC_METHOD = ec_method_st;
14445extern "C" {
14446    #[link_name = "\u{1}aws_lc_0_37_0_EC_GROUP_method_of"]
14447    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
14448}
14449extern "C" {
14450    #[link_name = "\u{1}aws_lc_0_37_0_EC_METHOD_get_field_type"]
14451    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
14452}
14453extern "C" {
14454    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_new"]
14455    pub fn ENGINE_new() -> *mut ENGINE;
14456}
14457extern "C" {
14458    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_free"]
14459    pub fn ENGINE_free(engine: *mut ENGINE) -> ::std::os::raw::c_int;
14460}
14461extern "C" {
14462    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_set_RSA"]
14463    pub fn ENGINE_set_RSA(engine: *mut ENGINE, method: *const RSA_METHOD) -> ::std::os::raw::c_int;
14464}
14465extern "C" {
14466    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_get_RSA"]
14467    pub fn ENGINE_get_RSA(engine: *const ENGINE) -> *const RSA_METHOD;
14468}
14469extern "C" {
14470    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_set_EC"]
14471    pub fn ENGINE_set_EC(
14472        engine: *mut ENGINE,
14473        method: *const EC_KEY_METHOD,
14474    ) -> ::std::os::raw::c_int;
14475}
14476extern "C" {
14477    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_get_EC"]
14478    pub fn ENGINE_get_EC(engine: *const ENGINE) -> *const EC_KEY_METHOD;
14479}
14480extern "C" {
14481    #[link_name = "\u{1}aws_lc_0_37_0_ENGINE_cleanup"]
14482    pub fn ENGINE_cleanup();
14483}
14484extern "C" {
14485    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_new"]
14486    pub fn EC_KEY_new() -> *mut EC_KEY;
14487}
14488extern "C" {
14489    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_new_method"]
14490    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
14491}
14492extern "C" {
14493    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_new_by_curve_name"]
14494    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
14495}
14496extern "C" {
14497    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_free"]
14498    pub fn EC_KEY_free(key: *mut EC_KEY);
14499}
14500extern "C" {
14501    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_dup"]
14502    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
14503}
14504extern "C" {
14505    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_up_ref"]
14506    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14507}
14508extern "C" {
14509    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_is_opaque"]
14510    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
14511}
14512extern "C" {
14513    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get0_group"]
14514    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
14515}
14516extern "C" {
14517    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_group"]
14518    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14519}
14520extern "C" {
14521    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get0_private_key"]
14522    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
14523}
14524extern "C" {
14525    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_private_key"]
14526    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::std::os::raw::c_int;
14527}
14528extern "C" {
14529    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get0_public_key"]
14530    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
14531}
14532extern "C" {
14533    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_public_key"]
14534    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
14535}
14536extern "C" {
14537    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_enc_flags"]
14538    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
14539}
14540extern "C" {
14541    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_enc_flags"]
14542    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
14543}
14544extern "C" {
14545    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_conv_form"]
14546    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
14547}
14548extern "C" {
14549    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_conv_form"]
14550    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
14551}
14552extern "C" {
14553    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_check_key"]
14554    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
14555}
14556extern "C" {
14557    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_check_fips"]
14558    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
14559}
14560extern "C" {
14561    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_public_key_affine_coordinates"]
14562    pub fn EC_KEY_set_public_key_affine_coordinates(
14563        key: *mut EC_KEY,
14564        x: *const BIGNUM,
14565        y: *const BIGNUM,
14566    ) -> ::std::os::raw::c_int;
14567}
14568extern "C" {
14569    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_key2buf"]
14570    pub fn EC_KEY_key2buf(
14571        key: *const EC_KEY,
14572        form: point_conversion_form_t,
14573        out_buf: *mut *mut ::std::os::raw::c_uchar,
14574        ctx: *mut BN_CTX,
14575    ) -> usize;
14576}
14577extern "C" {
14578    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_generate_key"]
14579    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14580}
14581extern "C" {
14582    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_generate_key_fips"]
14583    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14584}
14585extern "C" {
14586    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_derive_from_secret"]
14587    pub fn EC_KEY_derive_from_secret(
14588        group: *const EC_GROUP,
14589        secret: *const u8,
14590        secret_len: usize,
14591    ) -> *mut EC_KEY;
14592}
14593extern "C" {
14594    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_parse_private_key"]
14595    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
14596}
14597extern "C" {
14598    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_marshal_private_key"]
14599    pub fn EC_KEY_marshal_private_key(
14600        cbb: *mut CBB,
14601        key: *const EC_KEY,
14602        enc_flags: ::std::os::raw::c_uint,
14603    ) -> ::std::os::raw::c_int;
14604}
14605extern "C" {
14606    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_parse_curve_name"]
14607    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
14608}
14609extern "C" {
14610    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_marshal_curve_name"]
14611    pub fn EC_KEY_marshal_curve_name(
14612        cbb: *mut CBB,
14613        group: *const EC_GROUP,
14614    ) -> ::std::os::raw::c_int;
14615}
14616extern "C" {
14617    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_parse_parameters"]
14618    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
14619}
14620extern "C" {
14621    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_ex_new_index"]
14622    pub fn EC_KEY_get_ex_new_index(
14623        argl: ::std::os::raw::c_long,
14624        argp: *mut ::std::os::raw::c_void,
14625        unused: *mut CRYPTO_EX_unused,
14626        dup_unused: CRYPTO_EX_dup,
14627        free_func: CRYPTO_EX_free,
14628    ) -> ::std::os::raw::c_int;
14629}
14630extern "C" {
14631    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_ex_data"]
14632    pub fn EC_KEY_set_ex_data(
14633        r: *mut EC_KEY,
14634        idx: ::std::os::raw::c_int,
14635        arg: *mut ::std::os::raw::c_void,
14636    ) -> ::std::os::raw::c_int;
14637}
14638extern "C" {
14639    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_ex_data"]
14640    pub fn EC_KEY_get_ex_data(
14641        r: *const EC_KEY,
14642        idx: ::std::os::raw::c_int,
14643    ) -> *mut ::std::os::raw::c_void;
14644}
14645extern "C" {
14646    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECPrivateKey"]
14647    pub fn d2i_ECPrivateKey(
14648        out_key: *mut *mut EC_KEY,
14649        inp: *mut *const u8,
14650        len: ::std::os::raw::c_long,
14651    ) -> *mut EC_KEY;
14652}
14653extern "C" {
14654    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECPrivateKey"]
14655    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14656}
14657extern "C" {
14658    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECParameters"]
14659    pub fn d2i_ECParameters(
14660        out_key: *mut *mut EC_KEY,
14661        inp: *mut *const u8,
14662        len: ::std::os::raw::c_long,
14663    ) -> *mut EC_KEY;
14664}
14665extern "C" {
14666    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECParameters"]
14667    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14668}
14669extern "C" {
14670    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECPKParameters_bio"]
14671    pub fn d2i_ECPKParameters_bio(bio: *mut BIO, out_group: *mut *mut EC_GROUP) -> *mut EC_GROUP;
14672}
14673extern "C" {
14674    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECPKParameters_bio"]
14675    pub fn i2d_ECPKParameters_bio(bio: *mut BIO, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14676}
14677extern "C" {
14678    #[link_name = "\u{1}aws_lc_0_37_0_o2i_ECPublicKey"]
14679    pub fn o2i_ECPublicKey(
14680        out_key: *mut *mut EC_KEY,
14681        inp: *mut *const u8,
14682        len: ::std::os::raw::c_long,
14683    ) -> *mut EC_KEY;
14684}
14685extern "C" {
14686    #[link_name = "\u{1}aws_lc_0_37_0_i2o_ECPublicKey"]
14687    pub fn i2o_ECPublicKey(
14688        key: *const EC_KEY,
14689        outp: *mut *mut ::std::os::raw::c_uchar,
14690    ) -> ::std::os::raw::c_int;
14691}
14692extern "C" {
14693    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_default_method"]
14694    pub fn EC_KEY_get_default_method() -> *const EC_KEY_METHOD;
14695}
14696extern "C" {
14697    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_OpenSSL"]
14698    pub fn EC_KEY_OpenSSL() -> *const EC_KEY_METHOD;
14699}
14700extern "C" {
14701    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_METHOD_new"]
14702    pub fn EC_KEY_METHOD_new(eckey_meth: *const EC_KEY_METHOD) -> *mut EC_KEY_METHOD;
14703}
14704extern "C" {
14705    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_METHOD_free"]
14706    pub fn EC_KEY_METHOD_free(eckey_meth: *mut EC_KEY_METHOD);
14707}
14708extern "C" {
14709    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_method"]
14710    pub fn EC_KEY_set_method(ec: *mut EC_KEY, meth: *const EC_KEY_METHOD) -> ::std::os::raw::c_int;
14711}
14712extern "C" {
14713    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_get_method"]
14714    pub fn EC_KEY_get_method(ec: *const EC_KEY) -> *const EC_KEY_METHOD;
14715}
14716extern "C" {
14717    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_METHOD_set_sign_awslc"]
14718    pub fn EC_KEY_METHOD_set_sign_awslc(
14719        meth: *mut EC_KEY_METHOD,
14720        sign: ::std::option::Option<
14721            unsafe extern "C" fn(
14722                type_: ::std::os::raw::c_int,
14723                digest: *const u8,
14724                digest_len: ::std::os::raw::c_int,
14725                sig: *mut u8,
14726                siglen: *mut ::std::os::raw::c_uint,
14727                k_inv: *const BIGNUM,
14728                r: *const BIGNUM,
14729                eckey: *mut EC_KEY,
14730            ) -> ::std::os::raw::c_int,
14731        >,
14732        sign_sig: ::std::option::Option<
14733            unsafe extern "C" fn(
14734                digest: *const u8,
14735                digest_len: ::std::os::raw::c_int,
14736                in_kinv: *const BIGNUM,
14737                in_r: *const BIGNUM,
14738                eckey: *mut EC_KEY,
14739            ) -> *mut ECDSA_SIG,
14740        >,
14741    );
14742}
14743extern "C" {
14744    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_METHOD_set_init_awslc"]
14745    pub fn EC_KEY_METHOD_set_init_awslc(
14746        meth: *mut EC_KEY_METHOD,
14747        init: ::std::option::Option<
14748            unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int,
14749        >,
14750        finish: ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY)>,
14751    );
14752}
14753extern "C" {
14754    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_METHOD_set_flags"]
14755    pub fn EC_KEY_METHOD_set_flags(
14756        meth: *mut EC_KEY_METHOD,
14757        flags: ::std::os::raw::c_int,
14758    ) -> ::std::os::raw::c_int;
14759}
14760extern "C" {
14761    #[link_name = "\u{1}aws_lc_0_37_0_EC_KEY_set_asn1_flag"]
14762    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
14763}
14764extern "C" {
14765    #[link_name = "\u{1}aws_lc_0_37_0_ECDH_compute_key"]
14766    pub fn ECDH_compute_key(
14767        out: *mut ::std::os::raw::c_void,
14768        outlen: usize,
14769        pub_key: *const EC_POINT,
14770        priv_key: *const EC_KEY,
14771        kdf: ::std::option::Option<
14772            unsafe extern "C" fn(
14773                in_: *const ::std::os::raw::c_void,
14774                inlen: usize,
14775                out: *mut ::std::os::raw::c_void,
14776                outlen: *mut usize,
14777            ) -> *mut ::std::os::raw::c_void,
14778        >,
14779    ) -> ::std::os::raw::c_int;
14780}
14781extern "C" {
14782    #[link_name = "\u{1}aws_lc_0_37_0_ECDH_compute_key_fips"]
14783    pub fn ECDH_compute_key_fips(
14784        out: *mut u8,
14785        out_len: usize,
14786        pub_key: *const EC_POINT,
14787        priv_key: *const EC_KEY,
14788    ) -> ::std::os::raw::c_int;
14789}
14790extern "C" {
14791    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_sign"]
14792    pub fn ECDSA_sign(
14793        type_: ::std::os::raw::c_int,
14794        digest: *const u8,
14795        digest_len: usize,
14796        sig: *mut u8,
14797        sig_len: *mut ::std::os::raw::c_uint,
14798        key: *const EC_KEY,
14799    ) -> ::std::os::raw::c_int;
14800}
14801extern "C" {
14802    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_verify"]
14803    pub fn ECDSA_verify(
14804        type_: ::std::os::raw::c_int,
14805        digest: *const u8,
14806        digest_len: usize,
14807        sig: *const u8,
14808        sig_len: usize,
14809        key: *const EC_KEY,
14810    ) -> ::std::os::raw::c_int;
14811}
14812extern "C" {
14813    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_size"]
14814    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
14815}
14816#[repr(C)]
14817#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14818pub struct ecdsa_sig_st {
14819    pub r: *mut BIGNUM,
14820    pub s: *mut BIGNUM,
14821}
14822#[test]
14823fn bindgen_test_layout_ecdsa_sig_st() {
14824    const UNINIT: ::std::mem::MaybeUninit<ecdsa_sig_st> = ::std::mem::MaybeUninit::uninit();
14825    let ptr = UNINIT.as_ptr();
14826    assert_eq!(
14827        ::std::mem::size_of::<ecdsa_sig_st>(),
14828        16usize,
14829        "Size of ecdsa_sig_st"
14830    );
14831    assert_eq!(
14832        ::std::mem::align_of::<ecdsa_sig_st>(),
14833        8usize,
14834        "Alignment of ecdsa_sig_st"
14835    );
14836    assert_eq!(
14837        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
14838        0usize,
14839        "Offset of field: ecdsa_sig_st::r"
14840    );
14841    assert_eq!(
14842        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
14843        8usize,
14844        "Offset of field: ecdsa_sig_st::s"
14845    );
14846}
14847impl Default for ecdsa_sig_st {
14848    fn default() -> Self {
14849        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14850        unsafe {
14851            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14852            s.assume_init()
14853        }
14854    }
14855}
14856extern "C" {
14857    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_new"]
14858    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
14859}
14860extern "C" {
14861    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_free"]
14862    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
14863}
14864extern "C" {
14865    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_get0_r"]
14866    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
14867}
14868extern "C" {
14869    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_get0_s"]
14870    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
14871}
14872extern "C" {
14873    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_get0"]
14874    pub fn ECDSA_SIG_get0(
14875        sig: *const ECDSA_SIG,
14876        out_r: *mut *const BIGNUM,
14877        out_s: *mut *const BIGNUM,
14878    );
14879}
14880extern "C" {
14881    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_set0"]
14882    pub fn ECDSA_SIG_set0(
14883        sig: *mut ECDSA_SIG,
14884        r: *mut BIGNUM,
14885        s: *mut BIGNUM,
14886    ) -> ::std::os::raw::c_int;
14887}
14888extern "C" {
14889    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_do_sign"]
14890    pub fn ECDSA_do_sign(
14891        digest: *const u8,
14892        digest_len: usize,
14893        key: *const EC_KEY,
14894    ) -> *mut ECDSA_SIG;
14895}
14896extern "C" {
14897    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_do_verify"]
14898    pub fn ECDSA_do_verify(
14899        digest: *const u8,
14900        digest_len: usize,
14901        sig: *const ECDSA_SIG,
14902        key: *const EC_KEY,
14903    ) -> ::std::os::raw::c_int;
14904}
14905extern "C" {
14906    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_parse"]
14907    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
14908}
14909extern "C" {
14910    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_from_bytes"]
14911    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
14912}
14913extern "C" {
14914    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_marshal"]
14915    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
14916}
14917extern "C" {
14918    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_to_bytes"]
14919    pub fn ECDSA_SIG_to_bytes(
14920        out_bytes: *mut *mut u8,
14921        out_len: *mut usize,
14922        sig: *const ECDSA_SIG,
14923    ) -> ::std::os::raw::c_int;
14924}
14925extern "C" {
14926    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_SIG_max_len"]
14927    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
14928}
14929extern "C" {
14930    #[link_name = "\u{1}aws_lc_0_37_0_ECDSA_sign_with_nonce_and_leak_private_key_for_testing"]
14931    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
14932        digest: *const u8,
14933        digest_len: usize,
14934        eckey: *const EC_KEY,
14935        nonce: *const u8,
14936        nonce_len: usize,
14937    ) -> *mut ECDSA_SIG;
14938}
14939extern "C" {
14940    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECDSA_SIG"]
14941    pub fn d2i_ECDSA_SIG(
14942        out: *mut *mut ECDSA_SIG,
14943        inp: *mut *const u8,
14944        len: ::std::os::raw::c_long,
14945    ) -> *mut ECDSA_SIG;
14946}
14947extern "C" {
14948    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECDSA_SIG"]
14949    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14950}
14951extern "C" {
14952    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_gcm"]
14953    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
14954}
14955extern "C" {
14956    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_192_gcm"]
14957    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
14958}
14959extern "C" {
14960    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_gcm"]
14961    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
14962}
14963extern "C" {
14964    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_chacha20_poly1305"]
14965    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
14966}
14967extern "C" {
14968    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_xchacha20_poly1305"]
14969    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
14970}
14971extern "C" {
14972    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_ctr_hmac_sha256"]
14973    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
14974}
14975extern "C" {
14976    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_ctr_hmac_sha256"]
14977    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
14978}
14979extern "C" {
14980    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_gcm_siv"]
14981    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
14982}
14983extern "C" {
14984    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_gcm_siv"]
14985    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
14986}
14987extern "C" {
14988    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_gcm_randnonce"]
14989    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
14990}
14991extern "C" {
14992    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_gcm_randnonce"]
14993    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
14994}
14995extern "C" {
14996    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_ccm_bluetooth"]
14997    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
14998}
14999extern "C" {
15000    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_ccm_bluetooth_8"]
15001    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
15002}
15003extern "C" {
15004    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_ccm_matter"]
15005    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
15006}
15007extern "C" {
15008    #[link_name = "\u{1}aws_lc_0_37_0_EVP_has_aes_hardware"]
15009    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
15010}
15011extern "C" {
15012    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_key_length"]
15013    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
15014}
15015extern "C" {
15016    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_nonce_length"]
15017    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
15018}
15019extern "C" {
15020    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_max_overhead"]
15021    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
15022}
15023extern "C" {
15024    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_max_tag_len"]
15025    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
15026}
15027#[repr(C)]
15028#[derive(Copy, Clone)]
15029pub union evp_aead_ctx_st_state {
15030    pub opaque: [u8; 564usize],
15031    pub alignment: u64,
15032    pub ptr: *mut ::std::os::raw::c_void,
15033}
15034#[test]
15035fn bindgen_test_layout_evp_aead_ctx_st_state() {
15036    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st_state> =
15037        ::std::mem::MaybeUninit::uninit();
15038    let ptr = UNINIT.as_ptr();
15039    assert_eq!(
15040        ::std::mem::size_of::<evp_aead_ctx_st_state>(),
15041        568usize,
15042        "Size of evp_aead_ctx_st_state"
15043    );
15044    assert_eq!(
15045        ::std::mem::align_of::<evp_aead_ctx_st_state>(),
15046        8usize,
15047        "Alignment of evp_aead_ctx_st_state"
15048    );
15049    assert_eq!(
15050        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
15051        0usize,
15052        "Offset of field: evp_aead_ctx_st_state::opaque"
15053    );
15054    assert_eq!(
15055        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
15056        0usize,
15057        "Offset of field: evp_aead_ctx_st_state::alignment"
15058    );
15059    assert_eq!(
15060        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
15061        0usize,
15062        "Offset of field: evp_aead_ctx_st_state::ptr"
15063    );
15064}
15065impl Default for evp_aead_ctx_st_state {
15066    fn default() -> Self {
15067        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15068        unsafe {
15069            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15070            s.assume_init()
15071        }
15072    }
15073}
15074#[repr(C)]
15075#[derive(Copy, Clone)]
15076pub struct evp_aead_ctx_st {
15077    pub aead: *const EVP_AEAD,
15078    pub state: evp_aead_ctx_st_state,
15079    pub state_offset: u8,
15080    pub tag_len: u8,
15081}
15082#[test]
15083fn bindgen_test_layout_evp_aead_ctx_st() {
15084    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st> = ::std::mem::MaybeUninit::uninit();
15085    let ptr = UNINIT.as_ptr();
15086    assert_eq!(
15087        ::std::mem::size_of::<evp_aead_ctx_st>(),
15088        584usize,
15089        "Size of evp_aead_ctx_st"
15090    );
15091    assert_eq!(
15092        ::std::mem::align_of::<evp_aead_ctx_st>(),
15093        8usize,
15094        "Alignment of evp_aead_ctx_st"
15095    );
15096    assert_eq!(
15097        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
15098        0usize,
15099        "Offset of field: evp_aead_ctx_st::aead"
15100    );
15101    assert_eq!(
15102        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15103        8usize,
15104        "Offset of field: evp_aead_ctx_st::state"
15105    );
15106    assert_eq!(
15107        unsafe { ::std::ptr::addr_of!((*ptr).state_offset) as usize - ptr as usize },
15108        576usize,
15109        "Offset of field: evp_aead_ctx_st::state_offset"
15110    );
15111    assert_eq!(
15112        unsafe { ::std::ptr::addr_of!((*ptr).tag_len) as usize - ptr as usize },
15113        577usize,
15114        "Offset of field: evp_aead_ctx_st::tag_len"
15115    );
15116}
15117impl Default for evp_aead_ctx_st {
15118    fn default() -> Self {
15119        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15120        unsafe {
15121            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15122            s.assume_init()
15123        }
15124    }
15125}
15126extern "C" {
15127    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_zero"]
15128    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
15129}
15130extern "C" {
15131    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_new"]
15132    pub fn EVP_AEAD_CTX_new(
15133        aead: *const EVP_AEAD,
15134        key: *const u8,
15135        key_len: usize,
15136        tag_len: usize,
15137    ) -> *mut EVP_AEAD_CTX;
15138}
15139extern "C" {
15140    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_free"]
15141    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
15142}
15143extern "C" {
15144    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_init"]
15145    pub fn EVP_AEAD_CTX_init(
15146        ctx: *mut EVP_AEAD_CTX,
15147        aead: *const EVP_AEAD,
15148        key: *const u8,
15149        key_len: usize,
15150        tag_len: usize,
15151        impl_: *mut ENGINE,
15152    ) -> ::std::os::raw::c_int;
15153}
15154extern "C" {
15155    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_cleanup"]
15156    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
15157}
15158extern "C" {
15159    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_seal"]
15160    pub fn EVP_AEAD_CTX_seal(
15161        ctx: *const EVP_AEAD_CTX,
15162        out: *mut u8,
15163        out_len: *mut usize,
15164        max_out_len: usize,
15165        nonce: *const u8,
15166        nonce_len: usize,
15167        in_: *const u8,
15168        in_len: usize,
15169        ad: *const u8,
15170        ad_len: usize,
15171    ) -> ::std::os::raw::c_int;
15172}
15173extern "C" {
15174    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_open"]
15175    pub fn EVP_AEAD_CTX_open(
15176        ctx: *const EVP_AEAD_CTX,
15177        out: *mut u8,
15178        out_len: *mut usize,
15179        max_out_len: usize,
15180        nonce: *const u8,
15181        nonce_len: usize,
15182        in_: *const u8,
15183        in_len: usize,
15184        ad: *const u8,
15185        ad_len: usize,
15186    ) -> ::std::os::raw::c_int;
15187}
15188extern "C" {
15189    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_seal_scatter"]
15190    pub fn EVP_AEAD_CTX_seal_scatter(
15191        ctx: *const EVP_AEAD_CTX,
15192        out: *mut u8,
15193        out_tag: *mut u8,
15194        out_tag_len: *mut usize,
15195        max_out_tag_len: usize,
15196        nonce: *const u8,
15197        nonce_len: usize,
15198        in_: *const u8,
15199        in_len: usize,
15200        extra_in: *const u8,
15201        extra_in_len: usize,
15202        ad: *const u8,
15203        ad_len: usize,
15204    ) -> ::std::os::raw::c_int;
15205}
15206extern "C" {
15207    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_open_gather"]
15208    pub fn EVP_AEAD_CTX_open_gather(
15209        ctx: *const EVP_AEAD_CTX,
15210        out: *mut u8,
15211        nonce: *const u8,
15212        nonce_len: usize,
15213        in_: *const u8,
15214        in_len: usize,
15215        in_tag: *const u8,
15216        in_tag_len: usize,
15217        ad: *const u8,
15218        ad_len: usize,
15219    ) -> ::std::os::raw::c_int;
15220}
15221extern "C" {
15222    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_aead"]
15223    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
15224}
15225extern "C" {
15226    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_cbc_sha1_tls"]
15227    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
15228}
15229extern "C" {
15230    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_cbc_sha1_tls_implicit_iv"]
15231    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15232}
15233extern "C" {
15234    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_cbc_sha1_tls"]
15235    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
15236}
15237extern "C" {
15238    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_cbc_sha1_tls_implicit_iv"]
15239    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15240}
15241extern "C" {
15242    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_cbc_sha256_tls"]
15243    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
15244}
15245extern "C" {
15246    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_cbc_sha256_tls_implicit_iv"]
15247    pub fn EVP_aead_aes_128_cbc_sha256_tls_implicit_iv() -> *const EVP_AEAD;
15248}
15249extern "C" {
15250    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_cbc_sha384_tls"]
15251    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
15252}
15253extern "C" {
15254    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_des_ede3_cbc_sha1_tls"]
15255    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
15256}
15257extern "C" {
15258    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv"]
15259    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15260}
15261extern "C" {
15262    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_null_sha1_tls"]
15263    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
15264}
15265extern "C" {
15266    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_gcm_tls12"]
15267    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
15268}
15269extern "C" {
15270    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_gcm_tls12"]
15271    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
15272}
15273extern "C" {
15274    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_128_gcm_tls13"]
15275    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
15276}
15277extern "C" {
15278    #[link_name = "\u{1}aws_lc_0_37_0_EVP_aead_aes_256_gcm_tls13"]
15279    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
15280}
15281pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
15282pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
15283pub type evp_aead_direction_t = ::std::os::raw::c_uint;
15284extern "C" {
15285    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_init_with_direction"]
15286    pub fn EVP_AEAD_CTX_init_with_direction(
15287        ctx: *mut EVP_AEAD_CTX,
15288        aead: *const EVP_AEAD,
15289        key: *const u8,
15290        key_len: usize,
15291        tag_len: usize,
15292        dir: evp_aead_direction_t,
15293    ) -> ::std::os::raw::c_int;
15294}
15295extern "C" {
15296    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_get_iv"]
15297    pub fn EVP_AEAD_CTX_get_iv(
15298        ctx: *const EVP_AEAD_CTX,
15299        out_iv: *mut *const u8,
15300        out_len: *mut usize,
15301    ) -> ::std::os::raw::c_int;
15302}
15303extern "C" {
15304    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_CTX_tag_len"]
15305    pub fn EVP_AEAD_CTX_tag_len(
15306        ctx: *const EVP_AEAD_CTX,
15307        out_tag_len: *mut usize,
15308        in_len: usize,
15309        extra_in_len: usize,
15310    ) -> ::std::os::raw::c_int;
15311}
15312extern "C" {
15313    #[link_name = "\u{1}aws_lc_0_37_0_EVP_AEAD_get_iv_from_ipv4_nanosecs"]
15314    pub fn EVP_AEAD_get_iv_from_ipv4_nanosecs(
15315        ipv4_address: u32,
15316        nanosecs: u64,
15317        out_iv: *mut u8,
15318    ) -> ::std::os::raw::c_int;
15319}
15320extern "C" {
15321    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_dup"]
15322    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15323}
15324extern "C" {
15325    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_cmp"]
15326    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15327}
15328extern "C" {
15329    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_get0_data"]
15330    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15331}
15332extern "C" {
15333    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_length"]
15334    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15335}
15336extern "C" {
15337    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_obj2nid"]
15338    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15339}
15340extern "C" {
15341    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_cbs2nid"]
15342    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::std::os::raw::c_int;
15343}
15344extern "C" {
15345    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_sn2nid"]
15346    pub fn OBJ_sn2nid(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15347}
15348extern "C" {
15349    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_ln2nid"]
15350    pub fn OBJ_ln2nid(long_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15351}
15352extern "C" {
15353    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_txt2nid"]
15354    pub fn OBJ_txt2nid(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15355}
15356extern "C" {
15357    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_nid2obj"]
15358    pub fn OBJ_nid2obj(nid: ::std::os::raw::c_int) -> *mut ASN1_OBJECT;
15359}
15360extern "C" {
15361    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_get_undef"]
15362    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15363}
15364extern "C" {
15365    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_nid2sn"]
15366    pub fn OBJ_nid2sn(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15367}
15368extern "C" {
15369    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_nid2ln"]
15370    pub fn OBJ_nid2ln(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15371}
15372extern "C" {
15373    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_nid2cbb"]
15374    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
15375}
15376extern "C" {
15377    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_txt2obj"]
15378    pub fn OBJ_txt2obj(
15379        s: *const ::std::os::raw::c_char,
15380        dont_search_names: ::std::os::raw::c_int,
15381    ) -> *mut ASN1_OBJECT;
15382}
15383extern "C" {
15384    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_obj2txt"]
15385    pub fn OBJ_obj2txt(
15386        out: *mut ::std::os::raw::c_char,
15387        out_len: ::std::os::raw::c_int,
15388        obj: *const ASN1_OBJECT,
15389        always_return_oid: ::std::os::raw::c_int,
15390    ) -> ::std::os::raw::c_int;
15391}
15392extern "C" {
15393    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_create"]
15394    pub fn OBJ_create(
15395        oid: *const ::std::os::raw::c_char,
15396        short_name: *const ::std::os::raw::c_char,
15397        long_name: *const ::std::os::raw::c_char,
15398    ) -> ::std::os::raw::c_int;
15399}
15400extern "C" {
15401    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_find_sigid_algs"]
15402    pub fn OBJ_find_sigid_algs(
15403        sign_nid: ::std::os::raw::c_int,
15404        out_digest_nid: *mut ::std::os::raw::c_int,
15405        out_pkey_nid: *mut ::std::os::raw::c_int,
15406    ) -> ::std::os::raw::c_int;
15407}
15408extern "C" {
15409    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_find_sigid_by_algs"]
15410    pub fn OBJ_find_sigid_by_algs(
15411        out_sign_nid: *mut ::std::os::raw::c_int,
15412        digest_nid: ::std::os::raw::c_int,
15413        pkey_nid: ::std::os::raw::c_int,
15414    ) -> ::std::os::raw::c_int;
15415}
15416#[repr(C)]
15417#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15418pub struct obj_name_st {
15419    pub type_: ::std::os::raw::c_int,
15420    pub alias: ::std::os::raw::c_int,
15421    pub name: *const ::std::os::raw::c_char,
15422    pub data: *const ::std::os::raw::c_char,
15423}
15424#[test]
15425fn bindgen_test_layout_obj_name_st() {
15426    const UNINIT: ::std::mem::MaybeUninit<obj_name_st> = ::std::mem::MaybeUninit::uninit();
15427    let ptr = UNINIT.as_ptr();
15428    assert_eq!(
15429        ::std::mem::size_of::<obj_name_st>(),
15430        24usize,
15431        "Size of obj_name_st"
15432    );
15433    assert_eq!(
15434        ::std::mem::align_of::<obj_name_st>(),
15435        8usize,
15436        "Alignment of obj_name_st"
15437    );
15438    assert_eq!(
15439        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
15440        0usize,
15441        "Offset of field: obj_name_st::type_"
15442    );
15443    assert_eq!(
15444        unsafe { ::std::ptr::addr_of!((*ptr).alias) as usize - ptr as usize },
15445        4usize,
15446        "Offset of field: obj_name_st::alias"
15447    );
15448    assert_eq!(
15449        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
15450        8usize,
15451        "Offset of field: obj_name_st::name"
15452    );
15453    assert_eq!(
15454        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15455        16usize,
15456        "Offset of field: obj_name_st::data"
15457    );
15458}
15459impl Default for obj_name_st {
15460    fn default() -> Self {
15461        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15462        unsafe {
15463            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15464            s.assume_init()
15465        }
15466    }
15467}
15468pub type OBJ_NAME = obj_name_st;
15469extern "C" {
15470    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_NAME_do_all_sorted"]
15471    pub fn OBJ_NAME_do_all_sorted(
15472        type_: ::std::os::raw::c_int,
15473        callback: ::std::option::Option<
15474            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::std::os::raw::c_void),
15475        >,
15476        arg: *mut ::std::os::raw::c_void,
15477    );
15478}
15479extern "C" {
15480    #[link_name = "\u{1}aws_lc_0_37_0_OBJ_cleanup"]
15481    pub fn OBJ_cleanup();
15482}
15483extern "C" {
15484    #[link_name = "\u{1}aws_lc_0_37_0_MD5_Init"]
15485    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15486}
15487extern "C" {
15488    #[link_name = "\u{1}aws_lc_0_37_0_MD5_Update"]
15489    pub fn MD5_Update(
15490        md5: *mut MD5_CTX,
15491        data: *const ::std::os::raw::c_void,
15492        len: usize,
15493    ) -> ::std::os::raw::c_int;
15494}
15495extern "C" {
15496    #[link_name = "\u{1}aws_lc_0_37_0_MD5_Final"]
15497    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15498}
15499extern "C" {
15500    #[link_name = "\u{1}aws_lc_0_37_0_MD5"]
15501    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15502}
15503extern "C" {
15504    #[link_name = "\u{1}aws_lc_0_37_0_MD5_Transform"]
15505    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
15506}
15507#[repr(C)]
15508#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15509pub struct md5_state_st {
15510    pub h: [u32; 4usize],
15511    pub Nl: u32,
15512    pub Nh: u32,
15513    pub data: [u8; 64usize],
15514    pub num: ::std::os::raw::c_uint,
15515}
15516#[test]
15517fn bindgen_test_layout_md5_state_st() {
15518    const UNINIT: ::std::mem::MaybeUninit<md5_state_st> = ::std::mem::MaybeUninit::uninit();
15519    let ptr = UNINIT.as_ptr();
15520    assert_eq!(
15521        ::std::mem::size_of::<md5_state_st>(),
15522        92usize,
15523        "Size of md5_state_st"
15524    );
15525    assert_eq!(
15526        ::std::mem::align_of::<md5_state_st>(),
15527        4usize,
15528        "Alignment of md5_state_st"
15529    );
15530    assert_eq!(
15531        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
15532        0usize,
15533        "Offset of field: md5_state_st::h"
15534    );
15535    assert_eq!(
15536        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
15537        16usize,
15538        "Offset of field: md5_state_st::Nl"
15539    );
15540    assert_eq!(
15541        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
15542        20usize,
15543        "Offset of field: md5_state_st::Nh"
15544    );
15545    assert_eq!(
15546        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15547        24usize,
15548        "Offset of field: md5_state_st::data"
15549    );
15550    assert_eq!(
15551        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
15552        88usize,
15553        "Offset of field: md5_state_st::num"
15554    );
15555}
15556impl Default for md5_state_st {
15557    fn default() -> Self {
15558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15559        unsafe {
15560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15561            s.assume_init()
15562        }
15563    }
15564}
15565extern "C" {
15566    #[link_name = "\u{1}aws_lc_0_37_0_HMAC"]
15567    pub fn HMAC(
15568        evp_md: *const EVP_MD,
15569        key: *const ::std::os::raw::c_void,
15570        key_len: usize,
15571        data: *const u8,
15572        data_len: usize,
15573        out: *mut u8,
15574        out_len: *mut ::std::os::raw::c_uint,
15575    ) -> *mut u8;
15576}
15577extern "C" {
15578    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_init"]
15579    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
15580}
15581extern "C" {
15582    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_new"]
15583    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
15584}
15585extern "C" {
15586    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_cleanup"]
15587    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
15588}
15589extern "C" {
15590    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_cleanse"]
15591    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
15592}
15593extern "C" {
15594    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_free"]
15595    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
15596}
15597extern "C" {
15598    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_Init_ex"]
15599    pub fn HMAC_Init_ex(
15600        ctx: *mut HMAC_CTX,
15601        key: *const ::std::os::raw::c_void,
15602        key_len: usize,
15603        md: *const EVP_MD,
15604        impl_: *mut ENGINE,
15605    ) -> ::std::os::raw::c_int;
15606}
15607extern "C" {
15608    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_Update"]
15609    pub fn HMAC_Update(
15610        ctx: *mut HMAC_CTX,
15611        data: *const u8,
15612        data_len: usize,
15613    ) -> ::std::os::raw::c_int;
15614}
15615extern "C" {
15616    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_Final"]
15617    pub fn HMAC_Final(
15618        ctx: *mut HMAC_CTX,
15619        out: *mut u8,
15620        out_len: *mut ::std::os::raw::c_uint,
15621    ) -> ::std::os::raw::c_int;
15622}
15623extern "C" {
15624    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_size"]
15625    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
15626}
15627extern "C" {
15628    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_get_md"]
15629    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
15630}
15631extern "C" {
15632    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_copy_ex"]
15633    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15634}
15635extern "C" {
15636    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_reset"]
15637    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
15638}
15639extern "C" {
15640    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_set_precomputed_key_export"]
15641    pub fn HMAC_set_precomputed_key_export(ctx: *mut HMAC_CTX) -> ::std::os::raw::c_int;
15642}
15643extern "C" {
15644    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_get_precomputed_key"]
15645    pub fn HMAC_get_precomputed_key(
15646        ctx: *mut HMAC_CTX,
15647        out: *mut u8,
15648        out_len: *mut usize,
15649    ) -> ::std::os::raw::c_int;
15650}
15651extern "C" {
15652    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_Init_from_precomputed_key"]
15653    pub fn HMAC_Init_from_precomputed_key(
15654        ctx: *mut HMAC_CTX,
15655        precomputed_key: *const u8,
15656        precompute_key_len: usize,
15657        md: *const EVP_MD,
15658    ) -> ::std::os::raw::c_int;
15659}
15660extern "C" {
15661    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_Init"]
15662    pub fn HMAC_Init(
15663        ctx: *mut HMAC_CTX,
15664        key: *const ::std::os::raw::c_void,
15665        key_len: ::std::os::raw::c_int,
15666        md: *const EVP_MD,
15667    ) -> ::std::os::raw::c_int;
15668}
15669extern "C" {
15670    #[link_name = "\u{1}aws_lc_0_37_0_HMAC_CTX_copy"]
15671    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15672}
15673#[repr(C)]
15674#[derive(Debug, Copy, Clone)]
15675pub struct hmac_methods_st {
15676    _unused: [u8; 0],
15677}
15678pub type HmacMethods = hmac_methods_st;
15679#[repr(C)]
15680#[derive(Copy, Clone)]
15681pub union md_ctx_union {
15682    pub md5: MD5_CTX,
15683    pub sha1: SHA_CTX,
15684    pub sha256: SHA256_CTX,
15685    pub sha512: SHA512_CTX,
15686    pub sha3: [u8; 400usize],
15687}
15688#[test]
15689fn bindgen_test_layout_md_ctx_union() {
15690    const UNINIT: ::std::mem::MaybeUninit<md_ctx_union> = ::std::mem::MaybeUninit::uninit();
15691    let ptr = UNINIT.as_ptr();
15692    assert_eq!(
15693        ::std::mem::size_of::<md_ctx_union>(),
15694        400usize,
15695        "Size of md_ctx_union"
15696    );
15697    assert_eq!(
15698        ::std::mem::align_of::<md_ctx_union>(),
15699        8usize,
15700        "Alignment of md_ctx_union"
15701    );
15702    assert_eq!(
15703        unsafe { ::std::ptr::addr_of!((*ptr).md5) as usize - ptr as usize },
15704        0usize,
15705        "Offset of field: md_ctx_union::md5"
15706    );
15707    assert_eq!(
15708        unsafe { ::std::ptr::addr_of!((*ptr).sha1) as usize - ptr as usize },
15709        0usize,
15710        "Offset of field: md_ctx_union::sha1"
15711    );
15712    assert_eq!(
15713        unsafe { ::std::ptr::addr_of!((*ptr).sha256) as usize - ptr as usize },
15714        0usize,
15715        "Offset of field: md_ctx_union::sha256"
15716    );
15717    assert_eq!(
15718        unsafe { ::std::ptr::addr_of!((*ptr).sha512) as usize - ptr as usize },
15719        0usize,
15720        "Offset of field: md_ctx_union::sha512"
15721    );
15722    assert_eq!(
15723        unsafe { ::std::ptr::addr_of!((*ptr).sha3) as usize - ptr as usize },
15724        0usize,
15725        "Offset of field: md_ctx_union::sha3"
15726    );
15727}
15728impl Default for md_ctx_union {
15729    fn default() -> Self {
15730        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15731        unsafe {
15732            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15733            s.assume_init()
15734        }
15735    }
15736}
15737#[repr(C)]
15738#[derive(Copy, Clone)]
15739pub struct hmac_ctx_st {
15740    pub md: *const EVP_MD,
15741    pub methods: *const HmacMethods,
15742    pub md_ctx: md_ctx_union,
15743    pub i_ctx: md_ctx_union,
15744    pub o_ctx: md_ctx_union,
15745    pub state: i8,
15746}
15747#[test]
15748fn bindgen_test_layout_hmac_ctx_st() {
15749    const UNINIT: ::std::mem::MaybeUninit<hmac_ctx_st> = ::std::mem::MaybeUninit::uninit();
15750    let ptr = UNINIT.as_ptr();
15751    assert_eq!(
15752        ::std::mem::size_of::<hmac_ctx_st>(),
15753        1224usize,
15754        "Size of hmac_ctx_st"
15755    );
15756    assert_eq!(
15757        ::std::mem::align_of::<hmac_ctx_st>(),
15758        8usize,
15759        "Alignment of hmac_ctx_st"
15760    );
15761    assert_eq!(
15762        unsafe { ::std::ptr::addr_of!((*ptr).md) as usize - ptr as usize },
15763        0usize,
15764        "Offset of field: hmac_ctx_st::md"
15765    );
15766    assert_eq!(
15767        unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize },
15768        8usize,
15769        "Offset of field: hmac_ctx_st::methods"
15770    );
15771    assert_eq!(
15772        unsafe { ::std::ptr::addr_of!((*ptr).md_ctx) as usize - ptr as usize },
15773        16usize,
15774        "Offset of field: hmac_ctx_st::md_ctx"
15775    );
15776    assert_eq!(
15777        unsafe { ::std::ptr::addr_of!((*ptr).i_ctx) as usize - ptr as usize },
15778        416usize,
15779        "Offset of field: hmac_ctx_st::i_ctx"
15780    );
15781    assert_eq!(
15782        unsafe { ::std::ptr::addr_of!((*ptr).o_ctx) as usize - ptr as usize },
15783        816usize,
15784        "Offset of field: hmac_ctx_st::o_ctx"
15785    );
15786    assert_eq!(
15787        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15788        1216usize,
15789        "Offset of field: hmac_ctx_st::state"
15790    );
15791}
15792impl Default for hmac_ctx_st {
15793    fn default() -> Self {
15794        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15795        unsafe {
15796            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15797            s.assume_init()
15798        }
15799    }
15800}
15801extern "C" {
15802    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_new"]
15803    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
15804}
15805extern "C" {
15806    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_free"]
15807    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
15808}
15809extern "C" {
15810    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_up_ref"]
15811    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
15812}
15813extern "C" {
15814    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_is_opaque"]
15815    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15816}
15817extern "C" {
15818    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_cmp"]
15819    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
15820}
15821extern "C" {
15822    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_copy_parameters"]
15823    pub fn EVP_PKEY_copy_parameters(
15824        to: *mut EVP_PKEY,
15825        from: *const EVP_PKEY,
15826    ) -> ::std::os::raw::c_int;
15827}
15828extern "C" {
15829    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_missing_parameters"]
15830    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15831}
15832extern "C" {
15833    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_size"]
15834    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15835}
15836extern "C" {
15837    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_bits"]
15838    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15839}
15840extern "C" {
15841    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_id"]
15842    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15843}
15844extern "C" {
15845    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_get0_name"]
15846    pub fn EVP_MD_get0_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15847}
15848extern "C" {
15849    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_name"]
15850    pub fn EVP_MD_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15851}
15852extern "C" {
15853    #[link_name = "\u{1}aws_lc_0_37_0_EVP_get_pw_prompt"]
15854    pub fn EVP_get_pw_prompt() -> *mut ::std::os::raw::c_char;
15855}
15856extern "C" {
15857    #[link_name = "\u{1}aws_lc_0_37_0_EVP_read_pw_string"]
15858    pub fn EVP_read_pw_string(
15859        buf: *mut ::std::os::raw::c_char,
15860        length: ::std::os::raw::c_int,
15861        prompt: *const ::std::os::raw::c_char,
15862        verify: ::std::os::raw::c_int,
15863    ) -> ::std::os::raw::c_int;
15864}
15865extern "C" {
15866    #[link_name = "\u{1}aws_lc_0_37_0_EVP_read_pw_string_min"]
15867    pub fn EVP_read_pw_string_min(
15868        buf: *mut ::std::os::raw::c_char,
15869        min_length: ::std::os::raw::c_int,
15870        length: ::std::os::raw::c_int,
15871        prompt: *const ::std::os::raw::c_char,
15872        verify: ::std::os::raw::c_int,
15873    ) -> ::std::os::raw::c_int;
15874}
15875extern "C" {
15876    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set1_RSA"]
15877    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15878}
15879extern "C" {
15880    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_assign_RSA"]
15881    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15882}
15883extern "C" {
15884    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get0_RSA"]
15885    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15886}
15887extern "C" {
15888    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get1_RSA"]
15889    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15890}
15891extern "C" {
15892    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set1_DSA"]
15893    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15894}
15895extern "C" {
15896    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_assign_DSA"]
15897    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15898}
15899extern "C" {
15900    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get0_DSA"]
15901    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15902}
15903extern "C" {
15904    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get1_DSA"]
15905    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15906}
15907extern "C" {
15908    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set1_EC_KEY"]
15909    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15910}
15911extern "C" {
15912    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_assign_EC_KEY"]
15913    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15914}
15915extern "C" {
15916    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get0_EC_KEY"]
15917    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15918}
15919extern "C" {
15920    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get1_EC_KEY"]
15921    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15922}
15923extern "C" {
15924    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set1_DH"]
15925    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15926}
15927extern "C" {
15928    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_assign_DH"]
15929    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15930}
15931extern "C" {
15932    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get0_DH"]
15933    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
15934}
15935extern "C" {
15936    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get1_DH"]
15937    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
15938}
15939extern "C" {
15940    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dh_paramgen_prime_len"]
15941    pub fn EVP_PKEY_CTX_set_dh_paramgen_prime_len(
15942        ctx: *mut EVP_PKEY_CTX,
15943        pbits: ::std::os::raw::c_int,
15944    ) -> ::std::os::raw::c_int;
15945}
15946extern "C" {
15947    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dh_paramgen_generator"]
15948    pub fn EVP_PKEY_CTX_set_dh_paramgen_generator(
15949        ctx: *mut EVP_PKEY_CTX,
15950        gen_: ::std::os::raw::c_int,
15951    ) -> ::std::os::raw::c_int;
15952}
15953extern "C" {
15954    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set_type"]
15955    pub fn EVP_PKEY_set_type(
15956        pkey: *mut EVP_PKEY,
15957        type_: ::std::os::raw::c_int,
15958    ) -> ::std::os::raw::c_int;
15959}
15960extern "C" {
15961    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set_type_str"]
15962    pub fn EVP_PKEY_set_type_str(
15963        pkey: *mut EVP_PKEY,
15964        str_: *const ::std::os::raw::c_char,
15965        len: ::std::os::raw::c_int,
15966    ) -> ::std::os::raw::c_int;
15967}
15968extern "C" {
15969    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_cmp_parameters"]
15970    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
15971        -> ::std::os::raw::c_int;
15972}
15973extern "C" {
15974    #[link_name = "\u{1}aws_lc_0_37_0_EVP_parse_public_key"]
15975    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15976}
15977extern "C" {
15978    #[link_name = "\u{1}aws_lc_0_37_0_EVP_marshal_public_key"]
15979    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
15980}
15981extern "C" {
15982    #[link_name = "\u{1}aws_lc_0_37_0_EVP_parse_private_key"]
15983    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15984}
15985extern "C" {
15986    #[link_name = "\u{1}aws_lc_0_37_0_EVP_marshal_private_key"]
15987    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
15988}
15989extern "C" {
15990    #[link_name = "\u{1}aws_lc_0_37_0_EVP_marshal_private_key_v2"]
15991    pub fn EVP_marshal_private_key_v2(cbb: *mut CBB, key: *const EVP_PKEY)
15992        -> ::std::os::raw::c_int;
15993}
15994extern "C" {
15995    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_new_raw_private_key"]
15996    pub fn EVP_PKEY_new_raw_private_key(
15997        type_: ::std::os::raw::c_int,
15998        unused: *mut ENGINE,
15999        in_: *const u8,
16000        len: usize,
16001    ) -> *mut EVP_PKEY;
16002}
16003extern "C" {
16004    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_new_raw_public_key"]
16005    pub fn EVP_PKEY_new_raw_public_key(
16006        type_: ::std::os::raw::c_int,
16007        unused: *mut ENGINE,
16008        in_: *const u8,
16009        len: usize,
16010    ) -> *mut EVP_PKEY;
16011}
16012extern "C" {
16013    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get_raw_private_key"]
16014    pub fn EVP_PKEY_get_raw_private_key(
16015        pkey: *const EVP_PKEY,
16016        out: *mut u8,
16017        out_len: *mut usize,
16018    ) -> ::std::os::raw::c_int;
16019}
16020extern "C" {
16021    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get_raw_public_key"]
16022    pub fn EVP_PKEY_get_raw_public_key(
16023        pkey: *const EVP_PKEY,
16024        out: *mut u8,
16025        out_len: *mut usize,
16026    ) -> ::std::os::raw::c_int;
16027}
16028extern "C" {
16029    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestSignInit"]
16030    pub fn EVP_DigestSignInit(
16031        ctx: *mut EVP_MD_CTX,
16032        pctx: *mut *mut EVP_PKEY_CTX,
16033        type_: *const EVP_MD,
16034        e: *mut ENGINE,
16035        pkey: *mut EVP_PKEY,
16036    ) -> ::std::os::raw::c_int;
16037}
16038extern "C" {
16039    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestSignUpdate"]
16040    pub fn EVP_DigestSignUpdate(
16041        ctx: *mut EVP_MD_CTX,
16042        data: *const ::std::os::raw::c_void,
16043        len: usize,
16044    ) -> ::std::os::raw::c_int;
16045}
16046extern "C" {
16047    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestSignFinal"]
16048    pub fn EVP_DigestSignFinal(
16049        ctx: *mut EVP_MD_CTX,
16050        out_sig: *mut u8,
16051        out_sig_len: *mut usize,
16052    ) -> ::std::os::raw::c_int;
16053}
16054extern "C" {
16055    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestSign"]
16056    pub fn EVP_DigestSign(
16057        ctx: *mut EVP_MD_CTX,
16058        out_sig: *mut u8,
16059        out_sig_len: *mut usize,
16060        data: *const u8,
16061        data_len: usize,
16062    ) -> ::std::os::raw::c_int;
16063}
16064extern "C" {
16065    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestVerifyInit"]
16066    pub fn EVP_DigestVerifyInit(
16067        ctx: *mut EVP_MD_CTX,
16068        pctx: *mut *mut EVP_PKEY_CTX,
16069        type_: *const EVP_MD,
16070        e: *mut ENGINE,
16071        pkey: *mut EVP_PKEY,
16072    ) -> ::std::os::raw::c_int;
16073}
16074extern "C" {
16075    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestVerifyUpdate"]
16076    pub fn EVP_DigestVerifyUpdate(
16077        ctx: *mut EVP_MD_CTX,
16078        data: *const ::std::os::raw::c_void,
16079        len: usize,
16080    ) -> ::std::os::raw::c_int;
16081}
16082extern "C" {
16083    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestVerifyFinal"]
16084    pub fn EVP_DigestVerifyFinal(
16085        ctx: *mut EVP_MD_CTX,
16086        sig: *const u8,
16087        sig_len: usize,
16088    ) -> ::std::os::raw::c_int;
16089}
16090extern "C" {
16091    #[link_name = "\u{1}aws_lc_0_37_0_EVP_DigestVerify"]
16092    pub fn EVP_DigestVerify(
16093        ctx: *mut EVP_MD_CTX,
16094        sig: *const u8,
16095        sig_len: usize,
16096        data: *const u8,
16097        len: usize,
16098    ) -> ::std::os::raw::c_int;
16099}
16100extern "C" {
16101    #[link_name = "\u{1}aws_lc_0_37_0_EVP_SignInit_ex"]
16102    pub fn EVP_SignInit_ex(
16103        ctx: *mut EVP_MD_CTX,
16104        type_: *const EVP_MD,
16105        impl_: *mut ENGINE,
16106    ) -> ::std::os::raw::c_int;
16107}
16108extern "C" {
16109    #[link_name = "\u{1}aws_lc_0_37_0_EVP_SignInit"]
16110    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16111}
16112extern "C" {
16113    #[link_name = "\u{1}aws_lc_0_37_0_EVP_SignUpdate"]
16114    pub fn EVP_SignUpdate(
16115        ctx: *mut EVP_MD_CTX,
16116        data: *const ::std::os::raw::c_void,
16117        len: usize,
16118    ) -> ::std::os::raw::c_int;
16119}
16120extern "C" {
16121    #[link_name = "\u{1}aws_lc_0_37_0_EVP_SignFinal"]
16122    pub fn EVP_SignFinal(
16123        ctx: *const EVP_MD_CTX,
16124        sig: *mut u8,
16125        out_sig_len: *mut ::std::os::raw::c_uint,
16126        pkey: *mut EVP_PKEY,
16127    ) -> ::std::os::raw::c_int;
16128}
16129extern "C" {
16130    #[link_name = "\u{1}aws_lc_0_37_0_EVP_VerifyInit_ex"]
16131    pub fn EVP_VerifyInit_ex(
16132        ctx: *mut EVP_MD_CTX,
16133        type_: *const EVP_MD,
16134        impl_: *mut ENGINE,
16135    ) -> ::std::os::raw::c_int;
16136}
16137extern "C" {
16138    #[link_name = "\u{1}aws_lc_0_37_0_EVP_VerifyInit"]
16139    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16140}
16141extern "C" {
16142    #[link_name = "\u{1}aws_lc_0_37_0_EVP_VerifyUpdate"]
16143    pub fn EVP_VerifyUpdate(
16144        ctx: *mut EVP_MD_CTX,
16145        data: *const ::std::os::raw::c_void,
16146        len: usize,
16147    ) -> ::std::os::raw::c_int;
16148}
16149extern "C" {
16150    #[link_name = "\u{1}aws_lc_0_37_0_EVP_VerifyFinal"]
16151    pub fn EVP_VerifyFinal(
16152        ctx: *mut EVP_MD_CTX,
16153        sig: *const u8,
16154        sig_len: usize,
16155        pkey: *mut EVP_PKEY,
16156    ) -> ::std::os::raw::c_int;
16157}
16158extern "C" {
16159    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_print_public"]
16160    pub fn EVP_PKEY_print_public(
16161        out: *mut BIO,
16162        pkey: *const EVP_PKEY,
16163        indent: ::std::os::raw::c_int,
16164        pctx: *mut ASN1_PCTX,
16165    ) -> ::std::os::raw::c_int;
16166}
16167extern "C" {
16168    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_print_private"]
16169    pub fn EVP_PKEY_print_private(
16170        out: *mut BIO,
16171        pkey: *const EVP_PKEY,
16172        indent: ::std::os::raw::c_int,
16173        pctx: *mut ASN1_PCTX,
16174    ) -> ::std::os::raw::c_int;
16175}
16176extern "C" {
16177    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_print_params"]
16178    pub fn EVP_PKEY_print_params(
16179        out: *mut BIO,
16180        pkey: *const EVP_PKEY,
16181        indent: ::std::os::raw::c_int,
16182        pctx: *mut ASN1_PCTX,
16183    ) -> ::std::os::raw::c_int;
16184}
16185extern "C" {
16186    #[link_name = "\u{1}aws_lc_0_37_0_PKCS5_PBKDF2_HMAC"]
16187    pub fn PKCS5_PBKDF2_HMAC(
16188        password: *const ::std::os::raw::c_char,
16189        password_len: usize,
16190        salt: *const u8,
16191        salt_len: usize,
16192        iterations: u32,
16193        digest: *const EVP_MD,
16194        key_len: usize,
16195        out_key: *mut u8,
16196    ) -> ::std::os::raw::c_int;
16197}
16198extern "C" {
16199    #[link_name = "\u{1}aws_lc_0_37_0_PKCS5_PBKDF2_HMAC_SHA1"]
16200    pub fn PKCS5_PBKDF2_HMAC_SHA1(
16201        password: *const ::std::os::raw::c_char,
16202        password_len: usize,
16203        salt: *const u8,
16204        salt_len: usize,
16205        iterations: u32,
16206        key_len: usize,
16207        out_key: *mut u8,
16208    ) -> ::std::os::raw::c_int;
16209}
16210extern "C" {
16211    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PBE_scrypt"]
16212    pub fn EVP_PBE_scrypt(
16213        password: *const ::std::os::raw::c_char,
16214        password_len: usize,
16215        salt: *const u8,
16216        salt_len: usize,
16217        N: u64,
16218        r: u64,
16219        p: u64,
16220        max_mem: usize,
16221        out_key: *mut u8,
16222        key_len: usize,
16223    ) -> ::std::os::raw::c_int;
16224}
16225extern "C" {
16226    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_new"]
16227    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16228}
16229extern "C" {
16230    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_new_id"]
16231    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16232}
16233extern "C" {
16234    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_free"]
16235    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
16236}
16237extern "C" {
16238    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_dup"]
16239    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
16240}
16241extern "C" {
16242    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get0_pkey"]
16243    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
16244}
16245extern "C" {
16246    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_sign_init"]
16247    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16248}
16249extern "C" {
16250    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_sign"]
16251    pub fn EVP_PKEY_sign(
16252        ctx: *mut EVP_PKEY_CTX,
16253        sig: *mut u8,
16254        sig_len: *mut usize,
16255        digest: *const u8,
16256        digest_len: usize,
16257    ) -> ::std::os::raw::c_int;
16258}
16259extern "C" {
16260    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_verify_init"]
16261    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16262}
16263extern "C" {
16264    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_verify"]
16265    pub fn EVP_PKEY_verify(
16266        ctx: *mut EVP_PKEY_CTX,
16267        sig: *const u8,
16268        sig_len: usize,
16269        digest: *const u8,
16270        digest_len: usize,
16271    ) -> ::std::os::raw::c_int;
16272}
16273extern "C" {
16274    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_encrypt_init"]
16275    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16276}
16277extern "C" {
16278    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_encrypt"]
16279    pub fn EVP_PKEY_encrypt(
16280        ctx: *mut EVP_PKEY_CTX,
16281        out: *mut u8,
16282        out_len: *mut usize,
16283        in_: *const u8,
16284        in_len: usize,
16285    ) -> ::std::os::raw::c_int;
16286}
16287extern "C" {
16288    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_decrypt_init"]
16289    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16290}
16291extern "C" {
16292    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_decrypt"]
16293    pub fn EVP_PKEY_decrypt(
16294        ctx: *mut EVP_PKEY_CTX,
16295        out: *mut u8,
16296        out_len: *mut usize,
16297        in_: *const u8,
16298        in_len: usize,
16299    ) -> ::std::os::raw::c_int;
16300}
16301extern "C" {
16302    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_verify_recover_init"]
16303    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16304}
16305extern "C" {
16306    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_verify_recover"]
16307    pub fn EVP_PKEY_verify_recover(
16308        ctx: *mut EVP_PKEY_CTX,
16309        out: *mut u8,
16310        out_len: *mut usize,
16311        sig: *const u8,
16312        siglen: usize,
16313    ) -> ::std::os::raw::c_int;
16314}
16315extern "C" {
16316    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_derive_init"]
16317    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16318}
16319extern "C" {
16320    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_derive_set_peer"]
16321    pub fn EVP_PKEY_derive_set_peer(
16322        ctx: *mut EVP_PKEY_CTX,
16323        peer: *mut EVP_PKEY,
16324    ) -> ::std::os::raw::c_int;
16325}
16326extern "C" {
16327    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_derive"]
16328    pub fn EVP_PKEY_derive(
16329        ctx: *mut EVP_PKEY_CTX,
16330        key: *mut u8,
16331        out_key_len: *mut usize,
16332    ) -> ::std::os::raw::c_int;
16333}
16334extern "C" {
16335    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_check"]
16336    pub fn EVP_PKEY_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16337}
16338extern "C" {
16339    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_public_check"]
16340    pub fn EVP_PKEY_public_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16341}
16342extern "C" {
16343    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_param_check"]
16344    pub fn EVP_PKEY_param_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16345}
16346extern "C" {
16347    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_keygen_init"]
16348    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16349}
16350extern "C" {
16351    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_keygen"]
16352    pub fn EVP_PKEY_keygen(
16353        ctx: *mut EVP_PKEY_CTX,
16354        out_pkey: *mut *mut EVP_PKEY,
16355    ) -> ::std::os::raw::c_int;
16356}
16357extern "C" {
16358    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_encapsulate"]
16359    pub fn EVP_PKEY_encapsulate(
16360        ctx: *mut EVP_PKEY_CTX,
16361        ciphertext: *mut u8,
16362        ciphertext_len: *mut usize,
16363        shared_secret: *mut u8,
16364        shared_secret_len: *mut usize,
16365    ) -> ::std::os::raw::c_int;
16366}
16367extern "C" {
16368    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_decapsulate"]
16369    pub fn EVP_PKEY_decapsulate(
16370        ctx: *mut EVP_PKEY_CTX,
16371        shared_secret: *mut u8,
16372        shared_secret_len: *mut usize,
16373        ciphertext: *const u8,
16374        ciphertext_len: usize,
16375    ) -> ::std::os::raw::c_int;
16376}
16377extern "C" {
16378    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_paramgen_init"]
16379    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16380}
16381extern "C" {
16382    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_paramgen"]
16383    pub fn EVP_PKEY_paramgen(
16384        ctx: *mut EVP_PKEY_CTX,
16385        out_pkey: *mut *mut EVP_PKEY,
16386    ) -> ::std::os::raw::c_int;
16387}
16388extern "C" {
16389    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_signature_md"]
16390    pub fn EVP_PKEY_CTX_set_signature_md(
16391        ctx: *mut EVP_PKEY_CTX,
16392        md: *const EVP_MD,
16393    ) -> ::std::os::raw::c_int;
16394}
16395extern "C" {
16396    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_signature_md"]
16397    pub fn EVP_PKEY_CTX_get_signature_md(
16398        ctx: *mut EVP_PKEY_CTX,
16399        out_md: *mut *const EVP_MD,
16400    ) -> ::std::os::raw::c_int;
16401}
16402extern "C" {
16403    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_signature_context"]
16404    pub fn EVP_PKEY_CTX_set_signature_context(
16405        ctx: *mut EVP_PKEY_CTX,
16406        context: *const u8,
16407        context_len: usize,
16408    ) -> ::std::os::raw::c_int;
16409}
16410extern "C" {
16411    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get0_signature_context"]
16412    pub fn EVP_PKEY_CTX_get0_signature_context(
16413        ctx: *mut EVP_PKEY_CTX,
16414        context: *mut *const u8,
16415        context_len: *mut usize,
16416    ) -> ::std::os::raw::c_int;
16417}
16418extern "C" {
16419    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_padding"]
16420    pub fn EVP_PKEY_CTX_set_rsa_padding(
16421        ctx: *mut EVP_PKEY_CTX,
16422        padding: ::std::os::raw::c_int,
16423    ) -> ::std::os::raw::c_int;
16424}
16425extern "C" {
16426    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_rsa_padding"]
16427    pub fn EVP_PKEY_CTX_get_rsa_padding(
16428        ctx: *mut EVP_PKEY_CTX,
16429        out_padding: *mut ::std::os::raw::c_int,
16430    ) -> ::std::os::raw::c_int;
16431}
16432extern "C" {
16433    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_pss_saltlen"]
16434    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
16435        ctx: *mut EVP_PKEY_CTX,
16436        salt_len: ::std::os::raw::c_int,
16437    ) -> ::std::os::raw::c_int;
16438}
16439extern "C" {
16440    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_rsa_pss_saltlen"]
16441    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
16442        ctx: *mut EVP_PKEY_CTX,
16443        out_salt_len: *mut ::std::os::raw::c_int,
16444    ) -> ::std::os::raw::c_int;
16445}
16446extern "C" {
16447    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_keygen_bits"]
16448    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
16449        ctx: *mut EVP_PKEY_CTX,
16450        bits: ::std::os::raw::c_int,
16451    ) -> ::std::os::raw::c_int;
16452}
16453extern "C" {
16454    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_keygen_pubexp"]
16455    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
16456        ctx: *mut EVP_PKEY_CTX,
16457        e: *mut BIGNUM,
16458    ) -> ::std::os::raw::c_int;
16459}
16460extern "C" {
16461    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_oaep_md"]
16462    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
16463        ctx: *mut EVP_PKEY_CTX,
16464        md: *const EVP_MD,
16465    ) -> ::std::os::raw::c_int;
16466}
16467extern "C" {
16468    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_rsa_oaep_md"]
16469    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
16470        ctx: *mut EVP_PKEY_CTX,
16471        out_md: *mut *const EVP_MD,
16472    ) -> ::std::os::raw::c_int;
16473}
16474extern "C" {
16475    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_mgf1_md"]
16476    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
16477        ctx: *mut EVP_PKEY_CTX,
16478        md: *const EVP_MD,
16479    ) -> ::std::os::raw::c_int;
16480}
16481extern "C" {
16482    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_rsa_mgf1_md"]
16483    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
16484        ctx: *mut EVP_PKEY_CTX,
16485        out_md: *mut *const EVP_MD,
16486    ) -> ::std::os::raw::c_int;
16487}
16488extern "C" {
16489    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set0_rsa_oaep_label"]
16490    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
16491        ctx: *mut EVP_PKEY_CTX,
16492        label: *mut u8,
16493        label_len: usize,
16494    ) -> ::std::os::raw::c_int;
16495}
16496extern "C" {
16497    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get0_rsa_oaep_label"]
16498    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
16499        ctx: *mut EVP_PKEY_CTX,
16500        out_label: *mut *const u8,
16501    ) -> ::std::os::raw::c_int;
16502}
16503extern "C" {
16504    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_ec_paramgen_curve_nid"]
16505    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
16506        ctx: *mut EVP_PKEY_CTX,
16507        nid: ::std::os::raw::c_int,
16508    ) -> ::std::os::raw::c_int;
16509}
16510extern "C" {
16511    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_kem_set_params"]
16512    pub fn EVP_PKEY_CTX_kem_set_params(
16513        ctx: *mut EVP_PKEY_CTX,
16514        nid: ::std::os::raw::c_int,
16515    ) -> ::std::os::raw::c_int;
16516}
16517extern "C" {
16518    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_kem_new_raw_public_key"]
16519    pub fn EVP_PKEY_kem_new_raw_public_key(
16520        nid: ::std::os::raw::c_int,
16521        in_: *const u8,
16522        len: usize,
16523    ) -> *mut EVP_PKEY;
16524}
16525extern "C" {
16526    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_kem_new_raw_secret_key"]
16527    pub fn EVP_PKEY_kem_new_raw_secret_key(
16528        nid: ::std::os::raw::c_int,
16529        in_: *const u8,
16530        len: usize,
16531    ) -> *mut EVP_PKEY;
16532}
16533extern "C" {
16534    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_kem_new_raw_key"]
16535    pub fn EVP_PKEY_kem_new_raw_key(
16536        nid: ::std::os::raw::c_int,
16537        in_public: *const u8,
16538        len_public: usize,
16539        in_secret: *const u8,
16540        len_secret: usize,
16541    ) -> *mut EVP_PKEY;
16542}
16543extern "C" {
16544    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_kem_check_key"]
16545    pub fn EVP_PKEY_kem_check_key(key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
16546}
16547extern "C" {
16548    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_pqdsa_set_params"]
16549    pub fn EVP_PKEY_CTX_pqdsa_set_params(
16550        ctx: *mut EVP_PKEY_CTX,
16551        nid: ::std::os::raw::c_int,
16552    ) -> ::std::os::raw::c_int;
16553}
16554extern "C" {
16555    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_pqdsa_new_raw_public_key"]
16556    pub fn EVP_PKEY_pqdsa_new_raw_public_key(
16557        nid: ::std::os::raw::c_int,
16558        in_: *const u8,
16559        len: usize,
16560    ) -> *mut EVP_PKEY;
16561}
16562extern "C" {
16563    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_pqdsa_new_raw_private_key"]
16564    pub fn EVP_PKEY_pqdsa_new_raw_private_key(
16565        nid: ::std::os::raw::c_int,
16566        in_: *const u8,
16567        len: usize,
16568    ) -> *mut EVP_PKEY;
16569}
16570extern "C" {
16571    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dh_pad"]
16572    pub fn EVP_PKEY_CTX_set_dh_pad(
16573        ctx: *mut EVP_PKEY_CTX,
16574        pad: ::std::os::raw::c_int,
16575    ) -> ::std::os::raw::c_int;
16576}
16577extern "C" {
16578    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_asn1_get_count"]
16579    pub fn EVP_PKEY_asn1_get_count() -> ::std::os::raw::c_int;
16580}
16581extern "C" {
16582    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_asn1_get0"]
16583    pub fn EVP_PKEY_asn1_get0(idx: ::std::os::raw::c_int) -> *const EVP_PKEY_ASN1_METHOD;
16584}
16585extern "C" {
16586    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_asn1_find"]
16587    pub fn EVP_PKEY_asn1_find(
16588        _pe: *mut *mut ENGINE,
16589        type_: ::std::os::raw::c_int,
16590    ) -> *const EVP_PKEY_ASN1_METHOD;
16591}
16592extern "C" {
16593    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_asn1_find_str"]
16594    pub fn EVP_PKEY_asn1_find_str(
16595        _pe: *mut *mut ENGINE,
16596        name: *const ::std::os::raw::c_char,
16597        len: ::std::os::raw::c_int,
16598    ) -> *const EVP_PKEY_ASN1_METHOD;
16599}
16600extern "C" {
16601    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_asn1_get0_info"]
16602    pub fn EVP_PKEY_asn1_get0_info(
16603        ppkey_id: *mut ::std::os::raw::c_int,
16604        pkey_base_id: *mut ::std::os::raw::c_int,
16605        ppkey_flags: *mut ::std::os::raw::c_int,
16606        pinfo: *mut *const ::std::os::raw::c_char,
16607        ppem_str: *mut *const ::std::os::raw::c_char,
16608        ameth: *const EVP_PKEY_ASN1_METHOD,
16609    ) -> ::std::os::raw::c_int;
16610}
16611pub type EVP_PKEY_gen_cb =
16612    ::std::option::Option<unsafe extern "C" fn(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int>;
16613extern "C" {
16614    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_cb"]
16615    pub fn EVP_PKEY_CTX_set_cb(ctx: *mut EVP_PKEY_CTX, cb: EVP_PKEY_gen_cb);
16616}
16617extern "C" {
16618    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_keygen_info"]
16619    pub fn EVP_PKEY_CTX_get_keygen_info(
16620        ctx: *mut EVP_PKEY_CTX,
16621        idx: ::std::os::raw::c_int,
16622    ) -> ::std::os::raw::c_int;
16623}
16624extern "C" {
16625    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_app_data"]
16626    pub fn EVP_PKEY_CTX_set_app_data(ctx: *mut EVP_PKEY_CTX, data: *mut ::std::os::raw::c_void);
16627}
16628extern "C" {
16629    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_get_app_data"]
16630    pub fn EVP_PKEY_CTX_get_app_data(ctx: *mut EVP_PKEY_CTX) -> *mut ::std::os::raw::c_void;
16631}
16632extern "C" {
16633    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_get_pkey_type"]
16634    pub fn EVP_MD_get_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16635}
16636extern "C" {
16637    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_pkey_type"]
16638    pub fn EVP_MD_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16639}
16640extern "C" {
16641    #[link_name = "\u{1}aws_lc_0_37_0_EVP_CIPHER_do_all_sorted"]
16642    pub fn EVP_CIPHER_do_all_sorted(
16643        callback: ::std::option::Option<
16644            unsafe extern "C" fn(
16645                cipher: *const EVP_CIPHER,
16646                name: *const ::std::os::raw::c_char,
16647                unused: *const ::std::os::raw::c_char,
16648                arg: *mut ::std::os::raw::c_void,
16649            ),
16650        >,
16651        arg: *mut ::std::os::raw::c_void,
16652    );
16653}
16654extern "C" {
16655    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_do_all_sorted"]
16656    pub fn EVP_MD_do_all_sorted(
16657        callback: ::std::option::Option<
16658            unsafe extern "C" fn(
16659                cipher: *const EVP_MD,
16660                name: *const ::std::os::raw::c_char,
16661                unused: *const ::std::os::raw::c_char,
16662                arg: *mut ::std::os::raw::c_void,
16663            ),
16664        >,
16665        arg: *mut ::std::os::raw::c_void,
16666    );
16667}
16668extern "C" {
16669    #[link_name = "\u{1}aws_lc_0_37_0_EVP_MD_do_all"]
16670    pub fn EVP_MD_do_all(
16671        callback: ::std::option::Option<
16672            unsafe extern "C" fn(
16673                cipher: *const EVP_MD,
16674                name: *const ::std::os::raw::c_char,
16675                unused: *const ::std::os::raw::c_char,
16676                arg: *mut ::std::os::raw::c_void,
16677            ),
16678        >,
16679        arg: *mut ::std::os::raw::c_void,
16680    );
16681}
16682extern "C" {
16683    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PrivateKey"]
16684    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16685}
16686extern "C" {
16687    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PublicKey"]
16688    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16689}
16690extern "C" {
16691    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PrivateKey"]
16692    pub fn d2i_PrivateKey(
16693        type_: ::std::os::raw::c_int,
16694        out: *mut *mut EVP_PKEY,
16695        inp: *mut *const u8,
16696        len: ::std::os::raw::c_long,
16697    ) -> *mut EVP_PKEY;
16698}
16699extern "C" {
16700    #[link_name = "\u{1}aws_lc_0_37_0_d2i_AutoPrivateKey"]
16701    pub fn d2i_AutoPrivateKey(
16702        out: *mut *mut EVP_PKEY,
16703        inp: *mut *const u8,
16704        len: ::std::os::raw::c_long,
16705    ) -> *mut EVP_PKEY;
16706}
16707extern "C" {
16708    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PublicKey"]
16709    pub fn d2i_PublicKey(
16710        type_: ::std::os::raw::c_int,
16711        out: *mut *mut EVP_PKEY,
16712        inp: *mut *const u8,
16713        len: ::std::os::raw::c_long,
16714    ) -> *mut EVP_PKEY;
16715}
16716extern "C" {
16717    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_ec_param_enc"]
16718    pub fn EVP_PKEY_CTX_set_ec_param_enc(
16719        ctx: *mut EVP_PKEY_CTX,
16720        encoding: ::std::os::raw::c_int,
16721    ) -> ::std::os::raw::c_int;
16722}
16723extern "C" {
16724    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_set1_tls_encodedpoint"]
16725    pub fn EVP_PKEY_set1_tls_encodedpoint(
16726        pkey: *mut EVP_PKEY,
16727        in_: *const u8,
16728        len: usize,
16729    ) -> ::std::os::raw::c_int;
16730}
16731extern "C" {
16732    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get1_tls_encodedpoint"]
16733    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
16734}
16735extern "C" {
16736    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_base_id"]
16737    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
16738}
16739extern "C" {
16740    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_pss_keygen_md"]
16741    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
16742        ctx: *mut EVP_PKEY_CTX,
16743        md: *const EVP_MD,
16744    ) -> ::std::os::raw::c_int;
16745}
16746extern "C" {
16747    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen"]
16748    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
16749        ctx: *mut EVP_PKEY_CTX,
16750        salt_len: ::std::os::raw::c_int,
16751    ) -> ::std::os::raw::c_int;
16752}
16753extern "C" {
16754    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md"]
16755    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
16756        ctx: *mut EVP_PKEY_CTX,
16757        md: *const EVP_MD,
16758    ) -> ::std::os::raw::c_int;
16759}
16760extern "C" {
16761    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PUBKEY"]
16762    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16763}
16764extern "C" {
16765    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PUBKEY"]
16766    pub fn d2i_PUBKEY(
16767        out: *mut *mut EVP_PKEY,
16768        inp: *mut *const u8,
16769        len: ::std::os::raw::c_long,
16770    ) -> *mut EVP_PKEY;
16771}
16772extern "C" {
16773    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSA_PUBKEY"]
16774    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16775}
16776extern "C" {
16777    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSA_PUBKEY"]
16778    pub fn d2i_RSA_PUBKEY(
16779        out: *mut *mut RSA,
16780        inp: *mut *const u8,
16781        len: ::std::os::raw::c_long,
16782    ) -> *mut RSA;
16783}
16784extern "C" {
16785    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSA_PUBKEY"]
16786    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16787}
16788extern "C" {
16789    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSA_PUBKEY"]
16790    pub fn d2i_DSA_PUBKEY(
16791        out: *mut *mut DSA,
16792        inp: *mut *const u8,
16793        len: ::std::os::raw::c_long,
16794    ) -> *mut DSA;
16795}
16796extern "C" {
16797    #[link_name = "\u{1}aws_lc_0_37_0_i2d_EC_PUBKEY"]
16798    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16799}
16800extern "C" {
16801    #[link_name = "\u{1}aws_lc_0_37_0_d2i_EC_PUBKEY"]
16802    pub fn d2i_EC_PUBKEY(
16803        out: *mut *mut EC_KEY,
16804        inp: *mut *const u8,
16805        len: ::std::os::raw::c_long,
16806    ) -> *mut EC_KEY;
16807}
16808extern "C" {
16809    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_assign"]
16810    pub fn EVP_PKEY_assign(
16811        pkey: *mut EVP_PKEY,
16812        type_: ::std::os::raw::c_int,
16813        key: *mut ::std::os::raw::c_void,
16814    ) -> ::std::os::raw::c_int;
16815}
16816extern "C" {
16817    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_type"]
16818    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
16819}
16820extern "C" {
16821    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_new_mac_key"]
16822    pub fn EVP_PKEY_new_mac_key(
16823        type_: ::std::os::raw::c_int,
16824        engine: *mut ENGINE,
16825        mac_key: *const u8,
16826        mac_key_len: usize,
16827    ) -> *mut EVP_PKEY;
16828}
16829extern "C" {
16830    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_get0"]
16831    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::std::os::raw::c_void;
16832}
16833extern "C" {
16834    #[link_name = "\u{1}aws_lc_0_37_0_OpenSSL_add_all_algorithms"]
16835    pub fn OpenSSL_add_all_algorithms();
16836}
16837extern "C" {
16838    #[link_name = "\u{1}aws_lc_0_37_0_OPENSSL_add_all_algorithms_conf"]
16839    pub fn OPENSSL_add_all_algorithms_conf();
16840}
16841extern "C" {
16842    #[link_name = "\u{1}aws_lc_0_37_0_OpenSSL_add_all_ciphers"]
16843    pub fn OpenSSL_add_all_ciphers();
16844}
16845extern "C" {
16846    #[link_name = "\u{1}aws_lc_0_37_0_OpenSSL_add_all_digests"]
16847    pub fn OpenSSL_add_all_digests();
16848}
16849extern "C" {
16850    #[link_name = "\u{1}aws_lc_0_37_0_EVP_cleanup"]
16851    pub fn EVP_cleanup();
16852}
16853extern "C" {
16854    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dsa_paramgen_bits"]
16855    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
16856        ctx: *mut EVP_PKEY_CTX,
16857        nbits: ::std::os::raw::c_int,
16858    ) -> ::std::os::raw::c_int;
16859}
16860extern "C" {
16861    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dsa_paramgen_md"]
16862    pub fn EVP_PKEY_CTX_set_dsa_paramgen_md(
16863        ctx: *mut EVP_PKEY_CTX,
16864        md: *const EVP_MD,
16865    ) -> ::std::os::raw::c_int;
16866}
16867extern "C" {
16868    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_dsa_paramgen_q_bits"]
16869    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
16870        ctx: *mut EVP_PKEY_CTX,
16871        qbits: ::std::os::raw::c_int,
16872    ) -> ::std::os::raw::c_int;
16873}
16874extern "C" {
16875    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_ctrl_str"]
16876    pub fn EVP_PKEY_CTX_ctrl_str(
16877        ctx: *mut EVP_PKEY_CTX,
16878        type_: *const ::std::os::raw::c_char,
16879        value: *const ::std::os::raw::c_char,
16880    ) -> ::std::os::raw::c_int;
16881}
16882extern "C" {
16883    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_tls1_prf"]
16884    pub fn CRYPTO_tls1_prf(
16885        digest: *const EVP_MD,
16886        out: *mut u8,
16887        out_len: usize,
16888        secret: *const u8,
16889        secret_len: usize,
16890        label: *const ::std::os::raw::c_char,
16891        label_len: usize,
16892        seed1: *const u8,
16893        seed1_len: usize,
16894        seed2: *const u8,
16895        seed2_len: usize,
16896    ) -> ::std::os::raw::c_int;
16897}
16898extern "C" {
16899    #[link_name = "\u{1}aws_lc_0_37_0_SSKDF_digest"]
16900    pub fn SSKDF_digest(
16901        out_key: *mut u8,
16902        out_len: usize,
16903        digest: *const EVP_MD,
16904        secret: *const u8,
16905        secret_len: usize,
16906        info: *const u8,
16907        info_len: usize,
16908    ) -> ::std::os::raw::c_int;
16909}
16910extern "C" {
16911    #[link_name = "\u{1}aws_lc_0_37_0_SSKDF_hmac"]
16912    pub fn SSKDF_hmac(
16913        out_key: *mut u8,
16914        out_len: usize,
16915        digest: *const EVP_MD,
16916        secret: *const u8,
16917        secret_len: usize,
16918        info: *const u8,
16919        info_len: usize,
16920        salt: *const u8,
16921        salt_len: usize,
16922    ) -> ::std::os::raw::c_int;
16923}
16924extern "C" {
16925    #[link_name = "\u{1}aws_lc_0_37_0_KBKDF_ctr_hmac"]
16926    pub fn KBKDF_ctr_hmac(
16927        out_key: *mut u8,
16928        out_len: usize,
16929        digest: *const EVP_MD,
16930        secret: *const u8,
16931        secret_len: usize,
16932        info: *const u8,
16933        info_len: usize,
16934    ) -> ::std::os::raw::c_int;
16935}
16936extern "C" {
16937    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_hkdf_mode"]
16938    pub fn EVP_PKEY_CTX_hkdf_mode(
16939        ctx: *mut EVP_PKEY_CTX,
16940        mode: ::std::os::raw::c_int,
16941    ) -> ::std::os::raw::c_int;
16942}
16943extern "C" {
16944    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set_hkdf_md"]
16945    pub fn EVP_PKEY_CTX_set_hkdf_md(
16946        ctx: *mut EVP_PKEY_CTX,
16947        md: *const EVP_MD,
16948    ) -> ::std::os::raw::c_int;
16949}
16950extern "C" {
16951    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set1_hkdf_key"]
16952    pub fn EVP_PKEY_CTX_set1_hkdf_key(
16953        ctx: *mut EVP_PKEY_CTX,
16954        key: *const u8,
16955        key_len: usize,
16956    ) -> ::std::os::raw::c_int;
16957}
16958extern "C" {
16959    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_set1_hkdf_salt"]
16960    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
16961        ctx: *mut EVP_PKEY_CTX,
16962        salt: *const u8,
16963        salt_len: usize,
16964    ) -> ::std::os::raw::c_int;
16965}
16966extern "C" {
16967    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_CTX_add1_hkdf_info"]
16968    pub fn EVP_PKEY_CTX_add1_hkdf_info(
16969        ctx: *mut EVP_PKEY_CTX,
16970        info: *const u8,
16971        info_len: usize,
16972    ) -> ::std::os::raw::c_int;
16973}
16974extern "C" {
16975    #[link_name = "\u{1}aws_lc_0_37_0_HKDF"]
16976    pub fn HKDF(
16977        out_key: *mut u8,
16978        out_len: usize,
16979        digest: *const EVP_MD,
16980        secret: *const u8,
16981        secret_len: usize,
16982        salt: *const u8,
16983        salt_len: usize,
16984        info: *const u8,
16985        info_len: usize,
16986    ) -> ::std::os::raw::c_int;
16987}
16988extern "C" {
16989    #[link_name = "\u{1}aws_lc_0_37_0_HKDF_extract"]
16990    pub fn HKDF_extract(
16991        out_key: *mut u8,
16992        out_len: *mut usize,
16993        digest: *const EVP_MD,
16994        secret: *const u8,
16995        secret_len: usize,
16996        salt: *const u8,
16997        salt_len: usize,
16998    ) -> ::std::os::raw::c_int;
16999}
17000extern "C" {
17001    #[link_name = "\u{1}aws_lc_0_37_0_HKDF_expand"]
17002    pub fn HKDF_expand(
17003        out_key: *mut u8,
17004        out_len: usize,
17005        digest: *const EVP_MD,
17006        prk: *const u8,
17007        prk_len: usize,
17008        info: *const u8,
17009        info_len: usize,
17010    ) -> ::std::os::raw::c_int;
17011}
17012extern "C" {
17013    #[link_name = "\u{1}aws_lc_0_37_0_EVP_hpke_x25519_hkdf_sha256"]
17014    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
17015}
17016extern "C" {
17017    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEM_id"]
17018    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
17019}
17020extern "C" {
17021    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEM_public_key_len"]
17022    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17023}
17024extern "C" {
17025    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEM_private_key_len"]
17026    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17027}
17028extern "C" {
17029    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEM_enc_len"]
17030    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
17031}
17032extern "C" {
17033    #[link_name = "\u{1}aws_lc_0_37_0_EVP_hpke_hkdf_sha256"]
17034    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
17035}
17036extern "C" {
17037    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KDF_id"]
17038    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
17039}
17040extern "C" {
17041    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KDF_hkdf_md"]
17042    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
17043}
17044extern "C" {
17045    #[link_name = "\u{1}aws_lc_0_37_0_EVP_hpke_aes_128_gcm"]
17046    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
17047}
17048extern "C" {
17049    #[link_name = "\u{1}aws_lc_0_37_0_EVP_hpke_aes_256_gcm"]
17050    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
17051}
17052extern "C" {
17053    #[link_name = "\u{1}aws_lc_0_37_0_EVP_hpke_chacha20_poly1305"]
17054    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
17055}
17056extern "C" {
17057    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_AEAD_id"]
17058    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
17059}
17060extern "C" {
17061    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_AEAD_aead"]
17062    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
17063}
17064extern "C" {
17065    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_zero"]
17066    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
17067}
17068extern "C" {
17069    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_cleanup"]
17070    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
17071}
17072extern "C" {
17073    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_new"]
17074    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
17075}
17076extern "C" {
17077    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_free"]
17078    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
17079}
17080extern "C" {
17081    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_copy"]
17082    pub fn EVP_HPKE_KEY_copy(
17083        dst: *mut EVP_HPKE_KEY,
17084        src: *const EVP_HPKE_KEY,
17085    ) -> ::std::os::raw::c_int;
17086}
17087extern "C" {
17088    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_move"]
17089    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
17090}
17091extern "C" {
17092    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_init"]
17093    pub fn EVP_HPKE_KEY_init(
17094        key: *mut EVP_HPKE_KEY,
17095        kem: *const EVP_HPKE_KEM,
17096        priv_key: *const u8,
17097        priv_key_len: usize,
17098    ) -> ::std::os::raw::c_int;
17099}
17100extern "C" {
17101    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_generate"]
17102    pub fn EVP_HPKE_KEY_generate(
17103        key: *mut EVP_HPKE_KEY,
17104        kem: *const EVP_HPKE_KEM,
17105    ) -> ::std::os::raw::c_int;
17106}
17107extern "C" {
17108    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_kem"]
17109    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
17110}
17111extern "C" {
17112    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_public_key"]
17113    pub fn EVP_HPKE_KEY_public_key(
17114        key: *const EVP_HPKE_KEY,
17115        out: *mut u8,
17116        out_len: *mut usize,
17117        max_out: usize,
17118    ) -> ::std::os::raw::c_int;
17119}
17120extern "C" {
17121    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_KEY_private_key"]
17122    pub fn EVP_HPKE_KEY_private_key(
17123        key: *const EVP_HPKE_KEY,
17124        out: *mut u8,
17125        out_len: *mut usize,
17126        max_out: usize,
17127    ) -> ::std::os::raw::c_int;
17128}
17129extern "C" {
17130    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_zero"]
17131    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
17132}
17133extern "C" {
17134    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_cleanup"]
17135    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
17136}
17137extern "C" {
17138    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_new"]
17139    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
17140}
17141extern "C" {
17142    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_free"]
17143    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
17144}
17145extern "C" {
17146    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_sender"]
17147    pub fn EVP_HPKE_CTX_setup_sender(
17148        ctx: *mut EVP_HPKE_CTX,
17149        out_enc: *mut u8,
17150        out_enc_len: *mut usize,
17151        max_enc: usize,
17152        kem: *const EVP_HPKE_KEM,
17153        kdf: *const EVP_HPKE_KDF,
17154        aead: *const EVP_HPKE_AEAD,
17155        peer_public_key: *const u8,
17156        peer_public_key_len: usize,
17157        info: *const u8,
17158        info_len: usize,
17159    ) -> ::std::os::raw::c_int;
17160}
17161extern "C" {
17162    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_sender_with_seed_for_testing"]
17163    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
17164        ctx: *mut EVP_HPKE_CTX,
17165        out_enc: *mut u8,
17166        out_enc_len: *mut usize,
17167        max_enc: usize,
17168        kem: *const EVP_HPKE_KEM,
17169        kdf: *const EVP_HPKE_KDF,
17170        aead: *const EVP_HPKE_AEAD,
17171        peer_public_key: *const u8,
17172        peer_public_key_len: usize,
17173        info: *const u8,
17174        info_len: usize,
17175        seed: *const u8,
17176        seed_len: usize,
17177    ) -> ::std::os::raw::c_int;
17178}
17179extern "C" {
17180    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_recipient"]
17181    pub fn EVP_HPKE_CTX_setup_recipient(
17182        ctx: *mut EVP_HPKE_CTX,
17183        key: *const EVP_HPKE_KEY,
17184        kdf: *const EVP_HPKE_KDF,
17185        aead: *const EVP_HPKE_AEAD,
17186        enc: *const u8,
17187        enc_len: usize,
17188        info: *const u8,
17189        info_len: usize,
17190    ) -> ::std::os::raw::c_int;
17191}
17192extern "C" {
17193    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_auth_sender"]
17194    pub fn EVP_HPKE_CTX_setup_auth_sender(
17195        ctx: *mut EVP_HPKE_CTX,
17196        out_enc: *mut u8,
17197        out_enc_len: *mut usize,
17198        max_enc: usize,
17199        key: *const EVP_HPKE_KEY,
17200        kdf: *const EVP_HPKE_KDF,
17201        aead: *const EVP_HPKE_AEAD,
17202        peer_public_key: *const u8,
17203        peer_public_key_len: usize,
17204        info: *const u8,
17205        info_len: usize,
17206    ) -> ::std::os::raw::c_int;
17207}
17208extern "C" {
17209    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing"]
17210    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
17211        ctx: *mut EVP_HPKE_CTX,
17212        out_enc: *mut u8,
17213        out_enc_len: *mut usize,
17214        max_enc: usize,
17215        key: *const EVP_HPKE_KEY,
17216        kdf: *const EVP_HPKE_KDF,
17217        aead: *const EVP_HPKE_AEAD,
17218        peer_public_key: *const u8,
17219        peer_public_key_len: usize,
17220        info: *const u8,
17221        info_len: usize,
17222        seed: *const u8,
17223        seed_len: usize,
17224    ) -> ::std::os::raw::c_int;
17225}
17226extern "C" {
17227    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_setup_auth_recipient"]
17228    pub fn EVP_HPKE_CTX_setup_auth_recipient(
17229        ctx: *mut EVP_HPKE_CTX,
17230        key: *const EVP_HPKE_KEY,
17231        kdf: *const EVP_HPKE_KDF,
17232        aead: *const EVP_HPKE_AEAD,
17233        enc: *const u8,
17234        enc_len: usize,
17235        info: *const u8,
17236        info_len: usize,
17237        peer_public_key: *const u8,
17238        peer_public_key_len: usize,
17239    ) -> ::std::os::raw::c_int;
17240}
17241extern "C" {
17242    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_open"]
17243    pub fn EVP_HPKE_CTX_open(
17244        ctx: *mut EVP_HPKE_CTX,
17245        out: *mut u8,
17246        out_len: *mut usize,
17247        max_out_len: usize,
17248        in_: *const u8,
17249        in_len: usize,
17250        ad: *const u8,
17251        ad_len: usize,
17252    ) -> ::std::os::raw::c_int;
17253}
17254extern "C" {
17255    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_seal"]
17256    pub fn EVP_HPKE_CTX_seal(
17257        ctx: *mut EVP_HPKE_CTX,
17258        out: *mut u8,
17259        out_len: *mut usize,
17260        max_out_len: usize,
17261        in_: *const u8,
17262        in_len: usize,
17263        ad: *const u8,
17264        ad_len: usize,
17265    ) -> ::std::os::raw::c_int;
17266}
17267extern "C" {
17268    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_export"]
17269    pub fn EVP_HPKE_CTX_export(
17270        ctx: *const EVP_HPKE_CTX,
17271        out: *mut u8,
17272        secret_len: usize,
17273        context: *const u8,
17274        context_len: usize,
17275    ) -> ::std::os::raw::c_int;
17276}
17277extern "C" {
17278    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_max_overhead"]
17279    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
17280}
17281extern "C" {
17282    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_kem"]
17283    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
17284}
17285extern "C" {
17286    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_aead"]
17287    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
17288}
17289extern "C" {
17290    #[link_name = "\u{1}aws_lc_0_37_0_EVP_HPKE_CTX_kdf"]
17291    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
17292}
17293#[repr(C)]
17294#[derive(Copy, Clone)]
17295pub struct evp_hpke_ctx_st {
17296    pub kem: *const EVP_HPKE_KEM,
17297    pub aead: *const EVP_HPKE_AEAD,
17298    pub kdf: *const EVP_HPKE_KDF,
17299    pub aead_ctx: EVP_AEAD_CTX,
17300    pub base_nonce: [u8; 24usize],
17301    pub exporter_secret: [u8; 64usize],
17302    pub seq: u64,
17303    pub is_sender: ::std::os::raw::c_int,
17304}
17305#[test]
17306fn bindgen_test_layout_evp_hpke_ctx_st() {
17307    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_ctx_st> = ::std::mem::MaybeUninit::uninit();
17308    let ptr = UNINIT.as_ptr();
17309    assert_eq!(
17310        ::std::mem::size_of::<evp_hpke_ctx_st>(),
17311        712usize,
17312        "Size of evp_hpke_ctx_st"
17313    );
17314    assert_eq!(
17315        ::std::mem::align_of::<evp_hpke_ctx_st>(),
17316        8usize,
17317        "Alignment of evp_hpke_ctx_st"
17318    );
17319    assert_eq!(
17320        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17321        0usize,
17322        "Offset of field: evp_hpke_ctx_st::kem"
17323    );
17324    assert_eq!(
17325        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
17326        8usize,
17327        "Offset of field: evp_hpke_ctx_st::aead"
17328    );
17329    assert_eq!(
17330        unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize },
17331        16usize,
17332        "Offset of field: evp_hpke_ctx_st::kdf"
17333    );
17334    assert_eq!(
17335        unsafe { ::std::ptr::addr_of!((*ptr).aead_ctx) as usize - ptr as usize },
17336        24usize,
17337        "Offset of field: evp_hpke_ctx_st::aead_ctx"
17338    );
17339    assert_eq!(
17340        unsafe { ::std::ptr::addr_of!((*ptr).base_nonce) as usize - ptr as usize },
17341        608usize,
17342        "Offset of field: evp_hpke_ctx_st::base_nonce"
17343    );
17344    assert_eq!(
17345        unsafe { ::std::ptr::addr_of!((*ptr).exporter_secret) as usize - ptr as usize },
17346        632usize,
17347        "Offset of field: evp_hpke_ctx_st::exporter_secret"
17348    );
17349    assert_eq!(
17350        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
17351        696usize,
17352        "Offset of field: evp_hpke_ctx_st::seq"
17353    );
17354    assert_eq!(
17355        unsafe { ::std::ptr::addr_of!((*ptr).is_sender) as usize - ptr as usize },
17356        704usize,
17357        "Offset of field: evp_hpke_ctx_st::is_sender"
17358    );
17359}
17360impl Default for evp_hpke_ctx_st {
17361    fn default() -> Self {
17362        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17363        unsafe {
17364            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17365            s.assume_init()
17366        }
17367    }
17368}
17369#[repr(C)]
17370#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17371pub struct evp_hpke_key_st {
17372    pub kem: *const EVP_HPKE_KEM,
17373    pub private_key: [u8; 32usize],
17374    pub public_key: [u8; 32usize],
17375}
17376#[test]
17377fn bindgen_test_layout_evp_hpke_key_st() {
17378    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_key_st> = ::std::mem::MaybeUninit::uninit();
17379    let ptr = UNINIT.as_ptr();
17380    assert_eq!(
17381        ::std::mem::size_of::<evp_hpke_key_st>(),
17382        72usize,
17383        "Size of evp_hpke_key_st"
17384    );
17385    assert_eq!(
17386        ::std::mem::align_of::<evp_hpke_key_st>(),
17387        8usize,
17388        "Alignment of evp_hpke_key_st"
17389    );
17390    assert_eq!(
17391        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17392        0usize,
17393        "Offset of field: evp_hpke_key_st::kem"
17394    );
17395    assert_eq!(
17396        unsafe { ::std::ptr::addr_of!((*ptr).private_key) as usize - ptr as usize },
17397        8usize,
17398        "Offset of field: evp_hpke_key_st::private_key"
17399    );
17400    assert_eq!(
17401        unsafe { ::std::ptr::addr_of!((*ptr).public_key) as usize - ptr as usize },
17402        40usize,
17403        "Offset of field: evp_hpke_key_st::public_key"
17404    );
17405}
17406impl Default for evp_hpke_key_st {
17407    fn default() -> Self {
17408        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17409        unsafe {
17410            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17411            s.assume_init()
17412        }
17413    }
17414}
17415#[repr(C)]
17416#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17417pub struct HRSS_private_key {
17418    pub opaque: [u8; 1808usize],
17419}
17420#[test]
17421fn bindgen_test_layout_HRSS_private_key() {
17422    const UNINIT: ::std::mem::MaybeUninit<HRSS_private_key> = ::std::mem::MaybeUninit::uninit();
17423    let ptr = UNINIT.as_ptr();
17424    assert_eq!(
17425        ::std::mem::size_of::<HRSS_private_key>(),
17426        1808usize,
17427        "Size of HRSS_private_key"
17428    );
17429    assert_eq!(
17430        ::std::mem::align_of::<HRSS_private_key>(),
17431        1usize,
17432        "Alignment of HRSS_private_key"
17433    );
17434    assert_eq!(
17435        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17436        0usize,
17437        "Offset of field: HRSS_private_key::opaque"
17438    );
17439}
17440impl Default for HRSS_private_key {
17441    fn default() -> Self {
17442        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17443        unsafe {
17444            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17445            s.assume_init()
17446        }
17447    }
17448}
17449#[repr(C)]
17450#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17451pub struct HRSS_public_key {
17452    pub opaque: [u8; 1424usize],
17453}
17454#[test]
17455fn bindgen_test_layout_HRSS_public_key() {
17456    const UNINIT: ::std::mem::MaybeUninit<HRSS_public_key> = ::std::mem::MaybeUninit::uninit();
17457    let ptr = UNINIT.as_ptr();
17458    assert_eq!(
17459        ::std::mem::size_of::<HRSS_public_key>(),
17460        1424usize,
17461        "Size of HRSS_public_key"
17462    );
17463    assert_eq!(
17464        ::std::mem::align_of::<HRSS_public_key>(),
17465        1usize,
17466        "Alignment of HRSS_public_key"
17467    );
17468    assert_eq!(
17469        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17470        0usize,
17471        "Offset of field: HRSS_public_key::opaque"
17472    );
17473}
17474impl Default for HRSS_public_key {
17475    fn default() -> Self {
17476        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17477        unsafe {
17478            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17479            s.assume_init()
17480        }
17481    }
17482}
17483extern "C" {
17484    #[link_name = "\u{1}aws_lc_0_37_0_HRSS_generate_key"]
17485    pub fn HRSS_generate_key(
17486        out_pub: *mut HRSS_public_key,
17487        out_priv: *mut HRSS_private_key,
17488        input: *const u8,
17489    ) -> ::std::os::raw::c_int;
17490}
17491extern "C" {
17492    #[link_name = "\u{1}aws_lc_0_37_0_HRSS_encap"]
17493    pub fn HRSS_encap(
17494        out_ciphertext: *mut u8,
17495        out_shared_key: *mut u8,
17496        in_pub: *const HRSS_public_key,
17497        in_: *const u8,
17498    ) -> ::std::os::raw::c_int;
17499}
17500extern "C" {
17501    #[link_name = "\u{1}aws_lc_0_37_0_HRSS_decap"]
17502    pub fn HRSS_decap(
17503        out_shared_key: *mut u8,
17504        in_priv: *const HRSS_private_key,
17505        ciphertext: *const u8,
17506        ciphertext_len: usize,
17507    ) -> ::std::os::raw::c_int;
17508}
17509extern "C" {
17510    #[link_name = "\u{1}aws_lc_0_37_0_HRSS_marshal_public_key"]
17511    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
17512}
17513extern "C" {
17514    #[link_name = "\u{1}aws_lc_0_37_0_HRSS_parse_public_key"]
17515    pub fn HRSS_parse_public_key(
17516        out: *mut HRSS_public_key,
17517        in_: *const u8,
17518    ) -> ::std::os::raw::c_int;
17519}
17520extern "C" {
17521    #[link_name = "\u{1}aws_lc_0_37_0_MD4_Init"]
17522    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17523}
17524extern "C" {
17525    #[link_name = "\u{1}aws_lc_0_37_0_MD4_Update"]
17526    pub fn MD4_Update(
17527        md4: *mut MD4_CTX,
17528        data: *const ::std::os::raw::c_void,
17529        len: usize,
17530    ) -> ::std::os::raw::c_int;
17531}
17532extern "C" {
17533    #[link_name = "\u{1}aws_lc_0_37_0_MD4_Final"]
17534    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17535}
17536extern "C" {
17537    #[link_name = "\u{1}aws_lc_0_37_0_MD4"]
17538    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
17539}
17540extern "C" {
17541    #[link_name = "\u{1}aws_lc_0_37_0_MD4_Transform"]
17542    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
17543}
17544#[repr(C)]
17545#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17546pub struct md4_state_st {
17547    pub h: [u32; 4usize],
17548    pub Nl: u32,
17549    pub Nh: u32,
17550    pub data: [u8; 64usize],
17551    pub num: ::std::os::raw::c_uint,
17552}
17553#[test]
17554fn bindgen_test_layout_md4_state_st() {
17555    const UNINIT: ::std::mem::MaybeUninit<md4_state_st> = ::std::mem::MaybeUninit::uninit();
17556    let ptr = UNINIT.as_ptr();
17557    assert_eq!(
17558        ::std::mem::size_of::<md4_state_st>(),
17559        92usize,
17560        "Size of md4_state_st"
17561    );
17562    assert_eq!(
17563        ::std::mem::align_of::<md4_state_st>(),
17564        4usize,
17565        "Alignment of md4_state_st"
17566    );
17567    assert_eq!(
17568        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
17569        0usize,
17570        "Offset of field: md4_state_st::h"
17571    );
17572    assert_eq!(
17573        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
17574        16usize,
17575        "Offset of field: md4_state_st::Nl"
17576    );
17577    assert_eq!(
17578        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
17579        20usize,
17580        "Offset of field: md4_state_st::Nh"
17581    );
17582    assert_eq!(
17583        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17584        24usize,
17585        "Offset of field: md4_state_st::data"
17586    );
17587    assert_eq!(
17588        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
17589        88usize,
17590        "Offset of field: md4_state_st::num"
17591    );
17592}
17593impl Default for md4_state_st {
17594    fn default() -> Self {
17595        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17596        unsafe {
17597            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17598            s.assume_init()
17599        }
17600    }
17601}
17602#[repr(C)]
17603#[derive(Debug, Copy, Clone)]
17604pub struct stack_st_CRYPTO_BUFFER {
17605    _unused: [u8; 0],
17606}
17607#[repr(C)]
17608#[derive(Debug, Copy, Clone)]
17609pub struct stack_st_X509 {
17610    _unused: [u8; 0],
17611}
17612#[repr(C)]
17613#[derive(Debug, Copy, Clone)]
17614pub struct stack_st_X509_CRL {
17615    _unused: [u8; 0],
17616}
17617extern "C" {
17618    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_raw_certificates"]
17619    pub fn PKCS7_get_raw_certificates(
17620        out_certs: *mut stack_st_CRYPTO_BUFFER,
17621        cbs: *mut CBS,
17622        pool: *mut CRYPTO_BUFFER_POOL,
17623    ) -> ::std::os::raw::c_int;
17624}
17625extern "C" {
17626    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_certificates"]
17627    pub fn PKCS7_get_certificates(
17628        out_certs: *mut stack_st_X509,
17629        cbs: *mut CBS,
17630    ) -> ::std::os::raw::c_int;
17631}
17632extern "C" {
17633    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_bundle_raw_certificates"]
17634    pub fn PKCS7_bundle_raw_certificates(
17635        out: *mut CBB,
17636        certs: *const stack_st_CRYPTO_BUFFER,
17637    ) -> ::std::os::raw::c_int;
17638}
17639extern "C" {
17640    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_bundle_certificates"]
17641    pub fn PKCS7_bundle_certificates(
17642        out: *mut CBB,
17643        certs: *const stack_st_X509,
17644    ) -> ::std::os::raw::c_int;
17645}
17646extern "C" {
17647    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_CRLs"]
17648    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS)
17649        -> ::std::os::raw::c_int;
17650}
17651extern "C" {
17652    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_bundle_CRLs"]
17653    pub fn PKCS7_bundle_CRLs(
17654        out: *mut CBB,
17655        crls: *const stack_st_X509_CRL,
17656    ) -> ::std::os::raw::c_int;
17657}
17658extern "C" {
17659    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_PEM_certificates"]
17660    pub fn PKCS7_get_PEM_certificates(
17661        out_certs: *mut stack_st_X509,
17662        pem_bio: *mut BIO,
17663    ) -> ::std::os::raw::c_int;
17664}
17665extern "C" {
17666    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_PEM_CRLs"]
17667    pub fn PKCS7_get_PEM_CRLs(
17668        out_crls: *mut stack_st_X509_CRL,
17669        pem_bio: *mut BIO,
17670    ) -> ::std::os::raw::c_int;
17671}
17672extern "C" {
17673    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS7_bio"]
17674    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
17675}
17676extern "C" {
17677    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS7_bio"]
17678    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::std::os::raw::c_int;
17679}
17680extern "C" {
17681    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_data"]
17682    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::std::os::raw::c_int;
17683}
17684extern "C" {
17685    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_digest"]
17686    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::std::os::raw::c_int;
17687}
17688extern "C" {
17689    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_encrypted"]
17690    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::std::os::raw::c_int;
17691}
17692extern "C" {
17693    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_enveloped"]
17694    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17695}
17696extern "C" {
17697    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_signed"]
17698    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::std::os::raw::c_int;
17699}
17700extern "C" {
17701    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_type_is_signedAndEnveloped"]
17702    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17703}
17704#[repr(C)]
17705#[derive(Copy, Clone)]
17706pub struct pkcs7_st {
17707    pub type_: *mut ASN1_OBJECT,
17708    pub d: pkcs7_st__bindgen_ty_1,
17709}
17710#[repr(C)]
17711#[derive(Copy, Clone)]
17712pub union pkcs7_st__bindgen_ty_1 {
17713    pub ptr: *mut ::std::os::raw::c_char,
17714    pub data: *mut ASN1_OCTET_STRING,
17715    pub sign: *mut PKCS7_SIGNED,
17716    pub enveloped: *mut PKCS7_ENVELOPE,
17717    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
17718    pub digest: *mut PKCS7_DIGEST,
17719    pub encrypted: *mut PKCS7_ENCRYPT,
17720    pub other: *mut ASN1_TYPE,
17721}
17722#[test]
17723fn bindgen_test_layout_pkcs7_st__bindgen_ty_1() {
17724    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st__bindgen_ty_1> =
17725        ::std::mem::MaybeUninit::uninit();
17726    let ptr = UNINIT.as_ptr();
17727    assert_eq!(
17728        ::std::mem::size_of::<pkcs7_st__bindgen_ty_1>(),
17729        8usize,
17730        "Size of pkcs7_st__bindgen_ty_1"
17731    );
17732    assert_eq!(
17733        ::std::mem::align_of::<pkcs7_st__bindgen_ty_1>(),
17734        8usize,
17735        "Alignment of pkcs7_st__bindgen_ty_1"
17736    );
17737    assert_eq!(
17738        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
17739        0usize,
17740        "Offset of field: pkcs7_st__bindgen_ty_1::ptr"
17741    );
17742    assert_eq!(
17743        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17744        0usize,
17745        "Offset of field: pkcs7_st__bindgen_ty_1::data"
17746    );
17747    assert_eq!(
17748        unsafe { ::std::ptr::addr_of!((*ptr).sign) as usize - ptr as usize },
17749        0usize,
17750        "Offset of field: pkcs7_st__bindgen_ty_1::sign"
17751    );
17752    assert_eq!(
17753        unsafe { ::std::ptr::addr_of!((*ptr).enveloped) as usize - ptr as usize },
17754        0usize,
17755        "Offset of field: pkcs7_st__bindgen_ty_1::enveloped"
17756    );
17757    assert_eq!(
17758        unsafe { ::std::ptr::addr_of!((*ptr).signed_and_enveloped) as usize - ptr as usize },
17759        0usize,
17760        "Offset of field: pkcs7_st__bindgen_ty_1::signed_and_enveloped"
17761    );
17762    assert_eq!(
17763        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
17764        0usize,
17765        "Offset of field: pkcs7_st__bindgen_ty_1::digest"
17766    );
17767    assert_eq!(
17768        unsafe { ::std::ptr::addr_of!((*ptr).encrypted) as usize - ptr as usize },
17769        0usize,
17770        "Offset of field: pkcs7_st__bindgen_ty_1::encrypted"
17771    );
17772    assert_eq!(
17773        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
17774        0usize,
17775        "Offset of field: pkcs7_st__bindgen_ty_1::other"
17776    );
17777}
17778impl Default for pkcs7_st__bindgen_ty_1 {
17779    fn default() -> Self {
17780        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17781        unsafe {
17782            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17783            s.assume_init()
17784        }
17785    }
17786}
17787#[test]
17788fn bindgen_test_layout_pkcs7_st() {
17789    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st> = ::std::mem::MaybeUninit::uninit();
17790    let ptr = UNINIT.as_ptr();
17791    assert_eq!(
17792        ::std::mem::size_of::<pkcs7_st>(),
17793        16usize,
17794        "Size of pkcs7_st"
17795    );
17796    assert_eq!(
17797        ::std::mem::align_of::<pkcs7_st>(),
17798        8usize,
17799        "Alignment of pkcs7_st"
17800    );
17801    assert_eq!(
17802        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
17803        0usize,
17804        "Offset of field: pkcs7_st::type_"
17805    );
17806    assert_eq!(
17807        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
17808        8usize,
17809        "Offset of field: pkcs7_st::d"
17810    );
17811}
17812impl Default for pkcs7_st {
17813    fn default() -> Self {
17814        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17815        unsafe {
17816            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17817            s.assume_init()
17818        }
17819    }
17820}
17821#[repr(C)]
17822#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17823pub struct pkcs7_signed_st {
17824    pub version: *mut ASN1_INTEGER,
17825    pub md_algs: *mut stack_st_X509_ALGOR,
17826    pub contents: *mut PKCS7,
17827    pub cert: *mut stack_st_X509,
17828    pub crl: *mut stack_st_X509_CRL,
17829    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17830}
17831#[test]
17832fn bindgen_test_layout_pkcs7_signed_st() {
17833    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signed_st> = ::std::mem::MaybeUninit::uninit();
17834    let ptr = UNINIT.as_ptr();
17835    assert_eq!(
17836        ::std::mem::size_of::<pkcs7_signed_st>(),
17837        48usize,
17838        "Size of pkcs7_signed_st"
17839    );
17840    assert_eq!(
17841        ::std::mem::align_of::<pkcs7_signed_st>(),
17842        8usize,
17843        "Alignment of pkcs7_signed_st"
17844    );
17845    assert_eq!(
17846        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17847        0usize,
17848        "Offset of field: pkcs7_signed_st::version"
17849    );
17850    assert_eq!(
17851        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
17852        8usize,
17853        "Offset of field: pkcs7_signed_st::md_algs"
17854    );
17855    assert_eq!(
17856        unsafe { ::std::ptr::addr_of!((*ptr).contents) as usize - ptr as usize },
17857        16usize,
17858        "Offset of field: pkcs7_signed_st::contents"
17859    );
17860    assert_eq!(
17861        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
17862        24usize,
17863        "Offset of field: pkcs7_signed_st::cert"
17864    );
17865    assert_eq!(
17866        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
17867        32usize,
17868        "Offset of field: pkcs7_signed_st::crl"
17869    );
17870    assert_eq!(
17871        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
17872        40usize,
17873        "Offset of field: pkcs7_signed_st::signer_info"
17874    );
17875}
17876impl Default for pkcs7_signed_st {
17877    fn default() -> Self {
17878        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17879        unsafe {
17880            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17881            s.assume_init()
17882        }
17883    }
17884}
17885#[repr(C)]
17886#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17887pub struct pkcs7_signer_info_st {
17888    pub version: *mut ASN1_INTEGER,
17889    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
17890    pub digest_alg: *mut X509_ALGOR,
17891    pub auth_attr: *mut stack_st_X509_ATTRIBUTE,
17892    pub digest_enc_alg: *mut X509_ALGOR,
17893    pub enc_digest: *mut ASN1_OCTET_STRING,
17894    pub unauth_attr: *mut stack_st_X509_ATTRIBUTE,
17895    pub pkey: *mut EVP_PKEY,
17896}
17897#[test]
17898fn bindgen_test_layout_pkcs7_signer_info_st() {
17899    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signer_info_st> = ::std::mem::MaybeUninit::uninit();
17900    let ptr = UNINIT.as_ptr();
17901    assert_eq!(
17902        ::std::mem::size_of::<pkcs7_signer_info_st>(),
17903        64usize,
17904        "Size of pkcs7_signer_info_st"
17905    );
17906    assert_eq!(
17907        ::std::mem::align_of::<pkcs7_signer_info_st>(),
17908        8usize,
17909        "Alignment of pkcs7_signer_info_st"
17910    );
17911    assert_eq!(
17912        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17913        0usize,
17914        "Offset of field: pkcs7_signer_info_st::version"
17915    );
17916    assert_eq!(
17917        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
17918        8usize,
17919        "Offset of field: pkcs7_signer_info_st::issuer_and_serial"
17920    );
17921    assert_eq!(
17922        unsafe { ::std::ptr::addr_of!((*ptr).digest_alg) as usize - ptr as usize },
17923        16usize,
17924        "Offset of field: pkcs7_signer_info_st::digest_alg"
17925    );
17926    assert_eq!(
17927        unsafe { ::std::ptr::addr_of!((*ptr).auth_attr) as usize - ptr as usize },
17928        24usize,
17929        "Offset of field: pkcs7_signer_info_st::auth_attr"
17930    );
17931    assert_eq!(
17932        unsafe { ::std::ptr::addr_of!((*ptr).digest_enc_alg) as usize - ptr as usize },
17933        32usize,
17934        "Offset of field: pkcs7_signer_info_st::digest_enc_alg"
17935    );
17936    assert_eq!(
17937        unsafe { ::std::ptr::addr_of!((*ptr).enc_digest) as usize - ptr as usize },
17938        40usize,
17939        "Offset of field: pkcs7_signer_info_st::enc_digest"
17940    );
17941    assert_eq!(
17942        unsafe { ::std::ptr::addr_of!((*ptr).unauth_attr) as usize - ptr as usize },
17943        48usize,
17944        "Offset of field: pkcs7_signer_info_st::unauth_attr"
17945    );
17946    assert_eq!(
17947        unsafe { ::std::ptr::addr_of!((*ptr).pkey) as usize - ptr as usize },
17948        56usize,
17949        "Offset of field: pkcs7_signer_info_st::pkey"
17950    );
17951}
17952impl Default for pkcs7_signer_info_st {
17953    fn default() -> Self {
17954        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17955        unsafe {
17956            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17957            s.assume_init()
17958        }
17959    }
17960}
17961#[repr(C)]
17962#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17963pub struct pkcs7_sign_envelope_st {
17964    pub version: *mut ASN1_INTEGER,
17965    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
17966    pub md_algs: *mut stack_st_X509_ALGOR,
17967    pub enc_data: *mut PKCS7_ENC_CONTENT,
17968    pub cert: *mut stack_st_X509,
17969    pub crl: *mut stack_st_X509_CRL,
17970    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17971}
17972#[test]
17973fn bindgen_test_layout_pkcs7_sign_envelope_st() {
17974    const UNINIT: ::std::mem::MaybeUninit<pkcs7_sign_envelope_st> =
17975        ::std::mem::MaybeUninit::uninit();
17976    let ptr = UNINIT.as_ptr();
17977    assert_eq!(
17978        ::std::mem::size_of::<pkcs7_sign_envelope_st>(),
17979        56usize,
17980        "Size of pkcs7_sign_envelope_st"
17981    );
17982    assert_eq!(
17983        ::std::mem::align_of::<pkcs7_sign_envelope_st>(),
17984        8usize,
17985        "Alignment of pkcs7_sign_envelope_st"
17986    );
17987    assert_eq!(
17988        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17989        0usize,
17990        "Offset of field: pkcs7_sign_envelope_st::version"
17991    );
17992    assert_eq!(
17993        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
17994        8usize,
17995        "Offset of field: pkcs7_sign_envelope_st::recipientinfo"
17996    );
17997    assert_eq!(
17998        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
17999        16usize,
18000        "Offset of field: pkcs7_sign_envelope_st::md_algs"
18001    );
18002    assert_eq!(
18003        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18004        24usize,
18005        "Offset of field: pkcs7_sign_envelope_st::enc_data"
18006    );
18007    assert_eq!(
18008        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18009        32usize,
18010        "Offset of field: pkcs7_sign_envelope_st::cert"
18011    );
18012    assert_eq!(
18013        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
18014        40usize,
18015        "Offset of field: pkcs7_sign_envelope_st::crl"
18016    );
18017    assert_eq!(
18018        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
18019        48usize,
18020        "Offset of field: pkcs7_sign_envelope_st::signer_info"
18021    );
18022}
18023impl Default for pkcs7_sign_envelope_st {
18024    fn default() -> Self {
18025        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18026        unsafe {
18027            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18028            s.assume_init()
18029        }
18030    }
18031}
18032#[repr(C)]
18033#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18034pub struct pkcs7_envelope_st {
18035    pub version: *mut ASN1_INTEGER,
18036    pub enc_data: *mut PKCS7_ENC_CONTENT,
18037    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
18038}
18039#[test]
18040fn bindgen_test_layout_pkcs7_envelope_st() {
18041    const UNINIT: ::std::mem::MaybeUninit<pkcs7_envelope_st> = ::std::mem::MaybeUninit::uninit();
18042    let ptr = UNINIT.as_ptr();
18043    assert_eq!(
18044        ::std::mem::size_of::<pkcs7_envelope_st>(),
18045        24usize,
18046        "Size of pkcs7_envelope_st"
18047    );
18048    assert_eq!(
18049        ::std::mem::align_of::<pkcs7_envelope_st>(),
18050        8usize,
18051        "Alignment of pkcs7_envelope_st"
18052    );
18053    assert_eq!(
18054        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18055        0usize,
18056        "Offset of field: pkcs7_envelope_st::version"
18057    );
18058    assert_eq!(
18059        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18060        8usize,
18061        "Offset of field: pkcs7_envelope_st::enc_data"
18062    );
18063    assert_eq!(
18064        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18065        16usize,
18066        "Offset of field: pkcs7_envelope_st::recipientinfo"
18067    );
18068}
18069impl Default for pkcs7_envelope_st {
18070    fn default() -> Self {
18071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18072        unsafe {
18073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18074            s.assume_init()
18075        }
18076    }
18077}
18078#[repr(C)]
18079#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18080pub struct pkcs7_recip_info_st {
18081    pub version: *mut ASN1_INTEGER,
18082    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
18083    pub key_enc_algor: *mut X509_ALGOR,
18084    pub enc_key: *mut ASN1_OCTET_STRING,
18085    pub cert: *mut X509,
18086}
18087#[test]
18088fn bindgen_test_layout_pkcs7_recip_info_st() {
18089    const UNINIT: ::std::mem::MaybeUninit<pkcs7_recip_info_st> = ::std::mem::MaybeUninit::uninit();
18090    let ptr = UNINIT.as_ptr();
18091    assert_eq!(
18092        ::std::mem::size_of::<pkcs7_recip_info_st>(),
18093        40usize,
18094        "Size of pkcs7_recip_info_st"
18095    );
18096    assert_eq!(
18097        ::std::mem::align_of::<pkcs7_recip_info_st>(),
18098        8usize,
18099        "Alignment of pkcs7_recip_info_st"
18100    );
18101    assert_eq!(
18102        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18103        0usize,
18104        "Offset of field: pkcs7_recip_info_st::version"
18105    );
18106    assert_eq!(
18107        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
18108        8usize,
18109        "Offset of field: pkcs7_recip_info_st::issuer_and_serial"
18110    );
18111    assert_eq!(
18112        unsafe { ::std::ptr::addr_of!((*ptr).key_enc_algor) as usize - ptr as usize },
18113        16usize,
18114        "Offset of field: pkcs7_recip_info_st::key_enc_algor"
18115    );
18116    assert_eq!(
18117        unsafe { ::std::ptr::addr_of!((*ptr).enc_key) as usize - ptr as usize },
18118        24usize,
18119        "Offset of field: pkcs7_recip_info_st::enc_key"
18120    );
18121    assert_eq!(
18122        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18123        32usize,
18124        "Offset of field: pkcs7_recip_info_st::cert"
18125    );
18126}
18127impl Default for pkcs7_recip_info_st {
18128    fn default() -> Self {
18129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18130        unsafe {
18131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18132            s.assume_init()
18133        }
18134    }
18135}
18136#[repr(C)]
18137#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18138pub struct pkcs7_issuer_and_serial_st {
18139    pub issuer: *mut X509_NAME,
18140    pub serial: *mut ASN1_INTEGER,
18141}
18142#[test]
18143fn bindgen_test_layout_pkcs7_issuer_and_serial_st() {
18144    const UNINIT: ::std::mem::MaybeUninit<pkcs7_issuer_and_serial_st> =
18145        ::std::mem::MaybeUninit::uninit();
18146    let ptr = UNINIT.as_ptr();
18147    assert_eq!(
18148        ::std::mem::size_of::<pkcs7_issuer_and_serial_st>(),
18149        16usize,
18150        "Size of pkcs7_issuer_and_serial_st"
18151    );
18152    assert_eq!(
18153        ::std::mem::align_of::<pkcs7_issuer_and_serial_st>(),
18154        8usize,
18155        "Alignment of pkcs7_issuer_and_serial_st"
18156    );
18157    assert_eq!(
18158        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
18159        0usize,
18160        "Offset of field: pkcs7_issuer_and_serial_st::issuer"
18161    );
18162    assert_eq!(
18163        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
18164        8usize,
18165        "Offset of field: pkcs7_issuer_and_serial_st::serial"
18166    );
18167}
18168impl Default for pkcs7_issuer_and_serial_st {
18169    fn default() -> Self {
18170        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18171        unsafe {
18172            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18173            s.assume_init()
18174        }
18175    }
18176}
18177extern "C" {
18178    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_new"]
18179    pub fn PKCS7_new() -> *mut PKCS7;
18180}
18181extern "C" {
18182    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_free"]
18183    pub fn PKCS7_free(a: *mut PKCS7);
18184}
18185extern "C" {
18186    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS7"]
18187    pub fn d2i_PKCS7(
18188        a: *mut *mut PKCS7,
18189        in_: *mut *const ::std::os::raw::c_uchar,
18190        len: ::std::os::raw::c_long,
18191    ) -> *mut PKCS7;
18192}
18193extern "C" {
18194    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS7"]
18195    pub fn i2d_PKCS7(
18196        a: *mut PKCS7,
18197        out: *mut *mut ::std::os::raw::c_uchar,
18198    ) -> ::std::os::raw::c_int;
18199}
18200extern "C" {
18201    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_it"]
18202    pub static PKCS7_it: ASN1_ITEM;
18203}
18204extern "C" {
18205    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_RECIP_INFO_new"]
18206    pub fn PKCS7_RECIP_INFO_new() -> *mut PKCS7_RECIP_INFO;
18207}
18208extern "C" {
18209    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_RECIP_INFO_free"]
18210    pub fn PKCS7_RECIP_INFO_free(a: *mut PKCS7_RECIP_INFO);
18211}
18212extern "C" {
18213    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS7_RECIP_INFO"]
18214    pub fn d2i_PKCS7_RECIP_INFO(
18215        a: *mut *mut PKCS7_RECIP_INFO,
18216        in_: *mut *const ::std::os::raw::c_uchar,
18217        len: ::std::os::raw::c_long,
18218    ) -> *mut PKCS7_RECIP_INFO;
18219}
18220extern "C" {
18221    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS7_RECIP_INFO"]
18222    pub fn i2d_PKCS7_RECIP_INFO(
18223        a: *mut PKCS7_RECIP_INFO,
18224        out: *mut *mut ::std::os::raw::c_uchar,
18225    ) -> ::std::os::raw::c_int;
18226}
18227extern "C" {
18228    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_RECIP_INFO_it"]
18229    pub static PKCS7_RECIP_INFO_it: ASN1_ITEM;
18230}
18231extern "C" {
18232    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_SIGNER_INFO_new"]
18233    pub fn PKCS7_SIGNER_INFO_new() -> *mut PKCS7_SIGNER_INFO;
18234}
18235extern "C" {
18236    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_SIGNER_INFO_free"]
18237    pub fn PKCS7_SIGNER_INFO_free(a: *mut PKCS7_SIGNER_INFO);
18238}
18239extern "C" {
18240    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS7_SIGNER_INFO"]
18241    pub fn d2i_PKCS7_SIGNER_INFO(
18242        a: *mut *mut PKCS7_SIGNER_INFO,
18243        in_: *mut *const ::std::os::raw::c_uchar,
18244        len: ::std::os::raw::c_long,
18245    ) -> *mut PKCS7_SIGNER_INFO;
18246}
18247extern "C" {
18248    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS7_SIGNER_INFO"]
18249    pub fn i2d_PKCS7_SIGNER_INFO(
18250        a: *mut PKCS7_SIGNER_INFO,
18251        out: *mut *mut ::std::os::raw::c_uchar,
18252    ) -> ::std::os::raw::c_int;
18253}
18254extern "C" {
18255    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_SIGNER_INFO_it"]
18256    pub static PKCS7_SIGNER_INFO_it: ASN1_ITEM;
18257}
18258#[repr(C)]
18259#[derive(Debug, Copy, Clone)]
18260pub struct stack_st_PKCS7_RECIP_INFO {
18261    _unused: [u8; 0],
18262}
18263pub type sk_PKCS7_RECIP_INFO_free_func =
18264    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_RECIP_INFO)>;
18265pub type sk_PKCS7_RECIP_INFO_copy_func = ::std::option::Option<
18266    unsafe extern "C" fn(arg1: *const PKCS7_RECIP_INFO) -> *mut PKCS7_RECIP_INFO,
18267>;
18268pub type sk_PKCS7_RECIP_INFO_cmp_func = ::std::option::Option<
18269    unsafe extern "C" fn(
18270        arg1: *const *const PKCS7_RECIP_INFO,
18271        arg2: *const *const PKCS7_RECIP_INFO,
18272    ) -> ::std::os::raw::c_int,
18273>;
18274pub type sk_PKCS7_RECIP_INFO_delete_if_func = ::std::option::Option<
18275    unsafe extern "C" fn(
18276        arg1: *mut PKCS7_RECIP_INFO,
18277        arg2: *mut ::std::os::raw::c_void,
18278    ) -> ::std::os::raw::c_int,
18279>;
18280#[repr(C)]
18281#[derive(Debug, Copy, Clone)]
18282pub struct stack_st_PKCS7_SIGNER_INFO {
18283    _unused: [u8; 0],
18284}
18285pub type sk_PKCS7_SIGNER_INFO_free_func =
18286    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_SIGNER_INFO)>;
18287pub type sk_PKCS7_SIGNER_INFO_copy_func = ::std::option::Option<
18288    unsafe extern "C" fn(arg1: *const PKCS7_SIGNER_INFO) -> *mut PKCS7_SIGNER_INFO,
18289>;
18290pub type sk_PKCS7_SIGNER_INFO_cmp_func = ::std::option::Option<
18291    unsafe extern "C" fn(
18292        arg1: *const *const PKCS7_SIGNER_INFO,
18293        arg2: *const *const PKCS7_SIGNER_INFO,
18294    ) -> ::std::os::raw::c_int,
18295>;
18296pub type sk_PKCS7_SIGNER_INFO_delete_if_func = ::std::option::Option<
18297    unsafe extern "C" fn(
18298        arg1: *mut PKCS7_SIGNER_INFO,
18299        arg2: *mut ::std::os::raw::c_void,
18300    ) -> ::std::os::raw::c_int,
18301>;
18302extern "C" {
18303    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_dup"]
18304    pub fn PKCS7_dup(p7: *mut PKCS7) -> *mut PKCS7;
18305}
18306extern "C" {
18307    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_signed_attribute"]
18308    pub fn PKCS7_get_signed_attribute(
18309        si: *const PKCS7_SIGNER_INFO,
18310        nid: ::std::os::raw::c_int,
18311    ) -> *mut ASN1_TYPE;
18312}
18313extern "C" {
18314    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_signer_info"]
18315    pub fn PKCS7_get_signer_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_SIGNER_INFO;
18316}
18317extern "C" {
18318    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_RECIP_INFO_set"]
18319    pub fn PKCS7_RECIP_INFO_set(
18320        p7i: *mut PKCS7_RECIP_INFO,
18321        x509: *mut X509,
18322    ) -> ::std::os::raw::c_int;
18323}
18324extern "C" {
18325    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_SIGNER_INFO_set"]
18326    pub fn PKCS7_SIGNER_INFO_set(
18327        p7i: *mut PKCS7_SIGNER_INFO,
18328        x509: *mut X509,
18329        pkey: *mut EVP_PKEY,
18330        dgst: *const EVP_MD,
18331    ) -> ::std::os::raw::c_int;
18332}
18333extern "C" {
18334    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_add_certificate"]
18335    pub fn PKCS7_add_certificate(p7: *mut PKCS7, x509: *mut X509) -> ::std::os::raw::c_int;
18336}
18337extern "C" {
18338    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_add_crl"]
18339    pub fn PKCS7_add_crl(p7: *mut PKCS7, x509: *mut X509_CRL) -> ::std::os::raw::c_int;
18340}
18341extern "C" {
18342    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_add_recipient_info"]
18343    pub fn PKCS7_add_recipient_info(
18344        p7: *mut PKCS7,
18345        ri: *mut PKCS7_RECIP_INFO,
18346    ) -> ::std::os::raw::c_int;
18347}
18348extern "C" {
18349    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_add_signer"]
18350    pub fn PKCS7_add_signer(p7: *mut PKCS7, p7i: *mut PKCS7_SIGNER_INFO) -> ::std::os::raw::c_int;
18351}
18352extern "C" {
18353    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_content_new"]
18354    pub fn PKCS7_content_new(p7: *mut PKCS7, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18355}
18356extern "C" {
18357    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_set_content"]
18358    pub fn PKCS7_set_content(p7: *mut PKCS7, p7_data: *mut PKCS7) -> ::std::os::raw::c_int;
18359}
18360extern "C" {
18361    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_set_cipher"]
18362    pub fn PKCS7_set_cipher(p7: *mut PKCS7, cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
18363}
18364extern "C" {
18365    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_set_type"]
18366    pub fn PKCS7_set_type(p7: *mut PKCS7, type_: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18367}
18368extern "C" {
18369    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_RECIP_INFO_get0_alg"]
18370    pub fn PKCS7_RECIP_INFO_get0_alg(ri: *mut PKCS7_RECIP_INFO, penc: *mut *mut X509_ALGOR);
18371}
18372extern "C" {
18373    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_SIGNER_INFO_get0_algs"]
18374    pub fn PKCS7_SIGNER_INFO_get0_algs(
18375        si: *mut PKCS7_SIGNER_INFO,
18376        pk: *mut *mut EVP_PKEY,
18377        pdig: *mut *mut X509_ALGOR,
18378        psig: *mut *mut X509_ALGOR,
18379    );
18380}
18381extern "C" {
18382    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_sign"]
18383    pub fn PKCS7_sign(
18384        sign_cert: *mut X509,
18385        pkey: *mut EVP_PKEY,
18386        certs: *mut stack_st_X509,
18387        data: *mut BIO,
18388        flags: ::std::os::raw::c_int,
18389    ) -> *mut PKCS7;
18390}
18391extern "C" {
18392    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_verify"]
18393    pub fn PKCS7_verify(
18394        p7: *mut PKCS7,
18395        certs: *mut stack_st_X509,
18396        store: *mut X509_STORE,
18397        indata: *mut BIO,
18398        outdata: *mut BIO,
18399        flags: ::std::os::raw::c_int,
18400    ) -> ::std::os::raw::c_int;
18401}
18402extern "C" {
18403    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_is_detached"]
18404    pub fn PKCS7_is_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18405}
18406extern "C" {
18407    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_set_detached"]
18408    pub fn PKCS7_set_detached(
18409        p7: *mut PKCS7,
18410        detach: ::std::os::raw::c_int,
18411    ) -> ::std::os::raw::c_int;
18412}
18413extern "C" {
18414    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_detached"]
18415    pub fn PKCS7_get_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18416}
18417extern "C" {
18418    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_dataInit"]
18419    pub fn PKCS7_dataInit(p7: *mut PKCS7, bio: *mut BIO) -> *mut BIO;
18420}
18421extern "C" {
18422    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_dataFinal"]
18423    pub fn PKCS7_dataFinal(p7: *mut PKCS7, bio: *mut BIO) -> ::std::os::raw::c_int;
18424}
18425extern "C" {
18426    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_set_digest"]
18427    pub fn PKCS7_set_digest(p7: *mut PKCS7, md: *const EVP_MD) -> ::std::os::raw::c_int;
18428}
18429extern "C" {
18430    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get_recipient_info"]
18431    pub fn PKCS7_get_recipient_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_RECIP_INFO;
18432}
18433extern "C" {
18434    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_add_recipient"]
18435    pub fn PKCS7_add_recipient(p7: *mut PKCS7, x509: *mut X509) -> *mut PKCS7_RECIP_INFO;
18436}
18437extern "C" {
18438    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_get0_signers"]
18439    pub fn PKCS7_get0_signers(
18440        p7: *mut PKCS7,
18441        certs: *mut stack_st_X509,
18442        flags: ::std::os::raw::c_int,
18443    ) -> *mut stack_st_X509;
18444}
18445extern "C" {
18446    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_encrypt"]
18447    pub fn PKCS7_encrypt(
18448        certs: *mut stack_st_X509,
18449        in_: *mut BIO,
18450        cipher: *const EVP_CIPHER,
18451        flags: ::std::os::raw::c_int,
18452    ) -> *mut PKCS7;
18453}
18454extern "C" {
18455    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_decrypt"]
18456    pub fn PKCS7_decrypt(
18457        p7: *mut PKCS7,
18458        pkey: *mut EVP_PKEY,
18459        cert: *mut X509,
18460        data: *mut BIO,
18461        flags: ::std::os::raw::c_int,
18462    ) -> ::std::os::raw::c_int;
18463}
18464extern "C" {
18465    #[link_name = "\u{1}aws_lc_0_37_0_SMIME_read_PKCS7"]
18466    pub fn SMIME_read_PKCS7(in_: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7;
18467}
18468extern "C" {
18469    #[link_name = "\u{1}aws_lc_0_37_0_SMIME_write_PKCS7"]
18470    pub fn SMIME_write_PKCS7(
18471        out: *mut BIO,
18472        p7: *mut PKCS7,
18473        data: *mut BIO,
18474        flags: ::std::os::raw::c_int,
18475    ) -> ::std::os::raw::c_int;
18476}
18477extern "C" {
18478    #[link_name = "\u{1}aws_lc_0_37_0_PKCS7_print_ctx"]
18479    pub fn PKCS7_print_ctx(
18480        bio: *mut BIO,
18481        pkcs7: *mut PKCS7,
18482        indent: ::std::os::raw::c_int,
18483        pctx: *const ASN1_PCTX,
18484    ) -> ::std::os::raw::c_int;
18485}
18486pub type sk_CRYPTO_BUFFER_free_func =
18487    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
18488pub type sk_CRYPTO_BUFFER_copy_func =
18489    ::std::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
18490pub type sk_CRYPTO_BUFFER_cmp_func = ::std::option::Option<
18491    unsafe extern "C" fn(
18492        arg1: *const *const CRYPTO_BUFFER,
18493        arg2: *const *const CRYPTO_BUFFER,
18494    ) -> ::std::os::raw::c_int,
18495>;
18496pub type sk_CRYPTO_BUFFER_delete_if_func = ::std::option::Option<
18497    unsafe extern "C" fn(
18498        arg1: *mut CRYPTO_BUFFER,
18499        arg2: *mut ::std::os::raw::c_void,
18500    ) -> ::std::os::raw::c_int,
18501>;
18502extern "C" {
18503    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_POOL_new"]
18504    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
18505}
18506extern "C" {
18507    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_POOL_free"]
18508    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
18509}
18510extern "C" {
18511    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_new"]
18512    pub fn CRYPTO_BUFFER_new(
18513        data: *const u8,
18514        len: usize,
18515        pool: *mut CRYPTO_BUFFER_POOL,
18516    ) -> *mut CRYPTO_BUFFER;
18517}
18518extern "C" {
18519    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_alloc"]
18520    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
18521}
18522extern "C" {
18523    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_new_from_CBS"]
18524    pub fn CRYPTO_BUFFER_new_from_CBS(
18525        cbs: *const CBS,
18526        pool: *mut CRYPTO_BUFFER_POOL,
18527    ) -> *mut CRYPTO_BUFFER;
18528}
18529extern "C" {
18530    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_new_from_static_data_unsafe"]
18531    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
18532        data: *const u8,
18533        len: usize,
18534        pool: *mut CRYPTO_BUFFER_POOL,
18535    ) -> *mut CRYPTO_BUFFER;
18536}
18537extern "C" {
18538    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_free"]
18539    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
18540}
18541extern "C" {
18542    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_up_ref"]
18543    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
18544}
18545extern "C" {
18546    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_data"]
18547    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
18548}
18549extern "C" {
18550    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_len"]
18551    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
18552}
18553extern "C" {
18554    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_BUFFER_init_CBS"]
18555    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
18556}
18557extern "C" {
18558    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_public_key"]
18559    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
18560}
18561extern "C" {
18562    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_private_key"]
18563    pub fn RSA_new_private_key(
18564        n: *const BIGNUM,
18565        e: *const BIGNUM,
18566        d: *const BIGNUM,
18567        p: *const BIGNUM,
18568        q: *const BIGNUM,
18569        dmp1: *const BIGNUM,
18570        dmq1: *const BIGNUM,
18571        iqmp: *const BIGNUM,
18572    ) -> *mut RSA;
18573}
18574extern "C" {
18575    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new"]
18576    pub fn RSA_new() -> *mut RSA;
18577}
18578extern "C" {
18579    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_method"]
18580    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
18581}
18582extern "C" {
18583    #[link_name = "\u{1}aws_lc_0_37_0_RSA_free"]
18584    pub fn RSA_free(rsa: *mut RSA);
18585}
18586extern "C" {
18587    #[link_name = "\u{1}aws_lc_0_37_0_RSA_up_ref"]
18588    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
18589}
18590extern "C" {
18591    #[link_name = "\u{1}aws_lc_0_37_0_RSA_bits"]
18592    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
18593}
18594extern "C" {
18595    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_n"]
18596    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
18597}
18598extern "C" {
18599    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_e"]
18600    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
18601}
18602extern "C" {
18603    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_d"]
18604    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
18605}
18606extern "C" {
18607    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_p"]
18608    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
18609}
18610extern "C" {
18611    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_q"]
18612    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
18613}
18614extern "C" {
18615    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_dmp1"]
18616    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
18617}
18618extern "C" {
18619    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_dmq1"]
18620    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
18621}
18622extern "C" {
18623    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_iqmp"]
18624    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
18625}
18626extern "C" {
18627    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_key"]
18628    pub fn RSA_get0_key(
18629        rsa: *const RSA,
18630        out_n: *mut *const BIGNUM,
18631        out_e: *mut *const BIGNUM,
18632        out_d: *mut *const BIGNUM,
18633    );
18634}
18635extern "C" {
18636    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_factors"]
18637    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
18638}
18639extern "C" {
18640    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_crt_params"]
18641    pub fn RSA_get0_crt_params(
18642        rsa: *const RSA,
18643        out_dmp1: *mut *const BIGNUM,
18644        out_dmq1: *mut *const BIGNUM,
18645        out_iqmp: *mut *const BIGNUM,
18646    );
18647}
18648extern "C" {
18649    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set0_key"]
18650    pub fn RSA_set0_key(
18651        rsa: *mut RSA,
18652        n: *mut BIGNUM,
18653        e: *mut BIGNUM,
18654        d: *mut BIGNUM,
18655    ) -> ::std::os::raw::c_int;
18656}
18657extern "C" {
18658    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set0_factors"]
18659    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
18660        -> ::std::os::raw::c_int;
18661}
18662extern "C" {
18663    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set0_crt_params"]
18664    pub fn RSA_set0_crt_params(
18665        rsa: *mut RSA,
18666        dmp1: *mut BIGNUM,
18667        dmq1: *mut BIGNUM,
18668        iqmp: *mut BIGNUM,
18669    ) -> ::std::os::raw::c_int;
18670}
18671extern "C" {
18672    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get_default_method"]
18673    pub fn RSA_get_default_method() -> *const RSA_METHOD;
18674}
18675extern "C" {
18676    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_new"]
18677    pub fn RSA_meth_new(
18678        name: *const ::std::os::raw::c_char,
18679        flags: ::std::os::raw::c_int,
18680    ) -> *mut RSA_METHOD;
18681}
18682extern "C" {
18683    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set_method"]
18684    pub fn RSA_set_method(rsa: *mut RSA, meth: *const RSA_METHOD) -> ::std::os::raw::c_int;
18685}
18686extern "C" {
18687    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get_method"]
18688    pub fn RSA_get_method(rsa: *const RSA) -> *const RSA_METHOD;
18689}
18690extern "C" {
18691    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_free"]
18692    pub fn RSA_meth_free(meth: *mut RSA_METHOD);
18693}
18694extern "C" {
18695    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_init"]
18696    pub fn RSA_meth_set_init(
18697        meth: *mut RSA_METHOD,
18698        init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18699    ) -> ::std::os::raw::c_int;
18700}
18701extern "C" {
18702    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_finish"]
18703    pub fn RSA_meth_set_finish(
18704        meth: *mut RSA_METHOD,
18705        finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18706    ) -> ::std::os::raw::c_int;
18707}
18708extern "C" {
18709    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_priv_dec"]
18710    pub fn RSA_meth_set_priv_dec(
18711        meth: *mut RSA_METHOD,
18712        priv_dec: ::std::option::Option<
18713            unsafe extern "C" fn(
18714                max_out: ::std::os::raw::c_int,
18715                from: *const u8,
18716                to: *mut u8,
18717                rsa: *mut RSA,
18718                padding: ::std::os::raw::c_int,
18719            ) -> ::std::os::raw::c_int,
18720        >,
18721    ) -> ::std::os::raw::c_int;
18722}
18723extern "C" {
18724    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_priv_enc"]
18725    pub fn RSA_meth_set_priv_enc(
18726        meth: *mut RSA_METHOD,
18727        priv_enc: ::std::option::Option<
18728            unsafe extern "C" fn(
18729                max_out: ::std::os::raw::c_int,
18730                from: *const u8,
18731                to: *mut u8,
18732                rsa: *mut RSA,
18733                padding: ::std::os::raw::c_int,
18734            ) -> ::std::os::raw::c_int,
18735        >,
18736    ) -> ::std::os::raw::c_int;
18737}
18738extern "C" {
18739    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_pub_dec"]
18740    pub fn RSA_meth_set_pub_dec(
18741        meth: *mut RSA_METHOD,
18742        pub_dec: ::std::option::Option<
18743            unsafe extern "C" fn(
18744                max_out: ::std::os::raw::c_int,
18745                from: *const u8,
18746                to: *mut u8,
18747                rsa: *mut RSA,
18748                padding: ::std::os::raw::c_int,
18749            ) -> ::std::os::raw::c_int,
18750        >,
18751    ) -> ::std::os::raw::c_int;
18752}
18753extern "C" {
18754    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_pub_enc"]
18755    pub fn RSA_meth_set_pub_enc(
18756        meth: *mut RSA_METHOD,
18757        pub_enc: ::std::option::Option<
18758            unsafe extern "C" fn(
18759                max_out: ::std::os::raw::c_int,
18760                from: *const u8,
18761                to: *mut u8,
18762                rsa: *mut RSA,
18763                padding: ::std::os::raw::c_int,
18764            ) -> ::std::os::raw::c_int,
18765        >,
18766    ) -> ::std::os::raw::c_int;
18767}
18768extern "C" {
18769    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set0_app_data"]
18770    pub fn RSA_meth_set0_app_data(
18771        meth: *mut RSA_METHOD,
18772        app_data: *mut ::std::os::raw::c_void,
18773    ) -> ::std::os::raw::c_int;
18774}
18775extern "C" {
18776    #[link_name = "\u{1}aws_lc_0_37_0_RSA_meth_set_sign"]
18777    pub fn RSA_meth_set_sign(
18778        meth: *mut RSA_METHOD,
18779        sign: ::std::option::Option<
18780            unsafe extern "C" fn(
18781                type_: ::std::os::raw::c_int,
18782                m: *const ::std::os::raw::c_uchar,
18783                m_length: ::std::os::raw::c_uint,
18784                sigret: *mut ::std::os::raw::c_uchar,
18785                siglen: *mut ::std::os::raw::c_uint,
18786                rsa: *const RSA,
18787            ) -> ::std::os::raw::c_int,
18788        >,
18789    ) -> ::std::os::raw::c_int;
18790}
18791extern "C" {
18792    #[link_name = "\u{1}aws_lc_0_37_0_RSA_generate_key_ex"]
18793    pub fn RSA_generate_key_ex(
18794        rsa: *mut RSA,
18795        bits: ::std::os::raw::c_int,
18796        e: *const BIGNUM,
18797        cb: *mut BN_GENCB,
18798    ) -> ::std::os::raw::c_int;
18799}
18800extern "C" {
18801    #[link_name = "\u{1}aws_lc_0_37_0_RSA_generate_key_fips"]
18802    pub fn RSA_generate_key_fips(
18803        rsa: *mut RSA,
18804        bits: ::std::os::raw::c_int,
18805        cb: *mut BN_GENCB,
18806    ) -> ::std::os::raw::c_int;
18807}
18808extern "C" {
18809    #[link_name = "\u{1}aws_lc_0_37_0_RSA_encrypt"]
18810    pub fn RSA_encrypt(
18811        rsa: *mut RSA,
18812        out_len: *mut usize,
18813        out: *mut u8,
18814        max_out: usize,
18815        in_: *const u8,
18816        in_len: usize,
18817        padding: ::std::os::raw::c_int,
18818    ) -> ::std::os::raw::c_int;
18819}
18820extern "C" {
18821    #[link_name = "\u{1}aws_lc_0_37_0_RSA_decrypt"]
18822    pub fn RSA_decrypt(
18823        rsa: *mut RSA,
18824        out_len: *mut usize,
18825        out: *mut u8,
18826        max_out: usize,
18827        in_: *const u8,
18828        in_len: usize,
18829        padding: ::std::os::raw::c_int,
18830    ) -> ::std::os::raw::c_int;
18831}
18832extern "C" {
18833    #[link_name = "\u{1}aws_lc_0_37_0_RSA_public_encrypt"]
18834    pub fn RSA_public_encrypt(
18835        flen: usize,
18836        from: *const u8,
18837        to: *mut u8,
18838        rsa: *mut RSA,
18839        padding: ::std::os::raw::c_int,
18840    ) -> ::std::os::raw::c_int;
18841}
18842extern "C" {
18843    #[link_name = "\u{1}aws_lc_0_37_0_RSA_private_decrypt"]
18844    pub fn RSA_private_decrypt(
18845        flen: usize,
18846        from: *const u8,
18847        to: *mut u8,
18848        rsa: *mut RSA,
18849        padding: ::std::os::raw::c_int,
18850    ) -> ::std::os::raw::c_int;
18851}
18852extern "C" {
18853    #[link_name = "\u{1}aws_lc_0_37_0_RSA_sign"]
18854    pub fn RSA_sign(
18855        hash_nid: ::std::os::raw::c_int,
18856        digest: *const u8,
18857        digest_len: usize,
18858        out: *mut u8,
18859        out_len: *mut ::std::os::raw::c_uint,
18860        rsa: *mut RSA,
18861    ) -> ::std::os::raw::c_int;
18862}
18863extern "C" {
18864    #[link_name = "\u{1}aws_lc_0_37_0_RSA_sign_pss_mgf1"]
18865    pub fn RSA_sign_pss_mgf1(
18866        rsa: *mut RSA,
18867        out_len: *mut usize,
18868        out: *mut u8,
18869        max_out: usize,
18870        digest: *const u8,
18871        digest_len: usize,
18872        md: *const EVP_MD,
18873        mgf1_md: *const EVP_MD,
18874        salt_len: ::std::os::raw::c_int,
18875    ) -> ::std::os::raw::c_int;
18876}
18877extern "C" {
18878    #[link_name = "\u{1}aws_lc_0_37_0_RSA_sign_raw"]
18879    pub fn RSA_sign_raw(
18880        rsa: *mut RSA,
18881        out_len: *mut usize,
18882        out: *mut u8,
18883        max_out: usize,
18884        in_: *const u8,
18885        in_len: usize,
18886        padding: ::std::os::raw::c_int,
18887    ) -> ::std::os::raw::c_int;
18888}
18889extern "C" {
18890    #[link_name = "\u{1}aws_lc_0_37_0_RSA_verify"]
18891    pub fn RSA_verify(
18892        hash_nid: ::std::os::raw::c_int,
18893        digest: *const u8,
18894        digest_len: usize,
18895        sig: *const u8,
18896        sig_len: usize,
18897        rsa: *mut RSA,
18898    ) -> ::std::os::raw::c_int;
18899}
18900extern "C" {
18901    #[link_name = "\u{1}aws_lc_0_37_0_RSA_verify_pss_mgf1"]
18902    pub fn RSA_verify_pss_mgf1(
18903        rsa: *mut RSA,
18904        digest: *const u8,
18905        digest_len: usize,
18906        md: *const EVP_MD,
18907        mgf1_md: *const EVP_MD,
18908        salt_len: ::std::os::raw::c_int,
18909        sig: *const u8,
18910        sig_len: usize,
18911    ) -> ::std::os::raw::c_int;
18912}
18913extern "C" {
18914    #[link_name = "\u{1}aws_lc_0_37_0_RSA_verify_raw"]
18915    pub fn RSA_verify_raw(
18916        rsa: *mut RSA,
18917        out_len: *mut usize,
18918        out: *mut u8,
18919        max_out: usize,
18920        in_: *const u8,
18921        in_len: usize,
18922        padding: ::std::os::raw::c_int,
18923    ) -> ::std::os::raw::c_int;
18924}
18925extern "C" {
18926    #[link_name = "\u{1}aws_lc_0_37_0_RSA_private_encrypt"]
18927    pub fn RSA_private_encrypt(
18928        flen: usize,
18929        from: *const u8,
18930        to: *mut u8,
18931        rsa: *mut RSA,
18932        padding: ::std::os::raw::c_int,
18933    ) -> ::std::os::raw::c_int;
18934}
18935extern "C" {
18936    #[link_name = "\u{1}aws_lc_0_37_0_RSA_public_decrypt"]
18937    pub fn RSA_public_decrypt(
18938        flen: usize,
18939        from: *const u8,
18940        to: *mut u8,
18941        rsa: *mut RSA,
18942        padding: ::std::os::raw::c_int,
18943    ) -> ::std::os::raw::c_int;
18944}
18945extern "C" {
18946    #[link_name = "\u{1}aws_lc_0_37_0_RSA_size"]
18947    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
18948}
18949extern "C" {
18950    #[link_name = "\u{1}aws_lc_0_37_0_RSA_is_opaque"]
18951    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
18952}
18953extern "C" {
18954    #[link_name = "\u{1}aws_lc_0_37_0_RSAPublicKey_dup"]
18955    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
18956}
18957extern "C" {
18958    #[link_name = "\u{1}aws_lc_0_37_0_RSAPrivateKey_dup"]
18959    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
18960}
18961extern "C" {
18962    #[link_name = "\u{1}aws_lc_0_37_0_RSA_check_key"]
18963    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
18964}
18965extern "C" {
18966    #[link_name = "\u{1}aws_lc_0_37_0_RSA_check_fips"]
18967    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
18968}
18969extern "C" {
18970    #[link_name = "\u{1}aws_lc_0_37_0_RSA_verify_PKCS1_PSS_mgf1"]
18971    pub fn RSA_verify_PKCS1_PSS_mgf1(
18972        rsa: *const RSA,
18973        mHash: *const u8,
18974        Hash: *const EVP_MD,
18975        mgf1Hash: *const EVP_MD,
18976        EM: *const u8,
18977        sLen: ::std::os::raw::c_int,
18978    ) -> ::std::os::raw::c_int;
18979}
18980extern "C" {
18981    #[link_name = "\u{1}aws_lc_0_37_0_RSA_padding_add_PKCS1_PSS_mgf1"]
18982    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
18983        rsa: *const RSA,
18984        EM: *mut u8,
18985        mHash: *const u8,
18986        Hash: *const EVP_MD,
18987        mgf1Hash: *const EVP_MD,
18988        sLen: ::std::os::raw::c_int,
18989    ) -> ::std::os::raw::c_int;
18990}
18991extern "C" {
18992    #[link_name = "\u{1}aws_lc_0_37_0_RSA_padding_add_PKCS1_OAEP_mgf1"]
18993    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
18994        to: *mut u8,
18995        to_len: usize,
18996        from: *const u8,
18997        from_len: usize,
18998        param: *const u8,
18999        param_len: usize,
19000        md: *const EVP_MD,
19001        mgf1md: *const EVP_MD,
19002    ) -> ::std::os::raw::c_int;
19003}
19004extern "C" {
19005    #[link_name = "\u{1}aws_lc_0_37_0_PKCS1_MGF1"]
19006    pub fn PKCS1_MGF1(
19007        out: *mut u8,
19008        len: usize,
19009        seed: *const u8,
19010        seed_len: usize,
19011        md: *const EVP_MD,
19012    ) -> ::std::os::raw::c_int;
19013}
19014extern "C" {
19015    #[link_name = "\u{1}aws_lc_0_37_0_RSA_add_pkcs1_prefix"]
19016    pub fn RSA_add_pkcs1_prefix(
19017        out_msg: *mut *mut u8,
19018        out_msg_len: *mut usize,
19019        is_alloced: *mut ::std::os::raw::c_int,
19020        hash_nid: ::std::os::raw::c_int,
19021        digest: *const u8,
19022        digest_len: usize,
19023    ) -> ::std::os::raw::c_int;
19024}
19025extern "C" {
19026    #[link_name = "\u{1}aws_lc_0_37_0_RSA_parse_public_key"]
19027    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
19028}
19029extern "C" {
19030    #[link_name = "\u{1}aws_lc_0_37_0_RSA_public_key_from_bytes"]
19031    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19032}
19033extern "C" {
19034    #[link_name = "\u{1}aws_lc_0_37_0_RSA_marshal_public_key"]
19035    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19036}
19037extern "C" {
19038    #[link_name = "\u{1}aws_lc_0_37_0_RSA_public_key_to_bytes"]
19039    pub fn RSA_public_key_to_bytes(
19040        out_bytes: *mut *mut u8,
19041        out_len: *mut usize,
19042        rsa: *const RSA,
19043    ) -> ::std::os::raw::c_int;
19044}
19045extern "C" {
19046    #[link_name = "\u{1}aws_lc_0_37_0_RSA_parse_private_key"]
19047    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
19048}
19049extern "C" {
19050    #[link_name = "\u{1}aws_lc_0_37_0_RSA_private_key_from_bytes"]
19051    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19052}
19053extern "C" {
19054    #[link_name = "\u{1}aws_lc_0_37_0_RSA_marshal_private_key"]
19055    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19056}
19057extern "C" {
19058    #[link_name = "\u{1}aws_lc_0_37_0_RSA_private_key_to_bytes"]
19059    pub fn RSA_private_key_to_bytes(
19060        out_bytes: *mut *mut u8,
19061        out_len: *mut usize,
19062        rsa: *const RSA,
19063    ) -> ::std::os::raw::c_int;
19064}
19065extern "C" {
19066    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_private_key_no_crt"]
19067    pub fn RSA_new_private_key_no_crt(
19068        n: *const BIGNUM,
19069        e: *const BIGNUM,
19070        d: *const BIGNUM,
19071    ) -> *mut RSA;
19072}
19073extern "C" {
19074    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_private_key_no_e"]
19075    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
19076}
19077extern "C" {
19078    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_public_key_large_e"]
19079    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
19080}
19081extern "C" {
19082    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_private_key_large_e"]
19083    pub fn RSA_new_private_key_large_e(
19084        n: *const BIGNUM,
19085        e: *const BIGNUM,
19086        d: *const BIGNUM,
19087        p: *const BIGNUM,
19088        q: *const BIGNUM,
19089        dmp1: *const BIGNUM,
19090        dmq1: *const BIGNUM,
19091        iqmp: *const BIGNUM,
19092    ) -> *mut RSA;
19093}
19094extern "C" {
19095    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get_ex_new_index"]
19096    pub fn RSA_get_ex_new_index(
19097        argl: ::std::os::raw::c_long,
19098        argp: *mut ::std::os::raw::c_void,
19099        unused: *mut CRYPTO_EX_unused,
19100        dup_unused: CRYPTO_EX_dup,
19101        free_func: CRYPTO_EX_free,
19102    ) -> ::std::os::raw::c_int;
19103}
19104extern "C" {
19105    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set_ex_data"]
19106    pub fn RSA_set_ex_data(
19107        rsa: *mut RSA,
19108        idx: ::std::os::raw::c_int,
19109        arg: *mut ::std::os::raw::c_void,
19110    ) -> ::std::os::raw::c_int;
19111}
19112extern "C" {
19113    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get_ex_data"]
19114    pub fn RSA_get_ex_data(
19115        rsa: *const RSA,
19116        idx: ::std::os::raw::c_int,
19117    ) -> *mut ::std::os::raw::c_void;
19118}
19119extern "C" {
19120    #[link_name = "\u{1}aws_lc_0_37_0_RSA_flags"]
19121    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
19122}
19123extern "C" {
19124    #[link_name = "\u{1}aws_lc_0_37_0_RSA_set_flags"]
19125    pub fn RSA_set_flags(rsa: *mut RSA, flags: ::std::os::raw::c_int);
19126}
19127extern "C" {
19128    #[link_name = "\u{1}aws_lc_0_37_0_RSA_test_flags"]
19129    pub fn RSA_test_flags(rsa: *const RSA, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
19130}
19131extern "C" {
19132    #[link_name = "\u{1}aws_lc_0_37_0_RSA_blinding_on"]
19133    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
19134}
19135extern "C" {
19136    #[link_name = "\u{1}aws_lc_0_37_0_RSA_blinding_off_temp_for_accp_compatibility"]
19137    pub fn RSA_blinding_off_temp_for_accp_compatibility(rsa: *mut RSA);
19138}
19139extern "C" {
19140    #[link_name = "\u{1}aws_lc_0_37_0_RSA_pkey_ctx_ctrl"]
19141    pub fn RSA_pkey_ctx_ctrl(
19142        ctx: *mut EVP_PKEY_CTX,
19143        optype: ::std::os::raw::c_int,
19144        cmd: ::std::os::raw::c_int,
19145        p1: ::std::os::raw::c_int,
19146        p2: *mut ::std::os::raw::c_void,
19147    ) -> ::std::os::raw::c_int;
19148}
19149extern "C" {
19150    #[link_name = "\u{1}aws_lc_0_37_0_RSA_generate_key"]
19151    pub fn RSA_generate_key(
19152        bits: ::std::os::raw::c_int,
19153        e: u64,
19154        callback: *mut ::std::os::raw::c_void,
19155        cb_arg: *mut ::std::os::raw::c_void,
19156    ) -> *mut RSA;
19157}
19158extern "C" {
19159    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPublicKey"]
19160    pub fn d2i_RSAPublicKey(
19161        out: *mut *mut RSA,
19162        inp: *mut *const u8,
19163        len: ::std::os::raw::c_long,
19164    ) -> *mut RSA;
19165}
19166extern "C" {
19167    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPublicKey"]
19168    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19169}
19170extern "C" {
19171    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPrivateKey"]
19172    pub fn d2i_RSAPrivateKey(
19173        out: *mut *mut RSA,
19174        inp: *mut *const u8,
19175        len: ::std::os::raw::c_long,
19176    ) -> *mut RSA;
19177}
19178extern "C" {
19179    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPrivateKey"]
19180    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19181}
19182extern "C" {
19183    #[link_name = "\u{1}aws_lc_0_37_0_RSA_padding_add_PKCS1_PSS"]
19184    pub fn RSA_padding_add_PKCS1_PSS(
19185        rsa: *const RSA,
19186        EM: *mut u8,
19187        mHash: *const u8,
19188        Hash: *const EVP_MD,
19189        sLen: ::std::os::raw::c_int,
19190    ) -> ::std::os::raw::c_int;
19191}
19192extern "C" {
19193    #[link_name = "\u{1}aws_lc_0_37_0_RSA_verify_PKCS1_PSS"]
19194    pub fn RSA_verify_PKCS1_PSS(
19195        rsa: *const RSA,
19196        mHash: *const u8,
19197        Hash: *const EVP_MD,
19198        EM: *const u8,
19199        sLen: ::std::os::raw::c_int,
19200    ) -> ::std::os::raw::c_int;
19201}
19202extern "C" {
19203    #[link_name = "\u{1}aws_lc_0_37_0_RSA_padding_add_PKCS1_OAEP"]
19204    pub fn RSA_padding_add_PKCS1_OAEP(
19205        to: *mut u8,
19206        to_len: usize,
19207        from: *const u8,
19208        from_len: usize,
19209        param: *const u8,
19210        param_len: usize,
19211    ) -> ::std::os::raw::c_int;
19212}
19213extern "C" {
19214    #[link_name = "\u{1}aws_lc_0_37_0_RSA_print"]
19215    pub fn RSA_print(
19216        bio: *mut BIO,
19217        rsa: *const RSA,
19218        indent: ::std::os::raw::c_int,
19219    ) -> ::std::os::raw::c_int;
19220}
19221extern "C" {
19222    #[link_name = "\u{1}aws_lc_0_37_0_RSA_print_fp"]
19223    pub fn RSA_print_fp(
19224        fp: *mut FILE,
19225        rsa: *const RSA,
19226        indent: ::std::os::raw::c_int,
19227    ) -> ::std::os::raw::c_int;
19228}
19229extern "C" {
19230    #[link_name = "\u{1}aws_lc_0_37_0_RSA_get0_pss_params"]
19231    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
19232}
19233extern "C" {
19234    #[link_name = "\u{1}aws_lc_0_37_0_RSA_new_method_no_e"]
19235    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
19236}
19237pub type sk_X509_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
19238pub type sk_X509_copy_func =
19239    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
19240pub type sk_X509_cmp_func = ::std::option::Option<
19241    unsafe extern "C" fn(
19242        arg1: *const *const X509,
19243        arg2: *const *const X509,
19244    ) -> ::std::os::raw::c_int,
19245>;
19246pub type sk_X509_delete_if_func = ::std::option::Option<
19247    unsafe extern "C" fn(
19248        arg1: *mut X509,
19249        arg2: *mut ::std::os::raw::c_void,
19250    ) -> ::std::os::raw::c_int,
19251>;
19252extern "C" {
19253    #[link_name = "\u{1}aws_lc_0_37_0_X509_it"]
19254    pub static X509_it: ASN1_ITEM;
19255}
19256extern "C" {
19257    #[link_name = "\u{1}aws_lc_0_37_0_X509_up_ref"]
19258    pub fn X509_up_ref(x509: *mut X509) -> ::std::os::raw::c_int;
19259}
19260extern "C" {
19261    #[link_name = "\u{1}aws_lc_0_37_0_X509_chain_up_ref"]
19262    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
19263}
19264extern "C" {
19265    #[link_name = "\u{1}aws_lc_0_37_0_X509_dup"]
19266    pub fn X509_dup(x509: *mut X509) -> *mut X509;
19267}
19268extern "C" {
19269    #[link_name = "\u{1}aws_lc_0_37_0_X509_free"]
19270    pub fn X509_free(x509: *mut X509);
19271}
19272extern "C" {
19273    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509"]
19274    pub fn d2i_X509(
19275        out: *mut *mut X509,
19276        inp: *mut *const u8,
19277        len: ::std::os::raw::c_long,
19278    ) -> *mut X509;
19279}
19280extern "C" {
19281    #[link_name = "\u{1}aws_lc_0_37_0_X509_parse_from_buffer"]
19282    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
19283}
19284extern "C" {
19285    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509"]
19286    pub fn i2d_X509(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19287}
19288extern "C" {
19289    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_version"]
19290    pub fn X509_get_version(x509: *const X509) -> ::std::os::raw::c_long;
19291}
19292extern "C" {
19293    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_serialNumber"]
19294    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
19295}
19296extern "C" {
19297    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_notBefore"]
19298    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
19299}
19300extern "C" {
19301    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_notAfter"]
19302    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
19303}
19304extern "C" {
19305    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_issuer_name"]
19306    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
19307}
19308extern "C" {
19309    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_subject_name"]
19310    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
19311}
19312extern "C" {
19313    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_X509_PUBKEY"]
19314    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
19315}
19316extern "C" {
19317    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_pubkey"]
19318    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19319}
19320extern "C" {
19321    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_pubkey"]
19322    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19323}
19324extern "C" {
19325    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_pubkey_bitstr"]
19326    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
19327}
19328extern "C" {
19329    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_private_key"]
19330    pub fn X509_check_private_key(
19331        x509: *const X509,
19332        pkey: *const EVP_PKEY,
19333    ) -> ::std::os::raw::c_int;
19334}
19335extern "C" {
19336    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_uids"]
19337    pub fn X509_get0_uids(
19338        x509: *const X509,
19339        out_issuer_uid: *mut *const ASN1_BIT_STRING,
19340        out_subject_uid: *mut *const ASN1_BIT_STRING,
19341    );
19342}
19343extern "C" {
19344    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_extension_flags"]
19345    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
19346}
19347extern "C" {
19348    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_pathlen"]
19349    pub fn X509_get_pathlen(x509: *mut X509) -> ::std::os::raw::c_long;
19350}
19351extern "C" {
19352    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_key_usage"]
19353    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
19354}
19355extern "C" {
19356    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_extended_key_usage"]
19357    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
19358}
19359extern "C" {
19360    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_subject_key_id"]
19361    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19362}
19363extern "C" {
19364    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_authority_key_id"]
19365    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19366}
19367#[repr(C)]
19368#[derive(Debug, Copy, Clone)]
19369pub struct stack_st_GENERAL_NAME {
19370    _unused: [u8; 0],
19371}
19372pub type sk_GENERAL_NAME_free_func =
19373    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
19374pub type sk_GENERAL_NAME_copy_func =
19375    ::std::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
19376pub type sk_GENERAL_NAME_cmp_func = ::std::option::Option<
19377    unsafe extern "C" fn(
19378        arg1: *const *const GENERAL_NAME,
19379        arg2: *const *const GENERAL_NAME,
19380    ) -> ::std::os::raw::c_int,
19381>;
19382pub type sk_GENERAL_NAME_delete_if_func = ::std::option::Option<
19383    unsafe extern "C" fn(
19384        arg1: *mut GENERAL_NAME,
19385        arg2: *mut ::std::os::raw::c_void,
19386    ) -> ::std::os::raw::c_int,
19387>;
19388pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
19389extern "C" {
19390    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_authority_issuer"]
19391    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
19392}
19393extern "C" {
19394    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_authority_serial"]
19395    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
19396}
19397#[repr(C)]
19398#[derive(Debug, Copy, Clone)]
19399pub struct stack_st_X509_EXTENSION {
19400    _unused: [u8; 0],
19401}
19402extern "C" {
19403    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_extensions"]
19404    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
19405}
19406extern "C" {
19407    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext_count"]
19408    pub fn X509_get_ext_count(x: *const X509) -> ::std::os::raw::c_int;
19409}
19410extern "C" {
19411    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext_by_NID"]
19412    pub fn X509_get_ext_by_NID(
19413        x: *const X509,
19414        nid: ::std::os::raw::c_int,
19415        lastpos: ::std::os::raw::c_int,
19416    ) -> ::std::os::raw::c_int;
19417}
19418extern "C" {
19419    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext_by_OBJ"]
19420    pub fn X509_get_ext_by_OBJ(
19421        x: *const X509,
19422        obj: *const ASN1_OBJECT,
19423        lastpos: ::std::os::raw::c_int,
19424    ) -> ::std::os::raw::c_int;
19425}
19426extern "C" {
19427    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext_by_critical"]
19428    pub fn X509_get_ext_by_critical(
19429        x: *const X509,
19430        crit: ::std::os::raw::c_int,
19431        lastpos: ::std::os::raw::c_int,
19432    ) -> ::std::os::raw::c_int;
19433}
19434extern "C" {
19435    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext"]
19436    pub fn X509_get_ext(x: *const X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19437}
19438extern "C" {
19439    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ext_d2i"]
19440    pub fn X509_get_ext_d2i(
19441        x509: *const X509,
19442        nid: ::std::os::raw::c_int,
19443        out_critical: *mut ::std::os::raw::c_int,
19444        out_idx: *mut ::std::os::raw::c_int,
19445    ) -> *mut ::std::os::raw::c_void;
19446}
19447extern "C" {
19448    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_tbs_sigalg"]
19449    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
19450}
19451extern "C" {
19452    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_signature_info"]
19453    pub fn X509_get_signature_info(
19454        x509: *mut X509,
19455        digest_nid: *mut ::std::os::raw::c_int,
19456        pubkey_nid: *mut ::std::os::raw::c_int,
19457        sec_bits: *mut ::std::os::raw::c_int,
19458        flags: *mut u32,
19459    ) -> ::std::os::raw::c_int;
19460}
19461extern "C" {
19462    #[link_name = "\u{1}aws_lc_0_37_0_X509_get0_signature"]
19463    pub fn X509_get0_signature(
19464        out_sig: *mut *const ASN1_BIT_STRING,
19465        out_alg: *mut *const X509_ALGOR,
19466        x509: *const X509,
19467    );
19468}
19469extern "C" {
19470    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_signature_nid"]
19471    pub fn X509_get_signature_nid(x509: *const X509) -> ::std::os::raw::c_int;
19472}
19473extern "C" {
19474    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_tbs"]
19475    pub fn i2d_X509_tbs(
19476        x509: *mut X509,
19477        outp: *mut *mut ::std::os::raw::c_uchar,
19478    ) -> ::std::os::raw::c_int;
19479}
19480extern "C" {
19481    #[link_name = "\u{1}aws_lc_0_37_0_X509_verify"]
19482    pub fn X509_verify(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19483}
19484extern "C" {
19485    #[link_name = "\u{1}aws_lc_0_37_0_X509_get1_email"]
19486    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19487}
19488extern "C" {
19489    #[link_name = "\u{1}aws_lc_0_37_0_X509_get1_ocsp"]
19490    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19491}
19492extern "C" {
19493    #[link_name = "\u{1}aws_lc_0_37_0_X509_email_free"]
19494    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
19495}
19496extern "C" {
19497    #[link_name = "\u{1}aws_lc_0_37_0_X509_cmp"]
19498    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
19499}
19500extern "C" {
19501    #[link_name = "\u{1}aws_lc_0_37_0_X509_new"]
19502    pub fn X509_new() -> *mut X509;
19503}
19504extern "C" {
19505    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_version"]
19506    pub fn X509_set_version(
19507        x509: *mut X509,
19508        version: ::std::os::raw::c_long,
19509    ) -> ::std::os::raw::c_int;
19510}
19511extern "C" {
19512    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_serialNumber"]
19513    pub fn X509_set_serialNumber(
19514        x509: *mut X509,
19515        serial: *const ASN1_INTEGER,
19516    ) -> ::std::os::raw::c_int;
19517}
19518extern "C" {
19519    #[link_name = "\u{1}aws_lc_0_37_0_X509_set1_notBefore"]
19520    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19521}
19522extern "C" {
19523    #[link_name = "\u{1}aws_lc_0_37_0_X509_set1_notAfter"]
19524    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19525}
19526extern "C" {
19527    #[link_name = "\u{1}aws_lc_0_37_0_X509_getm_notBefore"]
19528    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
19529}
19530extern "C" {
19531    #[link_name = "\u{1}aws_lc_0_37_0_X509_getm_notAfter"]
19532    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
19533}
19534extern "C" {
19535    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_issuer_name"]
19536    pub fn X509_set_issuer_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19537}
19538extern "C" {
19539    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_subject_name"]
19540    pub fn X509_set_subject_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19541}
19542extern "C" {
19543    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_pubkey"]
19544    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19545}
19546extern "C" {
19547    #[link_name = "\u{1}aws_lc_0_37_0_X509_delete_ext"]
19548    pub fn X509_delete_ext(x: *mut X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19549}
19550extern "C" {
19551    #[link_name = "\u{1}aws_lc_0_37_0_X509_add_ext"]
19552    pub fn X509_add_ext(
19553        x: *mut X509,
19554        ex: *const X509_EXTENSION,
19555        loc: ::std::os::raw::c_int,
19556    ) -> ::std::os::raw::c_int;
19557}
19558extern "C" {
19559    #[link_name = "\u{1}aws_lc_0_37_0_X509_add1_ext_i2d"]
19560    pub fn X509_add1_ext_i2d(
19561        x: *mut X509,
19562        nid: ::std::os::raw::c_int,
19563        value: *mut ::std::os::raw::c_void,
19564        crit: ::std::os::raw::c_int,
19565        flags: ::std::os::raw::c_ulong,
19566    ) -> ::std::os::raw::c_int;
19567}
19568extern "C" {
19569    #[link_name = "\u{1}aws_lc_0_37_0_X509_sign"]
19570    pub fn X509_sign(
19571        x509: *mut X509,
19572        pkey: *mut EVP_PKEY,
19573        md: *const EVP_MD,
19574    ) -> ::std::os::raw::c_int;
19575}
19576extern "C" {
19577    #[link_name = "\u{1}aws_lc_0_37_0_X509_sign_ctx"]
19578    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19579}
19580extern "C" {
19581    #[link_name = "\u{1}aws_lc_0_37_0_i2d_re_X509_tbs"]
19582    pub fn i2d_re_X509_tbs(
19583        x509: *mut X509,
19584        outp: *mut *mut ::std::os::raw::c_uchar,
19585    ) -> ::std::os::raw::c_int;
19586}
19587extern "C" {
19588    #[link_name = "\u{1}aws_lc_0_37_0_X509_set1_signature_algo"]
19589    pub fn X509_set1_signature_algo(
19590        x509: *mut X509,
19591        algo: *const X509_ALGOR,
19592    ) -> ::std::os::raw::c_int;
19593}
19594extern "C" {
19595    #[link_name = "\u{1}aws_lc_0_37_0_X509_set1_signature_value"]
19596    pub fn X509_set1_signature_value(
19597        x509: *mut X509,
19598        sig: *const u8,
19599        sig_len: usize,
19600    ) -> ::std::os::raw::c_int;
19601}
19602extern "C" {
19603    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_AUX"]
19604    pub fn i2d_X509_AUX(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19605}
19606extern "C" {
19607    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_AUX"]
19608    pub fn d2i_X509_AUX(
19609        x509: *mut *mut X509,
19610        inp: *mut *const u8,
19611        length: ::std::os::raw::c_long,
19612    ) -> *mut X509;
19613}
19614extern "C" {
19615    #[link_name = "\u{1}aws_lc_0_37_0_X509_alias_set1"]
19616    pub fn X509_alias_set1(
19617        x509: *mut X509,
19618        name: *const u8,
19619        len: ossl_ssize_t,
19620    ) -> ::std::os::raw::c_int;
19621}
19622extern "C" {
19623    #[link_name = "\u{1}aws_lc_0_37_0_X509_keyid_set1"]
19624    pub fn X509_keyid_set1(
19625        x509: *mut X509,
19626        id: *const u8,
19627        len: ossl_ssize_t,
19628    ) -> ::std::os::raw::c_int;
19629}
19630extern "C" {
19631    #[link_name = "\u{1}aws_lc_0_37_0_X509_alias_get0"]
19632    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19633}
19634extern "C" {
19635    #[link_name = "\u{1}aws_lc_0_37_0_X509_keyid_get0"]
19636    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19637}
19638extern "C" {
19639    #[link_name = "\u{1}aws_lc_0_37_0_X509_add1_trust_object"]
19640    pub fn X509_add1_trust_object(
19641        x509: *mut X509,
19642        obj: *const ASN1_OBJECT,
19643    ) -> ::std::os::raw::c_int;
19644}
19645extern "C" {
19646    #[link_name = "\u{1}aws_lc_0_37_0_X509_add1_reject_object"]
19647    pub fn X509_add1_reject_object(
19648        x509: *mut X509,
19649        obj: *const ASN1_OBJECT,
19650    ) -> ::std::os::raw::c_int;
19651}
19652extern "C" {
19653    #[link_name = "\u{1}aws_lc_0_37_0_X509_trust_clear"]
19654    pub fn X509_trust_clear(x509: *mut X509);
19655}
19656extern "C" {
19657    #[link_name = "\u{1}aws_lc_0_37_0_X509_reject_clear"]
19658    pub fn X509_reject_clear(x509: *mut X509);
19659}
19660pub type sk_X509_CRL_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
19661pub type sk_X509_CRL_copy_func =
19662    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
19663pub type sk_X509_CRL_cmp_func = ::std::option::Option<
19664    unsafe extern "C" fn(
19665        arg1: *const *const X509_CRL,
19666        arg2: *const *const X509_CRL,
19667    ) -> ::std::os::raw::c_int,
19668>;
19669pub type sk_X509_CRL_delete_if_func = ::std::option::Option<
19670    unsafe extern "C" fn(
19671        arg1: *mut X509_CRL,
19672        arg2: *mut ::std::os::raw::c_void,
19673    ) -> ::std::os::raw::c_int,
19674>;
19675#[repr(C)]
19676#[derive(Debug, Copy, Clone)]
19677pub struct stack_st_X509_REVOKED {
19678    _unused: [u8; 0],
19679}
19680pub type sk_X509_REVOKED_free_func =
19681    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
19682pub type sk_X509_REVOKED_copy_func =
19683    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
19684pub type sk_X509_REVOKED_cmp_func = ::std::option::Option<
19685    unsafe extern "C" fn(
19686        arg1: *const *const X509_REVOKED,
19687        arg2: *const *const X509_REVOKED,
19688    ) -> ::std::os::raw::c_int,
19689>;
19690pub type sk_X509_REVOKED_delete_if_func = ::std::option::Option<
19691    unsafe extern "C" fn(
19692        arg1: *mut X509_REVOKED,
19693        arg2: *mut ::std::os::raw::c_void,
19694    ) -> ::std::os::raw::c_int,
19695>;
19696extern "C" {
19697    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_it"]
19698    pub static X509_CRL_it: ASN1_ITEM;
19699}
19700extern "C" {
19701    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_up_ref"]
19702    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19703}
19704extern "C" {
19705    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_dup"]
19706    pub fn X509_CRL_dup(crl: *mut X509_CRL) -> *mut X509_CRL;
19707}
19708extern "C" {
19709    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_free"]
19710    pub fn X509_CRL_free(crl: *mut X509_CRL);
19711}
19712extern "C" {
19713    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_CRL"]
19714    pub fn d2i_X509_CRL(
19715        out: *mut *mut X509_CRL,
19716        inp: *mut *const u8,
19717        len: ::std::os::raw::c_long,
19718    ) -> *mut X509_CRL;
19719}
19720extern "C" {
19721    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_CRL"]
19722    pub fn i2d_X509_CRL(crl: *mut X509_CRL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19723}
19724extern "C" {
19725    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_match"]
19726    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
19727}
19728extern "C" {
19729    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_version"]
19730    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::std::os::raw::c_long;
19731}
19732extern "C" {
19733    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_lastUpdate"]
19734    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19735}
19736extern "C" {
19737    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_nextUpdate"]
19738    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19739}
19740extern "C" {
19741    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_issuer"]
19742    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
19743}
19744extern "C" {
19745    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_by_serial"]
19746    pub fn X509_CRL_get0_by_serial(
19747        crl: *mut X509_CRL,
19748        out: *mut *mut X509_REVOKED,
19749        serial: *const ASN1_INTEGER,
19750    ) -> ::std::os::raw::c_int;
19751}
19752extern "C" {
19753    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_by_cert"]
19754    pub fn X509_CRL_get0_by_cert(
19755        crl: *mut X509_CRL,
19756        out: *mut *mut X509_REVOKED,
19757        x509: *mut X509,
19758    ) -> ::std::os::raw::c_int;
19759}
19760extern "C" {
19761    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_REVOKED"]
19762    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
19763}
19764extern "C" {
19765    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_extensions"]
19766    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
19767}
19768extern "C" {
19769    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext_count"]
19770    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::std::os::raw::c_int;
19771}
19772extern "C" {
19773    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext_by_NID"]
19774    pub fn X509_CRL_get_ext_by_NID(
19775        x: *const X509_CRL,
19776        nid: ::std::os::raw::c_int,
19777        lastpos: ::std::os::raw::c_int,
19778    ) -> ::std::os::raw::c_int;
19779}
19780extern "C" {
19781    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext_by_OBJ"]
19782    pub fn X509_CRL_get_ext_by_OBJ(
19783        x: *const X509_CRL,
19784        obj: *const ASN1_OBJECT,
19785        lastpos: ::std::os::raw::c_int,
19786    ) -> ::std::os::raw::c_int;
19787}
19788extern "C" {
19789    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext_by_critical"]
19790    pub fn X509_CRL_get_ext_by_critical(
19791        x: *const X509_CRL,
19792        crit: ::std::os::raw::c_int,
19793        lastpos: ::std::os::raw::c_int,
19794    ) -> ::std::os::raw::c_int;
19795}
19796extern "C" {
19797    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext"]
19798    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19799}
19800extern "C" {
19801    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_ext_d2i"]
19802    pub fn X509_CRL_get_ext_d2i(
19803        crl: *const X509_CRL,
19804        nid: ::std::os::raw::c_int,
19805        out_critical: *mut ::std::os::raw::c_int,
19806        out_idx: *mut ::std::os::raw::c_int,
19807    ) -> *mut ::std::os::raw::c_void;
19808}
19809extern "C" {
19810    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get0_signature"]
19811    pub fn X509_CRL_get0_signature(
19812        crl: *const X509_CRL,
19813        out_sig: *mut *const ASN1_BIT_STRING,
19814        out_alg: *mut *const X509_ALGOR,
19815    );
19816}
19817extern "C" {
19818    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_signature_nid"]
19819    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::std::os::raw::c_int;
19820}
19821extern "C" {
19822    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_CRL_tbs"]
19823    pub fn i2d_X509_CRL_tbs(
19824        crl: *mut X509_CRL,
19825        outp: *mut *mut ::std::os::raw::c_uchar,
19826    ) -> ::std::os::raw::c_int;
19827}
19828extern "C" {
19829    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_verify"]
19830    pub fn X509_CRL_verify(crl: *mut X509_CRL, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19831}
19832extern "C" {
19833    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_new"]
19834    pub fn X509_CRL_new() -> *mut X509_CRL;
19835}
19836extern "C" {
19837    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set_version"]
19838    pub fn X509_CRL_set_version(
19839        crl: *mut X509_CRL,
19840        version: ::std::os::raw::c_long,
19841    ) -> ::std::os::raw::c_int;
19842}
19843extern "C" {
19844    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set_issuer_name"]
19845    pub fn X509_CRL_set_issuer_name(
19846        crl: *mut X509_CRL,
19847        name: *mut X509_NAME,
19848    ) -> ::std::os::raw::c_int;
19849}
19850extern "C" {
19851    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set1_lastUpdate"]
19852    pub fn X509_CRL_set1_lastUpdate(
19853        crl: *mut X509_CRL,
19854        tm: *const ASN1_TIME,
19855    ) -> ::std::os::raw::c_int;
19856}
19857extern "C" {
19858    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set1_nextUpdate"]
19859    pub fn X509_CRL_set1_nextUpdate(
19860        crl: *mut X509_CRL,
19861        tm: *const ASN1_TIME,
19862    ) -> ::std::os::raw::c_int;
19863}
19864extern "C" {
19865    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_add0_revoked"]
19866    pub fn X509_CRL_add0_revoked(
19867        crl: *mut X509_CRL,
19868        rev: *mut X509_REVOKED,
19869    ) -> ::std::os::raw::c_int;
19870}
19871extern "C" {
19872    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_sort"]
19873    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19874}
19875extern "C" {
19876    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_delete_ext"]
19877    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::std::os::raw::c_int)
19878        -> *mut X509_EXTENSION;
19879}
19880extern "C" {
19881    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_add_ext"]
19882    pub fn X509_CRL_add_ext(
19883        x: *mut X509_CRL,
19884        ex: *const X509_EXTENSION,
19885        loc: ::std::os::raw::c_int,
19886    ) -> ::std::os::raw::c_int;
19887}
19888extern "C" {
19889    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_add1_ext_i2d"]
19890    pub fn X509_CRL_add1_ext_i2d(
19891        x: *mut X509_CRL,
19892        nid: ::std::os::raw::c_int,
19893        value: *mut ::std::os::raw::c_void,
19894        crit: ::std::os::raw::c_int,
19895        flags: ::std::os::raw::c_ulong,
19896    ) -> ::std::os::raw::c_int;
19897}
19898extern "C" {
19899    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_sign"]
19900    pub fn X509_CRL_sign(
19901        crl: *mut X509_CRL,
19902        pkey: *mut EVP_PKEY,
19903        md: *const EVP_MD,
19904    ) -> ::std::os::raw::c_int;
19905}
19906extern "C" {
19907    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_sign_ctx"]
19908    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19909}
19910extern "C" {
19911    #[link_name = "\u{1}aws_lc_0_37_0_i2d_re_X509_CRL_tbs"]
19912    pub fn i2d_re_X509_CRL_tbs(
19913        crl: *mut X509_CRL,
19914        outp: *mut *mut ::std::os::raw::c_uchar,
19915    ) -> ::std::os::raw::c_int;
19916}
19917extern "C" {
19918    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set1_signature_algo"]
19919    pub fn X509_CRL_set1_signature_algo(
19920        crl: *mut X509_CRL,
19921        algo: *const X509_ALGOR,
19922    ) -> ::std::os::raw::c_int;
19923}
19924extern "C" {
19925    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_set1_signature_value"]
19926    pub fn X509_CRL_set1_signature_value(
19927        crl: *mut X509_CRL,
19928        sig: *const u8,
19929        sig_len: usize,
19930    ) -> ::std::os::raw::c_int;
19931}
19932extern "C" {
19933    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_http_nbio"]
19934    pub fn X509_CRL_http_nbio(
19935        rctx: *mut OCSP_REQ_CTX,
19936        pcrl: *mut *mut X509_CRL,
19937    ) -> ::std::os::raw::c_int;
19938}
19939extern "C" {
19940    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_it"]
19941    pub static X509_REVOKED_it: ASN1_ITEM;
19942}
19943extern "C" {
19944    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_new"]
19945    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
19946}
19947extern "C" {
19948    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_free"]
19949    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
19950}
19951extern "C" {
19952    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_REVOKED"]
19953    pub fn d2i_X509_REVOKED(
19954        out: *mut *mut X509_REVOKED,
19955        inp: *mut *const u8,
19956        len: ::std::os::raw::c_long,
19957    ) -> *mut X509_REVOKED;
19958}
19959extern "C" {
19960    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_REVOKED"]
19961    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19962}
19963extern "C" {
19964    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_dup"]
19965    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
19966}
19967extern "C" {
19968    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get0_serialNumber"]
19969    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
19970}
19971extern "C" {
19972    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_set_serialNumber"]
19973    pub fn X509_REVOKED_set_serialNumber(
19974        revoked: *mut X509_REVOKED,
19975        serial: *const ASN1_INTEGER,
19976    ) -> ::std::os::raw::c_int;
19977}
19978extern "C" {
19979    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get0_revocationDate"]
19980    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
19981}
19982extern "C" {
19983    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_set_revocationDate"]
19984    pub fn X509_REVOKED_set_revocationDate(
19985        revoked: *mut X509_REVOKED,
19986        tm: *const ASN1_TIME,
19987    ) -> ::std::os::raw::c_int;
19988}
19989extern "C" {
19990    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get0_extensions"]
19991    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
19992}
19993extern "C" {
19994    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext_count"]
19995    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::std::os::raw::c_int;
19996}
19997extern "C" {
19998    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext_by_NID"]
19999    pub fn X509_REVOKED_get_ext_by_NID(
20000        x: *const X509_REVOKED,
20001        nid: ::std::os::raw::c_int,
20002        lastpos: ::std::os::raw::c_int,
20003    ) -> ::std::os::raw::c_int;
20004}
20005extern "C" {
20006    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext_by_OBJ"]
20007    pub fn X509_REVOKED_get_ext_by_OBJ(
20008        x: *const X509_REVOKED,
20009        obj: *const ASN1_OBJECT,
20010        lastpos: ::std::os::raw::c_int,
20011    ) -> ::std::os::raw::c_int;
20012}
20013extern "C" {
20014    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext_by_critical"]
20015    pub fn X509_REVOKED_get_ext_by_critical(
20016        x: *const X509_REVOKED,
20017        crit: ::std::os::raw::c_int,
20018        lastpos: ::std::os::raw::c_int,
20019    ) -> ::std::os::raw::c_int;
20020}
20021extern "C" {
20022    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext"]
20023    pub fn X509_REVOKED_get_ext(
20024        x: *const X509_REVOKED,
20025        loc: ::std::os::raw::c_int,
20026    ) -> *mut X509_EXTENSION;
20027}
20028extern "C" {
20029    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_delete_ext"]
20030    pub fn X509_REVOKED_delete_ext(
20031        x: *mut X509_REVOKED,
20032        loc: ::std::os::raw::c_int,
20033    ) -> *mut X509_EXTENSION;
20034}
20035extern "C" {
20036    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_add_ext"]
20037    pub fn X509_REVOKED_add_ext(
20038        x: *mut X509_REVOKED,
20039        ex: *const X509_EXTENSION,
20040        loc: ::std::os::raw::c_int,
20041    ) -> ::std::os::raw::c_int;
20042}
20043extern "C" {
20044    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_get_ext_d2i"]
20045    pub fn X509_REVOKED_get_ext_d2i(
20046        revoked: *const X509_REVOKED,
20047        nid: ::std::os::raw::c_int,
20048        out_critical: *mut ::std::os::raw::c_int,
20049        out_idx: *mut ::std::os::raw::c_int,
20050    ) -> *mut ::std::os::raw::c_void;
20051}
20052extern "C" {
20053    #[link_name = "\u{1}aws_lc_0_37_0_X509_REVOKED_add1_ext_i2d"]
20054    pub fn X509_REVOKED_add1_ext_i2d(
20055        x: *mut X509_REVOKED,
20056        nid: ::std::os::raw::c_int,
20057        value: *mut ::std::os::raw::c_void,
20058        crit: ::std::os::raw::c_int,
20059        flags: ::std::os::raw::c_ulong,
20060    ) -> ::std::os::raw::c_int;
20061}
20062extern "C" {
20063    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_it"]
20064    pub static X509_REQ_it: ASN1_ITEM;
20065}
20066extern "C" {
20067    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_dup"]
20068    pub fn X509_REQ_dup(req: *mut X509_REQ) -> *mut X509_REQ;
20069}
20070extern "C" {
20071    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_free"]
20072    pub fn X509_REQ_free(req: *mut X509_REQ);
20073}
20074extern "C" {
20075    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_REQ"]
20076    pub fn d2i_X509_REQ(
20077        out: *mut *mut X509_REQ,
20078        inp: *mut *const u8,
20079        len: ::std::os::raw::c_long,
20080    ) -> *mut X509_REQ;
20081}
20082extern "C" {
20083    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_REQ"]
20084    pub fn i2d_X509_REQ(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20085}
20086extern "C" {
20087    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_version"]
20088    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::std::os::raw::c_long;
20089}
20090extern "C" {
20091    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_subject_name"]
20092    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
20093}
20094extern "C" {
20095    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get0_pubkey"]
20096    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20097}
20098extern "C" {
20099    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_pubkey"]
20100    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20101}
20102extern "C" {
20103    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_check_private_key"]
20104    pub fn X509_REQ_check_private_key(
20105        req: *const X509_REQ,
20106        pkey: *const EVP_PKEY,
20107    ) -> ::std::os::raw::c_int;
20108}
20109extern "C" {
20110    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_attr_count"]
20111    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::std::os::raw::c_int;
20112}
20113extern "C" {
20114    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_attr"]
20115    pub fn X509_REQ_get_attr(
20116        req: *const X509_REQ,
20117        loc: ::std::os::raw::c_int,
20118    ) -> *mut X509_ATTRIBUTE;
20119}
20120extern "C" {
20121    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_attr_by_NID"]
20122    pub fn X509_REQ_get_attr_by_NID(
20123        req: *const X509_REQ,
20124        nid: ::std::os::raw::c_int,
20125        lastpos: ::std::os::raw::c_int,
20126    ) -> ::std::os::raw::c_int;
20127}
20128extern "C" {
20129    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_attr_by_OBJ"]
20130    pub fn X509_REQ_get_attr_by_OBJ(
20131        req: *const X509_REQ,
20132        obj: *const ASN1_OBJECT,
20133        lastpos: ::std::os::raw::c_int,
20134    ) -> ::std::os::raw::c_int;
20135}
20136extern "C" {
20137    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_extension_nid"]
20138    pub fn X509_REQ_extension_nid(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
20139}
20140extern "C" {
20141    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_extensions"]
20142    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
20143}
20144extern "C" {
20145    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get0_signature"]
20146    pub fn X509_REQ_get0_signature(
20147        req: *const X509_REQ,
20148        out_sig: *mut *const ASN1_BIT_STRING,
20149        out_alg: *mut *const X509_ALGOR,
20150    );
20151}
20152extern "C" {
20153    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get_signature_nid"]
20154    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::std::os::raw::c_int;
20155}
20156extern "C" {
20157    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_verify"]
20158    pub fn X509_REQ_verify(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20159}
20160extern "C" {
20161    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_get1_email"]
20162    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
20163}
20164extern "C" {
20165    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_new"]
20166    pub fn X509_REQ_new() -> *mut X509_REQ;
20167}
20168extern "C" {
20169    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_set_version"]
20170    pub fn X509_REQ_set_version(
20171        req: *mut X509_REQ,
20172        version: ::std::os::raw::c_long,
20173    ) -> ::std::os::raw::c_int;
20174}
20175extern "C" {
20176    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_set_subject_name"]
20177    pub fn X509_REQ_set_subject_name(
20178        req: *mut X509_REQ,
20179        name: *mut X509_NAME,
20180    ) -> ::std::os::raw::c_int;
20181}
20182extern "C" {
20183    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_set_pubkey"]
20184    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20185}
20186extern "C" {
20187    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_delete_attr"]
20188    pub fn X509_REQ_delete_attr(
20189        req: *mut X509_REQ,
20190        loc: ::std::os::raw::c_int,
20191    ) -> *mut X509_ATTRIBUTE;
20192}
20193extern "C" {
20194    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add1_attr"]
20195    pub fn X509_REQ_add1_attr(
20196        req: *mut X509_REQ,
20197        attr: *const X509_ATTRIBUTE,
20198    ) -> ::std::os::raw::c_int;
20199}
20200extern "C" {
20201    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add1_attr_by_OBJ"]
20202    pub fn X509_REQ_add1_attr_by_OBJ(
20203        req: *mut X509_REQ,
20204        obj: *const ASN1_OBJECT,
20205        attrtype: ::std::os::raw::c_int,
20206        data: *const ::std::os::raw::c_uchar,
20207        len: ::std::os::raw::c_int,
20208    ) -> ::std::os::raw::c_int;
20209}
20210extern "C" {
20211    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add1_attr_by_NID"]
20212    pub fn X509_REQ_add1_attr_by_NID(
20213        req: *mut X509_REQ,
20214        nid: ::std::os::raw::c_int,
20215        attrtype: ::std::os::raw::c_int,
20216        data: *const ::std::os::raw::c_uchar,
20217        len: ::std::os::raw::c_int,
20218    ) -> ::std::os::raw::c_int;
20219}
20220extern "C" {
20221    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add1_attr_by_txt"]
20222    pub fn X509_REQ_add1_attr_by_txt(
20223        req: *mut X509_REQ,
20224        attrname: *const ::std::os::raw::c_char,
20225        attrtype: ::std::os::raw::c_int,
20226        data: *const ::std::os::raw::c_uchar,
20227        len: ::std::os::raw::c_int,
20228    ) -> ::std::os::raw::c_int;
20229}
20230extern "C" {
20231    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add_extensions_nid"]
20232    pub fn X509_REQ_add_extensions_nid(
20233        req: *mut X509_REQ,
20234        exts: *const stack_st_X509_EXTENSION,
20235        nid: ::std::os::raw::c_int,
20236    ) -> ::std::os::raw::c_int;
20237}
20238extern "C" {
20239    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_add_extensions"]
20240    pub fn X509_REQ_add_extensions(
20241        req: *mut X509_REQ,
20242        exts: *const stack_st_X509_EXTENSION,
20243    ) -> ::std::os::raw::c_int;
20244}
20245extern "C" {
20246    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_sign"]
20247    pub fn X509_REQ_sign(
20248        req: *mut X509_REQ,
20249        pkey: *mut EVP_PKEY,
20250        md: *const EVP_MD,
20251    ) -> ::std::os::raw::c_int;
20252}
20253extern "C" {
20254    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_sign_ctx"]
20255    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
20256}
20257extern "C" {
20258    #[link_name = "\u{1}aws_lc_0_37_0_i2d_re_X509_REQ_tbs"]
20259    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20260}
20261extern "C" {
20262    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_set1_signature_algo"]
20263    pub fn X509_REQ_set1_signature_algo(
20264        req: *mut X509_REQ,
20265        algo: *const X509_ALGOR,
20266    ) -> ::std::os::raw::c_int;
20267}
20268extern "C" {
20269    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_set1_signature_value"]
20270    pub fn X509_REQ_set1_signature_value(
20271        req: *mut X509_REQ,
20272        sig: *const u8,
20273        sig_len: usize,
20274    ) -> ::std::os::raw::c_int;
20275}
20276#[repr(C)]
20277#[derive(Debug, Copy, Clone)]
20278pub struct stack_st_X509_NAME_ENTRY {
20279    _unused: [u8; 0],
20280}
20281pub type sk_X509_NAME_ENTRY_free_func =
20282    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
20283pub type sk_X509_NAME_ENTRY_copy_func = ::std::option::Option<
20284    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
20285>;
20286pub type sk_X509_NAME_ENTRY_cmp_func = ::std::option::Option<
20287    unsafe extern "C" fn(
20288        arg1: *const *const X509_NAME_ENTRY,
20289        arg2: *const *const X509_NAME_ENTRY,
20290    ) -> ::std::os::raw::c_int,
20291>;
20292pub type sk_X509_NAME_ENTRY_delete_if_func = ::std::option::Option<
20293    unsafe extern "C" fn(
20294        arg1: *mut X509_NAME_ENTRY,
20295        arg2: *mut ::std::os::raw::c_void,
20296    ) -> ::std::os::raw::c_int,
20297>;
20298#[repr(C)]
20299#[derive(Debug, Copy, Clone)]
20300pub struct stack_st_X509_NAME {
20301    _unused: [u8; 0],
20302}
20303pub type sk_X509_NAME_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
20304pub type sk_X509_NAME_copy_func =
20305    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
20306pub type sk_X509_NAME_cmp_func = ::std::option::Option<
20307    unsafe extern "C" fn(
20308        arg1: *const *const X509_NAME,
20309        arg2: *const *const X509_NAME,
20310    ) -> ::std::os::raw::c_int,
20311>;
20312pub type sk_X509_NAME_delete_if_func = ::std::option::Option<
20313    unsafe extern "C" fn(
20314        arg1: *mut X509_NAME,
20315        arg2: *mut ::std::os::raw::c_void,
20316    ) -> ::std::os::raw::c_int,
20317>;
20318extern "C" {
20319    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_it"]
20320    pub static X509_NAME_it: ASN1_ITEM;
20321}
20322extern "C" {
20323    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_new"]
20324    pub fn X509_NAME_new() -> *mut X509_NAME;
20325}
20326extern "C" {
20327    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_free"]
20328    pub fn X509_NAME_free(name: *mut X509_NAME);
20329}
20330extern "C" {
20331    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_NAME"]
20332    pub fn d2i_X509_NAME(
20333        out: *mut *mut X509_NAME,
20334        inp: *mut *const u8,
20335        len: ::std::os::raw::c_long,
20336    ) -> *mut X509_NAME;
20337}
20338extern "C" {
20339    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_NAME"]
20340    pub fn i2d_X509_NAME(in_: *mut X509_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20341}
20342extern "C" {
20343    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_dup"]
20344    pub fn X509_NAME_dup(name: *mut X509_NAME) -> *mut X509_NAME;
20345}
20346extern "C" {
20347    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_cmp"]
20348    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::std::os::raw::c_int;
20349}
20350extern "C" {
20351    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get0_der"]
20352    pub fn X509_NAME_get0_der(
20353        name: *mut X509_NAME,
20354        out_der: *mut *const u8,
20355        out_der_len: *mut usize,
20356    ) -> ::std::os::raw::c_int;
20357}
20358extern "C" {
20359    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_set"]
20360    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *mut X509_NAME) -> ::std::os::raw::c_int;
20361}
20362extern "C" {
20363    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_entry_count"]
20364    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::std::os::raw::c_int;
20365}
20366extern "C" {
20367    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get_index_by_NID"]
20368    pub fn X509_NAME_get_index_by_NID(
20369        name: *const X509_NAME,
20370        nid: ::std::os::raw::c_int,
20371        lastpos: ::std::os::raw::c_int,
20372    ) -> ::std::os::raw::c_int;
20373}
20374extern "C" {
20375    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get_index_by_OBJ"]
20376    pub fn X509_NAME_get_index_by_OBJ(
20377        name: *const X509_NAME,
20378        obj: *const ASN1_OBJECT,
20379        lastpos: ::std::os::raw::c_int,
20380    ) -> ::std::os::raw::c_int;
20381}
20382extern "C" {
20383    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get_entry"]
20384    pub fn X509_NAME_get_entry(
20385        name: *const X509_NAME,
20386        loc: ::std::os::raw::c_int,
20387    ) -> *mut X509_NAME_ENTRY;
20388}
20389extern "C" {
20390    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_delete_entry"]
20391    pub fn X509_NAME_delete_entry(
20392        name: *mut X509_NAME,
20393        loc: ::std::os::raw::c_int,
20394    ) -> *mut X509_NAME_ENTRY;
20395}
20396extern "C" {
20397    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_add_entry"]
20398    pub fn X509_NAME_add_entry(
20399        name: *mut X509_NAME,
20400        entry: *const X509_NAME_ENTRY,
20401        loc: ::std::os::raw::c_int,
20402        set: ::std::os::raw::c_int,
20403    ) -> ::std::os::raw::c_int;
20404}
20405extern "C" {
20406    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_add_entry_by_OBJ"]
20407    pub fn X509_NAME_add_entry_by_OBJ(
20408        name: *mut X509_NAME,
20409        obj: *const ASN1_OBJECT,
20410        type_: ::std::os::raw::c_int,
20411        bytes: *const u8,
20412        len: ossl_ssize_t,
20413        loc: ::std::os::raw::c_int,
20414        set: ::std::os::raw::c_int,
20415    ) -> ::std::os::raw::c_int;
20416}
20417extern "C" {
20418    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_add_entry_by_NID"]
20419    pub fn X509_NAME_add_entry_by_NID(
20420        name: *mut X509_NAME,
20421        nid: ::std::os::raw::c_int,
20422        type_: ::std::os::raw::c_int,
20423        bytes: *const u8,
20424        len: ossl_ssize_t,
20425        loc: ::std::os::raw::c_int,
20426        set: ::std::os::raw::c_int,
20427    ) -> ::std::os::raw::c_int;
20428}
20429extern "C" {
20430    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_add_entry_by_txt"]
20431    pub fn X509_NAME_add_entry_by_txt(
20432        name: *mut X509_NAME,
20433        field: *const ::std::os::raw::c_char,
20434        type_: ::std::os::raw::c_int,
20435        bytes: *const u8,
20436        len: ossl_ssize_t,
20437        loc: ::std::os::raw::c_int,
20438        set: ::std::os::raw::c_int,
20439    ) -> ::std::os::raw::c_int;
20440}
20441extern "C" {
20442    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_it"]
20443    pub static X509_NAME_ENTRY_it: ASN1_ITEM;
20444}
20445extern "C" {
20446    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_new"]
20447    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
20448}
20449extern "C" {
20450    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_free"]
20451    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
20452}
20453extern "C" {
20454    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_NAME_ENTRY"]
20455    pub fn d2i_X509_NAME_ENTRY(
20456        out: *mut *mut X509_NAME_ENTRY,
20457        inp: *mut *const u8,
20458        len: ::std::os::raw::c_long,
20459    ) -> *mut X509_NAME_ENTRY;
20460}
20461extern "C" {
20462    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_NAME_ENTRY"]
20463    pub fn i2d_X509_NAME_ENTRY(
20464        in_: *const X509_NAME_ENTRY,
20465        outp: *mut *mut u8,
20466    ) -> ::std::os::raw::c_int;
20467}
20468extern "C" {
20469    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_dup"]
20470    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
20471}
20472extern "C" {
20473    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_get_object"]
20474    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
20475}
20476extern "C" {
20477    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_set_object"]
20478    pub fn X509_NAME_ENTRY_set_object(
20479        entry: *mut X509_NAME_ENTRY,
20480        obj: *const ASN1_OBJECT,
20481    ) -> ::std::os::raw::c_int;
20482}
20483extern "C" {
20484    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_get_data"]
20485    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
20486}
20487extern "C" {
20488    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_set_data"]
20489    pub fn X509_NAME_ENTRY_set_data(
20490        entry: *mut X509_NAME_ENTRY,
20491        type_: ::std::os::raw::c_int,
20492        bytes: *const u8,
20493        len: ossl_ssize_t,
20494    ) -> ::std::os::raw::c_int;
20495}
20496extern "C" {
20497    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_set"]
20498    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::std::os::raw::c_int;
20499}
20500extern "C" {
20501    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_create_by_OBJ"]
20502    pub fn X509_NAME_ENTRY_create_by_OBJ(
20503        out: *mut *mut X509_NAME_ENTRY,
20504        obj: *const ASN1_OBJECT,
20505        type_: ::std::os::raw::c_int,
20506        bytes: *const u8,
20507        len: ossl_ssize_t,
20508    ) -> *mut X509_NAME_ENTRY;
20509}
20510extern "C" {
20511    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_create_by_NID"]
20512    pub fn X509_NAME_ENTRY_create_by_NID(
20513        out: *mut *mut X509_NAME_ENTRY,
20514        nid: ::std::os::raw::c_int,
20515        type_: ::std::os::raw::c_int,
20516        bytes: *const u8,
20517        len: ossl_ssize_t,
20518    ) -> *mut X509_NAME_ENTRY;
20519}
20520extern "C" {
20521    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_ENTRY_create_by_txt"]
20522    pub fn X509_NAME_ENTRY_create_by_txt(
20523        out: *mut *mut X509_NAME_ENTRY,
20524        field: *const ::std::os::raw::c_char,
20525        type_: ::std::os::raw::c_int,
20526        bytes: *const u8,
20527        len: ossl_ssize_t,
20528    ) -> *mut X509_NAME_ENTRY;
20529}
20530extern "C" {
20531    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_it"]
20532    pub static X509_PUBKEY_it: ASN1_ITEM;
20533}
20534extern "C" {
20535    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_new"]
20536    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
20537}
20538extern "C" {
20539    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_free"]
20540    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
20541}
20542extern "C" {
20543    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_PUBKEY"]
20544    pub fn d2i_X509_PUBKEY(
20545        out: *mut *mut X509_PUBKEY,
20546        inp: *mut *const u8,
20547        len: ::std::os::raw::c_long,
20548    ) -> *mut X509_PUBKEY;
20549}
20550extern "C" {
20551    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_PUBKEY"]
20552    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20553}
20554extern "C" {
20555    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_set"]
20556    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20557}
20558extern "C" {
20559    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_get0"]
20560    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20561}
20562extern "C" {
20563    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_get"]
20564    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20565}
20566extern "C" {
20567    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_set0_param"]
20568    pub fn X509_PUBKEY_set0_param(
20569        pub_: *mut X509_PUBKEY,
20570        obj: *mut ASN1_OBJECT,
20571        param_type: ::std::os::raw::c_int,
20572        param_value: *mut ::std::os::raw::c_void,
20573        key: *mut u8,
20574        key_len: ::std::os::raw::c_int,
20575    ) -> ::std::os::raw::c_int;
20576}
20577extern "C" {
20578    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_get0_param"]
20579    pub fn X509_PUBKEY_get0_param(
20580        out_obj: *mut *mut ASN1_OBJECT,
20581        out_key: *mut *const u8,
20582        out_key_len: *mut ::std::os::raw::c_int,
20583        out_alg: *mut *mut X509_ALGOR,
20584        pub_: *mut X509_PUBKEY,
20585    ) -> ::std::os::raw::c_int;
20586}
20587extern "C" {
20588    #[link_name = "\u{1}aws_lc_0_37_0_X509_PUBKEY_get0_public_key"]
20589    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
20590}
20591extern "C" {
20592    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_it"]
20593    pub static X509_EXTENSION_it: ASN1_ITEM;
20594}
20595extern "C" {
20596    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_new"]
20597    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
20598}
20599extern "C" {
20600    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_free"]
20601    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
20602}
20603extern "C" {
20604    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_EXTENSION"]
20605    pub fn d2i_X509_EXTENSION(
20606        out: *mut *mut X509_EXTENSION,
20607        inp: *mut *const u8,
20608        len: ::std::os::raw::c_long,
20609    ) -> *mut X509_EXTENSION;
20610}
20611extern "C" {
20612    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_EXTENSION"]
20613    pub fn i2d_X509_EXTENSION(
20614        ex: *const X509_EXTENSION,
20615        outp: *mut *mut u8,
20616    ) -> ::std::os::raw::c_int;
20617}
20618extern "C" {
20619    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_dup"]
20620    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
20621}
20622extern "C" {
20623    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_create_by_NID"]
20624    pub fn X509_EXTENSION_create_by_NID(
20625        ex: *mut *mut X509_EXTENSION,
20626        nid: ::std::os::raw::c_int,
20627        crit: ::std::os::raw::c_int,
20628        data: *const ASN1_OCTET_STRING,
20629    ) -> *mut X509_EXTENSION;
20630}
20631extern "C" {
20632    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_create_by_OBJ"]
20633    pub fn X509_EXTENSION_create_by_OBJ(
20634        ex: *mut *mut X509_EXTENSION,
20635        obj: *const ASN1_OBJECT,
20636        crit: ::std::os::raw::c_int,
20637        data: *const ASN1_OCTET_STRING,
20638    ) -> *mut X509_EXTENSION;
20639}
20640extern "C" {
20641    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_get_object"]
20642    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
20643}
20644extern "C" {
20645    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_get_data"]
20646    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
20647}
20648extern "C" {
20649    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_get_critical"]
20650    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
20651}
20652extern "C" {
20653    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_set_object"]
20654    pub fn X509_EXTENSION_set_object(
20655        ex: *mut X509_EXTENSION,
20656        obj: *const ASN1_OBJECT,
20657    ) -> ::std::os::raw::c_int;
20658}
20659extern "C" {
20660    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_set_critical"]
20661    pub fn X509_EXTENSION_set_critical(
20662        ex: *mut X509_EXTENSION,
20663        crit: ::std::os::raw::c_int,
20664    ) -> ::std::os::raw::c_int;
20665}
20666extern "C" {
20667    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSION_set_data"]
20668    pub fn X509_EXTENSION_set_data(
20669        ex: *mut X509_EXTENSION,
20670        data: *const ASN1_OCTET_STRING,
20671    ) -> ::std::os::raw::c_int;
20672}
20673pub type sk_X509_EXTENSION_free_func =
20674    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
20675pub type sk_X509_EXTENSION_copy_func =
20676    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION>;
20677pub type sk_X509_EXTENSION_cmp_func = ::std::option::Option<
20678    unsafe extern "C" fn(
20679        arg1: *const *const X509_EXTENSION,
20680        arg2: *const *const X509_EXTENSION,
20681    ) -> ::std::os::raw::c_int,
20682>;
20683pub type sk_X509_EXTENSION_delete_if_func = ::std::option::Option<
20684    unsafe extern "C" fn(
20685        arg1: *mut X509_EXTENSION,
20686        arg2: *mut ::std::os::raw::c_void,
20687    ) -> ::std::os::raw::c_int,
20688>;
20689pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
20690extern "C" {
20691    #[link_name = "\u{1}aws_lc_0_37_0_X509_EXTENSIONS_it"]
20692    pub static X509_EXTENSIONS_it: ASN1_ITEM;
20693}
20694extern "C" {
20695    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_EXTENSIONS"]
20696    pub fn d2i_X509_EXTENSIONS(
20697        out: *mut *mut X509_EXTENSIONS,
20698        inp: *mut *const u8,
20699        len: ::std::os::raw::c_long,
20700    ) -> *mut X509_EXTENSIONS;
20701}
20702extern "C" {
20703    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_EXTENSIONS"]
20704    pub fn i2d_X509_EXTENSIONS(
20705        alg: *const X509_EXTENSIONS,
20706        outp: *mut *mut u8,
20707    ) -> ::std::os::raw::c_int;
20708}
20709extern "C" {
20710    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_get_ext_count"]
20711    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::std::os::raw::c_int;
20712}
20713extern "C" {
20714    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_get_ext_by_NID"]
20715    pub fn X509v3_get_ext_by_NID(
20716        x: *const stack_st_X509_EXTENSION,
20717        nid: ::std::os::raw::c_int,
20718        lastpos: ::std::os::raw::c_int,
20719    ) -> ::std::os::raw::c_int;
20720}
20721extern "C" {
20722    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_get_ext_by_OBJ"]
20723    pub fn X509v3_get_ext_by_OBJ(
20724        x: *const stack_st_X509_EXTENSION,
20725        obj: *const ASN1_OBJECT,
20726        lastpos: ::std::os::raw::c_int,
20727    ) -> ::std::os::raw::c_int;
20728}
20729extern "C" {
20730    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_get_ext_by_critical"]
20731    pub fn X509v3_get_ext_by_critical(
20732        x: *const stack_st_X509_EXTENSION,
20733        crit: ::std::os::raw::c_int,
20734        lastpos: ::std::os::raw::c_int,
20735    ) -> ::std::os::raw::c_int;
20736}
20737extern "C" {
20738    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_get_ext"]
20739    pub fn X509v3_get_ext(
20740        x: *const stack_st_X509_EXTENSION,
20741        loc: ::std::os::raw::c_int,
20742    ) -> *mut X509_EXTENSION;
20743}
20744extern "C" {
20745    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_delete_ext"]
20746    pub fn X509v3_delete_ext(
20747        x: *mut stack_st_X509_EXTENSION,
20748        loc: ::std::os::raw::c_int,
20749    ) -> *mut X509_EXTENSION;
20750}
20751extern "C" {
20752    #[link_name = "\u{1}aws_lc_0_37_0_X509v3_add_ext"]
20753    pub fn X509v3_add_ext(
20754        x: *mut *mut stack_st_X509_EXTENSION,
20755        ex: *const X509_EXTENSION,
20756        loc: ::std::os::raw::c_int,
20757    ) -> *mut stack_st_X509_EXTENSION;
20758}
20759extern "C" {
20760    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_d2i"]
20761    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::std::os::raw::c_void;
20762}
20763extern "C" {
20764    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_get_d2i"]
20765    pub fn X509V3_get_d2i(
20766        extensions: *const stack_st_X509_EXTENSION,
20767        nid: ::std::os::raw::c_int,
20768        out_critical: *mut ::std::os::raw::c_int,
20769        out_idx: *mut ::std::os::raw::c_int,
20770    ) -> *mut ::std::os::raw::c_void;
20771}
20772extern "C" {
20773    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_free"]
20774    pub fn X509V3_EXT_free(
20775        nid: ::std::os::raw::c_int,
20776        ext_data: *mut ::std::os::raw::c_void,
20777    ) -> ::std::os::raw::c_int;
20778}
20779extern "C" {
20780    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_i2d"]
20781    pub fn X509V3_EXT_i2d(
20782        ext_nid: ::std::os::raw::c_int,
20783        crit: ::std::os::raw::c_int,
20784        ext_struc: *mut ::std::os::raw::c_void,
20785    ) -> *mut X509_EXTENSION;
20786}
20787extern "C" {
20788    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_add1_i2d"]
20789    pub fn X509V3_add1_i2d(
20790        x: *mut *mut stack_st_X509_EXTENSION,
20791        nid: ::std::os::raw::c_int,
20792        value: *mut ::std::os::raw::c_void,
20793        crit: ::std::os::raw::c_int,
20794        flags: ::std::os::raw::c_ulong,
20795    ) -> ::std::os::raw::c_int;
20796}
20797#[repr(C)]
20798#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20799pub struct otherName_st {
20800    pub type_id: *mut ASN1_OBJECT,
20801    pub value: *mut ASN1_TYPE,
20802}
20803#[test]
20804fn bindgen_test_layout_otherName_st() {
20805    const UNINIT: ::std::mem::MaybeUninit<otherName_st> = ::std::mem::MaybeUninit::uninit();
20806    let ptr = UNINIT.as_ptr();
20807    assert_eq!(
20808        ::std::mem::size_of::<otherName_st>(),
20809        16usize,
20810        "Size of otherName_st"
20811    );
20812    assert_eq!(
20813        ::std::mem::align_of::<otherName_st>(),
20814        8usize,
20815        "Alignment of otherName_st"
20816    );
20817    assert_eq!(
20818        unsafe { ::std::ptr::addr_of!((*ptr).type_id) as usize - ptr as usize },
20819        0usize,
20820        "Offset of field: otherName_st::type_id"
20821    );
20822    assert_eq!(
20823        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
20824        8usize,
20825        "Offset of field: otherName_st::value"
20826    );
20827}
20828impl Default for otherName_st {
20829    fn default() -> Self {
20830        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20831        unsafe {
20832            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20833            s.assume_init()
20834        }
20835    }
20836}
20837pub type OTHERNAME = otherName_st;
20838#[repr(C)]
20839#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20840pub struct EDIPartyName_st {
20841    pub nameAssigner: *mut ASN1_STRING,
20842    pub partyName: *mut ASN1_STRING,
20843}
20844#[test]
20845fn bindgen_test_layout_EDIPartyName_st() {
20846    const UNINIT: ::std::mem::MaybeUninit<EDIPartyName_st> = ::std::mem::MaybeUninit::uninit();
20847    let ptr = UNINIT.as_ptr();
20848    assert_eq!(
20849        ::std::mem::size_of::<EDIPartyName_st>(),
20850        16usize,
20851        "Size of EDIPartyName_st"
20852    );
20853    assert_eq!(
20854        ::std::mem::align_of::<EDIPartyName_st>(),
20855        8usize,
20856        "Alignment of EDIPartyName_st"
20857    );
20858    assert_eq!(
20859        unsafe { ::std::ptr::addr_of!((*ptr).nameAssigner) as usize - ptr as usize },
20860        0usize,
20861        "Offset of field: EDIPartyName_st::nameAssigner"
20862    );
20863    assert_eq!(
20864        unsafe { ::std::ptr::addr_of!((*ptr).partyName) as usize - ptr as usize },
20865        8usize,
20866        "Offset of field: EDIPartyName_st::partyName"
20867    );
20868}
20869impl Default for EDIPartyName_st {
20870    fn default() -> Self {
20871        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20872        unsafe {
20873            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20874            s.assume_init()
20875        }
20876    }
20877}
20878pub type EDIPARTYNAME = EDIPartyName_st;
20879#[repr(C)]
20880#[derive(Copy, Clone)]
20881pub struct GENERAL_NAME_st {
20882    pub type_: ::std::os::raw::c_int,
20883    pub d: GENERAL_NAME_st__bindgen_ty_1,
20884}
20885#[repr(C)]
20886#[derive(Copy, Clone)]
20887pub union GENERAL_NAME_st__bindgen_ty_1 {
20888    pub ptr: *mut ::std::os::raw::c_char,
20889    pub otherName: *mut OTHERNAME,
20890    pub rfc822Name: *mut ASN1_IA5STRING,
20891    pub dNSName: *mut ASN1_IA5STRING,
20892    pub x400Address: *mut ASN1_STRING,
20893    pub directoryName: *mut X509_NAME,
20894    pub ediPartyName: *mut EDIPARTYNAME,
20895    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
20896    pub iPAddress: *mut ASN1_OCTET_STRING,
20897    pub registeredID: *mut ASN1_OBJECT,
20898    pub ip: *mut ASN1_OCTET_STRING,
20899    pub dirn: *mut X509_NAME,
20900    pub ia5: *mut ASN1_IA5STRING,
20901    pub rid: *mut ASN1_OBJECT,
20902}
20903#[test]
20904fn bindgen_test_layout_GENERAL_NAME_st__bindgen_ty_1() {
20905    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st__bindgen_ty_1> =
20906        ::std::mem::MaybeUninit::uninit();
20907    let ptr = UNINIT.as_ptr();
20908    assert_eq!(
20909        ::std::mem::size_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20910        8usize,
20911        "Size of GENERAL_NAME_st__bindgen_ty_1"
20912    );
20913    assert_eq!(
20914        ::std::mem::align_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20915        8usize,
20916        "Alignment of GENERAL_NAME_st__bindgen_ty_1"
20917    );
20918    assert_eq!(
20919        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
20920        0usize,
20921        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ptr"
20922    );
20923    assert_eq!(
20924        unsafe { ::std::ptr::addr_of!((*ptr).otherName) as usize - ptr as usize },
20925        0usize,
20926        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::otherName"
20927    );
20928    assert_eq!(
20929        unsafe { ::std::ptr::addr_of!((*ptr).rfc822Name) as usize - ptr as usize },
20930        0usize,
20931        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rfc822Name"
20932    );
20933    assert_eq!(
20934        unsafe { ::std::ptr::addr_of!((*ptr).dNSName) as usize - ptr as usize },
20935        0usize,
20936        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dNSName"
20937    );
20938    assert_eq!(
20939        unsafe { ::std::ptr::addr_of!((*ptr).x400Address) as usize - ptr as usize },
20940        0usize,
20941        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::x400Address"
20942    );
20943    assert_eq!(
20944        unsafe { ::std::ptr::addr_of!((*ptr).directoryName) as usize - ptr as usize },
20945        0usize,
20946        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::directoryName"
20947    );
20948    assert_eq!(
20949        unsafe { ::std::ptr::addr_of!((*ptr).ediPartyName) as usize - ptr as usize },
20950        0usize,
20951        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ediPartyName"
20952    );
20953    assert_eq!(
20954        unsafe { ::std::ptr::addr_of!((*ptr).uniformResourceIdentifier) as usize - ptr as usize },
20955        0usize,
20956        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::uniformResourceIdentifier"
20957    );
20958    assert_eq!(
20959        unsafe { ::std::ptr::addr_of!((*ptr).iPAddress) as usize - ptr as usize },
20960        0usize,
20961        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::iPAddress"
20962    );
20963    assert_eq!(
20964        unsafe { ::std::ptr::addr_of!((*ptr).registeredID) as usize - ptr as usize },
20965        0usize,
20966        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::registeredID"
20967    );
20968    assert_eq!(
20969        unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize },
20970        0usize,
20971        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ip"
20972    );
20973    assert_eq!(
20974        unsafe { ::std::ptr::addr_of!((*ptr).dirn) as usize - ptr as usize },
20975        0usize,
20976        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dirn"
20977    );
20978    assert_eq!(
20979        unsafe { ::std::ptr::addr_of!((*ptr).ia5) as usize - ptr as usize },
20980        0usize,
20981        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ia5"
20982    );
20983    assert_eq!(
20984        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
20985        0usize,
20986        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rid"
20987    );
20988}
20989impl Default for GENERAL_NAME_st__bindgen_ty_1 {
20990    fn default() -> Self {
20991        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20992        unsafe {
20993            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20994            s.assume_init()
20995        }
20996    }
20997}
20998#[test]
20999fn bindgen_test_layout_GENERAL_NAME_st() {
21000    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st> = ::std::mem::MaybeUninit::uninit();
21001    let ptr = UNINIT.as_ptr();
21002    assert_eq!(
21003        ::std::mem::size_of::<GENERAL_NAME_st>(),
21004        16usize,
21005        "Size of GENERAL_NAME_st"
21006    );
21007    assert_eq!(
21008        ::std::mem::align_of::<GENERAL_NAME_st>(),
21009        8usize,
21010        "Alignment of GENERAL_NAME_st"
21011    );
21012    assert_eq!(
21013        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
21014        0usize,
21015        "Offset of field: GENERAL_NAME_st::type_"
21016    );
21017    assert_eq!(
21018        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
21019        8usize,
21020        "Offset of field: GENERAL_NAME_st::d"
21021    );
21022}
21023impl Default for GENERAL_NAME_st {
21024    fn default() -> Self {
21025        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21026        unsafe {
21027            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21028            s.assume_init()
21029        }
21030    }
21031}
21032extern "C" {
21033    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_new"]
21034    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
21035}
21036extern "C" {
21037    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_free"]
21038    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
21039}
21040extern "C" {
21041    #[link_name = "\u{1}aws_lc_0_37_0_d2i_GENERAL_NAME"]
21042    pub fn d2i_GENERAL_NAME(
21043        out: *mut *mut GENERAL_NAME,
21044        inp: *mut *const u8,
21045        len: ::std::os::raw::c_long,
21046    ) -> *mut GENERAL_NAME;
21047}
21048extern "C" {
21049    #[link_name = "\u{1}aws_lc_0_37_0_i2d_GENERAL_NAME"]
21050    pub fn i2d_GENERAL_NAME(in_: *mut GENERAL_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21051}
21052extern "C" {
21053    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_dup"]
21054    pub fn GENERAL_NAME_dup(gen_: *mut GENERAL_NAME) -> *mut GENERAL_NAME;
21055}
21056extern "C" {
21057    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAMES_new"]
21058    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
21059}
21060extern "C" {
21061    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAMES_free"]
21062    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
21063}
21064extern "C" {
21065    #[link_name = "\u{1}aws_lc_0_37_0_d2i_GENERAL_NAMES"]
21066    pub fn d2i_GENERAL_NAMES(
21067        out: *mut *mut GENERAL_NAMES,
21068        inp: *mut *const u8,
21069        len: ::std::os::raw::c_long,
21070    ) -> *mut GENERAL_NAMES;
21071}
21072extern "C" {
21073    #[link_name = "\u{1}aws_lc_0_37_0_i2d_GENERAL_NAMES"]
21074    pub fn i2d_GENERAL_NAMES(in_: *mut GENERAL_NAMES, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21075}
21076extern "C" {
21077    #[link_name = "\u{1}aws_lc_0_37_0_OTHERNAME_new"]
21078    pub fn OTHERNAME_new() -> *mut OTHERNAME;
21079}
21080extern "C" {
21081    #[link_name = "\u{1}aws_lc_0_37_0_OTHERNAME_free"]
21082    pub fn OTHERNAME_free(name: *mut OTHERNAME);
21083}
21084extern "C" {
21085    #[link_name = "\u{1}aws_lc_0_37_0_EDIPARTYNAME_new"]
21086    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
21087}
21088extern "C" {
21089    #[link_name = "\u{1}aws_lc_0_37_0_EDIPARTYNAME_free"]
21090    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
21091}
21092extern "C" {
21093    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_set0_value"]
21094    pub fn GENERAL_NAME_set0_value(
21095        gen_: *mut GENERAL_NAME,
21096        type_: ::std::os::raw::c_int,
21097        value: *mut ::std::os::raw::c_void,
21098    );
21099}
21100extern "C" {
21101    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_get0_value"]
21102    pub fn GENERAL_NAME_get0_value(
21103        gen_: *const GENERAL_NAME,
21104        out_type: *mut ::std::os::raw::c_int,
21105    ) -> *mut ::std::os::raw::c_void;
21106}
21107extern "C" {
21108    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_set0_othername"]
21109    pub fn GENERAL_NAME_set0_othername(
21110        gen_: *mut GENERAL_NAME,
21111        oid: *mut ASN1_OBJECT,
21112        value: *mut ASN1_TYPE,
21113    ) -> ::std::os::raw::c_int;
21114}
21115extern "C" {
21116    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_get0_otherName"]
21117    pub fn GENERAL_NAME_get0_otherName(
21118        gen_: *const GENERAL_NAME,
21119        out_oid: *mut *mut ASN1_OBJECT,
21120        out_value: *mut *mut ASN1_TYPE,
21121    ) -> ::std::os::raw::c_int;
21122}
21123#[repr(C)]
21124#[derive(Debug, Copy, Clone)]
21125pub struct stack_st_X509_ALGOR {
21126    _unused: [u8; 0],
21127}
21128pub type sk_X509_ALGOR_free_func =
21129    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
21130pub type sk_X509_ALGOR_copy_func =
21131    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
21132pub type sk_X509_ALGOR_cmp_func = ::std::option::Option<
21133    unsafe extern "C" fn(
21134        arg1: *const *const X509_ALGOR,
21135        arg2: *const *const X509_ALGOR,
21136    ) -> ::std::os::raw::c_int,
21137>;
21138pub type sk_X509_ALGOR_delete_if_func = ::std::option::Option<
21139    unsafe extern "C" fn(
21140        arg1: *mut X509_ALGOR,
21141        arg2: *mut ::std::os::raw::c_void,
21142    ) -> ::std::os::raw::c_int,
21143>;
21144extern "C" {
21145    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_it"]
21146    pub static X509_ALGOR_it: ASN1_ITEM;
21147}
21148extern "C" {
21149    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_new"]
21150    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
21151}
21152extern "C" {
21153    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_dup"]
21154    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
21155}
21156extern "C" {
21157    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_free"]
21158    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
21159}
21160extern "C" {
21161    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_ALGOR"]
21162    pub fn d2i_X509_ALGOR(
21163        out: *mut *mut X509_ALGOR,
21164        inp: *mut *const u8,
21165        len: ::std::os::raw::c_long,
21166    ) -> *mut X509_ALGOR;
21167}
21168extern "C" {
21169    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_ALGOR"]
21170    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21171}
21172extern "C" {
21173    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_set0"]
21174    pub fn X509_ALGOR_set0(
21175        alg: *mut X509_ALGOR,
21176        obj: *mut ASN1_OBJECT,
21177        param_type: ::std::os::raw::c_int,
21178        param_value: *mut ::std::os::raw::c_void,
21179    ) -> ::std::os::raw::c_int;
21180}
21181extern "C" {
21182    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_get0"]
21183    pub fn X509_ALGOR_get0(
21184        out_obj: *mut *const ASN1_OBJECT,
21185        out_param_type: *mut ::std::os::raw::c_int,
21186        out_param_value: *mut *const ::std::os::raw::c_void,
21187        alg: *const X509_ALGOR,
21188    );
21189}
21190extern "C" {
21191    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_set_md"]
21192    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::std::os::raw::c_int;
21193}
21194extern "C" {
21195    #[link_name = "\u{1}aws_lc_0_37_0_X509_ALGOR_cmp"]
21196    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::std::os::raw::c_int;
21197}
21198#[repr(C)]
21199#[derive(Debug, Copy, Clone)]
21200pub struct stack_st_X509_ATTRIBUTE {
21201    _unused: [u8; 0],
21202}
21203pub type sk_X509_ATTRIBUTE_free_func =
21204    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
21205pub type sk_X509_ATTRIBUTE_copy_func =
21206    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE>;
21207pub type sk_X509_ATTRIBUTE_cmp_func = ::std::option::Option<
21208    unsafe extern "C" fn(
21209        arg1: *const *const X509_ATTRIBUTE,
21210        arg2: *const *const X509_ATTRIBUTE,
21211    ) -> ::std::os::raw::c_int,
21212>;
21213pub type sk_X509_ATTRIBUTE_delete_if_func = ::std::option::Option<
21214    unsafe extern "C" fn(
21215        arg1: *mut X509_ATTRIBUTE,
21216        arg2: *mut ::std::os::raw::c_void,
21217    ) -> ::std::os::raw::c_int,
21218>;
21219extern "C" {
21220    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_it"]
21221    pub static X509_ATTRIBUTE_it: ASN1_ITEM;
21222}
21223extern "C" {
21224    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_new"]
21225    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
21226}
21227extern "C" {
21228    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_dup"]
21229    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
21230}
21231extern "C" {
21232    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_free"]
21233    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
21234}
21235extern "C" {
21236    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_ATTRIBUTE"]
21237    pub fn d2i_X509_ATTRIBUTE(
21238        out: *mut *mut X509_ATTRIBUTE,
21239        inp: *mut *const u8,
21240        len: ::std::os::raw::c_long,
21241    ) -> *mut X509_ATTRIBUTE;
21242}
21243extern "C" {
21244    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_ATTRIBUTE"]
21245    pub fn i2d_X509_ATTRIBUTE(
21246        alg: *const X509_ATTRIBUTE,
21247        outp: *mut *mut u8,
21248    ) -> ::std::os::raw::c_int;
21249}
21250extern "C" {
21251    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_create"]
21252    pub fn X509_ATTRIBUTE_create(
21253        nid: ::std::os::raw::c_int,
21254        attrtype: ::std::os::raw::c_int,
21255        value: *mut ::std::os::raw::c_void,
21256    ) -> *mut X509_ATTRIBUTE;
21257}
21258extern "C" {
21259    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_create_by_NID"]
21260    pub fn X509_ATTRIBUTE_create_by_NID(
21261        attr: *mut *mut X509_ATTRIBUTE,
21262        nid: ::std::os::raw::c_int,
21263        attrtype: ::std::os::raw::c_int,
21264        data: *const ::std::os::raw::c_void,
21265        len: ::std::os::raw::c_int,
21266    ) -> *mut X509_ATTRIBUTE;
21267}
21268extern "C" {
21269    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_create_by_OBJ"]
21270    pub fn X509_ATTRIBUTE_create_by_OBJ(
21271        attr: *mut *mut X509_ATTRIBUTE,
21272        obj: *const ASN1_OBJECT,
21273        attrtype: ::std::os::raw::c_int,
21274        data: *const ::std::os::raw::c_void,
21275        len: ::std::os::raw::c_int,
21276    ) -> *mut X509_ATTRIBUTE;
21277}
21278extern "C" {
21279    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_create_by_txt"]
21280    pub fn X509_ATTRIBUTE_create_by_txt(
21281        attr: *mut *mut X509_ATTRIBUTE,
21282        attrname: *const ::std::os::raw::c_char,
21283        type_: ::std::os::raw::c_int,
21284        bytes: *const ::std::os::raw::c_uchar,
21285        len: ::std::os::raw::c_int,
21286    ) -> *mut X509_ATTRIBUTE;
21287}
21288extern "C" {
21289    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_set1_object"]
21290    pub fn X509_ATTRIBUTE_set1_object(
21291        attr: *mut X509_ATTRIBUTE,
21292        obj: *const ASN1_OBJECT,
21293    ) -> ::std::os::raw::c_int;
21294}
21295extern "C" {
21296    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_set1_data"]
21297    pub fn X509_ATTRIBUTE_set1_data(
21298        attr: *mut X509_ATTRIBUTE,
21299        attrtype: ::std::os::raw::c_int,
21300        data: *const ::std::os::raw::c_void,
21301        len: ::std::os::raw::c_int,
21302    ) -> ::std::os::raw::c_int;
21303}
21304extern "C" {
21305    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_get0_data"]
21306    pub fn X509_ATTRIBUTE_get0_data(
21307        attr: *mut X509_ATTRIBUTE,
21308        idx: ::std::os::raw::c_int,
21309        attrtype: ::std::os::raw::c_int,
21310        unused: *mut ::std::os::raw::c_void,
21311    ) -> *mut ::std::os::raw::c_void;
21312}
21313extern "C" {
21314    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_count"]
21315    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::std::os::raw::c_int;
21316}
21317extern "C" {
21318    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_get0_object"]
21319    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
21320}
21321extern "C" {
21322    #[link_name = "\u{1}aws_lc_0_37_0_X509_ATTRIBUTE_get0_type"]
21323    pub fn X509_ATTRIBUTE_get0_type(
21324        attr: *mut X509_ATTRIBUTE,
21325        idx: ::std::os::raw::c_int,
21326    ) -> *mut ASN1_TYPE;
21327}
21328extern "C" {
21329    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_new"]
21330    pub fn X509_STORE_new() -> *mut X509_STORE;
21331}
21332extern "C" {
21333    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_up_ref"]
21334    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21335}
21336extern "C" {
21337    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_free"]
21338    pub fn X509_STORE_free(store: *mut X509_STORE);
21339}
21340extern "C" {
21341    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_add_cert"]
21342    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::std::os::raw::c_int;
21343}
21344extern "C" {
21345    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_add_crl"]
21346    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
21347}
21348extern "C" {
21349    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get0_param"]
21350    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
21351}
21352extern "C" {
21353    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set1_param"]
21354    pub fn X509_STORE_set1_param(
21355        store: *mut X509_STORE,
21356        param: *const X509_VERIFY_PARAM,
21357    ) -> ::std::os::raw::c_int;
21358}
21359extern "C" {
21360    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_flags"]
21361    pub fn X509_STORE_set_flags(
21362        store: *mut X509_STORE,
21363        flags: ::std::os::raw::c_ulong,
21364    ) -> ::std::os::raw::c_int;
21365}
21366extern "C" {
21367    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_depth"]
21368    pub fn X509_STORE_set_depth(
21369        store: *mut X509_STORE,
21370        depth: ::std::os::raw::c_int,
21371    ) -> ::std::os::raw::c_int;
21372}
21373extern "C" {
21374    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_purpose"]
21375    pub fn X509_STORE_set_purpose(
21376        store: *mut X509_STORE,
21377        purpose: ::std::os::raw::c_int,
21378    ) -> ::std::os::raw::c_int;
21379}
21380extern "C" {
21381    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_trust"]
21382    pub fn X509_STORE_set_trust(
21383        store: *mut X509_STORE,
21384        trust: ::std::os::raw::c_int,
21385    ) -> ::std::os::raw::c_int;
21386}
21387#[repr(C)]
21388#[derive(Debug, Copy, Clone)]
21389pub struct stack_st_X509_OBJECT {
21390    _unused: [u8; 0],
21391}
21392pub type sk_X509_OBJECT_free_func =
21393    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
21394pub type sk_X509_OBJECT_copy_func =
21395    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
21396pub type sk_X509_OBJECT_cmp_func = ::std::option::Option<
21397    unsafe extern "C" fn(
21398        arg1: *const *const X509_OBJECT,
21399        arg2: *const *const X509_OBJECT,
21400    ) -> ::std::os::raw::c_int,
21401>;
21402pub type sk_X509_OBJECT_delete_if_func = ::std::option::Option<
21403    unsafe extern "C" fn(
21404        arg1: *mut X509_OBJECT,
21405        arg2: *mut ::std::os::raw::c_void,
21406    ) -> ::std::os::raw::c_int,
21407>;
21408extern "C" {
21409    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_new"]
21410    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
21411}
21412extern "C" {
21413    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_free"]
21414    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
21415}
21416extern "C" {
21417    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_get_type"]
21418    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::std::os::raw::c_int;
21419}
21420extern "C" {
21421    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_get0_X509"]
21422    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
21423}
21424pub type X509_STORE_CTX_lookup_crls_fn = ::std::option::Option<
21425    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, nm: *mut X509_NAME) -> *mut stack_st_X509_CRL,
21426>;
21427extern "C" {
21428    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get_lookup_crls"]
21429    pub fn X509_STORE_get_lookup_crls(ctx: *mut X509_STORE) -> X509_STORE_CTX_lookup_crls_fn;
21430}
21431extern "C" {
21432    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_lookup_crls"]
21433    pub fn X509_STORE_set_lookup_crls(
21434        ctx: *mut X509_STORE,
21435        lookup_crls: X509_STORE_CTX_lookup_crls_fn,
21436    );
21437}
21438extern "C" {
21439    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_new"]
21440    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
21441}
21442extern "C" {
21443    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_free"]
21444    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
21445}
21446extern "C" {
21447    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_init"]
21448    pub fn X509_STORE_CTX_init(
21449        ctx: *mut X509_STORE_CTX,
21450        store: *mut X509_STORE,
21451        x509: *mut X509,
21452        chain: *mut stack_st_X509,
21453    ) -> ::std::os::raw::c_int;
21454}
21455extern "C" {
21456    #[link_name = "\u{1}aws_lc_0_37_0_X509_verify_cert"]
21457    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21458}
21459extern "C" {
21460    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_chain"]
21461    pub fn X509_STORE_CTX_get0_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21462}
21463extern "C" {
21464    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get1_chain"]
21465    pub fn X509_STORE_CTX_get1_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21466}
21467extern "C" {
21468    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_cert"]
21469    pub fn X509_STORE_CTX_set_cert(c: *mut X509_STORE_CTX, x: *mut X509);
21470}
21471extern "C" {
21472    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_error"]
21473    pub fn X509_STORE_CTX_get_error(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21474}
21475extern "C" {
21476    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_error"]
21477    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::std::os::raw::c_int);
21478}
21479extern "C" {
21480    #[link_name = "\u{1}aws_lc_0_37_0_X509_verify_cert_error_string"]
21481    pub fn X509_verify_cert_error_string(
21482        err: ::std::os::raw::c_long,
21483    ) -> *const ::std::os::raw::c_char;
21484}
21485extern "C" {
21486    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_error_depth"]
21487    pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21488}
21489extern "C" {
21490    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_current_cert"]
21491    pub fn X509_STORE_CTX_get_current_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21492}
21493extern "C" {
21494    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_current_issuer"]
21495    pub fn X509_STORE_CTX_get0_current_issuer(ctx: *mut X509_STORE_CTX) -> *mut X509;
21496}
21497extern "C" {
21498    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_current_crl"]
21499    pub fn X509_STORE_CTX_get0_current_crl(ctx: *mut X509_STORE_CTX) -> *mut X509_CRL;
21500}
21501extern "C" {
21502    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_store"]
21503    pub fn X509_STORE_CTX_get0_store(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE;
21504}
21505extern "C" {
21506    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_cert"]
21507    pub fn X509_STORE_CTX_get0_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21508}
21509extern "C" {
21510    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_untrusted"]
21511    pub fn X509_STORE_CTX_get0_untrusted(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21512}
21513extern "C" {
21514    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set0_trusted_stack"]
21515    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21516}
21517extern "C" {
21518    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set0_crls"]
21519    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21520}
21521extern "C" {
21522    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_default"]
21523    pub fn X509_STORE_CTX_set_default(
21524        ctx: *mut X509_STORE_CTX,
21525        name: *const ::std::os::raw::c_char,
21526    ) -> ::std::os::raw::c_int;
21527}
21528extern "C" {
21529    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_param"]
21530    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21531}
21532extern "C" {
21533    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set0_param"]
21534    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21535}
21536extern "C" {
21537    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_flags"]
21538    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::std::os::raw::c_ulong);
21539}
21540extern "C" {
21541    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_time"]
21542    pub fn X509_STORE_CTX_set_time(
21543        ctx: *mut X509_STORE_CTX,
21544        flags: ::std::os::raw::c_ulong,
21545        t: time_t,
21546    );
21547}
21548extern "C" {
21549    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_time_posix"]
21550    pub fn X509_STORE_CTX_set_time_posix(
21551        ctx: *mut X509_STORE_CTX,
21552        flags: ::std::os::raw::c_ulong,
21553        t: i64,
21554    );
21555}
21556extern "C" {
21557    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_depth"]
21558    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::std::os::raw::c_int);
21559}
21560extern "C" {
21561    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_purpose"]
21562    pub fn X509_STORE_CTX_set_purpose(
21563        ctx: *mut X509_STORE_CTX,
21564        purpose: ::std::os::raw::c_int,
21565    ) -> ::std::os::raw::c_int;
21566}
21567extern "C" {
21568    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_trust"]
21569    pub fn X509_STORE_CTX_set_trust(
21570        ctx: *mut X509_STORE_CTX,
21571        trust: ::std::os::raw::c_int,
21572    ) -> ::std::os::raw::c_int;
21573}
21574extern "C" {
21575    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_add_custom_crit_oid"]
21576    pub fn X509_STORE_CTX_add_custom_crit_oid(
21577        ctx: *mut X509_STORE_CTX,
21578        oid: *mut ASN1_OBJECT,
21579    ) -> ::std::os::raw::c_int;
21580}
21581pub type X509_STORE_CTX_verify_crit_oids_cb = ::std::option::Option<
21582    unsafe extern "C" fn(
21583        ctx: *mut X509_STORE_CTX,
21584        x509: *mut X509,
21585        oids: *mut stack_st_ASN1_OBJECT,
21586    ) -> ::std::os::raw::c_int,
21587>;
21588extern "C" {
21589    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_verify_crit_oids"]
21590    pub fn X509_STORE_CTX_set_verify_crit_oids(
21591        ctx: *mut X509_STORE_CTX,
21592        verify_custom_crit_oids: X509_STORE_CTX_verify_crit_oids_cb,
21593    );
21594}
21595extern "C" {
21596    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_new"]
21597    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21598}
21599extern "C" {
21600    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_free"]
21601    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21602}
21603extern "C" {
21604    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_inherit"]
21605    pub fn X509_VERIFY_PARAM_inherit(
21606        to: *mut X509_VERIFY_PARAM,
21607        from: *const X509_VERIFY_PARAM,
21608    ) -> ::std::os::raw::c_int;
21609}
21610extern "C" {
21611    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1"]
21612    pub fn X509_VERIFY_PARAM_set1(
21613        to: *mut X509_VERIFY_PARAM,
21614        from: *const X509_VERIFY_PARAM,
21615    ) -> ::std::os::raw::c_int;
21616}
21617extern "C" {
21618    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_flags"]
21619    pub fn X509_VERIFY_PARAM_set_flags(
21620        param: *mut X509_VERIFY_PARAM,
21621        flags: ::std::os::raw::c_ulong,
21622    ) -> ::std::os::raw::c_int;
21623}
21624extern "C" {
21625    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_clear_flags"]
21626    pub fn X509_VERIFY_PARAM_clear_flags(
21627        param: *mut X509_VERIFY_PARAM,
21628        flags: ::std::os::raw::c_ulong,
21629    ) -> ::std::os::raw::c_int;
21630}
21631extern "C" {
21632    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_get_flags"]
21633    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_ulong;
21634}
21635extern "C" {
21636    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_depth"]
21637    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::std::os::raw::c_int);
21638}
21639extern "C" {
21640    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_get_depth"]
21641    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_int;
21642}
21643extern "C" {
21644    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_time"]
21645    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21646}
21647extern "C" {
21648    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_time_posix"]
21649    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21650}
21651extern "C" {
21652    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_add0_policy"]
21653    pub fn X509_VERIFY_PARAM_add0_policy(
21654        param: *mut X509_VERIFY_PARAM,
21655        policy: *mut ASN1_OBJECT,
21656    ) -> ::std::os::raw::c_int;
21657}
21658extern "C" {
21659    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1_policies"]
21660    pub fn X509_VERIFY_PARAM_set1_policies(
21661        param: *mut X509_VERIFY_PARAM,
21662        policies: *const stack_st_ASN1_OBJECT,
21663    ) -> ::std::os::raw::c_int;
21664}
21665extern "C" {
21666    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1_host"]
21667    pub fn X509_VERIFY_PARAM_set1_host(
21668        param: *mut X509_VERIFY_PARAM,
21669        name: *const ::std::os::raw::c_char,
21670        name_len: usize,
21671    ) -> ::std::os::raw::c_int;
21672}
21673extern "C" {
21674    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_add1_host"]
21675    pub fn X509_VERIFY_PARAM_add1_host(
21676        param: *mut X509_VERIFY_PARAM,
21677        name: *const ::std::os::raw::c_char,
21678        name_len: usize,
21679    ) -> ::std::os::raw::c_int;
21680}
21681extern "C" {
21682    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_hostflags"]
21683    pub fn X509_VERIFY_PARAM_set_hostflags(
21684        param: *mut X509_VERIFY_PARAM,
21685        flags: ::std::os::raw::c_uint,
21686    );
21687}
21688extern "C" {
21689    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_get_hostflags"]
21690    pub fn X509_VERIFY_PARAM_get_hostflags(
21691        param: *const X509_VERIFY_PARAM,
21692    ) -> ::std::os::raw::c_uint;
21693}
21694extern "C" {
21695    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1_email"]
21696    pub fn X509_VERIFY_PARAM_set1_email(
21697        param: *mut X509_VERIFY_PARAM,
21698        email: *const ::std::os::raw::c_char,
21699        email_len: usize,
21700    ) -> ::std::os::raw::c_int;
21701}
21702extern "C" {
21703    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1_ip"]
21704    pub fn X509_VERIFY_PARAM_set1_ip(
21705        param: *mut X509_VERIFY_PARAM,
21706        ip: *const u8,
21707        ip_len: usize,
21708    ) -> ::std::os::raw::c_int;
21709}
21710extern "C" {
21711    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set1_ip_asc"]
21712    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21713        param: *mut X509_VERIFY_PARAM,
21714        ipasc: *const ::std::os::raw::c_char,
21715    ) -> ::std::os::raw::c_int;
21716}
21717extern "C" {
21718    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_purpose"]
21719    pub fn X509_VERIFY_PARAM_set_purpose(
21720        param: *mut X509_VERIFY_PARAM,
21721        purpose: ::std::os::raw::c_int,
21722    ) -> ::std::os::raw::c_int;
21723}
21724extern "C" {
21725    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_set_trust"]
21726    pub fn X509_VERIFY_PARAM_set_trust(
21727        param: *mut X509_VERIFY_PARAM,
21728        trust: ::std::os::raw::c_int,
21729    ) -> ::std::os::raw::c_int;
21730}
21731extern "C" {
21732    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_enable_ec_key_explicit_params"]
21733    pub fn X509_VERIFY_PARAM_enable_ec_key_explicit_params(
21734        param: *mut X509_VERIFY_PARAM,
21735    ) -> ::std::os::raw::c_int;
21736}
21737extern "C" {
21738    #[link_name = "\u{1}aws_lc_0_37_0_X509_VERIFY_PARAM_disable_ec_key_explicit_params"]
21739    pub fn X509_VERIFY_PARAM_disable_ec_key_explicit_params(
21740        param: *mut X509_VERIFY_PARAM,
21741    ) -> ::std::os::raw::c_int;
21742}
21743extern "C" {
21744    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_load_locations"]
21745    pub fn X509_STORE_load_locations(
21746        store: *mut X509_STORE,
21747        file: *const ::std::os::raw::c_char,
21748        dir: *const ::std::os::raw::c_char,
21749    ) -> ::std::os::raw::c_int;
21750}
21751extern "C" {
21752    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_add_lookup"]
21753    pub fn X509_STORE_add_lookup(
21754        store: *mut X509_STORE,
21755        method: *const X509_LOOKUP_METHOD,
21756    ) -> *mut X509_LOOKUP;
21757}
21758extern "C" {
21759    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_hash_dir"]
21760    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21761}
21762extern "C" {
21763    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_file"]
21764    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21765}
21766extern "C" {
21767    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_load_file"]
21768    pub fn X509_LOOKUP_load_file(
21769        lookup: *mut X509_LOOKUP,
21770        file: *const ::std::os::raw::c_char,
21771        type_: ::std::os::raw::c_int,
21772    ) -> ::std::os::raw::c_int;
21773}
21774extern "C" {
21775    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_add_dir"]
21776    pub fn X509_LOOKUP_add_dir(
21777        lookup: *mut X509_LOOKUP,
21778        path: *const ::std::os::raw::c_char,
21779        type_: ::std::os::raw::c_int,
21780    ) -> ::std::os::raw::c_int;
21781}
21782extern "C" {
21783    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_ctrl"]
21784    pub fn X509_LOOKUP_ctrl(
21785        lookup: *mut X509_LOOKUP,
21786        cmd: ::std::os::raw::c_int,
21787        argc: *const ::std::os::raw::c_char,
21788        argl: ::std::os::raw::c_long,
21789        ret: *mut *mut ::std::os::raw::c_char,
21790    ) -> ::std::os::raw::c_int;
21791}
21792extern "C" {
21793    #[link_name = "\u{1}aws_lc_0_37_0_X509_load_cert_file"]
21794    pub fn X509_load_cert_file(
21795        lookup: *mut X509_LOOKUP,
21796        file: *const ::std::os::raw::c_char,
21797        type_: ::std::os::raw::c_int,
21798    ) -> ::std::os::raw::c_int;
21799}
21800extern "C" {
21801    #[link_name = "\u{1}aws_lc_0_37_0_X509_load_crl_file"]
21802    pub fn X509_load_crl_file(
21803        lookup: *mut X509_LOOKUP,
21804        file: *const ::std::os::raw::c_char,
21805        type_: ::std::os::raw::c_int,
21806    ) -> ::std::os::raw::c_int;
21807}
21808extern "C" {
21809    #[link_name = "\u{1}aws_lc_0_37_0_X509_load_cert_crl_file"]
21810    pub fn X509_load_cert_crl_file(
21811        lookup: *mut X509_LOOKUP,
21812        file: *const ::std::os::raw::c_char,
21813        type_: ::std::os::raw::c_int,
21814    ) -> ::std::os::raw::c_int;
21815}
21816extern "C" {
21817    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_hash"]
21818    pub fn X509_NAME_hash(name: *mut X509_NAME) -> u32;
21819}
21820extern "C" {
21821    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_hash_old"]
21822    pub fn X509_NAME_hash_old(name: *mut X509_NAME) -> u32;
21823}
21824extern "C" {
21825    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_default_paths"]
21826    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21827}
21828extern "C" {
21829    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_cert_area"]
21830    pub fn X509_get_default_cert_area() -> *const ::std::os::raw::c_char;
21831}
21832extern "C" {
21833    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_cert_dir"]
21834    pub fn X509_get_default_cert_dir() -> *const ::std::os::raw::c_char;
21835}
21836extern "C" {
21837    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_cert_file"]
21838    pub fn X509_get_default_cert_file() -> *const ::std::os::raw::c_char;
21839}
21840extern "C" {
21841    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_private_dir"]
21842    pub fn X509_get_default_private_dir() -> *const ::std::os::raw::c_char;
21843}
21844extern "C" {
21845    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_cert_dir_env"]
21846    pub fn X509_get_default_cert_dir_env() -> *const ::std::os::raw::c_char;
21847}
21848extern "C" {
21849    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_default_cert_file_env"]
21850    pub fn X509_get_default_cert_file_env() -> *const ::std::os::raw::c_char;
21851}
21852#[repr(C)]
21853#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21854pub struct Netscape_spki_st {
21855    pub spkac: *mut NETSCAPE_SPKAC,
21856    pub sig_algor: *mut X509_ALGOR,
21857    pub signature: *mut ASN1_BIT_STRING,
21858}
21859#[test]
21860fn bindgen_test_layout_Netscape_spki_st() {
21861    const UNINIT: ::std::mem::MaybeUninit<Netscape_spki_st> = ::std::mem::MaybeUninit::uninit();
21862    let ptr = UNINIT.as_ptr();
21863    assert_eq!(
21864        ::std::mem::size_of::<Netscape_spki_st>(),
21865        24usize,
21866        "Size of Netscape_spki_st"
21867    );
21868    assert_eq!(
21869        ::std::mem::align_of::<Netscape_spki_st>(),
21870        8usize,
21871        "Alignment of Netscape_spki_st"
21872    );
21873    assert_eq!(
21874        unsafe { ::std::ptr::addr_of!((*ptr).spkac) as usize - ptr as usize },
21875        0usize,
21876        "Offset of field: Netscape_spki_st::spkac"
21877    );
21878    assert_eq!(
21879        unsafe { ::std::ptr::addr_of!((*ptr).sig_algor) as usize - ptr as usize },
21880        8usize,
21881        "Offset of field: Netscape_spki_st::sig_algor"
21882    );
21883    assert_eq!(
21884        unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize },
21885        16usize,
21886        "Offset of field: Netscape_spki_st::signature"
21887    );
21888}
21889impl Default for Netscape_spki_st {
21890    fn default() -> Self {
21891        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21892        unsafe {
21893            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21894            s.assume_init()
21895        }
21896    }
21897}
21898extern "C" {
21899    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_it"]
21900    pub static NETSCAPE_SPKI_it: ASN1_ITEM;
21901}
21902extern "C" {
21903    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_new"]
21904    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21905}
21906extern "C" {
21907    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_free"]
21908    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21909}
21910extern "C" {
21911    #[link_name = "\u{1}aws_lc_0_37_0_d2i_NETSCAPE_SPKI"]
21912    pub fn d2i_NETSCAPE_SPKI(
21913        out: *mut *mut NETSCAPE_SPKI,
21914        inp: *mut *const u8,
21915        len: ::std::os::raw::c_long,
21916    ) -> *mut NETSCAPE_SPKI;
21917}
21918extern "C" {
21919    #[link_name = "\u{1}aws_lc_0_37_0_i2d_NETSCAPE_SPKI"]
21920    pub fn i2d_NETSCAPE_SPKI(
21921        spki: *const NETSCAPE_SPKI,
21922        outp: *mut *mut u8,
21923    ) -> ::std::os::raw::c_int;
21924}
21925extern "C" {
21926    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_verify"]
21927    pub fn NETSCAPE_SPKI_verify(
21928        spki: *mut NETSCAPE_SPKI,
21929        pkey: *mut EVP_PKEY,
21930    ) -> ::std::os::raw::c_int;
21931}
21932extern "C" {
21933    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_b64_decode"]
21934    pub fn NETSCAPE_SPKI_b64_decode(
21935        str_: *const ::std::os::raw::c_char,
21936        len: ossl_ssize_t,
21937    ) -> *mut NETSCAPE_SPKI;
21938}
21939extern "C" {
21940    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_b64_encode"]
21941    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::std::os::raw::c_char;
21942}
21943extern "C" {
21944    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_get_pubkey"]
21945    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21946}
21947extern "C" {
21948    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_set_pubkey"]
21949    pub fn NETSCAPE_SPKI_set_pubkey(
21950        spki: *mut NETSCAPE_SPKI,
21951        pkey: *mut EVP_PKEY,
21952    ) -> ::std::os::raw::c_int;
21953}
21954extern "C" {
21955    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_sign"]
21956    pub fn NETSCAPE_SPKI_sign(
21957        spki: *mut NETSCAPE_SPKI,
21958        pkey: *mut EVP_PKEY,
21959        md: *const EVP_MD,
21960    ) -> ::std::os::raw::c_int;
21961}
21962#[repr(C)]
21963#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21964pub struct Netscape_spkac_st {
21965    pub pubkey: *mut X509_PUBKEY,
21966    pub challenge: *mut ASN1_IA5STRING,
21967}
21968#[test]
21969fn bindgen_test_layout_Netscape_spkac_st() {
21970    const UNINIT: ::std::mem::MaybeUninit<Netscape_spkac_st> = ::std::mem::MaybeUninit::uninit();
21971    let ptr = UNINIT.as_ptr();
21972    assert_eq!(
21973        ::std::mem::size_of::<Netscape_spkac_st>(),
21974        16usize,
21975        "Size of Netscape_spkac_st"
21976    );
21977    assert_eq!(
21978        ::std::mem::align_of::<Netscape_spkac_st>(),
21979        8usize,
21980        "Alignment of Netscape_spkac_st"
21981    );
21982    assert_eq!(
21983        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
21984        0usize,
21985        "Offset of field: Netscape_spkac_st::pubkey"
21986    );
21987    assert_eq!(
21988        unsafe { ::std::ptr::addr_of!((*ptr).challenge) as usize - ptr as usize },
21989        8usize,
21990        "Offset of field: Netscape_spkac_st::challenge"
21991    );
21992}
21993impl Default for Netscape_spkac_st {
21994    fn default() -> Self {
21995        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21996        unsafe {
21997            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21998            s.assume_init()
21999        }
22000    }
22001}
22002extern "C" {
22003    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKAC_it"]
22004    pub static NETSCAPE_SPKAC_it: ASN1_ITEM;
22005}
22006extern "C" {
22007    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKAC_new"]
22008    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
22009}
22010extern "C" {
22011    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKAC_free"]
22012    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
22013}
22014extern "C" {
22015    #[link_name = "\u{1}aws_lc_0_37_0_d2i_NETSCAPE_SPKAC"]
22016    pub fn d2i_NETSCAPE_SPKAC(
22017        out: *mut *mut NETSCAPE_SPKAC,
22018        inp: *mut *const u8,
22019        len: ::std::os::raw::c_long,
22020    ) -> *mut NETSCAPE_SPKAC;
22021}
22022extern "C" {
22023    #[link_name = "\u{1}aws_lc_0_37_0_i2d_NETSCAPE_SPKAC"]
22024    pub fn i2d_NETSCAPE_SPKAC(
22025        spkac: *const NETSCAPE_SPKAC,
22026        outp: *mut *mut u8,
22027    ) -> ::std::os::raw::c_int;
22028}
22029extern "C" {
22030    #[link_name = "\u{1}aws_lc_0_37_0_NETSCAPE_SPKI_print"]
22031    pub fn NETSCAPE_SPKI_print(out: *mut BIO, spki: *mut NETSCAPE_SPKI) -> ::std::os::raw::c_int;
22032}
22033#[repr(C)]
22034#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22035pub struct rsa_pss_params_st {
22036    pub hashAlgorithm: *mut X509_ALGOR,
22037    pub maskGenAlgorithm: *mut X509_ALGOR,
22038    pub saltLength: *mut ASN1_INTEGER,
22039    pub trailerField: *mut ASN1_INTEGER,
22040    pub maskHash: *mut X509_ALGOR,
22041}
22042#[test]
22043fn bindgen_test_layout_rsa_pss_params_st() {
22044    const UNINIT: ::std::mem::MaybeUninit<rsa_pss_params_st> = ::std::mem::MaybeUninit::uninit();
22045    let ptr = UNINIT.as_ptr();
22046    assert_eq!(
22047        ::std::mem::size_of::<rsa_pss_params_st>(),
22048        40usize,
22049        "Size of rsa_pss_params_st"
22050    );
22051    assert_eq!(
22052        ::std::mem::align_of::<rsa_pss_params_st>(),
22053        8usize,
22054        "Alignment of rsa_pss_params_st"
22055    );
22056    assert_eq!(
22057        unsafe { ::std::ptr::addr_of!((*ptr).hashAlgorithm) as usize - ptr as usize },
22058        0usize,
22059        "Offset of field: rsa_pss_params_st::hashAlgorithm"
22060    );
22061    assert_eq!(
22062        unsafe { ::std::ptr::addr_of!((*ptr).maskGenAlgorithm) as usize - ptr as usize },
22063        8usize,
22064        "Offset of field: rsa_pss_params_st::maskGenAlgorithm"
22065    );
22066    assert_eq!(
22067        unsafe { ::std::ptr::addr_of!((*ptr).saltLength) as usize - ptr as usize },
22068        16usize,
22069        "Offset of field: rsa_pss_params_st::saltLength"
22070    );
22071    assert_eq!(
22072        unsafe { ::std::ptr::addr_of!((*ptr).trailerField) as usize - ptr as usize },
22073        24usize,
22074        "Offset of field: rsa_pss_params_st::trailerField"
22075    );
22076    assert_eq!(
22077        unsafe { ::std::ptr::addr_of!((*ptr).maskHash) as usize - ptr as usize },
22078        32usize,
22079        "Offset of field: rsa_pss_params_st::maskHash"
22080    );
22081}
22082impl Default for rsa_pss_params_st {
22083    fn default() -> Self {
22084        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22085        unsafe {
22086            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22087            s.assume_init()
22088        }
22089    }
22090}
22091extern "C" {
22092    #[link_name = "\u{1}aws_lc_0_37_0_RSA_PSS_PARAMS_it"]
22093    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
22094}
22095extern "C" {
22096    #[link_name = "\u{1}aws_lc_0_37_0_RSA_PSS_PARAMS_new"]
22097    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
22098}
22099extern "C" {
22100    #[link_name = "\u{1}aws_lc_0_37_0_RSA_PSS_PARAMS_free"]
22101    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
22102}
22103extern "C" {
22104    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSA_PSS_PARAMS"]
22105    pub fn d2i_RSA_PSS_PARAMS(
22106        out: *mut *mut RSA_PSS_PARAMS,
22107        inp: *mut *const u8,
22108        len: ::std::os::raw::c_long,
22109    ) -> *mut RSA_PSS_PARAMS;
22110}
22111extern "C" {
22112    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSA_PSS_PARAMS"]
22113    pub fn i2d_RSA_PSS_PARAMS(
22114        in_: *const RSA_PSS_PARAMS,
22115        outp: *mut *mut u8,
22116    ) -> ::std::os::raw::c_int;
22117}
22118extern "C" {
22119    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_PRIV_KEY_INFO_it"]
22120    pub static PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM;
22121}
22122extern "C" {
22123    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_PRIV_KEY_INFO_new"]
22124    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
22125}
22126extern "C" {
22127    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_PRIV_KEY_INFO_free"]
22128    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
22129}
22130extern "C" {
22131    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8_PRIV_KEY_INFO"]
22132    pub fn d2i_PKCS8_PRIV_KEY_INFO(
22133        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22134        inp: *mut *const u8,
22135        len: ::std::os::raw::c_long,
22136    ) -> *mut PKCS8_PRIV_KEY_INFO;
22137}
22138extern "C" {
22139    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8_PRIV_KEY_INFO"]
22140    pub fn i2d_PKCS8_PRIV_KEY_INFO(
22141        key: *const PKCS8_PRIV_KEY_INFO,
22142        outp: *mut *mut u8,
22143    ) -> ::std::os::raw::c_int;
22144}
22145extern "C" {
22146    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKCS82PKEY"]
22147    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
22148}
22149extern "C" {
22150    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY2PKCS8"]
22151    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
22152}
22153extern "C" {
22154    #[link_name = "\u{1}aws_lc_0_37_0_X509_SIG_it"]
22155    pub static X509_SIG_it: ASN1_ITEM;
22156}
22157extern "C" {
22158    #[link_name = "\u{1}aws_lc_0_37_0_X509_SIG_new"]
22159    pub fn X509_SIG_new() -> *mut X509_SIG;
22160}
22161extern "C" {
22162    #[link_name = "\u{1}aws_lc_0_37_0_X509_SIG_free"]
22163    pub fn X509_SIG_free(key: *mut X509_SIG);
22164}
22165extern "C" {
22166    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_SIG"]
22167    pub fn d2i_X509_SIG(
22168        out: *mut *mut X509_SIG,
22169        inp: *mut *const u8,
22170        len: ::std::os::raw::c_long,
22171    ) -> *mut X509_SIG;
22172}
22173extern "C" {
22174    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_SIG"]
22175    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
22176}
22177extern "C" {
22178    #[link_name = "\u{1}aws_lc_0_37_0_X509_SIG_get0"]
22179    pub fn X509_SIG_get0(
22180        sig: *const X509_SIG,
22181        out_alg: *mut *const X509_ALGOR,
22182        out_digest: *mut *const ASN1_OCTET_STRING,
22183    );
22184}
22185extern "C" {
22186    #[link_name = "\u{1}aws_lc_0_37_0_X509_SIG_getm"]
22187    pub fn X509_SIG_getm(
22188        sig: *mut X509_SIG,
22189        out_alg: *mut *mut X509_ALGOR,
22190        out_digest: *mut *mut ASN1_OCTET_STRING,
22191    );
22192}
22193extern "C" {
22194    #[link_name = "\u{1}aws_lc_0_37_0_X509_print_ex"]
22195    pub fn X509_print_ex(
22196        bp: *mut BIO,
22197        x: *mut X509,
22198        nmflag: ::std::os::raw::c_ulong,
22199        cflag: ::std::os::raw::c_ulong,
22200    ) -> ::std::os::raw::c_int;
22201}
22202extern "C" {
22203    #[link_name = "\u{1}aws_lc_0_37_0_X509_print_ex_fp"]
22204    pub fn X509_print_ex_fp(
22205        fp: *mut FILE,
22206        x: *mut X509,
22207        nmflag: ::std::os::raw::c_ulong,
22208        cflag: ::std::os::raw::c_ulong,
22209    ) -> ::std::os::raw::c_int;
22210}
22211extern "C" {
22212    #[link_name = "\u{1}aws_lc_0_37_0_X509_print"]
22213    pub fn X509_print(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
22214}
22215extern "C" {
22216    #[link_name = "\u{1}aws_lc_0_37_0_X509_print_fp"]
22217    pub fn X509_print_fp(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
22218}
22219extern "C" {
22220    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_print"]
22221    pub fn X509_CRL_print(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22222}
22223extern "C" {
22224    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_print_fp"]
22225    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22226}
22227extern "C" {
22228    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_print_ex"]
22229    pub fn X509_REQ_print_ex(
22230        bp: *mut BIO,
22231        x: *mut X509_REQ,
22232        nmflag: ::std::os::raw::c_ulong,
22233        cflag: ::std::os::raw::c_ulong,
22234    ) -> ::std::os::raw::c_int;
22235}
22236extern "C" {
22237    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_print"]
22238    pub fn X509_REQ_print(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22239}
22240extern "C" {
22241    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_print_fp"]
22242    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22243}
22244extern "C" {
22245    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_print_ex"]
22246    pub fn X509_NAME_print_ex(
22247        out: *mut BIO,
22248        nm: *const X509_NAME,
22249        indent: ::std::os::raw::c_int,
22250        flags: ::std::os::raw::c_ulong,
22251    ) -> ::std::os::raw::c_int;
22252}
22253extern "C" {
22254    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_print"]
22255    pub fn X509_NAME_print(
22256        bp: *mut BIO,
22257        name: *const X509_NAME,
22258        obase: ::std::os::raw::c_int,
22259    ) -> ::std::os::raw::c_int;
22260}
22261extern "C" {
22262    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_oneline"]
22263    pub fn X509_NAME_oneline(
22264        name: *const X509_NAME,
22265        buf: *mut ::std::os::raw::c_char,
22266        size: ::std::os::raw::c_int,
22267    ) -> *mut ::std::os::raw::c_char;
22268}
22269extern "C" {
22270    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_print_ex_fp"]
22271    pub fn X509_NAME_print_ex_fp(
22272        fp: *mut FILE,
22273        nm: *const X509_NAME,
22274        indent: ::std::os::raw::c_int,
22275        flags: ::std::os::raw::c_ulong,
22276    ) -> ::std::os::raw::c_int;
22277}
22278extern "C" {
22279    #[link_name = "\u{1}aws_lc_0_37_0_X509_signature_dump"]
22280    pub fn X509_signature_dump(
22281        bio: *mut BIO,
22282        sig: *const ASN1_STRING,
22283        indent: ::std::os::raw::c_int,
22284    ) -> ::std::os::raw::c_int;
22285}
22286extern "C" {
22287    #[link_name = "\u{1}aws_lc_0_37_0_X509_signature_print"]
22288    pub fn X509_signature_print(
22289        bio: *mut BIO,
22290        alg: *const X509_ALGOR,
22291        sig: *const ASN1_STRING,
22292    ) -> ::std::os::raw::c_int;
22293}
22294extern "C" {
22295    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_print"]
22296    pub fn X509V3_EXT_print(
22297        out: *mut BIO,
22298        ext: *const X509_EXTENSION,
22299        flag: ::std::os::raw::c_ulong,
22300        indent: ::std::os::raw::c_int,
22301    ) -> ::std::os::raw::c_int;
22302}
22303extern "C" {
22304    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_print_fp"]
22305    pub fn X509V3_EXT_print_fp(
22306        out: *mut FILE,
22307        ext: *const X509_EXTENSION,
22308        flag: ::std::os::raw::c_int,
22309        indent: ::std::os::raw::c_int,
22310    ) -> ::std::os::raw::c_int;
22311}
22312extern "C" {
22313    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_extensions_print"]
22314    pub fn X509V3_extensions_print(
22315        out: *mut BIO,
22316        title: *const ::std::os::raw::c_char,
22317        exts: *const stack_st_X509_EXTENSION,
22318        flag: ::std::os::raw::c_ulong,
22319        indent: ::std::os::raw::c_int,
22320    ) -> ::std::os::raw::c_int;
22321}
22322extern "C" {
22323    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_NAME_print"]
22324    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::std::os::raw::c_int;
22325}
22326extern "C" {
22327    #[link_name = "\u{1}aws_lc_0_37_0_X509_pubkey_digest"]
22328    pub fn X509_pubkey_digest(
22329        x509: *const X509,
22330        md: *const EVP_MD,
22331        out: *mut u8,
22332        out_len: *mut ::std::os::raw::c_uint,
22333    ) -> ::std::os::raw::c_int;
22334}
22335extern "C" {
22336    #[link_name = "\u{1}aws_lc_0_37_0_X509_digest"]
22337    pub fn X509_digest(
22338        x509: *const X509,
22339        md: *const EVP_MD,
22340        out: *mut u8,
22341        out_len: *mut ::std::os::raw::c_uint,
22342    ) -> ::std::os::raw::c_int;
22343}
22344extern "C" {
22345    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_digest"]
22346    pub fn X509_CRL_digest(
22347        crl: *const X509_CRL,
22348        md: *const EVP_MD,
22349        out: *mut u8,
22350        out_len: *mut ::std::os::raw::c_uint,
22351    ) -> ::std::os::raw::c_int;
22352}
22353extern "C" {
22354    #[link_name = "\u{1}aws_lc_0_37_0_X509_REQ_digest"]
22355    pub fn X509_REQ_digest(
22356        req: *const X509_REQ,
22357        md: *const EVP_MD,
22358        out: *mut u8,
22359        out_len: *mut ::std::os::raw::c_uint,
22360    ) -> ::std::os::raw::c_int;
22361}
22362extern "C" {
22363    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_digest"]
22364    pub fn X509_NAME_digest(
22365        name: *const X509_NAME,
22366        md: *const EVP_MD,
22367        out: *mut u8,
22368        out_len: *mut ::std::os::raw::c_uint,
22369    ) -> ::std::os::raw::c_int;
22370}
22371extern "C" {
22372    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_bio"]
22373    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
22374}
22375extern "C" {
22376    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_CRL_bio"]
22377    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22378}
22379extern "C" {
22380    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_REQ_bio"]
22381    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22382}
22383extern "C" {
22384    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPrivateKey_bio"]
22385    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22386}
22387extern "C" {
22388    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPublicKey_bio"]
22389    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22390}
22391extern "C" {
22392    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSA_PUBKEY_bio"]
22393    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22394}
22395extern "C" {
22396    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSA_PUBKEY_bio"]
22397    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22398}
22399extern "C" {
22400    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSAPrivateKey_bio"]
22401    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22402}
22403extern "C" {
22404    #[link_name = "\u{1}aws_lc_0_37_0_d2i_EC_PUBKEY_bio"]
22405    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22406}
22407extern "C" {
22408    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECPrivateKey_bio"]
22409    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22410}
22411extern "C" {
22412    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8_bio"]
22413    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22414}
22415extern "C" {
22416    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8_PRIV_KEY_INFO_bio"]
22417    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
22418        bp: *mut BIO,
22419        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22420    ) -> *mut PKCS8_PRIV_KEY_INFO;
22421}
22422extern "C" {
22423    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PUBKEY_bio"]
22424    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22425}
22426extern "C" {
22427    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DHparams_bio"]
22428    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
22429}
22430extern "C" {
22431    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PrivateKey_bio"]
22432    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22433}
22434extern "C" {
22435    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_bio"]
22436    pub fn i2d_X509_bio(bp: *mut BIO, x509: *mut X509) -> ::std::os::raw::c_int;
22437}
22438extern "C" {
22439    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_CRL_bio"]
22440    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22441}
22442extern "C" {
22443    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_REQ_bio"]
22444    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22445}
22446extern "C" {
22447    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPrivateKey_bio"]
22448    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22449}
22450extern "C" {
22451    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPublicKey_bio"]
22452    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22453}
22454extern "C" {
22455    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSA_PUBKEY_bio"]
22456    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22457}
22458extern "C" {
22459    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSA_PUBKEY_bio"]
22460    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22461}
22462extern "C" {
22463    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSAPrivateKey_bio"]
22464    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22465}
22466extern "C" {
22467    #[link_name = "\u{1}aws_lc_0_37_0_i2d_EC_PUBKEY_bio"]
22468    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22469}
22470extern "C" {
22471    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECPrivateKey_bio"]
22472    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22473}
22474extern "C" {
22475    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8_bio"]
22476    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22477}
22478extern "C" {
22479    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8_PRIV_KEY_INFO_bio"]
22480    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
22481        bp: *mut BIO,
22482        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22483    ) -> ::std::os::raw::c_int;
22484}
22485extern "C" {
22486    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PrivateKey_bio"]
22487    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22488}
22489extern "C" {
22490    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PUBKEY_bio"]
22491    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22492}
22493extern "C" {
22494    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DHparams_bio"]
22495    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::std::os::raw::c_int;
22496}
22497extern "C" {
22498    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKeyInfo_bio"]
22499    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22500}
22501extern "C" {
22502    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_fp"]
22503    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
22504}
22505extern "C" {
22506    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_CRL_fp"]
22507    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22508}
22509extern "C" {
22510    #[link_name = "\u{1}aws_lc_0_37_0_d2i_X509_REQ_fp"]
22511    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22512}
22513extern "C" {
22514    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPrivateKey_fp"]
22515    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22516}
22517extern "C" {
22518    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSAPublicKey_fp"]
22519    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22520}
22521extern "C" {
22522    #[link_name = "\u{1}aws_lc_0_37_0_d2i_RSA_PUBKEY_fp"]
22523    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22524}
22525extern "C" {
22526    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSA_PUBKEY_fp"]
22527    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22528}
22529extern "C" {
22530    #[link_name = "\u{1}aws_lc_0_37_0_d2i_DSAPrivateKey_fp"]
22531    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22532}
22533extern "C" {
22534    #[link_name = "\u{1}aws_lc_0_37_0_d2i_EC_PUBKEY_fp"]
22535    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22536}
22537extern "C" {
22538    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ECPrivateKey_fp"]
22539    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22540}
22541extern "C" {
22542    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8_fp"]
22543    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22544}
22545extern "C" {
22546    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8_PRIV_KEY_INFO_fp"]
22547    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
22548        fp: *mut FILE,
22549        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22550    ) -> *mut PKCS8_PRIV_KEY_INFO;
22551}
22552extern "C" {
22553    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PrivateKey_fp"]
22554    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22555}
22556extern "C" {
22557    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PUBKEY_fp"]
22558    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22559}
22560extern "C" {
22561    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_fp"]
22562    pub fn i2d_X509_fp(fp: *mut FILE, x509: *mut X509) -> ::std::os::raw::c_int;
22563}
22564extern "C" {
22565    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_CRL_fp"]
22566    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22567}
22568extern "C" {
22569    #[link_name = "\u{1}aws_lc_0_37_0_i2d_X509_REQ_fp"]
22570    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22571}
22572extern "C" {
22573    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPrivateKey_fp"]
22574    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22575}
22576extern "C" {
22577    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSAPublicKey_fp"]
22578    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22579}
22580extern "C" {
22581    #[link_name = "\u{1}aws_lc_0_37_0_i2d_RSA_PUBKEY_fp"]
22582    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22583}
22584extern "C" {
22585    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSA_PUBKEY_fp"]
22586    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22587}
22588extern "C" {
22589    #[link_name = "\u{1}aws_lc_0_37_0_i2d_DSAPrivateKey_fp"]
22590    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22591}
22592extern "C" {
22593    #[link_name = "\u{1}aws_lc_0_37_0_i2d_EC_PUBKEY_fp"]
22594    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22595}
22596extern "C" {
22597    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ECPrivateKey_fp"]
22598    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22599}
22600extern "C" {
22601    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8_fp"]
22602    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22603}
22604extern "C" {
22605    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8_PRIV_KEY_INFO_fp"]
22606    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
22607        fp: *mut FILE,
22608        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22609    ) -> ::std::os::raw::c_int;
22610}
22611extern "C" {
22612    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKeyInfo_fp"]
22613    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22614}
22615extern "C" {
22616    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PrivateKey_fp"]
22617    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22618}
22619extern "C" {
22620    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PUBKEY_fp"]
22621    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22622}
22623extern "C" {
22624    #[link_name = "\u{1}aws_lc_0_37_0_X509_find_by_issuer_and_serial"]
22625    pub fn X509_find_by_issuer_and_serial(
22626        sk: *const stack_st_X509,
22627        name: *mut X509_NAME,
22628        serial: *const ASN1_INTEGER,
22629    ) -> *mut X509;
22630}
22631extern "C" {
22632    #[link_name = "\u{1}aws_lc_0_37_0_X509_find_by_subject"]
22633    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *mut X509_NAME) -> *mut X509;
22634}
22635extern "C" {
22636    #[link_name = "\u{1}aws_lc_0_37_0_X509_cmp_time"]
22637    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::std::os::raw::c_int;
22638}
22639extern "C" {
22640    #[link_name = "\u{1}aws_lc_0_37_0_X509_cmp_time_posix"]
22641    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::std::os::raw::c_int;
22642}
22643extern "C" {
22644    #[link_name = "\u{1}aws_lc_0_37_0_X509_cmp_current_time"]
22645    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::std::os::raw::c_int;
22646}
22647extern "C" {
22648    #[link_name = "\u{1}aws_lc_0_37_0_X509_time_adj"]
22649    pub fn X509_time_adj(
22650        s: *mut ASN1_TIME,
22651        offset_sec: ::std::os::raw::c_long,
22652        t: *const time_t,
22653    ) -> *mut ASN1_TIME;
22654}
22655extern "C" {
22656    #[link_name = "\u{1}aws_lc_0_37_0_X509_time_adj_ex"]
22657    pub fn X509_time_adj_ex(
22658        s: *mut ASN1_TIME,
22659        offset_day: ::std::os::raw::c_int,
22660        offset_sec: ::std::os::raw::c_long,
22661        t: *const time_t,
22662    ) -> *mut ASN1_TIME;
22663}
22664extern "C" {
22665    #[link_name = "\u{1}aws_lc_0_37_0_X509_gmtime_adj"]
22666    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::std::os::raw::c_long)
22667        -> *mut ASN1_TIME;
22668}
22669extern "C" {
22670    #[link_name = "\u{1}aws_lc_0_37_0_X509_issuer_name_cmp"]
22671    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22672}
22673extern "C" {
22674    #[link_name = "\u{1}aws_lc_0_37_0_X509_subject_name_cmp"]
22675    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22676}
22677extern "C" {
22678    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_cmp"]
22679    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
22680}
22681extern "C" {
22682    #[link_name = "\u{1}aws_lc_0_37_0_X509_issuer_name_hash"]
22683    pub fn X509_issuer_name_hash(x509: *mut X509) -> u32;
22684}
22685extern "C" {
22686    #[link_name = "\u{1}aws_lc_0_37_0_X509_subject_name_hash"]
22687    pub fn X509_subject_name_hash(x509: *mut X509) -> u32;
22688}
22689extern "C" {
22690    #[link_name = "\u{1}aws_lc_0_37_0_X509_issuer_name_hash_old"]
22691    pub fn X509_issuer_name_hash_old(x509: *mut X509) -> u32;
22692}
22693extern "C" {
22694    #[link_name = "\u{1}aws_lc_0_37_0_X509_subject_name_hash_old"]
22695    pub fn X509_subject_name_hash_old(x509: *mut X509) -> u32;
22696}
22697extern "C" {
22698    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ex_new_index"]
22699    pub fn X509_get_ex_new_index(
22700        argl: ::std::os::raw::c_long,
22701        argp: *mut ::std::os::raw::c_void,
22702        unused: *mut CRYPTO_EX_unused,
22703        dup_unused: CRYPTO_EX_dup,
22704        free_func: CRYPTO_EX_free,
22705    ) -> ::std::os::raw::c_int;
22706}
22707extern "C" {
22708    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_ex_data"]
22709    pub fn X509_set_ex_data(
22710        r: *mut X509,
22711        idx: ::std::os::raw::c_int,
22712        arg: *mut ::std::os::raw::c_void,
22713    ) -> ::std::os::raw::c_int;
22714}
22715extern "C" {
22716    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_ex_data"]
22717    pub fn X509_get_ex_data(
22718        r: *mut X509,
22719        idx: ::std::os::raw::c_int,
22720    ) -> *mut ::std::os::raw::c_void;
22721}
22722extern "C" {
22723    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_ex_new_index"]
22724    pub fn X509_STORE_CTX_get_ex_new_index(
22725        argl: ::std::os::raw::c_long,
22726        argp: *mut ::std::os::raw::c_void,
22727        unused: *mut CRYPTO_EX_unused,
22728        dup_unused: CRYPTO_EX_dup,
22729        free_func: CRYPTO_EX_free,
22730    ) -> ::std::os::raw::c_int;
22731}
22732extern "C" {
22733    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_ex_data"]
22734    pub fn X509_STORE_CTX_set_ex_data(
22735        ctx: *mut X509_STORE_CTX,
22736        idx: ::std::os::raw::c_int,
22737        data: *mut ::std::os::raw::c_void,
22738    ) -> ::std::os::raw::c_int;
22739}
22740extern "C" {
22741    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_ex_data"]
22742    pub fn X509_STORE_CTX_get_ex_data(
22743        ctx: *mut X509_STORE_CTX,
22744        idx: ::std::os::raw::c_int,
22745    ) -> *mut ::std::os::raw::c_void;
22746}
22747extern "C" {
22748    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get_ex_new_index"]
22749    pub fn X509_STORE_get_ex_new_index(
22750        argl: ::std::os::raw::c_long,
22751        argp: *mut ::std::os::raw::c_void,
22752        unused: *mut CRYPTO_EX_unused,
22753        dup_unused: CRYPTO_EX_dup,
22754        free_func: CRYPTO_EX_free,
22755    ) -> ::std::os::raw::c_int;
22756}
22757extern "C" {
22758    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_ex_data"]
22759    pub fn X509_STORE_set_ex_data(
22760        ctx: *mut X509_STORE,
22761        idx: ::std::os::raw::c_int,
22762        data: *mut ::std::os::raw::c_void,
22763    ) -> ::std::os::raw::c_int;
22764}
22765extern "C" {
22766    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get_ex_data"]
22767    pub fn X509_STORE_get_ex_data(
22768        ctx: *mut X509_STORE,
22769        idx: ::std::os::raw::c_int,
22770    ) -> *mut ::std::os::raw::c_void;
22771}
22772extern "C" {
22773    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_digest"]
22774    pub fn ASN1_digest(
22775        i2d: i2d_of_void,
22776        type_: *const EVP_MD,
22777        data: *mut ::std::os::raw::c_char,
22778        md: *mut ::std::os::raw::c_uchar,
22779        len: *mut ::std::os::raw::c_uint,
22780    ) -> ::std::os::raw::c_int;
22781}
22782extern "C" {
22783    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_digest"]
22784    pub fn ASN1_item_digest(
22785        it: *const ASN1_ITEM,
22786        type_: *const EVP_MD,
22787        data: *mut ::std::os::raw::c_void,
22788        md: *mut ::std::os::raw::c_uchar,
22789        len: *mut ::std::os::raw::c_uint,
22790    ) -> ::std::os::raw::c_int;
22791}
22792extern "C" {
22793    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_verify"]
22794    pub fn ASN1_item_verify(
22795        it: *const ASN1_ITEM,
22796        algor1: *const X509_ALGOR,
22797        signature: *const ASN1_BIT_STRING,
22798        data: *mut ::std::os::raw::c_void,
22799        pkey: *mut EVP_PKEY,
22800    ) -> ::std::os::raw::c_int;
22801}
22802extern "C" {
22803    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_sign"]
22804    pub fn ASN1_item_sign(
22805        it: *const ASN1_ITEM,
22806        algor1: *mut X509_ALGOR,
22807        algor2: *mut X509_ALGOR,
22808        signature: *mut ASN1_BIT_STRING,
22809        data: *mut ::std::os::raw::c_void,
22810        pkey: *mut EVP_PKEY,
22811        type_: *const EVP_MD,
22812    ) -> ::std::os::raw::c_int;
22813}
22814extern "C" {
22815    #[link_name = "\u{1}aws_lc_0_37_0_ASN1_item_sign_ctx"]
22816    pub fn ASN1_item_sign_ctx(
22817        it: *const ASN1_ITEM,
22818        algor1: *mut X509_ALGOR,
22819        algor2: *mut X509_ALGOR,
22820        signature: *mut ASN1_BIT_STRING,
22821        asn: *mut ::std::os::raw::c_void,
22822        ctx: *mut EVP_MD_CTX,
22823    ) -> ::std::os::raw::c_int;
22824}
22825extern "C" {
22826    #[link_name = "\u{1}aws_lc_0_37_0_X509_supported_extension"]
22827    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
22828}
22829extern "C" {
22830    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_ca"]
22831    pub fn X509_check_ca(x509: *mut X509) -> ::std::os::raw::c_int;
22832}
22833extern "C" {
22834    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_issued"]
22835    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> ::std::os::raw::c_int;
22836}
22837extern "C" {
22838    #[link_name = "\u{1}aws_lc_0_37_0_NAME_CONSTRAINTS_check"]
22839    pub fn NAME_CONSTRAINTS_check(
22840        x509: *mut X509,
22841        nc: *mut NAME_CONSTRAINTS,
22842    ) -> ::std::os::raw::c_int;
22843}
22844extern "C" {
22845    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_host"]
22846    pub fn X509_check_host(
22847        x509: *const X509,
22848        chk: *const ::std::os::raw::c_char,
22849        chklen: usize,
22850        flags: ::std::os::raw::c_uint,
22851        out_peername: *mut *mut ::std::os::raw::c_char,
22852    ) -> ::std::os::raw::c_int;
22853}
22854extern "C" {
22855    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_email"]
22856    pub fn X509_check_email(
22857        x509: *const X509,
22858        chk: *const ::std::os::raw::c_char,
22859        chklen: usize,
22860        flags: ::std::os::raw::c_uint,
22861    ) -> ::std::os::raw::c_int;
22862}
22863extern "C" {
22864    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_ip"]
22865    pub fn X509_check_ip(
22866        x509: *const X509,
22867        chk: *const u8,
22868        chklen: usize,
22869        flags: ::std::os::raw::c_uint,
22870    ) -> ::std::os::raw::c_int;
22871}
22872extern "C" {
22873    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_ip_asc"]
22874    pub fn X509_check_ip_asc(
22875        x509: *const X509,
22876        ipasc: *const ::std::os::raw::c_char,
22877        flags: ::std::os::raw::c_uint,
22878    ) -> ::std::os::raw::c_int;
22879}
22880extern "C" {
22881    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get1_issuer"]
22882    pub fn X509_STORE_CTX_get1_issuer(
22883        out_issuer: *mut *mut X509,
22884        ctx: *mut X509_STORE_CTX,
22885        x509: *mut X509,
22886    ) -> ::std::os::raw::c_int;
22887}
22888extern "C" {
22889    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_purpose"]
22890    pub fn X509_check_purpose(
22891        x509: *mut X509,
22892        purpose: ::std::os::raw::c_int,
22893        ca: ::std::os::raw::c_int,
22894    ) -> ::std::os::raw::c_int;
22895}
22896extern "C" {
22897    #[link_name = "\u{1}aws_lc_0_37_0_X509_check_trust"]
22898    pub fn X509_check_trust(
22899        x509: *mut X509,
22900        id: ::std::os::raw::c_int,
22901        flags: ::std::os::raw::c_int,
22902    ) -> ::std::os::raw::c_int;
22903}
22904#[repr(C)]
22905#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22906pub struct private_key_st {
22907    pub dec_pkey: *mut EVP_PKEY,
22908}
22909#[test]
22910fn bindgen_test_layout_private_key_st() {
22911    const UNINIT: ::std::mem::MaybeUninit<private_key_st> = ::std::mem::MaybeUninit::uninit();
22912    let ptr = UNINIT.as_ptr();
22913    assert_eq!(
22914        ::std::mem::size_of::<private_key_st>(),
22915        8usize,
22916        "Size of private_key_st"
22917    );
22918    assert_eq!(
22919        ::std::mem::align_of::<private_key_st>(),
22920        8usize,
22921        "Alignment of private_key_st"
22922    );
22923    assert_eq!(
22924        unsafe { ::std::ptr::addr_of!((*ptr).dec_pkey) as usize - ptr as usize },
22925        0usize,
22926        "Offset of field: private_key_st::dec_pkey"
22927    );
22928}
22929impl Default for private_key_st {
22930    fn default() -> Self {
22931        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22932        unsafe {
22933            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22934            s.assume_init()
22935        }
22936    }
22937}
22938#[repr(C)]
22939#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22940pub struct X509_info_st {
22941    pub x509: *mut X509,
22942    pub crl: *mut X509_CRL,
22943    pub x_pkey: *mut X509_PKEY,
22944    pub enc_cipher: EVP_CIPHER_INFO,
22945    pub enc_len: ::std::os::raw::c_int,
22946    pub enc_data: *mut ::std::os::raw::c_char,
22947}
22948#[test]
22949fn bindgen_test_layout_X509_info_st() {
22950    const UNINIT: ::std::mem::MaybeUninit<X509_info_st> = ::std::mem::MaybeUninit::uninit();
22951    let ptr = UNINIT.as_ptr();
22952    assert_eq!(
22953        ::std::mem::size_of::<X509_info_st>(),
22954        64usize,
22955        "Size of X509_info_st"
22956    );
22957    assert_eq!(
22958        ::std::mem::align_of::<X509_info_st>(),
22959        8usize,
22960        "Alignment of X509_info_st"
22961    );
22962    assert_eq!(
22963        unsafe { ::std::ptr::addr_of!((*ptr).x509) as usize - ptr as usize },
22964        0usize,
22965        "Offset of field: X509_info_st::x509"
22966    );
22967    assert_eq!(
22968        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
22969        8usize,
22970        "Offset of field: X509_info_st::crl"
22971    );
22972    assert_eq!(
22973        unsafe { ::std::ptr::addr_of!((*ptr).x_pkey) as usize - ptr as usize },
22974        16usize,
22975        "Offset of field: X509_info_st::x_pkey"
22976    );
22977    assert_eq!(
22978        unsafe { ::std::ptr::addr_of!((*ptr).enc_cipher) as usize - ptr as usize },
22979        24usize,
22980        "Offset of field: X509_info_st::enc_cipher"
22981    );
22982    assert_eq!(
22983        unsafe { ::std::ptr::addr_of!((*ptr).enc_len) as usize - ptr as usize },
22984        48usize,
22985        "Offset of field: X509_info_st::enc_len"
22986    );
22987    assert_eq!(
22988        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
22989        56usize,
22990        "Offset of field: X509_info_st::enc_data"
22991    );
22992}
22993impl Default for X509_info_st {
22994    fn default() -> Self {
22995        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22996        unsafe {
22997            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22998            s.assume_init()
22999        }
23000    }
23001}
23002#[repr(C)]
23003#[derive(Debug, Copy, Clone)]
23004pub struct stack_st_X509_INFO {
23005    _unused: [u8; 0],
23006}
23007pub type sk_X509_INFO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
23008pub type sk_X509_INFO_copy_func =
23009    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
23010pub type sk_X509_INFO_cmp_func = ::std::option::Option<
23011    unsafe extern "C" fn(
23012        arg1: *const *const X509_INFO,
23013        arg2: *const *const X509_INFO,
23014    ) -> ::std::os::raw::c_int,
23015>;
23016pub type sk_X509_INFO_delete_if_func = ::std::option::Option<
23017    unsafe extern "C" fn(
23018        arg1: *mut X509_INFO,
23019        arg2: *mut ::std::os::raw::c_void,
23020    ) -> ::std::os::raw::c_int,
23021>;
23022extern "C" {
23023    #[link_name = "\u{1}aws_lc_0_37_0_X509_INFO_free"]
23024    pub fn X509_INFO_free(info: *mut X509_INFO);
23025}
23026pub type X509V3_EXT_NEW =
23027    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
23028pub type X509V3_EXT_FREE =
23029    ::std::option::Option<unsafe extern "C" fn(ext: *mut ::std::os::raw::c_void)>;
23030pub type X509V3_EXT_D2I = ::std::option::Option<
23031    unsafe extern "C" fn(
23032        ext: *mut ::std::os::raw::c_void,
23033        inp: *mut *const u8,
23034        len: ::std::os::raw::c_long,
23035    ) -> *mut ::std::os::raw::c_void,
23036>;
23037pub type X509V3_EXT_I2D = ::std::option::Option<
23038    unsafe extern "C" fn(
23039        ext: *mut ::std::os::raw::c_void,
23040        outp: *mut *mut u8,
23041    ) -> ::std::os::raw::c_int,
23042>;
23043pub type X509V3_EXT_I2V = ::std::option::Option<
23044    unsafe extern "C" fn(
23045        method: *const X509V3_EXT_METHOD,
23046        ext: *mut ::std::os::raw::c_void,
23047        extlist: *mut stack_st_CONF_VALUE,
23048    ) -> *mut stack_st_CONF_VALUE,
23049>;
23050pub type X509V3_EXT_V2I = ::std::option::Option<
23051    unsafe extern "C" fn(
23052        method: *const X509V3_EXT_METHOD,
23053        ctx: *const X509V3_CTX,
23054        values: *const stack_st_CONF_VALUE,
23055    ) -> *mut ::std::os::raw::c_void,
23056>;
23057pub type X509V3_EXT_I2S = ::std::option::Option<
23058    unsafe extern "C" fn(
23059        method: *const X509V3_EXT_METHOD,
23060        ext: *mut ::std::os::raw::c_void,
23061    ) -> *mut ::std::os::raw::c_char,
23062>;
23063pub type X509V3_EXT_S2I = ::std::option::Option<
23064    unsafe extern "C" fn(
23065        method: *const X509V3_EXT_METHOD,
23066        ctx: *const X509V3_CTX,
23067        str_: *const ::std::os::raw::c_char,
23068    ) -> *mut ::std::os::raw::c_void,
23069>;
23070pub type X509V3_EXT_I2R = ::std::option::Option<
23071    unsafe extern "C" fn(
23072        method: *const X509V3_EXT_METHOD,
23073        ext: *mut ::std::os::raw::c_void,
23074        out: *mut BIO,
23075        indent: ::std::os::raw::c_int,
23076    ) -> ::std::os::raw::c_int,
23077>;
23078pub type X509V3_EXT_R2I = ::std::option::Option<
23079    unsafe extern "C" fn(
23080        method: *const X509V3_EXT_METHOD,
23081        ctx: *const X509V3_CTX,
23082        str_: *const ::std::os::raw::c_char,
23083    ) -> *mut ::std::os::raw::c_void,
23084>;
23085#[repr(C)]
23086#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23087pub struct v3_ext_method {
23088    pub ext_nid: ::std::os::raw::c_int,
23089    pub ext_flags: ::std::os::raw::c_int,
23090    pub it: *const ASN1_ITEM_st,
23091    pub ext_new: X509V3_EXT_NEW,
23092    pub ext_free: X509V3_EXT_FREE,
23093    pub d2i: X509V3_EXT_D2I,
23094    pub i2d: X509V3_EXT_I2D,
23095    pub i2s: X509V3_EXT_I2S,
23096    pub s2i: X509V3_EXT_S2I,
23097    pub i2v: X509V3_EXT_I2V,
23098    pub v2i: X509V3_EXT_V2I,
23099    pub i2r: X509V3_EXT_I2R,
23100    pub r2i: X509V3_EXT_R2I,
23101    pub usr_data: *mut ::std::os::raw::c_void,
23102}
23103#[test]
23104fn bindgen_test_layout_v3_ext_method() {
23105    const UNINIT: ::std::mem::MaybeUninit<v3_ext_method> = ::std::mem::MaybeUninit::uninit();
23106    let ptr = UNINIT.as_ptr();
23107    assert_eq!(
23108        ::std::mem::size_of::<v3_ext_method>(),
23109        104usize,
23110        "Size of v3_ext_method"
23111    );
23112    assert_eq!(
23113        ::std::mem::align_of::<v3_ext_method>(),
23114        8usize,
23115        "Alignment of v3_ext_method"
23116    );
23117    assert_eq!(
23118        unsafe { ::std::ptr::addr_of!((*ptr).ext_nid) as usize - ptr as usize },
23119        0usize,
23120        "Offset of field: v3_ext_method::ext_nid"
23121    );
23122    assert_eq!(
23123        unsafe { ::std::ptr::addr_of!((*ptr).ext_flags) as usize - ptr as usize },
23124        4usize,
23125        "Offset of field: v3_ext_method::ext_flags"
23126    );
23127    assert_eq!(
23128        unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize },
23129        8usize,
23130        "Offset of field: v3_ext_method::it"
23131    );
23132    assert_eq!(
23133        unsafe { ::std::ptr::addr_of!((*ptr).ext_new) as usize - ptr as usize },
23134        16usize,
23135        "Offset of field: v3_ext_method::ext_new"
23136    );
23137    assert_eq!(
23138        unsafe { ::std::ptr::addr_of!((*ptr).ext_free) as usize - ptr as usize },
23139        24usize,
23140        "Offset of field: v3_ext_method::ext_free"
23141    );
23142    assert_eq!(
23143        unsafe { ::std::ptr::addr_of!((*ptr).d2i) as usize - ptr as usize },
23144        32usize,
23145        "Offset of field: v3_ext_method::d2i"
23146    );
23147    assert_eq!(
23148        unsafe { ::std::ptr::addr_of!((*ptr).i2d) as usize - ptr as usize },
23149        40usize,
23150        "Offset of field: v3_ext_method::i2d"
23151    );
23152    assert_eq!(
23153        unsafe { ::std::ptr::addr_of!((*ptr).i2s) as usize - ptr as usize },
23154        48usize,
23155        "Offset of field: v3_ext_method::i2s"
23156    );
23157    assert_eq!(
23158        unsafe { ::std::ptr::addr_of!((*ptr).s2i) as usize - ptr as usize },
23159        56usize,
23160        "Offset of field: v3_ext_method::s2i"
23161    );
23162    assert_eq!(
23163        unsafe { ::std::ptr::addr_of!((*ptr).i2v) as usize - ptr as usize },
23164        64usize,
23165        "Offset of field: v3_ext_method::i2v"
23166    );
23167    assert_eq!(
23168        unsafe { ::std::ptr::addr_of!((*ptr).v2i) as usize - ptr as usize },
23169        72usize,
23170        "Offset of field: v3_ext_method::v2i"
23171    );
23172    assert_eq!(
23173        unsafe { ::std::ptr::addr_of!((*ptr).i2r) as usize - ptr as usize },
23174        80usize,
23175        "Offset of field: v3_ext_method::i2r"
23176    );
23177    assert_eq!(
23178        unsafe { ::std::ptr::addr_of!((*ptr).r2i) as usize - ptr as usize },
23179        88usize,
23180        "Offset of field: v3_ext_method::r2i"
23181    );
23182    assert_eq!(
23183        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23184        96usize,
23185        "Offset of field: v3_ext_method::usr_data"
23186    );
23187}
23188impl Default for v3_ext_method {
23189    fn default() -> Self {
23190        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23191        unsafe {
23192            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23193            s.assume_init()
23194        }
23195    }
23196}
23197extern "C" {
23198    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_get"]
23199    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
23200}
23201extern "C" {
23202    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_get_nid"]
23203    pub fn X509V3_EXT_get_nid(nid: ::std::os::raw::c_int) -> *const X509V3_EXT_METHOD;
23204}
23205extern "C" {
23206    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_add"]
23207    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::std::os::raw::c_int;
23208}
23209extern "C" {
23210    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_add_alias"]
23211    pub fn X509V3_EXT_add_alias(
23212        nid_to: ::std::os::raw::c_int,
23213        nid_from: ::std::os::raw::c_int,
23214    ) -> ::std::os::raw::c_int;
23215}
23216#[repr(C)]
23217#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23218pub struct v3_ext_ctx {
23219    pub flags: ::std::os::raw::c_int,
23220    pub issuer_cert: *const X509,
23221    pub subject_cert: *const X509,
23222    pub subject_req: *const X509_REQ,
23223    pub crl: *const X509_CRL,
23224    pub db: *const CONF,
23225}
23226#[test]
23227fn bindgen_test_layout_v3_ext_ctx() {
23228    const UNINIT: ::std::mem::MaybeUninit<v3_ext_ctx> = ::std::mem::MaybeUninit::uninit();
23229    let ptr = UNINIT.as_ptr();
23230    assert_eq!(
23231        ::std::mem::size_of::<v3_ext_ctx>(),
23232        48usize,
23233        "Size of v3_ext_ctx"
23234    );
23235    assert_eq!(
23236        ::std::mem::align_of::<v3_ext_ctx>(),
23237        8usize,
23238        "Alignment of v3_ext_ctx"
23239    );
23240    assert_eq!(
23241        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23242        0usize,
23243        "Offset of field: v3_ext_ctx::flags"
23244    );
23245    assert_eq!(
23246        unsafe { ::std::ptr::addr_of!((*ptr).issuer_cert) as usize - ptr as usize },
23247        8usize,
23248        "Offset of field: v3_ext_ctx::issuer_cert"
23249    );
23250    assert_eq!(
23251        unsafe { ::std::ptr::addr_of!((*ptr).subject_cert) as usize - ptr as usize },
23252        16usize,
23253        "Offset of field: v3_ext_ctx::subject_cert"
23254    );
23255    assert_eq!(
23256        unsafe { ::std::ptr::addr_of!((*ptr).subject_req) as usize - ptr as usize },
23257        24usize,
23258        "Offset of field: v3_ext_ctx::subject_req"
23259    );
23260    assert_eq!(
23261        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
23262        32usize,
23263        "Offset of field: v3_ext_ctx::crl"
23264    );
23265    assert_eq!(
23266        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
23267        40usize,
23268        "Offset of field: v3_ext_ctx::db"
23269    );
23270}
23271impl Default for v3_ext_ctx {
23272    fn default() -> Self {
23273        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23274        unsafe {
23275            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23276            s.assume_init()
23277        }
23278    }
23279}
23280extern "C" {
23281    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_set_ctx"]
23282    pub fn X509V3_set_ctx(
23283        ctx: *mut X509V3_CTX,
23284        issuer: *const X509,
23285        subject: *const X509,
23286        req: *const X509_REQ,
23287        crl: *const X509_CRL,
23288        flags: ::std::os::raw::c_int,
23289    );
23290}
23291extern "C" {
23292    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_set_nconf"]
23293    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
23294}
23295extern "C" {
23296    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_nconf"]
23297    pub fn X509V3_EXT_nconf(
23298        conf: *const CONF,
23299        ctx: *const X509V3_CTX,
23300        name: *const ::std::os::raw::c_char,
23301        value: *const ::std::os::raw::c_char,
23302    ) -> *mut X509_EXTENSION;
23303}
23304extern "C" {
23305    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_nconf_nid"]
23306    pub fn X509V3_EXT_nconf_nid(
23307        conf: *const CONF,
23308        ctx: *const X509V3_CTX,
23309        ext_nid: ::std::os::raw::c_int,
23310        value: *const ::std::os::raw::c_char,
23311    ) -> *mut X509_EXTENSION;
23312}
23313extern "C" {
23314    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_conf_nid"]
23315    pub fn X509V3_EXT_conf_nid(
23316        conf: *mut lhash_st_CONF_VALUE,
23317        ctx: *const X509V3_CTX,
23318        ext_nid: ::std::os::raw::c_int,
23319        value: *const ::std::os::raw::c_char,
23320    ) -> *mut X509_EXTENSION;
23321}
23322extern "C" {
23323    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_add_nconf_sk"]
23324    pub fn X509V3_EXT_add_nconf_sk(
23325        conf: *const CONF,
23326        ctx: *const X509V3_CTX,
23327        section: *const ::std::os::raw::c_char,
23328        sk: *mut *mut stack_st_X509_EXTENSION,
23329    ) -> ::std::os::raw::c_int;
23330}
23331extern "C" {
23332    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_add_nconf"]
23333    pub fn X509V3_EXT_add_nconf(
23334        conf: *const CONF,
23335        ctx: *const X509V3_CTX,
23336        section: *const ::std::os::raw::c_char,
23337        cert: *mut X509,
23338    ) -> ::std::os::raw::c_int;
23339}
23340extern "C" {
23341    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_REQ_add_nconf"]
23342    pub fn X509V3_EXT_REQ_add_nconf(
23343        conf: *const CONF,
23344        ctx: *const X509V3_CTX,
23345        section: *const ::std::os::raw::c_char,
23346        req: *mut X509_REQ,
23347    ) -> ::std::os::raw::c_int;
23348}
23349extern "C" {
23350    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_CRL_add_nconf"]
23351    pub fn X509V3_EXT_CRL_add_nconf(
23352        conf: *const CONF,
23353        ctx: *const X509V3_CTX,
23354        section: *const ::std::os::raw::c_char,
23355        crl: *mut X509_CRL,
23356    ) -> ::std::os::raw::c_int;
23357}
23358extern "C" {
23359    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_EXT_conf"]
23360    pub fn X509V3_EXT_conf(
23361        conf: *mut lhash_st_CONF_VALUE,
23362        ctx: *mut X509V3_CTX,
23363        name: *const ::std::os::raw::c_char,
23364        value: *const ::std::os::raw::c_char,
23365    ) -> *mut X509_EXTENSION;
23366}
23367extern "C" {
23368    #[link_name = "\u{1}aws_lc_0_37_0_i2s_ASN1_OCTET_STRING"]
23369    pub fn i2s_ASN1_OCTET_STRING(
23370        method: *const X509V3_EXT_METHOD,
23371        oct: *const ASN1_OCTET_STRING,
23372    ) -> *mut ::std::os::raw::c_char;
23373}
23374extern "C" {
23375    #[link_name = "\u{1}aws_lc_0_37_0_s2i_ASN1_OCTET_STRING"]
23376    pub fn s2i_ASN1_OCTET_STRING(
23377        method: *const X509V3_EXT_METHOD,
23378        ctx: *const X509V3_CTX,
23379        str_: *const ::std::os::raw::c_char,
23380    ) -> *mut ASN1_OCTET_STRING;
23381}
23382extern "C" {
23383    #[link_name = "\u{1}aws_lc_0_37_0_i2s_ASN1_INTEGER"]
23384    pub fn i2s_ASN1_INTEGER(
23385        method: *const X509V3_EXT_METHOD,
23386        aint: *const ASN1_INTEGER,
23387    ) -> *mut ::std::os::raw::c_char;
23388}
23389extern "C" {
23390    #[link_name = "\u{1}aws_lc_0_37_0_s2i_ASN1_INTEGER"]
23391    pub fn s2i_ASN1_INTEGER(
23392        method: *const X509V3_EXT_METHOD,
23393        value: *const ::std::os::raw::c_char,
23394    ) -> *mut ASN1_INTEGER;
23395}
23396extern "C" {
23397    #[link_name = "\u{1}aws_lc_0_37_0_i2s_ASN1_ENUMERATED"]
23398    pub fn i2s_ASN1_ENUMERATED(
23399        method: *const X509V3_EXT_METHOD,
23400        aint: *const ASN1_ENUMERATED,
23401    ) -> *mut ::std::os::raw::c_char;
23402}
23403extern "C" {
23404    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_conf_free"]
23405    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
23406}
23407extern "C" {
23408    #[link_name = "\u{1}aws_lc_0_37_0_i2v_GENERAL_NAME"]
23409    pub fn i2v_GENERAL_NAME(
23410        method: *const X509V3_EXT_METHOD,
23411        gen_: *const GENERAL_NAME,
23412        ret: *mut stack_st_CONF_VALUE,
23413    ) -> *mut stack_st_CONF_VALUE;
23414}
23415extern "C" {
23416    #[link_name = "\u{1}aws_lc_0_37_0_i2v_GENERAL_NAMES"]
23417    pub fn i2v_GENERAL_NAMES(
23418        method: *const X509V3_EXT_METHOD,
23419        gen_: *const GENERAL_NAMES,
23420        extlist: *mut stack_st_CONF_VALUE,
23421    ) -> *mut stack_st_CONF_VALUE;
23422}
23423extern "C" {
23424    #[link_name = "\u{1}aws_lc_0_37_0_a2i_IPADDRESS"]
23425    pub fn a2i_IPADDRESS(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23426}
23427extern "C" {
23428    #[link_name = "\u{1}aws_lc_0_37_0_a2i_IPADDRESS_NC"]
23429    pub fn a2i_IPADDRESS_NC(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23430}
23431extern "C" {
23432    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_notBefore"]
23433    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
23434}
23435extern "C" {
23436    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_notAfter"]
23437    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
23438}
23439extern "C" {
23440    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_notBefore"]
23441    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23442}
23443extern "C" {
23444    #[link_name = "\u{1}aws_lc_0_37_0_X509_set_notAfter"]
23445    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23446}
23447extern "C" {
23448    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_lastUpdate"]
23449    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23450}
23451extern "C" {
23452    #[link_name = "\u{1}aws_lc_0_37_0_X509_CRL_get_nextUpdate"]
23453    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23454}
23455extern "C" {
23456    #[link_name = "\u{1}aws_lc_0_37_0_X509_get_serialNumber"]
23457    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
23458}
23459extern "C" {
23460    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get_text_by_OBJ"]
23461    pub fn X509_NAME_get_text_by_OBJ(
23462        name: *const X509_NAME,
23463        obj: *const ASN1_OBJECT,
23464        buf: *mut ::std::os::raw::c_char,
23465        len: ::std::os::raw::c_int,
23466    ) -> ::std::os::raw::c_int;
23467}
23468extern "C" {
23469    #[link_name = "\u{1}aws_lc_0_37_0_X509_NAME_get_text_by_NID"]
23470    pub fn X509_NAME_get_text_by_NID(
23471        name: *const X509_NAME,
23472        nid: ::std::os::raw::c_int,
23473        buf: *mut ::std::os::raw::c_char,
23474        len: ::std::os::raw::c_int,
23475    ) -> ::std::os::raw::c_int;
23476}
23477extern "C" {
23478    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get0_parent_ctx"]
23479    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE_CTX;
23480}
23481extern "C" {
23482    #[link_name = "\u{1}aws_lc_0_37_0_X509_LOOKUP_free"]
23483    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
23484}
23485extern "C" {
23486    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_cleanup"]
23487    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
23488}
23489extern "C" {
23490    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_add_standard_extensions"]
23491    pub fn X509V3_add_standard_extensions() -> ::std::os::raw::c_int;
23492}
23493extern "C" {
23494    #[link_name = "\u{1}aws_lc_0_37_0_X509V3_parse_list"]
23495    pub fn X509V3_parse_list(line: *const ::std::os::raw::c_char) -> *mut stack_st_CONF_VALUE;
23496}
23497extern "C" {
23498    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_chain"]
23499    pub fn X509_STORE_CTX_get_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
23500}
23501extern "C" {
23502    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_trusted_stack"]
23503    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23504}
23505pub type X509_STORE_CTX_verify_cb = ::std::option::Option<
23506    unsafe extern "C" fn(
23507        arg1: ::std::os::raw::c_int,
23508        arg2: *mut X509_STORE_CTX,
23509    ) -> ::std::os::raw::c_int,
23510>;
23511extern "C" {
23512    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_verify_cb"]
23513    pub fn X509_STORE_CTX_set_verify_cb(
23514        ctx: *mut X509_STORE_CTX,
23515        verify_cb: ::std::option::Option<
23516            unsafe extern "C" fn(
23517                ok: ::std::os::raw::c_int,
23518                ctx: *mut X509_STORE_CTX,
23519            ) -> ::std::os::raw::c_int,
23520        >,
23521    );
23522}
23523extern "C" {
23524    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get_verify_cb"]
23525    pub fn X509_STORE_get_verify_cb(ctx: *mut X509_STORE) -> X509_STORE_CTX_verify_cb;
23526}
23527extern "C" {
23528    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_verify_cb"]
23529    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
23530}
23531pub type X509_STORE_CTX_get_crl_fn = ::std::option::Option<
23532    unsafe extern "C" fn(
23533        ctx: *mut X509_STORE_CTX,
23534        crl: *mut *mut X509_CRL,
23535        x: *mut X509,
23536    ) -> ::std::os::raw::c_int,
23537>;
23538pub type X509_STORE_CTX_check_crl_fn = ::std::option::Option<
23539    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, crl: *mut X509_CRL) -> ::std::os::raw::c_int,
23540>;
23541extern "C" {
23542    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_get_crl"]
23543    pub fn X509_STORE_set_get_crl(store: *mut X509_STORE, get_crl: X509_STORE_CTX_get_crl_fn);
23544}
23545extern "C" {
23546    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_set_check_crl"]
23547    pub fn X509_STORE_set_check_crl(store: *mut X509_STORE, check_crl: X509_STORE_CTX_check_crl_fn);
23548}
23549extern "C" {
23550    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set_chain"]
23551    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23552}
23553extern "C" {
23554    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_set0_untrusted"]
23555    pub fn X509_STORE_CTX_set0_untrusted(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23556}
23557#[repr(C)]
23558#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23559pub struct x509_purpose_st {
23560    pub purpose: ::std::os::raw::c_int,
23561    pub trust: ::std::os::raw::c_int,
23562    pub flags: ::std::os::raw::c_int,
23563    pub check_purpose: ::std::option::Option<
23564        unsafe extern "C" fn(
23565            arg1: *const x509_purpose_st,
23566            arg2: *const X509,
23567            arg3: ::std::os::raw::c_int,
23568        ) -> ::std::os::raw::c_int,
23569    >,
23570    pub name: *mut ::std::os::raw::c_char,
23571    pub sname: *mut ::std::os::raw::c_char,
23572    pub usr_data: *mut ::std::os::raw::c_void,
23573}
23574#[test]
23575fn bindgen_test_layout_x509_purpose_st() {
23576    const UNINIT: ::std::mem::MaybeUninit<x509_purpose_st> = ::std::mem::MaybeUninit::uninit();
23577    let ptr = UNINIT.as_ptr();
23578    assert_eq!(
23579        ::std::mem::size_of::<x509_purpose_st>(),
23580        48usize,
23581        "Size of x509_purpose_st"
23582    );
23583    assert_eq!(
23584        ::std::mem::align_of::<x509_purpose_st>(),
23585        8usize,
23586        "Alignment of x509_purpose_st"
23587    );
23588    assert_eq!(
23589        unsafe { ::std::ptr::addr_of!((*ptr).purpose) as usize - ptr as usize },
23590        0usize,
23591        "Offset of field: x509_purpose_st::purpose"
23592    );
23593    assert_eq!(
23594        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23595        4usize,
23596        "Offset of field: x509_purpose_st::trust"
23597    );
23598    assert_eq!(
23599        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23600        8usize,
23601        "Offset of field: x509_purpose_st::flags"
23602    );
23603    assert_eq!(
23604        unsafe { ::std::ptr::addr_of!((*ptr).check_purpose) as usize - ptr as usize },
23605        16usize,
23606        "Offset of field: x509_purpose_st::check_purpose"
23607    );
23608    assert_eq!(
23609        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23610        24usize,
23611        "Offset of field: x509_purpose_st::name"
23612    );
23613    assert_eq!(
23614        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
23615        32usize,
23616        "Offset of field: x509_purpose_st::sname"
23617    );
23618    assert_eq!(
23619        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23620        40usize,
23621        "Offset of field: x509_purpose_st::usr_data"
23622    );
23623}
23624impl Default for x509_purpose_st {
23625    fn default() -> Self {
23626        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23627        unsafe {
23628            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23629            s.assume_init()
23630        }
23631    }
23632}
23633pub type X509_PURPOSE = x509_purpose_st;
23634#[repr(C)]
23635#[derive(Debug, Copy, Clone)]
23636pub struct stack_st_X509_PURPOSE {
23637    _unused: [u8; 0],
23638}
23639pub type sk_X509_PURPOSE_free_func =
23640    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_PURPOSE)>;
23641pub type sk_X509_PURPOSE_copy_func =
23642    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_PURPOSE) -> *mut X509_PURPOSE>;
23643pub type sk_X509_PURPOSE_cmp_func = ::std::option::Option<
23644    unsafe extern "C" fn(
23645        arg1: *const *const X509_PURPOSE,
23646        arg2: *const *const X509_PURPOSE,
23647    ) -> ::std::os::raw::c_int,
23648>;
23649pub type sk_X509_PURPOSE_delete_if_func = ::std::option::Option<
23650    unsafe extern "C" fn(
23651        arg1: *mut X509_PURPOSE,
23652        arg2: *mut ::std::os::raw::c_void,
23653    ) -> ::std::os::raw::c_int,
23654>;
23655extern "C" {
23656    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_get0_objects"]
23657    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
23658}
23659extern "C" {
23660    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get_by_sname"]
23661    pub fn X509_PURPOSE_get_by_sname(sname: *const ::std::os::raw::c_char)
23662        -> ::std::os::raw::c_int;
23663}
23664extern "C" {
23665    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get0"]
23666    pub fn X509_PURPOSE_get0(id: ::std::os::raw::c_int) -> *const X509_PURPOSE;
23667}
23668extern "C" {
23669    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get_id"]
23670    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::std::os::raw::c_int;
23671}
23672#[repr(C)]
23673#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23674pub struct X509_algor_st {
23675    pub algorithm: *mut ASN1_OBJECT,
23676    pub parameter: *mut ASN1_TYPE,
23677}
23678#[test]
23679fn bindgen_test_layout_X509_algor_st() {
23680    const UNINIT: ::std::mem::MaybeUninit<X509_algor_st> = ::std::mem::MaybeUninit::uninit();
23681    let ptr = UNINIT.as_ptr();
23682    assert_eq!(
23683        ::std::mem::size_of::<X509_algor_st>(),
23684        16usize,
23685        "Size of X509_algor_st"
23686    );
23687    assert_eq!(
23688        ::std::mem::align_of::<X509_algor_st>(),
23689        8usize,
23690        "Alignment of X509_algor_st"
23691    );
23692    assert_eq!(
23693        unsafe { ::std::ptr::addr_of!((*ptr).algorithm) as usize - ptr as usize },
23694        0usize,
23695        "Offset of field: X509_algor_st::algorithm"
23696    );
23697    assert_eq!(
23698        unsafe { ::std::ptr::addr_of!((*ptr).parameter) as usize - ptr as usize },
23699        8usize,
23700        "Offset of field: X509_algor_st::parameter"
23701    );
23702}
23703impl Default for X509_algor_st {
23704    fn default() -> Self {
23705        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23706        unsafe {
23707            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23708            s.assume_init()
23709        }
23710    }
23711}
23712#[repr(C)]
23713#[derive(Debug, Copy, Clone)]
23714pub struct stack_st_DIST_POINT {
23715    _unused: [u8; 0],
23716}
23717#[repr(C)]
23718#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23719pub struct x509_trust_st {
23720    pub trust: ::std::os::raw::c_int,
23721    pub flags: ::std::os::raw::c_int,
23722    pub check_trust: ::std::option::Option<
23723        unsafe extern "C" fn(arg1: *const X509_TRUST, arg2: *mut X509) -> ::std::os::raw::c_int,
23724    >,
23725    pub name: *mut ::std::os::raw::c_char,
23726    pub arg1: ::std::os::raw::c_int,
23727    pub arg2: *mut ::std::os::raw::c_void,
23728}
23729#[test]
23730fn bindgen_test_layout_x509_trust_st() {
23731    const UNINIT: ::std::mem::MaybeUninit<x509_trust_st> = ::std::mem::MaybeUninit::uninit();
23732    let ptr = UNINIT.as_ptr();
23733    assert_eq!(
23734        ::std::mem::size_of::<x509_trust_st>(),
23735        40usize,
23736        "Size of x509_trust_st"
23737    );
23738    assert_eq!(
23739        ::std::mem::align_of::<x509_trust_st>(),
23740        8usize,
23741        "Alignment of x509_trust_st"
23742    );
23743    assert_eq!(
23744        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23745        0usize,
23746        "Offset of field: x509_trust_st::trust"
23747    );
23748    assert_eq!(
23749        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23750        4usize,
23751        "Offset of field: x509_trust_st::flags"
23752    );
23753    assert_eq!(
23754        unsafe { ::std::ptr::addr_of!((*ptr).check_trust) as usize - ptr as usize },
23755        8usize,
23756        "Offset of field: x509_trust_st::check_trust"
23757    );
23758    assert_eq!(
23759        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23760        16usize,
23761        "Offset of field: x509_trust_st::name"
23762    );
23763    assert_eq!(
23764        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
23765        24usize,
23766        "Offset of field: x509_trust_st::arg1"
23767    );
23768    assert_eq!(
23769        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
23770        32usize,
23771        "Offset of field: x509_trust_st::arg2"
23772    );
23773}
23774impl Default for x509_trust_st {
23775    fn default() -> Self {
23776        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23777        unsafe {
23778            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23779            s.assume_init()
23780        }
23781    }
23782}
23783#[repr(C)]
23784#[derive(Debug, Copy, Clone)]
23785pub struct stack_st_X509_TRUST {
23786    _unused: [u8; 0],
23787}
23788pub type sk_X509_TRUST_free_func =
23789    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_TRUST)>;
23790pub type sk_X509_TRUST_copy_func =
23791    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_TRUST) -> *mut X509_TRUST>;
23792pub type sk_X509_TRUST_cmp_func = ::std::option::Option<
23793    unsafe extern "C" fn(
23794        arg1: *const *const X509_TRUST,
23795        arg2: *const *const X509_TRUST,
23796    ) -> ::std::os::raw::c_int,
23797>;
23798pub type sk_X509_TRUST_delete_if_func = ::std::option::Option<
23799    unsafe extern "C" fn(
23800        arg1: *mut X509_TRUST,
23801        arg2: *mut ::std::os::raw::c_void,
23802    ) -> ::std::os::raw::c_int,
23803>;
23804extern "C" {
23805    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_set"]
23806    pub fn X509_TRUST_set(
23807        t: *mut ::std::os::raw::c_int,
23808        trust: ::std::os::raw::c_int,
23809    ) -> ::std::os::raw::c_int;
23810}
23811extern "C" {
23812    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get_count"]
23813    pub fn X509_TRUST_get_count() -> ::std::os::raw::c_int;
23814}
23815extern "C" {
23816    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get0"]
23817    pub fn X509_TRUST_get0(idx: ::std::os::raw::c_int) -> *const X509_TRUST;
23818}
23819extern "C" {
23820    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get_by_id"]
23821    pub fn X509_TRUST_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
23822}
23823extern "C" {
23824    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get_flags"]
23825    pub fn X509_TRUST_get_flags(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23826}
23827extern "C" {
23828    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get0_name"]
23829    pub fn X509_TRUST_get0_name(xp: *const X509_TRUST) -> *mut ::std::os::raw::c_char;
23830}
23831extern "C" {
23832    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_get_trust"]
23833    pub fn X509_TRUST_get_trust(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23834}
23835extern "C" {
23836    #[link_name = "\u{1}aws_lc_0_37_0_X509_TRUST_cleanup"]
23837    pub fn X509_TRUST_cleanup();
23838}
23839extern "C" {
23840    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_get0_X509_CRL"]
23841    pub fn X509_OBJECT_get0_X509_CRL(a: *const X509_OBJECT) -> *mut X509_CRL;
23842}
23843extern "C" {
23844    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_set1_X509"]
23845    pub fn X509_OBJECT_set1_X509(a: *mut X509_OBJECT, obj: *mut X509) -> ::std::os::raw::c_int;
23846}
23847extern "C" {
23848    #[link_name = "\u{1}aws_lc_0_37_0_X509_OBJECT_set1_X509_CRL"]
23849    pub fn X509_OBJECT_set1_X509_CRL(
23850        a: *mut X509_OBJECT,
23851        obj: *mut X509_CRL,
23852    ) -> ::std::os::raw::c_int;
23853}
23854extern "C" {
23855    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_lock"]
23856    pub fn X509_STORE_lock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23857}
23858extern "C" {
23859    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_unlock"]
23860    pub fn X509_STORE_unlock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23861}
23862extern "C" {
23863    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get1_certs"]
23864    pub fn X509_STORE_CTX_get1_certs(
23865        st: *mut X509_STORE_CTX,
23866        nm: *mut X509_NAME,
23867    ) -> *mut stack_st_X509;
23868}
23869extern "C" {
23870    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get1_crls"]
23871    pub fn X509_STORE_CTX_get1_crls(
23872        st: *mut X509_STORE_CTX,
23873        nm: *mut X509_NAME,
23874    ) -> *mut stack_st_X509_CRL;
23875}
23876extern "C" {
23877    #[link_name = "\u{1}aws_lc_0_37_0_X509_STORE_CTX_get_by_subject"]
23878    pub fn X509_STORE_CTX_get_by_subject(
23879        vs: *mut X509_STORE_CTX,
23880        type_: ::std::os::raw::c_int,
23881        name: *mut X509_NAME,
23882        ret: *mut X509_OBJECT,
23883    ) -> ::std::os::raw::c_int;
23884}
23885#[repr(C)]
23886#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23887pub struct BASIC_CONSTRAINTS_st {
23888    pub ca: ASN1_BOOLEAN,
23889    pub pathlen: *mut ASN1_INTEGER,
23890}
23891#[test]
23892fn bindgen_test_layout_BASIC_CONSTRAINTS_st() {
23893    const UNINIT: ::std::mem::MaybeUninit<BASIC_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
23894    let ptr = UNINIT.as_ptr();
23895    assert_eq!(
23896        ::std::mem::size_of::<BASIC_CONSTRAINTS_st>(),
23897        16usize,
23898        "Size of BASIC_CONSTRAINTS_st"
23899    );
23900    assert_eq!(
23901        ::std::mem::align_of::<BASIC_CONSTRAINTS_st>(),
23902        8usize,
23903        "Alignment of BASIC_CONSTRAINTS_st"
23904    );
23905    assert_eq!(
23906        unsafe { ::std::ptr::addr_of!((*ptr).ca) as usize - ptr as usize },
23907        0usize,
23908        "Offset of field: BASIC_CONSTRAINTS_st::ca"
23909    );
23910    assert_eq!(
23911        unsafe { ::std::ptr::addr_of!((*ptr).pathlen) as usize - ptr as usize },
23912        8usize,
23913        "Offset of field: BASIC_CONSTRAINTS_st::pathlen"
23914    );
23915}
23916impl Default for BASIC_CONSTRAINTS_st {
23917    fn default() -> Self {
23918        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23919        unsafe {
23920            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23921            s.assume_init()
23922        }
23923    }
23924}
23925#[repr(C)]
23926#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23927pub struct ACCESS_DESCRIPTION_st {
23928    pub method: *mut ASN1_OBJECT,
23929    pub location: *mut GENERAL_NAME,
23930}
23931#[test]
23932fn bindgen_test_layout_ACCESS_DESCRIPTION_st() {
23933    const UNINIT: ::std::mem::MaybeUninit<ACCESS_DESCRIPTION_st> =
23934        ::std::mem::MaybeUninit::uninit();
23935    let ptr = UNINIT.as_ptr();
23936    assert_eq!(
23937        ::std::mem::size_of::<ACCESS_DESCRIPTION_st>(),
23938        16usize,
23939        "Size of ACCESS_DESCRIPTION_st"
23940    );
23941    assert_eq!(
23942        ::std::mem::align_of::<ACCESS_DESCRIPTION_st>(),
23943        8usize,
23944        "Alignment of ACCESS_DESCRIPTION_st"
23945    );
23946    assert_eq!(
23947        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
23948        0usize,
23949        "Offset of field: ACCESS_DESCRIPTION_st::method"
23950    );
23951    assert_eq!(
23952        unsafe { ::std::ptr::addr_of!((*ptr).location) as usize - ptr as usize },
23953        8usize,
23954        "Offset of field: ACCESS_DESCRIPTION_st::location"
23955    );
23956}
23957impl Default for ACCESS_DESCRIPTION_st {
23958    fn default() -> Self {
23959        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23960        unsafe {
23961            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23962            s.assume_init()
23963        }
23964    }
23965}
23966pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
23967#[repr(C)]
23968#[derive(Debug, Copy, Clone)]
23969pub struct stack_st_ACCESS_DESCRIPTION {
23970    _unused: [u8; 0],
23971}
23972pub type sk_ACCESS_DESCRIPTION_free_func =
23973    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
23974pub type sk_ACCESS_DESCRIPTION_copy_func = ::std::option::Option<
23975    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
23976>;
23977pub type sk_ACCESS_DESCRIPTION_cmp_func = ::std::option::Option<
23978    unsafe extern "C" fn(
23979        arg1: *const *const ACCESS_DESCRIPTION,
23980        arg2: *const *const ACCESS_DESCRIPTION,
23981    ) -> ::std::os::raw::c_int,
23982>;
23983pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::std::option::Option<
23984    unsafe extern "C" fn(
23985        arg1: *mut ACCESS_DESCRIPTION,
23986        arg2: *mut ::std::os::raw::c_void,
23987    ) -> ::std::os::raw::c_int,
23988>;
23989pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
23990pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
23991#[repr(C)]
23992#[derive(Copy, Clone)]
23993pub struct DIST_POINT_NAME_st {
23994    pub type_: ::std::os::raw::c_int,
23995    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
23996    pub dpname: *mut X509_NAME,
23997}
23998#[repr(C)]
23999#[derive(Copy, Clone)]
24000pub union DIST_POINT_NAME_st__bindgen_ty_1 {
24001    pub fullname: *mut GENERAL_NAMES,
24002    pub relativename: *mut stack_st_X509_NAME_ENTRY,
24003}
24004#[test]
24005fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
24006    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st__bindgen_ty_1> =
24007        ::std::mem::MaybeUninit::uninit();
24008    let ptr = UNINIT.as_ptr();
24009    assert_eq!(
24010        ::std::mem::size_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24011        8usize,
24012        "Size of DIST_POINT_NAME_st__bindgen_ty_1"
24013    );
24014    assert_eq!(
24015        ::std::mem::align_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24016        8usize,
24017        "Alignment of DIST_POINT_NAME_st__bindgen_ty_1"
24018    );
24019    assert_eq!(
24020        unsafe { ::std::ptr::addr_of!((*ptr).fullname) as usize - ptr as usize },
24021        0usize,
24022        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::fullname"
24023    );
24024    assert_eq!(
24025        unsafe { ::std::ptr::addr_of!((*ptr).relativename) as usize - ptr as usize },
24026        0usize,
24027        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::relativename"
24028    );
24029}
24030impl Default for DIST_POINT_NAME_st__bindgen_ty_1 {
24031    fn default() -> Self {
24032        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24033        unsafe {
24034            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24035            s.assume_init()
24036        }
24037    }
24038}
24039#[test]
24040fn bindgen_test_layout_DIST_POINT_NAME_st() {
24041    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st> = ::std::mem::MaybeUninit::uninit();
24042    let ptr = UNINIT.as_ptr();
24043    assert_eq!(
24044        ::std::mem::size_of::<DIST_POINT_NAME_st>(),
24045        24usize,
24046        "Size of DIST_POINT_NAME_st"
24047    );
24048    assert_eq!(
24049        ::std::mem::align_of::<DIST_POINT_NAME_st>(),
24050        8usize,
24051        "Alignment of DIST_POINT_NAME_st"
24052    );
24053    assert_eq!(
24054        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
24055        0usize,
24056        "Offset of field: DIST_POINT_NAME_st::type_"
24057    );
24058    assert_eq!(
24059        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
24060        8usize,
24061        "Offset of field: DIST_POINT_NAME_st::name"
24062    );
24063    assert_eq!(
24064        unsafe { ::std::ptr::addr_of!((*ptr).dpname) as usize - ptr as usize },
24065        16usize,
24066        "Offset of field: DIST_POINT_NAME_st::dpname"
24067    );
24068}
24069impl Default for DIST_POINT_NAME_st {
24070    fn default() -> Self {
24071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24072        unsafe {
24073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24074            s.assume_init()
24075        }
24076    }
24077}
24078pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
24079#[repr(C)]
24080#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24081pub struct DIST_POINT_st {
24082    pub distpoint: *mut DIST_POINT_NAME,
24083    pub reasons: *mut ASN1_BIT_STRING,
24084    pub CRLissuer: *mut GENERAL_NAMES,
24085}
24086#[test]
24087fn bindgen_test_layout_DIST_POINT_st() {
24088    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_st> = ::std::mem::MaybeUninit::uninit();
24089    let ptr = UNINIT.as_ptr();
24090    assert_eq!(
24091        ::std::mem::size_of::<DIST_POINT_st>(),
24092        24usize,
24093        "Size of DIST_POINT_st"
24094    );
24095    assert_eq!(
24096        ::std::mem::align_of::<DIST_POINT_st>(),
24097        8usize,
24098        "Alignment of DIST_POINT_st"
24099    );
24100    assert_eq!(
24101        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24102        0usize,
24103        "Offset of field: DIST_POINT_st::distpoint"
24104    );
24105    assert_eq!(
24106        unsafe { ::std::ptr::addr_of!((*ptr).reasons) as usize - ptr as usize },
24107        8usize,
24108        "Offset of field: DIST_POINT_st::reasons"
24109    );
24110    assert_eq!(
24111        unsafe { ::std::ptr::addr_of!((*ptr).CRLissuer) as usize - ptr as usize },
24112        16usize,
24113        "Offset of field: DIST_POINT_st::CRLissuer"
24114    );
24115}
24116impl Default for DIST_POINT_st {
24117    fn default() -> Self {
24118        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24119        unsafe {
24120            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24121            s.assume_init()
24122        }
24123    }
24124}
24125pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
24126pub type sk_DIST_POINT_free_func =
24127    ::std::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
24128pub type sk_DIST_POINT_copy_func =
24129    ::std::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
24130pub type sk_DIST_POINT_cmp_func = ::std::option::Option<
24131    unsafe extern "C" fn(
24132        arg1: *const *const DIST_POINT,
24133        arg2: *const *const DIST_POINT,
24134    ) -> ::std::os::raw::c_int,
24135>;
24136pub type sk_DIST_POINT_delete_if_func = ::std::option::Option<
24137    unsafe extern "C" fn(
24138        arg1: *mut DIST_POINT,
24139        arg2: *mut ::std::os::raw::c_void,
24140    ) -> ::std::os::raw::c_int,
24141>;
24142#[repr(C)]
24143#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24144pub struct AUTHORITY_KEYID_st {
24145    pub keyid: *mut ASN1_OCTET_STRING,
24146    pub issuer: *mut GENERAL_NAMES,
24147    pub serial: *mut ASN1_INTEGER,
24148}
24149#[test]
24150fn bindgen_test_layout_AUTHORITY_KEYID_st() {
24151    const UNINIT: ::std::mem::MaybeUninit<AUTHORITY_KEYID_st> = ::std::mem::MaybeUninit::uninit();
24152    let ptr = UNINIT.as_ptr();
24153    assert_eq!(
24154        ::std::mem::size_of::<AUTHORITY_KEYID_st>(),
24155        24usize,
24156        "Size of AUTHORITY_KEYID_st"
24157    );
24158    assert_eq!(
24159        ::std::mem::align_of::<AUTHORITY_KEYID_st>(),
24160        8usize,
24161        "Alignment of AUTHORITY_KEYID_st"
24162    );
24163    assert_eq!(
24164        unsafe { ::std::ptr::addr_of!((*ptr).keyid) as usize - ptr as usize },
24165        0usize,
24166        "Offset of field: AUTHORITY_KEYID_st::keyid"
24167    );
24168    assert_eq!(
24169        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
24170        8usize,
24171        "Offset of field: AUTHORITY_KEYID_st::issuer"
24172    );
24173    assert_eq!(
24174        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
24175        16usize,
24176        "Offset of field: AUTHORITY_KEYID_st::serial"
24177    );
24178}
24179impl Default for AUTHORITY_KEYID_st {
24180    fn default() -> Self {
24181        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24182        unsafe {
24183            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24184            s.assume_init()
24185        }
24186    }
24187}
24188#[repr(C)]
24189#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24190pub struct NOTICEREF_st {
24191    pub organization: *mut ASN1_STRING,
24192    pub noticenos: *mut stack_st_ASN1_INTEGER,
24193}
24194#[test]
24195fn bindgen_test_layout_NOTICEREF_st() {
24196    const UNINIT: ::std::mem::MaybeUninit<NOTICEREF_st> = ::std::mem::MaybeUninit::uninit();
24197    let ptr = UNINIT.as_ptr();
24198    assert_eq!(
24199        ::std::mem::size_of::<NOTICEREF_st>(),
24200        16usize,
24201        "Size of NOTICEREF_st"
24202    );
24203    assert_eq!(
24204        ::std::mem::align_of::<NOTICEREF_st>(),
24205        8usize,
24206        "Alignment of NOTICEREF_st"
24207    );
24208    assert_eq!(
24209        unsafe { ::std::ptr::addr_of!((*ptr).organization) as usize - ptr as usize },
24210        0usize,
24211        "Offset of field: NOTICEREF_st::organization"
24212    );
24213    assert_eq!(
24214        unsafe { ::std::ptr::addr_of!((*ptr).noticenos) as usize - ptr as usize },
24215        8usize,
24216        "Offset of field: NOTICEREF_st::noticenos"
24217    );
24218}
24219impl Default for NOTICEREF_st {
24220    fn default() -> Self {
24221        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24222        unsafe {
24223            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24224            s.assume_init()
24225        }
24226    }
24227}
24228pub type NOTICEREF = NOTICEREF_st;
24229#[repr(C)]
24230#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24231pub struct USERNOTICE_st {
24232    pub noticeref: *mut NOTICEREF,
24233    pub exptext: *mut ASN1_STRING,
24234}
24235#[test]
24236fn bindgen_test_layout_USERNOTICE_st() {
24237    const UNINIT: ::std::mem::MaybeUninit<USERNOTICE_st> = ::std::mem::MaybeUninit::uninit();
24238    let ptr = UNINIT.as_ptr();
24239    assert_eq!(
24240        ::std::mem::size_of::<USERNOTICE_st>(),
24241        16usize,
24242        "Size of USERNOTICE_st"
24243    );
24244    assert_eq!(
24245        ::std::mem::align_of::<USERNOTICE_st>(),
24246        8usize,
24247        "Alignment of USERNOTICE_st"
24248    );
24249    assert_eq!(
24250        unsafe { ::std::ptr::addr_of!((*ptr).noticeref) as usize - ptr as usize },
24251        0usize,
24252        "Offset of field: USERNOTICE_st::noticeref"
24253    );
24254    assert_eq!(
24255        unsafe { ::std::ptr::addr_of!((*ptr).exptext) as usize - ptr as usize },
24256        8usize,
24257        "Offset of field: USERNOTICE_st::exptext"
24258    );
24259}
24260impl Default for USERNOTICE_st {
24261    fn default() -> Self {
24262        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24263        unsafe {
24264            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24265            s.assume_init()
24266        }
24267    }
24268}
24269pub type USERNOTICE = USERNOTICE_st;
24270#[repr(C)]
24271#[derive(Copy, Clone)]
24272pub struct POLICYQUALINFO_st {
24273    pub pqualid: *mut ASN1_OBJECT,
24274    pub d: POLICYQUALINFO_st__bindgen_ty_1,
24275}
24276#[repr(C)]
24277#[derive(Copy, Clone)]
24278pub union POLICYQUALINFO_st__bindgen_ty_1 {
24279    pub cpsuri: *mut ASN1_IA5STRING,
24280    pub usernotice: *mut USERNOTICE,
24281    pub other: *mut ASN1_TYPE,
24282}
24283#[test]
24284fn bindgen_test_layout_POLICYQUALINFO_st__bindgen_ty_1() {
24285    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st__bindgen_ty_1> =
24286        ::std::mem::MaybeUninit::uninit();
24287    let ptr = UNINIT.as_ptr();
24288    assert_eq!(
24289        ::std::mem::size_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24290        8usize,
24291        "Size of POLICYQUALINFO_st__bindgen_ty_1"
24292    );
24293    assert_eq!(
24294        ::std::mem::align_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24295        8usize,
24296        "Alignment of POLICYQUALINFO_st__bindgen_ty_1"
24297    );
24298    assert_eq!(
24299        unsafe { ::std::ptr::addr_of!((*ptr).cpsuri) as usize - ptr as usize },
24300        0usize,
24301        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::cpsuri"
24302    );
24303    assert_eq!(
24304        unsafe { ::std::ptr::addr_of!((*ptr).usernotice) as usize - ptr as usize },
24305        0usize,
24306        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::usernotice"
24307    );
24308    assert_eq!(
24309        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
24310        0usize,
24311        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::other"
24312    );
24313}
24314impl Default for POLICYQUALINFO_st__bindgen_ty_1 {
24315    fn default() -> Self {
24316        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24317        unsafe {
24318            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24319            s.assume_init()
24320        }
24321    }
24322}
24323#[test]
24324fn bindgen_test_layout_POLICYQUALINFO_st() {
24325    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st> = ::std::mem::MaybeUninit::uninit();
24326    let ptr = UNINIT.as_ptr();
24327    assert_eq!(
24328        ::std::mem::size_of::<POLICYQUALINFO_st>(),
24329        16usize,
24330        "Size of POLICYQUALINFO_st"
24331    );
24332    assert_eq!(
24333        ::std::mem::align_of::<POLICYQUALINFO_st>(),
24334        8usize,
24335        "Alignment of POLICYQUALINFO_st"
24336    );
24337    assert_eq!(
24338        unsafe { ::std::ptr::addr_of!((*ptr).pqualid) as usize - ptr as usize },
24339        0usize,
24340        "Offset of field: POLICYQUALINFO_st::pqualid"
24341    );
24342    assert_eq!(
24343        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
24344        8usize,
24345        "Offset of field: POLICYQUALINFO_st::d"
24346    );
24347}
24348impl Default for POLICYQUALINFO_st {
24349    fn default() -> Self {
24350        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24351        unsafe {
24352            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24353            s.assume_init()
24354        }
24355    }
24356}
24357pub type POLICYQUALINFO = POLICYQUALINFO_st;
24358#[repr(C)]
24359#[derive(Debug, Copy, Clone)]
24360pub struct stack_st_POLICYQUALINFO {
24361    _unused: [u8; 0],
24362}
24363pub type sk_POLICYQUALINFO_free_func =
24364    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
24365pub type sk_POLICYQUALINFO_copy_func =
24366    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO>;
24367pub type sk_POLICYQUALINFO_cmp_func = ::std::option::Option<
24368    unsafe extern "C" fn(
24369        arg1: *const *const POLICYQUALINFO,
24370        arg2: *const *const POLICYQUALINFO,
24371    ) -> ::std::os::raw::c_int,
24372>;
24373pub type sk_POLICYQUALINFO_delete_if_func = ::std::option::Option<
24374    unsafe extern "C" fn(
24375        arg1: *mut POLICYQUALINFO,
24376        arg2: *mut ::std::os::raw::c_void,
24377    ) -> ::std::os::raw::c_int,
24378>;
24379#[repr(C)]
24380#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24381pub struct POLICYINFO_st {
24382    pub policyid: *mut ASN1_OBJECT,
24383    pub qualifiers: *mut stack_st_POLICYQUALINFO,
24384}
24385#[test]
24386fn bindgen_test_layout_POLICYINFO_st() {
24387    const UNINIT: ::std::mem::MaybeUninit<POLICYINFO_st> = ::std::mem::MaybeUninit::uninit();
24388    let ptr = UNINIT.as_ptr();
24389    assert_eq!(
24390        ::std::mem::size_of::<POLICYINFO_st>(),
24391        16usize,
24392        "Size of POLICYINFO_st"
24393    );
24394    assert_eq!(
24395        ::std::mem::align_of::<POLICYINFO_st>(),
24396        8usize,
24397        "Alignment of POLICYINFO_st"
24398    );
24399    assert_eq!(
24400        unsafe { ::std::ptr::addr_of!((*ptr).policyid) as usize - ptr as usize },
24401        0usize,
24402        "Offset of field: POLICYINFO_st::policyid"
24403    );
24404    assert_eq!(
24405        unsafe { ::std::ptr::addr_of!((*ptr).qualifiers) as usize - ptr as usize },
24406        8usize,
24407        "Offset of field: POLICYINFO_st::qualifiers"
24408    );
24409}
24410impl Default for POLICYINFO_st {
24411    fn default() -> Self {
24412        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24413        unsafe {
24414            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24415            s.assume_init()
24416        }
24417    }
24418}
24419pub type POLICYINFO = POLICYINFO_st;
24420#[repr(C)]
24421#[derive(Debug, Copy, Clone)]
24422pub struct stack_st_POLICYINFO {
24423    _unused: [u8; 0],
24424}
24425pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
24426pub type sk_POLICYINFO_free_func =
24427    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
24428pub type sk_POLICYINFO_copy_func =
24429    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
24430pub type sk_POLICYINFO_cmp_func = ::std::option::Option<
24431    unsafe extern "C" fn(
24432        arg1: *const *const POLICYINFO,
24433        arg2: *const *const POLICYINFO,
24434    ) -> ::std::os::raw::c_int,
24435>;
24436pub type sk_POLICYINFO_delete_if_func = ::std::option::Option<
24437    unsafe extern "C" fn(
24438        arg1: *mut POLICYINFO,
24439        arg2: *mut ::std::os::raw::c_void,
24440    ) -> ::std::os::raw::c_int,
24441>;
24442#[repr(C)]
24443#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24444pub struct POLICY_MAPPING_st {
24445    pub issuerDomainPolicy: *mut ASN1_OBJECT,
24446    pub subjectDomainPolicy: *mut ASN1_OBJECT,
24447}
24448#[test]
24449fn bindgen_test_layout_POLICY_MAPPING_st() {
24450    const UNINIT: ::std::mem::MaybeUninit<POLICY_MAPPING_st> = ::std::mem::MaybeUninit::uninit();
24451    let ptr = UNINIT.as_ptr();
24452    assert_eq!(
24453        ::std::mem::size_of::<POLICY_MAPPING_st>(),
24454        16usize,
24455        "Size of POLICY_MAPPING_st"
24456    );
24457    assert_eq!(
24458        ::std::mem::align_of::<POLICY_MAPPING_st>(),
24459        8usize,
24460        "Alignment of POLICY_MAPPING_st"
24461    );
24462    assert_eq!(
24463        unsafe { ::std::ptr::addr_of!((*ptr).issuerDomainPolicy) as usize - ptr as usize },
24464        0usize,
24465        "Offset of field: POLICY_MAPPING_st::issuerDomainPolicy"
24466    );
24467    assert_eq!(
24468        unsafe { ::std::ptr::addr_of!((*ptr).subjectDomainPolicy) as usize - ptr as usize },
24469        8usize,
24470        "Offset of field: POLICY_MAPPING_st::subjectDomainPolicy"
24471    );
24472}
24473impl Default for POLICY_MAPPING_st {
24474    fn default() -> Self {
24475        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24476        unsafe {
24477            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24478            s.assume_init()
24479        }
24480    }
24481}
24482pub type POLICY_MAPPING = POLICY_MAPPING_st;
24483#[repr(C)]
24484#[derive(Debug, Copy, Clone)]
24485pub struct stack_st_POLICY_MAPPING {
24486    _unused: [u8; 0],
24487}
24488pub type sk_POLICY_MAPPING_free_func =
24489    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
24490pub type sk_POLICY_MAPPING_copy_func =
24491    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING>;
24492pub type sk_POLICY_MAPPING_cmp_func = ::std::option::Option<
24493    unsafe extern "C" fn(
24494        arg1: *const *const POLICY_MAPPING,
24495        arg2: *const *const POLICY_MAPPING,
24496    ) -> ::std::os::raw::c_int,
24497>;
24498pub type sk_POLICY_MAPPING_delete_if_func = ::std::option::Option<
24499    unsafe extern "C" fn(
24500        arg1: *mut POLICY_MAPPING,
24501        arg2: *mut ::std::os::raw::c_void,
24502    ) -> ::std::os::raw::c_int,
24503>;
24504pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
24505#[repr(C)]
24506#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24507pub struct GENERAL_SUBTREE_st {
24508    pub base: *mut GENERAL_NAME,
24509    pub minimum: *mut ASN1_INTEGER,
24510    pub maximum: *mut ASN1_INTEGER,
24511}
24512#[test]
24513fn bindgen_test_layout_GENERAL_SUBTREE_st() {
24514    const UNINIT: ::std::mem::MaybeUninit<GENERAL_SUBTREE_st> = ::std::mem::MaybeUninit::uninit();
24515    let ptr = UNINIT.as_ptr();
24516    assert_eq!(
24517        ::std::mem::size_of::<GENERAL_SUBTREE_st>(),
24518        24usize,
24519        "Size of GENERAL_SUBTREE_st"
24520    );
24521    assert_eq!(
24522        ::std::mem::align_of::<GENERAL_SUBTREE_st>(),
24523        8usize,
24524        "Alignment of GENERAL_SUBTREE_st"
24525    );
24526    assert_eq!(
24527        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
24528        0usize,
24529        "Offset of field: GENERAL_SUBTREE_st::base"
24530    );
24531    assert_eq!(
24532        unsafe { ::std::ptr::addr_of!((*ptr).minimum) as usize - ptr as usize },
24533        8usize,
24534        "Offset of field: GENERAL_SUBTREE_st::minimum"
24535    );
24536    assert_eq!(
24537        unsafe { ::std::ptr::addr_of!((*ptr).maximum) as usize - ptr as usize },
24538        16usize,
24539        "Offset of field: GENERAL_SUBTREE_st::maximum"
24540    );
24541}
24542impl Default for GENERAL_SUBTREE_st {
24543    fn default() -> Self {
24544        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24545        unsafe {
24546            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24547            s.assume_init()
24548        }
24549    }
24550}
24551pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
24552#[repr(C)]
24553#[derive(Debug, Copy, Clone)]
24554pub struct stack_st_GENERAL_SUBTREE {
24555    _unused: [u8; 0],
24556}
24557pub type sk_GENERAL_SUBTREE_free_func =
24558    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
24559pub type sk_GENERAL_SUBTREE_copy_func = ::std::option::Option<
24560    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
24561>;
24562pub type sk_GENERAL_SUBTREE_cmp_func = ::std::option::Option<
24563    unsafe extern "C" fn(
24564        arg1: *const *const GENERAL_SUBTREE,
24565        arg2: *const *const GENERAL_SUBTREE,
24566    ) -> ::std::os::raw::c_int,
24567>;
24568pub type sk_GENERAL_SUBTREE_delete_if_func = ::std::option::Option<
24569    unsafe extern "C" fn(
24570        arg1: *mut GENERAL_SUBTREE,
24571        arg2: *mut ::std::os::raw::c_void,
24572    ) -> ::std::os::raw::c_int,
24573>;
24574#[repr(C)]
24575#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24576pub struct NAME_CONSTRAINTS_st {
24577    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24578    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24579}
24580#[test]
24581fn bindgen_test_layout_NAME_CONSTRAINTS_st() {
24582    const UNINIT: ::std::mem::MaybeUninit<NAME_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
24583    let ptr = UNINIT.as_ptr();
24584    assert_eq!(
24585        ::std::mem::size_of::<NAME_CONSTRAINTS_st>(),
24586        16usize,
24587        "Size of NAME_CONSTRAINTS_st"
24588    );
24589    assert_eq!(
24590        ::std::mem::align_of::<NAME_CONSTRAINTS_st>(),
24591        8usize,
24592        "Alignment of NAME_CONSTRAINTS_st"
24593    );
24594    assert_eq!(
24595        unsafe { ::std::ptr::addr_of!((*ptr).permittedSubtrees) as usize - ptr as usize },
24596        0usize,
24597        "Offset of field: NAME_CONSTRAINTS_st::permittedSubtrees"
24598    );
24599    assert_eq!(
24600        unsafe { ::std::ptr::addr_of!((*ptr).excludedSubtrees) as usize - ptr as usize },
24601        8usize,
24602        "Offset of field: NAME_CONSTRAINTS_st::excludedSubtrees"
24603    );
24604}
24605impl Default for NAME_CONSTRAINTS_st {
24606    fn default() -> Self {
24607        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24608        unsafe {
24609            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24610            s.assume_init()
24611        }
24612    }
24613}
24614#[repr(C)]
24615#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24616pub struct POLICY_CONSTRAINTS_st {
24617    pub requireExplicitPolicy: *mut ASN1_INTEGER,
24618    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
24619}
24620#[test]
24621fn bindgen_test_layout_POLICY_CONSTRAINTS_st() {
24622    const UNINIT: ::std::mem::MaybeUninit<POLICY_CONSTRAINTS_st> =
24623        ::std::mem::MaybeUninit::uninit();
24624    let ptr = UNINIT.as_ptr();
24625    assert_eq!(
24626        ::std::mem::size_of::<POLICY_CONSTRAINTS_st>(),
24627        16usize,
24628        "Size of POLICY_CONSTRAINTS_st"
24629    );
24630    assert_eq!(
24631        ::std::mem::align_of::<POLICY_CONSTRAINTS_st>(),
24632        8usize,
24633        "Alignment of POLICY_CONSTRAINTS_st"
24634    );
24635    assert_eq!(
24636        unsafe { ::std::ptr::addr_of!((*ptr).requireExplicitPolicy) as usize - ptr as usize },
24637        0usize,
24638        "Offset of field: POLICY_CONSTRAINTS_st::requireExplicitPolicy"
24639    );
24640    assert_eq!(
24641        unsafe { ::std::ptr::addr_of!((*ptr).inhibitPolicyMapping) as usize - ptr as usize },
24642        8usize,
24643        "Offset of field: POLICY_CONSTRAINTS_st::inhibitPolicyMapping"
24644    );
24645}
24646impl Default for POLICY_CONSTRAINTS_st {
24647    fn default() -> Self {
24648        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24649        unsafe {
24650            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24651            s.assume_init()
24652        }
24653    }
24654}
24655pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
24656#[repr(C)]
24657#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24658pub struct ISSUING_DIST_POINT_st {
24659    pub distpoint: *mut DIST_POINT_NAME,
24660    pub onlyuser: ASN1_BOOLEAN,
24661    pub onlyCA: ASN1_BOOLEAN,
24662    pub onlysomereasons: *mut ASN1_BIT_STRING,
24663    pub indirectCRL: ASN1_BOOLEAN,
24664    pub onlyattr: ASN1_BOOLEAN,
24665}
24666#[test]
24667fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
24668    const UNINIT: ::std::mem::MaybeUninit<ISSUING_DIST_POINT_st> =
24669        ::std::mem::MaybeUninit::uninit();
24670    let ptr = UNINIT.as_ptr();
24671    assert_eq!(
24672        ::std::mem::size_of::<ISSUING_DIST_POINT_st>(),
24673        32usize,
24674        "Size of ISSUING_DIST_POINT_st"
24675    );
24676    assert_eq!(
24677        ::std::mem::align_of::<ISSUING_DIST_POINT_st>(),
24678        8usize,
24679        "Alignment of ISSUING_DIST_POINT_st"
24680    );
24681    assert_eq!(
24682        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24683        0usize,
24684        "Offset of field: ISSUING_DIST_POINT_st::distpoint"
24685    );
24686    assert_eq!(
24687        unsafe { ::std::ptr::addr_of!((*ptr).onlyuser) as usize - ptr as usize },
24688        8usize,
24689        "Offset of field: ISSUING_DIST_POINT_st::onlyuser"
24690    );
24691    assert_eq!(
24692        unsafe { ::std::ptr::addr_of!((*ptr).onlyCA) as usize - ptr as usize },
24693        12usize,
24694        "Offset of field: ISSUING_DIST_POINT_st::onlyCA"
24695    );
24696    assert_eq!(
24697        unsafe { ::std::ptr::addr_of!((*ptr).onlysomereasons) as usize - ptr as usize },
24698        16usize,
24699        "Offset of field: ISSUING_DIST_POINT_st::onlysomereasons"
24700    );
24701    assert_eq!(
24702        unsafe { ::std::ptr::addr_of!((*ptr).indirectCRL) as usize - ptr as usize },
24703        24usize,
24704        "Offset of field: ISSUING_DIST_POINT_st::indirectCRL"
24705    );
24706    assert_eq!(
24707        unsafe { ::std::ptr::addr_of!((*ptr).onlyattr) as usize - ptr as usize },
24708        28usize,
24709        "Offset of field: ISSUING_DIST_POINT_st::onlyattr"
24710    );
24711}
24712impl Default for ISSUING_DIST_POINT_st {
24713    fn default() -> Self {
24714        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24715        unsafe {
24716            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24717            s.assume_init()
24718        }
24719    }
24720}
24721extern "C" {
24722    #[link_name = "\u{1}aws_lc_0_37_0_BASIC_CONSTRAINTS_it"]
24723    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
24724}
24725extern "C" {
24726    #[link_name = "\u{1}aws_lc_0_37_0_BASIC_CONSTRAINTS_new"]
24727    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
24728}
24729extern "C" {
24730    #[link_name = "\u{1}aws_lc_0_37_0_BASIC_CONSTRAINTS_free"]
24731    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
24732}
24733extern "C" {
24734    #[link_name = "\u{1}aws_lc_0_37_0_d2i_BASIC_CONSTRAINTS"]
24735    pub fn d2i_BASIC_CONSTRAINTS(
24736        out: *mut *mut BASIC_CONSTRAINTS,
24737        inp: *mut *const u8,
24738        len: ::std::os::raw::c_long,
24739    ) -> *mut BASIC_CONSTRAINTS;
24740}
24741extern "C" {
24742    #[link_name = "\u{1}aws_lc_0_37_0_i2d_BASIC_CONSTRAINTS"]
24743    pub fn i2d_BASIC_CONSTRAINTS(
24744        bcons: *const BASIC_CONSTRAINTS,
24745        outp: *mut *mut u8,
24746    ) -> ::std::os::raw::c_int;
24747}
24748extern "C" {
24749    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_KEYID_it"]
24750    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
24751}
24752extern "C" {
24753    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_KEYID_new"]
24754    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
24755}
24756extern "C" {
24757    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_KEYID_free"]
24758    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
24759}
24760extern "C" {
24761    #[link_name = "\u{1}aws_lc_0_37_0_d2i_AUTHORITY_KEYID"]
24762    pub fn d2i_AUTHORITY_KEYID(
24763        out: *mut *mut AUTHORITY_KEYID,
24764        inp: *mut *const u8,
24765        len: ::std::os::raw::c_long,
24766    ) -> *mut AUTHORITY_KEYID;
24767}
24768extern "C" {
24769    #[link_name = "\u{1}aws_lc_0_37_0_i2d_AUTHORITY_KEYID"]
24770    pub fn i2d_AUTHORITY_KEYID(
24771        akid: *mut AUTHORITY_KEYID,
24772        outp: *mut *mut u8,
24773    ) -> ::std::os::raw::c_int;
24774}
24775extern "C" {
24776    #[link_name = "\u{1}aws_lc_0_37_0_EXTENDED_KEY_USAGE_it"]
24777    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
24778}
24779extern "C" {
24780    #[link_name = "\u{1}aws_lc_0_37_0_EXTENDED_KEY_USAGE_new"]
24781    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
24782}
24783extern "C" {
24784    #[link_name = "\u{1}aws_lc_0_37_0_EXTENDED_KEY_USAGE_free"]
24785    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
24786}
24787extern "C" {
24788    #[link_name = "\u{1}aws_lc_0_37_0_d2i_EXTENDED_KEY_USAGE"]
24789    pub fn d2i_EXTENDED_KEY_USAGE(
24790        out: *mut *mut EXTENDED_KEY_USAGE,
24791        inp: *mut *const u8,
24792        len: ::std::os::raw::c_long,
24793    ) -> *mut EXTENDED_KEY_USAGE;
24794}
24795extern "C" {
24796    #[link_name = "\u{1}aws_lc_0_37_0_i2d_EXTENDED_KEY_USAGE"]
24797    pub fn i2d_EXTENDED_KEY_USAGE(
24798        eku: *const EXTENDED_KEY_USAGE,
24799        outp: *mut *mut u8,
24800    ) -> ::std::os::raw::c_int;
24801}
24802extern "C" {
24803    #[link_name = "\u{1}aws_lc_0_37_0_CERTIFICATEPOLICIES_it"]
24804    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
24805}
24806extern "C" {
24807    #[link_name = "\u{1}aws_lc_0_37_0_CERTIFICATEPOLICIES_new"]
24808    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
24809}
24810extern "C" {
24811    #[link_name = "\u{1}aws_lc_0_37_0_CERTIFICATEPOLICIES_free"]
24812    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
24813}
24814extern "C" {
24815    #[link_name = "\u{1}aws_lc_0_37_0_d2i_CERTIFICATEPOLICIES"]
24816    pub fn d2i_CERTIFICATEPOLICIES(
24817        out: *mut *mut CERTIFICATEPOLICIES,
24818        inp: *mut *const u8,
24819        len: ::std::os::raw::c_long,
24820    ) -> *mut CERTIFICATEPOLICIES;
24821}
24822extern "C" {
24823    #[link_name = "\u{1}aws_lc_0_37_0_i2d_CERTIFICATEPOLICIES"]
24824    pub fn i2d_CERTIFICATEPOLICIES(
24825        policies: *const CERTIFICATEPOLICIES,
24826        outp: *mut *mut u8,
24827    ) -> ::std::os::raw::c_int;
24828}
24829extern "C" {
24830    #[link_name = "\u{1}aws_lc_0_37_0_POLICYINFO_new"]
24831    pub fn POLICYINFO_new() -> *mut POLICYINFO;
24832}
24833extern "C" {
24834    #[link_name = "\u{1}aws_lc_0_37_0_POLICYINFO_free"]
24835    pub fn POLICYINFO_free(info: *mut POLICYINFO);
24836}
24837extern "C" {
24838    #[link_name = "\u{1}aws_lc_0_37_0_POLICYQUALINFO_new"]
24839    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
24840}
24841extern "C" {
24842    #[link_name = "\u{1}aws_lc_0_37_0_POLICYQUALINFO_free"]
24843    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
24844}
24845extern "C" {
24846    #[link_name = "\u{1}aws_lc_0_37_0_USERNOTICE_new"]
24847    pub fn USERNOTICE_new() -> *mut USERNOTICE;
24848}
24849extern "C" {
24850    #[link_name = "\u{1}aws_lc_0_37_0_USERNOTICE_free"]
24851    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
24852}
24853extern "C" {
24854    #[link_name = "\u{1}aws_lc_0_37_0_NOTICEREF_new"]
24855    pub fn NOTICEREF_new() -> *mut NOTICEREF;
24856}
24857extern "C" {
24858    #[link_name = "\u{1}aws_lc_0_37_0_NOTICEREF_free"]
24859    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
24860}
24861extern "C" {
24862    #[link_name = "\u{1}aws_lc_0_37_0_CRL_DIST_POINTS_it"]
24863    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
24864}
24865extern "C" {
24866    #[link_name = "\u{1}aws_lc_0_37_0_CRL_DIST_POINTS_new"]
24867    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
24868}
24869extern "C" {
24870    #[link_name = "\u{1}aws_lc_0_37_0_CRL_DIST_POINTS_free"]
24871    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
24872}
24873extern "C" {
24874    #[link_name = "\u{1}aws_lc_0_37_0_d2i_CRL_DIST_POINTS"]
24875    pub fn d2i_CRL_DIST_POINTS(
24876        out: *mut *mut CRL_DIST_POINTS,
24877        inp: *mut *const u8,
24878        len: ::std::os::raw::c_long,
24879    ) -> *mut CRL_DIST_POINTS;
24880}
24881extern "C" {
24882    #[link_name = "\u{1}aws_lc_0_37_0_i2d_CRL_DIST_POINTS"]
24883    pub fn i2d_CRL_DIST_POINTS(
24884        crldp: *mut CRL_DIST_POINTS,
24885        outp: *mut *mut u8,
24886    ) -> ::std::os::raw::c_int;
24887}
24888extern "C" {
24889    #[link_name = "\u{1}aws_lc_0_37_0_DIST_POINT_new"]
24890    pub fn DIST_POINT_new() -> *mut DIST_POINT;
24891}
24892extern "C" {
24893    #[link_name = "\u{1}aws_lc_0_37_0_DIST_POINT_free"]
24894    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
24895}
24896extern "C" {
24897    #[link_name = "\u{1}aws_lc_0_37_0_DIST_POINT_NAME_new"]
24898    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
24899}
24900extern "C" {
24901    #[link_name = "\u{1}aws_lc_0_37_0_DIST_POINT_NAME_free"]
24902    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
24903}
24904extern "C" {
24905    #[link_name = "\u{1}aws_lc_0_37_0_ISSUING_DIST_POINT_it"]
24906    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
24907}
24908extern "C" {
24909    #[link_name = "\u{1}aws_lc_0_37_0_ISSUING_DIST_POINT_new"]
24910    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
24911}
24912extern "C" {
24913    #[link_name = "\u{1}aws_lc_0_37_0_ISSUING_DIST_POINT_free"]
24914    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
24915}
24916extern "C" {
24917    #[link_name = "\u{1}aws_lc_0_37_0_d2i_ISSUING_DIST_POINT"]
24918    pub fn d2i_ISSUING_DIST_POINT(
24919        out: *mut *mut ISSUING_DIST_POINT,
24920        inp: *mut *const u8,
24921        len: ::std::os::raw::c_long,
24922    ) -> *mut ISSUING_DIST_POINT;
24923}
24924extern "C" {
24925    #[link_name = "\u{1}aws_lc_0_37_0_i2d_ISSUING_DIST_POINT"]
24926    pub fn i2d_ISSUING_DIST_POINT(
24927        idp: *mut ISSUING_DIST_POINT,
24928        outp: *mut *mut u8,
24929    ) -> ::std::os::raw::c_int;
24930}
24931extern "C" {
24932    #[link_name = "\u{1}aws_lc_0_37_0_ACCESS_DESCRIPTION_new"]
24933    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
24934}
24935extern "C" {
24936    #[link_name = "\u{1}aws_lc_0_37_0_ACCESS_DESCRIPTION_free"]
24937    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
24938}
24939extern "C" {
24940    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_INFO_ACCESS_it"]
24941    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
24942}
24943extern "C" {
24944    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_INFO_ACCESS_new"]
24945    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
24946}
24947extern "C" {
24948    #[link_name = "\u{1}aws_lc_0_37_0_AUTHORITY_INFO_ACCESS_free"]
24949    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
24950}
24951extern "C" {
24952    #[link_name = "\u{1}aws_lc_0_37_0_d2i_AUTHORITY_INFO_ACCESS"]
24953    pub fn d2i_AUTHORITY_INFO_ACCESS(
24954        out: *mut *mut AUTHORITY_INFO_ACCESS,
24955        inp: *mut *const u8,
24956        len: ::std::os::raw::c_long,
24957    ) -> *mut AUTHORITY_INFO_ACCESS;
24958}
24959extern "C" {
24960    #[link_name = "\u{1}aws_lc_0_37_0_i2d_AUTHORITY_INFO_ACCESS"]
24961    pub fn i2d_AUTHORITY_INFO_ACCESS(
24962        aia: *mut AUTHORITY_INFO_ACCESS,
24963        outp: *mut *mut u8,
24964    ) -> ::std::os::raw::c_int;
24965}
24966extern "C" {
24967    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_MAPPING_new"]
24968    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
24969}
24970extern "C" {
24971    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_MAPPING_free"]
24972    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
24973}
24974extern "C" {
24975    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_MAPPINGS_it"]
24976    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
24977}
24978extern "C" {
24979    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_SUBTREE_new"]
24980    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
24981}
24982extern "C" {
24983    #[link_name = "\u{1}aws_lc_0_37_0_GENERAL_SUBTREE_free"]
24984    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
24985}
24986extern "C" {
24987    #[link_name = "\u{1}aws_lc_0_37_0_NAME_CONSTRAINTS_it"]
24988    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
24989}
24990extern "C" {
24991    #[link_name = "\u{1}aws_lc_0_37_0_NAME_CONSTRAINTS_new"]
24992    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
24993}
24994extern "C" {
24995    #[link_name = "\u{1}aws_lc_0_37_0_NAME_CONSTRAINTS_free"]
24996    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
24997}
24998extern "C" {
24999    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_CONSTRAINTS_new"]
25000    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
25001}
25002extern "C" {
25003    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_CONSTRAINTS_free"]
25004    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
25005}
25006extern "C" {
25007    #[link_name = "\u{1}aws_lc_0_37_0_POLICY_CONSTRAINTS_it"]
25008    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
25009}
25010extern "C" {
25011    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_set"]
25012    pub fn X509_PURPOSE_set(
25013        p: *mut ::std::os::raw::c_int,
25014        purpose: ::std::os::raw::c_int,
25015    ) -> ::std::os::raw::c_int;
25016}
25017extern "C" {
25018    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get_count"]
25019    pub fn X509_PURPOSE_get_count() -> ::std::os::raw::c_int;
25020}
25021extern "C" {
25022    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get_by_id"]
25023    pub fn X509_PURPOSE_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25024}
25025extern "C" {
25026    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get0_name"]
25027    pub fn X509_PURPOSE_get0_name(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25028}
25029extern "C" {
25030    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get0_sname"]
25031    pub fn X509_PURPOSE_get0_sname(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25032}
25033extern "C" {
25034    #[link_name = "\u{1}aws_lc_0_37_0_X509_PURPOSE_get_trust"]
25035    pub fn X509_PURPOSE_get_trust(xp: *const X509_PURPOSE) -> ::std::os::raw::c_int;
25036}
25037#[repr(C)]
25038#[derive(Debug, Copy, Clone)]
25039pub struct ocsp_cert_id_st {
25040    _unused: [u8; 0],
25041}
25042pub type OCSP_CERTID = ocsp_cert_id_st;
25043#[repr(C)]
25044#[derive(Debug, Copy, Clone)]
25045pub struct ocsp_one_request_st {
25046    _unused: [u8; 0],
25047}
25048pub type OCSP_ONEREQ = ocsp_one_request_st;
25049#[repr(C)]
25050#[derive(Debug, Copy, Clone)]
25051pub struct ocsp_req_info_st {
25052    _unused: [u8; 0],
25053}
25054pub type OCSP_REQINFO = ocsp_req_info_st;
25055#[repr(C)]
25056#[derive(Debug, Copy, Clone)]
25057pub struct ocsp_signature_st {
25058    _unused: [u8; 0],
25059}
25060pub type OCSP_SIGNATURE = ocsp_signature_st;
25061#[repr(C)]
25062#[derive(Debug, Copy, Clone)]
25063pub struct ocsp_request_st {
25064    _unused: [u8; 0],
25065}
25066pub type OCSP_REQUEST = ocsp_request_st;
25067#[repr(C)]
25068#[derive(Debug, Copy, Clone)]
25069pub struct ocsp_resp_bytes_st {
25070    _unused: [u8; 0],
25071}
25072pub type OCSP_RESPBYTES = ocsp_resp_bytes_st;
25073#[repr(C)]
25074#[derive(Debug, Copy, Clone)]
25075pub struct ocsp_revoked_info_st {
25076    _unused: [u8; 0],
25077}
25078pub type OCSP_REVOKEDINFO = ocsp_revoked_info_st;
25079#[repr(C)]
25080#[derive(Debug, Copy, Clone)]
25081pub struct ocsp_cert_status_st {
25082    _unused: [u8; 0],
25083}
25084pub type OCSP_CERTSTATUS = ocsp_cert_status_st;
25085#[repr(C)]
25086#[derive(Debug, Copy, Clone)]
25087pub struct ocsp_single_response_st {
25088    _unused: [u8; 0],
25089}
25090pub type OCSP_SINGLERESP = ocsp_single_response_st;
25091#[repr(C)]
25092#[derive(Debug, Copy, Clone)]
25093pub struct ocsp_response_data_st {
25094    _unused: [u8; 0],
25095}
25096pub type OCSP_RESPDATA = ocsp_response_data_st;
25097#[repr(C)]
25098#[derive(Debug, Copy, Clone)]
25099pub struct ocsp_response_st {
25100    _unused: [u8; 0],
25101}
25102pub type OCSP_RESPONSE = ocsp_response_st;
25103#[repr(C)]
25104#[derive(Debug, Copy, Clone)]
25105pub struct ocsp_responder_id_st {
25106    _unused: [u8; 0],
25107}
25108pub type OCSP_RESPID = ocsp_responder_id_st;
25109#[repr(C)]
25110#[derive(Debug, Copy, Clone)]
25111pub struct ocsp_basic_response_st {
25112    _unused: [u8; 0],
25113}
25114pub type OCSP_BASICRESP = ocsp_basic_response_st;
25115#[repr(C)]
25116#[derive(Debug, Copy, Clone)]
25117pub struct stack_st_OCSP_CERTID {
25118    _unused: [u8; 0],
25119}
25120pub type sk_OCSP_CERTID_free_func =
25121    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_CERTID)>;
25122pub type sk_OCSP_CERTID_copy_func =
25123    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_CERTID) -> *mut OCSP_CERTID>;
25124pub type sk_OCSP_CERTID_cmp_func = ::std::option::Option<
25125    unsafe extern "C" fn(
25126        arg1: *const *const OCSP_CERTID,
25127        arg2: *const *const OCSP_CERTID,
25128    ) -> ::std::os::raw::c_int,
25129>;
25130pub type sk_OCSP_CERTID_delete_if_func = ::std::option::Option<
25131    unsafe extern "C" fn(
25132        arg1: *mut OCSP_CERTID,
25133        arg2: *mut ::std::os::raw::c_void,
25134    ) -> ::std::os::raw::c_int,
25135>;
25136#[repr(C)]
25137#[derive(Debug, Copy, Clone)]
25138pub struct stack_st_OCSP_ONEREQ {
25139    _unused: [u8; 0],
25140}
25141pub type sk_OCSP_ONEREQ_free_func =
25142    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_ONEREQ)>;
25143pub type sk_OCSP_ONEREQ_copy_func =
25144    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_ONEREQ) -> *mut OCSP_ONEREQ>;
25145pub type sk_OCSP_ONEREQ_cmp_func = ::std::option::Option<
25146    unsafe extern "C" fn(
25147        arg1: *const *const OCSP_ONEREQ,
25148        arg2: *const *const OCSP_ONEREQ,
25149    ) -> ::std::os::raw::c_int,
25150>;
25151pub type sk_OCSP_ONEREQ_delete_if_func = ::std::option::Option<
25152    unsafe extern "C" fn(
25153        arg1: *mut OCSP_ONEREQ,
25154        arg2: *mut ::std::os::raw::c_void,
25155    ) -> ::std::os::raw::c_int,
25156>;
25157#[repr(C)]
25158#[derive(Debug, Copy, Clone)]
25159pub struct stack_st_OCSP_RESPID {
25160    _unused: [u8; 0],
25161}
25162pub type sk_OCSP_RESPID_free_func =
25163    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_RESPID)>;
25164pub type sk_OCSP_RESPID_copy_func =
25165    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_RESPID) -> *mut OCSP_RESPID>;
25166pub type sk_OCSP_RESPID_cmp_func = ::std::option::Option<
25167    unsafe extern "C" fn(
25168        arg1: *const *const OCSP_RESPID,
25169        arg2: *const *const OCSP_RESPID,
25170    ) -> ::std::os::raw::c_int,
25171>;
25172pub type sk_OCSP_RESPID_delete_if_func = ::std::option::Option<
25173    unsafe extern "C" fn(
25174        arg1: *mut OCSP_RESPID,
25175        arg2: *mut ::std::os::raw::c_void,
25176    ) -> ::std::os::raw::c_int,
25177>;
25178#[repr(C)]
25179#[derive(Debug, Copy, Clone)]
25180pub struct stack_st_OCSP_SINGLERESP {
25181    _unused: [u8; 0],
25182}
25183pub type sk_OCSP_SINGLERESP_free_func =
25184    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_SINGLERESP)>;
25185pub type sk_OCSP_SINGLERESP_copy_func = ::std::option::Option<
25186    unsafe extern "C" fn(arg1: *const OCSP_SINGLERESP) -> *mut OCSP_SINGLERESP,
25187>;
25188pub type sk_OCSP_SINGLERESP_cmp_func = ::std::option::Option<
25189    unsafe extern "C" fn(
25190        arg1: *const *const OCSP_SINGLERESP,
25191        arg2: *const *const OCSP_SINGLERESP,
25192    ) -> ::std::os::raw::c_int,
25193>;
25194pub type sk_OCSP_SINGLERESP_delete_if_func = ::std::option::Option<
25195    unsafe extern "C" fn(
25196        arg1: *mut OCSP_SINGLERESP,
25197        arg2: *mut ::std::os::raw::c_void,
25198    ) -> ::std::os::raw::c_int,
25199>;
25200extern "C" {
25201    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_new"]
25202    pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP;
25203}
25204extern "C" {
25205    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_free"]
25206    pub fn OCSP_BASICRESP_free(a: *mut OCSP_BASICRESP);
25207}
25208extern "C" {
25209    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_BASICRESP"]
25210    pub fn d2i_OCSP_BASICRESP(
25211        a: *mut *mut OCSP_BASICRESP,
25212        in_: *mut *const ::std::os::raw::c_uchar,
25213        len: ::std::os::raw::c_long,
25214    ) -> *mut OCSP_BASICRESP;
25215}
25216extern "C" {
25217    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_BASICRESP"]
25218    pub fn i2d_OCSP_BASICRESP(
25219        a: *mut OCSP_BASICRESP,
25220        out: *mut *mut ::std::os::raw::c_uchar,
25221    ) -> ::std::os::raw::c_int;
25222}
25223extern "C" {
25224    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_it"]
25225    pub static OCSP_BASICRESP_it: ASN1_ITEM;
25226}
25227extern "C" {
25228    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_RESPONSE_new"]
25229    pub fn OCSP_RESPONSE_new() -> *mut OCSP_RESPONSE;
25230}
25231extern "C" {
25232    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_RESPONSE_free"]
25233    pub fn OCSP_RESPONSE_free(a: *mut OCSP_RESPONSE);
25234}
25235extern "C" {
25236    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_RESPONSE"]
25237    pub fn d2i_OCSP_RESPONSE(
25238        a: *mut *mut OCSP_RESPONSE,
25239        in_: *mut *const ::std::os::raw::c_uchar,
25240        len: ::std::os::raw::c_long,
25241    ) -> *mut OCSP_RESPONSE;
25242}
25243extern "C" {
25244    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_RESPONSE"]
25245    pub fn i2d_OCSP_RESPONSE(
25246        a: *mut OCSP_RESPONSE,
25247        out: *mut *mut ::std::os::raw::c_uchar,
25248    ) -> ::std::os::raw::c_int;
25249}
25250extern "C" {
25251    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_RESPONSE_it"]
25252    pub static OCSP_RESPONSE_it: ASN1_ITEM;
25253}
25254extern "C" {
25255    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_CERTID_new"]
25256    pub fn OCSP_CERTID_new() -> *mut OCSP_CERTID;
25257}
25258extern "C" {
25259    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_CERTID_free"]
25260    pub fn OCSP_CERTID_free(a: *mut OCSP_CERTID);
25261}
25262extern "C" {
25263    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_CERTID"]
25264    pub fn d2i_OCSP_CERTID(
25265        a: *mut *mut OCSP_CERTID,
25266        in_: *mut *const ::std::os::raw::c_uchar,
25267        len: ::std::os::raw::c_long,
25268    ) -> *mut OCSP_CERTID;
25269}
25270extern "C" {
25271    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_CERTID"]
25272    pub fn i2d_OCSP_CERTID(
25273        a: *mut OCSP_CERTID,
25274        out: *mut *mut ::std::os::raw::c_uchar,
25275    ) -> ::std::os::raw::c_int;
25276}
25277extern "C" {
25278    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_CERTID_it"]
25279    pub static OCSP_CERTID_it: ASN1_ITEM;
25280}
25281extern "C" {
25282    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQUEST_new"]
25283    pub fn OCSP_REQUEST_new() -> *mut OCSP_REQUEST;
25284}
25285extern "C" {
25286    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQUEST_free"]
25287    pub fn OCSP_REQUEST_free(a: *mut OCSP_REQUEST);
25288}
25289extern "C" {
25290    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_REQUEST"]
25291    pub fn d2i_OCSP_REQUEST(
25292        a: *mut *mut OCSP_REQUEST,
25293        in_: *mut *const ::std::os::raw::c_uchar,
25294        len: ::std::os::raw::c_long,
25295    ) -> *mut OCSP_REQUEST;
25296}
25297extern "C" {
25298    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_REQUEST"]
25299    pub fn i2d_OCSP_REQUEST(
25300        a: *mut OCSP_REQUEST,
25301        out: *mut *mut ::std::os::raw::c_uchar,
25302    ) -> ::std::os::raw::c_int;
25303}
25304extern "C" {
25305    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQUEST_it"]
25306    pub static OCSP_REQUEST_it: ASN1_ITEM;
25307}
25308extern "C" {
25309    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_new"]
25310    pub fn OCSP_SINGLERESP_new() -> *mut OCSP_SINGLERESP;
25311}
25312extern "C" {
25313    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_free"]
25314    pub fn OCSP_SINGLERESP_free(a: *mut OCSP_SINGLERESP);
25315}
25316extern "C" {
25317    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_SINGLERESP"]
25318    pub fn d2i_OCSP_SINGLERESP(
25319        a: *mut *mut OCSP_SINGLERESP,
25320        in_: *mut *const ::std::os::raw::c_uchar,
25321        len: ::std::os::raw::c_long,
25322    ) -> *mut OCSP_SINGLERESP;
25323}
25324extern "C" {
25325    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_SINGLERESP"]
25326    pub fn i2d_OCSP_SINGLERESP(
25327        a: *mut OCSP_SINGLERESP,
25328        out: *mut *mut ::std::os::raw::c_uchar,
25329    ) -> ::std::os::raw::c_int;
25330}
25331extern "C" {
25332    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_it"]
25333    pub static OCSP_SINGLERESP_it: ASN1_ITEM;
25334}
25335extern "C" {
25336    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_ONEREQ_new"]
25337    pub fn OCSP_ONEREQ_new() -> *mut OCSP_ONEREQ;
25338}
25339extern "C" {
25340    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_ONEREQ_free"]
25341    pub fn OCSP_ONEREQ_free(a: *mut OCSP_ONEREQ);
25342}
25343extern "C" {
25344    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_ONEREQ"]
25345    pub fn d2i_OCSP_ONEREQ(
25346        a: *mut *mut OCSP_ONEREQ,
25347        in_: *mut *const ::std::os::raw::c_uchar,
25348        len: ::std::os::raw::c_long,
25349    ) -> *mut OCSP_ONEREQ;
25350}
25351extern "C" {
25352    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_ONEREQ"]
25353    pub fn i2d_OCSP_ONEREQ(
25354        a: *mut OCSP_ONEREQ,
25355        out: *mut *mut ::std::os::raw::c_uchar,
25356    ) -> ::std::os::raw::c_int;
25357}
25358extern "C" {
25359    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_ONEREQ_it"]
25360    pub static OCSP_ONEREQ_it: ASN1_ITEM;
25361}
25362extern "C" {
25363    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_REQUEST_bio"]
25364    pub fn d2i_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut *mut OCSP_REQUEST) -> *mut OCSP_REQUEST;
25365}
25366extern "C" {
25367    #[link_name = "\u{1}aws_lc_0_37_0_d2i_OCSP_RESPONSE_bio"]
25368    pub fn d2i_OCSP_RESPONSE_bio(
25369        bp: *mut BIO,
25370        presp: *mut *mut OCSP_RESPONSE,
25371    ) -> *mut OCSP_RESPONSE;
25372}
25373extern "C" {
25374    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_RESPONSE_bio"]
25375    pub fn i2d_OCSP_RESPONSE_bio(bp: *mut BIO, presp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25376}
25377extern "C" {
25378    #[link_name = "\u{1}aws_lc_0_37_0_i2d_OCSP_REQUEST_bio"]
25379    pub fn i2d_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25380}
25381extern "C" {
25382    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_CERTID_dup"]
25383    pub fn OCSP_CERTID_dup(id: *mut OCSP_CERTID) -> *mut OCSP_CERTID;
25384}
25385extern "C" {
25386    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_sendreq_bio"]
25387    pub fn OCSP_sendreq_bio(
25388        b: *mut BIO,
25389        path: *const ::std::os::raw::c_char,
25390        req: *mut OCSP_REQUEST,
25391    ) -> *mut OCSP_RESPONSE;
25392}
25393extern "C" {
25394    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_sendreq_new"]
25395    pub fn OCSP_sendreq_new(
25396        io: *mut BIO,
25397        path: *const ::std::os::raw::c_char,
25398        req: *mut OCSP_REQUEST,
25399        maxline: ::std::os::raw::c_int,
25400    ) -> *mut OCSP_REQ_CTX;
25401}
25402extern "C" {
25403    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_sendreq_nbio"]
25404    pub fn OCSP_sendreq_nbio(
25405        presp: *mut *mut OCSP_RESPONSE,
25406        rctx: *mut OCSP_REQ_CTX,
25407    ) -> ::std::os::raw::c_int;
25408}
25409extern "C" {
25410    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_new"]
25411    pub fn OCSP_REQ_CTX_new(io: *mut BIO, maxline: ::std::os::raw::c_int) -> *mut OCSP_REQ_CTX;
25412}
25413extern "C" {
25414    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_free"]
25415    pub fn OCSP_REQ_CTX_free(rctx: *mut OCSP_REQ_CTX);
25416}
25417extern "C" {
25418    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_set_max_response_length"]
25419    pub fn OCSP_set_max_response_length(rctx: *mut OCSP_REQ_CTX, len: ::std::os::raw::c_ulong);
25420}
25421extern "C" {
25422    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_http"]
25423    pub fn OCSP_REQ_CTX_http(
25424        rctx: *mut OCSP_REQ_CTX,
25425        op: *const ::std::os::raw::c_char,
25426        path: *const ::std::os::raw::c_char,
25427    ) -> ::std::os::raw::c_int;
25428}
25429extern "C" {
25430    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_set1_req"]
25431    pub fn OCSP_REQ_CTX_set1_req(
25432        rctx: *mut OCSP_REQ_CTX,
25433        req: *mut OCSP_REQUEST,
25434    ) -> ::std::os::raw::c_int;
25435}
25436extern "C" {
25437    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_add1_header"]
25438    pub fn OCSP_REQ_CTX_add1_header(
25439        rctx: *mut OCSP_REQ_CTX,
25440        name: *const ::std::os::raw::c_char,
25441        value: *const ::std::os::raw::c_char,
25442    ) -> ::std::os::raw::c_int;
25443}
25444extern "C" {
25445    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQ_CTX_i2d"]
25446    pub fn OCSP_REQ_CTX_i2d(
25447        rctx: *mut OCSP_REQ_CTX,
25448        it: *const ASN1_ITEM,
25449        val: *mut ASN1_VALUE,
25450    ) -> ::std::os::raw::c_int;
25451}
25452extern "C" {
25453    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_add0_id"]
25454    pub fn OCSP_request_add0_id(req: *mut OCSP_REQUEST, cid: *mut OCSP_CERTID) -> *mut OCSP_ONEREQ;
25455}
25456extern "C" {
25457    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_onereq_get0_id"]
25458    pub fn OCSP_onereq_get0_id(one: *mut OCSP_ONEREQ) -> *mut OCSP_CERTID;
25459}
25460extern "C" {
25461    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_add1_nonce"]
25462    pub fn OCSP_request_add1_nonce(
25463        req: *mut OCSP_REQUEST,
25464        val: *mut ::std::os::raw::c_uchar,
25465        len: ::std::os::raw::c_int,
25466    ) -> ::std::os::raw::c_int;
25467}
25468extern "C" {
25469    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_basic_add1_nonce"]
25470    pub fn OCSP_basic_add1_nonce(
25471        resp: *mut OCSP_BASICRESP,
25472        val: *mut ::std::os::raw::c_uchar,
25473        len: ::std::os::raw::c_int,
25474    ) -> ::std::os::raw::c_int;
25475}
25476extern "C" {
25477    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_check_nonce"]
25478    pub fn OCSP_check_nonce(
25479        req: *mut OCSP_REQUEST,
25480        bs: *mut OCSP_BASICRESP,
25481    ) -> ::std::os::raw::c_int;
25482}
25483extern "C" {
25484    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_copy_nonce"]
25485    pub fn OCSP_copy_nonce(
25486        resp: *mut OCSP_BASICRESP,
25487        req: *mut OCSP_REQUEST,
25488    ) -> ::std::os::raw::c_int;
25489}
25490extern "C" {
25491    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_set1_name"]
25492    pub fn OCSP_request_set1_name(
25493        req: *mut OCSP_REQUEST,
25494        nm: *mut X509_NAME,
25495    ) -> ::std::os::raw::c_int;
25496}
25497extern "C" {
25498    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_add1_cert"]
25499    pub fn OCSP_request_add1_cert(req: *mut OCSP_REQUEST, cert: *mut X509)
25500        -> ::std::os::raw::c_int;
25501}
25502extern "C" {
25503    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_is_signed"]
25504    pub fn OCSP_request_is_signed(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25505}
25506extern "C" {
25507    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_onereq_count"]
25508    pub fn OCSP_request_onereq_count(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25509}
25510extern "C" {
25511    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_onereq_get0"]
25512    pub fn OCSP_request_onereq_get0(
25513        req: *mut OCSP_REQUEST,
25514        i: ::std::os::raw::c_int,
25515    ) -> *mut OCSP_ONEREQ;
25516}
25517extern "C" {
25518    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_sign"]
25519    pub fn OCSP_request_sign(
25520        req: *mut OCSP_REQUEST,
25521        signer: *mut X509,
25522        key: *mut EVP_PKEY,
25523        dgst: *const EVP_MD,
25524        certs: *mut stack_st_X509,
25525        flags: ::std::os::raw::c_ulong,
25526    ) -> ::std::os::raw::c_int;
25527}
25528extern "C" {
25529    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_response_status"]
25530    pub fn OCSP_response_status(resp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25531}
25532extern "C" {
25533    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_response_get1_basic"]
25534    pub fn OCSP_response_get1_basic(resp: *mut OCSP_RESPONSE) -> *mut OCSP_BASICRESP;
25535}
25536extern "C" {
25537    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_resp_count"]
25538    pub fn OCSP_resp_count(bs: *mut OCSP_BASICRESP) -> ::std::os::raw::c_int;
25539}
25540extern "C" {
25541    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_resp_get0"]
25542    pub fn OCSP_resp_get0(bs: *mut OCSP_BASICRESP, idx: usize) -> *mut OCSP_SINGLERESP;
25543}
25544extern "C" {
25545    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_single_get0_status"]
25546    pub fn OCSP_single_get0_status(
25547        single: *mut OCSP_SINGLERESP,
25548        reason: *mut ::std::os::raw::c_int,
25549        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25550        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25551        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25552    ) -> ::std::os::raw::c_int;
25553}
25554extern "C" {
25555    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_resp_find"]
25556    pub fn OCSP_resp_find(
25557        bs: *mut OCSP_BASICRESP,
25558        id: *mut OCSP_CERTID,
25559        last: ::std::os::raw::c_int,
25560    ) -> ::std::os::raw::c_int;
25561}
25562extern "C" {
25563    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_resp_find_status"]
25564    pub fn OCSP_resp_find_status(
25565        bs: *mut OCSP_BASICRESP,
25566        id: *mut OCSP_CERTID,
25567        status: *mut ::std::os::raw::c_int,
25568        reason: *mut ::std::os::raw::c_int,
25569        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25570        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25571        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25572    ) -> ::std::os::raw::c_int;
25573}
25574extern "C" {
25575    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_check_validity"]
25576    pub fn OCSP_check_validity(
25577        thisUpdate: *mut ASN1_GENERALIZEDTIME,
25578        nextUpdate: *mut ASN1_GENERALIZEDTIME,
25579        drift_num_seconds: ::std::os::raw::c_long,
25580        max_age_seconds: ::std::os::raw::c_long,
25581    ) -> ::std::os::raw::c_int;
25582}
25583extern "C" {
25584    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_basic_verify"]
25585    pub fn OCSP_basic_verify(
25586        bs: *mut OCSP_BASICRESP,
25587        certs: *mut stack_st_X509,
25588        st: *mut X509_STORE,
25589        flags: ::std::os::raw::c_ulong,
25590    ) -> ::std::os::raw::c_int;
25591}
25592extern "C" {
25593    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_request_verify"]
25594    pub fn OCSP_request_verify(
25595        req: *mut OCSP_REQUEST,
25596        certs: *mut stack_st_X509,
25597        st: *mut X509_STORE,
25598        flags: ::std::os::raw::c_ulong,
25599    ) -> ::std::os::raw::c_int;
25600}
25601extern "C" {
25602    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_cert_id_new"]
25603    pub fn OCSP_cert_id_new(
25604        dgst: *const EVP_MD,
25605        issuerName: *const X509_NAME,
25606        issuerKey: *const ASN1_BIT_STRING,
25607        serialNumber: *const ASN1_INTEGER,
25608    ) -> *mut OCSP_CERTID;
25609}
25610extern "C" {
25611    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_cert_to_id"]
25612    pub fn OCSP_cert_to_id(
25613        dgst: *const EVP_MD,
25614        subject: *const X509,
25615        issuer: *const X509,
25616    ) -> *mut OCSP_CERTID;
25617}
25618extern "C" {
25619    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_parse_url"]
25620    pub fn OCSP_parse_url(
25621        url: *const ::std::os::raw::c_char,
25622        phost: *mut *mut ::std::os::raw::c_char,
25623        pport: *mut *mut ::std::os::raw::c_char,
25624        ppath: *mut *mut ::std::os::raw::c_char,
25625        pssl: *mut ::std::os::raw::c_int,
25626    ) -> ::std::os::raw::c_int;
25627}
25628extern "C" {
25629    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_id_issuer_cmp"]
25630    pub fn OCSP_id_issuer_cmp(
25631        a: *const OCSP_CERTID,
25632        b: *const OCSP_CERTID,
25633    ) -> ::std::os::raw::c_int;
25634}
25635extern "C" {
25636    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_id_cmp"]
25637    pub fn OCSP_id_cmp(a: *const OCSP_CERTID, b: *const OCSP_CERTID) -> ::std::os::raw::c_int;
25638}
25639extern "C" {
25640    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_id_get0_info"]
25641    pub fn OCSP_id_get0_info(
25642        nameHash: *mut *mut ASN1_OCTET_STRING,
25643        algor: *mut *mut ASN1_OBJECT,
25644        keyHash: *mut *mut ASN1_OCTET_STRING,
25645        serial: *mut *mut ASN1_INTEGER,
25646        cid: *mut OCSP_CERTID,
25647    ) -> ::std::os::raw::c_int;
25648}
25649extern "C" {
25650    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_basic_add1_cert"]
25651    pub fn OCSP_basic_add1_cert(
25652        resp: *mut OCSP_BASICRESP,
25653        cert: *mut X509,
25654    ) -> ::std::os::raw::c_int;
25655}
25656extern "C" {
25657    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_basic_add1_status"]
25658    pub fn OCSP_basic_add1_status(
25659        resp: *mut OCSP_BASICRESP,
25660        cid: *mut OCSP_CERTID,
25661        status: ::std::os::raw::c_int,
25662        revoked_reason: ::std::os::raw::c_int,
25663        revoked_time: *mut ASN1_TIME,
25664        this_update: *mut ASN1_TIME,
25665        next_update: *mut ASN1_TIME,
25666    ) -> *mut OCSP_SINGLERESP;
25667}
25668extern "C" {
25669    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_basic_sign"]
25670    pub fn OCSP_basic_sign(
25671        resp: *mut OCSP_BASICRESP,
25672        signer: *mut X509,
25673        key: *mut EVP_PKEY,
25674        dgst: *const EVP_MD,
25675        certs: *mut stack_st_X509,
25676        flags: ::std::os::raw::c_ulong,
25677    ) -> ::std::os::raw::c_int;
25678}
25679extern "C" {
25680    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_response_create"]
25681    pub fn OCSP_response_create(
25682        status: ::std::os::raw::c_int,
25683        bs: *mut OCSP_BASICRESP,
25684    ) -> *mut OCSP_RESPONSE;
25685}
25686extern "C" {
25687    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_get0_id"]
25688    pub fn OCSP_SINGLERESP_get0_id(x: *const OCSP_SINGLERESP) -> *const OCSP_CERTID;
25689}
25690extern "C" {
25691    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_response_status_str"]
25692    pub fn OCSP_response_status_str(
25693        status_code: ::std::os::raw::c_long,
25694    ) -> *const ::std::os::raw::c_char;
25695}
25696extern "C" {
25697    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_cert_status_str"]
25698    pub fn OCSP_cert_status_str(
25699        status_code: ::std::os::raw::c_long,
25700    ) -> *const ::std::os::raw::c_char;
25701}
25702extern "C" {
25703    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_crl_reason_str"]
25704    pub fn OCSP_crl_reason_str(
25705        status_code: ::std::os::raw::c_long,
25706    ) -> *const ::std::os::raw::c_char;
25707}
25708extern "C" {
25709    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_REQUEST_print"]
25710    pub fn OCSP_REQUEST_print(
25711        bp: *mut BIO,
25712        req: *mut OCSP_REQUEST,
25713        flags: ::std::os::raw::c_ulong,
25714    ) -> ::std::os::raw::c_int;
25715}
25716extern "C" {
25717    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_RESPONSE_print"]
25718    pub fn OCSP_RESPONSE_print(
25719        bp: *mut BIO,
25720        resp: *mut OCSP_RESPONSE,
25721        flags: ::std::os::raw::c_ulong,
25722    ) -> ::std::os::raw::c_int;
25723}
25724extern "C" {
25725    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_get_ext_by_NID"]
25726    pub fn OCSP_BASICRESP_get_ext_by_NID(
25727        bs: *mut OCSP_BASICRESP,
25728        nid: ::std::os::raw::c_int,
25729        lastpos: ::std::os::raw::c_int,
25730    ) -> ::std::os::raw::c_int;
25731}
25732extern "C" {
25733    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_get_ext"]
25734    pub fn OCSP_BASICRESP_get_ext(
25735        bs: *mut OCSP_BASICRESP,
25736        loc: ::std::os::raw::c_int,
25737    ) -> *mut X509_EXTENSION;
25738}
25739extern "C" {
25740    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_BASICRESP_delete_ext"]
25741    pub fn OCSP_BASICRESP_delete_ext(
25742        x: *mut OCSP_BASICRESP,
25743        loc: ::std::os::raw::c_int,
25744    ) -> *mut X509_EXTENSION;
25745}
25746extern "C" {
25747    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_add_ext"]
25748    pub fn OCSP_SINGLERESP_add_ext(
25749        sresp: *mut OCSP_SINGLERESP,
25750        ex: *mut X509_EXTENSION,
25751        loc: ::std::os::raw::c_int,
25752    ) -> ::std::os::raw::c_int;
25753}
25754extern "C" {
25755    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_get_ext_count"]
25756    pub fn OCSP_SINGLERESP_get_ext_count(sresp: *mut OCSP_SINGLERESP) -> ::std::os::raw::c_int;
25757}
25758extern "C" {
25759    #[link_name = "\u{1}aws_lc_0_37_0_OCSP_SINGLERESP_get_ext"]
25760    pub fn OCSP_SINGLERESP_get_ext(
25761        sresp: *mut OCSP_SINGLERESP,
25762        loc: ::std::os::raw::c_int,
25763    ) -> *mut X509_EXTENSION;
25764}
25765pub type pem_password_cb = ::std::option::Option<
25766    unsafe extern "C" fn(
25767        buf: *mut ::std::os::raw::c_char,
25768        size: ::std::os::raw::c_int,
25769        rwflag: ::std::os::raw::c_int,
25770        userdata: *mut ::std::os::raw::c_void,
25771    ) -> ::std::os::raw::c_int,
25772>;
25773extern "C" {
25774    #[link_name = "\u{1}aws_lc_0_37_0_PEM_get_EVP_CIPHER_INFO"]
25775    pub fn PEM_get_EVP_CIPHER_INFO(
25776        header: *mut ::std::os::raw::c_char,
25777        cipher: *mut EVP_CIPHER_INFO,
25778    ) -> ::std::os::raw::c_int;
25779}
25780extern "C" {
25781    #[link_name = "\u{1}aws_lc_0_37_0_PEM_do_header"]
25782    pub fn PEM_do_header(
25783        cipher: *mut EVP_CIPHER_INFO,
25784        data: *mut ::std::os::raw::c_uchar,
25785        len: *mut ::std::os::raw::c_long,
25786        callback: pem_password_cb,
25787        u: *mut ::std::os::raw::c_void,
25788    ) -> ::std::os::raw::c_int;
25789}
25790extern "C" {
25791    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio"]
25792    pub fn PEM_read_bio(
25793        bp: *mut BIO,
25794        name: *mut *mut ::std::os::raw::c_char,
25795        header: *mut *mut ::std::os::raw::c_char,
25796        data: *mut *mut ::std::os::raw::c_uchar,
25797        len: *mut ::std::os::raw::c_long,
25798    ) -> ::std::os::raw::c_int;
25799}
25800extern "C" {
25801    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio"]
25802    pub fn PEM_write_bio(
25803        bp: *mut BIO,
25804        name: *const ::std::os::raw::c_char,
25805        hdr: *const ::std::os::raw::c_char,
25806        data: *const ::std::os::raw::c_uchar,
25807        len: ::std::os::raw::c_long,
25808    ) -> ::std::os::raw::c_int;
25809}
25810extern "C" {
25811    #[link_name = "\u{1}aws_lc_0_37_0_PEM_bytes_read_bio"]
25812    pub fn PEM_bytes_read_bio(
25813        pdata: *mut *mut ::std::os::raw::c_uchar,
25814        plen: *mut ::std::os::raw::c_long,
25815        pnm: *mut *mut ::std::os::raw::c_char,
25816        name: *const ::std::os::raw::c_char,
25817        bp: *mut BIO,
25818        cb: pem_password_cb,
25819        u: *mut ::std::os::raw::c_void,
25820    ) -> ::std::os::raw::c_int;
25821}
25822extern "C" {
25823    #[link_name = "\u{1}aws_lc_0_37_0_PEM_ASN1_read_bio"]
25824    pub fn PEM_ASN1_read_bio(
25825        d2i: d2i_of_void,
25826        name: *const ::std::os::raw::c_char,
25827        bp: *mut BIO,
25828        x: *mut *mut ::std::os::raw::c_void,
25829        cb: pem_password_cb,
25830        u: *mut ::std::os::raw::c_void,
25831    ) -> *mut ::std::os::raw::c_void;
25832}
25833extern "C" {
25834    #[link_name = "\u{1}aws_lc_0_37_0_PEM_ASN1_write_bio"]
25835    pub fn PEM_ASN1_write_bio(
25836        i2d: i2d_of_void,
25837        name: *const ::std::os::raw::c_char,
25838        bp: *mut BIO,
25839        x: *mut ::std::os::raw::c_void,
25840        enc: *const EVP_CIPHER,
25841        pass: *const ::std::os::raw::c_uchar,
25842        pass_len: ::std::os::raw::c_int,
25843        cb: pem_password_cb,
25844        u: *mut ::std::os::raw::c_void,
25845    ) -> ::std::os::raw::c_int;
25846}
25847extern "C" {
25848    #[link_name = "\u{1}aws_lc_0_37_0_PEM_X509_INFO_read_bio"]
25849    pub fn PEM_X509_INFO_read_bio(
25850        bp: *mut BIO,
25851        sk: *mut stack_st_X509_INFO,
25852        cb: pem_password_cb,
25853        u: *mut ::std::os::raw::c_void,
25854    ) -> *mut stack_st_X509_INFO;
25855}
25856extern "C" {
25857    #[link_name = "\u{1}aws_lc_0_37_0_PEM_X509_INFO_write_bio"]
25858    pub fn PEM_X509_INFO_write_bio(
25859        bp: *mut BIO,
25860        xi: *mut X509_INFO,
25861        enc: *mut EVP_CIPHER,
25862        kstr: *mut ::std::os::raw::c_uchar,
25863        klen: ::std::os::raw::c_int,
25864        cd: pem_password_cb,
25865        u: *mut ::std::os::raw::c_void,
25866    ) -> ::std::os::raw::c_int;
25867}
25868extern "C" {
25869    #[link_name = "\u{1}aws_lc_0_37_0_PEM_X509_INFO_read"]
25870    pub fn PEM_X509_INFO_read(
25871        fp: *mut FILE,
25872        sk: *mut stack_st_X509_INFO,
25873        cb: pem_password_cb,
25874        u: *mut ::std::os::raw::c_void,
25875    ) -> *mut stack_st_X509_INFO;
25876}
25877extern "C" {
25878    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read"]
25879    pub fn PEM_read(
25880        fp: *mut FILE,
25881        name: *mut *mut ::std::os::raw::c_char,
25882        header: *mut *mut ::std::os::raw::c_char,
25883        data: *mut *mut ::std::os::raw::c_uchar,
25884        len: *mut ::std::os::raw::c_long,
25885    ) -> ::std::os::raw::c_int;
25886}
25887extern "C" {
25888    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write"]
25889    pub fn PEM_write(
25890        fp: *mut FILE,
25891        name: *const ::std::os::raw::c_char,
25892        hdr: *const ::std::os::raw::c_char,
25893        data: *const ::std::os::raw::c_uchar,
25894        len: ::std::os::raw::c_long,
25895    ) -> ::std::os::raw::c_int;
25896}
25897extern "C" {
25898    #[link_name = "\u{1}aws_lc_0_37_0_PEM_ASN1_read"]
25899    pub fn PEM_ASN1_read(
25900        d2i: d2i_of_void,
25901        name: *const ::std::os::raw::c_char,
25902        fp: *mut FILE,
25903        x: *mut *mut ::std::os::raw::c_void,
25904        cb: pem_password_cb,
25905        u: *mut ::std::os::raw::c_void,
25906    ) -> *mut ::std::os::raw::c_void;
25907}
25908extern "C" {
25909    #[link_name = "\u{1}aws_lc_0_37_0_PEM_ASN1_write"]
25910    pub fn PEM_ASN1_write(
25911        i2d: i2d_of_void,
25912        name: *const ::std::os::raw::c_char,
25913        fp: *mut FILE,
25914        x: *mut ::std::os::raw::c_void,
25915        enc: *const EVP_CIPHER,
25916        pass: *const ::std::os::raw::c_uchar,
25917        pass_len: ::std::os::raw::c_int,
25918        callback: pem_password_cb,
25919        u: *mut ::std::os::raw::c_void,
25920    ) -> ::std::os::raw::c_int;
25921}
25922extern "C" {
25923    #[link_name = "\u{1}aws_lc_0_37_0_PEM_def_callback"]
25924    pub fn PEM_def_callback(
25925        buf: *mut ::std::os::raw::c_char,
25926        size: ::std::os::raw::c_int,
25927        rwflag: ::std::os::raw::c_int,
25928        userdata: *mut ::std::os::raw::c_void,
25929    ) -> ::std::os::raw::c_int;
25930}
25931extern "C" {
25932    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_X509"]
25933    pub fn PEM_read_bio_X509(
25934        bp: *mut BIO,
25935        x: *mut *mut X509,
25936        cb: pem_password_cb,
25937        u: *mut ::std::os::raw::c_void,
25938    ) -> *mut X509;
25939}
25940extern "C" {
25941    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_X509"]
25942    pub fn PEM_read_X509(
25943        fp: *mut FILE,
25944        x: *mut *mut X509,
25945        cb: pem_password_cb,
25946        u: *mut ::std::os::raw::c_void,
25947    ) -> *mut X509;
25948}
25949extern "C" {
25950    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_X509"]
25951    pub fn PEM_write_bio_X509(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25952}
25953extern "C" {
25954    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_X509"]
25955    pub fn PEM_write_X509(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25956}
25957extern "C" {
25958    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_X509_AUX"]
25959    pub fn PEM_read_bio_X509_AUX(
25960        bp: *mut BIO,
25961        x: *mut *mut X509,
25962        cb: pem_password_cb,
25963        u: *mut ::std::os::raw::c_void,
25964    ) -> *mut X509;
25965}
25966extern "C" {
25967    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_X509_AUX"]
25968    pub fn PEM_read_X509_AUX(
25969        fp: *mut FILE,
25970        x: *mut *mut X509,
25971        cb: pem_password_cb,
25972        u: *mut ::std::os::raw::c_void,
25973    ) -> *mut X509;
25974}
25975extern "C" {
25976    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_X509_AUX"]
25977    pub fn PEM_write_bio_X509_AUX(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25978}
25979extern "C" {
25980    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_X509_AUX"]
25981    pub fn PEM_write_X509_AUX(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25982}
25983extern "C" {
25984    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_X509_REQ"]
25985    pub fn PEM_read_bio_X509_REQ(
25986        bp: *mut BIO,
25987        x: *mut *mut X509_REQ,
25988        cb: pem_password_cb,
25989        u: *mut ::std::os::raw::c_void,
25990    ) -> *mut X509_REQ;
25991}
25992extern "C" {
25993    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_X509_REQ"]
25994    pub fn PEM_read_X509_REQ(
25995        fp: *mut FILE,
25996        x: *mut *mut X509_REQ,
25997        cb: pem_password_cb,
25998        u: *mut ::std::os::raw::c_void,
25999    ) -> *mut X509_REQ;
26000}
26001extern "C" {
26002    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_X509_REQ"]
26003    pub fn PEM_write_bio_X509_REQ(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26004}
26005extern "C" {
26006    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_X509_REQ"]
26007    pub fn PEM_write_X509_REQ(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26008}
26009extern "C" {
26010    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_X509_REQ_NEW"]
26011    pub fn PEM_write_bio_X509_REQ_NEW(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26012}
26013extern "C" {
26014    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_X509_REQ_NEW"]
26015    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26016}
26017extern "C" {
26018    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_X509_CRL"]
26019    pub fn PEM_read_bio_X509_CRL(
26020        bp: *mut BIO,
26021        x: *mut *mut X509_CRL,
26022        cb: pem_password_cb,
26023        u: *mut ::std::os::raw::c_void,
26024    ) -> *mut X509_CRL;
26025}
26026extern "C" {
26027    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_X509_CRL"]
26028    pub fn PEM_read_X509_CRL(
26029        fp: *mut FILE,
26030        x: *mut *mut X509_CRL,
26031        cb: pem_password_cb,
26032        u: *mut ::std::os::raw::c_void,
26033    ) -> *mut X509_CRL;
26034}
26035extern "C" {
26036    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_X509_CRL"]
26037    pub fn PEM_write_bio_X509_CRL(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26038}
26039extern "C" {
26040    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_X509_CRL"]
26041    pub fn PEM_write_X509_CRL(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26042}
26043extern "C" {
26044    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_PKCS7"]
26045    pub fn PEM_read_bio_PKCS7(
26046        bp: *mut BIO,
26047        x: *mut *mut PKCS7,
26048        cb: pem_password_cb,
26049        u: *mut ::std::os::raw::c_void,
26050    ) -> *mut PKCS7;
26051}
26052extern "C" {
26053    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_PKCS7"]
26054    pub fn PEM_read_PKCS7(
26055        fp: *mut FILE,
26056        x: *mut *mut PKCS7,
26057        cb: pem_password_cb,
26058        u: *mut ::std::os::raw::c_void,
26059    ) -> *mut PKCS7;
26060}
26061extern "C" {
26062    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PKCS7"]
26063    pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> ::std::os::raw::c_int;
26064}
26065extern "C" {
26066    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PKCS7"]
26067    pub fn PEM_write_PKCS7(fp: *mut FILE, x: *mut PKCS7) -> ::std::os::raw::c_int;
26068}
26069extern "C" {
26070    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_PKCS8"]
26071    pub fn PEM_read_bio_PKCS8(
26072        bp: *mut BIO,
26073        x: *mut *mut X509_SIG,
26074        cb: pem_password_cb,
26075        u: *mut ::std::os::raw::c_void,
26076    ) -> *mut X509_SIG;
26077}
26078extern "C" {
26079    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_PKCS8"]
26080    pub fn PEM_read_PKCS8(
26081        fp: *mut FILE,
26082        x: *mut *mut X509_SIG,
26083        cb: pem_password_cb,
26084        u: *mut ::std::os::raw::c_void,
26085    ) -> *mut X509_SIG;
26086}
26087extern "C" {
26088    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PKCS8"]
26089    pub fn PEM_write_bio_PKCS8(bp: *mut BIO, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26090}
26091extern "C" {
26092    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PKCS8"]
26093    pub fn PEM_write_PKCS8(fp: *mut FILE, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26094}
26095extern "C" {
26096    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_PKCS8_PRIV_KEY_INFO"]
26097    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
26098        bp: *mut BIO,
26099        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26100        cb: pem_password_cb,
26101        u: *mut ::std::os::raw::c_void,
26102    ) -> *mut PKCS8_PRIV_KEY_INFO;
26103}
26104extern "C" {
26105    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_PKCS8_PRIV_KEY_INFO"]
26106    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
26107        fp: *mut FILE,
26108        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26109        cb: pem_password_cb,
26110        u: *mut ::std::os::raw::c_void,
26111    ) -> *mut PKCS8_PRIV_KEY_INFO;
26112}
26113extern "C" {
26114    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PKCS8_PRIV_KEY_INFO"]
26115    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
26116        bp: *mut BIO,
26117        x: *mut PKCS8_PRIV_KEY_INFO,
26118    ) -> ::std::os::raw::c_int;
26119}
26120extern "C" {
26121    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PKCS8_PRIV_KEY_INFO"]
26122    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
26123        fp: *mut FILE,
26124        x: *mut PKCS8_PRIV_KEY_INFO,
26125    ) -> ::std::os::raw::c_int;
26126}
26127extern "C" {
26128    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_RSAPrivateKey"]
26129    pub fn PEM_read_bio_RSAPrivateKey(
26130        bp: *mut BIO,
26131        x: *mut *mut RSA,
26132        cb: pem_password_cb,
26133        u: *mut ::std::os::raw::c_void,
26134    ) -> *mut RSA;
26135}
26136extern "C" {
26137    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_RSAPrivateKey"]
26138    pub fn PEM_read_RSAPrivateKey(
26139        fp: *mut FILE,
26140        x: *mut *mut RSA,
26141        cb: pem_password_cb,
26142        u: *mut ::std::os::raw::c_void,
26143    ) -> *mut RSA;
26144}
26145extern "C" {
26146    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_RSAPrivateKey"]
26147    pub fn PEM_write_bio_RSAPrivateKey(
26148        bp: *mut BIO,
26149        x: *mut RSA,
26150        enc: *const EVP_CIPHER,
26151        pass: *const ::std::os::raw::c_uchar,
26152        pass_len: ::std::os::raw::c_int,
26153        cb: pem_password_cb,
26154        u: *mut ::std::os::raw::c_void,
26155    ) -> ::std::os::raw::c_int;
26156}
26157extern "C" {
26158    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_RSAPrivateKey"]
26159    pub fn PEM_write_RSAPrivateKey(
26160        fp: *mut FILE,
26161        x: *mut RSA,
26162        enc: *const EVP_CIPHER,
26163        pass: *const ::std::os::raw::c_uchar,
26164        pass_len: ::std::os::raw::c_int,
26165        cb: pem_password_cb,
26166        u: *mut ::std::os::raw::c_void,
26167    ) -> ::std::os::raw::c_int;
26168}
26169extern "C" {
26170    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_RSAPublicKey"]
26171    pub fn PEM_read_bio_RSAPublicKey(
26172        bp: *mut BIO,
26173        x: *mut *mut RSA,
26174        cb: pem_password_cb,
26175        u: *mut ::std::os::raw::c_void,
26176    ) -> *mut RSA;
26177}
26178extern "C" {
26179    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_RSAPublicKey"]
26180    pub fn PEM_read_RSAPublicKey(
26181        fp: *mut FILE,
26182        x: *mut *mut RSA,
26183        cb: pem_password_cb,
26184        u: *mut ::std::os::raw::c_void,
26185    ) -> *mut RSA;
26186}
26187extern "C" {
26188    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_RSAPublicKey"]
26189    pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, x: *const RSA) -> ::std::os::raw::c_int;
26190}
26191extern "C" {
26192    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_RSAPublicKey"]
26193    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, x: *const RSA) -> ::std::os::raw::c_int;
26194}
26195extern "C" {
26196    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_RSA_PUBKEY"]
26197    pub fn PEM_read_bio_RSA_PUBKEY(
26198        bp: *mut BIO,
26199        x: *mut *mut RSA,
26200        cb: pem_password_cb,
26201        u: *mut ::std::os::raw::c_void,
26202    ) -> *mut RSA;
26203}
26204extern "C" {
26205    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_RSA_PUBKEY"]
26206    pub fn PEM_read_RSA_PUBKEY(
26207        fp: *mut FILE,
26208        x: *mut *mut RSA,
26209        cb: pem_password_cb,
26210        u: *mut ::std::os::raw::c_void,
26211    ) -> *mut RSA;
26212}
26213extern "C" {
26214    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_RSA_PUBKEY"]
26215    pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, x: *mut RSA) -> ::std::os::raw::c_int;
26216}
26217extern "C" {
26218    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_RSA_PUBKEY"]
26219    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, x: *mut RSA) -> ::std::os::raw::c_int;
26220}
26221extern "C" {
26222    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_DSAPrivateKey"]
26223    pub fn PEM_read_bio_DSAPrivateKey(
26224        bp: *mut BIO,
26225        x: *mut *mut DSA,
26226        cb: pem_password_cb,
26227        u: *mut ::std::os::raw::c_void,
26228    ) -> *mut DSA;
26229}
26230extern "C" {
26231    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_DSAPrivateKey"]
26232    pub fn PEM_read_DSAPrivateKey(
26233        fp: *mut FILE,
26234        x: *mut *mut DSA,
26235        cb: pem_password_cb,
26236        u: *mut ::std::os::raw::c_void,
26237    ) -> *mut DSA;
26238}
26239extern "C" {
26240    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_DSAPrivateKey"]
26241    pub fn PEM_write_bio_DSAPrivateKey(
26242        bp: *mut BIO,
26243        x: *mut DSA,
26244        enc: *const EVP_CIPHER,
26245        pass: *const ::std::os::raw::c_uchar,
26246        pass_len: ::std::os::raw::c_int,
26247        cb: pem_password_cb,
26248        u: *mut ::std::os::raw::c_void,
26249    ) -> ::std::os::raw::c_int;
26250}
26251extern "C" {
26252    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_DSAPrivateKey"]
26253    pub fn PEM_write_DSAPrivateKey(
26254        fp: *mut FILE,
26255        x: *mut DSA,
26256        enc: *const EVP_CIPHER,
26257        pass: *const ::std::os::raw::c_uchar,
26258        pass_len: ::std::os::raw::c_int,
26259        cb: pem_password_cb,
26260        u: *mut ::std::os::raw::c_void,
26261    ) -> ::std::os::raw::c_int;
26262}
26263extern "C" {
26264    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_DSA_PUBKEY"]
26265    pub fn PEM_read_bio_DSA_PUBKEY(
26266        bp: *mut BIO,
26267        x: *mut *mut DSA,
26268        cb: pem_password_cb,
26269        u: *mut ::std::os::raw::c_void,
26270    ) -> *mut DSA;
26271}
26272extern "C" {
26273    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_DSA_PUBKEY"]
26274    pub fn PEM_read_DSA_PUBKEY(
26275        fp: *mut FILE,
26276        x: *mut *mut DSA,
26277        cb: pem_password_cb,
26278        u: *mut ::std::os::raw::c_void,
26279    ) -> *mut DSA;
26280}
26281extern "C" {
26282    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_DSA_PUBKEY"]
26283    pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, x: *mut DSA) -> ::std::os::raw::c_int;
26284}
26285extern "C" {
26286    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_DSA_PUBKEY"]
26287    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, x: *mut DSA) -> ::std::os::raw::c_int;
26288}
26289extern "C" {
26290    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_DSAparams"]
26291    pub fn PEM_read_bio_DSAparams(
26292        bp: *mut BIO,
26293        x: *mut *mut DSA,
26294        cb: pem_password_cb,
26295        u: *mut ::std::os::raw::c_void,
26296    ) -> *mut DSA;
26297}
26298extern "C" {
26299    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_DSAparams"]
26300    pub fn PEM_read_DSAparams(
26301        fp: *mut FILE,
26302        x: *mut *mut DSA,
26303        cb: pem_password_cb,
26304        u: *mut ::std::os::raw::c_void,
26305    ) -> *mut DSA;
26306}
26307extern "C" {
26308    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_DSAparams"]
26309    pub fn PEM_write_bio_DSAparams(bp: *mut BIO, x: *const DSA) -> ::std::os::raw::c_int;
26310}
26311extern "C" {
26312    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_DSAparams"]
26313    pub fn PEM_write_DSAparams(fp: *mut FILE, x: *const DSA) -> ::std::os::raw::c_int;
26314}
26315extern "C" {
26316    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_ECPrivateKey"]
26317    pub fn PEM_read_bio_ECPrivateKey(
26318        bp: *mut BIO,
26319        x: *mut *mut EC_KEY,
26320        cb: pem_password_cb,
26321        u: *mut ::std::os::raw::c_void,
26322    ) -> *mut EC_KEY;
26323}
26324extern "C" {
26325    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_ECPrivateKey"]
26326    pub fn PEM_read_ECPrivateKey(
26327        fp: *mut FILE,
26328        x: *mut *mut EC_KEY,
26329        cb: pem_password_cb,
26330        u: *mut ::std::os::raw::c_void,
26331    ) -> *mut EC_KEY;
26332}
26333extern "C" {
26334    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_ECPrivateKey"]
26335    pub fn PEM_write_bio_ECPrivateKey(
26336        bp: *mut BIO,
26337        x: *mut EC_KEY,
26338        enc: *const EVP_CIPHER,
26339        pass: *const ::std::os::raw::c_uchar,
26340        pass_len: ::std::os::raw::c_int,
26341        cb: pem_password_cb,
26342        u: *mut ::std::os::raw::c_void,
26343    ) -> ::std::os::raw::c_int;
26344}
26345extern "C" {
26346    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_ECPrivateKey"]
26347    pub fn PEM_write_ECPrivateKey(
26348        fp: *mut FILE,
26349        x: *mut EC_KEY,
26350        enc: *const EVP_CIPHER,
26351        pass: *const ::std::os::raw::c_uchar,
26352        pass_len: ::std::os::raw::c_int,
26353        cb: pem_password_cb,
26354        u: *mut ::std::os::raw::c_void,
26355    ) -> ::std::os::raw::c_int;
26356}
26357extern "C" {
26358    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_EC_PUBKEY"]
26359    pub fn PEM_read_bio_EC_PUBKEY(
26360        bp: *mut BIO,
26361        x: *mut *mut EC_KEY,
26362        cb: pem_password_cb,
26363        u: *mut ::std::os::raw::c_void,
26364    ) -> *mut EC_KEY;
26365}
26366extern "C" {
26367    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_EC_PUBKEY"]
26368    pub fn PEM_read_EC_PUBKEY(
26369        fp: *mut FILE,
26370        x: *mut *mut EC_KEY,
26371        cb: pem_password_cb,
26372        u: *mut ::std::os::raw::c_void,
26373    ) -> *mut EC_KEY;
26374}
26375extern "C" {
26376    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_EC_PUBKEY"]
26377    pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26378}
26379extern "C" {
26380    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_EC_PUBKEY"]
26381    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26382}
26383extern "C" {
26384    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_DHparams"]
26385    pub fn PEM_read_bio_DHparams(
26386        bp: *mut BIO,
26387        x: *mut *mut DH,
26388        cb: pem_password_cb,
26389        u: *mut ::std::os::raw::c_void,
26390    ) -> *mut DH;
26391}
26392extern "C" {
26393    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_DHparams"]
26394    pub fn PEM_read_DHparams(
26395        fp: *mut FILE,
26396        x: *mut *mut DH,
26397        cb: pem_password_cb,
26398        u: *mut ::std::os::raw::c_void,
26399    ) -> *mut DH;
26400}
26401extern "C" {
26402    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_DHparams"]
26403    pub fn PEM_write_bio_DHparams(bp: *mut BIO, x: *const DH) -> ::std::os::raw::c_int;
26404}
26405extern "C" {
26406    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_DHparams"]
26407    pub fn PEM_write_DHparams(fp: *mut FILE, x: *const DH) -> ::std::os::raw::c_int;
26408}
26409extern "C" {
26410    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_PrivateKey"]
26411    pub fn PEM_read_bio_PrivateKey(
26412        bp: *mut BIO,
26413        x: *mut *mut EVP_PKEY,
26414        cb: pem_password_cb,
26415        u: *mut ::std::os::raw::c_void,
26416    ) -> *mut EVP_PKEY;
26417}
26418extern "C" {
26419    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_PrivateKey"]
26420    pub fn PEM_read_PrivateKey(
26421        fp: *mut FILE,
26422        x: *mut *mut EVP_PKEY,
26423        cb: pem_password_cb,
26424        u: *mut ::std::os::raw::c_void,
26425    ) -> *mut EVP_PKEY;
26426}
26427extern "C" {
26428    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PrivateKey"]
26429    pub fn PEM_write_bio_PrivateKey(
26430        bp: *mut BIO,
26431        x: *mut EVP_PKEY,
26432        enc: *const EVP_CIPHER,
26433        pass: *const ::std::os::raw::c_uchar,
26434        pass_len: ::std::os::raw::c_int,
26435        cb: pem_password_cb,
26436        u: *mut ::std::os::raw::c_void,
26437    ) -> ::std::os::raw::c_int;
26438}
26439extern "C" {
26440    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PrivateKey"]
26441    pub fn PEM_write_PrivateKey(
26442        fp: *mut FILE,
26443        x: *mut EVP_PKEY,
26444        enc: *const EVP_CIPHER,
26445        pass: *const ::std::os::raw::c_uchar,
26446        pass_len: ::std::os::raw::c_int,
26447        cb: pem_password_cb,
26448        u: *mut ::std::os::raw::c_void,
26449    ) -> ::std::os::raw::c_int;
26450}
26451extern "C" {
26452    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_PUBKEY"]
26453    pub fn PEM_read_bio_PUBKEY(
26454        bp: *mut BIO,
26455        x: *mut *mut EVP_PKEY,
26456        cb: pem_password_cb,
26457        u: *mut ::std::os::raw::c_void,
26458    ) -> *mut EVP_PKEY;
26459}
26460extern "C" {
26461    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_PUBKEY"]
26462    pub fn PEM_read_PUBKEY(
26463        fp: *mut FILE,
26464        x: *mut *mut EVP_PKEY,
26465        cb: pem_password_cb,
26466        u: *mut ::std::os::raw::c_void,
26467    ) -> *mut EVP_PKEY;
26468}
26469extern "C" {
26470    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PUBKEY"]
26471    pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26472}
26473extern "C" {
26474    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PUBKEY"]
26475    pub fn PEM_write_PUBKEY(fp: *mut FILE, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26476}
26477extern "C" {
26478    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PKCS8PrivateKey_nid"]
26479    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
26480        bp: *mut BIO,
26481        x: *const EVP_PKEY,
26482        nid: ::std::os::raw::c_int,
26483        pass: *const ::std::os::raw::c_char,
26484        pass_len: ::std::os::raw::c_int,
26485        cb: pem_password_cb,
26486        u: *mut ::std::os::raw::c_void,
26487    ) -> ::std::os::raw::c_int;
26488}
26489extern "C" {
26490    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PKCS8PrivateKey"]
26491    pub fn PEM_write_bio_PKCS8PrivateKey(
26492        bp: *mut BIO,
26493        x: *const EVP_PKEY,
26494        enc: *const EVP_CIPHER,
26495        pass: *const ::std::os::raw::c_char,
26496        pass_len: ::std::os::raw::c_int,
26497        cb: pem_password_cb,
26498        u: *mut ::std::os::raw::c_void,
26499    ) -> ::std::os::raw::c_int;
26500}
26501extern "C" {
26502    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKey_bio"]
26503    pub fn i2d_PKCS8PrivateKey_bio(
26504        bp: *mut BIO,
26505        x: *const EVP_PKEY,
26506        enc: *const EVP_CIPHER,
26507        pass: *const ::std::os::raw::c_char,
26508        pass_len: ::std::os::raw::c_int,
26509        cb: pem_password_cb,
26510        u: *mut ::std::os::raw::c_void,
26511    ) -> ::std::os::raw::c_int;
26512}
26513extern "C" {
26514    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKey_nid_bio"]
26515    pub fn i2d_PKCS8PrivateKey_nid_bio(
26516        bp: *mut BIO,
26517        x: *const EVP_PKEY,
26518        nid: ::std::os::raw::c_int,
26519        pass: *const ::std::os::raw::c_char,
26520        pass_len: ::std::os::raw::c_int,
26521        cb: pem_password_cb,
26522        u: *mut ::std::os::raw::c_void,
26523    ) -> ::std::os::raw::c_int;
26524}
26525extern "C" {
26526    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8PrivateKey_bio"]
26527    pub fn d2i_PKCS8PrivateKey_bio(
26528        bp: *mut BIO,
26529        x: *mut *mut EVP_PKEY,
26530        cb: pem_password_cb,
26531        u: *mut ::std::os::raw::c_void,
26532    ) -> *mut EVP_PKEY;
26533}
26534extern "C" {
26535    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKey_fp"]
26536    pub fn i2d_PKCS8PrivateKey_fp(
26537        fp: *mut FILE,
26538        x: *const EVP_PKEY,
26539        enc: *const EVP_CIPHER,
26540        pass: *const ::std::os::raw::c_char,
26541        pass_len: ::std::os::raw::c_int,
26542        cb: pem_password_cb,
26543        u: *mut ::std::os::raw::c_void,
26544    ) -> ::std::os::raw::c_int;
26545}
26546extern "C" {
26547    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS8PrivateKey_nid_fp"]
26548    pub fn i2d_PKCS8PrivateKey_nid_fp(
26549        fp: *mut FILE,
26550        x: *const EVP_PKEY,
26551        nid: ::std::os::raw::c_int,
26552        pass: *const ::std::os::raw::c_char,
26553        pass_len: ::std::os::raw::c_int,
26554        cb: pem_password_cb,
26555        u: *mut ::std::os::raw::c_void,
26556    ) -> ::std::os::raw::c_int;
26557}
26558extern "C" {
26559    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PKCS8PrivateKey_nid"]
26560    pub fn PEM_write_PKCS8PrivateKey_nid(
26561        fp: *mut FILE,
26562        x: *const EVP_PKEY,
26563        nid: ::std::os::raw::c_int,
26564        pass: *const ::std::os::raw::c_char,
26565        pass_len: ::std::os::raw::c_int,
26566        cb: pem_password_cb,
26567        u: *mut ::std::os::raw::c_void,
26568    ) -> ::std::os::raw::c_int;
26569}
26570extern "C" {
26571    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS8PrivateKey_fp"]
26572    pub fn d2i_PKCS8PrivateKey_fp(
26573        fp: *mut FILE,
26574        x: *mut *mut EVP_PKEY,
26575        cb: pem_password_cb,
26576        u: *mut ::std::os::raw::c_void,
26577    ) -> *mut EVP_PKEY;
26578}
26579extern "C" {
26580    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_PKCS8PrivateKey"]
26581    pub fn PEM_write_PKCS8PrivateKey(
26582        fp: *mut FILE,
26583        x: *const EVP_PKEY,
26584        enc: *const EVP_CIPHER,
26585        pass: *const ::std::os::raw::c_char,
26586        pass_len: ::std::os::raw::c_int,
26587        cd: pem_password_cb,
26588        u: *mut ::std::os::raw::c_void,
26589    ) -> ::std::os::raw::c_int;
26590}
26591extern "C" {
26592    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_Parameters"]
26593    pub fn PEM_read_bio_Parameters(bio: *mut BIO, pkey: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
26594}
26595extern "C" {
26596    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_Parameters"]
26597    pub fn PEM_write_bio_Parameters(bio: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26598}
26599extern "C" {
26600    #[link_name = "\u{1}aws_lc_0_37_0_PEM_read_bio_ECPKParameters"]
26601    pub fn PEM_read_bio_ECPKParameters(
26602        bio: *mut BIO,
26603        out_group: *mut *mut EC_GROUP,
26604        cb: pem_password_cb,
26605        u: *mut ::std::os::raw::c_void,
26606    ) -> *mut EC_GROUP;
26607}
26608extern "C" {
26609    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_ECPKParameters"]
26610    pub fn PEM_write_bio_ECPKParameters(
26611        out: *mut BIO,
26612        group: *const EC_GROUP,
26613    ) -> ::std::os::raw::c_int;
26614}
26615extern "C" {
26616    #[link_name = "\u{1}aws_lc_0_37_0_PEM_write_bio_PrivateKey_traditional"]
26617    pub fn PEM_write_bio_PrivateKey_traditional(
26618        bp: *mut BIO,
26619        x: *mut EVP_PKEY,
26620        enc: *const EVP_CIPHER,
26621        kstr: *mut ::std::os::raw::c_uchar,
26622        klen: ::std::os::raw::c_int,
26623        cb: pem_password_cb,
26624        u: *mut ::std::os::raw::c_void,
26625    ) -> ::std::os::raw::c_int;
26626}
26627extern "C" {
26628    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_encrypt"]
26629    pub fn PKCS8_encrypt(
26630        pbe_nid: ::std::os::raw::c_int,
26631        cipher: *const EVP_CIPHER,
26632        pass: *const ::std::os::raw::c_char,
26633        pass_len: ::std::os::raw::c_int,
26634        salt: *const u8,
26635        salt_len: usize,
26636        iterations: ::std::os::raw::c_int,
26637        p8inf: *mut PKCS8_PRIV_KEY_INFO,
26638    ) -> *mut X509_SIG;
26639}
26640extern "C" {
26641    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_marshal_encrypted_private_key"]
26642    pub fn PKCS8_marshal_encrypted_private_key(
26643        out: *mut CBB,
26644        pbe_nid: ::std::os::raw::c_int,
26645        cipher: *const EVP_CIPHER,
26646        pass: *const ::std::os::raw::c_char,
26647        pass_len: usize,
26648        salt: *const u8,
26649        salt_len: usize,
26650        iterations: ::std::os::raw::c_int,
26651        pkey: *const EVP_PKEY,
26652    ) -> ::std::os::raw::c_int;
26653}
26654extern "C" {
26655    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_decrypt"]
26656    pub fn PKCS8_decrypt(
26657        pkcs8: *mut X509_SIG,
26658        pass: *const ::std::os::raw::c_char,
26659        pass_len: ::std::os::raw::c_int,
26660    ) -> *mut PKCS8_PRIV_KEY_INFO;
26661}
26662extern "C" {
26663    #[link_name = "\u{1}aws_lc_0_37_0_PKCS8_parse_encrypted_private_key"]
26664    pub fn PKCS8_parse_encrypted_private_key(
26665        cbs: *mut CBS,
26666        pass: *const ::std::os::raw::c_char,
26667        pass_len: usize,
26668    ) -> *mut EVP_PKEY;
26669}
26670extern "C" {
26671    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_get_key_and_certs"]
26672    pub fn PKCS12_get_key_and_certs(
26673        out_key: *mut *mut EVP_PKEY,
26674        out_certs: *mut stack_st_X509,
26675        in_: *mut CBS,
26676        password: *const ::std::os::raw::c_char,
26677    ) -> ::std::os::raw::c_int;
26678}
26679extern "C" {
26680    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_PBE_add"]
26681    pub fn PKCS12_PBE_add();
26682}
26683extern "C" {
26684    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS12"]
26685    pub fn d2i_PKCS12(
26686        out_p12: *mut *mut PKCS12,
26687        ber_bytes: *mut *const u8,
26688        ber_len: usize,
26689    ) -> *mut PKCS12;
26690}
26691extern "C" {
26692    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS12_bio"]
26693    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26694}
26695extern "C" {
26696    #[link_name = "\u{1}aws_lc_0_37_0_d2i_PKCS12_fp"]
26697    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26698}
26699extern "C" {
26700    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS12"]
26701    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::std::os::raw::c_int;
26702}
26703extern "C" {
26704    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS12_bio"]
26705    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::std::os::raw::c_int;
26706}
26707extern "C" {
26708    #[link_name = "\u{1}aws_lc_0_37_0_i2d_PKCS12_fp"]
26709    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::std::os::raw::c_int;
26710}
26711extern "C" {
26712    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_parse"]
26713    pub fn PKCS12_parse(
26714        p12: *const PKCS12,
26715        password: *const ::std::os::raw::c_char,
26716        out_pkey: *mut *mut EVP_PKEY,
26717        out_cert: *mut *mut X509,
26718        out_ca_certs: *mut *mut stack_st_X509,
26719    ) -> ::std::os::raw::c_int;
26720}
26721extern "C" {
26722    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_set_mac"]
26723    pub fn PKCS12_set_mac(
26724        p12: *mut PKCS12,
26725        password: *const ::std::os::raw::c_char,
26726        password_len: ::std::os::raw::c_int,
26727        salt: *mut ::std::os::raw::c_uchar,
26728        salt_len: ::std::os::raw::c_int,
26729        mac_iterations: ::std::os::raw::c_int,
26730        md: *const EVP_MD,
26731    ) -> ::std::os::raw::c_int;
26732}
26733extern "C" {
26734    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_verify_mac"]
26735    pub fn PKCS12_verify_mac(
26736        p12: *const PKCS12,
26737        password: *const ::std::os::raw::c_char,
26738        password_len: ::std::os::raw::c_int,
26739    ) -> ::std::os::raw::c_int;
26740}
26741extern "C" {
26742    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_create"]
26743    pub fn PKCS12_create(
26744        password: *const ::std::os::raw::c_char,
26745        name: *const ::std::os::raw::c_char,
26746        pkey: *const EVP_PKEY,
26747        cert: *mut X509,
26748        chain: *const stack_st_X509,
26749        key_nid: ::std::os::raw::c_int,
26750        cert_nid: ::std::os::raw::c_int,
26751        iterations: ::std::os::raw::c_int,
26752        mac_iterations: ::std::os::raw::c_int,
26753        key_type: ::std::os::raw::c_int,
26754    ) -> *mut PKCS12;
26755}
26756extern "C" {
26757    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_new"]
26758    pub fn PKCS12_new() -> *mut PKCS12;
26759}
26760extern "C" {
26761    #[link_name = "\u{1}aws_lc_0_37_0_PKCS12_free"]
26762    pub fn PKCS12_free(p12: *mut PKCS12);
26763}
26764pub type poly1305_state = [u8; 512usize];
26765extern "C" {
26766    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_poly1305_init"]
26767    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
26768}
26769extern "C" {
26770    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_poly1305_update"]
26771    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
26772}
26773extern "C" {
26774    #[link_name = "\u{1}aws_lc_0_37_0_CRYPTO_poly1305_finish"]
26775    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
26776}
26777extern "C" {
26778    #[link_name = "\u{1}aws_lc_0_37_0_RAND_bytes"]
26779    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26780}
26781extern "C" {
26782    #[link_name = "\u{1}aws_lc_0_37_0_RAND_priv_bytes"]
26783    pub fn RAND_priv_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26784}
26785extern "C" {
26786    #[link_name = "\u{1}aws_lc_0_37_0_RAND_bytes_with_user_prediction_resistance"]
26787    pub fn RAND_bytes_with_user_prediction_resistance(
26788        out: *mut u8,
26789        out_len: usize,
26790        user_pred_resistance: *const u8,
26791    ) -> ::std::os::raw::c_int;
26792}
26793extern "C" {
26794    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
26795}
26796extern "C" {
26797    #[link_name = "\u{1}aws_lc_0_37_0_RAND_pseudo_bytes"]
26798    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26799}
26800extern "C" {
26801    #[link_name = "\u{1}aws_lc_0_37_0_RAND_seed"]
26802    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
26803}
26804extern "C" {
26805    #[link_name = "\u{1}aws_lc_0_37_0_RAND_load_file"]
26806    pub fn RAND_load_file(
26807        path: *const ::std::os::raw::c_char,
26808        num: ::std::os::raw::c_long,
26809    ) -> ::std::os::raw::c_int;
26810}
26811extern "C" {
26812    #[link_name = "\u{1}aws_lc_0_37_0_RAND_write_file"]
26813    pub fn RAND_write_file(file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26814}
26815extern "C" {
26816    #[link_name = "\u{1}aws_lc_0_37_0_RAND_file_name"]
26817    pub fn RAND_file_name(
26818        buf: *mut ::std::os::raw::c_char,
26819        num: usize,
26820    ) -> *const ::std::os::raw::c_char;
26821}
26822extern "C" {
26823    #[link_name = "\u{1}aws_lc_0_37_0_RAND_add"]
26824    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
26825}
26826extern "C" {
26827    #[link_name = "\u{1}aws_lc_0_37_0_RAND_egd"]
26828    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26829}
26830extern "C" {
26831    #[link_name = "\u{1}aws_lc_0_37_0_RAND_egd_bytes"]
26832    pub fn RAND_egd_bytes(
26833        arg1: *const ::std::os::raw::c_char,
26834        bytes: ::std::os::raw::c_int,
26835    ) -> ::std::os::raw::c_int;
26836}
26837extern "C" {
26838    #[link_name = "\u{1}aws_lc_0_37_0_RAND_poll"]
26839    pub fn RAND_poll() -> ::std::os::raw::c_int;
26840}
26841extern "C" {
26842    #[link_name = "\u{1}aws_lc_0_37_0_RAND_status"]
26843    pub fn RAND_status() -> ::std::os::raw::c_int;
26844}
26845extern "C" {
26846    #[link_name = "\u{1}aws_lc_0_37_0_RAND_cleanup"]
26847    pub fn RAND_cleanup();
26848}
26849#[repr(C)]
26850#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
26851pub struct rand_meth_st {
26852    pub seed: ::std::option::Option<
26853        unsafe extern "C" fn(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int),
26854    >,
26855    pub bytes: ::std::option::Option<
26856        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26857    >,
26858    pub cleanup: ::std::option::Option<unsafe extern "C" fn()>,
26859    pub add: ::std::option::Option<
26860        unsafe extern "C" fn(
26861            buf: *const ::std::os::raw::c_void,
26862            num: ::std::os::raw::c_int,
26863            entropy: f64,
26864        ),
26865    >,
26866    pub pseudorand: ::std::option::Option<
26867        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26868    >,
26869    pub status: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
26870}
26871#[test]
26872fn bindgen_test_layout_rand_meth_st() {
26873    const UNINIT: ::std::mem::MaybeUninit<rand_meth_st> = ::std::mem::MaybeUninit::uninit();
26874    let ptr = UNINIT.as_ptr();
26875    assert_eq!(
26876        ::std::mem::size_of::<rand_meth_st>(),
26877        48usize,
26878        "Size of rand_meth_st"
26879    );
26880    assert_eq!(
26881        ::std::mem::align_of::<rand_meth_st>(),
26882        8usize,
26883        "Alignment of rand_meth_st"
26884    );
26885    assert_eq!(
26886        unsafe { ::std::ptr::addr_of!((*ptr).seed) as usize - ptr as usize },
26887        0usize,
26888        "Offset of field: rand_meth_st::seed"
26889    );
26890    assert_eq!(
26891        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
26892        8usize,
26893        "Offset of field: rand_meth_st::bytes"
26894    );
26895    assert_eq!(
26896        unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize },
26897        16usize,
26898        "Offset of field: rand_meth_st::cleanup"
26899    );
26900    assert_eq!(
26901        unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize },
26902        24usize,
26903        "Offset of field: rand_meth_st::add"
26904    );
26905    assert_eq!(
26906        unsafe { ::std::ptr::addr_of!((*ptr).pseudorand) as usize - ptr as usize },
26907        32usize,
26908        "Offset of field: rand_meth_st::pseudorand"
26909    );
26910    assert_eq!(
26911        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
26912        40usize,
26913        "Offset of field: rand_meth_st::status"
26914    );
26915}
26916extern "C" {
26917    #[link_name = "\u{1}aws_lc_0_37_0_RAND_SSLeay"]
26918    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
26919}
26920extern "C" {
26921    #[link_name = "\u{1}aws_lc_0_37_0_RAND_OpenSSL"]
26922    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
26923}
26924extern "C" {
26925    #[link_name = "\u{1}aws_lc_0_37_0_RAND_get_rand_method"]
26926    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
26927}
26928extern "C" {
26929    #[link_name = "\u{1}aws_lc_0_37_0_RAND_set_rand_method"]
26930    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::std::os::raw::c_int;
26931}
26932extern "C" {
26933    #[link_name = "\u{1}aws_lc_0_37_0_RAND_keep_random_devices_open"]
26934    pub fn RAND_keep_random_devices_open(a: ::std::os::raw::c_int);
26935}
26936#[repr(C)]
26937#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26938pub struct rc4_key_st {
26939    pub x: u32,
26940    pub y: u32,
26941    pub data: [u32; 256usize],
26942}
26943#[test]
26944fn bindgen_test_layout_rc4_key_st() {
26945    const UNINIT: ::std::mem::MaybeUninit<rc4_key_st> = ::std::mem::MaybeUninit::uninit();
26946    let ptr = UNINIT.as_ptr();
26947    assert_eq!(
26948        ::std::mem::size_of::<rc4_key_st>(),
26949        1032usize,
26950        "Size of rc4_key_st"
26951    );
26952    assert_eq!(
26953        ::std::mem::align_of::<rc4_key_st>(),
26954        4usize,
26955        "Alignment of rc4_key_st"
26956    );
26957    assert_eq!(
26958        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
26959        0usize,
26960        "Offset of field: rc4_key_st::x"
26961    );
26962    assert_eq!(
26963        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
26964        4usize,
26965        "Offset of field: rc4_key_st::y"
26966    );
26967    assert_eq!(
26968        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
26969        8usize,
26970        "Offset of field: rc4_key_st::data"
26971    );
26972}
26973impl Default for rc4_key_st {
26974    fn default() -> Self {
26975        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
26976        unsafe {
26977            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
26978            s.assume_init()
26979        }
26980    }
26981}
26982extern "C" {
26983    #[link_name = "\u{1}aws_lc_0_37_0_RC4_set_key"]
26984    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::std::os::raw::c_uint, key: *const u8);
26985}
26986extern "C" {
26987    #[link_name = "\u{1}aws_lc_0_37_0_RC4"]
26988    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
26989}
26990extern "C" {
26991    #[link_name = "\u{1}aws_lc_0_37_0_RC4_options"]
26992    pub fn RC4_options() -> *const ::std::os::raw::c_char;
26993}
26994#[repr(C)]
26995#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26996pub struct RIPEMD160state_st {
26997    pub h: [u32; 5usize],
26998    pub Nl: u32,
26999    pub Nh: u32,
27000    pub data: [u8; 64usize],
27001    pub num: ::std::os::raw::c_uint,
27002}
27003#[test]
27004fn bindgen_test_layout_RIPEMD160state_st() {
27005    const UNINIT: ::std::mem::MaybeUninit<RIPEMD160state_st> = ::std::mem::MaybeUninit::uninit();
27006    let ptr = UNINIT.as_ptr();
27007    assert_eq!(
27008        ::std::mem::size_of::<RIPEMD160state_st>(),
27009        96usize,
27010        "Size of RIPEMD160state_st"
27011    );
27012    assert_eq!(
27013        ::std::mem::align_of::<RIPEMD160state_st>(),
27014        4usize,
27015        "Alignment of RIPEMD160state_st"
27016    );
27017    assert_eq!(
27018        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
27019        0usize,
27020        "Offset of field: RIPEMD160state_st::h"
27021    );
27022    assert_eq!(
27023        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
27024        20usize,
27025        "Offset of field: RIPEMD160state_st::Nl"
27026    );
27027    assert_eq!(
27028        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
27029        24usize,
27030        "Offset of field: RIPEMD160state_st::Nh"
27031    );
27032    assert_eq!(
27033        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27034        28usize,
27035        "Offset of field: RIPEMD160state_st::data"
27036    );
27037    assert_eq!(
27038        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
27039        92usize,
27040        "Offset of field: RIPEMD160state_st::num"
27041    );
27042}
27043impl Default for RIPEMD160state_st {
27044    fn default() -> Self {
27045        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27046        unsafe {
27047            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27048            s.assume_init()
27049        }
27050    }
27051}
27052extern "C" {
27053    #[link_name = "\u{1}aws_lc_0_37_0_RIPEMD160_Init"]
27054    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27055}
27056extern "C" {
27057    #[link_name = "\u{1}aws_lc_0_37_0_RIPEMD160_Update"]
27058    pub fn RIPEMD160_Update(
27059        ctx: *mut RIPEMD160_CTX,
27060        data: *const ::std::os::raw::c_void,
27061        len: usize,
27062    ) -> ::std::os::raw::c_int;
27063}
27064extern "C" {
27065    #[link_name = "\u{1}aws_lc_0_37_0_RIPEMD160_Final"]
27066    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27067}
27068extern "C" {
27069    #[link_name = "\u{1}aws_lc_0_37_0_RIPEMD160"]
27070    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
27071}
27072extern "C" {
27073    #[link_name = "\u{1}aws_lc_0_37_0_SIPHASH_24"]
27074    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
27075}
27076extern "C" {
27077    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_experiment_v1"]
27078    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27079}
27080extern "C" {
27081    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_experiment_v2_voprf"]
27082    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27083}
27084extern "C" {
27085    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_experiment_v2_pmb"]
27086    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27087}
27088extern "C" {
27089    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_pst_v1_voprf"]
27090    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27091}
27092extern "C" {
27093    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_pst_v1_pmb"]
27094    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27095}
27096#[repr(C)]
27097#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27098pub struct trust_token_st {
27099    pub data: *mut u8,
27100    pub len: usize,
27101}
27102#[test]
27103fn bindgen_test_layout_trust_token_st() {
27104    const UNINIT: ::std::mem::MaybeUninit<trust_token_st> = ::std::mem::MaybeUninit::uninit();
27105    let ptr = UNINIT.as_ptr();
27106    assert_eq!(
27107        ::std::mem::size_of::<trust_token_st>(),
27108        16usize,
27109        "Size of trust_token_st"
27110    );
27111    assert_eq!(
27112        ::std::mem::align_of::<trust_token_st>(),
27113        8usize,
27114        "Alignment of trust_token_st"
27115    );
27116    assert_eq!(
27117        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27118        0usize,
27119        "Offset of field: trust_token_st::data"
27120    );
27121    assert_eq!(
27122        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
27123        8usize,
27124        "Offset of field: trust_token_st::len"
27125    );
27126}
27127impl Default for trust_token_st {
27128    fn default() -> Self {
27129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27130        unsafe {
27131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27132            s.assume_init()
27133        }
27134    }
27135}
27136#[repr(C)]
27137#[derive(Debug, Copy, Clone)]
27138pub struct stack_st_TRUST_TOKEN {
27139    _unused: [u8; 0],
27140}
27141pub type sk_TRUST_TOKEN_free_func =
27142    ::std::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27143pub type sk_TRUST_TOKEN_copy_func =
27144    ::std::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27145pub type sk_TRUST_TOKEN_cmp_func = ::std::option::Option<
27146    unsafe extern "C" fn(
27147        arg1: *const *const TRUST_TOKEN,
27148        arg2: *const *const TRUST_TOKEN,
27149    ) -> ::std::os::raw::c_int,
27150>;
27151pub type sk_TRUST_TOKEN_delete_if_func = ::std::option::Option<
27152    unsafe extern "C" fn(
27153        arg1: *mut TRUST_TOKEN,
27154        arg2: *mut ::std::os::raw::c_void,
27155    ) -> ::std::os::raw::c_int,
27156>;
27157extern "C" {
27158    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_new"]
27159    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27160}
27161extern "C" {
27162    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_free"]
27163    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27164}
27165extern "C" {
27166    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_generate_key"]
27167    pub fn TRUST_TOKEN_generate_key(
27168        method: *const TRUST_TOKEN_METHOD,
27169        out_priv_key: *mut u8,
27170        out_priv_key_len: *mut usize,
27171        max_priv_key_len: usize,
27172        out_pub_key: *mut u8,
27173        out_pub_key_len: *mut usize,
27174        max_pub_key_len: usize,
27175        id: u32,
27176    ) -> ::std::os::raw::c_int;
27177}
27178extern "C" {
27179    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_derive_key_from_secret"]
27180    pub fn TRUST_TOKEN_derive_key_from_secret(
27181        method: *const TRUST_TOKEN_METHOD,
27182        out_priv_key: *mut u8,
27183        out_priv_key_len: *mut usize,
27184        max_priv_key_len: usize,
27185        out_pub_key: *mut u8,
27186        out_pub_key_len: *mut usize,
27187        max_pub_key_len: usize,
27188        id: u32,
27189        secret: *const u8,
27190        secret_len: usize,
27191    ) -> ::std::os::raw::c_int;
27192}
27193extern "C" {
27194    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_new"]
27195    pub fn TRUST_TOKEN_CLIENT_new(
27196        method: *const TRUST_TOKEN_METHOD,
27197        max_batchsize: usize,
27198    ) -> *mut TRUST_TOKEN_CLIENT;
27199}
27200extern "C" {
27201    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_free"]
27202    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27203}
27204extern "C" {
27205    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_add_key"]
27206    pub fn TRUST_TOKEN_CLIENT_add_key(
27207        ctx: *mut TRUST_TOKEN_CLIENT,
27208        out_key_index: *mut usize,
27209        key: *const u8,
27210        key_len: usize,
27211    ) -> ::std::os::raw::c_int;
27212}
27213extern "C" {
27214    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_set_srr_key"]
27215    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27216        ctx: *mut TRUST_TOKEN_CLIENT,
27217        key: *mut EVP_PKEY,
27218    ) -> ::std::os::raw::c_int;
27219}
27220extern "C" {
27221    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_begin_issuance"]
27222    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27223        ctx: *mut TRUST_TOKEN_CLIENT,
27224        out: *mut *mut u8,
27225        out_len: *mut usize,
27226        count: usize,
27227    ) -> ::std::os::raw::c_int;
27228}
27229extern "C" {
27230    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_begin_issuance_over_message"]
27231    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27232        ctx: *mut TRUST_TOKEN_CLIENT,
27233        out: *mut *mut u8,
27234        out_len: *mut usize,
27235        count: usize,
27236        msg: *const u8,
27237        msg_len: usize,
27238    ) -> ::std::os::raw::c_int;
27239}
27240extern "C" {
27241    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_finish_issuance"]
27242    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27243        ctx: *mut TRUST_TOKEN_CLIENT,
27244        out_key_index: *mut usize,
27245        response: *const u8,
27246        response_len: usize,
27247    ) -> *mut stack_st_TRUST_TOKEN;
27248}
27249extern "C" {
27250    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_begin_redemption"]
27251    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27252        ctx: *mut TRUST_TOKEN_CLIENT,
27253        out: *mut *mut u8,
27254        out_len: *mut usize,
27255        token: *const TRUST_TOKEN,
27256        data: *const u8,
27257        data_len: usize,
27258        time: u64,
27259    ) -> ::std::os::raw::c_int;
27260}
27261extern "C" {
27262    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_CLIENT_finish_redemption"]
27263    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27264        ctx: *mut TRUST_TOKEN_CLIENT,
27265        out_rr: *mut *mut u8,
27266        out_rr_len: *mut usize,
27267        out_sig: *mut *mut u8,
27268        out_sig_len: *mut usize,
27269        response: *const u8,
27270        response_len: usize,
27271    ) -> ::std::os::raw::c_int;
27272}
27273extern "C" {
27274    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_new"]
27275    pub fn TRUST_TOKEN_ISSUER_new(
27276        method: *const TRUST_TOKEN_METHOD,
27277        max_batchsize: usize,
27278    ) -> *mut TRUST_TOKEN_ISSUER;
27279}
27280extern "C" {
27281    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_free"]
27282    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27283}
27284extern "C" {
27285    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_add_key"]
27286    pub fn TRUST_TOKEN_ISSUER_add_key(
27287        ctx: *mut TRUST_TOKEN_ISSUER,
27288        key: *const u8,
27289        key_len: usize,
27290    ) -> ::std::os::raw::c_int;
27291}
27292extern "C" {
27293    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_set_srr_key"]
27294    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27295        ctx: *mut TRUST_TOKEN_ISSUER,
27296        key: *mut EVP_PKEY,
27297    ) -> ::std::os::raw::c_int;
27298}
27299extern "C" {
27300    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_set_metadata_key"]
27301    pub fn TRUST_TOKEN_ISSUER_set_metadata_key(
27302        ctx: *mut TRUST_TOKEN_ISSUER,
27303        key: *const u8,
27304        len: usize,
27305    ) -> ::std::os::raw::c_int;
27306}
27307extern "C" {
27308    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_issue"]
27309    pub fn TRUST_TOKEN_ISSUER_issue(
27310        ctx: *const TRUST_TOKEN_ISSUER,
27311        out: *mut *mut u8,
27312        out_len: *mut usize,
27313        out_tokens_issued: *mut usize,
27314        request: *const u8,
27315        request_len: usize,
27316        public_metadata: u32,
27317        private_metadata: u8,
27318        max_issuance: usize,
27319    ) -> ::std::os::raw::c_int;
27320}
27321extern "C" {
27322    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_redeem"]
27323    pub fn TRUST_TOKEN_ISSUER_redeem(
27324        ctx: *const TRUST_TOKEN_ISSUER,
27325        out_public: *mut u32,
27326        out_private: *mut u8,
27327        out_token: *mut *mut TRUST_TOKEN,
27328        out_client_data: *mut *mut u8,
27329        out_client_data_len: *mut usize,
27330        request: *const u8,
27331        request_len: usize,
27332    ) -> ::std::os::raw::c_int;
27333}
27334extern "C" {
27335    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_ISSUER_redeem_over_message"]
27336    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27337        ctx: *const TRUST_TOKEN_ISSUER,
27338        out_public: *mut u32,
27339        out_private: *mut u8,
27340        out_token: *mut *mut TRUST_TOKEN,
27341        out_client_data: *mut *mut u8,
27342        out_client_data_len: *mut usize,
27343        request: *const u8,
27344        request_len: usize,
27345        msg: *const u8,
27346        msg_len: usize,
27347    ) -> ::std::os::raw::c_int;
27348}
27349extern "C" {
27350    #[link_name = "\u{1}aws_lc_0_37_0_TRUST_TOKEN_decode_private_metadata"]
27351    pub fn TRUST_TOKEN_decode_private_metadata(
27352        method: *const TRUST_TOKEN_METHOD,
27353        out_value: *mut u8,
27354        key: *const u8,
27355        key_len: usize,
27356        nonce: *const u8,
27357        nonce_len: usize,
27358        encrypted_bit: u8,
27359    ) -> ::std::os::raw::c_int;
27360}
27361extern "C" {
27362    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_keygen_deterministic"]
27363    pub fn EVP_PKEY_keygen_deterministic(
27364        ctx: *mut EVP_PKEY_CTX,
27365        out_pkey: *mut *mut EVP_PKEY,
27366        seed: *const u8,
27367        seed_len: *mut usize,
27368    ) -> ::std::os::raw::c_int;
27369}
27370extern "C" {
27371    #[link_name = "\u{1}aws_lc_0_37_0_EVP_PKEY_encapsulate_deterministic"]
27372    pub fn EVP_PKEY_encapsulate_deterministic(
27373        ctx: *mut EVP_PKEY_CTX,
27374        ciphertext: *mut u8,
27375        ciphertext_len: *mut usize,
27376        shared_secret: *mut u8,
27377        shared_secret_len: *mut usize,
27378        seed: *const u8,
27379        seed_len: *mut usize,
27380    ) -> ::std::os::raw::c_int;
27381}
27382extern "C" {
27383    #[link_name = "\u{1}aws_lc_0_37_0_ERR_GET_LIB_RUST"]
27384    pub fn ERR_GET_LIB_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27385}
27386extern "C" {
27387    #[link_name = "\u{1}aws_lc_0_37_0_ERR_GET_REASON_RUST"]
27388    pub fn ERR_GET_REASON_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27389}
27390extern "C" {
27391    #[link_name = "\u{1}aws_lc_0_37_0_ERR_GET_FUNC_RUST"]
27392    pub fn ERR_GET_FUNC_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27393}
27394pub type __builtin_va_list = [__va_list_tag; 1usize];
27395#[repr(C)]
27396#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27397pub struct __va_list_tag {
27398    pub gp_offset: ::std::os::raw::c_uint,
27399    pub fp_offset: ::std::os::raw::c_uint,
27400    pub overflow_arg_area: *mut ::std::os::raw::c_void,
27401    pub reg_save_area: *mut ::std::os::raw::c_void,
27402}
27403#[test]
27404fn bindgen_test_layout___va_list_tag() {
27405    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
27406    let ptr = UNINIT.as_ptr();
27407    assert_eq!(
27408        ::std::mem::size_of::<__va_list_tag>(),
27409        24usize,
27410        "Size of __va_list_tag"
27411    );
27412    assert_eq!(
27413        ::std::mem::align_of::<__va_list_tag>(),
27414        8usize,
27415        "Alignment of __va_list_tag"
27416    );
27417    assert_eq!(
27418        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
27419        0usize,
27420        "Offset of field: __va_list_tag::gp_offset"
27421    );
27422    assert_eq!(
27423        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
27424        4usize,
27425        "Offset of field: __va_list_tag::fp_offset"
27426    );
27427    assert_eq!(
27428        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
27429        8usize,
27430        "Offset of field: __va_list_tag::overflow_arg_area"
27431    );
27432    assert_eq!(
27433        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
27434        16usize,
27435        "Offset of field: __va_list_tag::reg_save_area"
27436    );
27437}
27438impl Default for __va_list_tag {
27439    fn default() -> Self {
27440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27441        unsafe {
27442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27443            s.assume_init()
27444        }
27445    }
27446}
27447#[repr(C)]
27448#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
27449pub struct CRYPTO_dynlock_value {
27450    pub _address: u8,
27451}