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.66.2\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.66.2)\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_KYBER512: &[u8; 9] = b"KYBER512\0";
3306pub const NID_KYBER512: i32 = 971;
3307pub const SN_KYBER512_R3: &[u8; 12] = b"KYBER512_R3\0";
3308pub const NID_KYBER512_R3: i32 = 972;
3309pub const SN_KYBER768_R3: &[u8; 12] = b"KYBER768_R3\0";
3310pub const NID_KYBER768_R3: i32 = 973;
3311pub const SN_KYBER1024_R3: &[u8; 13] = b"KYBER1024_R3\0";
3312pub const NID_KYBER1024_R3: i32 = 974;
3313pub const SN_DILITHIUM3_R3: &[u8; 14] = b"DILITHIUM3_R3\0";
3314pub const NID_DILITHIUM3_R3: i32 = 975;
3315pub const SN_ffdhe2048: &[u8; 10] = b"ffdhe2048\0";
3316pub const NID_ffdhe2048: i32 = 976;
3317pub const SN_ffdhe4096: &[u8; 10] = b"ffdhe4096\0";
3318pub const NID_ffdhe4096: i32 = 977;
3319pub const SN_sha512_224: &[u8; 11] = b"SHA512-224\0";
3320pub const LN_sha512_224: &[u8; 11] = b"sha512-224\0";
3321pub const NID_sha512_224: i32 = 978;
3322pub const SN_shake128: &[u8; 9] = b"SHAKE128\0";
3323pub const LN_shake128: &[u8; 9] = b"shake128\0";
3324pub const NID_shake128: i32 = 979;
3325pub const SN_shake256: &[u8; 9] = b"SHAKE256\0";
3326pub const LN_shake256: &[u8; 9] = b"shake256\0";
3327pub const NID_shake256: i32 = 980;
3328pub const SN_SecP256r1Kyber768Draft00: &[u8; 25] = b"SecP256r1Kyber768Draft00\0";
3329pub const NID_SecP256r1Kyber768Draft00: i32 = 981;
3330pub const SN_X25519Kyber768Draft00: &[u8; 22] = b"X25519Kyber768Draft00\0";
3331pub const NID_X25519Kyber768Draft00: i32 = 982;
3332pub const SN_ffdhe3072: &[u8; 10] = b"ffdhe3072\0";
3333pub const NID_ffdhe3072: i32 = 983;
3334pub const SN_ffdhe8192: &[u8; 10] = b"ffdhe8192\0";
3335pub const NID_ffdhe8192: i32 = 984;
3336pub const SN_MLKEM512IPD: &[u8; 12] = b"MLKEM512IPD\0";
3337pub const NID_MLKEM512IPD: i32 = 985;
3338pub const SN_MLKEM768IPD: &[u8; 12] = b"MLKEM768IPD\0";
3339pub const NID_MLKEM768IPD: i32 = 986;
3340pub const SN_MLKEM1024IPD: &[u8; 13] = b"MLKEM1024IPD\0";
3341pub const NID_MLKEM1024IPD: i32 = 987;
3342pub const SN_MLKEM512: &[u8; 9] = b"MLKEM512\0";
3343pub const NID_MLKEM512: i32 = 988;
3344pub const SN_MLKEM768: &[u8; 9] = b"MLKEM768\0";
3345pub const NID_MLKEM768: i32 = 989;
3346pub const SN_MLKEM1024: &[u8; 10] = b"MLKEM1024\0";
3347pub const NID_MLKEM1024: i32 = 990;
3348pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3349pub const NID_X25519MLKEM768: i32 = 991;
3350pub const SN_SecP256r1MLKEM768: &[u8; 18] = b"SecP256r1MLKEM768\0";
3351pub const NID_SecP256r1MLKEM768: i32 = 992;
3352pub const SN_PQDSA: &[u8; 6] = b"PQDSA\0";
3353pub const NID_PQDSA: i32 = 993;
3354pub const SN_MLDSA44: &[u8; 8] = b"MLDSA44\0";
3355pub const NID_MLDSA44: i32 = 994;
3356pub const SN_MLDSA65: &[u8; 8] = b"MLDSA65\0";
3357pub const NID_MLDSA65: i32 = 995;
3358pub const SN_MLDSA87: &[u8; 8] = b"MLDSA87\0";
3359pub const NID_MLDSA87: i32 = 996;
3360pub const SN_ED25519ph: &[u8; 10] = b"ED25519ph\0";
3361pub const NID_ED25519ph: i32 = 997;
3362pub const SN_SecP384r1MLKEM1024: &[u8; 19] = b"SecP384r1MLKEM1024\0";
3363pub const NID_SecP384r1MLKEM1024: i32 = 998;
3364pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3365pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3366pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3367pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3368pub const MD5_CBLOCK: i32 = 64;
3369pub const MD5_DIGEST_LENGTH: i32 = 16;
3370pub const HMAC_MD5_PRECOMPUTED_KEY_SIZE: i32 = 32;
3371pub const HMAC_SHA1_PRECOMPUTED_KEY_SIZE: i32 = 40;
3372pub const HMAC_SHA224_PRECOMPUTED_KEY_SIZE: i32 = 64;
3373pub const HMAC_SHA256_PRECOMPUTED_KEY_SIZE: i32 = 64;
3374pub const HMAC_SHA384_PRECOMPUTED_KEY_SIZE: i32 = 128;
3375pub const HMAC_SHA512_PRECOMPUTED_KEY_SIZE: i32 = 128;
3376pub const HMAC_SHA512_224_PRECOMPUTED_KEY_SIZE: i32 = 128;
3377pub const HMAC_SHA512_256_PRECOMPUTED_KEY_SIZE: i32 = 128;
3378pub const HMAC_MAX_PRECOMPUTED_KEY_SIZE: i32 = 128;
3379pub const HMAC_R_MISSING_PARAMETERS: i32 = 100;
3380pub const HMAC_R_BUFFER_TOO_SMALL: i32 = 102;
3381pub const HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED: i32 = 103;
3382pub const HMAC_R_NOT_CALLED_JUST_AFTER_INIT: i32 = 104;
3383pub const HMAC_R_PRECOMPUTED_KEY_NOT_SUPPORTED_FOR_DIGEST: i32 = 105;
3384pub const EVP_PKEY_NONE: i32 = 0;
3385pub const EVP_PKEY_RSA: i32 = 6;
3386pub const EVP_PKEY_RSA_PSS: i32 = 912;
3387pub const EVP_PKEY_EC: i32 = 408;
3388pub const EVP_PKEY_ED25519: i32 = 949;
3389pub const EVP_PKEY_ED25519PH: i32 = 997;
3390pub const EVP_PKEY_X25519: i32 = 948;
3391pub const EVP_PKEY_HKDF: i32 = 969;
3392pub const EVP_PKEY_HMAC: i32 = 855;
3393pub const EVP_PKEY_DH: i32 = 28;
3394pub const EVP_PKEY_PQDSA: i32 = 993;
3395pub const EVP_PKEY_KEM: i32 = 970;
3396pub const PKCS5_SALT_LEN: i32 = 8;
3397pub const EVP_PKEY_RSA2: i32 = 19;
3398pub const EVP_PKEY_X448: i32 = 961;
3399pub const EVP_PKEY_ED448: i32 = 960;
3400pub const EVP_PKEY_DSA: i32 = 116;
3401pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3402pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3403pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3404pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3405pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3406pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 32;
3407pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 32;
3408pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 32;
3409pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3410pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3411pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3412pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3413pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3414pub const HRSS_SAMPLE_BYTES: i32 = 700;
3415pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3416pub const HRSS_ENCAP_BYTES: i32 = 1400;
3417pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3418pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3419pub const HRSS_KEY_BYTES: i32 = 32;
3420pub const HRSS_POLY3_BYTES: i32 = 140;
3421pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3422pub const MD4_CBLOCK: i32 = 64;
3423pub const MD4_DIGEST_LENGTH: i32 = 16;
3424pub const PKCS7_DETACHED: i32 = 64;
3425pub const PKCS7_BINARY: i32 = 128;
3426pub const PKCS7_NOINTERN: i32 = 16;
3427pub const PKCS7_NOATTR: i32 = 256;
3428pub const PKCS7_NOCERTS: i32 = 2;
3429pub const PKCS7_NOVERIFY: i32 = 32;
3430pub const PKCS7_TEXT: i32 = 1;
3431pub const PKCS7_NOSIGS: i32 = 4;
3432pub const PKCS7_NOCHAIN: i32 = 8;
3433pub const PKCS7_NOSMIMECAP: i32 = 512;
3434pub const PKCS7_STREAM: i32 = 4096;
3435pub const PKCS7_PARTIAL: i32 = 16384;
3436pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3437pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3438pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3439pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3440pub const PKCS7_R_INVALID_NULL_POINTER: i32 = 104;
3441pub const PKCS7_R_NO_CONTENT: i32 = 105;
3442pub const PKCS7_R_CIPHER_NOT_INITIALIZED: i32 = 106;
3443pub const PKCS7_R_UNSUPPORTED_CONTENT_TYPE: i32 = 107;
3444pub const PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST: i32 = 108;
3445pub const PKCS7_R_UNABLE_TO_FIND_MEM_BIO: i32 = 109;
3446pub const PKCS7_R_WRONG_CONTENT_TYPE: i32 = 110;
3447pub const PKCS7_R_CONTENT_AND_DATA_PRESENT: i32 = 111;
3448pub const PKCS7_R_NO_SIGNATURES_ON_DATA: i32 = 112;
3449pub const PKCS7_R_CERTIFICATE_VERIFY_ERROR: i32 = 113;
3450pub const PKCS7_R_SMIME_TEXT_ERROR: i32 = 114;
3451pub const PKCS7_R_SIGNATURE_FAILURE: i32 = 115;
3452pub const PKCS7_R_NO_SIGNERS: i32 = 116;
3453pub const PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 117;
3454pub const PKCS7_R_ERROR_SETTING_CIPHER: i32 = 118;
3455pub const PKCS7_R_ERROR_ADDING_RECIPIENT: i32 = 119;
3456pub const PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 120;
3457pub const PKCS7_R_DECRYPT_ERROR: i32 = 121;
3458pub const PKCS7_R_PKCS7_DATASIGN: i32 = 122;
3459pub const PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 123;
3460pub const PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE: i32 = 124;
3461pub const PKCS7_R_UNKNOWN_DIGEST_TYPE: i32 = 125;
3462pub const PKCS7_R_INVALID_SIGNED_DATA_TYPE: i32 = 126;
3463pub const PKCS7_R_UNSUPPORTED_CIPHER_TYPE: i32 = 127;
3464pub const PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE: i32 = 128;
3465pub const PKCS7_R_DIGEST_FAILURE: i32 = 129;
3466pub const PKCS7_R_WRONG_PKCS7_TYPE: i32 = 130;
3467pub const PKCS7_R_PKCS7_ADD_SIGNER_ERROR: i32 = 131;
3468pub const PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR: i32 = 132;
3469pub const PKCS7_R_NO_DEFAULT_DIGEST: i32 = 133;
3470pub const PKCS7_R_CERT_MUST_BE_RSA: i32 = 134;
3471pub const PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE: i32 = 135;
3472pub const RSA_PKCS1_PADDING: i32 = 1;
3473pub const RSA_NO_PADDING: i32 = 3;
3474pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3475pub const RSA_X931_PADDING: i32 = 5;
3476pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3477pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3478pub const RSA_FLAG_OPAQUE: i32 = 1;
3479pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3480pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3481pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3482pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3483pub const RSA_3: i32 = 3;
3484pub const RSA_F4: i32 = 65537;
3485pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3486pub const RSA_R_BAD_ENCODING: i32 = 100;
3487pub const RSA_R_BAD_E_VALUE: i32 = 101;
3488pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3489pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3490pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3491pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3492pub const RSA_R_BAD_VERSION: i32 = 106;
3493pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3494pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3495pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3496pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3497pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3498pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3499pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3500pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3501pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3502pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3503pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3504pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3505pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3506pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3507pub const RSA_R_ENCODE_ERROR: i32 = 121;
3508pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3509pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3510pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3511pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3512pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3513pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3514pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3515pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3516pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3517pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3518pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3519pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3520pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3521pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3522pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3523pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3524pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3525pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3526pub const RSA_R_TOO_LONG: i32 = 140;
3527pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3528pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3529pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3530pub const RSA_R_VALUE_MISSING: i32 = 144;
3531pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3532pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3533pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3534pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3535pub const RSA_R_MISMATCHED_SIGNATURE: i32 = 248;
3536pub const RSA_F_RSA_OSSL_PRIVATE_ENCRYPT: i32 = 0;
3537pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3538pub const X509V3_R_BAD_OBJECT: i32 = 101;
3539pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3540pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3541pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3542pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3543pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3544pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3545pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3546pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3547pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3548pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3549pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3550pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3551pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3552pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3553pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3554pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3555pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3556pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3557pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3558pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3559pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3560pub const X509V3_R_INVALID_NAME: i32 = 123;
3561pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3562pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3563pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3564pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3565pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3566pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3567pub const X509V3_R_INVALID_OPTION: i32 = 130;
3568pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3569pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3570pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3571pub const X509V3_R_INVALID_SECTION: i32 = 134;
3572pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3573pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3574pub const X509V3_R_MISSING_VALUE: i32 = 137;
3575pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3576pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3577pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3578pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3579pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3580pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3581pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3582pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3583pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3584pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3585pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3586pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3587pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3588pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3589pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3590pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3591pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3592pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3593pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3594pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3595pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3596pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3597pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3598pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3599pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3600pub const X509V3_R_INVALID_VALUE: i32 = 163;
3601pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3602pub const X509_VERSION_1: i32 = 0;
3603pub const X509_VERSION_2: i32 = 1;
3604pub const X509_VERSION_3: i32 = 2;
3605pub const EXFLAG_BCONS: i32 = 1;
3606pub const EXFLAG_KUSAGE: i32 = 2;
3607pub const EXFLAG_XKUSAGE: i32 = 4;
3608pub const EXFLAG_NSCERT: i32 = 8;
3609pub const EXFLAG_CA: i32 = 16;
3610pub const EXFLAG_SI: i32 = 32;
3611pub const EXFLAG_V1: i32 = 64;
3612pub const EXFLAG_INVALID: i32 = 128;
3613pub const EXFLAG_SET: i32 = 256;
3614pub const EXFLAG_CRITICAL: i32 = 512;
3615pub const EXFLAG_SS: i32 = 8192;
3616pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3617pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3618pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3619pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3620pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3621pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3622pub const X509v3_KU_CRL_SIGN: i32 = 2;
3623pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3624pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3625pub const XKU_SSL_SERVER: i32 = 1;
3626pub const XKU_SSL_CLIENT: i32 = 2;
3627pub const XKU_SMIME: i32 = 4;
3628pub const XKU_CODE_SIGN: i32 = 8;
3629pub const XKU_SGC: i32 = 16;
3630pub const XKU_OCSP_SIGN: i32 = 32;
3631pub const XKU_TIMESTAMP: i32 = 64;
3632pub const XKU_DVCS: i32 = 128;
3633pub const XKU_ANYEKU: i32 = 256;
3634pub const X509_SIG_INFO_VALID: i32 = 1;
3635pub const X509_SIG_INFO_TLS: i32 = 2;
3636pub const X509_CRL_VERSION_1: i32 = 0;
3637pub const X509_CRL_VERSION_2: i32 = 1;
3638pub const X509_REQ_VERSION_1: i32 = 0;
3639pub const X509V3_ADD_OP_MASK: i32 = 15;
3640pub const X509V3_ADD_DEFAULT: i32 = 0;
3641pub const X509V3_ADD_APPEND: i32 = 1;
3642pub const X509V3_ADD_REPLACE: i32 = 2;
3643pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3644pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3645pub const X509V3_ADD_DELETE: i32 = 5;
3646pub const X509V3_ADD_SILENT: i32 = 16;
3647pub const GEN_OTHERNAME: i32 = 0;
3648pub const GEN_EMAIL: i32 = 1;
3649pub const GEN_DNS: i32 = 2;
3650pub const GEN_X400: i32 = 3;
3651pub const GEN_DIRNAME: i32 = 4;
3652pub const GEN_EDIPARTY: i32 = 5;
3653pub const GEN_URI: i32 = 6;
3654pub const GEN_IPADD: i32 = 7;
3655pub const GEN_RID: i32 = 8;
3656pub const X509_LU_NONE: i32 = 0;
3657pub const X509_LU_X509: i32 = 1;
3658pub const X509_LU_CRL: i32 = 2;
3659pub const X509_LU_PKEY: i32 = 3;
3660pub const X509_V_OK: i32 = 0;
3661pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3662pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3663pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3664pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3665pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3666pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3667pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3668pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3669pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3670pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3671pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3672pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3673pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3674pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3675pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3676pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3677pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3678pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3679pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3680pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3681pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3682pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3683pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3684pub const X509_V_ERR_INVALID_CA: i32 = 24;
3685pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3686pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3687pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3688pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3689pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3690pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3691pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3692pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3693pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3694pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3695pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3696pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3697pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3698pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3699pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3700pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3701pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3702pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3703pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3704pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3705pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3706pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3707pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3708pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3709pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3710pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3711pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3712pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3713pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3714pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3715pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3716pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3717pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3718pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3719pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3720pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3721pub const X509_V_ERR_EE_KEY_TOO_SMALL: i32 = 68;
3722pub const X509_V_ERR_CA_KEY_TOO_SMALL: i32 = 69;
3723pub const X509_V_ERR_CA_MD_TOO_WEAK: i32 = 70;
3724pub const X509_V_UNABLE_TO_GET_CERTS_PUBLIC_KEY: i32 = 71;
3725pub const X509_V_ERR_EC_KEY_EXPLICIT_PARAMS: i32 = 72;
3726pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3727pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3728pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3729pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3730pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3731pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3732pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3733pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3734pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3735pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3736pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3737pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3738pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3739pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3740pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3741pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
3742pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3743pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
3744pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3745pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 1;
3746pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3747pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 16;
3748pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3749pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3750pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3751pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3752pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3753pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3754pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3755pub const X509_PURPOSE_ANY: i32 = 7;
3756pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3757pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3758pub const X509_TRUST_COMPAT: i32 = 1;
3759pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3760pub const X509_TRUST_SSL_SERVER: i32 = 3;
3761pub const X509_TRUST_EMAIL: i32 = 4;
3762pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3763pub const X509_TRUST_OCSP_SIGN: i32 = 6;
3764pub const X509_TRUST_OCSP_REQUEST: i32 = 7;
3765pub const X509_TRUST_TSA: i32 = 8;
3766pub const X509_FILETYPE_PEM: i32 = 1;
3767pub const X509_FILETYPE_ASN1: i32 = 2;
3768pub const X509_FILETYPE_DEFAULT: i32 = 3;
3769pub const X509_L_FILE_LOAD: i32 = 1;
3770pub const X509_L_ADD_DIR: i32 = 2;
3771pub const X509_FLAG_COMPAT: i32 = 0;
3772pub const X509_FLAG_NO_HEADER: i32 = 1;
3773pub const X509_FLAG_NO_VERSION: i32 = 2;
3774pub const X509_FLAG_NO_SERIAL: i32 = 4;
3775pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3776pub const X509_FLAG_NO_ISSUER: i32 = 16;
3777pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3778pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3779pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3780pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3781pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3782pub const X509_FLAG_NO_AUX: i32 = 1024;
3783pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3784pub const X509_FLAG_NO_IDS: i32 = 4096;
3785pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3786pub const X509V3_EXT_DEFAULT: i32 = 0;
3787pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3788pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3789pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3790pub const XN_FLAG_COMPAT: i32 = 0;
3791pub const XN_FLAG_SEP_MASK: i32 = 983040;
3792pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3793pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3794pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3795pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3796pub const XN_FLAG_DN_REV: i32 = 1048576;
3797pub const XN_FLAG_FN_MASK: i32 = 6291456;
3798pub const XN_FLAG_FN_SN: i32 = 0;
3799pub const XN_FLAG_FN_LN: i32 = 2097152;
3800pub const XN_FLAG_FN_OID: i32 = 4194304;
3801pub const XN_FLAG_FN_NONE: i32 = 6291456;
3802pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3803pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3804pub const XN_FLAG_FN_ALIGN: i32 = 33554432;
3805pub const XN_FLAG_RFC2253: i32 = 17892119;
3806pub const XN_FLAG_ONELINE: i32 = 8520479;
3807pub const XN_FLAG_MULTILINE: i32 = 44302342;
3808pub const X509_TRUST_TRUSTED: i32 = 1;
3809pub const X509_TRUST_REJECTED: i32 = 2;
3810pub const X509_TRUST_UNTRUSTED: i32 = 3;
3811pub const X509V3_EXT_MULTILINE: i32 = 4;
3812pub const X509V3_CTX_TEST: i32 = 1;
3813pub const X509V3_CTX_REPLACE: i32 = 2;
3814pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3815pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3816pub const NS_SSL_CLIENT: i32 = 128;
3817pub const NS_SSL_SERVER: i32 = 64;
3818pub const NS_SMIME: i32 = 32;
3819pub const NS_OBJSIGN: i32 = 16;
3820pub const NS_SSL_CA: i32 = 4;
3821pub const NS_SMIME_CA: i32 = 2;
3822pub const NS_OBJSIGN_CA: i32 = 1;
3823pub const NS_ANY_CA: i32 = 7;
3824pub const X509_V_FLAG_POLICY_MASK: i32 = 1920;
3825pub const X509_R_AKID_MISMATCH: i32 = 100;
3826pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3827pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3828pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3829pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3830pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3831pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3832pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3833pub const X509_R_IDP_MISMATCH: i32 = 108;
3834pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3835pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3836pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3837pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3838pub const X509_R_INVALID_TRUST: i32 = 113;
3839pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3840pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3841pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3842pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3843pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3844pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3845pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3846pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3847pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3848pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3849pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3850pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3851pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3852pub const X509_R_SHOULD_RETRY: i32 = 127;
3853pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3854pub const X509_R_UNKNOWN_NID: i32 = 129;
3855pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3856pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3857pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3858pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3859pub const X509_R_WRONG_TYPE: i32 = 134;
3860pub const X509_R_NAME_TOO_LONG: i32 = 135;
3861pub const X509_R_INVALID_PARAMETER: i32 = 136;
3862pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3863pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3864pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3865pub const X509_R_INVALID_VERSION: i32 = 140;
3866pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3867pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3868pub const X509_R_NO_CRL_FOUND: i32 = 143;
3869pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
3870pub const X509_R_UNKNOWN_SIGID_ALGS: i32 = 145;
3871pub const CRL_REASON_NONE: i32 = -1;
3872pub const CRL_REASON_UNSPECIFIED: i32 = 0;
3873pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
3874pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
3875pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
3876pub const CRL_REASON_SUPERSEDED: i32 = 4;
3877pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
3878pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
3879pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
3880pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
3881pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
3882pub const KU_DIGITAL_SIGNATURE: i32 = 128;
3883pub const KU_NON_REPUDIATION: i32 = 64;
3884pub const KU_KEY_ENCIPHERMENT: i32 = 32;
3885pub const KU_DATA_ENCIPHERMENT: i32 = 16;
3886pub const KU_KEY_AGREEMENT: i32 = 8;
3887pub const KU_KEY_CERT_SIGN: i32 = 4;
3888pub const KU_CRL_SIGN: i32 = 2;
3889pub const KU_ENCIPHER_ONLY: i32 = 1;
3890pub const KU_DECIPHER_ONLY: i32 = 32768;
3891pub const OCSP_REVOKED_STATUS_NOSTATUS: i32 = -1;
3892pub const OCSP_REVOKED_STATUS_UNSPECIFIED: i32 = 0;
3893pub const OCSP_REVOKED_STATUS_KEYCOMPROMISE: i32 = 1;
3894pub const OCSP_REVOKED_STATUS_CACOMPROMISE: i32 = 2;
3895pub const OCSP_REVOKED_STATUS_AFFILIATIONCHANGED: i32 = 3;
3896pub const OCSP_REVOKED_STATUS_SUPERSEDED: i32 = 4;
3897pub const OCSP_REVOKED_STATUS_CESSATIONOFOPERATION: i32 = 5;
3898pub const OCSP_REVOKED_STATUS_CERTIFICATEHOLD: i32 = 6;
3899pub const OCSP_REVOKED_STATUS_REMOVEFROMCRL: i32 = 8;
3900pub const OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN: i32 = 9;
3901pub const OCSP_REVOKED_STATUS_AACOMPROMISE: i32 = 10;
3902pub const OCSP_NOCERTS: i32 = 1;
3903pub const OCSP_NOINTERN: i32 = 2;
3904pub const OCSP_NOCHAIN: i32 = 8;
3905pub const OCSP_NOVERIFY: i32 = 16;
3906pub const OCSP_NOEXPLICIT: i32 = 32;
3907pub const OCSP_TRUSTOTHER: i32 = 512;
3908pub const OCSP_RESPID_KEY: i32 = 1024;
3909pub const OCSP_NOTIME: i32 = 2048;
3910pub const OCSP_NOSIGS: i32 = 0;
3911pub const OCSP_NOCASIGN: i32 = 0;
3912pub const OCSP_NODELEGATED: i32 = 0;
3913pub const OCSP_NOCHECKS: i32 = 0;
3914pub const OCSP_RESPONSE_STATUS_SUCCESSFUL: i32 = 0;
3915pub const OCSP_RESPONSE_STATUS_MALFORMEDREQUEST: i32 = 1;
3916pub const OCSP_RESPONSE_STATUS_INTERNALERROR: i32 = 2;
3917pub const OCSP_RESPONSE_STATUS_TRYLATER: i32 = 3;
3918pub const OCSP_RESPONSE_STATUS_SIGREQUIRED: i32 = 5;
3919pub const OCSP_RESPONSE_STATUS_UNAUTHORIZED: i32 = 6;
3920pub const V_OCSP_RESPID_NAME: i32 = 0;
3921pub const V_OCSP_RESPID_KEY: i32 = 1;
3922pub const V_OCSP_CERTSTATUS_GOOD: i32 = 0;
3923pub const V_OCSP_CERTSTATUS_REVOKED: i32 = 1;
3924pub const V_OCSP_CERTSTATUS_UNKNOWN: i32 = 2;
3925pub const OCSP_NONCE_EQUAL: i32 = 1;
3926pub const OCSP_NONCE_BOTH_ABSENT: i32 = 2;
3927pub const OCSP_NONCE_RESPONSE_ONLY: i32 = 3;
3928pub const OCSP_NONCE_NOT_EQUAL: i32 = 0;
3929pub const OCSP_NONCE_REQUEST_ONLY: i32 = -1;
3930pub const OCSP_R_CERTIFICATE_VERIFY_ERROR: i32 = 101;
3931pub const OCSP_R_DIGEST_ERR: i32 = 102;
3932pub const OCSP_R_MISSING_OCSPSIGNING_USAGE: i32 = 103;
3933pub const OCSP_R_NOT_BASIC_RESPONSE: i32 = 104;
3934pub const OCSP_R_NO_CERTIFICATES_IN_CHAIN: i32 = 105;
3935pub const OCSP_R_NO_RESPONSE_DATA: i32 = 108;
3936pub const OCSP_R_NO_REVOKED_TIME: i32 = 109;
3937pub const OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 110;
3938pub const OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA: i32 = 111;
3939pub const OCSP_R_ROOT_CA_NOT_TRUSTED: i32 = 112;
3940pub const OCSP_R_SERVER_RESPONSE_PARSE_ERROR: i32 = 115;
3941pub const OCSP_R_SIGNATURE_FAILURE: i32 = 117;
3942pub const OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 118;
3943pub const OCSP_R_UNKNOWN_MESSAGE_DIGEST: i32 = 119;
3944pub const OCSP_R_UNKNOWN_NID: i32 = 120;
3945pub const OCSP_R_ERROR_PARSING_URL: i32 = 121;
3946pub const OCSP_R_ERROR_IN_NEXTUPDATE_FIELD: i32 = 122;
3947pub const OCSP_R_ERROR_IN_THISUPDATE_FIELD: i32 = 123;
3948pub const OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE: i32 = 124;
3949pub const OCSP_R_STATUS_EXPIRED: i32 = 125;
3950pub const OCSP_R_STATUS_NOT_YET_VALID: i32 = 126;
3951pub const OCSP_R_STATUS_TOO_OLD: i32 = 127;
3952pub const OCSP_R_REQUEST_NOT_SIGNED: i32 = 128;
3953pub const OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE: i32 = 129;
3954pub const OCSP_R_NO_SIGNER_KEY: i32 = 130;
3955pub const OCSP_R_OCSP_REQUEST_DUPLICATE_SIGNATURE: i32 = 131;
3956pub const OCSP_R_UNKNOWN_FIELD_VALUE: i32 = 132;
3957pub const PEM_BUFSIZE: i32 = 1024;
3958pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
3959pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
3960pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
3961pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
3962pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
3963pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
3964pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
3965pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
3966pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
3967pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
3968pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
3969pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
3970pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
3971pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
3972pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
3973pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
3974pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
3975pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
3976pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
3977pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
3978pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
3979pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
3980pub const PEM_STRING_ECPARAMETERS: &[u8; 14] = b"EC PARAMETERS\0";
3981pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
3982pub const PEM_STRING_PARAMETERS: &[u8; 11] = b"PARAMETERS\0";
3983pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
3984pub const PEM_TYPE_ENCRYPTED: i32 = 10;
3985pub const PEM_TYPE_MIC_ONLY: i32 = 20;
3986pub const PEM_TYPE_MIC_CLEAR: i32 = 30;
3987pub const PEM_TYPE_CLEAR: i32 = 40;
3988pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
3989pub const PEM_R_BAD_DECRYPT: i32 = 101;
3990pub const PEM_R_BAD_END_LINE: i32 = 102;
3991pub const PEM_R_BAD_IV_CHARS: i32 = 103;
3992pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
3993pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
3994pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
3995pub const PEM_R_NOT_DEK_INFO: i32 = 107;
3996pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
3997pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
3998pub const PEM_R_NO_START_LINE: i32 = 110;
3999pub const PEM_R_READ_KEY: i32 = 111;
4000pub const PEM_R_SHORT_HEADER: i32 = 112;
4001pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
4002pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
4003pub const PEM_R_PROBLEMS_GETTING_PASSWORD: i32 = 115;
4004pub const PKCS12_DEFAULT_ITER: i32 = 2048;
4005pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
4006pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
4007pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
4008pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
4009pub const PKCS8_R_DECODE_ERROR: i32 = 104;
4010pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
4011pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4012pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4013pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4014pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4015pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4016pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4017pub const PKCS8_R_MISSING_MAC: i32 = 112;
4018pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4019pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4020pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4021pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4022pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4023pub const PKCS8_R_TOO_LONG: i32 = 118;
4024pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4025pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4026pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4027pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4028pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4029pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4030pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4031pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4032pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4033pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4034pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4035pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4036pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4037pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4038pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4039pub const PKCS12_R_MAC_VERIFY_FAILURE: i32 = 108;
4040pub const RAND_PRED_RESISTANCE_LEN: i32 = 32;
4041pub const RIPEMD160_CBLOCK: i32 = 64;
4042pub const RIPEMD160_LBLOCK: i32 = 16;
4043pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4044pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4045pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4046pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4047pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4048pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4049pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4050pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4051pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4052pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4053pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4054pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4055pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4056pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4057pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4058pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4059pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4060pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4061pub type __off_t = ::std::os::raw::c_long;
4062pub type __off64_t = ::std::os::raw::c_long;
4063pub type __time_t = ::std::os::raw::c_long;
4064pub type time_t = __time_t;
4065#[repr(C)]
4066#[repr(align(4))]
4067#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
4068pub struct static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4069    pub _bitfield_align_1: [u8; 0],
4070    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
4071    pub __bindgen_padding_0: [u8; 3usize],
4072}
4073#[test]
4074fn bindgen_test_layout_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4075) {
4076    assert_eq!(
4077        ::std::mem::size_of::<
4078            static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit,
4079        >(),
4080        4usize,
4081        "Size of static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit"
4082    );
4083    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");
4084}
4085impl static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4086    #[inline]
4087    pub fn static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4088        &self,
4089    ) -> ::std::os::raw::c_uint {
4090        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
4091    }
4092    #[inline]
4093    pub fn set_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4094        &mut self,
4095        val: ::std::os::raw::c_uint,
4096    ) {
4097        unsafe {
4098            let val: u32 = ::std::mem::transmute(val);
4099            self._bitfield_1.set(0usize, 1u8, val as u64)
4100        }
4101    }
4102    #[inline]
4103    pub unsafe fn static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4104        this: *const Self,
4105    ) -> ::std::os::raw::c_uint {
4106        unsafe {
4107            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4108                ::std::ptr::addr_of!((*this)._bitfield_1),
4109                0usize,
4110                1u8,
4111            ) as u32)
4112        }
4113    }
4114    #[inline]
4115    pub unsafe fn set_static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4116        this: *mut Self,
4117        val: ::std::os::raw::c_uint,
4118    ) {
4119        unsafe {
4120            let val: u32 = ::std::mem::transmute(val);
4121            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4122                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4123                0usize,
4124                1u8,
4125                val as u64,
4126            )
4127        }
4128    }
4129    #[inline]
4130    pub fn new_bitfield_1(
4131        static_assertion_at_line_276_error_is_pointer_size_must_be_8_bytes_for_64_bit : :: std :: os :: raw :: c_uint,
4132    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
4133        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
4134        __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 }) ;
4135        __bindgen_bitfield_unit
4136    }
4137}
4138pub type ossl_ssize_t = isize;
4139pub type CBS_ASN1_TAG = u32;
4140pub type CRYPTO_THREADID = ::std::os::raw::c_int;
4141#[repr(C)]
4142#[derive(Debug, Copy, Clone)]
4143pub struct asn1_null_st {
4144    _unused: [u8; 0],
4145}
4146pub type ASN1_NULL = asn1_null_st;
4147pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
4148pub type ASN1_ITEM = ASN1_ITEM_st;
4149#[repr(C)]
4150#[derive(Debug, Copy, Clone)]
4151pub struct asn1_object_st {
4152    _unused: [u8; 0],
4153}
4154pub type ASN1_OBJECT = asn1_object_st;
4155#[repr(C)]
4156#[derive(Debug, Copy, Clone)]
4157pub struct asn1_pctx_st {
4158    _unused: [u8; 0],
4159}
4160pub type ASN1_PCTX = asn1_pctx_st;
4161pub type ASN1_BIT_STRING = asn1_string_st;
4162pub type ASN1_BMPSTRING = asn1_string_st;
4163pub type ASN1_ENUMERATED = asn1_string_st;
4164pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4165pub type ASN1_GENERALSTRING = asn1_string_st;
4166pub type ASN1_IA5STRING = asn1_string_st;
4167pub type ASN1_INTEGER = asn1_string_st;
4168pub type ASN1_OCTET_STRING = asn1_string_st;
4169pub type ASN1_PRINTABLESTRING = asn1_string_st;
4170pub type ASN1_STRING = asn1_string_st;
4171pub type ASN1_T61STRING = asn1_string_st;
4172pub type ASN1_TIME = asn1_string_st;
4173pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4174pub type ASN1_UTCTIME = asn1_string_st;
4175pub type ASN1_UTF8STRING = asn1_string_st;
4176pub type ASN1_VISIBLESTRING = asn1_string_st;
4177pub type ASN1_TYPE = asn1_type_st;
4178pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4179pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4180pub type DIST_POINT = DIST_POINT_st;
4181pub type DSA_SIG = DSA_SIG_st;
4182pub type GENERAL_NAME = GENERAL_NAME_st;
4183pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4184pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4185pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4186pub type NETSCAPE_SPKI = Netscape_spki_st;
4187pub type RIPEMD160_CTX = RIPEMD160state_st;
4188#[repr(C)]
4189#[derive(Debug, Copy, Clone)]
4190pub struct X509_VERIFY_PARAM_st {
4191    _unused: [u8; 0],
4192}
4193pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4194pub type X509_ALGOR = X509_algor_st;
4195#[repr(C)]
4196#[derive(Debug, Copy, Clone)]
4197pub struct X509_crl_st {
4198    _unused: [u8; 0],
4199}
4200pub type X509_CRL = X509_crl_st;
4201#[repr(C)]
4202#[derive(Debug, Copy, Clone)]
4203pub struct X509_extension_st {
4204    _unused: [u8; 0],
4205}
4206pub type X509_EXTENSION = X509_extension_st;
4207pub type X509_INFO = X509_info_st;
4208#[repr(C)]
4209#[derive(Debug, Copy, Clone)]
4210pub struct X509_name_entry_st {
4211    _unused: [u8; 0],
4212}
4213pub type X509_NAME_ENTRY = X509_name_entry_st;
4214#[repr(C)]
4215#[derive(Debug, Copy, Clone)]
4216pub struct X509_name_st {
4217    _unused: [u8; 0],
4218}
4219pub type X509_NAME = X509_name_st;
4220#[repr(C)]
4221#[derive(Debug, Copy, Clone)]
4222pub struct X509_pubkey_st {
4223    _unused: [u8; 0],
4224}
4225pub type X509_PUBKEY = X509_pubkey_st;
4226#[repr(C)]
4227#[derive(Debug, Copy, Clone)]
4228pub struct X509_req_st {
4229    _unused: [u8; 0],
4230}
4231pub type X509_REQ = X509_req_st;
4232#[repr(C)]
4233#[derive(Debug, Copy, Clone)]
4234pub struct x509_sig_info_st {
4235    _unused: [u8; 0],
4236}
4237pub type X509_SIG_INFO = x509_sig_info_st;
4238#[repr(C)]
4239#[derive(Debug, Copy, Clone)]
4240pub struct X509_sig_st {
4241    _unused: [u8; 0],
4242}
4243pub type X509_SIG = X509_sig_st;
4244#[repr(C)]
4245#[derive(Debug, Copy, Clone)]
4246pub struct bignum_ctx {
4247    _unused: [u8; 0],
4248}
4249pub type BN_CTX = bignum_ctx;
4250pub type BIGNUM = bignum_st;
4251pub type BIO_METHOD = bio_method_st;
4252pub type BIO = bio_st;
4253pub type BLAKE2B_CTX = blake2b_state_st;
4254pub type BN_GENCB = bn_gencb_st;
4255pub type BN_MONT_CTX = bn_mont_ctx_st;
4256pub type BUF_MEM = buf_mem_st;
4257#[repr(C)]
4258#[derive(Debug, Copy, Clone)]
4259pub struct cast_key_st {
4260    _unused: [u8; 0],
4261}
4262pub type CAST_KEY = cast_key_st;
4263pub type CBB = cbb_st;
4264pub type CBS = cbs_st;
4265#[repr(C)]
4266#[derive(Debug, Copy, Clone)]
4267pub struct cmac_ctx_st {
4268    _unused: [u8; 0],
4269}
4270pub type CMAC_CTX = cmac_ctx_st;
4271pub type CONF = conf_st;
4272pub type CONF_VALUE = conf_value_st;
4273#[repr(C)]
4274#[derive(Debug, Copy, Clone)]
4275pub struct crypto_buffer_pool_st {
4276    _unused: [u8; 0],
4277}
4278pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
4279#[repr(C)]
4280#[derive(Debug, Copy, Clone)]
4281pub struct crypto_buffer_st {
4282    _unused: [u8; 0],
4283}
4284pub type CRYPTO_BUFFER = crypto_buffer_st;
4285#[repr(C)]
4286#[derive(Debug, Copy, Clone)]
4287pub struct ctr_drbg_state_st {
4288    _unused: [u8; 0],
4289}
4290pub type CTR_DRBG_STATE = ctr_drbg_state_st;
4291#[repr(C)]
4292#[derive(Debug, Copy, Clone)]
4293pub struct dh_st {
4294    _unused: [u8; 0],
4295}
4296pub type DH = dh_st;
4297#[repr(C)]
4298#[derive(Debug, Copy, Clone)]
4299pub struct dsa_st {
4300    _unused: [u8; 0],
4301}
4302pub type DSA = dsa_st;
4303#[repr(C)]
4304#[derive(Debug, Copy, Clone)]
4305pub struct ec_group_st {
4306    _unused: [u8; 0],
4307}
4308pub type EC_GROUP = ec_group_st;
4309#[repr(C)]
4310#[derive(Debug, Copy, Clone)]
4311pub struct ec_key_st {
4312    _unused: [u8; 0],
4313}
4314pub type EC_KEY = ec_key_st;
4315#[repr(C)]
4316#[derive(Debug, Copy, Clone)]
4317pub struct ec_point_st {
4318    _unused: [u8; 0],
4319}
4320pub type EC_POINT = ec_point_st;
4321#[repr(C)]
4322#[derive(Debug, Copy, Clone)]
4323pub struct ec_key_method_st {
4324    _unused: [u8; 0],
4325}
4326pub type EC_KEY_METHOD = ec_key_method_st;
4327pub type ECDSA_SIG = ecdsa_sig_st;
4328#[repr(C)]
4329#[derive(Debug, Copy, Clone)]
4330pub struct engine_st {
4331    _unused: [u8; 0],
4332}
4333pub type ENGINE = engine_st;
4334pub type EVP_MD_CTX = env_md_ctx_st;
4335#[repr(C)]
4336#[derive(Debug, Copy, Clone)]
4337pub struct env_md_st {
4338    _unused: [u8; 0],
4339}
4340pub type EVP_MD = env_md_st;
4341#[repr(C)]
4342#[derive(Debug, Copy, Clone)]
4343pub struct evp_aead_st {
4344    _unused: [u8; 0],
4345}
4346pub type EVP_AEAD = evp_aead_st;
4347pub type EVP_AEAD_CTX = evp_aead_ctx_st;
4348pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
4349#[repr(C)]
4350#[derive(Debug, Copy, Clone)]
4351pub struct evp_cipher_st {
4352    _unused: [u8; 0],
4353}
4354pub type EVP_CIPHER = evp_cipher_st;
4355pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
4356#[repr(C)]
4357#[derive(Debug, Copy, Clone)]
4358pub struct evp_hpke_aead_st {
4359    _unused: [u8; 0],
4360}
4361pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
4362pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
4363#[repr(C)]
4364#[derive(Debug, Copy, Clone)]
4365pub struct evp_hpke_kdf_st {
4366    _unused: [u8; 0],
4367}
4368pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
4369#[repr(C)]
4370#[derive(Debug, Copy, Clone)]
4371pub struct evp_hpke_kem_st {
4372    _unused: [u8; 0],
4373}
4374pub type EVP_HPKE_KEM = evp_hpke_kem_st;
4375pub type EVP_HPKE_KEY = evp_hpke_key_st;
4376#[repr(C)]
4377#[derive(Debug, Copy, Clone)]
4378pub struct evp_kem_st {
4379    _unused: [u8; 0],
4380}
4381pub type EVP_KEM = evp_kem_st;
4382#[repr(C)]
4383#[derive(Debug, Copy, Clone)]
4384pub struct kem_key_st {
4385    _unused: [u8; 0],
4386}
4387pub type KEM_KEY = kem_key_st;
4388#[repr(C)]
4389#[derive(Debug, Copy, Clone)]
4390pub struct evp_pkey_ctx_st {
4391    _unused: [u8; 0],
4392}
4393pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
4394#[repr(C)]
4395#[derive(Debug, Copy, Clone)]
4396pub struct evp_pkey_asn1_method_st {
4397    _unused: [u8; 0],
4398}
4399pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st;
4400#[repr(C)]
4401#[derive(Debug, Copy, Clone)]
4402pub struct evp_pkey_st {
4403    _unused: [u8; 0],
4404}
4405pub type EVP_PKEY = evp_pkey_st;
4406#[repr(C)]
4407#[derive(Debug, Copy, Clone)]
4408pub struct evp_pkey_ctx_signature_context_params_st {
4409    _unused: [u8; 0],
4410}
4411pub type EVP_PKEY_CTX_SIGNATURE_CONTEXT_PARAMS = evp_pkey_ctx_signature_context_params_st;
4412pub type HMAC_CTX = hmac_ctx_st;
4413pub type MD4_CTX = md4_state_st;
4414pub type MD5_CTX = md5_state_st;
4415#[repr(C)]
4416#[derive(Debug, Copy, Clone)]
4417pub struct pqdsa_key_st {
4418    _unused: [u8; 0],
4419}
4420pub type PQDSA_KEY = pqdsa_key_st;
4421#[repr(C)]
4422#[derive(Debug, Copy, Clone)]
4423pub struct ocsp_req_ctx_st {
4424    _unused: [u8; 0],
4425}
4426pub type OCSP_REQ_CTX = ocsp_req_ctx_st;
4427#[repr(C)]
4428#[derive(Debug, Copy, Clone)]
4429pub struct ossl_init_settings_st {
4430    _unused: [u8; 0],
4431}
4432pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
4433#[repr(C)]
4434#[derive(Debug, Copy, Clone)]
4435pub struct pkcs7_digest_st {
4436    _unused: [u8; 0],
4437}
4438pub type PKCS7_DIGEST = pkcs7_digest_st;
4439#[repr(C)]
4440#[derive(Debug, Copy, Clone)]
4441pub struct pkcs7_enc_content_st {
4442    _unused: [u8; 0],
4443}
4444pub type PKCS7_ENC_CONTENT = pkcs7_enc_content_st;
4445#[repr(C)]
4446#[derive(Debug, Copy, Clone)]
4447pub struct pkcs7_encrypt_st {
4448    _unused: [u8; 0],
4449}
4450pub type PKCS7_ENCRYPT = pkcs7_encrypt_st;
4451pub type PKCS7_ENVELOPE = pkcs7_envelope_st;
4452pub type PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st;
4453pub type PKCS7_RECIP_INFO = pkcs7_recip_info_st;
4454pub type PKCS7_SIGN_ENVELOPE = pkcs7_sign_envelope_st;
4455pub type PKCS7_SIGNED = pkcs7_signed_st;
4456pub type PKCS7_SIGNER_INFO = pkcs7_signer_info_st;
4457pub type PKCS7 = pkcs7_st;
4458#[repr(C)]
4459#[derive(Debug, Copy, Clone)]
4460pub struct pkcs12_st {
4461    _unused: [u8; 0],
4462}
4463pub type PKCS12 = pkcs12_st;
4464#[repr(C)]
4465#[derive(Debug, Copy, Clone)]
4466pub struct pkcs8_priv_key_info_st {
4467    _unused: [u8; 0],
4468}
4469pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
4470pub type X509_PKEY = private_key_st;
4471pub type RAND_METHOD = rand_meth_st;
4472pub type RC4_KEY = rc4_key_st;
4473#[repr(C)]
4474#[derive(Debug, Copy, Clone)]
4475pub struct rsa_meth_st {
4476    _unused: [u8; 0],
4477}
4478pub type RSA_METHOD = rsa_meth_st;
4479#[repr(C)]
4480#[derive(Debug, Copy, Clone)]
4481pub struct rsassa_pss_params_st {
4482    _unused: [u8; 0],
4483}
4484pub type RSASSA_PSS_PARAMS = rsassa_pss_params_st;
4485pub type RSA_PSS_PARAMS = rsa_pss_params_st;
4486#[repr(C)]
4487#[derive(Debug, Copy, Clone)]
4488pub struct rsa_st {
4489    _unused: [u8; 0],
4490}
4491pub type RSA = rsa_st;
4492pub type SHA256_CTX = sha256_state_st;
4493pub type SHA512_CTX = sha512_state_st;
4494pub type SHA_CTX = sha_state_st;
4495#[repr(C)]
4496#[derive(Debug, Copy, Clone)]
4497pub struct spake2_ctx_st {
4498    _unused: [u8; 0],
4499}
4500pub type SPAKE2_CTX = spake2_ctx_st;
4501#[repr(C)]
4502#[derive(Debug, Copy, Clone)]
4503pub struct srtp_protection_profile_st {
4504    _unused: [u8; 0],
4505}
4506pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
4507#[repr(C)]
4508#[derive(Debug, Copy, Clone)]
4509pub struct ssl_cipher_st {
4510    _unused: [u8; 0],
4511}
4512pub type SSL_CIPHER = ssl_cipher_st;
4513#[repr(C)]
4514#[derive(Debug, Copy, Clone)]
4515pub struct ssl_ctx_st {
4516    _unused: [u8; 0],
4517}
4518pub type SSL_CTX = ssl_ctx_st;
4519#[repr(C)]
4520#[derive(Debug, Copy, Clone)]
4521pub struct ssl_early_callback_ctx {
4522    _unused: [u8; 0],
4523}
4524pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
4525#[repr(C)]
4526#[derive(Debug, Copy, Clone)]
4527pub struct ssl_ech_keys_st {
4528    _unused: [u8; 0],
4529}
4530pub type SSL_ECH_KEYS = ssl_ech_keys_st;
4531#[repr(C)]
4532#[derive(Debug, Copy, Clone)]
4533pub struct ssl_method_st {
4534    _unused: [u8; 0],
4535}
4536pub type SSL_METHOD = ssl_method_st;
4537#[repr(C)]
4538#[derive(Debug, Copy, Clone)]
4539pub struct ssl_private_key_method_st {
4540    _unused: [u8; 0],
4541}
4542pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
4543#[repr(C)]
4544#[derive(Debug, Copy, Clone)]
4545pub struct ssl_quic_method_st {
4546    _unused: [u8; 0],
4547}
4548pub type SSL_QUIC_METHOD = ssl_quic_method_st;
4549#[repr(C)]
4550#[derive(Debug, Copy, Clone)]
4551pub struct ssl_session_st {
4552    _unused: [u8; 0],
4553}
4554pub type SSL_SESSION = ssl_session_st;
4555#[repr(C)]
4556#[derive(Debug, Copy, Clone)]
4557pub struct ssl_st {
4558    _unused: [u8; 0],
4559}
4560pub type SSL = ssl_st;
4561#[repr(C)]
4562#[derive(Debug, Copy, Clone)]
4563pub struct ssl_ticket_aead_method_st {
4564    _unused: [u8; 0],
4565}
4566pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
4567#[repr(C)]
4568#[derive(Debug, Copy, Clone)]
4569pub struct st_ERR_FNS {
4570    _unused: [u8; 0],
4571}
4572pub type ERR_FNS = st_ERR_FNS;
4573pub type TRUST_TOKEN = trust_token_st;
4574#[repr(C)]
4575#[derive(Debug, Copy, Clone)]
4576pub struct trust_token_client_st {
4577    _unused: [u8; 0],
4578}
4579pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
4580#[repr(C)]
4581#[derive(Debug, Copy, Clone)]
4582pub struct trust_token_issuer_st {
4583    _unused: [u8; 0],
4584}
4585pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
4586#[repr(C)]
4587#[derive(Debug, Copy, Clone)]
4588pub struct trust_token_method_st {
4589    _unused: [u8; 0],
4590}
4591pub type TRUST_TOKEN_METHOD = trust_token_method_st;
4592pub type X509V3_CTX = v3_ext_ctx;
4593pub type X509V3_EXT_METHOD = v3_ext_method;
4594#[repr(C)]
4595#[derive(Debug, Copy, Clone)]
4596pub struct x509_attributes_st {
4597    _unused: [u8; 0],
4598}
4599pub type X509_ATTRIBUTE = x509_attributes_st;
4600#[repr(C)]
4601#[derive(Debug, Copy, Clone)]
4602pub struct x509_lookup_st {
4603    _unused: [u8; 0],
4604}
4605pub type X509_LOOKUP = x509_lookup_st;
4606#[repr(C)]
4607#[derive(Debug, Copy, Clone)]
4608pub struct x509_lookup_method_st {
4609    _unused: [u8; 0],
4610}
4611pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
4612#[repr(C)]
4613#[derive(Debug, Copy, Clone)]
4614pub struct x509_object_st {
4615    _unused: [u8; 0],
4616}
4617pub type X509_OBJECT = x509_object_st;
4618#[repr(C)]
4619#[derive(Debug, Copy, Clone)]
4620pub struct x509_revoked_st {
4621    _unused: [u8; 0],
4622}
4623pub type X509_REVOKED = x509_revoked_st;
4624#[repr(C)]
4625#[derive(Debug, Copy, Clone)]
4626pub struct x509_st {
4627    _unused: [u8; 0],
4628}
4629pub type X509 = x509_st;
4630#[repr(C)]
4631#[derive(Debug, Copy, Clone)]
4632pub struct x509_store_ctx_st {
4633    _unused: [u8; 0],
4634}
4635pub type X509_STORE_CTX = x509_store_ctx_st;
4636#[repr(C)]
4637#[derive(Debug, Copy, Clone)]
4638pub struct x509_store_st {
4639    _unused: [u8; 0],
4640}
4641pub type X509_STORE = x509_store_st;
4642pub type X509_TRUST = x509_trust_st;
4643pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
4644#[repr(C)]
4645#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4646pub struct aes_key_st {
4647    pub rd_key: [u32; 60usize],
4648    pub rounds: ::std::os::raw::c_uint,
4649}
4650#[test]
4651fn bindgen_test_layout_aes_key_st() {
4652    const UNINIT: ::std::mem::MaybeUninit<aes_key_st> = ::std::mem::MaybeUninit::uninit();
4653    let ptr = UNINIT.as_ptr();
4654    assert_eq!(
4655        ::std::mem::size_of::<aes_key_st>(),
4656        244usize,
4657        "Size of aes_key_st"
4658    );
4659    assert_eq!(
4660        ::std::mem::align_of::<aes_key_st>(),
4661        4usize,
4662        "Alignment of aes_key_st"
4663    );
4664    assert_eq!(
4665        unsafe { ::std::ptr::addr_of!((*ptr).rd_key) as usize - ptr as usize },
4666        0usize,
4667        "Offset of field: aes_key_st::rd_key"
4668    );
4669    assert_eq!(
4670        unsafe { ::std::ptr::addr_of!((*ptr).rounds) as usize - ptr as usize },
4671        240usize,
4672        "Offset of field: aes_key_st::rounds"
4673    );
4674}
4675impl Default for aes_key_st {
4676    fn default() -> Self {
4677        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4678        unsafe {
4679            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4680            s.assume_init()
4681        }
4682    }
4683}
4684pub type AES_KEY = aes_key_st;
4685extern "C" {
4686    #[link_name = "\u{1}aws_lc_0_36_0_AES_set_encrypt_key"]
4687    pub fn AES_set_encrypt_key(
4688        key: *const u8,
4689        bits: ::std::os::raw::c_uint,
4690        aeskey: *mut AES_KEY,
4691    ) -> ::std::os::raw::c_int;
4692}
4693extern "C" {
4694    #[link_name = "\u{1}aws_lc_0_36_0_AES_set_decrypt_key"]
4695    pub fn AES_set_decrypt_key(
4696        key: *const u8,
4697        bits: ::std::os::raw::c_uint,
4698        aeskey: *mut AES_KEY,
4699    ) -> ::std::os::raw::c_int;
4700}
4701extern "C" {
4702    #[link_name = "\u{1}aws_lc_0_36_0_AES_encrypt"]
4703    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4704}
4705extern "C" {
4706    #[link_name = "\u{1}aws_lc_0_36_0_AES_decrypt"]
4707    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4708}
4709extern "C" {
4710    #[link_name = "\u{1}aws_lc_0_36_0_AES_ctr128_encrypt"]
4711    pub fn AES_ctr128_encrypt(
4712        in_: *const u8,
4713        out: *mut u8,
4714        len: usize,
4715        key: *const AES_KEY,
4716        ivec: *mut u8,
4717        ecount_buf: *mut u8,
4718        num: *mut ::std::os::raw::c_uint,
4719    );
4720}
4721extern "C" {
4722    #[link_name = "\u{1}aws_lc_0_36_0_AES_ecb_encrypt"]
4723    pub fn AES_ecb_encrypt(
4724        in_: *const u8,
4725        out: *mut u8,
4726        key: *const AES_KEY,
4727        enc: ::std::os::raw::c_int,
4728    );
4729}
4730extern "C" {
4731    #[link_name = "\u{1}aws_lc_0_36_0_AES_cbc_encrypt"]
4732    pub fn AES_cbc_encrypt(
4733        in_: *const u8,
4734        out: *mut u8,
4735        len: usize,
4736        key: *const AES_KEY,
4737        ivec: *mut u8,
4738        enc: ::std::os::raw::c_int,
4739    );
4740}
4741extern "C" {
4742    #[link_name = "\u{1}aws_lc_0_36_0_AES_ofb128_encrypt"]
4743    pub fn AES_ofb128_encrypt(
4744        in_: *const u8,
4745        out: *mut u8,
4746        len: usize,
4747        key: *const AES_KEY,
4748        ivec: *mut u8,
4749        num: *mut ::std::os::raw::c_int,
4750    );
4751}
4752extern "C" {
4753    #[link_name = "\u{1}aws_lc_0_36_0_AES_cfb1_encrypt"]
4754    pub fn AES_cfb1_encrypt(
4755        in_: *const u8,
4756        out: *mut u8,
4757        bits: usize,
4758        key: *const AES_KEY,
4759        ivec: *mut u8,
4760        num: *mut ::std::os::raw::c_int,
4761        enc: ::std::os::raw::c_int,
4762    );
4763}
4764extern "C" {
4765    #[link_name = "\u{1}aws_lc_0_36_0_AES_cfb8_encrypt"]
4766    pub fn AES_cfb8_encrypt(
4767        in_: *const u8,
4768        out: *mut u8,
4769        len: usize,
4770        key: *const AES_KEY,
4771        ivec: *mut u8,
4772        num: *mut ::std::os::raw::c_int,
4773        enc: ::std::os::raw::c_int,
4774    );
4775}
4776extern "C" {
4777    #[link_name = "\u{1}aws_lc_0_36_0_AES_cfb128_encrypt"]
4778    pub fn AES_cfb128_encrypt(
4779        in_: *const u8,
4780        out: *mut u8,
4781        len: usize,
4782        key: *const AES_KEY,
4783        ivec: *mut u8,
4784        num: *mut ::std::os::raw::c_int,
4785        enc: ::std::os::raw::c_int,
4786    );
4787}
4788extern "C" {
4789    #[link_name = "\u{1}aws_lc_0_36_0_AES_wrap_key"]
4790    pub fn AES_wrap_key(
4791        key: *const AES_KEY,
4792        iv: *const u8,
4793        out: *mut u8,
4794        in_: *const u8,
4795        in_len: usize,
4796    ) -> ::std::os::raw::c_int;
4797}
4798extern "C" {
4799    #[link_name = "\u{1}aws_lc_0_36_0_AES_unwrap_key"]
4800    pub fn AES_unwrap_key(
4801        key: *const AES_KEY,
4802        iv: *const u8,
4803        out: *mut u8,
4804        in_: *const u8,
4805        in_len: usize,
4806    ) -> ::std::os::raw::c_int;
4807}
4808extern "C" {
4809    #[link_name = "\u{1}aws_lc_0_36_0_AES_wrap_key_padded"]
4810    pub fn AES_wrap_key_padded(
4811        key: *const AES_KEY,
4812        out: *mut u8,
4813        out_len: *mut usize,
4814        max_out: usize,
4815        in_: *const u8,
4816        in_len: usize,
4817    ) -> ::std::os::raw::c_int;
4818}
4819extern "C" {
4820    #[link_name = "\u{1}aws_lc_0_36_0_AES_unwrap_key_padded"]
4821    pub fn AES_unwrap_key_padded(
4822        key: *const AES_KEY,
4823        out: *mut u8,
4824        out_len: *mut usize,
4825        max_out: usize,
4826        in_: *const u8,
4827        in_len: usize,
4828    ) -> ::std::os::raw::c_int;
4829}
4830#[repr(C)]
4831#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4832pub struct tm {
4833    pub tm_sec: ::std::os::raw::c_int,
4834    pub tm_min: ::std::os::raw::c_int,
4835    pub tm_hour: ::std::os::raw::c_int,
4836    pub tm_mday: ::std::os::raw::c_int,
4837    pub tm_mon: ::std::os::raw::c_int,
4838    pub tm_year: ::std::os::raw::c_int,
4839    pub tm_wday: ::std::os::raw::c_int,
4840    pub tm_yday: ::std::os::raw::c_int,
4841    pub tm_isdst: ::std::os::raw::c_int,
4842    pub tm_gmtoff: ::std::os::raw::c_long,
4843    pub tm_zone: *const ::std::os::raw::c_char,
4844}
4845#[test]
4846fn bindgen_test_layout_tm() {
4847    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
4848    let ptr = UNINIT.as_ptr();
4849    assert_eq!(::std::mem::size_of::<tm>(), 56usize, "Size of tm");
4850    assert_eq!(::std::mem::align_of::<tm>(), 8usize, "Alignment of tm");
4851    assert_eq!(
4852        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
4853        0usize,
4854        "Offset of field: tm::tm_sec"
4855    );
4856    assert_eq!(
4857        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
4858        4usize,
4859        "Offset of field: tm::tm_min"
4860    );
4861    assert_eq!(
4862        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
4863        8usize,
4864        "Offset of field: tm::tm_hour"
4865    );
4866    assert_eq!(
4867        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
4868        12usize,
4869        "Offset of field: tm::tm_mday"
4870    );
4871    assert_eq!(
4872        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
4873        16usize,
4874        "Offset of field: tm::tm_mon"
4875    );
4876    assert_eq!(
4877        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
4878        20usize,
4879        "Offset of field: tm::tm_year"
4880    );
4881    assert_eq!(
4882        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
4883        24usize,
4884        "Offset of field: tm::tm_wday"
4885    );
4886    assert_eq!(
4887        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
4888        28usize,
4889        "Offset of field: tm::tm_yday"
4890    );
4891    assert_eq!(
4892        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
4893        32usize,
4894        "Offset of field: tm::tm_isdst"
4895    );
4896    assert_eq!(
4897        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
4898        40usize,
4899        "Offset of field: tm::tm_gmtoff"
4900    );
4901    assert_eq!(
4902        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
4903        48usize,
4904        "Offset of field: tm::tm_zone"
4905    );
4906}
4907impl Default for tm {
4908    fn default() -> Self {
4909        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4910        unsafe {
4911            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4912            s.assume_init()
4913        }
4914    }
4915}
4916pub type __gnuc_va_list = __builtin_va_list;
4917pub type FILE = _IO_FILE;
4918#[repr(C)]
4919#[derive(Debug, Copy, Clone)]
4920pub struct _IO_marker {
4921    _unused: [u8; 0],
4922}
4923#[repr(C)]
4924#[derive(Debug, Copy, Clone)]
4925pub struct _IO_codecvt {
4926    _unused: [u8; 0],
4927}
4928#[repr(C)]
4929#[derive(Debug, Copy, Clone)]
4930pub struct _IO_wide_data {
4931    _unused: [u8; 0],
4932}
4933pub type _IO_lock_t = ::std::os::raw::c_void;
4934#[repr(C)]
4935#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4936pub struct _IO_FILE {
4937    pub _flags: ::std::os::raw::c_int,
4938    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
4939    pub _IO_read_end: *mut ::std::os::raw::c_char,
4940    pub _IO_read_base: *mut ::std::os::raw::c_char,
4941    pub _IO_write_base: *mut ::std::os::raw::c_char,
4942    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
4943    pub _IO_write_end: *mut ::std::os::raw::c_char,
4944    pub _IO_buf_base: *mut ::std::os::raw::c_char,
4945    pub _IO_buf_end: *mut ::std::os::raw::c_char,
4946    pub _IO_save_base: *mut ::std::os::raw::c_char,
4947    pub _IO_backup_base: *mut ::std::os::raw::c_char,
4948    pub _IO_save_end: *mut ::std::os::raw::c_char,
4949    pub _markers: *mut _IO_marker,
4950    pub _chain: *mut _IO_FILE,
4951    pub _fileno: ::std::os::raw::c_int,
4952    pub _flags2: ::std::os::raw::c_int,
4953    pub _old_offset: __off_t,
4954    pub _cur_column: ::std::os::raw::c_ushort,
4955    pub _vtable_offset: ::std::os::raw::c_schar,
4956    pub _shortbuf: [::std::os::raw::c_char; 1usize],
4957    pub _lock: *mut _IO_lock_t,
4958    pub _offset: __off64_t,
4959    pub _codecvt: *mut _IO_codecvt,
4960    pub _wide_data: *mut _IO_wide_data,
4961    pub _freeres_list: *mut _IO_FILE,
4962    pub _freeres_buf: *mut ::std::os::raw::c_void,
4963    pub __pad5: usize,
4964    pub _mode: ::std::os::raw::c_int,
4965    pub _unused2: [::std::os::raw::c_char; 20usize],
4966}
4967#[test]
4968fn bindgen_test_layout__IO_FILE() {
4969    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
4970    let ptr = UNINIT.as_ptr();
4971    assert_eq!(
4972        ::std::mem::size_of::<_IO_FILE>(),
4973        216usize,
4974        "Size of _IO_FILE"
4975    );
4976    assert_eq!(
4977        ::std::mem::align_of::<_IO_FILE>(),
4978        8usize,
4979        "Alignment of _IO_FILE"
4980    );
4981    assert_eq!(
4982        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
4983        0usize,
4984        "Offset of field: _IO_FILE::_flags"
4985    );
4986    assert_eq!(
4987        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
4988        8usize,
4989        "Offset of field: _IO_FILE::_IO_read_ptr"
4990    );
4991    assert_eq!(
4992        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
4993        16usize,
4994        "Offset of field: _IO_FILE::_IO_read_end"
4995    );
4996    assert_eq!(
4997        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
4998        24usize,
4999        "Offset of field: _IO_FILE::_IO_read_base"
5000    );
5001    assert_eq!(
5002        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
5003        32usize,
5004        "Offset of field: _IO_FILE::_IO_write_base"
5005    );
5006    assert_eq!(
5007        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
5008        40usize,
5009        "Offset of field: _IO_FILE::_IO_write_ptr"
5010    );
5011    assert_eq!(
5012        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
5013        48usize,
5014        "Offset of field: _IO_FILE::_IO_write_end"
5015    );
5016    assert_eq!(
5017        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
5018        56usize,
5019        "Offset of field: _IO_FILE::_IO_buf_base"
5020    );
5021    assert_eq!(
5022        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
5023        64usize,
5024        "Offset of field: _IO_FILE::_IO_buf_end"
5025    );
5026    assert_eq!(
5027        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
5028        72usize,
5029        "Offset of field: _IO_FILE::_IO_save_base"
5030    );
5031    assert_eq!(
5032        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
5033        80usize,
5034        "Offset of field: _IO_FILE::_IO_backup_base"
5035    );
5036    assert_eq!(
5037        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
5038        88usize,
5039        "Offset of field: _IO_FILE::_IO_save_end"
5040    );
5041    assert_eq!(
5042        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
5043        96usize,
5044        "Offset of field: _IO_FILE::_markers"
5045    );
5046    assert_eq!(
5047        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
5048        104usize,
5049        "Offset of field: _IO_FILE::_chain"
5050    );
5051    assert_eq!(
5052        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
5053        112usize,
5054        "Offset of field: _IO_FILE::_fileno"
5055    );
5056    assert_eq!(
5057        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
5058        116usize,
5059        "Offset of field: _IO_FILE::_flags2"
5060    );
5061    assert_eq!(
5062        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
5063        120usize,
5064        "Offset of field: _IO_FILE::_old_offset"
5065    );
5066    assert_eq!(
5067        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
5068        128usize,
5069        "Offset of field: _IO_FILE::_cur_column"
5070    );
5071    assert_eq!(
5072        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
5073        130usize,
5074        "Offset of field: _IO_FILE::_vtable_offset"
5075    );
5076    assert_eq!(
5077        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
5078        131usize,
5079        "Offset of field: _IO_FILE::_shortbuf"
5080    );
5081    assert_eq!(
5082        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
5083        136usize,
5084        "Offset of field: _IO_FILE::_lock"
5085    );
5086    assert_eq!(
5087        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
5088        144usize,
5089        "Offset of field: _IO_FILE::_offset"
5090    );
5091    assert_eq!(
5092        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
5093        152usize,
5094        "Offset of field: _IO_FILE::_codecvt"
5095    );
5096    assert_eq!(
5097        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
5098        160usize,
5099        "Offset of field: _IO_FILE::_wide_data"
5100    );
5101    assert_eq!(
5102        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
5103        168usize,
5104        "Offset of field: _IO_FILE::_freeres_list"
5105    );
5106    assert_eq!(
5107        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
5108        176usize,
5109        "Offset of field: _IO_FILE::_freeres_buf"
5110    );
5111    assert_eq!(
5112        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
5113        184usize,
5114        "Offset of field: _IO_FILE::__pad5"
5115    );
5116    assert_eq!(
5117        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
5118        192usize,
5119        "Offset of field: _IO_FILE::_mode"
5120    );
5121    assert_eq!(
5122        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
5123        196usize,
5124        "Offset of field: _IO_FILE::_unused2"
5125    );
5126}
5127impl Default for _IO_FILE {
5128    fn default() -> Self {
5129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5130        unsafe {
5131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5132            s.assume_init()
5133        }
5134    }
5135}
5136pub type va_list = __gnuc_va_list;
5137#[repr(C)]
5138#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5139pub struct buf_mem_st {
5140    pub length: usize,
5141    pub data: *mut ::std::os::raw::c_char,
5142    pub max: usize,
5143}
5144#[test]
5145fn bindgen_test_layout_buf_mem_st() {
5146    const UNINIT: ::std::mem::MaybeUninit<buf_mem_st> = ::std::mem::MaybeUninit::uninit();
5147    let ptr = UNINIT.as_ptr();
5148    assert_eq!(
5149        ::std::mem::size_of::<buf_mem_st>(),
5150        24usize,
5151        "Size of buf_mem_st"
5152    );
5153    assert_eq!(
5154        ::std::mem::align_of::<buf_mem_st>(),
5155        8usize,
5156        "Alignment of buf_mem_st"
5157    );
5158    assert_eq!(
5159        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
5160        0usize,
5161        "Offset of field: buf_mem_st::length"
5162    );
5163    assert_eq!(
5164        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5165        8usize,
5166        "Offset of field: buf_mem_st::data"
5167    );
5168    assert_eq!(
5169        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
5170        16usize,
5171        "Offset of field: buf_mem_st::max"
5172    );
5173}
5174impl Default for buf_mem_st {
5175    fn default() -> Self {
5176        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5177        unsafe {
5178            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5179            s.assume_init()
5180        }
5181    }
5182}
5183extern "C" {
5184    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_new"]
5185    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5186}
5187extern "C" {
5188    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_free"]
5189    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5190}
5191extern "C" {
5192    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_reserve"]
5193    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::std::os::raw::c_int;
5194}
5195extern "C" {
5196    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_grow"]
5197    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5198}
5199extern "C" {
5200    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_grow_clean"]
5201    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5202}
5203extern "C" {
5204    #[link_name = "\u{1}aws_lc_0_36_0_BUF_MEM_append"]
5205    pub fn BUF_MEM_append(
5206        buf: *mut BUF_MEM,
5207        in_: *const ::std::os::raw::c_void,
5208        len: usize,
5209    ) -> ::std::os::raw::c_int;
5210}
5211extern "C" {
5212    #[link_name = "\u{1}aws_lc_0_36_0_BUF_strdup"]
5213    pub fn BUF_strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5214}
5215extern "C" {
5216    #[link_name = "\u{1}aws_lc_0_36_0_BUF_strnlen"]
5217    pub fn BUF_strnlen(str_: *const ::std::os::raw::c_char, max_len: usize) -> usize;
5218}
5219extern "C" {
5220    #[link_name = "\u{1}aws_lc_0_36_0_BUF_strndup"]
5221    pub fn BUF_strndup(
5222        str_: *const ::std::os::raw::c_char,
5223        size: usize,
5224    ) -> *mut ::std::os::raw::c_char;
5225}
5226extern "C" {
5227    #[link_name = "\u{1}aws_lc_0_36_0_BUF_memdup"]
5228    pub fn BUF_memdup(
5229        data: *const ::std::os::raw::c_void,
5230        size: usize,
5231    ) -> *mut ::std::os::raw::c_void;
5232}
5233extern "C" {
5234    #[link_name = "\u{1}aws_lc_0_36_0_BUF_strlcpy"]
5235    pub fn BUF_strlcpy(
5236        dst: *mut ::std::os::raw::c_char,
5237        src: *const ::std::os::raw::c_char,
5238        dst_size: usize,
5239    ) -> usize;
5240}
5241extern "C" {
5242    #[link_name = "\u{1}aws_lc_0_36_0_BUF_strlcat"]
5243    pub fn BUF_strlcat(
5244        dst: *mut ::std::os::raw::c_char,
5245        src: *const ::std::os::raw::c_char,
5246        dst_size: usize,
5247    ) -> usize;
5248}
5249extern "C" {
5250    #[link_name = "\u{1}aws_lc_0_36_0_SHA1_Init"]
5251    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5252}
5253extern "C" {
5254    #[link_name = "\u{1}aws_lc_0_36_0_SHA1_Update"]
5255    pub fn SHA1_Update(
5256        sha: *mut SHA_CTX,
5257        data: *const ::std::os::raw::c_void,
5258        len: usize,
5259    ) -> ::std::os::raw::c_int;
5260}
5261extern "C" {
5262    #[link_name = "\u{1}aws_lc_0_36_0_SHA1_Final"]
5263    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5264}
5265extern "C" {
5266    #[link_name = "\u{1}aws_lc_0_36_0_SHA1"]
5267    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5268}
5269extern "C" {
5270    #[link_name = "\u{1}aws_lc_0_36_0_SHA1_Transform"]
5271    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
5272}
5273#[repr(C)]
5274#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5275pub struct sha_state_st {
5276    pub h: [u32; 5usize],
5277    pub Nl: u32,
5278    pub Nh: u32,
5279    pub data: [u8; 64usize],
5280    pub num: ::std::os::raw::c_uint,
5281}
5282#[test]
5283fn bindgen_test_layout_sha_state_st() {
5284    const UNINIT: ::std::mem::MaybeUninit<sha_state_st> = ::std::mem::MaybeUninit::uninit();
5285    let ptr = UNINIT.as_ptr();
5286    assert_eq!(
5287        ::std::mem::size_of::<sha_state_st>(),
5288        96usize,
5289        "Size of sha_state_st"
5290    );
5291    assert_eq!(
5292        ::std::mem::align_of::<sha_state_st>(),
5293        4usize,
5294        "Alignment of sha_state_st"
5295    );
5296    assert_eq!(
5297        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5298        0usize,
5299        "Offset of field: sha_state_st::h"
5300    );
5301    assert_eq!(
5302        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5303        20usize,
5304        "Offset of field: sha_state_st::Nl"
5305    );
5306    assert_eq!(
5307        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5308        24usize,
5309        "Offset of field: sha_state_st::Nh"
5310    );
5311    assert_eq!(
5312        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5313        28usize,
5314        "Offset of field: sha_state_st::data"
5315    );
5316    assert_eq!(
5317        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5318        92usize,
5319        "Offset of field: sha_state_st::num"
5320    );
5321}
5322impl Default for sha_state_st {
5323    fn default() -> Self {
5324        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5325        unsafe {
5326            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5327            s.assume_init()
5328        }
5329    }
5330}
5331extern "C" {
5332    #[link_name = "\u{1}aws_lc_0_36_0_SHA224_Init"]
5333    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5334}
5335extern "C" {
5336    #[link_name = "\u{1}aws_lc_0_36_0_SHA224_Update"]
5337    pub fn SHA224_Update(
5338        sha: *mut SHA256_CTX,
5339        data: *const ::std::os::raw::c_void,
5340        len: usize,
5341    ) -> ::std::os::raw::c_int;
5342}
5343extern "C" {
5344    #[link_name = "\u{1}aws_lc_0_36_0_SHA224_Final"]
5345    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5346}
5347extern "C" {
5348    #[link_name = "\u{1}aws_lc_0_36_0_SHA224"]
5349    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5350}
5351extern "C" {
5352    #[link_name = "\u{1}aws_lc_0_36_0_SHA256_Init"]
5353    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5354}
5355extern "C" {
5356    #[link_name = "\u{1}aws_lc_0_36_0_SHA256_Update"]
5357    pub fn SHA256_Update(
5358        sha: *mut SHA256_CTX,
5359        data: *const ::std::os::raw::c_void,
5360        len: usize,
5361    ) -> ::std::os::raw::c_int;
5362}
5363extern "C" {
5364    #[link_name = "\u{1}aws_lc_0_36_0_SHA256_Final"]
5365    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5366}
5367extern "C" {
5368    #[link_name = "\u{1}aws_lc_0_36_0_SHA256"]
5369    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5370}
5371extern "C" {
5372    #[link_name = "\u{1}aws_lc_0_36_0_SHA256_Transform"]
5373    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
5374}
5375extern "C" {
5376    #[link_name = "\u{1}aws_lc_0_36_0_SHA256_TransformBlocks"]
5377    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
5378}
5379#[repr(C)]
5380#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5381pub struct sha256_state_st {
5382    pub h: [u32; 8usize],
5383    pub Nl: u32,
5384    pub Nh: u32,
5385    pub data: [u8; 64usize],
5386    pub num: ::std::os::raw::c_uint,
5387    pub md_len: ::std::os::raw::c_uint,
5388}
5389#[test]
5390fn bindgen_test_layout_sha256_state_st() {
5391    const UNINIT: ::std::mem::MaybeUninit<sha256_state_st> = ::std::mem::MaybeUninit::uninit();
5392    let ptr = UNINIT.as_ptr();
5393    assert_eq!(
5394        ::std::mem::size_of::<sha256_state_st>(),
5395        112usize,
5396        "Size of sha256_state_st"
5397    );
5398    assert_eq!(
5399        ::std::mem::align_of::<sha256_state_st>(),
5400        4usize,
5401        "Alignment of sha256_state_st"
5402    );
5403    assert_eq!(
5404        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5405        0usize,
5406        "Offset of field: sha256_state_st::h"
5407    );
5408    assert_eq!(
5409        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5410        32usize,
5411        "Offset of field: sha256_state_st::Nl"
5412    );
5413    assert_eq!(
5414        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5415        36usize,
5416        "Offset of field: sha256_state_st::Nh"
5417    );
5418    assert_eq!(
5419        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5420        40usize,
5421        "Offset of field: sha256_state_st::data"
5422    );
5423    assert_eq!(
5424        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5425        104usize,
5426        "Offset of field: sha256_state_st::num"
5427    );
5428    assert_eq!(
5429        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5430        108usize,
5431        "Offset of field: sha256_state_st::md_len"
5432    );
5433}
5434impl Default for sha256_state_st {
5435    fn default() -> Self {
5436        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5437        unsafe {
5438            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5439            s.assume_init()
5440        }
5441    }
5442}
5443extern "C" {
5444    #[link_name = "\u{1}aws_lc_0_36_0_SHA384_Init"]
5445    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5446}
5447extern "C" {
5448    #[link_name = "\u{1}aws_lc_0_36_0_SHA384_Update"]
5449    pub fn SHA384_Update(
5450        sha: *mut SHA512_CTX,
5451        data: *const ::std::os::raw::c_void,
5452        len: usize,
5453    ) -> ::std::os::raw::c_int;
5454}
5455extern "C" {
5456    #[link_name = "\u{1}aws_lc_0_36_0_SHA384_Final"]
5457    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5458}
5459extern "C" {
5460    #[link_name = "\u{1}aws_lc_0_36_0_SHA384"]
5461    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5462}
5463extern "C" {
5464    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_Init"]
5465    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5466}
5467extern "C" {
5468    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_Update"]
5469    pub fn SHA512_Update(
5470        sha: *mut SHA512_CTX,
5471        data: *const ::std::os::raw::c_void,
5472        len: usize,
5473    ) -> ::std::os::raw::c_int;
5474}
5475extern "C" {
5476    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_Final"]
5477    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5478}
5479extern "C" {
5480    #[link_name = "\u{1}aws_lc_0_36_0_SHA512"]
5481    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5482}
5483extern "C" {
5484    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_Transform"]
5485    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
5486}
5487#[repr(C)]
5488#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5489pub struct sha512_state_st {
5490    pub h: [u64; 8usize],
5491    pub Nl: u64,
5492    pub Nh: u64,
5493    pub p: [u8; 128usize],
5494    pub num: ::std::os::raw::c_uint,
5495    pub md_len: ::std::os::raw::c_uint,
5496}
5497#[test]
5498fn bindgen_test_layout_sha512_state_st() {
5499    const UNINIT: ::std::mem::MaybeUninit<sha512_state_st> = ::std::mem::MaybeUninit::uninit();
5500    let ptr = UNINIT.as_ptr();
5501    assert_eq!(
5502        ::std::mem::size_of::<sha512_state_st>(),
5503        216usize,
5504        "Size of sha512_state_st"
5505    );
5506    assert_eq!(
5507        ::std::mem::align_of::<sha512_state_st>(),
5508        8usize,
5509        "Alignment of sha512_state_st"
5510    );
5511    assert_eq!(
5512        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5513        0usize,
5514        "Offset of field: sha512_state_st::h"
5515    );
5516    assert_eq!(
5517        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5518        64usize,
5519        "Offset of field: sha512_state_st::Nl"
5520    );
5521    assert_eq!(
5522        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5523        72usize,
5524        "Offset of field: sha512_state_st::Nh"
5525    );
5526    assert_eq!(
5527        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
5528        80usize,
5529        "Offset of field: sha512_state_st::p"
5530    );
5531    assert_eq!(
5532        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5533        208usize,
5534        "Offset of field: sha512_state_st::num"
5535    );
5536    assert_eq!(
5537        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5538        212usize,
5539        "Offset of field: sha512_state_st::md_len"
5540    );
5541}
5542impl Default for sha512_state_st {
5543    fn default() -> Self {
5544        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5545        unsafe {
5546            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5547            s.assume_init()
5548        }
5549    }
5550}
5551extern "C" {
5552    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_224_Init"]
5553    pub fn SHA512_224_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5554}
5555extern "C" {
5556    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_224_Update"]
5557    pub fn SHA512_224_Update(
5558        sha: *mut SHA512_CTX,
5559        data: *const ::std::os::raw::c_void,
5560        len: usize,
5561    ) -> ::std::os::raw::c_int;
5562}
5563extern "C" {
5564    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_224_Final"]
5565    pub fn SHA512_224_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5566}
5567extern "C" {
5568    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_224"]
5569    pub fn SHA512_224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5570}
5571extern "C" {
5572    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_256_Init"]
5573    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5574}
5575extern "C" {
5576    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_256_Update"]
5577    pub fn SHA512_256_Update(
5578        sha: *mut SHA512_CTX,
5579        data: *const ::std::os::raw::c_void,
5580        len: usize,
5581    ) -> ::std::os::raw::c_int;
5582}
5583extern "C" {
5584    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_256_Final"]
5585    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5586}
5587extern "C" {
5588    #[link_name = "\u{1}aws_lc_0_36_0_SHA512_256"]
5589    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5590}
5591extern "C" {
5592    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_malloc"]
5593    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5594}
5595extern "C" {
5596    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_zalloc"]
5597    pub fn OPENSSL_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5598}
5599extern "C" {
5600    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_calloc"]
5601    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
5602}
5603extern "C" {
5604    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_realloc"]
5605    pub fn OPENSSL_realloc(
5606        ptr: *mut ::std::os::raw::c_void,
5607        new_size: usize,
5608    ) -> *mut ::std::os::raw::c_void;
5609}
5610extern "C" {
5611    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_free"]
5612    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
5613}
5614extern "C" {
5615    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_cleanse"]
5616    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
5617}
5618extern "C" {
5619    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_memcmp"]
5620    pub fn CRYPTO_memcmp(
5621        a: *const ::std::os::raw::c_void,
5622        b: *const ::std::os::raw::c_void,
5623        len: usize,
5624    ) -> ::std::os::raw::c_int;
5625}
5626extern "C" {
5627    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_hash32"]
5628    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
5629}
5630extern "C" {
5631    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strhash"]
5632    pub fn OPENSSL_strhash(s: *const ::std::os::raw::c_char) -> u32;
5633}
5634extern "C" {
5635    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strdup"]
5636    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5637}
5638extern "C" {
5639    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strnlen"]
5640    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
5641}
5642extern "C" {
5643    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_isalpha"]
5644    pub fn OPENSSL_isalpha(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5645}
5646extern "C" {
5647    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_isdigit"]
5648    pub fn OPENSSL_isdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5649}
5650extern "C" {
5651    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_isxdigit"]
5652    pub fn OPENSSL_isxdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5653}
5654extern "C" {
5655    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_fromxdigit"]
5656    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5657}
5658extern "C" {
5659    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_hexstr2buf"]
5660    pub fn OPENSSL_hexstr2buf(str_: *const ::std::os::raw::c_char, len: *mut usize) -> *mut u8;
5661}
5662extern "C" {
5663    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_isalnum"]
5664    pub fn OPENSSL_isalnum(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5665}
5666extern "C" {
5667    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_tolower"]
5668    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5669}
5670extern "C" {
5671    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_isspace"]
5672    pub fn OPENSSL_isspace(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5673}
5674extern "C" {
5675    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strcasecmp"]
5676    pub fn OPENSSL_strcasecmp(
5677        a: *const ::std::os::raw::c_char,
5678        b: *const ::std::os::raw::c_char,
5679    ) -> ::std::os::raw::c_int;
5680}
5681extern "C" {
5682    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strncasecmp"]
5683    pub fn OPENSSL_strncasecmp(
5684        a: *const ::std::os::raw::c_char,
5685        b: *const ::std::os::raw::c_char,
5686        n: usize,
5687    ) -> ::std::os::raw::c_int;
5688}
5689extern "C" {
5690    #[link_name = "\u{1}aws_lc_0_36_0_BIO_snprintf"]
5691    pub fn BIO_snprintf(
5692        buf: *mut ::std::os::raw::c_char,
5693        n: usize,
5694        format: *const ::std::os::raw::c_char,
5695        ...
5696    ) -> ::std::os::raw::c_int;
5697}
5698extern "C" {
5699    #[link_name = "\u{1}aws_lc_0_36_0_BIO_vsnprintf"]
5700    pub fn BIO_vsnprintf(
5701        buf: *mut ::std::os::raw::c_char,
5702        n: usize,
5703        format: *const ::std::os::raw::c_char,
5704        args: *mut __va_list_tag,
5705    ) -> ::std::os::raw::c_int;
5706}
5707extern "C" {
5708    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_vasprintf"]
5709    pub fn OPENSSL_vasprintf(
5710        str_: *mut *mut ::std::os::raw::c_char,
5711        format: *const ::std::os::raw::c_char,
5712        args: *mut __va_list_tag,
5713    ) -> ::std::os::raw::c_int;
5714}
5715extern "C" {
5716    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_asprintf"]
5717    pub fn OPENSSL_asprintf(
5718        str_: *mut *mut ::std::os::raw::c_char,
5719        format: *const ::std::os::raw::c_char,
5720        ...
5721    ) -> ::std::os::raw::c_int;
5722}
5723extern "C" {
5724    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strndup"]
5725    pub fn OPENSSL_strndup(
5726        str_: *const ::std::os::raw::c_char,
5727        size: usize,
5728    ) -> *mut ::std::os::raw::c_char;
5729}
5730extern "C" {
5731    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_memdup"]
5732    pub fn OPENSSL_memdup(
5733        data: *const ::std::os::raw::c_void,
5734        size: usize,
5735    ) -> *mut ::std::os::raw::c_void;
5736}
5737extern "C" {
5738    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strlcpy"]
5739    pub fn OPENSSL_strlcpy(
5740        dst: *mut ::std::os::raw::c_char,
5741        src: *const ::std::os::raw::c_char,
5742        dst_size: usize,
5743    ) -> usize;
5744}
5745extern "C" {
5746    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_strlcat"]
5747    pub fn OPENSSL_strlcat(
5748        dst: *mut ::std::os::raw::c_char,
5749        src: *const ::std::os::raw::c_char,
5750        dst_size: usize,
5751    ) -> usize;
5752}
5753extern "C" {
5754    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_malloc"]
5755    pub fn CRYPTO_malloc(
5756        size: usize,
5757        file: *const ::std::os::raw::c_char,
5758        line: ::std::os::raw::c_int,
5759    ) -> *mut ::std::os::raw::c_void;
5760}
5761extern "C" {
5762    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_realloc"]
5763    pub fn CRYPTO_realloc(
5764        ptr: *mut ::std::os::raw::c_void,
5765        new_size: usize,
5766        file: *const ::std::os::raw::c_char,
5767        line: ::std::os::raw::c_int,
5768    ) -> *mut ::std::os::raw::c_void;
5769}
5770extern "C" {
5771    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_free"]
5772    pub fn CRYPTO_free(
5773        ptr: *mut ::std::os::raw::c_void,
5774        file: *const ::std::os::raw::c_char,
5775        line: ::std::os::raw::c_int,
5776    );
5777}
5778extern "C" {
5779    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_clear_free"]
5780    pub fn OPENSSL_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5781}
5782extern "C" {
5783    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_mem_functions"]
5784    pub fn CRYPTO_set_mem_functions(
5785        m: ::std::option::Option<
5786            unsafe extern "C" fn(
5787                arg1: usize,
5788                arg2: *const ::std::os::raw::c_char,
5789                arg3: ::std::os::raw::c_int,
5790            ) -> *mut ::std::os::raw::c_void,
5791        >,
5792        r: ::std::option::Option<
5793            unsafe extern "C" fn(
5794                arg1: *mut ::std::os::raw::c_void,
5795                arg2: usize,
5796                arg3: *const ::std::os::raw::c_char,
5797                arg4: ::std::os::raw::c_int,
5798            ) -> *mut ::std::os::raw::c_void,
5799        >,
5800        f: ::std::option::Option<
5801            unsafe extern "C" fn(
5802                arg1: *mut ::std::os::raw::c_void,
5803                arg2: *const ::std::os::raw::c_char,
5804                arg3: ::std::os::raw::c_int,
5805            ),
5806        >,
5807    ) -> ::std::os::raw::c_int;
5808}
5809extern "C" {
5810    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_secure_malloc_init"]
5811    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::std::os::raw::c_int;
5812}
5813extern "C" {
5814    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_secure_malloc_initialized"]
5815    pub fn CRYPTO_secure_malloc_initialized() -> ::std::os::raw::c_int;
5816}
5817extern "C" {
5818    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_secure_used"]
5819    pub fn CRYPTO_secure_used() -> usize;
5820}
5821extern "C" {
5822    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_secure_malloc"]
5823    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5824}
5825extern "C" {
5826    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_secure_zalloc"]
5827    pub fn OPENSSL_secure_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5828}
5829extern "C" {
5830    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_secure_clear_free"]
5831    pub fn OPENSSL_secure_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5832}
5833#[repr(C)]
5834#[derive(Copy, Clone)]
5835pub union crypto_mutex_st {
5836    pub alignment: f64,
5837    pub padding: [u8; 56usize],
5838}
5839#[test]
5840fn bindgen_test_layout_crypto_mutex_st() {
5841    const UNINIT: ::std::mem::MaybeUninit<crypto_mutex_st> = ::std::mem::MaybeUninit::uninit();
5842    let ptr = UNINIT.as_ptr();
5843    assert_eq!(
5844        ::std::mem::size_of::<crypto_mutex_st>(),
5845        56usize,
5846        "Size of crypto_mutex_st"
5847    );
5848    assert_eq!(
5849        ::std::mem::align_of::<crypto_mutex_st>(),
5850        8usize,
5851        "Alignment of crypto_mutex_st"
5852    );
5853    assert_eq!(
5854        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
5855        0usize,
5856        "Offset of field: crypto_mutex_st::alignment"
5857    );
5858    assert_eq!(
5859        unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
5860        0usize,
5861        "Offset of field: crypto_mutex_st::padding"
5862    );
5863}
5864impl Default for crypto_mutex_st {
5865    fn default() -> Self {
5866        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5867        unsafe {
5868            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5869            s.assume_init()
5870        }
5871    }
5872}
5873pub type CRYPTO_MUTEX = crypto_mutex_st;
5874pub type CRYPTO_refcount_t = u32;
5875extern "C" {
5876    #[link_name = "\u{1}aws_lc_0_36_0_AWSLC_thread_local_clear"]
5877    pub fn AWSLC_thread_local_clear() -> ::std::os::raw::c_int;
5878}
5879extern "C" {
5880    #[link_name = "\u{1}aws_lc_0_36_0_AWSLC_thread_local_shutdown"]
5881    pub fn AWSLC_thread_local_shutdown() -> ::std::os::raw::c_int;
5882}
5883extern "C" {
5884    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_num_locks"]
5885    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
5886}
5887extern "C" {
5888    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_locking_callback"]
5889    pub fn CRYPTO_set_locking_callback(
5890        func: ::std::option::Option<
5891            unsafe extern "C" fn(
5892                mode: ::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            ),
5897        >,
5898    );
5899}
5900extern "C" {
5901    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_add_lock_callback"]
5902    pub fn CRYPTO_set_add_lock_callback(
5903        func: ::std::option::Option<
5904            unsafe extern "C" fn(
5905                num: *mut ::std::os::raw::c_int,
5906                amount: ::std::os::raw::c_int,
5907                lock_num: ::std::os::raw::c_int,
5908                file: *const ::std::os::raw::c_char,
5909                line: ::std::os::raw::c_int,
5910            ) -> ::std::os::raw::c_int,
5911        >,
5912    );
5913}
5914extern "C" {
5915    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_get_locking_callback"]
5916    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<
5917        unsafe extern "C" fn(
5918            arg1: ::std::os::raw::c_int,
5919            arg2: ::std::os::raw::c_int,
5920            arg3: *const ::std::os::raw::c_char,
5921            arg4: ::std::os::raw::c_int,
5922        ),
5923    >;
5924}
5925extern "C" {
5926    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_get_lock_name"]
5927    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
5928}
5929extern "C" {
5930    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_THREADID_set_callback"]
5931    pub fn CRYPTO_THREADID_set_callback(
5932        threadid_func: ::std::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
5933    ) -> ::std::os::raw::c_int;
5934}
5935extern "C" {
5936    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_THREADID_set_numeric"]
5937    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
5938}
5939extern "C" {
5940    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_THREADID_set_pointer"]
5941    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
5942}
5943extern "C" {
5944    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_THREADID_current"]
5945    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
5946}
5947extern "C" {
5948    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_id_callback"]
5949    pub fn CRYPTO_set_id_callback(
5950        func: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_ulong>,
5951    );
5952}
5953#[repr(C)]
5954#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5955pub struct CRYPTO_dynlock {
5956    pub references: ::std::os::raw::c_int,
5957    pub data: *mut CRYPTO_dynlock_value,
5958}
5959#[test]
5960fn bindgen_test_layout_CRYPTO_dynlock() {
5961    const UNINIT: ::std::mem::MaybeUninit<CRYPTO_dynlock> = ::std::mem::MaybeUninit::uninit();
5962    let ptr = UNINIT.as_ptr();
5963    assert_eq!(
5964        ::std::mem::size_of::<CRYPTO_dynlock>(),
5965        16usize,
5966        "Size of CRYPTO_dynlock"
5967    );
5968    assert_eq!(
5969        ::std::mem::align_of::<CRYPTO_dynlock>(),
5970        8usize,
5971        "Alignment of CRYPTO_dynlock"
5972    );
5973    assert_eq!(
5974        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
5975        0usize,
5976        "Offset of field: CRYPTO_dynlock::references"
5977    );
5978    assert_eq!(
5979        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5980        8usize,
5981        "Offset of field: CRYPTO_dynlock::data"
5982    );
5983}
5984impl Default for CRYPTO_dynlock {
5985    fn default() -> Self {
5986        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5987        unsafe {
5988            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5989            s.assume_init()
5990        }
5991    }
5992}
5993extern "C" {
5994    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_dynlock_create_callback"]
5995    pub fn CRYPTO_set_dynlock_create_callback(
5996        dyn_create_function: ::std::option::Option<
5997            unsafe extern "C" fn(
5998                file: *const ::std::os::raw::c_char,
5999                line: ::std::os::raw::c_int,
6000            ) -> *mut CRYPTO_dynlock_value,
6001        >,
6002    );
6003}
6004extern "C" {
6005    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_dynlock_lock_callback"]
6006    pub fn CRYPTO_set_dynlock_lock_callback(
6007        dyn_lock_function: ::std::option::Option<
6008            unsafe extern "C" fn(
6009                mode: ::std::os::raw::c_int,
6010                l: *mut CRYPTO_dynlock_value,
6011                file: *const ::std::os::raw::c_char,
6012                line: ::std::os::raw::c_int,
6013            ),
6014        >,
6015    );
6016}
6017extern "C" {
6018    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_set_dynlock_destroy_callback"]
6019    pub fn CRYPTO_set_dynlock_destroy_callback(
6020        dyn_destroy_function: ::std::option::Option<
6021            unsafe extern "C" fn(
6022                l: *mut CRYPTO_dynlock_value,
6023                file: *const ::std::os::raw::c_char,
6024                line: ::std::os::raw::c_int,
6025            ),
6026        >,
6027    );
6028}
6029extern "C" {
6030    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_get_dynlock_create_callback"]
6031    pub fn CRYPTO_get_dynlock_create_callback() -> ::std::option::Option<
6032        unsafe extern "C" fn(
6033            arg1: *const ::std::os::raw::c_char,
6034            arg2: ::std::os::raw::c_int,
6035        ) -> *mut CRYPTO_dynlock_value,
6036    >;
6037}
6038extern "C" {
6039    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_get_dynlock_lock_callback"]
6040    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<
6041        unsafe extern "C" fn(
6042            arg1: ::std::os::raw::c_int,
6043            arg2: *mut CRYPTO_dynlock_value,
6044            arg3: *const ::std::os::raw::c_char,
6045            arg4: ::std::os::raw::c_int,
6046        ),
6047    >;
6048}
6049extern "C" {
6050    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_get_dynlock_destroy_callback"]
6051    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<
6052        unsafe extern "C" fn(
6053            arg1: *mut CRYPTO_dynlock_value,
6054            arg2: *const ::std::os::raw::c_char,
6055            arg3: ::std::os::raw::c_int,
6056        ),
6057    >;
6058}
6059extern "C" {
6060    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_library_init"]
6061    pub fn CRYPTO_library_init();
6062}
6063extern "C" {
6064    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_is_confidential_build"]
6065    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
6066}
6067extern "C" {
6068    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_has_asm"]
6069    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
6070}
6071extern "C" {
6072    #[link_name = "\u{1}aws_lc_0_36_0_BORINGSSL_self_test"]
6073    pub fn BORINGSSL_self_test() -> ::std::os::raw::c_int;
6074}
6075extern "C" {
6076    pub fn BORINGSSL_integrity_test() -> ::std::os::raw::c_int;
6077}
6078extern "C" {
6079    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_pre_sandbox_init"]
6080    pub fn CRYPTO_pre_sandbox_init();
6081}
6082extern "C" {
6083    #[link_name = "\u{1}aws_lc_0_36_0_FIPS_mode"]
6084    pub fn FIPS_mode() -> ::std::os::raw::c_int;
6085}
6086extern "C" {
6087    #[link_name = "\u{1}aws_lc_0_36_0_FIPS_is_entropy_cpu_jitter"]
6088    pub fn FIPS_is_entropy_cpu_jitter() -> ::std::os::raw::c_int;
6089}
6090pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
6091pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
6092pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
6093pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
6094pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
6095pub type fips_counter_t = ::std::os::raw::c_uint;
6096extern "C" {
6097    #[link_name = "\u{1}aws_lc_0_36_0_FIPS_read_counter"]
6098    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
6099}
6100extern "C" {
6101    #[link_name = "\u{1}aws_lc_0_36_0_OpenSSL_version"]
6102    pub fn OpenSSL_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6103}
6104extern "C" {
6105    #[link_name = "\u{1}aws_lc_0_36_0_SSLeay_version"]
6106    pub fn SSLeay_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6107}
6108extern "C" {
6109    #[link_name = "\u{1}aws_lc_0_36_0_SSLeay"]
6110    pub fn SSLeay() -> ::std::os::raw::c_ulong;
6111}
6112extern "C" {
6113    #[link_name = "\u{1}aws_lc_0_36_0_OpenSSL_version_num"]
6114    pub fn OpenSSL_version_num() -> ::std::os::raw::c_ulong;
6115}
6116extern "C" {
6117    #[link_name = "\u{1}aws_lc_0_36_0_awslc_api_version_num"]
6118    pub fn awslc_api_version_num() -> ::std::os::raw::c_ulong;
6119}
6120extern "C" {
6121    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_malloc_init"]
6122    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
6123}
6124extern "C" {
6125    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_malloc_init"]
6126    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
6127}
6128extern "C" {
6129    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_load_builtin_engines"]
6130    pub fn ENGINE_load_builtin_engines();
6131}
6132extern "C" {
6133    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_register_all_ciphers"]
6134    pub fn ENGINE_register_all_ciphers();
6135}
6136extern "C" {
6137    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_register_all_digests"]
6138    pub fn ENGINE_register_all_digests();
6139}
6140extern "C" {
6141    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_register_all_complete"]
6142    pub fn ENGINE_register_all_complete() -> ::std::os::raw::c_int;
6143}
6144extern "C" {
6145    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_load_builtin_modules"]
6146    pub fn OPENSSL_load_builtin_modules();
6147}
6148extern "C" {
6149    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_init_crypto"]
6150    pub fn OPENSSL_init_crypto(
6151        opts: u64,
6152        settings: *const OPENSSL_INIT_SETTINGS,
6153    ) -> ::std::os::raw::c_int;
6154}
6155extern "C" {
6156    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_init"]
6157    pub fn OPENSSL_init();
6158}
6159extern "C" {
6160    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_cleanup"]
6161    pub fn OPENSSL_cleanup();
6162}
6163extern "C" {
6164    #[link_name = "\u{1}aws_lc_0_36_0_FIPS_mode_set"]
6165    pub fn FIPS_mode_set(on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6166}
6167extern "C" {
6168    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_mem_ctrl"]
6169    pub fn CRYPTO_mem_ctrl(mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6170}
6171extern "C" {
6172    #[link_name = "\u{1}aws_lc_0_36_0_ERR_load_BIO_strings"]
6173    pub fn ERR_load_BIO_strings();
6174}
6175extern "C" {
6176    #[link_name = "\u{1}aws_lc_0_36_0_ERR_load_ERR_strings"]
6177    pub fn ERR_load_ERR_strings();
6178}
6179extern "C" {
6180    #[link_name = "\u{1}aws_lc_0_36_0_ERR_load_CRYPTO_strings"]
6181    pub fn ERR_load_CRYPTO_strings();
6182}
6183extern "C" {
6184    #[link_name = "\u{1}aws_lc_0_36_0_ERR_load_crypto_strings"]
6185    pub fn ERR_load_crypto_strings();
6186}
6187extern "C" {
6188    #[link_name = "\u{1}aws_lc_0_36_0_ERR_load_RAND_strings"]
6189    pub fn ERR_load_RAND_strings();
6190}
6191extern "C" {
6192    #[link_name = "\u{1}aws_lc_0_36_0_ERR_free_strings"]
6193    pub fn ERR_free_strings();
6194}
6195extern "C" {
6196    #[link_name = "\u{1}aws_lc_0_36_0_ERR_get_error"]
6197    pub fn ERR_get_error() -> u32;
6198}
6199extern "C" {
6200    #[link_name = "\u{1}aws_lc_0_36_0_ERR_get_error_line"]
6201    pub fn ERR_get_error_line(
6202        file: *mut *const ::std::os::raw::c_char,
6203        line: *mut ::std::os::raw::c_int,
6204    ) -> u32;
6205}
6206extern "C" {
6207    #[link_name = "\u{1}aws_lc_0_36_0_ERR_get_error_line_data"]
6208    pub fn ERR_get_error_line_data(
6209        file: *mut *const ::std::os::raw::c_char,
6210        line: *mut ::std::os::raw::c_int,
6211        data: *mut *const ::std::os::raw::c_char,
6212        flags: *mut ::std::os::raw::c_int,
6213    ) -> u32;
6214}
6215extern "C" {
6216    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_error"]
6217    pub fn ERR_peek_error() -> u32;
6218}
6219extern "C" {
6220    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_error_line"]
6221    pub fn ERR_peek_error_line(
6222        file: *mut *const ::std::os::raw::c_char,
6223        line: *mut ::std::os::raw::c_int,
6224    ) -> u32;
6225}
6226extern "C" {
6227    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_error_line_data"]
6228    pub fn ERR_peek_error_line_data(
6229        file: *mut *const ::std::os::raw::c_char,
6230        line: *mut ::std::os::raw::c_int,
6231        data: *mut *const ::std::os::raw::c_char,
6232        flags: *mut ::std::os::raw::c_int,
6233    ) -> u32;
6234}
6235extern "C" {
6236    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_last_error"]
6237    pub fn ERR_peek_last_error() -> u32;
6238}
6239extern "C" {
6240    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_last_error_line"]
6241    pub fn ERR_peek_last_error_line(
6242        file: *mut *const ::std::os::raw::c_char,
6243        line: *mut ::std::os::raw::c_int,
6244    ) -> u32;
6245}
6246extern "C" {
6247    #[link_name = "\u{1}aws_lc_0_36_0_ERR_peek_last_error_line_data"]
6248    pub fn ERR_peek_last_error_line_data(
6249        file: *mut *const ::std::os::raw::c_char,
6250        line: *mut ::std::os::raw::c_int,
6251        data: *mut *const ::std::os::raw::c_char,
6252        flags: *mut ::std::os::raw::c_int,
6253    ) -> u32;
6254}
6255extern "C" {
6256    #[link_name = "\u{1}aws_lc_0_36_0_ERR_error_string_n"]
6257    pub fn ERR_error_string_n(
6258        packed_error: u32,
6259        buf: *mut ::std::os::raw::c_char,
6260        len: usize,
6261    ) -> *mut ::std::os::raw::c_char;
6262}
6263extern "C" {
6264    #[link_name = "\u{1}aws_lc_0_36_0_ERR_lib_error_string"]
6265    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6266}
6267extern "C" {
6268    #[link_name = "\u{1}aws_lc_0_36_0_ERR_reason_error_string"]
6269    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6270}
6271pub type ERR_print_errors_callback_t = ::std::option::Option<
6272    unsafe extern "C" fn(
6273        str_: *const ::std::os::raw::c_char,
6274        len: usize,
6275        ctx: *mut ::std::os::raw::c_void,
6276    ) -> ::std::os::raw::c_int,
6277>;
6278extern "C" {
6279    #[link_name = "\u{1}aws_lc_0_36_0_ERR_print_errors_cb"]
6280    pub fn ERR_print_errors_cb(
6281        callback: ERR_print_errors_callback_t,
6282        ctx: *mut ::std::os::raw::c_void,
6283    );
6284}
6285extern "C" {
6286    #[link_name = "\u{1}aws_lc_0_36_0_ERR_print_errors_fp"]
6287    pub fn ERR_print_errors_fp(file: *mut FILE);
6288}
6289extern "C" {
6290    #[link_name = "\u{1}aws_lc_0_36_0_ERR_clear_error"]
6291    pub fn ERR_clear_error();
6292}
6293extern "C" {
6294    #[link_name = "\u{1}aws_lc_0_36_0_ERR_set_mark"]
6295    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
6296}
6297extern "C" {
6298    #[link_name = "\u{1}aws_lc_0_36_0_ERR_pop_to_mark"]
6299    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
6300}
6301extern "C" {
6302    #[link_name = "\u{1}aws_lc_0_36_0_ERR_get_next_error_library"]
6303    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
6304}
6305extern "C" {
6306    #[link_name = "\u{1}aws_lc_0_36_0_ERR_remove_state"]
6307    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
6308}
6309extern "C" {
6310    #[link_name = "\u{1}aws_lc_0_36_0_ERR_remove_thread_state"]
6311    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
6312}
6313extern "C" {
6314    #[link_name = "\u{1}aws_lc_0_36_0_ERR_func_error_string"]
6315    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6316}
6317extern "C" {
6318    #[link_name = "\u{1}aws_lc_0_36_0_ERR_error_string"]
6319    pub fn ERR_error_string(
6320        packed_error: u32,
6321        buf: *mut ::std::os::raw::c_char,
6322    ) -> *mut ::std::os::raw::c_char;
6323}
6324extern "C" {
6325    #[link_name = "\u{1}aws_lc_0_36_0_ERR_clear_system_error"]
6326    pub fn ERR_clear_system_error();
6327}
6328extern "C" {
6329    #[link_name = "\u{1}aws_lc_0_36_0_ERR_put_error"]
6330    pub fn ERR_put_error(
6331        library: ::std::os::raw::c_int,
6332        unused: ::std::os::raw::c_int,
6333        reason: ::std::os::raw::c_int,
6334        file: *const ::std::os::raw::c_char,
6335        line: ::std::os::raw::c_uint,
6336    );
6337}
6338extern "C" {
6339    #[link_name = "\u{1}aws_lc_0_36_0_ERR_add_error_data"]
6340    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
6341}
6342extern "C" {
6343    #[link_name = "\u{1}aws_lc_0_36_0_ERR_add_error_dataf"]
6344    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
6345}
6346extern "C" {
6347    #[link_name = "\u{1}aws_lc_0_36_0_ERR_set_error_data"]
6348    pub fn ERR_set_error_data(data: *mut ::std::os::raw::c_char, flags: ::std::os::raw::c_int);
6349}
6350pub type OPENSSL_sk_free_func =
6351    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
6352pub type OPENSSL_sk_copy_func = ::std::option::Option<
6353    unsafe extern "C" fn(ptr: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6354>;
6355pub type OPENSSL_sk_cmp_func = ::std::option::Option<
6356    unsafe extern "C" fn(
6357        a: *const *const ::std::os::raw::c_void,
6358        b: *const *const ::std::os::raw::c_void,
6359    ) -> ::std::os::raw::c_int,
6360>;
6361pub type OPENSSL_sk_delete_if_func = ::std::option::Option<
6362    unsafe extern "C" fn(
6363        obj: *mut ::std::os::raw::c_void,
6364        data: *mut ::std::os::raw::c_void,
6365    ) -> ::std::os::raw::c_int,
6366>;
6367pub type OPENSSL_sk_call_free_func = ::std::option::Option<
6368    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::std::os::raw::c_void),
6369>;
6370pub type OPENSSL_sk_call_copy_func = ::std::option::Option<
6371    unsafe extern "C" fn(
6372        arg1: OPENSSL_sk_copy_func,
6373        arg2: *const ::std::os::raw::c_void,
6374    ) -> *mut ::std::os::raw::c_void,
6375>;
6376pub type OPENSSL_sk_call_cmp_func = ::std::option::Option<
6377    unsafe extern "C" fn(
6378        arg1: OPENSSL_sk_cmp_func,
6379        arg2: *const ::std::os::raw::c_void,
6380        arg3: *const ::std::os::raw::c_void,
6381    ) -> ::std::os::raw::c_int,
6382>;
6383pub type OPENSSL_sk_call_delete_if_func = ::std::option::Option<
6384    unsafe extern "C" fn(
6385        arg1: OPENSSL_sk_delete_if_func,
6386        arg2: *mut ::std::os::raw::c_void,
6387        arg3: *mut ::std::os::raw::c_void,
6388    ) -> ::std::os::raw::c_int,
6389>;
6390#[repr(C)]
6391#[derive(Debug, Copy, Clone)]
6392pub struct stack_st {
6393    _unused: [u8; 0],
6394}
6395pub type OPENSSL_STACK = stack_st;
6396extern "C" {
6397    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_new"]
6398    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
6399}
6400extern "C" {
6401    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_new_null"]
6402    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
6403}
6404extern "C" {
6405    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_num"]
6406    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
6407}
6408extern "C" {
6409    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_zero"]
6410    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
6411}
6412extern "C" {
6413    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_value"]
6414    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::std::os::raw::c_void;
6415}
6416extern "C" {
6417    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_set"]
6418    pub fn OPENSSL_sk_set(
6419        sk: *mut OPENSSL_STACK,
6420        i: usize,
6421        p: *mut ::std::os::raw::c_void,
6422    ) -> *mut ::std::os::raw::c_void;
6423}
6424extern "C" {
6425    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_free"]
6426    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
6427}
6428extern "C" {
6429    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_pop_free_ex"]
6430    pub fn OPENSSL_sk_pop_free_ex(
6431        sk: *mut OPENSSL_STACK,
6432        call_free_func: OPENSSL_sk_call_free_func,
6433        free_func: OPENSSL_sk_free_func,
6434    );
6435}
6436extern "C" {
6437    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_insert"]
6438    pub fn OPENSSL_sk_insert(
6439        sk: *mut OPENSSL_STACK,
6440        p: *mut ::std::os::raw::c_void,
6441        where_: usize,
6442    ) -> usize;
6443}
6444extern "C" {
6445    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_delete"]
6446    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::std::os::raw::c_void;
6447}
6448extern "C" {
6449    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_delete_ptr"]
6450    pub fn OPENSSL_sk_delete_ptr(
6451        sk: *mut OPENSSL_STACK,
6452        p: *const ::std::os::raw::c_void,
6453    ) -> *mut ::std::os::raw::c_void;
6454}
6455extern "C" {
6456    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_delete_if"]
6457    pub fn OPENSSL_sk_delete_if(
6458        sk: *mut OPENSSL_STACK,
6459        call_func: OPENSSL_sk_call_delete_if_func,
6460        func: OPENSSL_sk_delete_if_func,
6461        data: *mut ::std::os::raw::c_void,
6462    );
6463}
6464extern "C" {
6465    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_find"]
6466    pub fn OPENSSL_sk_find(
6467        sk: *const OPENSSL_STACK,
6468        out_index: *mut usize,
6469        p: *const ::std::os::raw::c_void,
6470        call_cmp_func: OPENSSL_sk_call_cmp_func,
6471    ) -> ::std::os::raw::c_int;
6472}
6473extern "C" {
6474    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_unshift"]
6475    pub fn OPENSSL_sk_unshift(
6476        sk: *mut OPENSSL_STACK,
6477        data: *mut ::std::os::raw::c_void,
6478    ) -> ::std::os::raw::c_int;
6479}
6480extern "C" {
6481    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_shift"]
6482    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6483}
6484extern "C" {
6485    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_push"]
6486    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::std::os::raw::c_void) -> usize;
6487}
6488extern "C" {
6489    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_pop"]
6490    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6491}
6492extern "C" {
6493    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_dup"]
6494    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6495}
6496extern "C" {
6497    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_sort"]
6498    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6499}
6500extern "C" {
6501    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_is_sorted"]
6502    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::std::os::raw::c_int;
6503}
6504extern "C" {
6505    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_set_cmp_func"]
6506    pub fn OPENSSL_sk_set_cmp_func(
6507        sk: *mut OPENSSL_STACK,
6508        comp: OPENSSL_sk_cmp_func,
6509    ) -> OPENSSL_sk_cmp_func;
6510}
6511extern "C" {
6512    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_sk_deep_copy"]
6513    pub fn OPENSSL_sk_deep_copy(
6514        sk: *const OPENSSL_STACK,
6515        call_copy_func: OPENSSL_sk_call_copy_func,
6516        copy_func: OPENSSL_sk_copy_func,
6517        call_free_func: OPENSSL_sk_call_free_func,
6518        free_func: OPENSSL_sk_free_func,
6519    ) -> *mut OPENSSL_STACK;
6520}
6521pub type _STACK = OPENSSL_STACK;
6522extern "C" {
6523    #[link_name = "\u{1}aws_lc_0_36_0_sk_pop_free"]
6524    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6525}
6526pub type OPENSSL_STRING = *mut ::std::os::raw::c_char;
6527#[repr(C)]
6528#[derive(Debug, Copy, Clone)]
6529pub struct stack_st_void {
6530    _unused: [u8; 0],
6531}
6532pub type sk_void_free_func =
6533    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
6534pub type sk_void_copy_func = ::std::option::Option<
6535    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6536>;
6537pub type sk_void_cmp_func = ::std::option::Option<
6538    unsafe extern "C" fn(
6539        arg1: *const *const ::std::os::raw::c_void,
6540        arg2: *const *const ::std::os::raw::c_void,
6541    ) -> ::std::os::raw::c_int,
6542>;
6543pub type sk_void_delete_if_func = ::std::option::Option<
6544    unsafe extern "C" fn(
6545        arg1: *mut ::std::os::raw::c_void,
6546        arg2: *mut ::std::os::raw::c_void,
6547    ) -> ::std::os::raw::c_int,
6548>;
6549#[repr(C)]
6550#[derive(Debug, Copy, Clone)]
6551pub struct stack_st_OPENSSL_STRING {
6552    _unused: [u8; 0],
6553}
6554pub type sk_OPENSSL_STRING_free_func =
6555    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char)>;
6556pub type sk_OPENSSL_STRING_copy_func = ::std::option::Option<
6557    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
6558>;
6559pub type sk_OPENSSL_STRING_cmp_func = ::std::option::Option<
6560    unsafe extern "C" fn(
6561        arg1: *const *const ::std::os::raw::c_char,
6562        arg2: *const *const ::std::os::raw::c_char,
6563    ) -> ::std::os::raw::c_int,
6564>;
6565pub type sk_OPENSSL_STRING_delete_if_func = ::std::option::Option<
6566    unsafe extern "C" fn(
6567        arg1: *mut ::std::os::raw::c_char,
6568        arg2: *mut ::std::os::raw::c_void,
6569    ) -> ::std::os::raw::c_int,
6570>;
6571pub type CRYPTO_EX_DATA = crypto_ex_data_st;
6572pub type CRYPTO_EX_free = ::std::option::Option<
6573    unsafe extern "C" fn(
6574        parent: *mut ::std::os::raw::c_void,
6575        ptr: *mut ::std::os::raw::c_void,
6576        ad: *mut CRYPTO_EX_DATA,
6577        index: ::std::os::raw::c_int,
6578        argl: ::std::os::raw::c_long,
6579        argp: *mut ::std::os::raw::c_void,
6580    ),
6581>;
6582extern "C" {
6583    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_cleanup_all_ex_data"]
6584    pub fn CRYPTO_cleanup_all_ex_data();
6585}
6586pub type CRYPTO_EX_dup = ::std::option::Option<
6587    unsafe extern "C" fn(
6588        to: *mut CRYPTO_EX_DATA,
6589        from: *const CRYPTO_EX_DATA,
6590        from_d: *mut *mut ::std::os::raw::c_void,
6591        index: ::std::os::raw::c_int,
6592        argl: ::std::os::raw::c_long,
6593        argp: *mut ::std::os::raw::c_void,
6594    ) -> ::std::os::raw::c_int,
6595>;
6596pub type CRYPTO_EX_unused = ::std::os::raw::c_int;
6597#[repr(C)]
6598#[derive(Debug, Copy, Clone, PartialEq, Eq)]
6599pub struct crypto_ex_data_st {
6600    pub sk: *mut stack_st_void,
6601}
6602#[test]
6603fn bindgen_test_layout_crypto_ex_data_st() {
6604    const UNINIT: ::std::mem::MaybeUninit<crypto_ex_data_st> = ::std::mem::MaybeUninit::uninit();
6605    let ptr = UNINIT.as_ptr();
6606    assert_eq!(
6607        ::std::mem::size_of::<crypto_ex_data_st>(),
6608        8usize,
6609        "Size of crypto_ex_data_st"
6610    );
6611    assert_eq!(
6612        ::std::mem::align_of::<crypto_ex_data_st>(),
6613        8usize,
6614        "Alignment of crypto_ex_data_st"
6615    );
6616    assert_eq!(
6617        unsafe { ::std::ptr::addr_of!((*ptr).sk) as usize - ptr as usize },
6618        0usize,
6619        "Offset of field: crypto_ex_data_st::sk"
6620    );
6621}
6622impl Default for crypto_ex_data_st {
6623    fn default() -> Self {
6624        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6625        unsafe {
6626            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6627            s.assume_init()
6628        }
6629    }
6630}
6631#[repr(C)]
6632#[derive(Debug, Copy, Clone)]
6633pub struct stack_st_BIO {
6634    _unused: [u8; 0],
6635}
6636pub type sk_BIO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6637pub type sk_BIO_copy_func =
6638    ::std::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6639pub type sk_BIO_cmp_func = ::std::option::Option<
6640    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::std::os::raw::c_int,
6641>;
6642pub type sk_BIO_delete_if_func = ::std::option::Option<
6643    unsafe extern "C" fn(
6644        arg1: *mut BIO,
6645        arg2: *mut ::std::os::raw::c_void,
6646    ) -> ::std::os::raw::c_int,
6647>;
6648extern "C" {
6649    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new"]
6650    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6651}
6652extern "C" {
6653    #[link_name = "\u{1}aws_lc_0_36_0_BIO_free"]
6654    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
6655}
6656extern "C" {
6657    #[link_name = "\u{1}aws_lc_0_36_0_BIO_vfree"]
6658    pub fn BIO_vfree(bio: *mut BIO);
6659}
6660extern "C" {
6661    #[link_name = "\u{1}aws_lc_0_36_0_BIO_up_ref"]
6662    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
6663}
6664extern "C" {
6665    #[link_name = "\u{1}aws_lc_0_36_0_BIO_read"]
6666    pub fn BIO_read(
6667        bio: *mut BIO,
6668        data: *mut ::std::os::raw::c_void,
6669        len: ::std::os::raw::c_int,
6670    ) -> ::std::os::raw::c_int;
6671}
6672extern "C" {
6673    #[link_name = "\u{1}aws_lc_0_36_0_BIO_read_ex"]
6674    pub fn BIO_read_ex(
6675        bio: *mut BIO,
6676        data: *mut ::std::os::raw::c_void,
6677        data_len: usize,
6678        read_bytes: *mut usize,
6679    ) -> ::std::os::raw::c_int;
6680}
6681extern "C" {
6682    #[link_name = "\u{1}aws_lc_0_36_0_BIO_gets"]
6683    pub fn BIO_gets(
6684        bio: *mut BIO,
6685        buf: *mut ::std::os::raw::c_char,
6686        size: ::std::os::raw::c_int,
6687    ) -> ::std::os::raw::c_int;
6688}
6689extern "C" {
6690    #[link_name = "\u{1}aws_lc_0_36_0_BIO_write"]
6691    pub fn BIO_write(
6692        bio: *mut BIO,
6693        data: *const ::std::os::raw::c_void,
6694        len: ::std::os::raw::c_int,
6695    ) -> ::std::os::raw::c_int;
6696}
6697extern "C" {
6698    #[link_name = "\u{1}aws_lc_0_36_0_BIO_write_ex"]
6699    pub fn BIO_write_ex(
6700        bio: *mut BIO,
6701        data: *const ::std::os::raw::c_void,
6702        data_len: usize,
6703        written_bytes: *mut usize,
6704    ) -> ::std::os::raw::c_int;
6705}
6706extern "C" {
6707    #[link_name = "\u{1}aws_lc_0_36_0_BIO_write_all"]
6708    pub fn BIO_write_all(
6709        bio: *mut BIO,
6710        data: *const ::std::os::raw::c_void,
6711        len: usize,
6712    ) -> ::std::os::raw::c_int;
6713}
6714extern "C" {
6715    #[link_name = "\u{1}aws_lc_0_36_0_BIO_puts"]
6716    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6717}
6718extern "C" {
6719    #[link_name = "\u{1}aws_lc_0_36_0_BIO_flush"]
6720    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
6721}
6722extern "C" {
6723    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl"]
6724    pub fn BIO_ctrl(
6725        bio: *mut BIO,
6726        cmd: ::std::os::raw::c_int,
6727        larg: ::std::os::raw::c_long,
6728        parg: *mut ::std::os::raw::c_void,
6729    ) -> ::std::os::raw::c_long;
6730}
6731extern "C" {
6732    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ptr_ctrl"]
6733    pub fn BIO_ptr_ctrl(
6734        bp: *mut BIO,
6735        cmd: ::std::os::raw::c_int,
6736        larg: ::std::os::raw::c_long,
6737    ) -> *mut ::std::os::raw::c_char;
6738}
6739extern "C" {
6740    #[link_name = "\u{1}aws_lc_0_36_0_BIO_int_ctrl"]
6741    pub fn BIO_int_ctrl(
6742        bp: *mut BIO,
6743        cmd: ::std::os::raw::c_int,
6744        larg: ::std::os::raw::c_long,
6745        iarg: ::std::os::raw::c_int,
6746    ) -> ::std::os::raw::c_long;
6747}
6748extern "C" {
6749    #[link_name = "\u{1}aws_lc_0_36_0_BIO_reset"]
6750    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
6751}
6752extern "C" {
6753    #[link_name = "\u{1}aws_lc_0_36_0_BIO_eof"]
6754    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
6755}
6756extern "C" {
6757    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_flags"]
6758    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6759}
6760extern "C" {
6761    #[link_name = "\u{1}aws_lc_0_36_0_BIO_test_flags"]
6762    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6763}
6764extern "C" {
6765    #[link_name = "\u{1}aws_lc_0_36_0_BIO_should_read"]
6766    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
6767}
6768extern "C" {
6769    #[link_name = "\u{1}aws_lc_0_36_0_BIO_should_write"]
6770    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
6771}
6772extern "C" {
6773    #[link_name = "\u{1}aws_lc_0_36_0_BIO_should_retry"]
6774    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
6775}
6776extern "C" {
6777    #[link_name = "\u{1}aws_lc_0_36_0_BIO_should_io_special"]
6778    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
6779}
6780extern "C" {
6781    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_retry_reason"]
6782    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
6783}
6784extern "C" {
6785    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_retry_reason"]
6786    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::std::os::raw::c_int);
6787}
6788extern "C" {
6789    #[link_name = "\u{1}aws_lc_0_36_0_BIO_clear_flags"]
6790    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6791}
6792extern "C" {
6793    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_retry_read"]
6794    pub fn BIO_set_retry_read(bio: *mut BIO);
6795}
6796extern "C" {
6797    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_retry_write"]
6798    pub fn BIO_set_retry_write(bio: *mut BIO);
6799}
6800extern "C" {
6801    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_retry_flags"]
6802    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
6803}
6804extern "C" {
6805    #[link_name = "\u{1}aws_lc_0_36_0_BIO_clear_retry_flags"]
6806    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6807}
6808extern "C" {
6809    #[link_name = "\u{1}aws_lc_0_36_0_BIO_method_type"]
6810    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
6811}
6812extern "C" {
6813    #[link_name = "\u{1}aws_lc_0_36_0_BIO_method_name"]
6814    pub fn BIO_method_name(b: *const BIO) -> *const ::std::os::raw::c_char;
6815}
6816pub type bio_info_cb = ::std::option::Option<
6817    unsafe extern "C" fn(
6818        b: *mut BIO,
6819        state: ::std::os::raw::c_int,
6820        res: ::std::os::raw::c_int,
6821    ) -> ::std::os::raw::c_long,
6822>;
6823pub type BIO_callback_fn_ex = ::std::option::Option<
6824    unsafe extern "C" fn(
6825        bio: *mut BIO,
6826        oper: ::std::os::raw::c_int,
6827        argp: *const ::std::os::raw::c_char,
6828        len: usize,
6829        argi: ::std::os::raw::c_int,
6830        argl: ::std::os::raw::c_long,
6831        bio_ret: ::std::os::raw::c_int,
6832        processed: *mut usize,
6833    ) -> ::std::os::raw::c_long,
6834>;
6835pub type BIO_callback_fn = ::std::option::Option<
6836    unsafe extern "C" fn(
6837        bio: *mut BIO,
6838        oper: ::std::os::raw::c_int,
6839        argp: *const ::std::os::raw::c_char,
6840        argi: ::std::os::raw::c_int,
6841        argl: ::std::os::raw::c_long,
6842        bio_ret: ::std::os::raw::c_long,
6843    ) -> ::std::os::raw::c_long,
6844>;
6845extern "C" {
6846    #[link_name = "\u{1}aws_lc_0_36_0_BIO_callback_ctrl"]
6847    pub fn BIO_callback_ctrl(
6848        bio: *mut BIO,
6849        cmd: ::std::os::raw::c_int,
6850        fp: bio_info_cb,
6851    ) -> ::std::os::raw::c_long;
6852}
6853extern "C" {
6854    #[link_name = "\u{1}aws_lc_0_36_0_BIO_pending"]
6855    pub fn BIO_pending(bio: *const BIO) -> usize;
6856}
6857extern "C" {
6858    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl_pending"]
6859    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6860}
6861extern "C" {
6862    #[link_name = "\u{1}aws_lc_0_36_0_BIO_wpending"]
6863    pub fn BIO_wpending(bio: *const BIO) -> usize;
6864}
6865extern "C" {
6866    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_close"]
6867    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
6868        -> ::std::os::raw::c_int;
6869}
6870extern "C" {
6871    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_close"]
6872    pub fn BIO_get_close(bio: *mut BIO) -> ::std::os::raw::c_int;
6873}
6874extern "C" {
6875    #[link_name = "\u{1}aws_lc_0_36_0_BIO_number_read"]
6876    pub fn BIO_number_read(bio: *const BIO) -> u64;
6877}
6878extern "C" {
6879    #[link_name = "\u{1}aws_lc_0_36_0_BIO_number_written"]
6880    pub fn BIO_number_written(bio: *const BIO) -> u64;
6881}
6882extern "C" {
6883    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_callback_ex"]
6884    pub fn BIO_set_callback_ex(bio: *mut BIO, callback_ex: BIO_callback_fn_ex);
6885}
6886extern "C" {
6887    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_callback"]
6888    pub fn BIO_set_callback(bio: *mut BIO, callback: BIO_callback_fn);
6889}
6890extern "C" {
6891    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_callback_arg"]
6892    pub fn BIO_set_callback_arg(bio: *mut BIO, arg: *mut ::std::os::raw::c_char);
6893}
6894extern "C" {
6895    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_callback_arg"]
6896    pub fn BIO_get_callback_arg(bio: *const BIO) -> *mut ::std::os::raw::c_char;
6897}
6898extern "C" {
6899    #[link_name = "\u{1}aws_lc_0_36_0_BIO_push"]
6900    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6901}
6902extern "C" {
6903    #[link_name = "\u{1}aws_lc_0_36_0_BIO_pop"]
6904    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6905}
6906extern "C" {
6907    #[link_name = "\u{1}aws_lc_0_36_0_BIO_next"]
6908    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6909}
6910extern "C" {
6911    #[link_name = "\u{1}aws_lc_0_36_0_BIO_free_all"]
6912    pub fn BIO_free_all(bio: *mut BIO);
6913}
6914extern "C" {
6915    #[link_name = "\u{1}aws_lc_0_36_0_BIO_find_type"]
6916    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
6917}
6918extern "C" {
6919    #[link_name = "\u{1}aws_lc_0_36_0_BIO_copy_next_retry"]
6920    pub fn BIO_copy_next_retry(bio: *mut BIO);
6921}
6922extern "C" {
6923    #[link_name = "\u{1}aws_lc_0_36_0_BIO_printf"]
6924    pub fn BIO_printf(
6925        bio: *mut BIO,
6926        format: *const ::std::os::raw::c_char,
6927        ...
6928    ) -> ::std::os::raw::c_int;
6929}
6930extern "C" {
6931    #[link_name = "\u{1}aws_lc_0_36_0_BIO_indent"]
6932    pub fn BIO_indent(
6933        bio: *mut BIO,
6934        indent: ::std::os::raw::c_uint,
6935        max_indent: ::std::os::raw::c_uint,
6936    ) -> ::std::os::raw::c_int;
6937}
6938extern "C" {
6939    #[link_name = "\u{1}aws_lc_0_36_0_BIO_hexdump"]
6940    pub fn BIO_hexdump(
6941        bio: *mut BIO,
6942        data: *const u8,
6943        len: usize,
6944        indent: ::std::os::raw::c_uint,
6945    ) -> ::std::os::raw::c_int;
6946}
6947extern "C" {
6948    #[link_name = "\u{1}aws_lc_0_36_0_BIO_dump"]
6949    pub fn BIO_dump(
6950        bio: *mut BIO,
6951        data: *const ::std::os::raw::c_void,
6952        len: ::std::os::raw::c_int,
6953    ) -> ::std::os::raw::c_int;
6954}
6955extern "C" {
6956    #[link_name = "\u{1}aws_lc_0_36_0_ERR_print_errors"]
6957    pub fn ERR_print_errors(bio: *mut BIO);
6958}
6959extern "C" {
6960    #[link_name = "\u{1}aws_lc_0_36_0_BIO_read_asn1"]
6961    pub fn BIO_read_asn1(
6962        bio: *mut BIO,
6963        out: *mut *mut u8,
6964        out_len: *mut usize,
6965        max_len: usize,
6966    ) -> ::std::os::raw::c_int;
6967}
6968extern "C" {
6969    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_mem"]
6970    pub fn BIO_s_mem() -> *const BIO_METHOD;
6971}
6972extern "C" {
6973    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_mem_buf"]
6974    pub fn BIO_new_mem_buf(buf: *const ::std::os::raw::c_void, len: ossl_ssize_t) -> *mut BIO;
6975}
6976extern "C" {
6977    #[link_name = "\u{1}aws_lc_0_36_0_BIO_mem_contents"]
6978    pub fn BIO_mem_contents(
6979        bio: *const BIO,
6980        out_contents: *mut *const u8,
6981        out_len: *mut usize,
6982    ) -> ::std::os::raw::c_int;
6983}
6984extern "C" {
6985    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_mem_ptr"]
6986    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
6987}
6988extern "C" {
6989    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_mem_buf"]
6990    pub fn BIO_set_mem_buf(
6991        bio: *mut BIO,
6992        b: *mut BUF_MEM,
6993        take_ownership: ::std::os::raw::c_int,
6994    ) -> ::std::os::raw::c_int;
6995}
6996extern "C" {
6997    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_mem_eof_return"]
6998    pub fn BIO_set_mem_eof_return(
6999        bio: *mut BIO,
7000        eof_value: ::std::os::raw::c_int,
7001    ) -> ::std::os::raw::c_int;
7002}
7003extern "C" {
7004    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_fd"]
7005    pub fn BIO_s_fd() -> *const BIO_METHOD;
7006}
7007extern "C" {
7008    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_fd"]
7009    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7010}
7011extern "C" {
7012    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_fd"]
7013    pub fn BIO_set_fd(
7014        bio: *mut BIO,
7015        fd: ::std::os::raw::c_int,
7016        close_flag: ::std::os::raw::c_int,
7017    ) -> ::std::os::raw::c_int;
7018}
7019extern "C" {
7020    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_fd"]
7021    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7022}
7023extern "C" {
7024    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_file"]
7025    pub fn BIO_s_file() -> *const BIO_METHOD;
7026}
7027extern "C" {
7028    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_file"]
7029    pub fn BIO_new_file(
7030        filename: *const ::std::os::raw::c_char,
7031        mode: *const ::std::os::raw::c_char,
7032    ) -> *mut BIO;
7033}
7034extern "C" {
7035    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_fp"]
7036    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7037}
7038extern "C" {
7039    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_fp"]
7040    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
7041}
7042extern "C" {
7043    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_fp"]
7044    pub fn BIO_set_fp(
7045        bio: *mut BIO,
7046        file: *mut FILE,
7047        close_flag: ::std::os::raw::c_int,
7048    ) -> ::std::os::raw::c_int;
7049}
7050extern "C" {
7051    #[link_name = "\u{1}aws_lc_0_36_0_BIO_read_filename"]
7052    pub fn BIO_read_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_36_0_BIO_write_filename"]
7059    pub fn BIO_write_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_36_0_BIO_append_filename"]
7066    pub fn BIO_append_filename(
7067        bio: *mut BIO,
7068        filename: *const ::std::os::raw::c_char,
7069    ) -> ::std::os::raw::c_int;
7070}
7071extern "C" {
7072    #[link_name = "\u{1}aws_lc_0_36_0_BIO_rw_filename"]
7073    pub fn BIO_rw_filename(
7074        bio: *mut BIO,
7075        filename: *const ::std::os::raw::c_char,
7076    ) -> ::std::os::raw::c_int;
7077}
7078extern "C" {
7079    #[link_name = "\u{1}aws_lc_0_36_0_BIO_tell"]
7080    pub fn BIO_tell(bio: *mut BIO) -> ::std::os::raw::c_long;
7081}
7082extern "C" {
7083    #[link_name = "\u{1}aws_lc_0_36_0_BIO_seek"]
7084    pub fn BIO_seek(bio: *mut BIO, offset: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
7085}
7086extern "C" {
7087    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_socket"]
7088    pub fn BIO_s_socket() -> *const BIO_METHOD;
7089}
7090extern "C" {
7091    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_socket"]
7092    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
7093        -> *mut BIO;
7094}
7095extern "C" {
7096    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_connect"]
7097    pub fn BIO_s_connect() -> *const BIO_METHOD;
7098}
7099extern "C" {
7100    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_connect"]
7101    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
7102}
7103extern "C" {
7104    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_conn_hostname"]
7105    pub fn BIO_set_conn_hostname(
7106        bio: *mut BIO,
7107        host_and_optional_port: *const ::std::os::raw::c_char,
7108    ) -> ::std::os::raw::c_int;
7109}
7110extern "C" {
7111    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_conn_port"]
7112    pub fn BIO_set_conn_port(
7113        bio: *mut BIO,
7114        port_str: *const ::std::os::raw::c_char,
7115    ) -> ::std::os::raw::c_int;
7116}
7117extern "C" {
7118    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_conn_int_port"]
7119    pub fn BIO_set_conn_int_port(
7120        bio: *mut BIO,
7121        port: *const ::std::os::raw::c_int,
7122    ) -> ::std::os::raw::c_int;
7123}
7124extern "C" {
7125    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_nbio"]
7126    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7127}
7128extern "C" {
7129    #[link_name = "\u{1}aws_lc_0_36_0_BIO_do_connect"]
7130    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
7131}
7132extern "C" {
7133    #[link_name = "\u{1}aws_lc_0_36_0_BIO_f_md"]
7134    pub fn BIO_f_md() -> *const BIO_METHOD;
7135}
7136extern "C" {
7137    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_md_ctx"]
7138    pub fn BIO_get_md_ctx(b: *mut BIO, ctx: *mut *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
7139}
7140extern "C" {
7141    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_md"]
7142    pub fn BIO_set_md(b: *mut BIO, md: *const EVP_MD) -> ::std::os::raw::c_int;
7143}
7144extern "C" {
7145    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_md"]
7146    pub fn BIO_get_md(b: *mut BIO, md: *mut *mut EVP_MD) -> ::std::os::raw::c_int;
7147}
7148#[repr(C)]
7149#[derive(Copy, Clone)]
7150pub struct bio_addr_st {
7151    _unused: [u8; 0],
7152}
7153pub type BIO_ADDR = bio_addr_st;
7154extern "C" {
7155    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_datagram"]
7156    pub fn BIO_s_datagram() -> *const BIO_METHOD;
7157}
7158extern "C" {
7159    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_dgram"]
7160    pub fn BIO_new_dgram(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7161}
7162extern "C" {
7163    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl_dgram_connect"]
7164    pub fn BIO_ctrl_dgram_connect(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7165}
7166extern "C" {
7167    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl_set_connected"]
7168    pub fn BIO_ctrl_set_connected(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7169}
7170extern "C" {
7171    #[link_name = "\u{1}aws_lc_0_36_0_BIO_dgram_recv_timedout"]
7172    pub fn BIO_dgram_recv_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7173}
7174extern "C" {
7175    #[link_name = "\u{1}aws_lc_0_36_0_BIO_dgram_send_timedout"]
7176    pub fn BIO_dgram_send_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7177}
7178extern "C" {
7179    #[link_name = "\u{1}aws_lc_0_36_0_BIO_dgram_get_peer"]
7180    pub fn BIO_dgram_get_peer(bp: *mut BIO, peer: *mut BIO_ADDR) -> ::std::os::raw::c_int;
7181}
7182extern "C" {
7183    #[link_name = "\u{1}aws_lc_0_36_0_BIO_dgram_set_peer"]
7184    pub fn BIO_dgram_set_peer(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7185}
7186extern "C" {
7187    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_new"]
7188    pub fn BIO_ADDR_new() -> *mut BIO_ADDR;
7189}
7190extern "C" {
7191    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_copy"]
7192    pub fn BIO_ADDR_copy(dst: *mut BIO_ADDR, src: *const BIO_ADDR) -> ::std::os::raw::c_int;
7193}
7194extern "C" {
7195    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_dup"]
7196    pub fn BIO_ADDR_dup(ap: *const BIO_ADDR) -> *mut BIO_ADDR;
7197}
7198extern "C" {
7199    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_free"]
7200    pub fn BIO_ADDR_free(ap: *mut BIO_ADDR);
7201}
7202extern "C" {
7203    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_clear"]
7204    pub fn BIO_ADDR_clear(ap: *mut BIO_ADDR);
7205}
7206extern "C" {
7207    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_rawmake"]
7208    pub fn BIO_ADDR_rawmake(
7209        ap: *mut BIO_ADDR,
7210        family: ::std::os::raw::c_int,
7211        where_: *const ::std::os::raw::c_void,
7212        wherelen: usize,
7213        port: ::std::os::raw::c_ushort,
7214    ) -> ::std::os::raw::c_int;
7215}
7216extern "C" {
7217    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_family"]
7218    pub fn BIO_ADDR_family(ap: *const BIO_ADDR) -> ::std::os::raw::c_int;
7219}
7220extern "C" {
7221    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_rawaddress"]
7222    pub fn BIO_ADDR_rawaddress(
7223        ap: *const BIO_ADDR,
7224        p: *mut ::std::os::raw::c_void,
7225        l: *mut usize,
7226    ) -> ::std::os::raw::c_int;
7227}
7228extern "C" {
7229    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ADDR_rawport"]
7230    pub fn BIO_ADDR_rawport(ap: *const BIO_ADDR) -> ::std::os::raw::c_ushort;
7231}
7232extern "C" {
7233    #[link_name = "\u{1}aws_lc_0_36_0_BIO_new_bio_pair"]
7234    pub fn BIO_new_bio_pair(
7235        out1: *mut *mut BIO,
7236        writebuf1: usize,
7237        out2: *mut *mut BIO,
7238        writebuf2: usize,
7239    ) -> ::std::os::raw::c_int;
7240}
7241extern "C" {
7242    #[link_name = "\u{1}aws_lc_0_36_0_BIO_destroy_bio_pair"]
7243    pub fn BIO_destroy_bio_pair(b: *mut BIO) -> ::std::os::raw::c_int;
7244}
7245extern "C" {
7246    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl_get_read_request"]
7247    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
7248}
7249extern "C" {
7250    #[link_name = "\u{1}aws_lc_0_36_0_BIO_ctrl_get_write_guarantee"]
7251    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
7252}
7253extern "C" {
7254    #[link_name = "\u{1}aws_lc_0_36_0_BIO_shutdown_wr"]
7255    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
7256}
7257extern "C" {
7258    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_new_index"]
7259    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
7260}
7261extern "C" {
7262    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_new"]
7263    pub fn BIO_meth_new(
7264        type_: ::std::os::raw::c_int,
7265        name: *const ::std::os::raw::c_char,
7266    ) -> *mut BIO_METHOD;
7267}
7268extern "C" {
7269    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_free"]
7270    pub fn BIO_meth_free(method: *mut BIO_METHOD);
7271}
7272extern "C" {
7273    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_create"]
7274    pub fn BIO_meth_set_create(
7275        method: *mut BIO_METHOD,
7276        create: ::std::option::Option<
7277            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7278        >,
7279    ) -> ::std::os::raw::c_int;
7280}
7281extern "C" {
7282    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_create"]
7283    pub fn BIO_meth_get_create(
7284        method: *const BIO_METHOD,
7285    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7286}
7287extern "C" {
7288    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_destroy"]
7289    pub fn BIO_meth_set_destroy(
7290        method: *mut BIO_METHOD,
7291        destroy: ::std::option::Option<
7292            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7293        >,
7294    ) -> ::std::os::raw::c_int;
7295}
7296extern "C" {
7297    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_destroy"]
7298    pub fn BIO_meth_get_destroy(
7299        method: *const BIO_METHOD,
7300    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7301}
7302extern "C" {
7303    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_write"]
7304    pub fn BIO_meth_set_write(
7305        method: *mut BIO_METHOD,
7306        write: ::std::option::Option<
7307            unsafe extern "C" fn(
7308                arg1: *mut BIO,
7309                arg2: *const ::std::os::raw::c_char,
7310                arg3: ::std::os::raw::c_int,
7311            ) -> ::std::os::raw::c_int,
7312        >,
7313    ) -> ::std::os::raw::c_int;
7314}
7315extern "C" {
7316    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_read"]
7317    pub fn BIO_meth_set_read(
7318        method: *mut BIO_METHOD,
7319        read: ::std::option::Option<
7320            unsafe extern "C" fn(
7321                arg1: *mut BIO,
7322                arg2: *mut ::std::os::raw::c_char,
7323                arg3: ::std::os::raw::c_int,
7324            ) -> ::std::os::raw::c_int,
7325        >,
7326    ) -> ::std::os::raw::c_int;
7327}
7328extern "C" {
7329    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_gets"]
7330    pub fn BIO_meth_set_gets(
7331        method: *mut BIO_METHOD,
7332        gets: ::std::option::Option<
7333            unsafe extern "C" fn(
7334                arg1: *mut BIO,
7335                arg2: *mut ::std::os::raw::c_char,
7336                arg3: ::std::os::raw::c_int,
7337            ) -> ::std::os::raw::c_int,
7338        >,
7339    ) -> ::std::os::raw::c_int;
7340}
7341extern "C" {
7342    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_gets"]
7343    pub fn BIO_meth_get_gets(
7344        method: *const BIO_METHOD,
7345    ) -> ::std::option::Option<
7346        unsafe extern "C" fn(
7347            method: *mut BIO,
7348            arg1: *mut ::std::os::raw::c_char,
7349            arg2: ::std::os::raw::c_int,
7350        ) -> ::std::os::raw::c_int,
7351    >;
7352}
7353extern "C" {
7354    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_ctrl"]
7355    pub fn BIO_meth_set_ctrl(
7356        method: *mut BIO_METHOD,
7357        ctrl: ::std::option::Option<
7358            unsafe extern "C" fn(
7359                arg1: *mut BIO,
7360                arg2: ::std::os::raw::c_int,
7361                arg3: ::std::os::raw::c_long,
7362                arg4: *mut ::std::os::raw::c_void,
7363            ) -> ::std::os::raw::c_long,
7364        >,
7365    ) -> ::std::os::raw::c_int;
7366}
7367extern "C" {
7368    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_ctrl"]
7369    pub fn BIO_meth_get_ctrl(
7370        method: *const BIO_METHOD,
7371    ) -> ::std::option::Option<
7372        unsafe extern "C" fn(
7373            method: *mut BIO,
7374            arg1: ::std::os::raw::c_int,
7375            arg2: ::std::os::raw::c_long,
7376            arg3: *mut ::std::os::raw::c_void,
7377        ) -> ::std::os::raw::c_long,
7378    >;
7379}
7380extern "C" {
7381    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_callback_ctrl"]
7382    pub fn BIO_meth_set_callback_ctrl(
7383        method: *mut BIO_METHOD,
7384        callback_ctrl: ::std::option::Option<
7385            unsafe extern "C" fn(
7386                arg1: *mut BIO,
7387                arg2: ::std::os::raw::c_int,
7388                arg3: bio_info_cb,
7389            ) -> ::std::os::raw::c_long,
7390        >,
7391    ) -> ::std::os::raw::c_int;
7392}
7393extern "C" {
7394    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_callback_ctrl"]
7395    pub fn BIO_meth_get_callback_ctrl(
7396        method: *const BIO_METHOD,
7397    ) -> ::std::option::Option<
7398        unsafe extern "C" fn(
7399            method: *mut BIO,
7400            arg1: ::std::os::raw::c_int,
7401            arg2: bio_info_cb,
7402        ) -> ::std::os::raw::c_long,
7403    >;
7404}
7405extern "C" {
7406    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_data"]
7407    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
7408}
7409extern "C" {
7410    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_data"]
7411    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
7412}
7413extern "C" {
7414    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_init"]
7415    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
7416}
7417extern "C" {
7418    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_init"]
7419    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
7420}
7421extern "C" {
7422    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_ex_new_index"]
7423    pub fn BIO_get_ex_new_index(
7424        argl: ::std::os::raw::c_long,
7425        argp: *mut ::std::os::raw::c_void,
7426        unused: *mut CRYPTO_EX_unused,
7427        dup_unused: CRYPTO_EX_dup,
7428        free_func: CRYPTO_EX_free,
7429    ) -> ::std::os::raw::c_int;
7430}
7431extern "C" {
7432    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_ex_data"]
7433    pub fn BIO_set_ex_data(
7434        bio: *mut BIO,
7435        idx: ::std::os::raw::c_int,
7436        arg: *mut ::std::os::raw::c_void,
7437    ) -> ::std::os::raw::c_int;
7438}
7439extern "C" {
7440    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_ex_data"]
7441    pub fn BIO_get_ex_data(
7442        bio: *const BIO,
7443        idx: ::std::os::raw::c_int,
7444    ) -> *mut ::std::os::raw::c_void;
7445}
7446extern "C" {
7447    #[link_name = "\u{1}aws_lc_0_36_0_BIO_f_base64"]
7448    pub fn BIO_f_base64() -> *const BIO_METHOD;
7449}
7450extern "C" {
7451    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_retry_special"]
7452    pub fn BIO_set_retry_special(bio: *mut BIO);
7453}
7454extern "C" {
7455    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_shutdown"]
7456    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
7457}
7458extern "C" {
7459    #[link_name = "\u{1}aws_lc_0_36_0_BIO_get_shutdown"]
7460    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
7461}
7462extern "C" {
7463    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_set_puts"]
7464    pub fn BIO_meth_set_puts(
7465        method: *mut BIO_METHOD,
7466        puts: ::std::option::Option<
7467            unsafe extern "C" fn(
7468                arg1: *mut BIO,
7469                arg2: *const ::std::os::raw::c_char,
7470            ) -> ::std::os::raw::c_int,
7471        >,
7472    ) -> ::std::os::raw::c_int;
7473}
7474extern "C" {
7475    #[link_name = "\u{1}aws_lc_0_36_0_BIO_meth_get_puts"]
7476    pub fn BIO_meth_get_puts(
7477        method: *const BIO_METHOD,
7478    ) -> ::std::option::Option<
7479        unsafe extern "C" fn(
7480            method: *mut BIO,
7481            arg1: *const ::std::os::raw::c_char,
7482        ) -> ::std::os::raw::c_int,
7483    >;
7484}
7485extern "C" {
7486    #[link_name = "\u{1}aws_lc_0_36_0_BIO_s_secmem"]
7487    pub fn BIO_s_secmem() -> *const BIO_METHOD;
7488}
7489extern "C" {
7490    #[link_name = "\u{1}aws_lc_0_36_0_BIO_set_write_buffer_size"]
7491    pub fn BIO_set_write_buffer_size(
7492        bio: *mut BIO,
7493        buffer_size: ::std::os::raw::c_int,
7494    ) -> ::std::os::raw::c_int;
7495}
7496#[repr(C)]
7497#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7498pub struct bio_method_st {
7499    pub type_: ::std::os::raw::c_int,
7500    pub name: *const ::std::os::raw::c_char,
7501    pub bwrite: ::std::option::Option<
7502        unsafe extern "C" fn(
7503            arg1: *mut BIO,
7504            arg2: *const ::std::os::raw::c_char,
7505            arg3: ::std::os::raw::c_int,
7506        ) -> ::std::os::raw::c_int,
7507    >,
7508    pub bread: ::std::option::Option<
7509        unsafe extern "C" fn(
7510            arg1: *mut BIO,
7511            arg2: *mut ::std::os::raw::c_char,
7512            arg3: ::std::os::raw::c_int,
7513        ) -> ::std::os::raw::c_int,
7514    >,
7515    pub bputs: ::std::option::Option<
7516        unsafe extern "C" fn(
7517            arg1: *mut BIO,
7518            arg2: *const ::std::os::raw::c_char,
7519        ) -> ::std::os::raw::c_int,
7520    >,
7521    pub bgets: ::std::option::Option<
7522        unsafe extern "C" fn(
7523            arg1: *mut BIO,
7524            arg2: *mut ::std::os::raw::c_char,
7525            arg3: ::std::os::raw::c_int,
7526        ) -> ::std::os::raw::c_int,
7527    >,
7528    pub ctrl: ::std::option::Option<
7529        unsafe extern "C" fn(
7530            arg1: *mut BIO,
7531            arg2: ::std::os::raw::c_int,
7532            arg3: ::std::os::raw::c_long,
7533            arg4: *mut ::std::os::raw::c_void,
7534        ) -> ::std::os::raw::c_long,
7535    >,
7536    pub create:
7537        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7538    pub destroy:
7539        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7540    pub callback_ctrl: ::std::option::Option<
7541        unsafe extern "C" fn(
7542            arg1: *mut BIO,
7543            arg2: ::std::os::raw::c_int,
7544            arg3: bio_info_cb,
7545        ) -> ::std::os::raw::c_long,
7546    >,
7547}
7548#[test]
7549fn bindgen_test_layout_bio_method_st() {
7550    const UNINIT: ::std::mem::MaybeUninit<bio_method_st> = ::std::mem::MaybeUninit::uninit();
7551    let ptr = UNINIT.as_ptr();
7552    assert_eq!(
7553        ::std::mem::size_of::<bio_method_st>(),
7554        80usize,
7555        "Size of bio_method_st"
7556    );
7557    assert_eq!(
7558        ::std::mem::align_of::<bio_method_st>(),
7559        8usize,
7560        "Alignment of bio_method_st"
7561    );
7562    assert_eq!(
7563        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
7564        0usize,
7565        "Offset of field: bio_method_st::type_"
7566    );
7567    assert_eq!(
7568        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
7569        8usize,
7570        "Offset of field: bio_method_st::name"
7571    );
7572    assert_eq!(
7573        unsafe { ::std::ptr::addr_of!((*ptr).bwrite) as usize - ptr as usize },
7574        16usize,
7575        "Offset of field: bio_method_st::bwrite"
7576    );
7577    assert_eq!(
7578        unsafe { ::std::ptr::addr_of!((*ptr).bread) as usize - ptr as usize },
7579        24usize,
7580        "Offset of field: bio_method_st::bread"
7581    );
7582    assert_eq!(
7583        unsafe { ::std::ptr::addr_of!((*ptr).bputs) as usize - ptr as usize },
7584        32usize,
7585        "Offset of field: bio_method_st::bputs"
7586    );
7587    assert_eq!(
7588        unsafe { ::std::ptr::addr_of!((*ptr).bgets) as usize - ptr as usize },
7589        40usize,
7590        "Offset of field: bio_method_st::bgets"
7591    );
7592    assert_eq!(
7593        unsafe { ::std::ptr::addr_of!((*ptr).ctrl) as usize - ptr as usize },
7594        48usize,
7595        "Offset of field: bio_method_st::ctrl"
7596    );
7597    assert_eq!(
7598        unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize },
7599        56usize,
7600        "Offset of field: bio_method_st::create"
7601    );
7602    assert_eq!(
7603        unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize },
7604        64usize,
7605        "Offset of field: bio_method_st::destroy"
7606    );
7607    assert_eq!(
7608        unsafe { ::std::ptr::addr_of!((*ptr).callback_ctrl) as usize - ptr as usize },
7609        72usize,
7610        "Offset of field: bio_method_st::callback_ctrl"
7611    );
7612}
7613impl Default for bio_method_st {
7614    fn default() -> Self {
7615        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7616        unsafe {
7617            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7618            s.assume_init()
7619        }
7620    }
7621}
7622#[repr(C)]
7623#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7624pub struct bio_st {
7625    pub method: *const BIO_METHOD,
7626    pub ex_data: CRYPTO_EX_DATA,
7627    pub callback_ex: BIO_callback_fn_ex,
7628    pub callback: BIO_callback_fn,
7629    pub cb_arg: *mut ::std::os::raw::c_char,
7630    pub init: ::std::os::raw::c_int,
7631    pub shutdown: ::std::os::raw::c_int,
7632    pub flags: ::std::os::raw::c_int,
7633    pub retry_reason: ::std::os::raw::c_int,
7634    pub num: ::std::os::raw::c_int,
7635    pub references: CRYPTO_refcount_t,
7636    pub ptr: *mut ::std::os::raw::c_void,
7637    pub next_bio: *mut BIO,
7638    pub num_read: u64,
7639    pub num_write: u64,
7640}
7641#[test]
7642fn bindgen_test_layout_bio_st() {
7643    const UNINIT: ::std::mem::MaybeUninit<bio_st> = ::std::mem::MaybeUninit::uninit();
7644    let ptr = UNINIT.as_ptr();
7645    assert_eq!(::std::mem::size_of::<bio_st>(), 96usize, "Size of bio_st");
7646    assert_eq!(
7647        ::std::mem::align_of::<bio_st>(),
7648        8usize,
7649        "Alignment of bio_st"
7650    );
7651    assert_eq!(
7652        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
7653        0usize,
7654        "Offset of field: bio_st::method"
7655    );
7656    assert_eq!(
7657        unsafe { ::std::ptr::addr_of!((*ptr).ex_data) as usize - ptr as usize },
7658        8usize,
7659        "Offset of field: bio_st::ex_data"
7660    );
7661    assert_eq!(
7662        unsafe { ::std::ptr::addr_of!((*ptr).callback_ex) as usize - ptr as usize },
7663        16usize,
7664        "Offset of field: bio_st::callback_ex"
7665    );
7666    assert_eq!(
7667        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
7668        24usize,
7669        "Offset of field: bio_st::callback"
7670    );
7671    assert_eq!(
7672        unsafe { ::std::ptr::addr_of!((*ptr).cb_arg) as usize - ptr as usize },
7673        32usize,
7674        "Offset of field: bio_st::cb_arg"
7675    );
7676    assert_eq!(
7677        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
7678        40usize,
7679        "Offset of field: bio_st::init"
7680    );
7681    assert_eq!(
7682        unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize },
7683        44usize,
7684        "Offset of field: bio_st::shutdown"
7685    );
7686    assert_eq!(
7687        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
7688        48usize,
7689        "Offset of field: bio_st::flags"
7690    );
7691    assert_eq!(
7692        unsafe { ::std::ptr::addr_of!((*ptr).retry_reason) as usize - ptr as usize },
7693        52usize,
7694        "Offset of field: bio_st::retry_reason"
7695    );
7696    assert_eq!(
7697        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
7698        56usize,
7699        "Offset of field: bio_st::num"
7700    );
7701    assert_eq!(
7702        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
7703        60usize,
7704        "Offset of field: bio_st::references"
7705    );
7706    assert_eq!(
7707        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
7708        64usize,
7709        "Offset of field: bio_st::ptr"
7710    );
7711    assert_eq!(
7712        unsafe { ::std::ptr::addr_of!((*ptr).next_bio) as usize - ptr as usize },
7713        72usize,
7714        "Offset of field: bio_st::next_bio"
7715    );
7716    assert_eq!(
7717        unsafe { ::std::ptr::addr_of!((*ptr).num_read) as usize - ptr as usize },
7718        80usize,
7719        "Offset of field: bio_st::num_read"
7720    );
7721    assert_eq!(
7722        unsafe { ::std::ptr::addr_of!((*ptr).num_write) as usize - ptr as usize },
7723        88usize,
7724        "Offset of field: bio_st::num_write"
7725    );
7726}
7727impl Default for bio_st {
7728    fn default() -> Self {
7729        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7730        unsafe {
7731            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7732            s.assume_init()
7733        }
7734    }
7735}
7736pub type BN_ULONG = u64;
7737extern "C" {
7738    #[link_name = "\u{1}aws_lc_0_36_0_BN_new"]
7739    pub fn BN_new() -> *mut BIGNUM;
7740}
7741extern "C" {
7742    #[link_name = "\u{1}aws_lc_0_36_0_BN_init"]
7743    pub fn BN_init(bn: *mut BIGNUM);
7744}
7745extern "C" {
7746    #[link_name = "\u{1}aws_lc_0_36_0_BN_free"]
7747    pub fn BN_free(bn: *mut BIGNUM);
7748}
7749extern "C" {
7750    #[link_name = "\u{1}aws_lc_0_36_0_BN_clear_free"]
7751    pub fn BN_clear_free(bn: *mut BIGNUM);
7752}
7753extern "C" {
7754    #[link_name = "\u{1}aws_lc_0_36_0_BN_dup"]
7755    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7756}
7757extern "C" {
7758    #[link_name = "\u{1}aws_lc_0_36_0_BN_copy"]
7759    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7760}
7761extern "C" {
7762    #[link_name = "\u{1}aws_lc_0_36_0_BN_clear"]
7763    pub fn BN_clear(bn: *mut BIGNUM);
7764}
7765extern "C" {
7766    #[link_name = "\u{1}aws_lc_0_36_0_BN_value_one"]
7767    pub fn BN_value_one() -> *const BIGNUM;
7768}
7769extern "C" {
7770    #[link_name = "\u{1}aws_lc_0_36_0_BN_num_bits"]
7771    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7772}
7773extern "C" {
7774    #[link_name = "\u{1}aws_lc_0_36_0_BN_num_bytes"]
7775    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7776}
7777extern "C" {
7778    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_minimal_width"]
7779    pub fn BN_get_minimal_width(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7780}
7781extern "C" {
7782    #[link_name = "\u{1}aws_lc_0_36_0_BN_zero"]
7783    pub fn BN_zero(bn: *mut BIGNUM);
7784}
7785extern "C" {
7786    #[link_name = "\u{1}aws_lc_0_36_0_BN_one"]
7787    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
7788}
7789extern "C" {
7790    #[link_name = "\u{1}aws_lc_0_36_0_BN_set_word"]
7791    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::std::os::raw::c_int;
7792}
7793extern "C" {
7794    #[link_name = "\u{1}aws_lc_0_36_0_BN_set_u64"]
7795    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
7796}
7797extern "C" {
7798    #[link_name = "\u{1}aws_lc_0_36_0_BN_set_negative"]
7799    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
7800}
7801extern "C" {
7802    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_negative"]
7803    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7804}
7805extern "C" {
7806    #[link_name = "\u{1}aws_lc_0_36_0_BN_bin2bn"]
7807    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7808}
7809extern "C" {
7810    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2bin"]
7811    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7812}
7813extern "C" {
7814    #[link_name = "\u{1}aws_lc_0_36_0_BN_le2bn"]
7815    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7816}
7817extern "C" {
7818    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2le_padded"]
7819    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7820}
7821extern "C" {
7822    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2bin_padded"]
7823    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7824}
7825extern "C" {
7826    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2cbb_padded"]
7827    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
7828        -> ::std::os::raw::c_int;
7829}
7830extern "C" {
7831    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2hex"]
7832    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7833}
7834extern "C" {
7835    #[link_name = "\u{1}aws_lc_0_36_0_BN_hex2bn"]
7836    pub fn BN_hex2bn(
7837        outp: *mut *mut BIGNUM,
7838        in_: *const ::std::os::raw::c_char,
7839    ) -> ::std::os::raw::c_int;
7840}
7841extern "C" {
7842    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2dec"]
7843    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7844}
7845extern "C" {
7846    #[link_name = "\u{1}aws_lc_0_36_0_BN_dec2bn"]
7847    pub fn BN_dec2bn(
7848        outp: *mut *mut BIGNUM,
7849        in_: *const ::std::os::raw::c_char,
7850    ) -> ::std::os::raw::c_int;
7851}
7852extern "C" {
7853    #[link_name = "\u{1}aws_lc_0_36_0_BN_asc2bn"]
7854    pub fn BN_asc2bn(
7855        outp: *mut *mut BIGNUM,
7856        in_: *const ::std::os::raw::c_char,
7857    ) -> ::std::os::raw::c_int;
7858}
7859extern "C" {
7860    #[link_name = "\u{1}aws_lc_0_36_0_BN_print"]
7861    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
7862}
7863extern "C" {
7864    #[link_name = "\u{1}aws_lc_0_36_0_BN_print_fp"]
7865    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
7866}
7867extern "C" {
7868    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_word"]
7869    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7870}
7871extern "C" {
7872    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_u64"]
7873    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
7874}
7875extern "C" {
7876    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_flags"]
7877    pub fn BN_get_flags(bn: *const BIGNUM, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7878}
7879extern "C" {
7880    #[link_name = "\u{1}aws_lc_0_36_0_BN_parse_asn1_unsigned"]
7881    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
7882}
7883extern "C" {
7884    #[link_name = "\u{1}aws_lc_0_36_0_BN_marshal_asn1"]
7885    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
7886}
7887extern "C" {
7888    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_new"]
7889    pub fn BN_CTX_new() -> *mut BN_CTX;
7890}
7891extern "C" {
7892    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_free"]
7893    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7894}
7895extern "C" {
7896    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_start"]
7897    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7898}
7899extern "C" {
7900    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_get"]
7901    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7902}
7903extern "C" {
7904    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_end"]
7905    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7906}
7907extern "C" {
7908    #[link_name = "\u{1}aws_lc_0_36_0_BN_add"]
7909    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7910}
7911extern "C" {
7912    #[link_name = "\u{1}aws_lc_0_36_0_BN_uadd"]
7913    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7914}
7915extern "C" {
7916    #[link_name = "\u{1}aws_lc_0_36_0_BN_add_word"]
7917    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7918}
7919extern "C" {
7920    #[link_name = "\u{1}aws_lc_0_36_0_BN_sub"]
7921    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7922}
7923extern "C" {
7924    #[link_name = "\u{1}aws_lc_0_36_0_BN_usub"]
7925    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7926}
7927extern "C" {
7928    #[link_name = "\u{1}aws_lc_0_36_0_BN_sub_word"]
7929    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7930}
7931extern "C" {
7932    #[link_name = "\u{1}aws_lc_0_36_0_BN_mul"]
7933    pub fn BN_mul(
7934        r: *mut BIGNUM,
7935        a: *const BIGNUM,
7936        b: *const BIGNUM,
7937        ctx: *mut BN_CTX,
7938    ) -> ::std::os::raw::c_int;
7939}
7940extern "C" {
7941    #[link_name = "\u{1}aws_lc_0_36_0_BN_mul_word"]
7942    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7943}
7944extern "C" {
7945    #[link_name = "\u{1}aws_lc_0_36_0_BN_sqr"]
7946    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
7947}
7948extern "C" {
7949    #[link_name = "\u{1}aws_lc_0_36_0_BN_div"]
7950    pub fn BN_div(
7951        quotient: *mut BIGNUM,
7952        rem: *mut BIGNUM,
7953        numerator: *const BIGNUM,
7954        divisor: *const BIGNUM,
7955        ctx: *mut BN_CTX,
7956    ) -> ::std::os::raw::c_int;
7957}
7958extern "C" {
7959    #[link_name = "\u{1}aws_lc_0_36_0_BN_div_word"]
7960    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7961}
7962extern "C" {
7963    #[link_name = "\u{1}aws_lc_0_36_0_BN_sqrt"]
7964    pub fn BN_sqrt(
7965        out_sqrt: *mut BIGNUM,
7966        in_: *const BIGNUM,
7967        ctx: *mut BN_CTX,
7968    ) -> ::std::os::raw::c_int;
7969}
7970extern "C" {
7971    #[link_name = "\u{1}aws_lc_0_36_0_BN_cmp"]
7972    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7973}
7974extern "C" {
7975    #[link_name = "\u{1}aws_lc_0_36_0_BN_cmp_word"]
7976    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::std::os::raw::c_int;
7977}
7978extern "C" {
7979    #[link_name = "\u{1}aws_lc_0_36_0_BN_ucmp"]
7980    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7981}
7982extern "C" {
7983    #[link_name = "\u{1}aws_lc_0_36_0_BN_equal_consttime"]
7984    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7985}
7986extern "C" {
7987    #[link_name = "\u{1}aws_lc_0_36_0_BN_abs_is_word"]
7988    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7989}
7990extern "C" {
7991    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_zero"]
7992    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7993}
7994extern "C" {
7995    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_one"]
7996    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7997}
7998extern "C" {
7999    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_word"]
8000    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
8001}
8002extern "C" {
8003    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_odd"]
8004    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
8005}
8006extern "C" {
8007    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_pow2"]
8008    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
8009}
8010extern "C" {
8011    #[link_name = "\u{1}aws_lc_0_36_0_BN_lshift"]
8012    pub fn BN_lshift(
8013        r: *mut BIGNUM,
8014        a: *const BIGNUM,
8015        n: ::std::os::raw::c_int,
8016    ) -> ::std::os::raw::c_int;
8017}
8018extern "C" {
8019    #[link_name = "\u{1}aws_lc_0_36_0_BN_lshift1"]
8020    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8021}
8022extern "C" {
8023    #[link_name = "\u{1}aws_lc_0_36_0_BN_rshift"]
8024    pub fn BN_rshift(
8025        r: *mut BIGNUM,
8026        a: *const BIGNUM,
8027        n: ::std::os::raw::c_int,
8028    ) -> ::std::os::raw::c_int;
8029}
8030extern "C" {
8031    #[link_name = "\u{1}aws_lc_0_36_0_BN_rshift1"]
8032    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8033}
8034extern "C" {
8035    #[link_name = "\u{1}aws_lc_0_36_0_BN_set_bit"]
8036    pub fn BN_set_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8037}
8038extern "C" {
8039    #[link_name = "\u{1}aws_lc_0_36_0_BN_clear_bit"]
8040    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8041}
8042extern "C" {
8043    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_bit_set"]
8044    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8045}
8046extern "C" {
8047    #[link_name = "\u{1}aws_lc_0_36_0_BN_mask_bits"]
8048    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8049}
8050extern "C" {
8051    #[link_name = "\u{1}aws_lc_0_36_0_BN_count_low_zero_bits"]
8052    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
8053}
8054extern "C" {
8055    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_word"]
8056    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
8057}
8058extern "C" {
8059    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_pow2"]
8060    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8061}
8062extern "C" {
8063    #[link_name = "\u{1}aws_lc_0_36_0_BN_nnmod_pow2"]
8064    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8065}
8066extern "C" {
8067    #[link_name = "\u{1}aws_lc_0_36_0_BN_nnmod"]
8068    pub fn BN_nnmod(
8069        rem: *mut BIGNUM,
8070        numerator: *const BIGNUM,
8071        divisor: *const BIGNUM,
8072        ctx: *mut BN_CTX,
8073    ) -> ::std::os::raw::c_int;
8074}
8075extern "C" {
8076    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_add"]
8077    pub fn BN_mod_add(
8078        r: *mut BIGNUM,
8079        a: *const BIGNUM,
8080        b: *const BIGNUM,
8081        m: *const BIGNUM,
8082        ctx: *mut BN_CTX,
8083    ) -> ::std::os::raw::c_int;
8084}
8085extern "C" {
8086    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_add_quick"]
8087    pub fn BN_mod_add_quick(
8088        r: *mut BIGNUM,
8089        a: *const BIGNUM,
8090        b: *const BIGNUM,
8091        m: *const BIGNUM,
8092    ) -> ::std::os::raw::c_int;
8093}
8094extern "C" {
8095    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_sub"]
8096    pub fn BN_mod_sub(
8097        r: *mut BIGNUM,
8098        a: *const BIGNUM,
8099        b: *const BIGNUM,
8100        m: *const BIGNUM,
8101        ctx: *mut BN_CTX,
8102    ) -> ::std::os::raw::c_int;
8103}
8104extern "C" {
8105    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_sub_quick"]
8106    pub fn BN_mod_sub_quick(
8107        r: *mut BIGNUM,
8108        a: *const BIGNUM,
8109        b: *const BIGNUM,
8110        m: *const BIGNUM,
8111    ) -> ::std::os::raw::c_int;
8112}
8113extern "C" {
8114    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_mul"]
8115    pub fn BN_mod_mul(
8116        r: *mut BIGNUM,
8117        a: *const BIGNUM,
8118        b: *const BIGNUM,
8119        m: *const BIGNUM,
8120        ctx: *mut BN_CTX,
8121    ) -> ::std::os::raw::c_int;
8122}
8123extern "C" {
8124    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_sqr"]
8125    pub fn BN_mod_sqr(
8126        r: *mut BIGNUM,
8127        a: *const BIGNUM,
8128        m: *const BIGNUM,
8129        ctx: *mut BN_CTX,
8130    ) -> ::std::os::raw::c_int;
8131}
8132extern "C" {
8133    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_lshift"]
8134    pub fn BN_mod_lshift(
8135        r: *mut BIGNUM,
8136        a: *const BIGNUM,
8137        n: ::std::os::raw::c_int,
8138        m: *const BIGNUM,
8139        ctx: *mut BN_CTX,
8140    ) -> ::std::os::raw::c_int;
8141}
8142extern "C" {
8143    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_lshift_quick"]
8144    pub fn BN_mod_lshift_quick(
8145        r: *mut BIGNUM,
8146        a: *const BIGNUM,
8147        n: ::std::os::raw::c_int,
8148        m: *const BIGNUM,
8149    ) -> ::std::os::raw::c_int;
8150}
8151extern "C" {
8152    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_lshift1"]
8153    pub fn BN_mod_lshift1(
8154        r: *mut BIGNUM,
8155        a: *const BIGNUM,
8156        m: *const BIGNUM,
8157        ctx: *mut BN_CTX,
8158    ) -> ::std::os::raw::c_int;
8159}
8160extern "C" {
8161    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_lshift1_quick"]
8162    pub fn BN_mod_lshift1_quick(
8163        r: *mut BIGNUM,
8164        a: *const BIGNUM,
8165        m: *const BIGNUM,
8166    ) -> ::std::os::raw::c_int;
8167}
8168extern "C" {
8169    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_sqrt"]
8170    pub fn BN_mod_sqrt(
8171        in_: *mut BIGNUM,
8172        a: *const BIGNUM,
8173        p: *const BIGNUM,
8174        ctx: *mut BN_CTX,
8175    ) -> *mut BIGNUM;
8176}
8177extern "C" {
8178    #[link_name = "\u{1}aws_lc_0_36_0_BN_rand"]
8179    pub fn BN_rand(
8180        rnd: *mut BIGNUM,
8181        bits: ::std::os::raw::c_int,
8182        top: ::std::os::raw::c_int,
8183        bottom: ::std::os::raw::c_int,
8184    ) -> ::std::os::raw::c_int;
8185}
8186extern "C" {
8187    #[link_name = "\u{1}aws_lc_0_36_0_BN_pseudo_rand"]
8188    pub fn BN_pseudo_rand(
8189        rnd: *mut BIGNUM,
8190        bits: ::std::os::raw::c_int,
8191        top: ::std::os::raw::c_int,
8192        bottom: ::std::os::raw::c_int,
8193    ) -> ::std::os::raw::c_int;
8194}
8195extern "C" {
8196    #[link_name = "\u{1}aws_lc_0_36_0_BN_rand_range"]
8197    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8198}
8199extern "C" {
8200    #[link_name = "\u{1}aws_lc_0_36_0_BN_rand_range_ex"]
8201    pub fn BN_rand_range_ex(
8202        r: *mut BIGNUM,
8203        min_inclusive: BN_ULONG,
8204        max_exclusive: *const BIGNUM,
8205    ) -> ::std::os::raw::c_int;
8206}
8207extern "C" {
8208    #[link_name = "\u{1}aws_lc_0_36_0_BN_pseudo_rand_range"]
8209    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8210}
8211#[repr(C)]
8212#[derive(Copy, Clone)]
8213pub struct bn_gencb_st {
8214    pub type_: u8,
8215    pub arg: *mut ::std::os::raw::c_void,
8216    pub callback: bn_gencb_st__bindgen_ty_1,
8217}
8218#[repr(C)]
8219#[derive(Copy, Clone)]
8220pub union bn_gencb_st__bindgen_ty_1 {
8221    pub new_style: ::std::option::Option<
8222        unsafe extern "C" fn(
8223            event: ::std::os::raw::c_int,
8224            n: ::std::os::raw::c_int,
8225            arg1: *mut bn_gencb_st,
8226        ) -> ::std::os::raw::c_int,
8227    >,
8228    pub old_style: ::std::option::Option<
8229        unsafe extern "C" fn(
8230            arg1: ::std::os::raw::c_int,
8231            arg2: ::std::os::raw::c_int,
8232            arg3: *mut ::std::os::raw::c_void,
8233        ),
8234    >,
8235}
8236#[test]
8237fn bindgen_test_layout_bn_gencb_st__bindgen_ty_1() {
8238    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st__bindgen_ty_1> =
8239        ::std::mem::MaybeUninit::uninit();
8240    let ptr = UNINIT.as_ptr();
8241    assert_eq!(
8242        ::std::mem::size_of::<bn_gencb_st__bindgen_ty_1>(),
8243        8usize,
8244        "Size of bn_gencb_st__bindgen_ty_1"
8245    );
8246    assert_eq!(
8247        ::std::mem::align_of::<bn_gencb_st__bindgen_ty_1>(),
8248        8usize,
8249        "Alignment of bn_gencb_st__bindgen_ty_1"
8250    );
8251    assert_eq!(
8252        unsafe { ::std::ptr::addr_of!((*ptr).new_style) as usize - ptr as usize },
8253        0usize,
8254        "Offset of field: bn_gencb_st__bindgen_ty_1::new_style"
8255    );
8256    assert_eq!(
8257        unsafe { ::std::ptr::addr_of!((*ptr).old_style) as usize - ptr as usize },
8258        0usize,
8259        "Offset of field: bn_gencb_st__bindgen_ty_1::old_style"
8260    );
8261}
8262impl Default for bn_gencb_st__bindgen_ty_1 {
8263    fn default() -> Self {
8264        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8265        unsafe {
8266            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8267            s.assume_init()
8268        }
8269    }
8270}
8271#[test]
8272fn bindgen_test_layout_bn_gencb_st() {
8273    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st> = ::std::mem::MaybeUninit::uninit();
8274    let ptr = UNINIT.as_ptr();
8275    assert_eq!(
8276        ::std::mem::size_of::<bn_gencb_st>(),
8277        24usize,
8278        "Size of bn_gencb_st"
8279    );
8280    assert_eq!(
8281        ::std::mem::align_of::<bn_gencb_st>(),
8282        8usize,
8283        "Alignment of bn_gencb_st"
8284    );
8285    assert_eq!(
8286        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8287        0usize,
8288        "Offset of field: bn_gencb_st::type_"
8289    );
8290    assert_eq!(
8291        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
8292        8usize,
8293        "Offset of field: bn_gencb_st::arg"
8294    );
8295    assert_eq!(
8296        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
8297        16usize,
8298        "Offset of field: bn_gencb_st::callback"
8299    );
8300}
8301impl Default for bn_gencb_st {
8302    fn default() -> Self {
8303        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8304        unsafe {
8305            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8306            s.assume_init()
8307        }
8308    }
8309}
8310extern "C" {
8311    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_new"]
8312    pub fn BN_GENCB_new() -> *mut BN_GENCB;
8313}
8314extern "C" {
8315    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_free"]
8316    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
8317}
8318extern "C" {
8319    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_set"]
8320    pub fn BN_GENCB_set(
8321        callback: *mut BN_GENCB,
8322        f: ::std::option::Option<
8323            unsafe extern "C" fn(
8324                event: ::std::os::raw::c_int,
8325                n: ::std::os::raw::c_int,
8326                arg1: *mut BN_GENCB,
8327            ) -> ::std::os::raw::c_int,
8328        >,
8329        arg: *mut ::std::os::raw::c_void,
8330    );
8331}
8332extern "C" {
8333    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_call"]
8334    pub fn BN_GENCB_call(
8335        callback: *mut BN_GENCB,
8336        event: ::std::os::raw::c_int,
8337        n: ::std::os::raw::c_int,
8338    ) -> ::std::os::raw::c_int;
8339}
8340extern "C" {
8341    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_get_arg"]
8342    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::std::os::raw::c_void;
8343}
8344extern "C" {
8345    #[link_name = "\u{1}aws_lc_0_36_0_BN_generate_prime_ex"]
8346    pub fn BN_generate_prime_ex(
8347        ret: *mut BIGNUM,
8348        bits: ::std::os::raw::c_int,
8349        safe: ::std::os::raw::c_int,
8350        add: *const BIGNUM,
8351        rem: *const BIGNUM,
8352        cb: *mut BN_GENCB,
8353    ) -> ::std::os::raw::c_int;
8354}
8355pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
8356pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
8357pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
8358pub type bn_primality_result_t = ::std::os::raw::c_uint;
8359extern "C" {
8360    #[link_name = "\u{1}aws_lc_0_36_0_BN_enhanced_miller_rabin_primality_test"]
8361    pub fn BN_enhanced_miller_rabin_primality_test(
8362        out_result: *mut bn_primality_result_t,
8363        w: *const BIGNUM,
8364        checks: ::std::os::raw::c_int,
8365        ctx: *mut BN_CTX,
8366        cb: *mut BN_GENCB,
8367    ) -> ::std::os::raw::c_int;
8368}
8369extern "C" {
8370    #[link_name = "\u{1}aws_lc_0_36_0_BN_primality_test"]
8371    pub fn BN_primality_test(
8372        is_probably_prime: *mut ::std::os::raw::c_int,
8373        candidate: *const BIGNUM,
8374        checks: ::std::os::raw::c_int,
8375        ctx: *mut BN_CTX,
8376        do_trial_division: ::std::os::raw::c_int,
8377        cb: *mut BN_GENCB,
8378    ) -> ::std::os::raw::c_int;
8379}
8380extern "C" {
8381    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_prime_fasttest_ex"]
8382    pub fn BN_is_prime_fasttest_ex(
8383        candidate: *const BIGNUM,
8384        checks: ::std::os::raw::c_int,
8385        ctx: *mut BN_CTX,
8386        do_trial_division: ::std::os::raw::c_int,
8387        cb: *mut BN_GENCB,
8388    ) -> ::std::os::raw::c_int;
8389}
8390extern "C" {
8391    #[link_name = "\u{1}aws_lc_0_36_0_BN_is_prime_ex"]
8392    pub fn BN_is_prime_ex(
8393        candidate: *const BIGNUM,
8394        checks: ::std::os::raw::c_int,
8395        ctx: *mut BN_CTX,
8396        cb: *mut BN_GENCB,
8397    ) -> ::std::os::raw::c_int;
8398}
8399extern "C" {
8400    #[link_name = "\u{1}aws_lc_0_36_0_BN_gcd"]
8401    pub fn BN_gcd(
8402        r: *mut BIGNUM,
8403        a: *const BIGNUM,
8404        b: *const BIGNUM,
8405        ctx: *mut BN_CTX,
8406    ) -> ::std::os::raw::c_int;
8407}
8408extern "C" {
8409    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_inverse"]
8410    pub fn BN_mod_inverse(
8411        out: *mut BIGNUM,
8412        a: *const BIGNUM,
8413        n: *const BIGNUM,
8414        ctx: *mut BN_CTX,
8415    ) -> *mut BIGNUM;
8416}
8417extern "C" {
8418    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_inverse_blinded"]
8419    pub fn BN_mod_inverse_blinded(
8420        out: *mut BIGNUM,
8421        out_no_inverse: *mut ::std::os::raw::c_int,
8422        a: *const BIGNUM,
8423        mont: *const BN_MONT_CTX,
8424        ctx: *mut BN_CTX,
8425    ) -> ::std::os::raw::c_int;
8426}
8427extern "C" {
8428    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_inverse_odd"]
8429    pub fn BN_mod_inverse_odd(
8430        out: *mut BIGNUM,
8431        out_no_inverse: *mut ::std::os::raw::c_int,
8432        a: *const BIGNUM,
8433        n: *const BIGNUM,
8434        ctx: *mut BN_CTX,
8435    ) -> ::std::os::raw::c_int;
8436}
8437extern "C" {
8438    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_new_for_modulus"]
8439    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8440}
8441extern "C" {
8442    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_new_consttime"]
8443    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8444}
8445extern "C" {
8446    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_free"]
8447    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
8448}
8449extern "C" {
8450    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_copy"]
8451    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
8452}
8453extern "C" {
8454    #[link_name = "\u{1}aws_lc_0_36_0_BN_to_montgomery"]
8455    pub fn BN_to_montgomery(
8456        ret: *mut BIGNUM,
8457        a: *const BIGNUM,
8458        mont: *const BN_MONT_CTX,
8459        ctx: *mut BN_CTX,
8460    ) -> ::std::os::raw::c_int;
8461}
8462extern "C" {
8463    #[link_name = "\u{1}aws_lc_0_36_0_BN_from_montgomery"]
8464    pub fn BN_from_montgomery(
8465        ret: *mut BIGNUM,
8466        a: *const BIGNUM,
8467        mont: *const BN_MONT_CTX,
8468        ctx: *mut BN_CTX,
8469    ) -> ::std::os::raw::c_int;
8470}
8471extern "C" {
8472    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_mul_montgomery"]
8473    pub fn BN_mod_mul_montgomery(
8474        r: *mut BIGNUM,
8475        a: *const BIGNUM,
8476        b: *const BIGNUM,
8477        mont: *const BN_MONT_CTX,
8478        ctx: *mut BN_CTX,
8479    ) -> ::std::os::raw::c_int;
8480}
8481extern "C" {
8482    #[link_name = "\u{1}aws_lc_0_36_0_BN_exp"]
8483    pub fn BN_exp(
8484        r: *mut BIGNUM,
8485        a: *const BIGNUM,
8486        p: *const BIGNUM,
8487        ctx: *mut BN_CTX,
8488    ) -> ::std::os::raw::c_int;
8489}
8490extern "C" {
8491    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp"]
8492    pub fn BN_mod_exp(
8493        r: *mut BIGNUM,
8494        a: *const BIGNUM,
8495        p: *const BIGNUM,
8496        m: *const BIGNUM,
8497        ctx: *mut BN_CTX,
8498    ) -> ::std::os::raw::c_int;
8499}
8500extern "C" {
8501    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp_mont"]
8502    pub fn BN_mod_exp_mont(
8503        r: *mut BIGNUM,
8504        a: *const BIGNUM,
8505        p: *const BIGNUM,
8506        m: *const BIGNUM,
8507        ctx: *mut BN_CTX,
8508        mont: *const BN_MONT_CTX,
8509    ) -> ::std::os::raw::c_int;
8510}
8511extern "C" {
8512    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp_mont_consttime"]
8513    pub fn BN_mod_exp_mont_consttime(
8514        rr: *mut BIGNUM,
8515        a: *const BIGNUM,
8516        p: *const BIGNUM,
8517        m: *const BIGNUM,
8518        ctx: *mut BN_CTX,
8519        mont: *const BN_MONT_CTX,
8520    ) -> ::std::os::raw::c_int;
8521}
8522extern "C" {
8523    #[link_name = "\u{1}aws_lc_0_36_0_BN_GENCB_set_old"]
8524    pub fn BN_GENCB_set_old(
8525        callback: *mut BN_GENCB,
8526        f: ::std::option::Option<
8527            unsafe extern "C" fn(
8528                arg1: ::std::os::raw::c_int,
8529                arg2: ::std::os::raw::c_int,
8530                arg3: *mut ::std::os::raw::c_void,
8531            ),
8532        >,
8533        cb_arg: *mut ::std::os::raw::c_void,
8534    );
8535}
8536extern "C" {
8537    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2mpi"]
8538    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
8539}
8540extern "C" {
8541    #[link_name = "\u{1}aws_lc_0_36_0_BN_mpi2bn"]
8542    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
8543}
8544extern "C" {
8545    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp_mont_word"]
8546    pub fn BN_mod_exp_mont_word(
8547        r: *mut BIGNUM,
8548        a: BN_ULONG,
8549        p: *const BIGNUM,
8550        m: *const BIGNUM,
8551        ctx: *mut BN_CTX,
8552        mont: *const BN_MONT_CTX,
8553    ) -> ::std::os::raw::c_int;
8554}
8555extern "C" {
8556    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp2_mont"]
8557    pub fn BN_mod_exp2_mont(
8558        r: *mut BIGNUM,
8559        a1: *const BIGNUM,
8560        p1: *const BIGNUM,
8561        a2: *const BIGNUM,
8562        p2: *const BIGNUM,
8563        m: *const BIGNUM,
8564        ctx: *mut BN_CTX,
8565        mont: *const BN_MONT_CTX,
8566    ) -> ::std::os::raw::c_int;
8567}
8568extern "C" {
8569    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_new"]
8570    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
8571}
8572extern "C" {
8573    #[link_name = "\u{1}aws_lc_0_36_0_BN_MONT_CTX_set"]
8574    pub fn BN_MONT_CTX_set(
8575        mont: *mut BN_MONT_CTX,
8576        mod_: *const BIGNUM,
8577        ctx: *mut BN_CTX,
8578    ) -> ::std::os::raw::c_int;
8579}
8580extern "C" {
8581    #[link_name = "\u{1}aws_lc_0_36_0_BN_bn2binpad"]
8582    pub fn BN_bn2binpad(
8583        in_: *const BIGNUM,
8584        out: *mut u8,
8585        len: ::std::os::raw::c_int,
8586    ) -> ::std::os::raw::c_int;
8587}
8588extern "C" {
8589    #[link_name = "\u{1}aws_lc_0_36_0_BN_secure_new"]
8590    pub fn BN_secure_new() -> *mut BIGNUM;
8591}
8592extern "C" {
8593    #[link_name = "\u{1}aws_lc_0_36_0_BN_CTX_secure_new"]
8594    pub fn BN_CTX_secure_new() -> *mut BN_CTX;
8595}
8596extern "C" {
8597    #[link_name = "\u{1}aws_lc_0_36_0_BN_mod_exp_mont_consttime_x2"]
8598    pub fn BN_mod_exp_mont_consttime_x2(
8599        rr1: *mut BIGNUM,
8600        a1: *const BIGNUM,
8601        p1: *const BIGNUM,
8602        m1: *const BIGNUM,
8603        in_mont1: *const BN_MONT_CTX,
8604        rr2: *mut BIGNUM,
8605        a2: *const BIGNUM,
8606        p2: *const BIGNUM,
8607        m2: *const BIGNUM,
8608        in_mont2: *const BN_MONT_CTX,
8609        ctx: *mut BN_CTX,
8610    ) -> ::std::os::raw::c_int;
8611}
8612extern "C" {
8613    #[link_name = "\u{1}aws_lc_0_36_0_BN_set_flags"]
8614    pub fn BN_set_flags(b: *mut BIGNUM, n: ::std::os::raw::c_int);
8615}
8616#[repr(C)]
8617#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8618pub struct bignum_st {
8619    pub d: *mut BN_ULONG,
8620    pub width: ::std::os::raw::c_int,
8621    pub dmax: ::std::os::raw::c_int,
8622    pub neg: ::std::os::raw::c_int,
8623    pub flags: ::std::os::raw::c_int,
8624}
8625#[test]
8626fn bindgen_test_layout_bignum_st() {
8627    const UNINIT: ::std::mem::MaybeUninit<bignum_st> = ::std::mem::MaybeUninit::uninit();
8628    let ptr = UNINIT.as_ptr();
8629    assert_eq!(
8630        ::std::mem::size_of::<bignum_st>(),
8631        24usize,
8632        "Size of bignum_st"
8633    );
8634    assert_eq!(
8635        ::std::mem::align_of::<bignum_st>(),
8636        8usize,
8637        "Alignment of bignum_st"
8638    );
8639    assert_eq!(
8640        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
8641        0usize,
8642        "Offset of field: bignum_st::d"
8643    );
8644    assert_eq!(
8645        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
8646        8usize,
8647        "Offset of field: bignum_st::width"
8648    );
8649    assert_eq!(
8650        unsafe { ::std::ptr::addr_of!((*ptr).dmax) as usize - ptr as usize },
8651        12usize,
8652        "Offset of field: bignum_st::dmax"
8653    );
8654    assert_eq!(
8655        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
8656        16usize,
8657        "Offset of field: bignum_st::neg"
8658    );
8659    assert_eq!(
8660        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8661        20usize,
8662        "Offset of field: bignum_st::flags"
8663    );
8664}
8665impl Default for bignum_st {
8666    fn default() -> Self {
8667        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8668        unsafe {
8669            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8670            s.assume_init()
8671        }
8672    }
8673}
8674#[repr(C)]
8675#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8676pub struct bn_mont_ctx_st {
8677    pub RR: BIGNUM,
8678    pub N: BIGNUM,
8679    pub n0: [BN_ULONG; 2usize],
8680}
8681#[test]
8682fn bindgen_test_layout_bn_mont_ctx_st() {
8683    const UNINIT: ::std::mem::MaybeUninit<bn_mont_ctx_st> = ::std::mem::MaybeUninit::uninit();
8684    let ptr = UNINIT.as_ptr();
8685    assert_eq!(
8686        ::std::mem::size_of::<bn_mont_ctx_st>(),
8687        64usize,
8688        "Size of bn_mont_ctx_st"
8689    );
8690    assert_eq!(
8691        ::std::mem::align_of::<bn_mont_ctx_st>(),
8692        8usize,
8693        "Alignment of bn_mont_ctx_st"
8694    );
8695    assert_eq!(
8696        unsafe { ::std::ptr::addr_of!((*ptr).RR) as usize - ptr as usize },
8697        0usize,
8698        "Offset of field: bn_mont_ctx_st::RR"
8699    );
8700    assert_eq!(
8701        unsafe { ::std::ptr::addr_of!((*ptr).N) as usize - ptr as usize },
8702        24usize,
8703        "Offset of field: bn_mont_ctx_st::N"
8704    );
8705    assert_eq!(
8706        unsafe { ::std::ptr::addr_of!((*ptr).n0) as usize - ptr as usize },
8707        48usize,
8708        "Offset of field: bn_mont_ctx_st::n0"
8709    );
8710}
8711impl Default for bn_mont_ctx_st {
8712    fn default() -> Self {
8713        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8714        unsafe {
8715            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8716            s.assume_init()
8717        }
8718    }
8719}
8720extern "C" {
8721    #[link_name = "\u{1}aws_lc_0_36_0_BN_num_bits_word"]
8722    pub fn BN_num_bits_word(l: BN_ULONG) -> ::std::os::raw::c_uint;
8723}
8724extern "C" {
8725    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_tag2bit"]
8726    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
8727}
8728extern "C" {
8729    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_tag2str"]
8730    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
8731}
8732pub type d2i_of_void = ::std::option::Option<
8733    unsafe extern "C" fn(
8734        arg1: *mut *mut ::std::os::raw::c_void,
8735        arg2: *mut *const ::std::os::raw::c_uchar,
8736        arg3: ::std::os::raw::c_long,
8737    ) -> *mut ::std::os::raw::c_void,
8738>;
8739pub type i2d_of_void = ::std::option::Option<
8740    unsafe extern "C" fn(
8741        arg1: *const ::std::os::raw::c_void,
8742        arg2: *mut *mut ::std::os::raw::c_uchar,
8743    ) -> ::std::os::raw::c_int,
8744>;
8745pub type ASN1_ITEM_EXP = ASN1_ITEM;
8746#[repr(C)]
8747#[derive(Debug, Copy, Clone)]
8748pub struct ASN1_VALUE_st {
8749    _unused: [u8; 0],
8750}
8751pub type ASN1_VALUE = ASN1_VALUE_st;
8752extern "C" {
8753    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_parse"]
8754    pub fn ASN1_parse(
8755        bp: *mut BIO,
8756        pp: *const ::std::os::raw::c_uchar,
8757        len: ::std::os::raw::c_long,
8758        indent: ::std::os::raw::c_int,
8759    ) -> ::std::os::raw::c_int;
8760}
8761extern "C" {
8762    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_new"]
8763    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
8764}
8765extern "C" {
8766    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_free"]
8767    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
8768}
8769extern "C" {
8770    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_d2i"]
8771    pub fn ASN1_item_d2i(
8772        out: *mut *mut ASN1_VALUE,
8773        inp: *mut *const ::std::os::raw::c_uchar,
8774        len: ::std::os::raw::c_long,
8775        it: *const ASN1_ITEM,
8776    ) -> *mut ASN1_VALUE;
8777}
8778extern "C" {
8779    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_i2d"]
8780    pub fn ASN1_item_i2d(
8781        val: *mut ASN1_VALUE,
8782        outp: *mut *mut ::std::os::raw::c_uchar,
8783        it: *const ASN1_ITEM,
8784    ) -> ::std::os::raw::c_int;
8785}
8786extern "C" {
8787    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_dup"]
8788    pub fn ASN1_dup(
8789        i2d: i2d_of_void,
8790        d2i: d2i_of_void,
8791        x: *mut ::std::os::raw::c_void,
8792    ) -> *mut ::std::os::raw::c_void;
8793}
8794extern "C" {
8795    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_dup"]
8796    pub fn ASN1_item_dup(
8797        it: *const ASN1_ITEM,
8798        x: *mut ::std::os::raw::c_void,
8799    ) -> *mut ::std::os::raw::c_void;
8800}
8801extern "C" {
8802    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_d2i_fp"]
8803    pub fn ASN1_item_d2i_fp(
8804        it: *const ASN1_ITEM,
8805        in_: *mut FILE,
8806        out: *mut ::std::os::raw::c_void,
8807    ) -> *mut ::std::os::raw::c_void;
8808}
8809extern "C" {
8810    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_d2i_bio"]
8811    pub fn ASN1_item_d2i_bio(
8812        it: *const ASN1_ITEM,
8813        in_: *mut BIO,
8814        out: *mut ::std::os::raw::c_void,
8815    ) -> *mut ::std::os::raw::c_void;
8816}
8817extern "C" {
8818    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_i2d_fp"]
8819    pub fn ASN1_item_i2d_fp(
8820        it: *const ASN1_ITEM,
8821        out: *mut FILE,
8822        in_: *mut ::std::os::raw::c_void,
8823    ) -> ::std::os::raw::c_int;
8824}
8825extern "C" {
8826    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_i2d_bio"]
8827    pub fn ASN1_item_i2d_bio(
8828        it: *const ASN1_ITEM,
8829        out: *mut BIO,
8830        in_: *mut ::std::os::raw::c_void,
8831    ) -> ::std::os::raw::c_int;
8832}
8833extern "C" {
8834    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_i2d_bio"]
8835    pub fn ASN1_i2d_bio(
8836        i2d: i2d_of_void,
8837        out: *mut BIO,
8838        in_: *mut ::std::os::raw::c_void,
8839    ) -> ::std::os::raw::c_int;
8840}
8841extern "C" {
8842    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_unpack"]
8843    pub fn ASN1_item_unpack(
8844        oct: *const ASN1_STRING,
8845        it: *const ASN1_ITEM,
8846    ) -> *mut ::std::os::raw::c_void;
8847}
8848extern "C" {
8849    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_pack"]
8850    pub fn ASN1_item_pack(
8851        obj: *mut ::std::os::raw::c_void,
8852        it: *const ASN1_ITEM,
8853        out: *mut *mut ASN1_STRING,
8854    ) -> *mut ASN1_STRING;
8855}
8856extern "C" {
8857    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_BOOLEAN"]
8858    pub fn d2i_ASN1_BOOLEAN(
8859        out: *mut ASN1_BOOLEAN,
8860        inp: *mut *const ::std::os::raw::c_uchar,
8861        len: ::std::os::raw::c_long,
8862    ) -> ASN1_BOOLEAN;
8863}
8864extern "C" {
8865    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_BOOLEAN"]
8866    pub fn i2d_ASN1_BOOLEAN(
8867        a: ASN1_BOOLEAN,
8868        outp: *mut *mut ::std::os::raw::c_uchar,
8869    ) -> ::std::os::raw::c_int;
8870}
8871extern "C" {
8872    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BOOLEAN_it"]
8873    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
8874}
8875extern "C" {
8876    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TBOOLEAN_it"]
8877    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
8878}
8879extern "C" {
8880    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_FBOOLEAN_it"]
8881    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
8882}
8883#[repr(C)]
8884#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8885pub struct asn1_string_st {
8886    pub length: ::std::os::raw::c_int,
8887    pub type_: ::std::os::raw::c_int,
8888    pub data: *mut ::std::os::raw::c_uchar,
8889    pub flags: ::std::os::raw::c_long,
8890}
8891#[test]
8892fn bindgen_test_layout_asn1_string_st() {
8893    const UNINIT: ::std::mem::MaybeUninit<asn1_string_st> = ::std::mem::MaybeUninit::uninit();
8894    let ptr = UNINIT.as_ptr();
8895    assert_eq!(
8896        ::std::mem::size_of::<asn1_string_st>(),
8897        24usize,
8898        "Size of asn1_string_st"
8899    );
8900    assert_eq!(
8901        ::std::mem::align_of::<asn1_string_st>(),
8902        8usize,
8903        "Alignment of asn1_string_st"
8904    );
8905    assert_eq!(
8906        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
8907        0usize,
8908        "Offset of field: asn1_string_st::length"
8909    );
8910    assert_eq!(
8911        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8912        4usize,
8913        "Offset of field: asn1_string_st::type_"
8914    );
8915    assert_eq!(
8916        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
8917        8usize,
8918        "Offset of field: asn1_string_st::data"
8919    );
8920    assert_eq!(
8921        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8922        16usize,
8923        "Offset of field: asn1_string_st::flags"
8924    );
8925}
8926impl Default for asn1_string_st {
8927    fn default() -> Self {
8928        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8929        unsafe {
8930            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8931            s.assume_init()
8932        }
8933    }
8934}
8935extern "C" {
8936    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_type_new"]
8937    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
8938}
8939extern "C" {
8940    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_new"]
8941    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
8942}
8943extern "C" {
8944    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_free"]
8945    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
8946}
8947extern "C" {
8948    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_clear_free"]
8949    pub fn ASN1_STRING_clear_free(str_: *mut ASN1_STRING);
8950}
8951extern "C" {
8952    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_copy"]
8953    pub fn ASN1_STRING_copy(
8954        dst: *mut ASN1_STRING,
8955        str_: *const ASN1_STRING,
8956    ) -> ::std::os::raw::c_int;
8957}
8958extern "C" {
8959    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_dup"]
8960    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
8961}
8962extern "C" {
8963    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_type"]
8964    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8965}
8966extern "C" {
8967    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_get0_data"]
8968    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
8969}
8970extern "C" {
8971    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_data"]
8972    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
8973}
8974extern "C" {
8975    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_length"]
8976    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8977}
8978extern "C" {
8979    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_cmp"]
8980    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
8981}
8982extern "C" {
8983    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_set"]
8984    pub fn ASN1_STRING_set(
8985        str_: *mut ASN1_STRING,
8986        data: *const ::std::os::raw::c_void,
8987        len: ossl_ssize_t,
8988    ) -> ::std::os::raw::c_int;
8989}
8990extern "C" {
8991    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_set0"]
8992    pub fn ASN1_STRING_set0(
8993        str_: *mut ASN1_STRING,
8994        data: *mut ::std::os::raw::c_void,
8995        len: ::std::os::raw::c_int,
8996    );
8997}
8998extern "C" {
8999    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BMPSTRING_new"]
9000    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
9001}
9002extern "C" {
9003    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALSTRING_new"]
9004    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
9005}
9006extern "C" {
9007    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_IA5STRING_new"]
9008    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
9009}
9010extern "C" {
9011    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_new"]
9012    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
9013}
9014extern "C" {
9015    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLESTRING_new"]
9016    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
9017}
9018extern "C" {
9019    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_T61STRING_new"]
9020    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
9021}
9022extern "C" {
9023    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UNIVERSALSTRING_new"]
9024    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
9025}
9026extern "C" {
9027    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTF8STRING_new"]
9028    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
9029}
9030extern "C" {
9031    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_VISIBLESTRING_new"]
9032    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
9033}
9034extern "C" {
9035    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BMPSTRING_free"]
9036    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
9037}
9038extern "C" {
9039    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALSTRING_free"]
9040    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
9041}
9042extern "C" {
9043    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_IA5STRING_free"]
9044    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
9045}
9046extern "C" {
9047    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_free"]
9048    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
9049}
9050extern "C" {
9051    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLESTRING_free"]
9052    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
9053}
9054extern "C" {
9055    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_T61STRING_free"]
9056    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
9057}
9058extern "C" {
9059    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UNIVERSALSTRING_free"]
9060    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
9061}
9062extern "C" {
9063    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTF8STRING_free"]
9064    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
9065}
9066extern "C" {
9067    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_VISIBLESTRING_free"]
9068    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
9069}
9070extern "C" {
9071    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_BMPSTRING"]
9072    pub fn d2i_ASN1_BMPSTRING(
9073        out: *mut *mut ASN1_BMPSTRING,
9074        inp: *mut *const u8,
9075        len: ::std::os::raw::c_long,
9076    ) -> *mut ASN1_BMPSTRING;
9077}
9078extern "C" {
9079    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_GENERALSTRING"]
9080    pub fn d2i_ASN1_GENERALSTRING(
9081        out: *mut *mut ASN1_GENERALSTRING,
9082        inp: *mut *const u8,
9083        len: ::std::os::raw::c_long,
9084    ) -> *mut ASN1_GENERALSTRING;
9085}
9086extern "C" {
9087    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_IA5STRING"]
9088    pub fn d2i_ASN1_IA5STRING(
9089        out: *mut *mut ASN1_IA5STRING,
9090        inp: *mut *const u8,
9091        len: ::std::os::raw::c_long,
9092    ) -> *mut ASN1_IA5STRING;
9093}
9094extern "C" {
9095    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_OCTET_STRING"]
9096    pub fn d2i_ASN1_OCTET_STRING(
9097        out: *mut *mut ASN1_OCTET_STRING,
9098        inp: *mut *const u8,
9099        len: ::std::os::raw::c_long,
9100    ) -> *mut ASN1_OCTET_STRING;
9101}
9102extern "C" {
9103    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_PRINTABLESTRING"]
9104    pub fn d2i_ASN1_PRINTABLESTRING(
9105        out: *mut *mut ASN1_PRINTABLESTRING,
9106        inp: *mut *const u8,
9107        len: ::std::os::raw::c_long,
9108    ) -> *mut ASN1_PRINTABLESTRING;
9109}
9110extern "C" {
9111    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_T61STRING"]
9112    pub fn d2i_ASN1_T61STRING(
9113        out: *mut *mut ASN1_T61STRING,
9114        inp: *mut *const u8,
9115        len: ::std::os::raw::c_long,
9116    ) -> *mut ASN1_T61STRING;
9117}
9118extern "C" {
9119    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_UNIVERSALSTRING"]
9120    pub fn d2i_ASN1_UNIVERSALSTRING(
9121        out: *mut *mut ASN1_UNIVERSALSTRING,
9122        inp: *mut *const u8,
9123        len: ::std::os::raw::c_long,
9124    ) -> *mut ASN1_UNIVERSALSTRING;
9125}
9126extern "C" {
9127    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_UTF8STRING"]
9128    pub fn d2i_ASN1_UTF8STRING(
9129        out: *mut *mut ASN1_UTF8STRING,
9130        inp: *mut *const u8,
9131        len: ::std::os::raw::c_long,
9132    ) -> *mut ASN1_UTF8STRING;
9133}
9134extern "C" {
9135    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_VISIBLESTRING"]
9136    pub fn d2i_ASN1_VISIBLESTRING(
9137        out: *mut *mut ASN1_VISIBLESTRING,
9138        inp: *mut *const u8,
9139        len: ::std::os::raw::c_long,
9140    ) -> *mut ASN1_VISIBLESTRING;
9141}
9142extern "C" {
9143    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_BMPSTRING"]
9144    pub fn i2d_ASN1_BMPSTRING(
9145        in_: *const ASN1_BMPSTRING,
9146        outp: *mut *mut u8,
9147    ) -> ::std::os::raw::c_int;
9148}
9149extern "C" {
9150    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_GENERALSTRING"]
9151    pub fn i2d_ASN1_GENERALSTRING(
9152        in_: *const ASN1_GENERALSTRING,
9153        outp: *mut *mut u8,
9154    ) -> ::std::os::raw::c_int;
9155}
9156extern "C" {
9157    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_IA5STRING"]
9158    pub fn i2d_ASN1_IA5STRING(
9159        in_: *const ASN1_IA5STRING,
9160        outp: *mut *mut u8,
9161    ) -> ::std::os::raw::c_int;
9162}
9163extern "C" {
9164    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_OCTET_STRING"]
9165    pub fn i2d_ASN1_OCTET_STRING(
9166        in_: *const ASN1_OCTET_STRING,
9167        outp: *mut *mut u8,
9168    ) -> ::std::os::raw::c_int;
9169}
9170extern "C" {
9171    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_PRINTABLESTRING"]
9172    pub fn i2d_ASN1_PRINTABLESTRING(
9173        in_: *const ASN1_PRINTABLESTRING,
9174        outp: *mut *mut u8,
9175    ) -> ::std::os::raw::c_int;
9176}
9177extern "C" {
9178    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_T61STRING"]
9179    pub fn i2d_ASN1_T61STRING(
9180        in_: *const ASN1_T61STRING,
9181        outp: *mut *mut u8,
9182    ) -> ::std::os::raw::c_int;
9183}
9184extern "C" {
9185    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_UNIVERSALSTRING"]
9186    pub fn i2d_ASN1_UNIVERSALSTRING(
9187        in_: *const ASN1_UNIVERSALSTRING,
9188        outp: *mut *mut u8,
9189    ) -> ::std::os::raw::c_int;
9190}
9191extern "C" {
9192    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_UTF8STRING"]
9193    pub fn i2d_ASN1_UTF8STRING(
9194        in_: *const ASN1_UTF8STRING,
9195        outp: *mut *mut u8,
9196    ) -> ::std::os::raw::c_int;
9197}
9198extern "C" {
9199    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_VISIBLESTRING"]
9200    pub fn i2d_ASN1_VISIBLESTRING(
9201        in_: *const ASN1_VISIBLESTRING,
9202        outp: *mut *mut u8,
9203    ) -> ::std::os::raw::c_int;
9204}
9205extern "C" {
9206    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BMPSTRING_it"]
9207    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
9208}
9209extern "C" {
9210    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALSTRING_it"]
9211    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
9212}
9213extern "C" {
9214    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_IA5STRING_it"]
9215    pub static ASN1_IA5STRING_it: ASN1_ITEM;
9216}
9217extern "C" {
9218    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_it"]
9219    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
9220}
9221extern "C" {
9222    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLESTRING_it"]
9223    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
9224}
9225extern "C" {
9226    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_T61STRING_it"]
9227    pub static ASN1_T61STRING_it: ASN1_ITEM;
9228}
9229extern "C" {
9230    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UNIVERSALSTRING_it"]
9231    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
9232}
9233extern "C" {
9234    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTF8STRING_it"]
9235    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
9236}
9237extern "C" {
9238    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_VISIBLESTRING_it"]
9239    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
9240}
9241extern "C" {
9242    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_dup"]
9243    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
9244}
9245extern "C" {
9246    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_cmp"]
9247    pub fn ASN1_OCTET_STRING_cmp(
9248        a: *const ASN1_OCTET_STRING,
9249        b: *const ASN1_OCTET_STRING,
9250    ) -> ::std::os::raw::c_int;
9251}
9252extern "C" {
9253    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OCTET_STRING_set"]
9254    pub fn ASN1_OCTET_STRING_set(
9255        str_: *mut ASN1_OCTET_STRING,
9256        data: *const ::std::os::raw::c_uchar,
9257        len: ::std::os::raw::c_int,
9258    ) -> ::std::os::raw::c_int;
9259}
9260extern "C" {
9261    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_to_UTF8"]
9262    pub fn ASN1_STRING_to_UTF8(
9263        out: *mut *mut ::std::os::raw::c_uchar,
9264        in_: *const ASN1_STRING,
9265    ) -> ::std::os::raw::c_int;
9266}
9267extern "C" {
9268    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_mbstring_copy"]
9269    pub fn ASN1_mbstring_copy(
9270        out: *mut *mut ASN1_STRING,
9271        in_: *const u8,
9272        len: ossl_ssize_t,
9273        inform: ::std::os::raw::c_int,
9274        mask: ::std::os::raw::c_ulong,
9275    ) -> ::std::os::raw::c_int;
9276}
9277extern "C" {
9278    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_mbstring_ncopy"]
9279    pub fn ASN1_mbstring_ncopy(
9280        out: *mut *mut ASN1_STRING,
9281        in_: *const u8,
9282        len: ossl_ssize_t,
9283        inform: ::std::os::raw::c_int,
9284        mask: ::std::os::raw::c_ulong,
9285        minsize: ossl_ssize_t,
9286        maxsize: ossl_ssize_t,
9287    ) -> ::std::os::raw::c_int;
9288}
9289extern "C" {
9290    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_set_by_NID"]
9291    pub fn ASN1_STRING_set_by_NID(
9292        out: *mut *mut ASN1_STRING,
9293        in_: *const ::std::os::raw::c_uchar,
9294        len: ossl_ssize_t,
9295        inform: ::std::os::raw::c_int,
9296        nid: ::std::os::raw::c_int,
9297    ) -> *mut ASN1_STRING;
9298}
9299extern "C" {
9300    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_TABLE_add"]
9301    pub fn ASN1_STRING_TABLE_add(
9302        nid: ::std::os::raw::c_int,
9303        minsize: ::std::os::raw::c_long,
9304        maxsize: ::std::os::raw::c_long,
9305        mask: ::std::os::raw::c_ulong,
9306        flags: ::std::os::raw::c_ulong,
9307    ) -> ::std::os::raw::c_int;
9308}
9309extern "C" {
9310    #[link_name = "\u{1}aws_lc_0_36_0_DIRECTORYSTRING_new"]
9311    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
9312}
9313extern "C" {
9314    #[link_name = "\u{1}aws_lc_0_36_0_DIRECTORYSTRING_free"]
9315    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
9316}
9317extern "C" {
9318    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DIRECTORYSTRING"]
9319    pub fn d2i_DIRECTORYSTRING(
9320        out: *mut *mut ASN1_STRING,
9321        inp: *mut *const u8,
9322        len: ::std::os::raw::c_long,
9323    ) -> *mut ASN1_STRING;
9324}
9325extern "C" {
9326    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DIRECTORYSTRING"]
9327    pub fn i2d_DIRECTORYSTRING(
9328        in_: *const ASN1_STRING,
9329        outp: *mut *mut u8,
9330    ) -> ::std::os::raw::c_int;
9331}
9332extern "C" {
9333    #[link_name = "\u{1}aws_lc_0_36_0_DIRECTORYSTRING_it"]
9334    pub static DIRECTORYSTRING_it: ASN1_ITEM;
9335}
9336extern "C" {
9337    #[link_name = "\u{1}aws_lc_0_36_0_DISPLAYTEXT_new"]
9338    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
9339}
9340extern "C" {
9341    #[link_name = "\u{1}aws_lc_0_36_0_DISPLAYTEXT_free"]
9342    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
9343}
9344extern "C" {
9345    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DISPLAYTEXT"]
9346    pub fn d2i_DISPLAYTEXT(
9347        out: *mut *mut ASN1_STRING,
9348        inp: *mut *const u8,
9349        len: ::std::os::raw::c_long,
9350    ) -> *mut ASN1_STRING;
9351}
9352extern "C" {
9353    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DISPLAYTEXT"]
9354    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9355}
9356extern "C" {
9357    #[link_name = "\u{1}aws_lc_0_36_0_DISPLAYTEXT_it"]
9358    pub static DISPLAYTEXT_it: ASN1_ITEM;
9359}
9360extern "C" {
9361    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_new"]
9362    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
9363}
9364extern "C" {
9365    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_free"]
9366    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
9367}
9368extern "C" {
9369    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_BIT_STRING"]
9370    pub fn d2i_ASN1_BIT_STRING(
9371        out: *mut *mut ASN1_BIT_STRING,
9372        inp: *mut *const u8,
9373        len: ::std::os::raw::c_long,
9374    ) -> *mut ASN1_BIT_STRING;
9375}
9376extern "C" {
9377    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_BIT_STRING"]
9378    pub fn i2d_ASN1_BIT_STRING(
9379        in_: *const ASN1_BIT_STRING,
9380        outp: *mut *mut u8,
9381    ) -> ::std::os::raw::c_int;
9382}
9383extern "C" {
9384    #[link_name = "\u{1}aws_lc_0_36_0_c2i_ASN1_BIT_STRING"]
9385    pub fn c2i_ASN1_BIT_STRING(
9386        out: *mut *mut ASN1_BIT_STRING,
9387        inp: *mut *const u8,
9388        len: ::std::os::raw::c_long,
9389    ) -> *mut ASN1_BIT_STRING;
9390}
9391extern "C" {
9392    #[link_name = "\u{1}aws_lc_0_36_0_i2c_ASN1_BIT_STRING"]
9393    pub fn i2c_ASN1_BIT_STRING(
9394        in_: *const ASN1_BIT_STRING,
9395        outp: *mut *mut u8,
9396    ) -> ::std::os::raw::c_int;
9397}
9398extern "C" {
9399    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_it"]
9400    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
9401}
9402extern "C" {
9403    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_num_bytes"]
9404    pub fn ASN1_BIT_STRING_num_bytes(
9405        str_: *const ASN1_BIT_STRING,
9406        out: *mut usize,
9407    ) -> ::std::os::raw::c_int;
9408}
9409extern "C" {
9410    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_set"]
9411    pub fn ASN1_BIT_STRING_set(
9412        str_: *mut ASN1_BIT_STRING,
9413        d: *const ::std::os::raw::c_uchar,
9414        length: ossl_ssize_t,
9415    ) -> ::std::os::raw::c_int;
9416}
9417extern "C" {
9418    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_set_bit"]
9419    pub fn ASN1_BIT_STRING_set_bit(
9420        str_: *mut ASN1_BIT_STRING,
9421        n: ::std::os::raw::c_int,
9422        value: ::std::os::raw::c_int,
9423    ) -> ::std::os::raw::c_int;
9424}
9425extern "C" {
9426    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_get_bit"]
9427    pub fn ASN1_BIT_STRING_get_bit(
9428        str_: *const ASN1_BIT_STRING,
9429        n: ::std::os::raw::c_int,
9430    ) -> ::std::os::raw::c_int;
9431}
9432extern "C" {
9433    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_BIT_STRING_check"]
9434    pub fn ASN1_BIT_STRING_check(
9435        str_: *const ASN1_BIT_STRING,
9436        flags: *const ::std::os::raw::c_uchar,
9437        flags_len: ::std::os::raw::c_int,
9438    ) -> ::std::os::raw::c_int;
9439}
9440#[repr(C)]
9441#[derive(Debug, Copy, Clone)]
9442pub struct stack_st_ASN1_INTEGER {
9443    _unused: [u8; 0],
9444}
9445pub type sk_ASN1_INTEGER_free_func =
9446    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
9447pub type sk_ASN1_INTEGER_copy_func =
9448    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
9449pub type sk_ASN1_INTEGER_cmp_func = ::std::option::Option<
9450    unsafe extern "C" fn(
9451        arg1: *const *const ASN1_INTEGER,
9452        arg2: *const *const ASN1_INTEGER,
9453    ) -> ::std::os::raw::c_int,
9454>;
9455pub type sk_ASN1_INTEGER_delete_if_func = ::std::option::Option<
9456    unsafe extern "C" fn(
9457        arg1: *mut ASN1_INTEGER,
9458        arg2: *mut ::std::os::raw::c_void,
9459    ) -> ::std::os::raw::c_int,
9460>;
9461extern "C" {
9462    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_new"]
9463    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
9464}
9465extern "C" {
9466    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_free"]
9467    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
9468}
9469extern "C" {
9470    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_dup"]
9471    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
9472}
9473extern "C" {
9474    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_INTEGER"]
9475    pub fn d2i_ASN1_INTEGER(
9476        out: *mut *mut ASN1_INTEGER,
9477        inp: *mut *const u8,
9478        len: ::std::os::raw::c_long,
9479    ) -> *mut ASN1_INTEGER;
9480}
9481extern "C" {
9482    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_INTEGER"]
9483    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9484}
9485extern "C" {
9486    #[link_name = "\u{1}aws_lc_0_36_0_c2i_ASN1_INTEGER"]
9487    pub fn c2i_ASN1_INTEGER(
9488        in_: *mut *mut ASN1_INTEGER,
9489        outp: *mut *const u8,
9490        len: ::std::os::raw::c_long,
9491    ) -> *mut ASN1_INTEGER;
9492}
9493extern "C" {
9494    #[link_name = "\u{1}aws_lc_0_36_0_i2c_ASN1_INTEGER"]
9495    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9496}
9497extern "C" {
9498    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_it"]
9499    pub static ASN1_INTEGER_it: ASN1_ITEM;
9500}
9501extern "C" {
9502    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_set_uint64"]
9503    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
9504}
9505extern "C" {
9506    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_set_int64"]
9507    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::std::os::raw::c_int;
9508}
9509extern "C" {
9510    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_get_uint64"]
9511    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9512}
9513extern "C" {
9514    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_get_int64"]
9515    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9516}
9517extern "C" {
9518    #[link_name = "\u{1}aws_lc_0_36_0_BN_to_ASN1_INTEGER"]
9519    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
9520}
9521extern "C" {
9522    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_to_BN"]
9523    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
9524}
9525extern "C" {
9526    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_cmp"]
9527    pub fn ASN1_INTEGER_cmp(
9528        x: *const ASN1_INTEGER,
9529        y: *const ASN1_INTEGER,
9530    ) -> ::std::os::raw::c_int;
9531}
9532extern "C" {
9533    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_new"]
9534    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
9535}
9536extern "C" {
9537    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_free"]
9538    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
9539}
9540extern "C" {
9541    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_ENUMERATED"]
9542    pub fn d2i_ASN1_ENUMERATED(
9543        out: *mut *mut ASN1_ENUMERATED,
9544        inp: *mut *const u8,
9545        len: ::std::os::raw::c_long,
9546    ) -> *mut ASN1_ENUMERATED;
9547}
9548extern "C" {
9549    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_ENUMERATED"]
9550    pub fn i2d_ASN1_ENUMERATED(
9551        in_: *const ASN1_ENUMERATED,
9552        outp: *mut *mut u8,
9553    ) -> ::std::os::raw::c_int;
9554}
9555extern "C" {
9556    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_it"]
9557    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
9558}
9559extern "C" {
9560    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_set_uint64"]
9561    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::std::os::raw::c_int;
9562}
9563extern "C" {
9564    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_set_int64"]
9565    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::std::os::raw::c_int;
9566}
9567extern "C" {
9568    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_get_uint64"]
9569    pub fn ASN1_ENUMERATED_get_uint64(
9570        out: *mut u64,
9571        a: *const ASN1_ENUMERATED,
9572    ) -> ::std::os::raw::c_int;
9573}
9574extern "C" {
9575    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_get_int64"]
9576    pub fn ASN1_ENUMERATED_get_int64(
9577        out: *mut i64,
9578        a: *const ASN1_ENUMERATED,
9579    ) -> ::std::os::raw::c_int;
9580}
9581extern "C" {
9582    #[link_name = "\u{1}aws_lc_0_36_0_BN_to_ASN1_ENUMERATED"]
9583    pub fn BN_to_ASN1_ENUMERATED(
9584        bn: *const BIGNUM,
9585        ai: *mut ASN1_ENUMERATED,
9586    ) -> *mut ASN1_ENUMERATED;
9587}
9588extern "C" {
9589    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_to_BN"]
9590    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
9591}
9592extern "C" {
9593    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_new"]
9594    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
9595}
9596extern "C" {
9597    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_free"]
9598    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
9599}
9600extern "C" {
9601    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_UTCTIME"]
9602    pub fn d2i_ASN1_UTCTIME(
9603        out: *mut *mut ASN1_UTCTIME,
9604        inp: *mut *const u8,
9605        len: ::std::os::raw::c_long,
9606    ) -> *mut ASN1_UTCTIME;
9607}
9608extern "C" {
9609    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_UTCTIME"]
9610    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9611}
9612extern "C" {
9613    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_it"]
9614    pub static ASN1_UTCTIME_it: ASN1_ITEM;
9615}
9616extern "C" {
9617    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_check"]
9618    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
9619}
9620extern "C" {
9621    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_set"]
9622    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
9623}
9624extern "C" {
9625    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_adj"]
9626    pub fn ASN1_UTCTIME_adj(
9627        s: *mut ASN1_UTCTIME,
9628        posix_time: i64,
9629        offset_day: ::std::os::raw::c_int,
9630        offset_sec: ::std::os::raw::c_long,
9631    ) -> *mut ASN1_UTCTIME;
9632}
9633extern "C" {
9634    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_set_string"]
9635    pub fn ASN1_UTCTIME_set_string(
9636        s: *mut ASN1_UTCTIME,
9637        str_: *const ::std::os::raw::c_char,
9638    ) -> ::std::os::raw::c_int;
9639}
9640extern "C" {
9641    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_cmp_time_t"]
9642    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
9643}
9644extern "C" {
9645    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_new"]
9646    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
9647}
9648extern "C" {
9649    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_free"]
9650    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
9651}
9652extern "C" {
9653    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_GENERALIZEDTIME"]
9654    pub fn d2i_ASN1_GENERALIZEDTIME(
9655        out: *mut *mut ASN1_GENERALIZEDTIME,
9656        inp: *mut *const u8,
9657        len: ::std::os::raw::c_long,
9658    ) -> *mut ASN1_GENERALIZEDTIME;
9659}
9660extern "C" {
9661    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_GENERALIZEDTIME"]
9662    pub fn i2d_ASN1_GENERALIZEDTIME(
9663        in_: *const ASN1_GENERALIZEDTIME,
9664        outp: *mut *mut u8,
9665    ) -> ::std::os::raw::c_int;
9666}
9667extern "C" {
9668    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_it"]
9669    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
9670}
9671extern "C" {
9672    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_check"]
9673    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
9674}
9675extern "C" {
9676    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_set"]
9677    pub fn ASN1_GENERALIZEDTIME_set(
9678        s: *mut ASN1_GENERALIZEDTIME,
9679        posix_time: i64,
9680    ) -> *mut ASN1_GENERALIZEDTIME;
9681}
9682extern "C" {
9683    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_adj"]
9684    pub fn ASN1_GENERALIZEDTIME_adj(
9685        s: *mut ASN1_GENERALIZEDTIME,
9686        posix_time: i64,
9687        offset_day: ::std::os::raw::c_int,
9688        offset_sec: ::std::os::raw::c_long,
9689    ) -> *mut ASN1_GENERALIZEDTIME;
9690}
9691extern "C" {
9692    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_set_string"]
9693    pub fn ASN1_GENERALIZEDTIME_set_string(
9694        s: *mut ASN1_GENERALIZEDTIME,
9695        str_: *const ::std::os::raw::c_char,
9696    ) -> ::std::os::raw::c_int;
9697}
9698extern "C" {
9699    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_new"]
9700    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
9701}
9702extern "C" {
9703    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_free"]
9704    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
9705}
9706extern "C" {
9707    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_TIME"]
9708    pub fn d2i_ASN1_TIME(
9709        out: *mut *mut ASN1_TIME,
9710        inp: *mut *const u8,
9711        len: ::std::os::raw::c_long,
9712    ) -> *mut ASN1_TIME;
9713}
9714extern "C" {
9715    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_TIME"]
9716    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9717}
9718extern "C" {
9719    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_it"]
9720    pub static ASN1_TIME_it: ASN1_ITEM;
9721}
9722extern "C" {
9723    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_diff"]
9724    pub fn ASN1_TIME_diff(
9725        out_days: *mut ::std::os::raw::c_int,
9726        out_seconds: *mut ::std::os::raw::c_int,
9727        from: *const ASN1_TIME,
9728        to: *const ASN1_TIME,
9729    ) -> ::std::os::raw::c_int;
9730}
9731extern "C" {
9732    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_set_posix"]
9733    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
9734}
9735extern "C" {
9736    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_set"]
9737    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
9738}
9739extern "C" {
9740    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_adj"]
9741    pub fn ASN1_TIME_adj(
9742        s: *mut ASN1_TIME,
9743        posix_time: i64,
9744        offset_day: ::std::os::raw::c_int,
9745        offset_sec: ::std::os::raw::c_long,
9746    ) -> *mut ASN1_TIME;
9747}
9748extern "C" {
9749    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_check"]
9750    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::std::os::raw::c_int;
9751}
9752extern "C" {
9753    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_to_generalizedtime"]
9754    pub fn ASN1_TIME_to_generalizedtime(
9755        t: *const ASN1_TIME,
9756        out: *mut *mut ASN1_GENERALIZEDTIME,
9757    ) -> *mut ASN1_GENERALIZEDTIME;
9758}
9759extern "C" {
9760    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_set_string"]
9761    pub fn ASN1_TIME_set_string(
9762        s: *mut ASN1_TIME,
9763        str_: *const ::std::os::raw::c_char,
9764    ) -> ::std::os::raw::c_int;
9765}
9766extern "C" {
9767    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_to_tm"]
9768    pub fn ASN1_TIME_to_tm(t: *const ASN1_TIME, out: *mut tm) -> ::std::os::raw::c_int;
9769}
9770extern "C" {
9771    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_set_string_X509"]
9772    pub fn ASN1_TIME_set_string_X509(
9773        s: *mut ASN1_TIME,
9774        str_: *const ::std::os::raw::c_char,
9775    ) -> ::std::os::raw::c_int;
9776}
9777extern "C" {
9778    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_to_time_t"]
9779    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::std::os::raw::c_int;
9780}
9781extern "C" {
9782    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_to_posix"]
9783    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::std::os::raw::c_int;
9784}
9785extern "C" {
9786    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_NULL_new"]
9787    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
9788}
9789extern "C" {
9790    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_NULL_free"]
9791    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
9792}
9793extern "C" {
9794    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_NULL"]
9795    pub fn d2i_ASN1_NULL(
9796        out: *mut *mut ASN1_NULL,
9797        inp: *mut *const u8,
9798        len: ::std::os::raw::c_long,
9799    ) -> *mut ASN1_NULL;
9800}
9801extern "C" {
9802    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_NULL"]
9803    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9804}
9805extern "C" {
9806    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_NULL_it"]
9807    pub static ASN1_NULL_it: ASN1_ITEM;
9808}
9809#[repr(C)]
9810#[derive(Debug, Copy, Clone)]
9811pub struct stack_st_ASN1_OBJECT {
9812    _unused: [u8; 0],
9813}
9814pub type sk_ASN1_OBJECT_free_func =
9815    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
9816pub type sk_ASN1_OBJECT_copy_func =
9817    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
9818pub type sk_ASN1_OBJECT_cmp_func = ::std::option::Option<
9819    unsafe extern "C" fn(
9820        arg1: *const *const ASN1_OBJECT,
9821        arg2: *const *const ASN1_OBJECT,
9822    ) -> ::std::os::raw::c_int,
9823>;
9824pub type sk_ASN1_OBJECT_delete_if_func = ::std::option::Option<
9825    unsafe extern "C" fn(
9826        arg1: *mut ASN1_OBJECT,
9827        arg2: *mut ::std::os::raw::c_void,
9828    ) -> ::std::os::raw::c_int,
9829>;
9830extern "C" {
9831    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OBJECT_create"]
9832    pub fn ASN1_OBJECT_create(
9833        nid: ::std::os::raw::c_int,
9834        data: *const u8,
9835        len: usize,
9836        sn: *const ::std::os::raw::c_char,
9837        ln: *const ::std::os::raw::c_char,
9838    ) -> *mut ASN1_OBJECT;
9839}
9840extern "C" {
9841    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OBJECT_free"]
9842    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
9843}
9844extern "C" {
9845    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_OBJECT"]
9846    pub fn d2i_ASN1_OBJECT(
9847        out: *mut *mut ASN1_OBJECT,
9848        inp: *mut *const u8,
9849        len: ::std::os::raw::c_long,
9850    ) -> *mut ASN1_OBJECT;
9851}
9852extern "C" {
9853    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_OBJECT"]
9854    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9855}
9856extern "C" {
9857    #[link_name = "\u{1}aws_lc_0_36_0_c2i_ASN1_OBJECT"]
9858    pub fn c2i_ASN1_OBJECT(
9859        out: *mut *mut ASN1_OBJECT,
9860        inp: *mut *const u8,
9861        len: ::std::os::raw::c_long,
9862    ) -> *mut ASN1_OBJECT;
9863}
9864extern "C" {
9865    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_OBJECT_it"]
9866    pub static ASN1_OBJECT_it: ASN1_ITEM;
9867}
9868#[repr(C)]
9869#[derive(Copy, Clone)]
9870pub struct asn1_type_st {
9871    pub type_: ::std::os::raw::c_int,
9872    pub value: asn1_type_st__bindgen_ty_1,
9873}
9874#[repr(C)]
9875#[derive(Copy, Clone)]
9876pub union asn1_type_st__bindgen_ty_1 {
9877    pub ptr: *mut ::std::os::raw::c_char,
9878    pub boolean: ASN1_BOOLEAN,
9879    pub asn1_string: *mut ASN1_STRING,
9880    pub object: *mut ASN1_OBJECT,
9881    pub integer: *mut ASN1_INTEGER,
9882    pub enumerated: *mut ASN1_ENUMERATED,
9883    pub bit_string: *mut ASN1_BIT_STRING,
9884    pub octet_string: *mut ASN1_OCTET_STRING,
9885    pub printablestring: *mut ASN1_PRINTABLESTRING,
9886    pub t61string: *mut ASN1_T61STRING,
9887    pub ia5string: *mut ASN1_IA5STRING,
9888    pub generalstring: *mut ASN1_GENERALSTRING,
9889    pub bmpstring: *mut ASN1_BMPSTRING,
9890    pub universalstring: *mut ASN1_UNIVERSALSTRING,
9891    pub utctime: *mut ASN1_UTCTIME,
9892    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
9893    pub visiblestring: *mut ASN1_VISIBLESTRING,
9894    pub utf8string: *mut ASN1_UTF8STRING,
9895    pub set: *mut ASN1_STRING,
9896    pub sequence: *mut ASN1_STRING,
9897    pub asn1_value: *mut ASN1_VALUE,
9898}
9899#[test]
9900fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
9901    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st__bindgen_ty_1> =
9902        ::std::mem::MaybeUninit::uninit();
9903    let ptr = UNINIT.as_ptr();
9904    assert_eq!(
9905        ::std::mem::size_of::<asn1_type_st__bindgen_ty_1>(),
9906        8usize,
9907        "Size of asn1_type_st__bindgen_ty_1"
9908    );
9909    assert_eq!(
9910        ::std::mem::align_of::<asn1_type_st__bindgen_ty_1>(),
9911        8usize,
9912        "Alignment of asn1_type_st__bindgen_ty_1"
9913    );
9914    assert_eq!(
9915        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
9916        0usize,
9917        "Offset of field: asn1_type_st__bindgen_ty_1::ptr"
9918    );
9919    assert_eq!(
9920        unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize },
9921        0usize,
9922        "Offset of field: asn1_type_st__bindgen_ty_1::boolean"
9923    );
9924    assert_eq!(
9925        unsafe { ::std::ptr::addr_of!((*ptr).asn1_string) as usize - ptr as usize },
9926        0usize,
9927        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_string"
9928    );
9929    assert_eq!(
9930        unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize },
9931        0usize,
9932        "Offset of field: asn1_type_st__bindgen_ty_1::object"
9933    );
9934    assert_eq!(
9935        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
9936        0usize,
9937        "Offset of field: asn1_type_st__bindgen_ty_1::integer"
9938    );
9939    assert_eq!(
9940        unsafe { ::std::ptr::addr_of!((*ptr).enumerated) as usize - ptr as usize },
9941        0usize,
9942        "Offset of field: asn1_type_st__bindgen_ty_1::enumerated"
9943    );
9944    assert_eq!(
9945        unsafe { ::std::ptr::addr_of!((*ptr).bit_string) as usize - ptr as usize },
9946        0usize,
9947        "Offset of field: asn1_type_st__bindgen_ty_1::bit_string"
9948    );
9949    assert_eq!(
9950        unsafe { ::std::ptr::addr_of!((*ptr).octet_string) as usize - ptr as usize },
9951        0usize,
9952        "Offset of field: asn1_type_st__bindgen_ty_1::octet_string"
9953    );
9954    assert_eq!(
9955        unsafe { ::std::ptr::addr_of!((*ptr).printablestring) as usize - ptr as usize },
9956        0usize,
9957        "Offset of field: asn1_type_st__bindgen_ty_1::printablestring"
9958    );
9959    assert_eq!(
9960        unsafe { ::std::ptr::addr_of!((*ptr).t61string) as usize - ptr as usize },
9961        0usize,
9962        "Offset of field: asn1_type_st__bindgen_ty_1::t61string"
9963    );
9964    assert_eq!(
9965        unsafe { ::std::ptr::addr_of!((*ptr).ia5string) as usize - ptr as usize },
9966        0usize,
9967        "Offset of field: asn1_type_st__bindgen_ty_1::ia5string"
9968    );
9969    assert_eq!(
9970        unsafe { ::std::ptr::addr_of!((*ptr).generalstring) as usize - ptr as usize },
9971        0usize,
9972        "Offset of field: asn1_type_st__bindgen_ty_1::generalstring"
9973    );
9974    assert_eq!(
9975        unsafe { ::std::ptr::addr_of!((*ptr).bmpstring) as usize - ptr as usize },
9976        0usize,
9977        "Offset of field: asn1_type_st__bindgen_ty_1::bmpstring"
9978    );
9979    assert_eq!(
9980        unsafe { ::std::ptr::addr_of!((*ptr).universalstring) as usize - ptr as usize },
9981        0usize,
9982        "Offset of field: asn1_type_st__bindgen_ty_1::universalstring"
9983    );
9984    assert_eq!(
9985        unsafe { ::std::ptr::addr_of!((*ptr).utctime) as usize - ptr as usize },
9986        0usize,
9987        "Offset of field: asn1_type_st__bindgen_ty_1::utctime"
9988    );
9989    assert_eq!(
9990        unsafe { ::std::ptr::addr_of!((*ptr).generalizedtime) as usize - ptr as usize },
9991        0usize,
9992        "Offset of field: asn1_type_st__bindgen_ty_1::generalizedtime"
9993    );
9994    assert_eq!(
9995        unsafe { ::std::ptr::addr_of!((*ptr).visiblestring) as usize - ptr as usize },
9996        0usize,
9997        "Offset of field: asn1_type_st__bindgen_ty_1::visiblestring"
9998    );
9999    assert_eq!(
10000        unsafe { ::std::ptr::addr_of!((*ptr).utf8string) as usize - ptr as usize },
10001        0usize,
10002        "Offset of field: asn1_type_st__bindgen_ty_1::utf8string"
10003    );
10004    assert_eq!(
10005        unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize },
10006        0usize,
10007        "Offset of field: asn1_type_st__bindgen_ty_1::set"
10008    );
10009    assert_eq!(
10010        unsafe { ::std::ptr::addr_of!((*ptr).sequence) as usize - ptr as usize },
10011        0usize,
10012        "Offset of field: asn1_type_st__bindgen_ty_1::sequence"
10013    );
10014    assert_eq!(
10015        unsafe { ::std::ptr::addr_of!((*ptr).asn1_value) as usize - ptr as usize },
10016        0usize,
10017        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_value"
10018    );
10019}
10020impl Default for asn1_type_st__bindgen_ty_1 {
10021    fn default() -> Self {
10022        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10023        unsafe {
10024            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10025            s.assume_init()
10026        }
10027    }
10028}
10029#[test]
10030fn bindgen_test_layout_asn1_type_st() {
10031    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st> = ::std::mem::MaybeUninit::uninit();
10032    let ptr = UNINIT.as_ptr();
10033    assert_eq!(
10034        ::std::mem::size_of::<asn1_type_st>(),
10035        16usize,
10036        "Size of asn1_type_st"
10037    );
10038    assert_eq!(
10039        ::std::mem::align_of::<asn1_type_st>(),
10040        8usize,
10041        "Alignment of asn1_type_st"
10042    );
10043    assert_eq!(
10044        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
10045        0usize,
10046        "Offset of field: asn1_type_st::type_"
10047    );
10048    assert_eq!(
10049        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10050        8usize,
10051        "Offset of field: asn1_type_st::value"
10052    );
10053}
10054impl Default for asn1_type_st {
10055    fn default() -> Self {
10056        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10057        unsafe {
10058            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10059            s.assume_init()
10060        }
10061    }
10062}
10063#[repr(C)]
10064#[derive(Debug, Copy, Clone)]
10065pub struct stack_st_ASN1_TYPE {
10066    _unused: [u8; 0],
10067}
10068pub type sk_ASN1_TYPE_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
10069pub type sk_ASN1_TYPE_copy_func =
10070    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
10071pub type sk_ASN1_TYPE_cmp_func = ::std::option::Option<
10072    unsafe extern "C" fn(
10073        arg1: *const *const ASN1_TYPE,
10074        arg2: *const *const ASN1_TYPE,
10075    ) -> ::std::os::raw::c_int,
10076>;
10077pub type sk_ASN1_TYPE_delete_if_func = ::std::option::Option<
10078    unsafe extern "C" fn(
10079        arg1: *mut ASN1_TYPE,
10080        arg2: *mut ::std::os::raw::c_void,
10081    ) -> ::std::os::raw::c_int,
10082>;
10083extern "C" {
10084    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_new"]
10085    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
10086}
10087extern "C" {
10088    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_free"]
10089    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
10090}
10091extern "C" {
10092    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_TYPE"]
10093    pub fn d2i_ASN1_TYPE(
10094        out: *mut *mut ASN1_TYPE,
10095        inp: *mut *const u8,
10096        len: ::std::os::raw::c_long,
10097    ) -> *mut ASN1_TYPE;
10098}
10099extern "C" {
10100    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_TYPE"]
10101    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::std::os::raw::c_int;
10102}
10103extern "C" {
10104    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ANY_it"]
10105    pub static ASN1_ANY_it: ASN1_ITEM;
10106}
10107extern "C" {
10108    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_get"]
10109    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10110}
10111extern "C" {
10112    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_set"]
10113    pub fn ASN1_TYPE_set(
10114        a: *mut ASN1_TYPE,
10115        type_: ::std::os::raw::c_int,
10116        value: *mut ::std::os::raw::c_void,
10117    );
10118}
10119extern "C" {
10120    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_set1"]
10121    pub fn ASN1_TYPE_set1(
10122        a: *mut ASN1_TYPE,
10123        type_: ::std::os::raw::c_int,
10124        value: *const ::std::os::raw::c_void,
10125    ) -> ::std::os::raw::c_int;
10126}
10127extern "C" {
10128    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TYPE_cmp"]
10129    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10130}
10131pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
10132extern "C" {
10133    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_SEQUENCE_ANY"]
10134    pub fn d2i_ASN1_SEQUENCE_ANY(
10135        out: *mut *mut ASN1_SEQUENCE_ANY,
10136        inp: *mut *const u8,
10137        len: ::std::os::raw::c_long,
10138    ) -> *mut ASN1_SEQUENCE_ANY;
10139}
10140extern "C" {
10141    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_SEQUENCE_ANY"]
10142    pub fn i2d_ASN1_SEQUENCE_ANY(
10143        in_: *const ASN1_SEQUENCE_ANY,
10144        outp: *mut *mut u8,
10145    ) -> ::std::os::raw::c_int;
10146}
10147extern "C" {
10148    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_SET_ANY"]
10149    pub fn d2i_ASN1_SET_ANY(
10150        out: *mut *mut ASN1_SEQUENCE_ANY,
10151        inp: *mut *const u8,
10152        len: ::std::os::raw::c_long,
10153    ) -> *mut ASN1_SEQUENCE_ANY;
10154}
10155extern "C" {
10156    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_SET_ANY"]
10157    pub fn i2d_ASN1_SET_ANY(
10158        in_: *const ASN1_SEQUENCE_ANY,
10159        outp: *mut *mut u8,
10160    ) -> ::std::os::raw::c_int;
10161}
10162extern "C" {
10163    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_UTCTIME_print"]
10164    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
10165}
10166extern "C" {
10167    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_GENERALIZEDTIME_print"]
10168    pub fn ASN1_GENERALIZEDTIME_print(
10169        out: *mut BIO,
10170        a: *const ASN1_GENERALIZEDTIME,
10171    ) -> ::std::os::raw::c_int;
10172}
10173extern "C" {
10174    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_TIME_print"]
10175    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
10176}
10177extern "C" {
10178    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_print"]
10179    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
10180}
10181extern "C" {
10182    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_print_ex"]
10183    pub fn ASN1_STRING_print_ex(
10184        out: *mut BIO,
10185        str_: *const ASN1_STRING,
10186        flags: ::std::os::raw::c_ulong,
10187    ) -> ::std::os::raw::c_int;
10188}
10189extern "C" {
10190    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_print_ex_fp"]
10191    pub fn ASN1_STRING_print_ex_fp(
10192        fp: *mut FILE,
10193        str_: *const ASN1_STRING,
10194        flags: ::std::os::raw::c_ulong,
10195    ) -> ::std::os::raw::c_int;
10196}
10197extern "C" {
10198    #[link_name = "\u{1}aws_lc_0_36_0_i2a_ASN1_INTEGER"]
10199    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
10200}
10201extern "C" {
10202    #[link_name = "\u{1}aws_lc_0_36_0_i2a_ASN1_ENUMERATED"]
10203    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_int;
10204}
10205extern "C" {
10206    #[link_name = "\u{1}aws_lc_0_36_0_i2a_ASN1_OBJECT"]
10207    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
10208}
10209extern "C" {
10210    #[link_name = "\u{1}aws_lc_0_36_0_i2a_ASN1_STRING"]
10211    pub fn i2a_ASN1_STRING(
10212        bp: *mut BIO,
10213        a: *const ASN1_STRING,
10214        type_: ::std::os::raw::c_int,
10215    ) -> ::std::os::raw::c_int;
10216}
10217extern "C" {
10218    #[link_name = "\u{1}aws_lc_0_36_0_i2t_ASN1_OBJECT"]
10219    pub fn i2t_ASN1_OBJECT(
10220        buf: *mut ::std::os::raw::c_char,
10221        buf_len: ::std::os::raw::c_int,
10222        a: *const ASN1_OBJECT,
10223    ) -> ::std::os::raw::c_int;
10224}
10225extern "C" {
10226    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_get_object"]
10227    pub fn ASN1_get_object(
10228        inp: *mut *const ::std::os::raw::c_uchar,
10229        out_length: *mut ::std::os::raw::c_long,
10230        out_tag: *mut ::std::os::raw::c_int,
10231        out_class: *mut ::std::os::raw::c_int,
10232        max_len: ::std::os::raw::c_long,
10233    ) -> ::std::os::raw::c_int;
10234}
10235extern "C" {
10236    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_put_object"]
10237    pub fn ASN1_put_object(
10238        outp: *mut *mut ::std::os::raw::c_uchar,
10239        constructed: ::std::os::raw::c_int,
10240        length: ::std::os::raw::c_int,
10241        tag: ::std::os::raw::c_int,
10242        xclass: ::std::os::raw::c_int,
10243    );
10244}
10245extern "C" {
10246    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_put_eoc"]
10247    pub fn ASN1_put_eoc(outp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
10248}
10249extern "C" {
10250    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_object_size"]
10251    pub fn ASN1_object_size(
10252        constructed: ::std::os::raw::c_int,
10253        length: ::std::os::raw::c_int,
10254        tag: ::std::os::raw::c_int,
10255    ) -> ::std::os::raw::c_int;
10256}
10257extern "C" {
10258    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLE_new"]
10259    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
10260}
10261extern "C" {
10262    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLE_free"]
10263    pub fn ASN1_PRINTABLE_free(str_: *mut ASN1_STRING);
10264}
10265extern "C" {
10266    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ASN1_PRINTABLE"]
10267    pub fn d2i_ASN1_PRINTABLE(
10268        out: *mut *mut ASN1_STRING,
10269        inp: *mut *const u8,
10270        len: ::std::os::raw::c_long,
10271    ) -> *mut ASN1_STRING;
10272}
10273extern "C" {
10274    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ASN1_PRINTABLE"]
10275    pub fn i2d_ASN1_PRINTABLE(in_: *const ASN1_STRING, outp: *mut *mut u8)
10276        -> ::std::os::raw::c_int;
10277}
10278extern "C" {
10279    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_PRINTABLE_it"]
10280    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
10281}
10282extern "C" {
10283    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_set"]
10284    pub fn ASN1_INTEGER_set(
10285        a: *mut ASN1_INTEGER,
10286        v: ::std::os::raw::c_long,
10287    ) -> ::std::os::raw::c_int;
10288}
10289extern "C" {
10290    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_set"]
10291    pub fn ASN1_ENUMERATED_set(
10292        a: *mut ASN1_ENUMERATED,
10293        v: ::std::os::raw::c_long,
10294    ) -> ::std::os::raw::c_int;
10295}
10296extern "C" {
10297    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_INTEGER_get"]
10298    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
10299}
10300extern "C" {
10301    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_ENUMERATED_get"]
10302    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_long;
10303}
10304extern "C" {
10305    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_set_default_mask"]
10306    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
10307}
10308extern "C" {
10309    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_set_default_mask_asc"]
10310    pub fn ASN1_STRING_set_default_mask_asc(
10311        p: *const ::std::os::raw::c_char,
10312    ) -> ::std::os::raw::c_int;
10313}
10314extern "C" {
10315    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_get_default_mask"]
10316    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
10317}
10318extern "C" {
10319    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_STRING_TABLE_cleanup"]
10320    pub fn ASN1_STRING_TABLE_cleanup();
10321}
10322pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
10323#[repr(C)]
10324#[derive(Debug, Copy, Clone)]
10325pub struct ASN1_TLC_st {
10326    _unused: [u8; 0],
10327}
10328pub type ASN1_TLC = ASN1_TLC_st;
10329#[repr(C)]
10330#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10331pub struct ASN1_TEMPLATE_st {
10332    pub flags: u32,
10333    pub tag: ::std::os::raw::c_int,
10334    pub offset: ::std::os::raw::c_ulong,
10335    pub field_name: *const ::std::os::raw::c_char,
10336    pub item: *const ASN1_ITEM_st,
10337}
10338#[test]
10339fn bindgen_test_layout_ASN1_TEMPLATE_st() {
10340    const UNINIT: ::std::mem::MaybeUninit<ASN1_TEMPLATE_st> = ::std::mem::MaybeUninit::uninit();
10341    let ptr = UNINIT.as_ptr();
10342    assert_eq!(
10343        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
10344        32usize,
10345        "Size of ASN1_TEMPLATE_st"
10346    );
10347    assert_eq!(
10348        ::std::mem::align_of::<ASN1_TEMPLATE_st>(),
10349        8usize,
10350        "Alignment of ASN1_TEMPLATE_st"
10351    );
10352    assert_eq!(
10353        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10354        0usize,
10355        "Offset of field: ASN1_TEMPLATE_st::flags"
10356    );
10357    assert_eq!(
10358        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
10359        4usize,
10360        "Offset of field: ASN1_TEMPLATE_st::tag"
10361    );
10362    assert_eq!(
10363        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10364        8usize,
10365        "Offset of field: ASN1_TEMPLATE_st::offset"
10366    );
10367    assert_eq!(
10368        unsafe { ::std::ptr::addr_of!((*ptr).field_name) as usize - ptr as usize },
10369        16usize,
10370        "Offset of field: ASN1_TEMPLATE_st::field_name"
10371    );
10372    assert_eq!(
10373        unsafe { ::std::ptr::addr_of!((*ptr).item) as usize - ptr as usize },
10374        24usize,
10375        "Offset of field: ASN1_TEMPLATE_st::item"
10376    );
10377}
10378impl Default for ASN1_TEMPLATE_st {
10379    fn default() -> Self {
10380        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10381        unsafe {
10382            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10383            s.assume_init()
10384        }
10385    }
10386}
10387pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
10388pub type ASN1_ADB = ASN1_ADB_st;
10389#[repr(C)]
10390#[derive(Debug, Copy, Clone)]
10391pub struct asn1_must_be_null_st {
10392    _unused: [u8; 0],
10393}
10394pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st;
10395#[repr(C)]
10396#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10397pub struct ASN1_ADB_st {
10398    pub flags: u32,
10399    pub offset: ::std::os::raw::c_ulong,
10400    pub unused: *mut ASN1_MUST_BE_NULL,
10401    pub tbl: *const ASN1_ADB_TABLE,
10402    pub tblcount: ::std::os::raw::c_long,
10403    pub default_tt: *const ASN1_TEMPLATE,
10404    pub null_tt: *const ASN1_TEMPLATE,
10405}
10406#[test]
10407fn bindgen_test_layout_ASN1_ADB_st() {
10408    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_st> = ::std::mem::MaybeUninit::uninit();
10409    let ptr = UNINIT.as_ptr();
10410    assert_eq!(
10411        ::std::mem::size_of::<ASN1_ADB_st>(),
10412        56usize,
10413        "Size of ASN1_ADB_st"
10414    );
10415    assert_eq!(
10416        ::std::mem::align_of::<ASN1_ADB_st>(),
10417        8usize,
10418        "Alignment of ASN1_ADB_st"
10419    );
10420    assert_eq!(
10421        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10422        0usize,
10423        "Offset of field: ASN1_ADB_st::flags"
10424    );
10425    assert_eq!(
10426        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10427        8usize,
10428        "Offset of field: ASN1_ADB_st::offset"
10429    );
10430    assert_eq!(
10431        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
10432        16usize,
10433        "Offset of field: ASN1_ADB_st::unused"
10434    );
10435    assert_eq!(
10436        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
10437        24usize,
10438        "Offset of field: ASN1_ADB_st::tbl"
10439    );
10440    assert_eq!(
10441        unsafe { ::std::ptr::addr_of!((*ptr).tblcount) as usize - ptr as usize },
10442        32usize,
10443        "Offset of field: ASN1_ADB_st::tblcount"
10444    );
10445    assert_eq!(
10446        unsafe { ::std::ptr::addr_of!((*ptr).default_tt) as usize - ptr as usize },
10447        40usize,
10448        "Offset of field: ASN1_ADB_st::default_tt"
10449    );
10450    assert_eq!(
10451        unsafe { ::std::ptr::addr_of!((*ptr).null_tt) as usize - ptr as usize },
10452        48usize,
10453        "Offset of field: ASN1_ADB_st::null_tt"
10454    );
10455}
10456impl Default for ASN1_ADB_st {
10457    fn default() -> Self {
10458        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10459        unsafe {
10460            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10461            s.assume_init()
10462        }
10463    }
10464}
10465#[repr(C)]
10466#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10467pub struct ASN1_ADB_TABLE_st {
10468    pub value: ::std::os::raw::c_int,
10469    pub tt: ASN1_TEMPLATE,
10470}
10471#[test]
10472fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
10473    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_TABLE_st> = ::std::mem::MaybeUninit::uninit();
10474    let ptr = UNINIT.as_ptr();
10475    assert_eq!(
10476        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
10477        40usize,
10478        "Size of ASN1_ADB_TABLE_st"
10479    );
10480    assert_eq!(
10481        ::std::mem::align_of::<ASN1_ADB_TABLE_st>(),
10482        8usize,
10483        "Alignment of ASN1_ADB_TABLE_st"
10484    );
10485    assert_eq!(
10486        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10487        0usize,
10488        "Offset of field: ASN1_ADB_TABLE_st::value"
10489    );
10490    assert_eq!(
10491        unsafe { ::std::ptr::addr_of!((*ptr).tt) as usize - ptr as usize },
10492        8usize,
10493        "Offset of field: ASN1_ADB_TABLE_st::tt"
10494    );
10495}
10496impl Default for ASN1_ADB_TABLE_st {
10497    fn default() -> Self {
10498        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10499        unsafe {
10500            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10501            s.assume_init()
10502        }
10503    }
10504}
10505#[repr(C)]
10506#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10507pub struct ASN1_ITEM_st {
10508    pub itype: ::std::os::raw::c_char,
10509    pub utype: ::std::os::raw::c_int,
10510    pub templates: *const ASN1_TEMPLATE,
10511    pub tcount: ::std::os::raw::c_long,
10512    pub funcs: *const ::std::os::raw::c_void,
10513    pub size: ::std::os::raw::c_long,
10514    pub sname: *const ::std::os::raw::c_char,
10515}
10516#[test]
10517fn bindgen_test_layout_ASN1_ITEM_st() {
10518    const UNINIT: ::std::mem::MaybeUninit<ASN1_ITEM_st> = ::std::mem::MaybeUninit::uninit();
10519    let ptr = UNINIT.as_ptr();
10520    assert_eq!(
10521        ::std::mem::size_of::<ASN1_ITEM_st>(),
10522        48usize,
10523        "Size of ASN1_ITEM_st"
10524    );
10525    assert_eq!(
10526        ::std::mem::align_of::<ASN1_ITEM_st>(),
10527        8usize,
10528        "Alignment of ASN1_ITEM_st"
10529    );
10530    assert_eq!(
10531        unsafe { ::std::ptr::addr_of!((*ptr).itype) as usize - ptr as usize },
10532        0usize,
10533        "Offset of field: ASN1_ITEM_st::itype"
10534    );
10535    assert_eq!(
10536        unsafe { ::std::ptr::addr_of!((*ptr).utype) as usize - ptr as usize },
10537        4usize,
10538        "Offset of field: ASN1_ITEM_st::utype"
10539    );
10540    assert_eq!(
10541        unsafe { ::std::ptr::addr_of!((*ptr).templates) as usize - ptr as usize },
10542        8usize,
10543        "Offset of field: ASN1_ITEM_st::templates"
10544    );
10545    assert_eq!(
10546        unsafe { ::std::ptr::addr_of!((*ptr).tcount) as usize - ptr as usize },
10547        16usize,
10548        "Offset of field: ASN1_ITEM_st::tcount"
10549    );
10550    assert_eq!(
10551        unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize },
10552        24usize,
10553        "Offset of field: ASN1_ITEM_st::funcs"
10554    );
10555    assert_eq!(
10556        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
10557        32usize,
10558        "Offset of field: ASN1_ITEM_st::size"
10559    );
10560    assert_eq!(
10561        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
10562        40usize,
10563        "Offset of field: ASN1_ITEM_st::sname"
10564    );
10565}
10566impl Default for ASN1_ITEM_st {
10567    fn default() -> Self {
10568        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10569        unsafe {
10570            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10571            s.assume_init()
10572        }
10573    }
10574}
10575pub type ASN1_new_func = ::std::option::Option<unsafe extern "C" fn() -> *mut ASN1_VALUE>;
10576pub type ASN1_free_func = ::std::option::Option<unsafe extern "C" fn(a: *mut ASN1_VALUE)>;
10577pub type ASN1_d2i_func = ::std::option::Option<
10578    unsafe extern "C" fn(
10579        a: *mut *mut ASN1_VALUE,
10580        in_: *mut *const ::std::os::raw::c_uchar,
10581        length: ::std::os::raw::c_long,
10582    ) -> *mut ASN1_VALUE,
10583>;
10584pub type ASN1_i2d_func = ::std::option::Option<
10585    unsafe extern "C" fn(
10586        a: *mut ASN1_VALUE,
10587        in_: *mut *mut ::std::os::raw::c_uchar,
10588    ) -> ::std::os::raw::c_int,
10589>;
10590pub type ASN1_ex_d2i = ::std::option::Option<
10591    unsafe extern "C" fn(
10592        pval: *mut *mut ASN1_VALUE,
10593        in_: *mut *const ::std::os::raw::c_uchar,
10594        len: ::std::os::raw::c_long,
10595        it: *const ASN1_ITEM,
10596        tag: ::std::os::raw::c_int,
10597        aclass: ::std::os::raw::c_int,
10598        opt: ::std::os::raw::c_char,
10599        ctx: *mut ASN1_TLC,
10600    ) -> ::std::os::raw::c_int,
10601>;
10602pub type ASN1_ex_i2d = ::std::option::Option<
10603    unsafe extern "C" fn(
10604        pval: *mut *mut ASN1_VALUE,
10605        out: *mut *mut ::std::os::raw::c_uchar,
10606        it: *const ASN1_ITEM,
10607        tag: ::std::os::raw::c_int,
10608        aclass: ::std::os::raw::c_int,
10609    ) -> ::std::os::raw::c_int,
10610>;
10611pub type ASN1_ex_new_func = ::std::option::Option<
10612    unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM) -> ::std::os::raw::c_int,
10613>;
10614pub type ASN1_ex_free_func =
10615    ::std::option::Option<unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM)>;
10616pub type ASN1_ex_print_func = ::std::option::Option<
10617    unsafe extern "C" fn(
10618        out: *mut BIO,
10619        pval: *mut *mut ASN1_VALUE,
10620        indent: ::std::os::raw::c_int,
10621        fname: *const ::std::os::raw::c_char,
10622        pctx: *const ASN1_PCTX,
10623    ) -> ::std::os::raw::c_int,
10624>;
10625#[repr(C)]
10626#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10627pub struct ASN1_EXTERN_FUNCS_st {
10628    pub app_data: *mut ::std::os::raw::c_void,
10629    pub asn1_ex_new: ASN1_ex_new_func,
10630    pub asn1_ex_free: ASN1_ex_free_func,
10631    pub asn1_ex_d2i: ASN1_ex_d2i,
10632    pub asn1_ex_i2d: ASN1_ex_i2d,
10633    pub asn1_ex_print: ASN1_ex_print_func,
10634}
10635#[test]
10636fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st() {
10637    const UNINIT: ::std::mem::MaybeUninit<ASN1_EXTERN_FUNCS_st> = ::std::mem::MaybeUninit::uninit();
10638    let ptr = UNINIT.as_ptr();
10639    assert_eq!(
10640        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
10641        48usize,
10642        "Size of ASN1_EXTERN_FUNCS_st"
10643    );
10644    assert_eq!(
10645        ::std::mem::align_of::<ASN1_EXTERN_FUNCS_st>(),
10646        8usize,
10647        "Alignment of ASN1_EXTERN_FUNCS_st"
10648    );
10649    assert_eq!(
10650        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10651        0usize,
10652        "Offset of field: ASN1_EXTERN_FUNCS_st::app_data"
10653    );
10654    assert_eq!(
10655        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_new) as usize - ptr as usize },
10656        8usize,
10657        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_new"
10658    );
10659    assert_eq!(
10660        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_free) as usize - ptr as usize },
10661        16usize,
10662        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_free"
10663    );
10664    assert_eq!(
10665        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_d2i) as usize - ptr as usize },
10666        24usize,
10667        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_d2i"
10668    );
10669    assert_eq!(
10670        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_i2d) as usize - ptr as usize },
10671        32usize,
10672        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_i2d"
10673    );
10674    assert_eq!(
10675        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_print) as usize - ptr as usize },
10676        40usize,
10677        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_print"
10678    );
10679}
10680impl Default for ASN1_EXTERN_FUNCS_st {
10681    fn default() -> Self {
10682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10683        unsafe {
10684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10685            s.assume_init()
10686        }
10687    }
10688}
10689pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st;
10690pub type ASN1_aux_cb = ::std::option::Option<
10691    unsafe extern "C" fn(
10692        operation: ::std::os::raw::c_int,
10693        in_: *mut *mut ASN1_VALUE,
10694        it: *const ASN1_ITEM,
10695        exarg: *mut ::std::os::raw::c_void,
10696    ) -> ::std::os::raw::c_int,
10697>;
10698#[repr(C)]
10699#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10700pub struct ASN1_AUX_st {
10701    pub app_data: *mut ::std::os::raw::c_void,
10702    pub flags: u32,
10703    pub ref_offset: ::std::os::raw::c_int,
10704    pub asn1_cb: ASN1_aux_cb,
10705    pub enc_offset: ::std::os::raw::c_int,
10706}
10707#[test]
10708fn bindgen_test_layout_ASN1_AUX_st() {
10709    const UNINIT: ::std::mem::MaybeUninit<ASN1_AUX_st> = ::std::mem::MaybeUninit::uninit();
10710    let ptr = UNINIT.as_ptr();
10711    assert_eq!(
10712        ::std::mem::size_of::<ASN1_AUX_st>(),
10713        32usize,
10714        "Size of ASN1_AUX_st"
10715    );
10716    assert_eq!(
10717        ::std::mem::align_of::<ASN1_AUX_st>(),
10718        8usize,
10719        "Alignment of ASN1_AUX_st"
10720    );
10721    assert_eq!(
10722        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10723        0usize,
10724        "Offset of field: ASN1_AUX_st::app_data"
10725    );
10726    assert_eq!(
10727        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10728        8usize,
10729        "Offset of field: ASN1_AUX_st::flags"
10730    );
10731    assert_eq!(
10732        unsafe { ::std::ptr::addr_of!((*ptr).ref_offset) as usize - ptr as usize },
10733        12usize,
10734        "Offset of field: ASN1_AUX_st::ref_offset"
10735    );
10736    assert_eq!(
10737        unsafe { ::std::ptr::addr_of!((*ptr).asn1_cb) as usize - ptr as usize },
10738        16usize,
10739        "Offset of field: ASN1_AUX_st::asn1_cb"
10740    );
10741    assert_eq!(
10742        unsafe { ::std::ptr::addr_of!((*ptr).enc_offset) as usize - ptr as usize },
10743        24usize,
10744        "Offset of field: ASN1_AUX_st::enc_offset"
10745    );
10746}
10747impl Default for ASN1_AUX_st {
10748    fn default() -> Self {
10749        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10750        unsafe {
10751            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10752            s.assume_init()
10753        }
10754    }
10755}
10756pub type ASN1_AUX = ASN1_AUX_st;
10757extern "C" {
10758    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_SEQUENCE_it"]
10759    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
10760}
10761#[repr(C)]
10762#[derive(Debug, Copy, Clone)]
10763pub struct stack_st_ASN1_VALUE {
10764    _unused: [u8; 0],
10765}
10766pub type sk_ASN1_VALUE_free_func =
10767    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
10768pub type sk_ASN1_VALUE_copy_func =
10769    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
10770pub type sk_ASN1_VALUE_cmp_func = ::std::option::Option<
10771    unsafe extern "C" fn(
10772        arg1: *const *const ASN1_VALUE,
10773        arg2: *const *const ASN1_VALUE,
10774    ) -> ::std::os::raw::c_int,
10775>;
10776pub type sk_ASN1_VALUE_delete_if_func = ::std::option::Option<
10777    unsafe extern "C" fn(
10778        arg1: *mut ASN1_VALUE,
10779        arg2: *mut ::std::os::raw::c_void,
10780    ) -> ::std::os::raw::c_int,
10781>;
10782extern "C" {
10783    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncodeBlock"]
10784    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
10785}
10786extern "C" {
10787    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncodedLength"]
10788    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10789}
10790extern "C" {
10791    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodedLength"]
10792    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10793}
10794extern "C" {
10795    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodeBase64"]
10796    pub fn EVP_DecodeBase64(
10797        out: *mut u8,
10798        out_len: *mut usize,
10799        max_out: usize,
10800        in_: *const u8,
10801        in_len: usize,
10802    ) -> ::std::os::raw::c_int;
10803}
10804extern "C" {
10805    #[link_name = "\u{1}aws_lc_0_36_0_EVP_ENCODE_CTX_new"]
10806    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
10807}
10808extern "C" {
10809    #[link_name = "\u{1}aws_lc_0_36_0_EVP_ENCODE_CTX_free"]
10810    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
10811}
10812extern "C" {
10813    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncodeInit"]
10814    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
10815}
10816extern "C" {
10817    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncodeUpdate"]
10818    pub fn EVP_EncodeUpdate(
10819        ctx: *mut EVP_ENCODE_CTX,
10820        out: *mut u8,
10821        out_len: *mut ::std::os::raw::c_int,
10822        in_: *const u8,
10823        in_len: usize,
10824    ) -> ::std::os::raw::c_int;
10825}
10826extern "C" {
10827    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncodeFinal"]
10828    pub fn EVP_EncodeFinal(
10829        ctx: *mut EVP_ENCODE_CTX,
10830        out: *mut u8,
10831        out_len: *mut ::std::os::raw::c_int,
10832    );
10833}
10834extern "C" {
10835    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodeInit"]
10836    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
10837}
10838extern "C" {
10839    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodeUpdate"]
10840    pub fn EVP_DecodeUpdate(
10841        ctx: *mut EVP_ENCODE_CTX,
10842        out: *mut u8,
10843        out_len: *mut ::std::os::raw::c_int,
10844        in_: *const u8,
10845        in_len: usize,
10846    ) -> ::std::os::raw::c_int;
10847}
10848extern "C" {
10849    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodeFinal"]
10850    pub fn EVP_DecodeFinal(
10851        ctx: *mut EVP_ENCODE_CTX,
10852        out: *mut u8,
10853        out_len: *mut ::std::os::raw::c_int,
10854    ) -> ::std::os::raw::c_int;
10855}
10856extern "C" {
10857    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecodeBlock"]
10858    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
10859}
10860#[repr(C)]
10861#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10862pub struct evp_encode_ctx_st {
10863    pub data_used: ::std::os::raw::c_uint,
10864    pub data: [u8; 48usize],
10865    pub eof_seen: ::std::os::raw::c_char,
10866    pub error_encountered: ::std::os::raw::c_char,
10867}
10868#[test]
10869fn bindgen_test_layout_evp_encode_ctx_st() {
10870    const UNINIT: ::std::mem::MaybeUninit<evp_encode_ctx_st> = ::std::mem::MaybeUninit::uninit();
10871    let ptr = UNINIT.as_ptr();
10872    assert_eq!(
10873        ::std::mem::size_of::<evp_encode_ctx_st>(),
10874        56usize,
10875        "Size of evp_encode_ctx_st"
10876    );
10877    assert_eq!(
10878        ::std::mem::align_of::<evp_encode_ctx_st>(),
10879        4usize,
10880        "Alignment of evp_encode_ctx_st"
10881    );
10882    assert_eq!(
10883        unsafe { ::std::ptr::addr_of!((*ptr).data_used) as usize - ptr as usize },
10884        0usize,
10885        "Offset of field: evp_encode_ctx_st::data_used"
10886    );
10887    assert_eq!(
10888        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
10889        4usize,
10890        "Offset of field: evp_encode_ctx_st::data"
10891    );
10892    assert_eq!(
10893        unsafe { ::std::ptr::addr_of!((*ptr).eof_seen) as usize - ptr as usize },
10894        52usize,
10895        "Offset of field: evp_encode_ctx_st::eof_seen"
10896    );
10897    assert_eq!(
10898        unsafe { ::std::ptr::addr_of!((*ptr).error_encountered) as usize - ptr as usize },
10899        53usize,
10900        "Offset of field: evp_encode_ctx_st::error_encountered"
10901    );
10902}
10903impl Default for evp_encode_ctx_st {
10904    fn default() -> Self {
10905        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10906        unsafe {
10907            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10908            s.assume_init()
10909        }
10910    }
10911}
10912#[repr(C)]
10913#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10914pub struct blake2b_state_st {
10915    pub h: [u64; 8usize],
10916    pub t_low: u64,
10917    pub t_high: u64,
10918    pub block: [u8; 128usize],
10919    pub block_used: usize,
10920}
10921#[test]
10922fn bindgen_test_layout_blake2b_state_st() {
10923    const UNINIT: ::std::mem::MaybeUninit<blake2b_state_st> = ::std::mem::MaybeUninit::uninit();
10924    let ptr = UNINIT.as_ptr();
10925    assert_eq!(
10926        ::std::mem::size_of::<blake2b_state_st>(),
10927        216usize,
10928        "Size of blake2b_state_st"
10929    );
10930    assert_eq!(
10931        ::std::mem::align_of::<blake2b_state_st>(),
10932        8usize,
10933        "Alignment of blake2b_state_st"
10934    );
10935    assert_eq!(
10936        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
10937        0usize,
10938        "Offset of field: blake2b_state_st::h"
10939    );
10940    assert_eq!(
10941        unsafe { ::std::ptr::addr_of!((*ptr).t_low) as usize - ptr as usize },
10942        64usize,
10943        "Offset of field: blake2b_state_st::t_low"
10944    );
10945    assert_eq!(
10946        unsafe { ::std::ptr::addr_of!((*ptr).t_high) as usize - ptr as usize },
10947        72usize,
10948        "Offset of field: blake2b_state_st::t_high"
10949    );
10950    assert_eq!(
10951        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
10952        80usize,
10953        "Offset of field: blake2b_state_st::block"
10954    );
10955    assert_eq!(
10956        unsafe { ::std::ptr::addr_of!((*ptr).block_used) as usize - ptr as usize },
10957        208usize,
10958        "Offset of field: blake2b_state_st::block_used"
10959    );
10960}
10961impl Default for blake2b_state_st {
10962    fn default() -> Self {
10963        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10964        unsafe {
10965            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10966            s.assume_init()
10967        }
10968    }
10969}
10970extern "C" {
10971    #[link_name = "\u{1}aws_lc_0_36_0_BLAKE2B256_Init"]
10972    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
10973}
10974extern "C" {
10975    #[link_name = "\u{1}aws_lc_0_36_0_BLAKE2B256_Update"]
10976    pub fn BLAKE2B256_Update(
10977        b2b: *mut BLAKE2B_CTX,
10978        data: *const ::std::os::raw::c_void,
10979        len: usize,
10980    );
10981}
10982extern "C" {
10983    #[link_name = "\u{1}aws_lc_0_36_0_BLAKE2B256_Final"]
10984    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
10985}
10986extern "C" {
10987    #[link_name = "\u{1}aws_lc_0_36_0_BLAKE2B256"]
10988    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
10989}
10990#[repr(C)]
10991#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10992pub struct bf_key_st {
10993    pub P: [u32; 18usize],
10994    pub S: [u32; 1024usize],
10995}
10996#[test]
10997fn bindgen_test_layout_bf_key_st() {
10998    const UNINIT: ::std::mem::MaybeUninit<bf_key_st> = ::std::mem::MaybeUninit::uninit();
10999    let ptr = UNINIT.as_ptr();
11000    assert_eq!(
11001        ::std::mem::size_of::<bf_key_st>(),
11002        4168usize,
11003        "Size of bf_key_st"
11004    );
11005    assert_eq!(
11006        ::std::mem::align_of::<bf_key_st>(),
11007        4usize,
11008        "Alignment of bf_key_st"
11009    );
11010    assert_eq!(
11011        unsafe { ::std::ptr::addr_of!((*ptr).P) as usize - ptr as usize },
11012        0usize,
11013        "Offset of field: bf_key_st::P"
11014    );
11015    assert_eq!(
11016        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
11017        72usize,
11018        "Offset of field: bf_key_st::S"
11019    );
11020}
11021impl Default for bf_key_st {
11022    fn default() -> Self {
11023        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11024        unsafe {
11025            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11026            s.assume_init()
11027        }
11028    }
11029}
11030pub type BF_KEY = bf_key_st;
11031extern "C" {
11032    #[link_name = "\u{1}aws_lc_0_36_0_BF_set_key"]
11033    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
11034}
11035extern "C" {
11036    #[link_name = "\u{1}aws_lc_0_36_0_BF_encrypt"]
11037    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
11038}
11039extern "C" {
11040    #[link_name = "\u{1}aws_lc_0_36_0_BF_decrypt"]
11041    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
11042}
11043extern "C" {
11044    #[link_name = "\u{1}aws_lc_0_36_0_BF_ecb_encrypt"]
11045    pub fn BF_ecb_encrypt(
11046        in_: *const u8,
11047        out: *mut u8,
11048        key: *const BF_KEY,
11049        enc: ::std::os::raw::c_int,
11050    );
11051}
11052extern "C" {
11053    #[link_name = "\u{1}aws_lc_0_36_0_BF_cbc_encrypt"]
11054    pub fn BF_cbc_encrypt(
11055        in_: *const u8,
11056        out: *mut u8,
11057        length: usize,
11058        schedule: *const BF_KEY,
11059        ivec: *mut u8,
11060        enc: ::std::os::raw::c_int,
11061    );
11062}
11063extern "C" {
11064    #[link_name = "\u{1}aws_lc_0_36_0_BF_cfb64_encrypt"]
11065    pub fn BF_cfb64_encrypt(
11066        in_: *const u8,
11067        out: *mut u8,
11068        length: usize,
11069        schedule: *const BF_KEY,
11070        ivec: *mut u8,
11071        num: *mut ::std::os::raw::c_int,
11072        encrypt: ::std::os::raw::c_int,
11073    );
11074}
11075extern "C" {
11076    #[link_name = "\u{1}aws_lc_0_36_0_BF_ofb64_encrypt"]
11077    pub fn BF_ofb64_encrypt(
11078        in_: *const u8,
11079        out: *mut u8,
11080        length: usize,
11081        schedule: *const BF_KEY,
11082        ivec: *mut u8,
11083        num: *mut ::std::os::raw::c_int,
11084    );
11085}
11086#[repr(C)]
11087#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11088pub struct cbs_st {
11089    pub data: *const u8,
11090    pub len: usize,
11091}
11092#[test]
11093fn bindgen_test_layout_cbs_st() {
11094    const UNINIT: ::std::mem::MaybeUninit<cbs_st> = ::std::mem::MaybeUninit::uninit();
11095    let ptr = UNINIT.as_ptr();
11096    assert_eq!(::std::mem::size_of::<cbs_st>(), 16usize, "Size of cbs_st");
11097    assert_eq!(
11098        ::std::mem::align_of::<cbs_st>(),
11099        8usize,
11100        "Alignment of cbs_st"
11101    );
11102    assert_eq!(
11103        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
11104        0usize,
11105        "Offset of field: cbs_st::data"
11106    );
11107    assert_eq!(
11108        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11109        8usize,
11110        "Offset of field: cbs_st::len"
11111    );
11112}
11113impl Default for cbs_st {
11114    fn default() -> Self {
11115        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11116        unsafe {
11117            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11118            s.assume_init()
11119        }
11120    }
11121}
11122extern "C" {
11123    #[link_name = "\u{1}aws_lc_0_36_0_CBS_init"]
11124    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
11125}
11126extern "C" {
11127    #[link_name = "\u{1}aws_lc_0_36_0_CBS_skip"]
11128    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11129}
11130extern "C" {
11131    #[link_name = "\u{1}aws_lc_0_36_0_CBS_data"]
11132    pub fn CBS_data(cbs: *const CBS) -> *const u8;
11133}
11134extern "C" {
11135    #[link_name = "\u{1}aws_lc_0_36_0_CBS_len"]
11136    pub fn CBS_len(cbs: *const CBS) -> usize;
11137}
11138extern "C" {
11139    #[link_name = "\u{1}aws_lc_0_36_0_CBS_stow"]
11140    pub fn CBS_stow(
11141        cbs: *const CBS,
11142        out_ptr: *mut *mut u8,
11143        out_len: *mut usize,
11144    ) -> ::std::os::raw::c_int;
11145}
11146extern "C" {
11147    #[link_name = "\u{1}aws_lc_0_36_0_CBS_strdup"]
11148    pub fn CBS_strdup(
11149        cbs: *const CBS,
11150        out_ptr: *mut *mut ::std::os::raw::c_char,
11151    ) -> ::std::os::raw::c_int;
11152}
11153extern "C" {
11154    #[link_name = "\u{1}aws_lc_0_36_0_CBS_contains_zero_byte"]
11155    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
11156}
11157extern "C" {
11158    #[link_name = "\u{1}aws_lc_0_36_0_CBS_mem_equal"]
11159    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11160}
11161extern "C" {
11162    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u8"]
11163    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11164}
11165extern "C" {
11166    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u16"]
11167    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11168}
11169extern "C" {
11170    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u16le"]
11171    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11172}
11173extern "C" {
11174    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u24"]
11175    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11176}
11177extern "C" {
11178    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u32"]
11179    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11180}
11181extern "C" {
11182    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u32le"]
11183    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11184}
11185extern "C" {
11186    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u64"]
11187    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11188}
11189extern "C" {
11190    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u64le"]
11191    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11192}
11193extern "C" {
11194    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_last_u8"]
11195    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11196}
11197extern "C" {
11198    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_bytes"]
11199    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11200}
11201extern "C" {
11202    #[link_name = "\u{1}aws_lc_0_36_0_CBS_copy_bytes"]
11203    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
11204}
11205extern "C" {
11206    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u8_length_prefixed"]
11207    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11208}
11209extern "C" {
11210    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u16_length_prefixed"]
11211    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11212}
11213extern "C" {
11214    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u24_length_prefixed"]
11215    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11216}
11217extern "C" {
11218    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_until_first"]
11219    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::std::os::raw::c_int;
11220}
11221extern "C" {
11222    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_u64_decimal"]
11223    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11224}
11225extern "C" {
11226    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_asn1"]
11227    pub fn CBS_get_asn1(
11228        cbs: *mut CBS,
11229        out: *mut CBS,
11230        tag_value: CBS_ASN1_TAG,
11231    ) -> ::std::os::raw::c_int;
11232}
11233extern "C" {
11234    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_asn1_element"]
11235    pub fn CBS_get_asn1_element(
11236        cbs: *mut CBS,
11237        out: *mut CBS,
11238        tag_value: CBS_ASN1_TAG,
11239    ) -> ::std::os::raw::c_int;
11240}
11241extern "C" {
11242    #[link_name = "\u{1}aws_lc_0_36_0_CBS_peek_asn1_tag"]
11243    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::std::os::raw::c_int;
11244}
11245extern "C" {
11246    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_any_asn1"]
11247    pub fn CBS_get_any_asn1(
11248        cbs: *mut CBS,
11249        out: *mut CBS,
11250        out_tag: *mut CBS_ASN1_TAG,
11251    ) -> ::std::os::raw::c_int;
11252}
11253extern "C" {
11254    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_any_asn1_element"]
11255    pub fn CBS_get_any_asn1_element(
11256        cbs: *mut CBS,
11257        out: *mut CBS,
11258        out_tag: *mut CBS_ASN1_TAG,
11259        out_header_len: *mut usize,
11260    ) -> ::std::os::raw::c_int;
11261}
11262extern "C" {
11263    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_any_ber_asn1_element"]
11264    pub fn CBS_get_any_ber_asn1_element(
11265        cbs: *mut CBS,
11266        out: *mut CBS,
11267        out_tag: *mut CBS_ASN1_TAG,
11268        out_header_len: *mut usize,
11269        out_ber_found: *mut ::std::os::raw::c_int,
11270        out_indefinite: *mut ::std::os::raw::c_int,
11271    ) -> ::std::os::raw::c_int;
11272}
11273extern "C" {
11274    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_asn1_uint64"]
11275    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11276}
11277extern "C" {
11278    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_asn1_int64"]
11279    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::std::os::raw::c_int;
11280}
11281extern "C" {
11282    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_asn1_bool"]
11283    pub fn CBS_get_asn1_bool(
11284        cbs: *mut CBS,
11285        out: *mut ::std::os::raw::c_int,
11286    ) -> ::std::os::raw::c_int;
11287}
11288extern "C" {
11289    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_optional_asn1"]
11290    pub fn CBS_get_optional_asn1(
11291        cbs: *mut CBS,
11292        out: *mut CBS,
11293        out_present: *mut ::std::os::raw::c_int,
11294        tag: CBS_ASN1_TAG,
11295    ) -> ::std::os::raw::c_int;
11296}
11297extern "C" {
11298    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_optional_asn1_octet_string"]
11299    pub fn CBS_get_optional_asn1_octet_string(
11300        cbs: *mut CBS,
11301        out: *mut CBS,
11302        out_present: *mut ::std::os::raw::c_int,
11303        tag: CBS_ASN1_TAG,
11304    ) -> ::std::os::raw::c_int;
11305}
11306extern "C" {
11307    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_optional_asn1_uint64"]
11308    pub fn CBS_get_optional_asn1_uint64(
11309        cbs: *mut CBS,
11310        out: *mut u64,
11311        tag: CBS_ASN1_TAG,
11312        default_value: u64,
11313    ) -> ::std::os::raw::c_int;
11314}
11315extern "C" {
11316    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_optional_asn1_bool"]
11317    pub fn CBS_get_optional_asn1_bool(
11318        cbs: *mut CBS,
11319        out: *mut ::std::os::raw::c_int,
11320        tag: CBS_ASN1_TAG,
11321        default_value: ::std::os::raw::c_int,
11322    ) -> ::std::os::raw::c_int;
11323}
11324extern "C" {
11325    #[link_name = "\u{1}aws_lc_0_36_0_CBS_is_valid_asn1_bitstring"]
11326    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
11327}
11328extern "C" {
11329    #[link_name = "\u{1}aws_lc_0_36_0_CBS_asn1_bitstring_has_bit"]
11330    pub fn CBS_asn1_bitstring_has_bit(
11331        cbs: *const CBS,
11332        bit: ::std::os::raw::c_uint,
11333    ) -> ::std::os::raw::c_int;
11334}
11335extern "C" {
11336    #[link_name = "\u{1}aws_lc_0_36_0_CBS_is_valid_asn1_integer"]
11337    pub fn CBS_is_valid_asn1_integer(
11338        cbs: *const CBS,
11339        out_is_negative: *mut ::std::os::raw::c_int,
11340    ) -> ::std::os::raw::c_int;
11341}
11342extern "C" {
11343    #[link_name = "\u{1}aws_lc_0_36_0_CBS_is_unsigned_asn1_integer"]
11344    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::std::os::raw::c_int;
11345}
11346extern "C" {
11347    #[link_name = "\u{1}aws_lc_0_36_0_CBS_is_valid_asn1_oid"]
11348    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::std::os::raw::c_int;
11349}
11350extern "C" {
11351    #[link_name = "\u{1}aws_lc_0_36_0_CBS_asn1_oid_to_text"]
11352    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
11353}
11354extern "C" {
11355    #[link_name = "\u{1}aws_lc_0_36_0_CBS_parse_generalized_time"]
11356    pub fn CBS_parse_generalized_time(
11357        cbs: *const CBS,
11358        out_tm: *mut tm,
11359        allow_timezone_offset: ::std::os::raw::c_int,
11360    ) -> ::std::os::raw::c_int;
11361}
11362extern "C" {
11363    #[link_name = "\u{1}aws_lc_0_36_0_CBS_parse_utc_time"]
11364    pub fn CBS_parse_utc_time(
11365        cbs: *const CBS,
11366        out_tm: *mut tm,
11367        allow_timezone_offset: ::std::os::raw::c_int,
11368    ) -> ::std::os::raw::c_int;
11369}
11370extern "C" {
11371    #[link_name = "\u{1}aws_lc_0_36_0_CBS_get_optional_asn1_int64"]
11372    pub fn CBS_get_optional_asn1_int64(
11373        cbs: *mut CBS,
11374        out: *mut i64,
11375        tag: CBS_ASN1_TAG,
11376        default_value: i64,
11377    ) -> ::std::os::raw::c_int;
11378}
11379#[repr(C)]
11380#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11381pub struct cbb_buffer_st {
11382    pub buf: *mut u8,
11383    pub len: usize,
11384    pub cap: usize,
11385    pub _bitfield_align_1: [u8; 0],
11386    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11387    pub __bindgen_padding_0: [u8; 7usize],
11388}
11389#[test]
11390fn bindgen_test_layout_cbb_buffer_st() {
11391    const UNINIT: ::std::mem::MaybeUninit<cbb_buffer_st> = ::std::mem::MaybeUninit::uninit();
11392    let ptr = UNINIT.as_ptr();
11393    assert_eq!(
11394        ::std::mem::size_of::<cbb_buffer_st>(),
11395        32usize,
11396        "Size of cbb_buffer_st"
11397    );
11398    assert_eq!(
11399        ::std::mem::align_of::<cbb_buffer_st>(),
11400        8usize,
11401        "Alignment of cbb_buffer_st"
11402    );
11403    assert_eq!(
11404        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
11405        0usize,
11406        "Offset of field: cbb_buffer_st::buf"
11407    );
11408    assert_eq!(
11409        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11410        8usize,
11411        "Offset of field: cbb_buffer_st::len"
11412    );
11413    assert_eq!(
11414        unsafe { ::std::ptr::addr_of!((*ptr).cap) as usize - ptr as usize },
11415        16usize,
11416        "Offset of field: cbb_buffer_st::cap"
11417    );
11418}
11419impl Default for cbb_buffer_st {
11420    fn default() -> Self {
11421        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11422        unsafe {
11423            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11424            s.assume_init()
11425        }
11426    }
11427}
11428impl cbb_buffer_st {
11429    #[inline]
11430    pub fn can_resize(&self) -> ::std::os::raw::c_uint {
11431        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11432    }
11433    #[inline]
11434    pub fn set_can_resize(&mut self, val: ::std::os::raw::c_uint) {
11435        unsafe {
11436            let val: u32 = ::std::mem::transmute(val);
11437            self._bitfield_1.set(0usize, 1u8, val as u64)
11438        }
11439    }
11440    #[inline]
11441    pub unsafe fn can_resize_raw(this: *const Self) -> ::std::os::raw::c_uint {
11442        unsafe {
11443            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11444                ::std::ptr::addr_of!((*this)._bitfield_1),
11445                0usize,
11446                1u8,
11447            ) as u32)
11448        }
11449    }
11450    #[inline]
11451    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11452        unsafe {
11453            let val: u32 = ::std::mem::transmute(val);
11454            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11455                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11456                0usize,
11457                1u8,
11458                val as u64,
11459            )
11460        }
11461    }
11462    #[inline]
11463    pub fn error(&self) -> ::std::os::raw::c_uint {
11464        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11465    }
11466    #[inline]
11467    pub fn set_error(&mut self, val: ::std::os::raw::c_uint) {
11468        unsafe {
11469            let val: u32 = ::std::mem::transmute(val);
11470            self._bitfield_1.set(1usize, 1u8, val as u64)
11471        }
11472    }
11473    #[inline]
11474    pub unsafe fn error_raw(this: *const Self) -> ::std::os::raw::c_uint {
11475        unsafe {
11476            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11477                ::std::ptr::addr_of!((*this)._bitfield_1),
11478                1usize,
11479                1u8,
11480            ) as u32)
11481        }
11482    }
11483    #[inline]
11484    pub unsafe fn set_error_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11485        unsafe {
11486            let val: u32 = ::std::mem::transmute(val);
11487            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11488                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11489                1usize,
11490                1u8,
11491                val as u64,
11492            )
11493        }
11494    }
11495    #[inline]
11496    pub fn new_bitfield_1(
11497        can_resize: ::std::os::raw::c_uint,
11498        error: ::std::os::raw::c_uint,
11499    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11500        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11501        __bindgen_bitfield_unit.set(0usize, 1u8, {
11502            let can_resize: u32 = unsafe { ::std::mem::transmute(can_resize) };
11503            can_resize as u64
11504        });
11505        __bindgen_bitfield_unit.set(1usize, 1u8, {
11506            let error: u32 = unsafe { ::std::mem::transmute(error) };
11507            error as u64
11508        });
11509        __bindgen_bitfield_unit
11510    }
11511}
11512#[repr(C)]
11513#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11514pub struct cbb_child_st {
11515    pub base: *mut cbb_buffer_st,
11516    pub offset: usize,
11517    pub pending_len_len: u8,
11518    pub _bitfield_align_1: [u8; 0],
11519    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11520    pub __bindgen_padding_0: [u16; 3usize],
11521}
11522#[test]
11523fn bindgen_test_layout_cbb_child_st() {
11524    const UNINIT: ::std::mem::MaybeUninit<cbb_child_st> = ::std::mem::MaybeUninit::uninit();
11525    let ptr = UNINIT.as_ptr();
11526    assert_eq!(
11527        ::std::mem::size_of::<cbb_child_st>(),
11528        24usize,
11529        "Size of cbb_child_st"
11530    );
11531    assert_eq!(
11532        ::std::mem::align_of::<cbb_child_st>(),
11533        8usize,
11534        "Alignment of cbb_child_st"
11535    );
11536    assert_eq!(
11537        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11538        0usize,
11539        "Offset of field: cbb_child_st::base"
11540    );
11541    assert_eq!(
11542        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
11543        8usize,
11544        "Offset of field: cbb_child_st::offset"
11545    );
11546    assert_eq!(
11547        unsafe { ::std::ptr::addr_of!((*ptr).pending_len_len) as usize - ptr as usize },
11548        16usize,
11549        "Offset of field: cbb_child_st::pending_len_len"
11550    );
11551}
11552impl Default for cbb_child_st {
11553    fn default() -> Self {
11554        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11555        unsafe {
11556            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11557            s.assume_init()
11558        }
11559    }
11560}
11561impl cbb_child_st {
11562    #[inline]
11563    pub fn pending_is_asn1(&self) -> ::std::os::raw::c_uint {
11564        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11565    }
11566    #[inline]
11567    pub fn set_pending_is_asn1(&mut self, val: ::std::os::raw::c_uint) {
11568        unsafe {
11569            let val: u32 = ::std::mem::transmute(val);
11570            self._bitfield_1.set(0usize, 1u8, val as u64)
11571        }
11572    }
11573    #[inline]
11574    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::std::os::raw::c_uint {
11575        unsafe {
11576            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11577                ::std::ptr::addr_of!((*this)._bitfield_1),
11578                0usize,
11579                1u8,
11580            ) as u32)
11581        }
11582    }
11583    #[inline]
11584    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11585        unsafe {
11586            let val: u32 = ::std::mem::transmute(val);
11587            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11588                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11589                0usize,
11590                1u8,
11591                val as u64,
11592            )
11593        }
11594    }
11595    #[inline]
11596    pub fn new_bitfield_1(
11597        pending_is_asn1: ::std::os::raw::c_uint,
11598    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11599        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11600        __bindgen_bitfield_unit.set(0usize, 1u8, {
11601            let pending_is_asn1: u32 = unsafe { ::std::mem::transmute(pending_is_asn1) };
11602            pending_is_asn1 as u64
11603        });
11604        __bindgen_bitfield_unit
11605    }
11606}
11607#[repr(C)]
11608#[derive(Copy, Clone)]
11609pub struct cbb_st {
11610    pub child: *mut CBB,
11611    pub is_child: ::std::os::raw::c_char,
11612    pub u: cbb_st__bindgen_ty_1,
11613}
11614#[repr(C)]
11615#[derive(Copy, Clone)]
11616pub union cbb_st__bindgen_ty_1 {
11617    pub base: cbb_buffer_st,
11618    pub child: cbb_child_st,
11619}
11620#[test]
11621fn bindgen_test_layout_cbb_st__bindgen_ty_1() {
11622    const UNINIT: ::std::mem::MaybeUninit<cbb_st__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
11623    let ptr = UNINIT.as_ptr();
11624    assert_eq!(
11625        ::std::mem::size_of::<cbb_st__bindgen_ty_1>(),
11626        32usize,
11627        "Size of cbb_st__bindgen_ty_1"
11628    );
11629    assert_eq!(
11630        ::std::mem::align_of::<cbb_st__bindgen_ty_1>(),
11631        8usize,
11632        "Alignment of cbb_st__bindgen_ty_1"
11633    );
11634    assert_eq!(
11635        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11636        0usize,
11637        "Offset of field: cbb_st__bindgen_ty_1::base"
11638    );
11639    assert_eq!(
11640        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11641        0usize,
11642        "Offset of field: cbb_st__bindgen_ty_1::child"
11643    );
11644}
11645impl Default for cbb_st__bindgen_ty_1 {
11646    fn default() -> Self {
11647        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11648        unsafe {
11649            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11650            s.assume_init()
11651        }
11652    }
11653}
11654#[test]
11655fn bindgen_test_layout_cbb_st() {
11656    const UNINIT: ::std::mem::MaybeUninit<cbb_st> = ::std::mem::MaybeUninit::uninit();
11657    let ptr = UNINIT.as_ptr();
11658    assert_eq!(::std::mem::size_of::<cbb_st>(), 48usize, "Size of cbb_st");
11659    assert_eq!(
11660        ::std::mem::align_of::<cbb_st>(),
11661        8usize,
11662        "Alignment of cbb_st"
11663    );
11664    assert_eq!(
11665        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11666        0usize,
11667        "Offset of field: cbb_st::child"
11668    );
11669    assert_eq!(
11670        unsafe { ::std::ptr::addr_of!((*ptr).is_child) as usize - ptr as usize },
11671        8usize,
11672        "Offset of field: cbb_st::is_child"
11673    );
11674    assert_eq!(
11675        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
11676        16usize,
11677        "Offset of field: cbb_st::u"
11678    );
11679}
11680impl Default for cbb_st {
11681    fn default() -> Self {
11682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11683        unsafe {
11684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11685            s.assume_init()
11686        }
11687    }
11688}
11689extern "C" {
11690    #[link_name = "\u{1}aws_lc_0_36_0_CBB_zero"]
11691    pub fn CBB_zero(cbb: *mut CBB);
11692}
11693extern "C" {
11694    #[link_name = "\u{1}aws_lc_0_36_0_CBB_init"]
11695    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
11696}
11697extern "C" {
11698    #[link_name = "\u{1}aws_lc_0_36_0_CBB_init_fixed"]
11699    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
11700}
11701extern "C" {
11702    #[link_name = "\u{1}aws_lc_0_36_0_CBB_cleanup"]
11703    pub fn CBB_cleanup(cbb: *mut CBB);
11704}
11705extern "C" {
11706    #[link_name = "\u{1}aws_lc_0_36_0_CBB_finish"]
11707    pub fn CBB_finish(
11708        cbb: *mut CBB,
11709        out_data: *mut *mut u8,
11710        out_len: *mut usize,
11711    ) -> ::std::os::raw::c_int;
11712}
11713extern "C" {
11714    #[link_name = "\u{1}aws_lc_0_36_0_CBB_flush"]
11715    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
11716}
11717extern "C" {
11718    #[link_name = "\u{1}aws_lc_0_36_0_CBB_data"]
11719    pub fn CBB_data(cbb: *const CBB) -> *const u8;
11720}
11721extern "C" {
11722    #[link_name = "\u{1}aws_lc_0_36_0_CBB_len"]
11723    pub fn CBB_len(cbb: *const CBB) -> usize;
11724}
11725extern "C" {
11726    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u8_length_prefixed"]
11727    pub fn CBB_add_u8_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_36_0_CBB_add_u16_length_prefixed"]
11734    pub fn CBB_add_u16_length_prefixed(
11735        cbb: *mut CBB,
11736        out_contents: *mut CBB,
11737    ) -> ::std::os::raw::c_int;
11738}
11739extern "C" {
11740    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u24_length_prefixed"]
11741    pub fn CBB_add_u24_length_prefixed(
11742        cbb: *mut CBB,
11743        out_contents: *mut CBB,
11744    ) -> ::std::os::raw::c_int;
11745}
11746extern "C" {
11747    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1"]
11748    pub fn CBB_add_asn1(
11749        cbb: *mut CBB,
11750        out_contents: *mut CBB,
11751        tag: CBS_ASN1_TAG,
11752    ) -> ::std::os::raw::c_int;
11753}
11754extern "C" {
11755    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_bytes"]
11756    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11757}
11758extern "C" {
11759    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_zeros"]
11760    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11761}
11762extern "C" {
11763    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_space"]
11764    pub fn CBB_add_space(
11765        cbb: *mut CBB,
11766        out_data: *mut *mut u8,
11767        len: usize,
11768    ) -> ::std::os::raw::c_int;
11769}
11770extern "C" {
11771    #[link_name = "\u{1}aws_lc_0_36_0_CBB_reserve"]
11772    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
11773}
11774extern "C" {
11775    #[link_name = "\u{1}aws_lc_0_36_0_CBB_did_write"]
11776    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11777}
11778extern "C" {
11779    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u8"]
11780    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
11781}
11782extern "C" {
11783    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u16"]
11784    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11785}
11786extern "C" {
11787    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u16le"]
11788    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11789}
11790extern "C" {
11791    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u24"]
11792    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11793}
11794extern "C" {
11795    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u32"]
11796    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11797}
11798extern "C" {
11799    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u32le"]
11800    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11801}
11802extern "C" {
11803    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u64"]
11804    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11805}
11806extern "C" {
11807    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_u64le"]
11808    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11809}
11810extern "C" {
11811    #[link_name = "\u{1}aws_lc_0_36_0_CBB_discard_child"]
11812    pub fn CBB_discard_child(cbb: *mut CBB);
11813}
11814extern "C" {
11815    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_uint64"]
11816    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11817}
11818extern "C" {
11819    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_uint64_with_tag"]
11820    pub fn CBB_add_asn1_uint64_with_tag(
11821        cbb: *mut CBB,
11822        value: u64,
11823        tag: CBS_ASN1_TAG,
11824    ) -> ::std::os::raw::c_int;
11825}
11826extern "C" {
11827    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_int64"]
11828    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::std::os::raw::c_int;
11829}
11830extern "C" {
11831    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_int64_with_tag"]
11832    pub fn CBB_add_asn1_int64_with_tag(
11833        cbb: *mut CBB,
11834        value: i64,
11835        tag: CBS_ASN1_TAG,
11836    ) -> ::std::os::raw::c_int;
11837}
11838extern "C" {
11839    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_octet_string"]
11840    pub fn CBB_add_asn1_octet_string(
11841        cbb: *mut CBB,
11842        data: *const u8,
11843        data_len: usize,
11844    ) -> ::std::os::raw::c_int;
11845}
11846extern "C" {
11847    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_bool"]
11848    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
11849}
11850extern "C" {
11851    #[link_name = "\u{1}aws_lc_0_36_0_CBB_add_asn1_oid_from_text"]
11852    pub fn CBB_add_asn1_oid_from_text(
11853        cbb: *mut CBB,
11854        text: *const ::std::os::raw::c_char,
11855        len: usize,
11856    ) -> ::std::os::raw::c_int;
11857}
11858extern "C" {
11859    #[link_name = "\u{1}aws_lc_0_36_0_CBB_flush_asn1_set_of"]
11860    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
11861}
11862extern "C" {
11863    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11864}
11865extern "C" {
11866    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11867}
11868extern "C" {
11869    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11870}
11871extern "C" {
11872    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11873}
11874extern "C" {
11875    pub fn CBB_get_utf8_len(u: u32) -> usize;
11876}
11877extern "C" {
11878    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11879}
11880extern "C" {
11881    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11882}
11883extern "C" {
11884    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11885}
11886extern "C" {
11887    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11888}
11889extern "C" {
11890    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_chacha_20"]
11891    pub fn CRYPTO_chacha_20(
11892        out: *mut u8,
11893        in_: *const u8,
11894        in_len: usize,
11895        key: *const u8,
11896        nonce: *const u8,
11897        counter: u32,
11898    );
11899}
11900extern "C" {
11901    #[link_name = "\u{1}aws_lc_0_36_0_EVP_rc4"]
11902    pub fn EVP_rc4() -> *const EVP_CIPHER;
11903}
11904extern "C" {
11905    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_cbc"]
11906    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
11907}
11908extern "C" {
11909    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ecb"]
11910    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
11911}
11912extern "C" {
11913    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ede"]
11914    pub fn EVP_des_ede() -> *const EVP_CIPHER;
11915}
11916extern "C" {
11917    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ede3"]
11918    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
11919}
11920extern "C" {
11921    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ede_cbc"]
11922    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
11923}
11924extern "C" {
11925    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ede3_cbc"]
11926    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
11927}
11928extern "C" {
11929    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_ecb"]
11930    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
11931}
11932extern "C" {
11933    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cbc"]
11934    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
11935}
11936extern "C" {
11937    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_ctr"]
11938    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
11939}
11940extern "C" {
11941    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_ofb"]
11942    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
11943}
11944extern "C" {
11945    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_ecb"]
11946    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
11947}
11948extern "C" {
11949    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cbc"]
11950    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
11951}
11952extern "C" {
11953    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_ctr"]
11954    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
11955}
11956extern "C" {
11957    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_ofb"]
11958    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
11959}
11960extern "C" {
11961    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_xts"]
11962    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
11963}
11964extern "C" {
11965    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_wrap"]
11966    pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER;
11967}
11968extern "C" {
11969    #[link_name = "\u{1}aws_lc_0_36_0_EVP_enc_null"]
11970    pub fn EVP_enc_null() -> *const EVP_CIPHER;
11971}
11972extern "C" {
11973    #[link_name = "\u{1}aws_lc_0_36_0_EVP_rc2_cbc"]
11974    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
11975}
11976extern "C" {
11977    #[link_name = "\u{1}aws_lc_0_36_0_EVP_rc2_40_cbc"]
11978    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
11979}
11980extern "C" {
11981    #[link_name = "\u{1}aws_lc_0_36_0_EVP_chacha20_poly1305"]
11982    pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER;
11983}
11984extern "C" {
11985    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_cipherbynid"]
11986    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
11987}
11988extern "C" {
11989    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_init"]
11990    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
11991}
11992extern "C" {
11993    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_new"]
11994    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
11995}
11996extern "C" {
11997    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_cleanup"]
11998    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
11999}
12000extern "C" {
12001    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_free"]
12002    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
12003}
12004extern "C" {
12005    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_copy"]
12006    pub fn EVP_CIPHER_CTX_copy(
12007        out: *mut EVP_CIPHER_CTX,
12008        in_: *const EVP_CIPHER_CTX,
12009    ) -> ::std::os::raw::c_int;
12010}
12011extern "C" {
12012    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_reset"]
12013    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12014}
12015extern "C" {
12016    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CipherInit_ex"]
12017    pub fn EVP_CipherInit_ex(
12018        ctx: *mut EVP_CIPHER_CTX,
12019        cipher: *const EVP_CIPHER,
12020        engine: *mut ENGINE,
12021        key: *const u8,
12022        iv: *const u8,
12023        enc: ::std::os::raw::c_int,
12024    ) -> ::std::os::raw::c_int;
12025}
12026extern "C" {
12027    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncryptInit_ex"]
12028    pub fn EVP_EncryptInit_ex(
12029        ctx: *mut EVP_CIPHER_CTX,
12030        cipher: *const EVP_CIPHER,
12031        impl_: *mut ENGINE,
12032        key: *const u8,
12033        iv: *const u8,
12034    ) -> ::std::os::raw::c_int;
12035}
12036extern "C" {
12037    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecryptInit_ex"]
12038    pub fn EVP_DecryptInit_ex(
12039        ctx: *mut EVP_CIPHER_CTX,
12040        cipher: *const EVP_CIPHER,
12041        impl_: *mut ENGINE,
12042        key: *const u8,
12043        iv: *const u8,
12044    ) -> ::std::os::raw::c_int;
12045}
12046extern "C" {
12047    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncryptUpdate"]
12048    pub fn EVP_EncryptUpdate(
12049        ctx: *mut EVP_CIPHER_CTX,
12050        out: *mut u8,
12051        out_len: *mut ::std::os::raw::c_int,
12052        in_: *const u8,
12053        in_len: ::std::os::raw::c_int,
12054    ) -> ::std::os::raw::c_int;
12055}
12056extern "C" {
12057    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncryptFinal_ex"]
12058    pub fn EVP_EncryptFinal_ex(
12059        ctx: *mut EVP_CIPHER_CTX,
12060        out: *mut u8,
12061        out_len: *mut ::std::os::raw::c_int,
12062    ) -> ::std::os::raw::c_int;
12063}
12064extern "C" {
12065    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecryptUpdate"]
12066    pub fn EVP_DecryptUpdate(
12067        ctx: *mut EVP_CIPHER_CTX,
12068        out: *mut u8,
12069        out_len: *mut ::std::os::raw::c_int,
12070        in_: *const u8,
12071        in_len: ::std::os::raw::c_int,
12072    ) -> ::std::os::raw::c_int;
12073}
12074extern "C" {
12075    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecryptFinal_ex"]
12076    pub fn EVP_DecryptFinal_ex(
12077        ctx: *mut EVP_CIPHER_CTX,
12078        out: *mut u8,
12079        out_len: *mut ::std::os::raw::c_int,
12080    ) -> ::std::os::raw::c_int;
12081}
12082extern "C" {
12083    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CipherUpdate"]
12084    pub fn EVP_CipherUpdate(
12085        ctx: *mut EVP_CIPHER_CTX,
12086        out: *mut u8,
12087        out_len: *mut ::std::os::raw::c_int,
12088        in_: *const u8,
12089        in_len: ::std::os::raw::c_int,
12090    ) -> ::std::os::raw::c_int;
12091}
12092extern "C" {
12093    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CipherFinal_ex"]
12094    pub fn EVP_CipherFinal_ex(
12095        ctx: *mut EVP_CIPHER_CTX,
12096        out: *mut u8,
12097        out_len: *mut ::std::os::raw::c_int,
12098    ) -> ::std::os::raw::c_int;
12099}
12100extern "C" {
12101    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_cipher"]
12102    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
12103}
12104extern "C" {
12105    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_nid"]
12106    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12107}
12108extern "C" {
12109    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_encrypting"]
12110    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12111}
12112extern "C" {
12113    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_block_size"]
12114    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12115}
12116extern "C" {
12117    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_key_length"]
12118    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12119}
12120extern "C" {
12121    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_iv_length"]
12122    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12123}
12124extern "C" {
12125    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_get_app_data"]
12126    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
12127}
12128extern "C" {
12129    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_set_app_data"]
12130    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
12131}
12132extern "C" {
12133    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_flags"]
12134    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
12135}
12136extern "C" {
12137    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_mode"]
12138    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
12139}
12140extern "C" {
12141    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_ctrl"]
12142    pub fn EVP_CIPHER_CTX_ctrl(
12143        ctx: *mut EVP_CIPHER_CTX,
12144        command: ::std::os::raw::c_int,
12145        arg: ::std::os::raw::c_int,
12146        ptr: *mut ::std::os::raw::c_void,
12147    ) -> ::std::os::raw::c_int;
12148}
12149extern "C" {
12150    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_set_padding"]
12151    pub fn EVP_CIPHER_CTX_set_padding(
12152        ctx: *mut EVP_CIPHER_CTX,
12153        pad: ::std::os::raw::c_int,
12154    ) -> ::std::os::raw::c_int;
12155}
12156extern "C" {
12157    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_set_key_length"]
12158    pub fn EVP_CIPHER_CTX_set_key_length(
12159        ctx: *mut EVP_CIPHER_CTX,
12160        key_len: ::std::os::raw::c_uint,
12161    ) -> ::std::os::raw::c_int;
12162}
12163extern "C" {
12164    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_nid"]
12165    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
12166}
12167extern "C" {
12168    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_name"]
12169    pub fn EVP_CIPHER_name(cipher: *const EVP_CIPHER) -> *const ::std::os::raw::c_char;
12170}
12171extern "C" {
12172    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_block_size"]
12173    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12174}
12175extern "C" {
12176    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_key_length"]
12177    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12178}
12179extern "C" {
12180    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_iv_length"]
12181    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12182}
12183extern "C" {
12184    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_flags"]
12185    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
12186}
12187extern "C" {
12188    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_mode"]
12189    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
12190}
12191extern "C" {
12192    #[link_name = "\u{1}aws_lc_0_36_0_EVP_BytesToKey"]
12193    pub fn EVP_BytesToKey(
12194        type_: *const EVP_CIPHER,
12195        md: *const EVP_MD,
12196        salt: *const u8,
12197        data: *const u8,
12198        data_len: usize,
12199        count: ::std::os::raw::c_uint,
12200        key: *mut u8,
12201        iv: *mut u8,
12202    ) -> ::std::os::raw::c_int;
12203}
12204extern "C" {
12205    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cbc_hmac_sha1"]
12206    pub fn EVP_aes_128_cbc_hmac_sha1() -> *const EVP_CIPHER;
12207}
12208extern "C" {
12209    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cbc_hmac_sha1"]
12210    pub fn EVP_aes_256_cbc_hmac_sha1() -> *const EVP_CIPHER;
12211}
12212extern "C" {
12213    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cbc_hmac_sha256"]
12214    pub fn EVP_aes_128_cbc_hmac_sha256() -> *const EVP_CIPHER;
12215}
12216extern "C" {
12217    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cbc_hmac_sha256"]
12218    pub fn EVP_aes_256_cbc_hmac_sha256() -> *const EVP_CIPHER;
12219}
12220extern "C" {
12221    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CipherInit"]
12222    pub fn EVP_CipherInit(
12223        ctx: *mut EVP_CIPHER_CTX,
12224        cipher: *const EVP_CIPHER,
12225        key: *const u8,
12226        iv: *const u8,
12227        enc: ::std::os::raw::c_int,
12228    ) -> ::std::os::raw::c_int;
12229}
12230extern "C" {
12231    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncryptInit"]
12232    pub fn EVP_EncryptInit(
12233        ctx: *mut EVP_CIPHER_CTX,
12234        cipher: *const EVP_CIPHER,
12235        key: *const u8,
12236        iv: *const u8,
12237    ) -> ::std::os::raw::c_int;
12238}
12239extern "C" {
12240    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecryptInit"]
12241    pub fn EVP_DecryptInit(
12242        ctx: *mut EVP_CIPHER_CTX,
12243        cipher: *const EVP_CIPHER,
12244        key: *const u8,
12245        iv: *const u8,
12246    ) -> ::std::os::raw::c_int;
12247}
12248extern "C" {
12249    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CipherFinal"]
12250    pub fn EVP_CipherFinal(
12251        ctx: *mut EVP_CIPHER_CTX,
12252        out: *mut u8,
12253        out_len: *mut ::std::os::raw::c_int,
12254    ) -> ::std::os::raw::c_int;
12255}
12256extern "C" {
12257    #[link_name = "\u{1}aws_lc_0_36_0_EVP_EncryptFinal"]
12258    pub fn EVP_EncryptFinal(
12259        ctx: *mut EVP_CIPHER_CTX,
12260        out: *mut u8,
12261        out_len: *mut ::std::os::raw::c_int,
12262    ) -> ::std::os::raw::c_int;
12263}
12264extern "C" {
12265    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DecryptFinal"]
12266    pub fn EVP_DecryptFinal(
12267        ctx: *mut EVP_CIPHER_CTX,
12268        out: *mut u8,
12269        out_len: *mut ::std::os::raw::c_int,
12270    ) -> ::std::os::raw::c_int;
12271}
12272extern "C" {
12273    #[link_name = "\u{1}aws_lc_0_36_0_EVP_Cipher"]
12274    pub fn EVP_Cipher(
12275        ctx: *mut EVP_CIPHER_CTX,
12276        out: *mut u8,
12277        in_: *const u8,
12278        in_len: usize,
12279    ) -> ::std::os::raw::c_int;
12280}
12281extern "C" {
12282    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_cipherbyname"]
12283    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
12284}
12285extern "C" {
12286    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_gcm"]
12287    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
12288}
12289extern "C" {
12290    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_gcm"]
12291    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
12292}
12293extern "C" {
12294    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_ccm"]
12295    pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER;
12296}
12297extern "C" {
12298    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_ccm"]
12299    pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER;
12300}
12301extern "C" {
12302    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_ccm"]
12303    pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER;
12304}
12305extern "C" {
12306    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_ecb"]
12307    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
12308}
12309extern "C" {
12310    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_cbc"]
12311    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
12312}
12313extern "C" {
12314    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_ctr"]
12315    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
12316}
12317extern "C" {
12318    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_gcm"]
12319    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
12320}
12321extern "C" {
12322    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_ofb"]
12323    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
12324}
12325extern "C" {
12326    #[link_name = "\u{1}aws_lc_0_36_0_EVP_des_ede3_ecb"]
12327    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
12328}
12329extern "C" {
12330    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cfb128"]
12331    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
12332}
12333extern "C" {
12334    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cfb"]
12335    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
12336}
12337extern "C" {
12338    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cfb1"]
12339    pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
12340}
12341extern "C" {
12342    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_128_cfb8"]
12343    pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
12344}
12345extern "C" {
12346    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_cfb128"]
12347    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
12348}
12349extern "C" {
12350    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_cfb"]
12351    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
12352}
12353extern "C" {
12354    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_cfb1"]
12355    pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER;
12356}
12357extern "C" {
12358    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_192_cfb8"]
12359    pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER;
12360}
12361extern "C" {
12362    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cfb128"]
12363    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
12364}
12365extern "C" {
12366    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cfb"]
12367    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
12368}
12369extern "C" {
12370    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cfb1"]
12371    pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
12372}
12373extern "C" {
12374    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aes_256_cfb8"]
12375    pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
12376}
12377extern "C" {
12378    #[link_name = "\u{1}aws_lc_0_36_0_EVP_bf_ecb"]
12379    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
12380}
12381extern "C" {
12382    #[link_name = "\u{1}aws_lc_0_36_0_EVP_bf_cbc"]
12383    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
12384}
12385extern "C" {
12386    #[link_name = "\u{1}aws_lc_0_36_0_EVP_bf_cfb"]
12387    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
12388}
12389extern "C" {
12390    #[link_name = "\u{1}aws_lc_0_36_0_EVP_bf_cfb64"]
12391    pub fn EVP_bf_cfb64() -> *const EVP_CIPHER;
12392}
12393extern "C" {
12394    #[link_name = "\u{1}aws_lc_0_36_0_EVP_bf_ofb"]
12395    pub fn EVP_bf_ofb() -> *const EVP_CIPHER;
12396}
12397extern "C" {
12398    #[link_name = "\u{1}aws_lc_0_36_0_EVP_cast5_ecb"]
12399    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
12400}
12401extern "C" {
12402    #[link_name = "\u{1}aws_lc_0_36_0_EVP_cast5_cbc"]
12403    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
12404}
12405extern "C" {
12406    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_CTX_set_flags"]
12407    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
12408}
12409extern "C" {
12410    #[link_name = "\u{1}aws_lc_0_36_0_EVP_add_cipher_alias"]
12411    pub fn EVP_add_cipher_alias(
12412        a: *const ::std::os::raw::c_char,
12413        b: *const ::std::os::raw::c_char,
12414    ) -> ::std::os::raw::c_int;
12415}
12416#[repr(C)]
12417#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12418pub struct evp_cipher_ctx_st {
12419    pub cipher: *const EVP_CIPHER,
12420    pub app_data: *mut ::std::os::raw::c_void,
12421    pub cipher_data: *mut ::std::os::raw::c_void,
12422    pub key_len: ::std::os::raw::c_uint,
12423    pub encrypt: ::std::os::raw::c_int,
12424    pub flags: u32,
12425    pub oiv: [u8; 16usize],
12426    pub iv: [u8; 16usize],
12427    pub buf: [u8; 32usize],
12428    pub buf_len: ::std::os::raw::c_int,
12429    pub num: ::std::os::raw::c_uint,
12430    pub final_used: ::std::os::raw::c_int,
12431    pub final_: [u8; 32usize],
12432    pub poisoned: ::std::os::raw::c_int,
12433}
12434#[test]
12435fn bindgen_test_layout_evp_cipher_ctx_st() {
12436    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_ctx_st> = ::std::mem::MaybeUninit::uninit();
12437    let ptr = UNINIT.as_ptr();
12438    assert_eq!(
12439        ::std::mem::size_of::<evp_cipher_ctx_st>(),
12440        152usize,
12441        "Size of evp_cipher_ctx_st"
12442    );
12443    assert_eq!(
12444        ::std::mem::align_of::<evp_cipher_ctx_st>(),
12445        8usize,
12446        "Alignment of evp_cipher_ctx_st"
12447    );
12448    assert_eq!(
12449        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12450        0usize,
12451        "Offset of field: evp_cipher_ctx_st::cipher"
12452    );
12453    assert_eq!(
12454        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
12455        8usize,
12456        "Offset of field: evp_cipher_ctx_st::app_data"
12457    );
12458    assert_eq!(
12459        unsafe { ::std::ptr::addr_of!((*ptr).cipher_data) as usize - ptr as usize },
12460        16usize,
12461        "Offset of field: evp_cipher_ctx_st::cipher_data"
12462    );
12463    assert_eq!(
12464        unsafe { ::std::ptr::addr_of!((*ptr).key_len) as usize - ptr as usize },
12465        24usize,
12466        "Offset of field: evp_cipher_ctx_st::key_len"
12467    );
12468    assert_eq!(
12469        unsafe { ::std::ptr::addr_of!((*ptr).encrypt) as usize - ptr as usize },
12470        28usize,
12471        "Offset of field: evp_cipher_ctx_st::encrypt"
12472    );
12473    assert_eq!(
12474        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
12475        32usize,
12476        "Offset of field: evp_cipher_ctx_st::flags"
12477    );
12478    assert_eq!(
12479        unsafe { ::std::ptr::addr_of!((*ptr).oiv) as usize - ptr as usize },
12480        36usize,
12481        "Offset of field: evp_cipher_ctx_st::oiv"
12482    );
12483    assert_eq!(
12484        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12485        52usize,
12486        "Offset of field: evp_cipher_ctx_st::iv"
12487    );
12488    assert_eq!(
12489        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
12490        68usize,
12491        "Offset of field: evp_cipher_ctx_st::buf"
12492    );
12493    assert_eq!(
12494        unsafe { ::std::ptr::addr_of!((*ptr).buf_len) as usize - ptr as usize },
12495        100usize,
12496        "Offset of field: evp_cipher_ctx_st::buf_len"
12497    );
12498    assert_eq!(
12499        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
12500        104usize,
12501        "Offset of field: evp_cipher_ctx_st::num"
12502    );
12503    assert_eq!(
12504        unsafe { ::std::ptr::addr_of!((*ptr).final_used) as usize - ptr as usize },
12505        108usize,
12506        "Offset of field: evp_cipher_ctx_st::final_used"
12507    );
12508    assert_eq!(
12509        unsafe { ::std::ptr::addr_of!((*ptr).final_) as usize - ptr as usize },
12510        112usize,
12511        "Offset of field: evp_cipher_ctx_st::final_"
12512    );
12513    assert_eq!(
12514        unsafe { ::std::ptr::addr_of!((*ptr).poisoned) as usize - ptr as usize },
12515        144usize,
12516        "Offset of field: evp_cipher_ctx_st::poisoned"
12517    );
12518}
12519impl Default for evp_cipher_ctx_st {
12520    fn default() -> Self {
12521        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12522        unsafe {
12523            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12524            s.assume_init()
12525        }
12526    }
12527}
12528#[repr(C)]
12529#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12530pub struct evp_cipher_info_st {
12531    pub cipher: *const EVP_CIPHER,
12532    pub iv: [::std::os::raw::c_uchar; 16usize],
12533}
12534#[test]
12535fn bindgen_test_layout_evp_cipher_info_st() {
12536    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_info_st> = ::std::mem::MaybeUninit::uninit();
12537    let ptr = UNINIT.as_ptr();
12538    assert_eq!(
12539        ::std::mem::size_of::<evp_cipher_info_st>(),
12540        24usize,
12541        "Size of evp_cipher_info_st"
12542    );
12543    assert_eq!(
12544        ::std::mem::align_of::<evp_cipher_info_st>(),
12545        8usize,
12546        "Alignment of evp_cipher_info_st"
12547    );
12548    assert_eq!(
12549        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12550        0usize,
12551        "Offset of field: evp_cipher_info_st::cipher"
12552    );
12553    assert_eq!(
12554        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12555        8usize,
12556        "Offset of field: evp_cipher_info_st::iv"
12557    );
12558}
12559impl Default for evp_cipher_info_st {
12560    fn default() -> Self {
12561        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12562        unsafe {
12563            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12564            s.assume_init()
12565        }
12566    }
12567}
12568pub type EVP_CIPHER_INFO = evp_cipher_info_st;
12569extern "C" {
12570    #[link_name = "\u{1}aws_lc_0_36_0_AES_CMAC"]
12571    pub fn AES_CMAC(
12572        out: *mut u8,
12573        key: *const u8,
12574        key_len: usize,
12575        in_: *const u8,
12576        in_len: usize,
12577    ) -> ::std::os::raw::c_int;
12578}
12579extern "C" {
12580    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_CTX_new"]
12581    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
12582}
12583extern "C" {
12584    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_CTX_free"]
12585    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
12586}
12587extern "C" {
12588    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_CTX_copy"]
12589    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::std::os::raw::c_int;
12590}
12591extern "C" {
12592    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_Init"]
12593    pub fn CMAC_Init(
12594        ctx: *mut CMAC_CTX,
12595        key: *const ::std::os::raw::c_void,
12596        key_len: usize,
12597        cipher: *const EVP_CIPHER,
12598        engine: *mut ENGINE,
12599    ) -> ::std::os::raw::c_int;
12600}
12601extern "C" {
12602    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_Reset"]
12603    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::std::os::raw::c_int;
12604}
12605extern "C" {
12606    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_Update"]
12607    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::std::os::raw::c_int;
12608}
12609extern "C" {
12610    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_Final"]
12611    pub fn CMAC_Final(
12612        ctx: *mut CMAC_CTX,
12613        out: *mut u8,
12614        out_len: *mut usize,
12615    ) -> ::std::os::raw::c_int;
12616}
12617extern "C" {
12618    #[link_name = "\u{1}aws_lc_0_36_0_CMAC_CTX_get0_cipher_ctx"]
12619    pub fn CMAC_CTX_get0_cipher_ctx(ctx: *mut CMAC_CTX) -> *mut EVP_CIPHER_CTX;
12620}
12621#[repr(C)]
12622#[derive(Debug, Copy, Clone)]
12623pub struct lhash_st {
12624    _unused: [u8; 0],
12625}
12626pub type _LHASH = lhash_st;
12627extern "C" {
12628    #[link_name = "\u{1}aws_lc_0_36_0_lh_doall_arg"]
12629    pub fn lh_doall_arg(
12630        lh: *mut _LHASH,
12631        func: ::std::option::Option<
12632            unsafe extern "C" fn(
12633                arg1: *mut ::std::os::raw::c_void,
12634                arg2: *mut ::std::os::raw::c_void,
12635            ),
12636        >,
12637        arg: *mut ::std::os::raw::c_void,
12638    );
12639}
12640#[repr(C)]
12641#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12642pub struct conf_value_st {
12643    pub section: *mut ::std::os::raw::c_char,
12644    pub name: *mut ::std::os::raw::c_char,
12645    pub value: *mut ::std::os::raw::c_char,
12646}
12647#[test]
12648fn bindgen_test_layout_conf_value_st() {
12649    const UNINIT: ::std::mem::MaybeUninit<conf_value_st> = ::std::mem::MaybeUninit::uninit();
12650    let ptr = UNINIT.as_ptr();
12651    assert_eq!(
12652        ::std::mem::size_of::<conf_value_st>(),
12653        24usize,
12654        "Size of conf_value_st"
12655    );
12656    assert_eq!(
12657        ::std::mem::align_of::<conf_value_st>(),
12658        8usize,
12659        "Alignment of conf_value_st"
12660    );
12661    assert_eq!(
12662        unsafe { ::std::ptr::addr_of!((*ptr).section) as usize - ptr as usize },
12663        0usize,
12664        "Offset of field: conf_value_st::section"
12665    );
12666    assert_eq!(
12667        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
12668        8usize,
12669        "Offset of field: conf_value_st::name"
12670    );
12671    assert_eq!(
12672        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
12673        16usize,
12674        "Offset of field: conf_value_st::value"
12675    );
12676}
12677impl Default for conf_value_st {
12678    fn default() -> Self {
12679        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12680        unsafe {
12681            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12682            s.assume_init()
12683        }
12684    }
12685}
12686#[repr(C)]
12687#[derive(Debug, Copy, Clone)]
12688pub struct stack_st_CONF_VALUE {
12689    _unused: [u8; 0],
12690}
12691pub type sk_CONF_VALUE_free_func =
12692    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
12693pub type sk_CONF_VALUE_copy_func =
12694    ::std::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
12695pub type sk_CONF_VALUE_cmp_func = ::std::option::Option<
12696    unsafe extern "C" fn(
12697        arg1: *const *const CONF_VALUE,
12698        arg2: *const *const CONF_VALUE,
12699    ) -> ::std::os::raw::c_int,
12700>;
12701pub type sk_CONF_VALUE_delete_if_func = ::std::option::Option<
12702    unsafe extern "C" fn(
12703        arg1: *mut CONF_VALUE,
12704        arg2: *mut ::std::os::raw::c_void,
12705    ) -> ::std::os::raw::c_int,
12706>;
12707#[repr(C)]
12708#[derive(Debug, Copy, Clone)]
12709pub struct lhash_st_CONF_VALUE {
12710    _unused: [u8; 0],
12711}
12712#[repr(C)]
12713#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12714pub struct conf_st {
12715    pub data: *mut lhash_st_CONF_VALUE,
12716}
12717#[test]
12718fn bindgen_test_layout_conf_st() {
12719    const UNINIT: ::std::mem::MaybeUninit<conf_st> = ::std::mem::MaybeUninit::uninit();
12720    let ptr = UNINIT.as_ptr();
12721    assert_eq!(::std::mem::size_of::<conf_st>(), 8usize, "Size of conf_st");
12722    assert_eq!(
12723        ::std::mem::align_of::<conf_st>(),
12724        8usize,
12725        "Alignment of conf_st"
12726    );
12727    assert_eq!(
12728        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
12729        0usize,
12730        "Offset of field: conf_st::data"
12731    );
12732}
12733impl Default for conf_st {
12734    fn default() -> Self {
12735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12736        unsafe {
12737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12738            s.assume_init()
12739        }
12740    }
12741}
12742extern "C" {
12743    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_new"]
12744    pub fn NCONF_new(method: *mut ::std::os::raw::c_void) -> *mut CONF;
12745}
12746extern "C" {
12747    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_free"]
12748    pub fn NCONF_free(conf: *mut CONF);
12749}
12750extern "C" {
12751    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_load"]
12752    pub fn NCONF_load(
12753        conf: *mut CONF,
12754        filename: *const ::std::os::raw::c_char,
12755        out_error_line: *mut ::std::os::raw::c_long,
12756    ) -> ::std::os::raw::c_int;
12757}
12758extern "C" {
12759    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_load_bio"]
12760    pub fn NCONF_load_bio(
12761        conf: *mut CONF,
12762        bio: *mut BIO,
12763        out_error_line: *mut ::std::os::raw::c_long,
12764    ) -> ::std::os::raw::c_int;
12765}
12766extern "C" {
12767    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_get_section"]
12768    pub fn NCONF_get_section(
12769        conf: *const CONF,
12770        section: *const ::std::os::raw::c_char,
12771    ) -> *const stack_st_CONF_VALUE;
12772}
12773extern "C" {
12774    #[link_name = "\u{1}aws_lc_0_36_0_NCONF_get_string"]
12775    pub fn NCONF_get_string(
12776        conf: *const CONF,
12777        section: *const ::std::os::raw::c_char,
12778        name: *const ::std::os::raw::c_char,
12779    ) -> *const ::std::os::raw::c_char;
12780}
12781extern "C" {
12782    #[link_name = "\u{1}aws_lc_0_36_0_CONF_modules_load_file"]
12783    pub fn CONF_modules_load_file(
12784        filename: *const ::std::os::raw::c_char,
12785        appname: *const ::std::os::raw::c_char,
12786        flags: ::std::os::raw::c_ulong,
12787    ) -> ::std::os::raw::c_int;
12788}
12789extern "C" {
12790    #[link_name = "\u{1}aws_lc_0_36_0_CONF_get1_default_config_file"]
12791    pub fn CONF_get1_default_config_file() -> *mut ::std::os::raw::c_char;
12792}
12793extern "C" {
12794    #[link_name = "\u{1}aws_lc_0_36_0_CONF_modules_free"]
12795    pub fn CONF_modules_free();
12796}
12797extern "C" {
12798    #[link_name = "\u{1}aws_lc_0_36_0_CONF_modules_unload"]
12799    pub fn CONF_modules_unload(all: ::std::os::raw::c_int);
12800}
12801extern "C" {
12802    #[link_name = "\u{1}aws_lc_0_36_0_CONF_modules_finish"]
12803    pub fn CONF_modules_finish();
12804}
12805extern "C" {
12806    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_config"]
12807    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
12808}
12809extern "C" {
12810    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_no_config"]
12811    pub fn OPENSSL_no_config();
12812}
12813extern "C" {
12814    #[link_name = "\u{1}aws_lc_0_36_0_CTR_DRBG_new"]
12815    pub fn CTR_DRBG_new(
12816        entropy: *const u8,
12817        personalization: *const u8,
12818        personalization_len: usize,
12819    ) -> *mut CTR_DRBG_STATE;
12820}
12821extern "C" {
12822    #[link_name = "\u{1}aws_lc_0_36_0_CTR_DRBG_free"]
12823    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
12824}
12825extern "C" {
12826    #[link_name = "\u{1}aws_lc_0_36_0_CTR_DRBG_reseed"]
12827    pub fn CTR_DRBG_reseed(
12828        drbg: *mut CTR_DRBG_STATE,
12829        entropy: *const u8,
12830        additional_data: *const u8,
12831        additional_data_len: usize,
12832    ) -> ::std::os::raw::c_int;
12833}
12834extern "C" {
12835    #[link_name = "\u{1}aws_lc_0_36_0_CTR_DRBG_generate"]
12836    pub fn CTR_DRBG_generate(
12837        drbg: *mut CTR_DRBG_STATE,
12838        out: *mut u8,
12839        out_len: usize,
12840        additional_data: *const u8,
12841        additional_data_len: usize,
12842    ) -> ::std::os::raw::c_int;
12843}
12844extern "C" {
12845    #[link_name = "\u{1}aws_lc_0_36_0_CTR_DRBG_clear"]
12846    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
12847}
12848extern "C" {
12849    #[link_name = "\u{1}aws_lc_0_36_0_X25519_keypair"]
12850    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
12851}
12852extern "C" {
12853    #[link_name = "\u{1}aws_lc_0_36_0_X25519"]
12854    pub fn X25519(
12855        out_shared_key: *mut u8,
12856        private_key: *const u8,
12857        peer_public_value: *const u8,
12858    ) -> ::std::os::raw::c_int;
12859}
12860extern "C" {
12861    #[link_name = "\u{1}aws_lc_0_36_0_X25519_public_from_private"]
12862    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
12863}
12864extern "C" {
12865    #[link_name = "\u{1}aws_lc_0_36_0_ED25519_keypair"]
12866    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
12867}
12868extern "C" {
12869    #[link_name = "\u{1}aws_lc_0_36_0_ED25519_sign"]
12870    pub fn ED25519_sign(
12871        out_sig: *mut u8,
12872        message: *const u8,
12873        message_len: usize,
12874        private_key: *const u8,
12875    ) -> ::std::os::raw::c_int;
12876}
12877extern "C" {
12878    #[link_name = "\u{1}aws_lc_0_36_0_ED25519_verify"]
12879    pub fn ED25519_verify(
12880        message: *const u8,
12881        message_len: usize,
12882        signature: *const u8,
12883        public_key: *const u8,
12884    ) -> ::std::os::raw::c_int;
12885}
12886extern "C" {
12887    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ctx_sign"]
12888    pub fn ED25519ctx_sign(
12889        out_sig: *mut u8,
12890        message: *const u8,
12891        message_len: usize,
12892        private_key: *const u8,
12893        context: *const u8,
12894        context_len: usize,
12895    ) -> ::std::os::raw::c_int;
12896}
12897extern "C" {
12898    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ctx_verify"]
12899    pub fn ED25519ctx_verify(
12900        message: *const u8,
12901        message_len: usize,
12902        signature: *const u8,
12903        public_key: *const u8,
12904        context: *const u8,
12905        context_len: usize,
12906    ) -> ::std::os::raw::c_int;
12907}
12908extern "C" {
12909    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ph_sign"]
12910    pub fn ED25519ph_sign(
12911        out_sig: *mut u8,
12912        message: *const u8,
12913        message_len: usize,
12914        private_key: *const u8,
12915        context: *const u8,
12916        context_len: usize,
12917    ) -> ::std::os::raw::c_int;
12918}
12919extern "C" {
12920    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ph_verify"]
12921    pub fn ED25519ph_verify(
12922        message: *const u8,
12923        message_len: usize,
12924        signature: *const u8,
12925        public_key: *const u8,
12926        context: *const u8,
12927        context_len: usize,
12928    ) -> ::std::os::raw::c_int;
12929}
12930extern "C" {
12931    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ph_sign_digest"]
12932    pub fn ED25519ph_sign_digest(
12933        out_sig: *mut u8,
12934        digest: *const u8,
12935        private_key: *const u8,
12936        context: *const u8,
12937        context_len: usize,
12938    ) -> ::std::os::raw::c_int;
12939}
12940extern "C" {
12941    #[link_name = "\u{1}aws_lc_0_36_0_ED25519ph_verify_digest"]
12942    pub fn ED25519ph_verify_digest(
12943        digest: *const u8,
12944        signature: *const u8,
12945        public_key: *const u8,
12946        context: *const u8,
12947        context_len: usize,
12948    ) -> ::std::os::raw::c_int;
12949}
12950extern "C" {
12951    #[link_name = "\u{1}aws_lc_0_36_0_ED25519_keypair_from_seed"]
12952    pub fn ED25519_keypair_from_seed(
12953        out_public_key: *mut u8,
12954        out_private_key: *mut u8,
12955        seed: *const u8,
12956    );
12957}
12958pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
12959pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
12960pub type spake2_role_t = ::std::os::raw::c_uint;
12961extern "C" {
12962    #[link_name = "\u{1}aws_lc_0_36_0_SPAKE2_CTX_new"]
12963    pub fn SPAKE2_CTX_new(
12964        my_role: spake2_role_t,
12965        my_name: *const u8,
12966        my_name_len: usize,
12967        their_name: *const u8,
12968        their_name_len: usize,
12969    ) -> *mut SPAKE2_CTX;
12970}
12971extern "C" {
12972    #[link_name = "\u{1}aws_lc_0_36_0_SPAKE2_CTX_free"]
12973    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
12974}
12975extern "C" {
12976    #[link_name = "\u{1}aws_lc_0_36_0_SPAKE2_generate_msg"]
12977    pub fn SPAKE2_generate_msg(
12978        ctx: *mut SPAKE2_CTX,
12979        out: *mut u8,
12980        out_len: *mut usize,
12981        max_out_len: usize,
12982        password: *const u8,
12983        password_len: usize,
12984    ) -> ::std::os::raw::c_int;
12985}
12986extern "C" {
12987    #[link_name = "\u{1}aws_lc_0_36_0_SPAKE2_process_msg"]
12988    pub fn SPAKE2_process_msg(
12989        ctx: *mut SPAKE2_CTX,
12990        out_key: *mut u8,
12991        out_key_len: *mut usize,
12992        max_out_key_len: usize,
12993        their_msg: *const u8,
12994        their_msg_len: usize,
12995    ) -> ::std::os::raw::c_int;
12996}
12997#[repr(C)]
12998#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
12999pub struct DES_cblock_st {
13000    pub bytes: [u8; 8usize],
13001}
13002#[test]
13003fn bindgen_test_layout_DES_cblock_st() {
13004    const UNINIT: ::std::mem::MaybeUninit<DES_cblock_st> = ::std::mem::MaybeUninit::uninit();
13005    let ptr = UNINIT.as_ptr();
13006    assert_eq!(
13007        ::std::mem::size_of::<DES_cblock_st>(),
13008        8usize,
13009        "Size of DES_cblock_st"
13010    );
13011    assert_eq!(
13012        ::std::mem::align_of::<DES_cblock_st>(),
13013        1usize,
13014        "Alignment of DES_cblock_st"
13015    );
13016    assert_eq!(
13017        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
13018        0usize,
13019        "Offset of field: DES_cblock_st::bytes"
13020    );
13021}
13022pub type DES_cblock = DES_cblock_st;
13023pub type const_DES_cblock = DES_cblock_st;
13024#[repr(C)]
13025#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
13026pub struct DES_ks {
13027    pub subkeys: [[u32; 2usize]; 16usize],
13028}
13029#[test]
13030fn bindgen_test_layout_DES_ks() {
13031    const UNINIT: ::std::mem::MaybeUninit<DES_ks> = ::std::mem::MaybeUninit::uninit();
13032    let ptr = UNINIT.as_ptr();
13033    assert_eq!(::std::mem::size_of::<DES_ks>(), 128usize, "Size of DES_ks");
13034    assert_eq!(
13035        ::std::mem::align_of::<DES_ks>(),
13036        4usize,
13037        "Alignment of DES_ks"
13038    );
13039    assert_eq!(
13040        unsafe { ::std::ptr::addr_of!((*ptr).subkeys) as usize - ptr as usize },
13041        0usize,
13042        "Offset of field: DES_ks::subkeys"
13043    );
13044}
13045pub type DES_key_schedule = DES_ks;
13046extern "C" {
13047    #[link_name = "\u{1}aws_lc_0_36_0_DES_is_weak_key"]
13048    pub fn DES_is_weak_key(key: *const DES_cblock) -> ::std::os::raw::c_int;
13049}
13050extern "C" {
13051    #[link_name = "\u{1}aws_lc_0_36_0_DES_set_key"]
13052    pub fn DES_set_key(
13053        key: *const DES_cblock,
13054        schedule: *mut DES_key_schedule,
13055    ) -> ::std::os::raw::c_int;
13056}
13057extern "C" {
13058    #[link_name = "\u{1}aws_lc_0_36_0_DES_set_key_unchecked"]
13059    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
13060}
13061extern "C" {
13062    #[link_name = "\u{1}aws_lc_0_36_0_DES_key_sched"]
13063    pub fn DES_key_sched(
13064        key: *const DES_cblock,
13065        schedule: *mut DES_key_schedule,
13066    ) -> ::std::os::raw::c_int;
13067}
13068extern "C" {
13069    #[link_name = "\u{1}aws_lc_0_36_0_DES_set_odd_parity"]
13070    pub fn DES_set_odd_parity(key: *mut DES_cblock);
13071}
13072extern "C" {
13073    #[link_name = "\u{1}aws_lc_0_36_0_DES_ecb_encrypt"]
13074    pub fn DES_ecb_encrypt(
13075        in_: *const DES_cblock,
13076        out: *mut DES_cblock,
13077        schedule: *const DES_key_schedule,
13078        is_encrypt: ::std::os::raw::c_int,
13079    );
13080}
13081extern "C" {
13082    #[link_name = "\u{1}aws_lc_0_36_0_DES_ncbc_encrypt"]
13083    pub fn DES_ncbc_encrypt(
13084        in_: *const u8,
13085        out: *mut u8,
13086        len: usize,
13087        schedule: *const DES_key_schedule,
13088        ivec: *mut DES_cblock,
13089        enc: ::std::os::raw::c_int,
13090    );
13091}
13092extern "C" {
13093    #[link_name = "\u{1}aws_lc_0_36_0_DES_ecb3_encrypt"]
13094    pub fn DES_ecb3_encrypt(
13095        input: *const DES_cblock,
13096        output: *mut DES_cblock,
13097        ks1: *const DES_key_schedule,
13098        ks2: *const DES_key_schedule,
13099        ks3: *const DES_key_schedule,
13100        enc: ::std::os::raw::c_int,
13101    );
13102}
13103extern "C" {
13104    #[link_name = "\u{1}aws_lc_0_36_0_DES_ede3_cbc_encrypt"]
13105    pub fn DES_ede3_cbc_encrypt(
13106        in_: *const u8,
13107        out: *mut u8,
13108        len: usize,
13109        ks1: *const DES_key_schedule,
13110        ks2: *const DES_key_schedule,
13111        ks3: *const DES_key_schedule,
13112        ivec: *mut DES_cblock,
13113        enc: ::std::os::raw::c_int,
13114    );
13115}
13116extern "C" {
13117    #[link_name = "\u{1}aws_lc_0_36_0_DES_ede2_cbc_encrypt"]
13118    pub fn DES_ede2_cbc_encrypt(
13119        in_: *const u8,
13120        out: *mut u8,
13121        len: usize,
13122        ks1: *const DES_key_schedule,
13123        ks2: *const DES_key_schedule,
13124        ivec: *mut DES_cblock,
13125        enc: ::std::os::raw::c_int,
13126    );
13127}
13128extern "C" {
13129    #[link_name = "\u{1}aws_lc_0_36_0_DH_new"]
13130    pub fn DH_new() -> *mut DH;
13131}
13132extern "C" {
13133    #[link_name = "\u{1}aws_lc_0_36_0_DH_new_by_nid"]
13134    pub fn DH_new_by_nid(nid: ::std::os::raw::c_int) -> *mut DH;
13135}
13136extern "C" {
13137    #[link_name = "\u{1}aws_lc_0_36_0_DH_free"]
13138    pub fn DH_free(dh: *mut DH);
13139}
13140extern "C" {
13141    #[link_name = "\u{1}aws_lc_0_36_0_DH_up_ref"]
13142    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
13143}
13144extern "C" {
13145    #[link_name = "\u{1}aws_lc_0_36_0_DH_bits"]
13146    pub fn DH_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13147}
13148extern "C" {
13149    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_pub_key"]
13150    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
13151}
13152extern "C" {
13153    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_priv_key"]
13154    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
13155}
13156extern "C" {
13157    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_p"]
13158    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
13159}
13160extern "C" {
13161    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_q"]
13162    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
13163}
13164extern "C" {
13165    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_g"]
13166    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
13167}
13168extern "C" {
13169    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_key"]
13170    pub fn DH_get0_key(
13171        dh: *const DH,
13172        out_pub_key: *mut *const BIGNUM,
13173        out_priv_key: *mut *const BIGNUM,
13174    );
13175}
13176extern "C" {
13177    #[link_name = "\u{1}aws_lc_0_36_0_DH_set0_key"]
13178    pub fn DH_set0_key(
13179        dh: *mut DH,
13180        pub_key: *mut BIGNUM,
13181        priv_key: *mut BIGNUM,
13182    ) -> ::std::os::raw::c_int;
13183}
13184extern "C" {
13185    #[link_name = "\u{1}aws_lc_0_36_0_DH_get0_pqg"]
13186    pub fn DH_get0_pqg(
13187        dh: *const DH,
13188        out_p: *mut *const BIGNUM,
13189        out_q: *mut *const BIGNUM,
13190        out_g: *mut *const BIGNUM,
13191    );
13192}
13193extern "C" {
13194    #[link_name = "\u{1}aws_lc_0_36_0_DH_set0_pqg"]
13195    pub fn DH_set0_pqg(
13196        dh: *mut DH,
13197        p: *mut BIGNUM,
13198        q: *mut BIGNUM,
13199        g: *mut BIGNUM,
13200    ) -> ::std::os::raw::c_int;
13201}
13202extern "C" {
13203    #[link_name = "\u{1}aws_lc_0_36_0_DH_set_length"]
13204    pub fn DH_set_length(dh: *mut DH, priv_length: ::std::os::raw::c_uint)
13205        -> ::std::os::raw::c_int;
13206}
13207extern "C" {
13208    #[link_name = "\u{1}aws_lc_0_36_0_DH_get_rfc7919_2048"]
13209    pub fn DH_get_rfc7919_2048() -> *mut DH;
13210}
13211extern "C" {
13212    #[link_name = "\u{1}aws_lc_0_36_0_DH_get_rfc7919_4096"]
13213    pub fn DH_get_rfc7919_4096() -> *mut DH;
13214}
13215extern "C" {
13216    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_1536"]
13217    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
13218}
13219extern "C" {
13220    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_2048"]
13221    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
13222}
13223extern "C" {
13224    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_3072"]
13225    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
13226}
13227extern "C" {
13228    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_4096"]
13229    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
13230}
13231extern "C" {
13232    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_6144"]
13233    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
13234}
13235extern "C" {
13236    #[link_name = "\u{1}aws_lc_0_36_0_BN_get_rfc3526_prime_8192"]
13237    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
13238}
13239extern "C" {
13240    #[link_name = "\u{1}aws_lc_0_36_0_DH_generate_parameters_ex"]
13241    pub fn DH_generate_parameters_ex(
13242        dh: *mut DH,
13243        prime_bits: ::std::os::raw::c_int,
13244        generator: ::std::os::raw::c_int,
13245        cb: *mut BN_GENCB,
13246    ) -> ::std::os::raw::c_int;
13247}
13248extern "C" {
13249    #[link_name = "\u{1}aws_lc_0_36_0_DH_generate_key"]
13250    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
13251}
13252extern "C" {
13253    #[link_name = "\u{1}aws_lc_0_36_0_DH_compute_key_padded"]
13254    pub fn DH_compute_key_padded(
13255        out: *mut u8,
13256        peers_key: *const BIGNUM,
13257        dh: *mut DH,
13258    ) -> ::std::os::raw::c_int;
13259}
13260extern "C" {
13261    #[link_name = "\u{1}aws_lc_0_36_0_DH_compute_key_hashed"]
13262    pub fn DH_compute_key_hashed(
13263        dh: *mut DH,
13264        out: *mut u8,
13265        out_len: *mut usize,
13266        max_out_len: usize,
13267        peers_key: *const BIGNUM,
13268        digest: *const EVP_MD,
13269    ) -> ::std::os::raw::c_int;
13270}
13271extern "C" {
13272    #[link_name = "\u{1}aws_lc_0_36_0_DH_size"]
13273    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
13274}
13275extern "C" {
13276    #[link_name = "\u{1}aws_lc_0_36_0_DH_num_bits"]
13277    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13278}
13279extern "C" {
13280    #[link_name = "\u{1}aws_lc_0_36_0_DH_check"]
13281    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13282}
13283extern "C" {
13284    #[link_name = "\u{1}aws_lc_0_36_0_DH_check_pub_key"]
13285    pub fn DH_check_pub_key(
13286        dh: *const DH,
13287        pub_key: *const BIGNUM,
13288        out_flags: *mut ::std::os::raw::c_int,
13289    ) -> ::std::os::raw::c_int;
13290}
13291extern "C" {
13292    #[link_name = "\u{1}aws_lc_0_36_0_DHparams_dup"]
13293    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
13294}
13295extern "C" {
13296    #[link_name = "\u{1}aws_lc_0_36_0_DH_parse_parameters"]
13297    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
13298}
13299extern "C" {
13300    #[link_name = "\u{1}aws_lc_0_36_0_DH_marshal_parameters"]
13301    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
13302}
13303extern "C" {
13304    #[link_name = "\u{1}aws_lc_0_36_0_DH_generate_parameters"]
13305    pub fn DH_generate_parameters(
13306        prime_len: ::std::os::raw::c_int,
13307        generator: ::std::os::raw::c_int,
13308        callback: ::std::option::Option<
13309            unsafe extern "C" fn(
13310                arg1: ::std::os::raw::c_int,
13311                arg2: ::std::os::raw::c_int,
13312                arg3: *mut ::std::os::raw::c_void,
13313            ),
13314        >,
13315        cb_arg: *mut ::std::os::raw::c_void,
13316    ) -> *mut DH;
13317}
13318extern "C" {
13319    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DHparams"]
13320    pub fn d2i_DHparams(
13321        ret: *mut *mut DH,
13322        inp: *mut *const ::std::os::raw::c_uchar,
13323        len: ::std::os::raw::c_long,
13324    ) -> *mut DH;
13325}
13326extern "C" {
13327    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DHparams"]
13328    pub fn i2d_DHparams(
13329        in_: *const DH,
13330        outp: *mut *mut ::std::os::raw::c_uchar,
13331    ) -> ::std::os::raw::c_int;
13332}
13333extern "C" {
13334    #[link_name = "\u{1}aws_lc_0_36_0_DH_compute_key"]
13335    pub fn DH_compute_key(
13336        out: *mut u8,
13337        peers_key: *const BIGNUM,
13338        dh: *mut DH,
13339    ) -> ::std::os::raw::c_int;
13340}
13341extern "C" {
13342    #[link_name = "\u{1}aws_lc_0_36_0_DH_get_2048_256"]
13343    pub fn DH_get_2048_256() -> *mut DH;
13344}
13345extern "C" {
13346    #[link_name = "\u{1}aws_lc_0_36_0_DH_clear_flags"]
13347    pub fn DH_clear_flags(dh: *mut DH, flags: ::std::os::raw::c_int);
13348}
13349extern "C" {
13350    #[link_name = "\u{1}aws_lc_0_36_0_EVP_md4"]
13351    pub fn EVP_md4() -> *const EVP_MD;
13352}
13353extern "C" {
13354    #[link_name = "\u{1}aws_lc_0_36_0_EVP_md5"]
13355    pub fn EVP_md5() -> *const EVP_MD;
13356}
13357extern "C" {
13358    #[link_name = "\u{1}aws_lc_0_36_0_EVP_ripemd160"]
13359    pub fn EVP_ripemd160() -> *const EVP_MD;
13360}
13361extern "C" {
13362    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha1"]
13363    pub fn EVP_sha1() -> *const EVP_MD;
13364}
13365extern "C" {
13366    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha224"]
13367    pub fn EVP_sha224() -> *const EVP_MD;
13368}
13369extern "C" {
13370    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha256"]
13371    pub fn EVP_sha256() -> *const EVP_MD;
13372}
13373extern "C" {
13374    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha384"]
13375    pub fn EVP_sha384() -> *const EVP_MD;
13376}
13377extern "C" {
13378    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha512"]
13379    pub fn EVP_sha512() -> *const EVP_MD;
13380}
13381extern "C" {
13382    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha512_224"]
13383    pub fn EVP_sha512_224() -> *const EVP_MD;
13384}
13385extern "C" {
13386    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha512_256"]
13387    pub fn EVP_sha512_256() -> *const EVP_MD;
13388}
13389extern "C" {
13390    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha3_224"]
13391    pub fn EVP_sha3_224() -> *const EVP_MD;
13392}
13393extern "C" {
13394    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha3_256"]
13395    pub fn EVP_sha3_256() -> *const EVP_MD;
13396}
13397extern "C" {
13398    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha3_384"]
13399    pub fn EVP_sha3_384() -> *const EVP_MD;
13400}
13401extern "C" {
13402    #[link_name = "\u{1}aws_lc_0_36_0_EVP_sha3_512"]
13403    pub fn EVP_sha3_512() -> *const EVP_MD;
13404}
13405extern "C" {
13406    #[link_name = "\u{1}aws_lc_0_36_0_EVP_shake128"]
13407    pub fn EVP_shake128() -> *const EVP_MD;
13408}
13409extern "C" {
13410    #[link_name = "\u{1}aws_lc_0_36_0_EVP_shake256"]
13411    pub fn EVP_shake256() -> *const EVP_MD;
13412}
13413extern "C" {
13414    #[link_name = "\u{1}aws_lc_0_36_0_EVP_blake2b256"]
13415    pub fn EVP_blake2b256() -> *const EVP_MD;
13416}
13417extern "C" {
13418    #[link_name = "\u{1}aws_lc_0_36_0_EVP_md5_sha1"]
13419    pub fn EVP_md5_sha1() -> *const EVP_MD;
13420}
13421extern "C" {
13422    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_digestbynid"]
13423    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
13424}
13425extern "C" {
13426    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_digestbyobj"]
13427    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
13428}
13429extern "C" {
13430    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_init"]
13431    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
13432}
13433extern "C" {
13434    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_new"]
13435    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
13436}
13437extern "C" {
13438    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_cleanup"]
13439    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13440}
13441extern "C" {
13442    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_cleanse"]
13443    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
13444}
13445extern "C" {
13446    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_free"]
13447    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
13448}
13449extern "C" {
13450    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_copy_ex"]
13451    pub fn EVP_MD_CTX_copy_ex(
13452        out: *mut EVP_MD_CTX,
13453        in_: *const EVP_MD_CTX,
13454    ) -> ::std::os::raw::c_int;
13455}
13456extern "C" {
13457    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_move"]
13458    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
13459}
13460extern "C" {
13461    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_reset"]
13462    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13463}
13464extern "C" {
13465    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestInit_ex"]
13466    pub fn EVP_DigestInit_ex(
13467        ctx: *mut EVP_MD_CTX,
13468        type_: *const EVP_MD,
13469        engine: *mut ENGINE,
13470    ) -> ::std::os::raw::c_int;
13471}
13472extern "C" {
13473    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestInit"]
13474    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
13475}
13476extern "C" {
13477    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestUpdate"]
13478    pub fn EVP_DigestUpdate(
13479        ctx: *mut EVP_MD_CTX,
13480        data: *const ::std::os::raw::c_void,
13481        len: usize,
13482    ) -> ::std::os::raw::c_int;
13483}
13484extern "C" {
13485    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestFinal_ex"]
13486    pub fn EVP_DigestFinal_ex(
13487        ctx: *mut EVP_MD_CTX,
13488        md_out: *mut u8,
13489        out_size: *mut ::std::os::raw::c_uint,
13490    ) -> ::std::os::raw::c_int;
13491}
13492extern "C" {
13493    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestFinal"]
13494    pub fn EVP_DigestFinal(
13495        ctx: *mut EVP_MD_CTX,
13496        md_out: *mut u8,
13497        out_size: *mut ::std::os::raw::c_uint,
13498    ) -> ::std::os::raw::c_int;
13499}
13500extern "C" {
13501    #[link_name = "\u{1}aws_lc_0_36_0_EVP_Digest"]
13502    pub fn EVP_Digest(
13503        data: *const ::std::os::raw::c_void,
13504        len: usize,
13505        md_out: *mut u8,
13506        out_size: *mut ::std::os::raw::c_uint,
13507        type_: *const EVP_MD,
13508        impl_: *mut ENGINE,
13509    ) -> ::std::os::raw::c_int;
13510}
13511extern "C" {
13512    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_type"]
13513    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
13514}
13515extern "C" {
13516    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_flags"]
13517    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
13518}
13519extern "C" {
13520    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_size"]
13521    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
13522}
13523extern "C" {
13524    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_block_size"]
13525    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
13526}
13527extern "C" {
13528    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_md"]
13529    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
13530}
13531extern "C" {
13532    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_size"]
13533    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
13534}
13535extern "C" {
13536    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_block_size"]
13537    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
13538}
13539extern "C" {
13540    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_type"]
13541    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13542}
13543extern "C" {
13544    #[link_name = "\u{1}aws_lc_0_36_0_EVP_parse_digest_algorithm"]
13545    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
13546}
13547extern "C" {
13548    #[link_name = "\u{1}aws_lc_0_36_0_EVP_marshal_digest_algorithm"]
13549    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
13550}
13551extern "C" {
13552    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_copy"]
13553    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13554}
13555extern "C" {
13556    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_digestbyname"]
13557    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
13558}
13559extern "C" {
13560    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_create"]
13561    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
13562}
13563extern "C" {
13564    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_destroy"]
13565    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
13566}
13567extern "C" {
13568    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestFinalXOF"]
13569    pub fn EVP_DigestFinalXOF(
13570        ctx: *mut EVP_MD_CTX,
13571        out: *mut u8,
13572        len: usize,
13573    ) -> ::std::os::raw::c_int;
13574}
13575extern "C" {
13576    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestSqueeze"]
13577    pub fn EVP_DigestSqueeze(
13578        ctx: *mut EVP_MD_CTX,
13579        out: *mut u8,
13580        len: usize,
13581    ) -> ::std::os::raw::c_int;
13582}
13583extern "C" {
13584    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_meth_get_flags"]
13585    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
13586}
13587extern "C" {
13588    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_nid"]
13589    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::std::os::raw::c_int;
13590}
13591extern "C" {
13592    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_set_pkey_ctx"]
13593    pub fn EVP_MD_CTX_set_pkey_ctx(ctx: *mut EVP_MD_CTX, pctx: *mut EVP_PKEY_CTX);
13594}
13595extern "C" {
13596    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_get_pkey_ctx"]
13597    pub fn EVP_MD_CTX_get_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13598}
13599extern "C" {
13600    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_pkey_ctx"]
13601    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13602}
13603#[repr(C)]
13604#[derive(Debug, Copy, Clone)]
13605pub struct evp_md_pctx_ops {
13606    _unused: [u8; 0],
13607}
13608#[repr(C)]
13609#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13610pub struct env_md_ctx_st {
13611    pub digest: *const EVP_MD,
13612    pub md_data: *mut ::std::os::raw::c_void,
13613    pub update: ::std::option::Option<
13614        unsafe extern "C" fn(
13615            ctx: *mut EVP_MD_CTX,
13616            data: *const ::std::os::raw::c_void,
13617            count: usize,
13618        ) -> ::std::os::raw::c_int,
13619    >,
13620    pub pctx: *mut EVP_PKEY_CTX,
13621    pub pctx_ops: *const evp_md_pctx_ops,
13622    pub flags: ::std::os::raw::c_ulong,
13623}
13624#[test]
13625fn bindgen_test_layout_env_md_ctx_st() {
13626    const UNINIT: ::std::mem::MaybeUninit<env_md_ctx_st> = ::std::mem::MaybeUninit::uninit();
13627    let ptr = UNINIT.as_ptr();
13628    assert_eq!(
13629        ::std::mem::size_of::<env_md_ctx_st>(),
13630        48usize,
13631        "Size of env_md_ctx_st"
13632    );
13633    assert_eq!(
13634        ::std::mem::align_of::<env_md_ctx_st>(),
13635        8usize,
13636        "Alignment of env_md_ctx_st"
13637    );
13638    assert_eq!(
13639        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
13640        0usize,
13641        "Offset of field: env_md_ctx_st::digest"
13642    );
13643    assert_eq!(
13644        unsafe { ::std::ptr::addr_of!((*ptr).md_data) as usize - ptr as usize },
13645        8usize,
13646        "Offset of field: env_md_ctx_st::md_data"
13647    );
13648    assert_eq!(
13649        unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize },
13650        16usize,
13651        "Offset of field: env_md_ctx_st::update"
13652    );
13653    assert_eq!(
13654        unsafe { ::std::ptr::addr_of!((*ptr).pctx) as usize - ptr as usize },
13655        24usize,
13656        "Offset of field: env_md_ctx_st::pctx"
13657    );
13658    assert_eq!(
13659        unsafe { ::std::ptr::addr_of!((*ptr).pctx_ops) as usize - ptr as usize },
13660        32usize,
13661        "Offset of field: env_md_ctx_st::pctx_ops"
13662    );
13663    assert_eq!(
13664        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
13665        40usize,
13666        "Offset of field: env_md_ctx_st::flags"
13667    );
13668}
13669impl Default for env_md_ctx_st {
13670    fn default() -> Self {
13671        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13672        unsafe {
13673            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13674            s.assume_init()
13675        }
13676    }
13677}
13678extern "C" {
13679    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_unstable_sha3_enable"]
13680    pub fn EVP_MD_unstable_sha3_enable(enable: bool);
13681}
13682extern "C" {
13683    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_unstable_sha3_is_enabled"]
13684    pub fn EVP_MD_unstable_sha3_is_enabled() -> bool;
13685}
13686extern "C" {
13687    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_CTX_set_flags"]
13688    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::std::os::raw::c_int);
13689}
13690extern "C" {
13691    #[link_name = "\u{1}aws_lc_0_36_0_EVP_add_digest"]
13692    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
13693}
13694extern "C" {
13695    #[link_name = "\u{1}aws_lc_0_36_0_EVP_md_null"]
13696    pub fn EVP_md_null() -> *const EVP_MD;
13697}
13698extern "C" {
13699    #[link_name = "\u{1}aws_lc_0_36_0_DSA_new"]
13700    pub fn DSA_new() -> *mut DSA;
13701}
13702extern "C" {
13703    #[link_name = "\u{1}aws_lc_0_36_0_DSA_free"]
13704    pub fn DSA_free(dsa: *mut DSA);
13705}
13706extern "C" {
13707    #[link_name = "\u{1}aws_lc_0_36_0_DSA_up_ref"]
13708    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
13709}
13710extern "C" {
13711    #[link_name = "\u{1}aws_lc_0_36_0_DSA_print"]
13712    pub fn DSA_print(
13713        bio: *mut BIO,
13714        dsa: *const DSA,
13715        indent: ::std::os::raw::c_int,
13716    ) -> ::std::os::raw::c_int;
13717}
13718extern "C" {
13719    #[link_name = "\u{1}aws_lc_0_36_0_DSA_print_fp"]
13720    pub fn DSA_print_fp(
13721        fp: *mut FILE,
13722        dsa: *const DSA,
13723        indent: ::std::os::raw::c_int,
13724    ) -> ::std::os::raw::c_int;
13725}
13726extern "C" {
13727    #[link_name = "\u{1}aws_lc_0_36_0_DSA_bits"]
13728    pub fn DSA_bits(dsa: *const DSA) -> ::std::os::raw::c_uint;
13729}
13730extern "C" {
13731    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_pub_key"]
13732    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
13733}
13734extern "C" {
13735    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_priv_key"]
13736    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
13737}
13738extern "C" {
13739    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_p"]
13740    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
13741}
13742extern "C" {
13743    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_q"]
13744    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
13745}
13746extern "C" {
13747    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_g"]
13748    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
13749}
13750extern "C" {
13751    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_key"]
13752    pub fn DSA_get0_key(
13753        dsa: *const DSA,
13754        out_pub_key: *mut *const BIGNUM,
13755        out_priv_key: *mut *const BIGNUM,
13756    );
13757}
13758extern "C" {
13759    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get0_pqg"]
13760    pub fn DSA_get0_pqg(
13761        dsa: *const DSA,
13762        out_p: *mut *const BIGNUM,
13763        out_q: *mut *const BIGNUM,
13764        out_g: *mut *const BIGNUM,
13765    );
13766}
13767extern "C" {
13768    #[link_name = "\u{1}aws_lc_0_36_0_DSA_set0_key"]
13769    pub fn DSA_set0_key(
13770        dsa: *mut DSA,
13771        pub_key: *mut BIGNUM,
13772        priv_key: *mut BIGNUM,
13773    ) -> ::std::os::raw::c_int;
13774}
13775extern "C" {
13776    #[link_name = "\u{1}aws_lc_0_36_0_DSA_set0_pqg"]
13777    pub fn DSA_set0_pqg(
13778        dsa: *mut DSA,
13779        p: *mut BIGNUM,
13780        q: *mut BIGNUM,
13781        g: *mut BIGNUM,
13782    ) -> ::std::os::raw::c_int;
13783}
13784extern "C" {
13785    #[link_name = "\u{1}aws_lc_0_36_0_DSA_generate_parameters_ex"]
13786    pub fn DSA_generate_parameters_ex(
13787        dsa: *mut DSA,
13788        bits: ::std::os::raw::c_uint,
13789        seed: *const u8,
13790        seed_len: usize,
13791        out_counter: *mut ::std::os::raw::c_int,
13792        out_h: *mut ::std::os::raw::c_ulong,
13793        cb: *mut BN_GENCB,
13794    ) -> ::std::os::raw::c_int;
13795}
13796extern "C" {
13797    #[link_name = "\u{1}aws_lc_0_36_0_DSAparams_dup"]
13798    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
13799}
13800extern "C" {
13801    #[link_name = "\u{1}aws_lc_0_36_0_DSA_generate_key"]
13802    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
13803}
13804#[repr(C)]
13805#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13806pub struct DSA_SIG_st {
13807    pub r: *mut BIGNUM,
13808    pub s: *mut BIGNUM,
13809}
13810#[test]
13811fn bindgen_test_layout_DSA_SIG_st() {
13812    const UNINIT: ::std::mem::MaybeUninit<DSA_SIG_st> = ::std::mem::MaybeUninit::uninit();
13813    let ptr = UNINIT.as_ptr();
13814    assert_eq!(
13815        ::std::mem::size_of::<DSA_SIG_st>(),
13816        16usize,
13817        "Size of DSA_SIG_st"
13818    );
13819    assert_eq!(
13820        ::std::mem::align_of::<DSA_SIG_st>(),
13821        8usize,
13822        "Alignment of DSA_SIG_st"
13823    );
13824    assert_eq!(
13825        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
13826        0usize,
13827        "Offset of field: DSA_SIG_st::r"
13828    );
13829    assert_eq!(
13830        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
13831        8usize,
13832        "Offset of field: DSA_SIG_st::s"
13833    );
13834}
13835impl Default for DSA_SIG_st {
13836    fn default() -> Self {
13837        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13838        unsafe {
13839            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13840            s.assume_init()
13841        }
13842    }
13843}
13844extern "C" {
13845    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_new"]
13846    pub fn DSA_SIG_new() -> *mut DSA_SIG;
13847}
13848extern "C" {
13849    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_free"]
13850    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
13851}
13852extern "C" {
13853    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_get0"]
13854    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
13855}
13856extern "C" {
13857    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_set0"]
13858    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM)
13859        -> ::std::os::raw::c_int;
13860}
13861extern "C" {
13862    #[link_name = "\u{1}aws_lc_0_36_0_DSA_do_sign"]
13863    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
13864}
13865extern "C" {
13866    #[link_name = "\u{1}aws_lc_0_36_0_DSA_do_verify"]
13867    pub fn DSA_do_verify(
13868        digest: *const u8,
13869        digest_len: usize,
13870        sig: *const DSA_SIG,
13871        dsa: *const DSA,
13872    ) -> ::std::os::raw::c_int;
13873}
13874extern "C" {
13875    #[link_name = "\u{1}aws_lc_0_36_0_DSA_do_check_signature"]
13876    pub fn DSA_do_check_signature(
13877        out_valid: *mut ::std::os::raw::c_int,
13878        digest: *const u8,
13879        digest_len: usize,
13880        sig: *const DSA_SIG,
13881        dsa: *const DSA,
13882    ) -> ::std::os::raw::c_int;
13883}
13884extern "C" {
13885    #[link_name = "\u{1}aws_lc_0_36_0_DSA_sign"]
13886    pub fn DSA_sign(
13887        type_: ::std::os::raw::c_int,
13888        digest: *const u8,
13889        digest_len: usize,
13890        out_sig: *mut u8,
13891        out_siglen: *mut ::std::os::raw::c_uint,
13892        dsa: *const DSA,
13893    ) -> ::std::os::raw::c_int;
13894}
13895extern "C" {
13896    #[link_name = "\u{1}aws_lc_0_36_0_DSA_verify"]
13897    pub fn DSA_verify(
13898        type_: ::std::os::raw::c_int,
13899        digest: *const u8,
13900        digest_len: usize,
13901        sig: *const u8,
13902        sig_len: usize,
13903        dsa: *const DSA,
13904    ) -> ::std::os::raw::c_int;
13905}
13906extern "C" {
13907    #[link_name = "\u{1}aws_lc_0_36_0_DSA_check_signature"]
13908    pub fn DSA_check_signature(
13909        out_valid: *mut ::std::os::raw::c_int,
13910        digest: *const u8,
13911        digest_len: usize,
13912        sig: *const u8,
13913        sig_len: usize,
13914        dsa: *const DSA,
13915    ) -> ::std::os::raw::c_int;
13916}
13917extern "C" {
13918    #[link_name = "\u{1}aws_lc_0_36_0_DSA_size"]
13919    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
13920}
13921extern "C" {
13922    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_parse"]
13923    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
13924}
13925extern "C" {
13926    #[link_name = "\u{1}aws_lc_0_36_0_DSA_SIG_marshal"]
13927    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
13928}
13929extern "C" {
13930    #[link_name = "\u{1}aws_lc_0_36_0_DSA_parse_public_key"]
13931    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
13932}
13933extern "C" {
13934    #[link_name = "\u{1}aws_lc_0_36_0_DSA_marshal_public_key"]
13935    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13936}
13937extern "C" {
13938    #[link_name = "\u{1}aws_lc_0_36_0_DSA_parse_private_key"]
13939    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
13940}
13941extern "C" {
13942    #[link_name = "\u{1}aws_lc_0_36_0_DSA_marshal_private_key"]
13943    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13944}
13945extern "C" {
13946    #[link_name = "\u{1}aws_lc_0_36_0_DSA_parse_parameters"]
13947    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
13948}
13949extern "C" {
13950    #[link_name = "\u{1}aws_lc_0_36_0_DSA_marshal_parameters"]
13951    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13952}
13953extern "C" {
13954    #[link_name = "\u{1}aws_lc_0_36_0_DSA_dup_DH"]
13955    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
13956}
13957extern "C" {
13958    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get_ex_new_index"]
13959    pub fn DSA_get_ex_new_index(
13960        argl: ::std::os::raw::c_long,
13961        argp: *mut ::std::os::raw::c_void,
13962        unused: *mut CRYPTO_EX_unused,
13963        dup_unused: CRYPTO_EX_dup,
13964        free_func: CRYPTO_EX_free,
13965    ) -> ::std::os::raw::c_int;
13966}
13967extern "C" {
13968    #[link_name = "\u{1}aws_lc_0_36_0_DSA_set_ex_data"]
13969    pub fn DSA_set_ex_data(
13970        dsa: *mut DSA,
13971        idx: ::std::os::raw::c_int,
13972        arg: *mut ::std::os::raw::c_void,
13973    ) -> ::std::os::raw::c_int;
13974}
13975extern "C" {
13976    #[link_name = "\u{1}aws_lc_0_36_0_DSA_get_ex_data"]
13977    pub fn DSA_get_ex_data(
13978        dsa: *const DSA,
13979        idx: ::std::os::raw::c_int,
13980    ) -> *mut ::std::os::raw::c_void;
13981}
13982extern "C" {
13983    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSA_SIG"]
13984    pub fn d2i_DSA_SIG(
13985        out_sig: *mut *mut DSA_SIG,
13986        inp: *mut *const u8,
13987        len: ::std::os::raw::c_long,
13988    ) -> *mut DSA_SIG;
13989}
13990extern "C" {
13991    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSA_SIG"]
13992    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13993}
13994extern "C" {
13995    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSAPublicKey"]
13996    pub fn d2i_DSAPublicKey(
13997        out: *mut *mut DSA,
13998        inp: *mut *const u8,
13999        len: ::std::os::raw::c_long,
14000    ) -> *mut DSA;
14001}
14002extern "C" {
14003    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSAPublicKey"]
14004    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14005}
14006extern "C" {
14007    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSAPrivateKey"]
14008    pub fn d2i_DSAPrivateKey(
14009        out: *mut *mut DSA,
14010        inp: *mut *const u8,
14011        len: ::std::os::raw::c_long,
14012    ) -> *mut DSA;
14013}
14014extern "C" {
14015    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSAPrivateKey"]
14016    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14017}
14018extern "C" {
14019    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSAparams"]
14020    pub fn d2i_DSAparams(
14021        out: *mut *mut DSA,
14022        inp: *mut *const u8,
14023        len: ::std::os::raw::c_long,
14024    ) -> *mut DSA;
14025}
14026extern "C" {
14027    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSAparams"]
14028    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14029}
14030#[repr(u32)]
14031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14032pub enum point_conversion_form_t {
14033    POINT_CONVERSION_COMPRESSED = 2,
14034    POINT_CONVERSION_UNCOMPRESSED = 4,
14035    POINT_CONVERSION_HYBRID = 6,
14036}
14037extern "C" {
14038    #[link_name = "\u{1}aws_lc_0_36_0_EC_group_p224"]
14039    pub fn EC_group_p224() -> *const EC_GROUP;
14040}
14041extern "C" {
14042    #[link_name = "\u{1}aws_lc_0_36_0_EC_group_p256"]
14043    pub fn EC_group_p256() -> *const EC_GROUP;
14044}
14045extern "C" {
14046    #[link_name = "\u{1}aws_lc_0_36_0_EC_group_p384"]
14047    pub fn EC_group_p384() -> *const EC_GROUP;
14048}
14049extern "C" {
14050    #[link_name = "\u{1}aws_lc_0_36_0_EC_group_p521"]
14051    pub fn EC_group_p521() -> *const EC_GROUP;
14052}
14053extern "C" {
14054    #[link_name = "\u{1}aws_lc_0_36_0_EC_group_secp256k1"]
14055    pub fn EC_group_secp256k1() -> *const EC_GROUP;
14056}
14057extern "C" {
14058    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_new_by_curve_name"]
14059    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14060}
14061extern "C" {
14062    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_new_by_curve_name_mutable"]
14063    pub fn EC_GROUP_new_by_curve_name_mutable(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14064}
14065extern "C" {
14066    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_cmp"]
14067    pub fn EC_GROUP_cmp(
14068        a: *const EC_GROUP,
14069        b: *const EC_GROUP,
14070        ignored: *mut BN_CTX,
14071    ) -> ::std::os::raw::c_int;
14072}
14073extern "C" {
14074    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get0_generator"]
14075    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
14076}
14077extern "C" {
14078    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get0_order"]
14079    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
14080}
14081extern "C" {
14082    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_order_bits"]
14083    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14084}
14085extern "C" {
14086    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_cofactor"]
14087    pub fn EC_GROUP_get_cofactor(
14088        group: *const EC_GROUP,
14089        cofactor: *mut BIGNUM,
14090        ctx: *mut BN_CTX,
14091    ) -> ::std::os::raw::c_int;
14092}
14093extern "C" {
14094    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_curve_GFp"]
14095    pub fn EC_GROUP_get_curve_GFp(
14096        group: *const EC_GROUP,
14097        out_p: *mut BIGNUM,
14098        out_a: *mut BIGNUM,
14099        out_b: *mut BIGNUM,
14100        ctx: *mut BN_CTX,
14101    ) -> ::std::os::raw::c_int;
14102}
14103extern "C" {
14104    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_curve_name"]
14105    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14106}
14107extern "C" {
14108    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_degree"]
14109    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
14110}
14111extern "C" {
14112    #[link_name = "\u{1}aws_lc_0_36_0_EC_curve_nid2nist"]
14113    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
14114}
14115extern "C" {
14116    #[link_name = "\u{1}aws_lc_0_36_0_EC_curve_nist2nid"]
14117    pub fn EC_curve_nist2nid(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
14118}
14119extern "C" {
14120    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_new"]
14121    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
14122}
14123extern "C" {
14124    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_free"]
14125    pub fn EC_POINT_free(point: *mut EC_POINT);
14126}
14127extern "C" {
14128    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_copy"]
14129    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
14130}
14131extern "C" {
14132    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_dup"]
14133    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
14134}
14135extern "C" {
14136    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_set_to_infinity"]
14137    pub fn EC_POINT_set_to_infinity(
14138        group: *const EC_GROUP,
14139        point: *mut EC_POINT,
14140    ) -> ::std::os::raw::c_int;
14141}
14142extern "C" {
14143    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_is_at_infinity"]
14144    pub fn EC_POINT_is_at_infinity(
14145        group: *const EC_GROUP,
14146        point: *const EC_POINT,
14147    ) -> ::std::os::raw::c_int;
14148}
14149extern "C" {
14150    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_is_on_curve"]
14151    pub fn EC_POINT_is_on_curve(
14152        group: *const EC_GROUP,
14153        point: *const EC_POINT,
14154        ctx: *mut BN_CTX,
14155    ) -> ::std::os::raw::c_int;
14156}
14157extern "C" {
14158    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_cmp"]
14159    pub fn EC_POINT_cmp(
14160        group: *const EC_GROUP,
14161        a: *const EC_POINT,
14162        b: *const EC_POINT,
14163        ctx: *mut BN_CTX,
14164    ) -> ::std::os::raw::c_int;
14165}
14166extern "C" {
14167    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_get_affine_coordinates_GFp"]
14168    pub fn EC_POINT_get_affine_coordinates_GFp(
14169        group: *const EC_GROUP,
14170        point: *const EC_POINT,
14171        x: *mut BIGNUM,
14172        y: *mut BIGNUM,
14173        ctx: *mut BN_CTX,
14174    ) -> ::std::os::raw::c_int;
14175}
14176extern "C" {
14177    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_get_affine_coordinates"]
14178    pub fn EC_POINT_get_affine_coordinates(
14179        group: *const EC_GROUP,
14180        point: *const EC_POINT,
14181        x: *mut BIGNUM,
14182        y: *mut BIGNUM,
14183        ctx: *mut BN_CTX,
14184    ) -> ::std::os::raw::c_int;
14185}
14186extern "C" {
14187    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_set_affine_coordinates_GFp"]
14188    pub fn EC_POINT_set_affine_coordinates_GFp(
14189        group: *const EC_GROUP,
14190        point: *mut EC_POINT,
14191        x: *const BIGNUM,
14192        y: *const BIGNUM,
14193        ctx: *mut BN_CTX,
14194    ) -> ::std::os::raw::c_int;
14195}
14196extern "C" {
14197    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_set_affine_coordinates"]
14198    pub fn EC_POINT_set_affine_coordinates(
14199        group: *const EC_GROUP,
14200        point: *mut EC_POINT,
14201        x: *const BIGNUM,
14202        y: *const BIGNUM,
14203        ctx: *mut BN_CTX,
14204    ) -> ::std::os::raw::c_int;
14205}
14206extern "C" {
14207    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_point2oct"]
14208    pub fn EC_POINT_point2oct(
14209        group: *const EC_GROUP,
14210        point: *const EC_POINT,
14211        form: point_conversion_form_t,
14212        buf: *mut u8,
14213        len: usize,
14214        ctx: *mut BN_CTX,
14215    ) -> usize;
14216}
14217extern "C" {
14218    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_point2cbb"]
14219    pub fn EC_POINT_point2cbb(
14220        out: *mut CBB,
14221        group: *const EC_GROUP,
14222        point: *const EC_POINT,
14223        form: point_conversion_form_t,
14224        ctx: *mut BN_CTX,
14225    ) -> ::std::os::raw::c_int;
14226}
14227extern "C" {
14228    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_oct2point"]
14229    pub fn EC_POINT_oct2point(
14230        group: *const EC_GROUP,
14231        point: *mut EC_POINT,
14232        buf: *const u8,
14233        len: usize,
14234        ctx: *mut BN_CTX,
14235    ) -> ::std::os::raw::c_int;
14236}
14237extern "C" {
14238    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_set_compressed_coordinates_GFp"]
14239    pub fn EC_POINT_set_compressed_coordinates_GFp(
14240        group: *const EC_GROUP,
14241        point: *mut EC_POINT,
14242        x: *const BIGNUM,
14243        y_bit: ::std::os::raw::c_int,
14244        ctx: *mut BN_CTX,
14245    ) -> ::std::os::raw::c_int;
14246}
14247extern "C" {
14248    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_add"]
14249    pub fn EC_POINT_add(
14250        group: *const EC_GROUP,
14251        r: *mut EC_POINT,
14252        a: *const EC_POINT,
14253        b: *const EC_POINT,
14254        ctx: *mut BN_CTX,
14255    ) -> ::std::os::raw::c_int;
14256}
14257extern "C" {
14258    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_dbl"]
14259    pub fn EC_POINT_dbl(
14260        group: *const EC_GROUP,
14261        r: *mut EC_POINT,
14262        a: *const EC_POINT,
14263        ctx: *mut BN_CTX,
14264    ) -> ::std::os::raw::c_int;
14265}
14266extern "C" {
14267    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_invert"]
14268    pub fn EC_POINT_invert(
14269        group: *const EC_GROUP,
14270        a: *mut EC_POINT,
14271        ctx: *mut BN_CTX,
14272    ) -> ::std::os::raw::c_int;
14273}
14274extern "C" {
14275    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_mul"]
14276    pub fn EC_POINT_mul(
14277        group: *const EC_GROUP,
14278        r: *mut EC_POINT,
14279        n: *const BIGNUM,
14280        q: *const EC_POINT,
14281        m: *const BIGNUM,
14282        ctx: *mut BN_CTX,
14283    ) -> ::std::os::raw::c_int;
14284}
14285extern "C" {
14286    #[link_name = "\u{1}aws_lc_0_36_0_EC_hash_to_curve_p256_xmd_sha256_sswu"]
14287    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
14288        group: *const EC_GROUP,
14289        out: *mut EC_POINT,
14290        dst: *const u8,
14291        dst_len: usize,
14292        msg: *const u8,
14293        msg_len: usize,
14294    ) -> ::std::os::raw::c_int;
14295}
14296extern "C" {
14297    #[link_name = "\u{1}aws_lc_0_36_0_EC_hash_to_curve_p384_xmd_sha384_sswu"]
14298    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
14299        group: *const EC_GROUP,
14300        out: *mut EC_POINT,
14301        dst: *const u8,
14302        dst_len: usize,
14303        msg: *const u8,
14304        msg_len: usize,
14305    ) -> ::std::os::raw::c_int;
14306}
14307extern "C" {
14308    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_free"]
14309    pub fn EC_GROUP_free(group: *mut EC_GROUP);
14310}
14311extern "C" {
14312    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_dup"]
14313    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
14314}
14315extern "C" {
14316    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_new_curve_GFp"]
14317    pub fn EC_GROUP_new_curve_GFp(
14318        p: *const BIGNUM,
14319        a: *const BIGNUM,
14320        b: *const BIGNUM,
14321        ctx: *mut BN_CTX,
14322    ) -> *mut EC_GROUP;
14323}
14324extern "C" {
14325    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_set_generator"]
14326    pub fn EC_GROUP_set_generator(
14327        group: *mut EC_GROUP,
14328        generator: *const EC_POINT,
14329        order: *const BIGNUM,
14330        cofactor: *const BIGNUM,
14331    ) -> ::std::os::raw::c_int;
14332}
14333extern "C" {
14334    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_point2bn"]
14335    pub fn EC_POINT_point2bn(
14336        group: *const EC_GROUP,
14337        point: *const EC_POINT,
14338        form: point_conversion_form_t,
14339        ret: *mut BIGNUM,
14340        ctx: *mut BN_CTX,
14341    ) -> *mut BIGNUM;
14342}
14343extern "C" {
14344    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_bn2point"]
14345    pub fn EC_POINT_bn2point(
14346        group: *const EC_GROUP,
14347        bn: *const BIGNUM,
14348        point: *mut EC_POINT,
14349        ctx: *mut BN_CTX,
14350    ) -> *mut EC_POINT;
14351}
14352extern "C" {
14353    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_order"]
14354    pub fn EC_GROUP_get_order(
14355        group: *const EC_GROUP,
14356        order: *mut BIGNUM,
14357        ctx: *mut BN_CTX,
14358    ) -> ::std::os::raw::c_int;
14359}
14360#[repr(C)]
14361#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14362pub struct EC_builtin_curve {
14363    pub nid: ::std::os::raw::c_int,
14364    pub comment: *const ::std::os::raw::c_char,
14365}
14366#[test]
14367fn bindgen_test_layout_EC_builtin_curve() {
14368    const UNINIT: ::std::mem::MaybeUninit<EC_builtin_curve> = ::std::mem::MaybeUninit::uninit();
14369    let ptr = UNINIT.as_ptr();
14370    assert_eq!(
14371        ::std::mem::size_of::<EC_builtin_curve>(),
14372        16usize,
14373        "Size of EC_builtin_curve"
14374    );
14375    assert_eq!(
14376        ::std::mem::align_of::<EC_builtin_curve>(),
14377        8usize,
14378        "Alignment of EC_builtin_curve"
14379    );
14380    assert_eq!(
14381        unsafe { ::std::ptr::addr_of!((*ptr).nid) as usize - ptr as usize },
14382        0usize,
14383        "Offset of field: EC_builtin_curve::nid"
14384    );
14385    assert_eq!(
14386        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
14387        8usize,
14388        "Offset of field: EC_builtin_curve::comment"
14389    );
14390}
14391impl Default for EC_builtin_curve {
14392    fn default() -> Self {
14393        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14394        unsafe {
14395            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14396            s.assume_init()
14397        }
14398    }
14399}
14400extern "C" {
14401    #[link_name = "\u{1}aws_lc_0_36_0_EC_get_builtin_curves"]
14402    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
14403        -> usize;
14404}
14405extern "C" {
14406    #[link_name = "\u{1}aws_lc_0_36_0_EC_POINT_clear_free"]
14407    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
14408}
14409extern "C" {
14410    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_set_seed"]
14411    pub fn EC_GROUP_set_seed(
14412        group: *mut EC_GROUP,
14413        p: *const ::std::os::raw::c_uchar,
14414        len: usize,
14415    ) -> usize;
14416}
14417extern "C" {
14418    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get0_seed"]
14419    pub fn EC_GROUP_get0_seed(group: *const EC_GROUP) -> *mut ::std::os::raw::c_uchar;
14420}
14421extern "C" {
14422    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_seed_len"]
14423    pub fn EC_GROUP_get_seed_len(group: *const EC_GROUP) -> usize;
14424}
14425extern "C" {
14426    #[link_name = "\u{1}aws_lc_0_36_0_ECPKParameters_print"]
14427    pub fn ECPKParameters_print(
14428        bio: *mut BIO,
14429        group: *const EC_GROUP,
14430        offset: ::std::os::raw::c_int,
14431    ) -> ::std::os::raw::c_int;
14432}
14433extern "C" {
14434    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_set_asn1_flag"]
14435    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
14436}
14437extern "C" {
14438    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_asn1_flag"]
14439    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14440}
14441extern "C" {
14442    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_set_point_conversion_form"]
14443    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
14444}
14445extern "C" {
14446    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_get_point_conversion_form"]
14447    pub fn EC_GROUP_get_point_conversion_form(group: *const EC_GROUP) -> point_conversion_form_t;
14448}
14449extern "C" {
14450    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_decoded_from_explicit_params"]
14451    pub fn EC_KEY_decoded_from_explicit_params(key: *const EC_KEY) -> ::std::os::raw::c_int;
14452}
14453#[repr(C)]
14454#[derive(Debug, Copy, Clone)]
14455pub struct ec_method_st {
14456    _unused: [u8; 0],
14457}
14458pub type EC_METHOD = ec_method_st;
14459extern "C" {
14460    #[link_name = "\u{1}aws_lc_0_36_0_EC_GROUP_method_of"]
14461    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
14462}
14463extern "C" {
14464    #[link_name = "\u{1}aws_lc_0_36_0_EC_METHOD_get_field_type"]
14465    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
14466}
14467extern "C" {
14468    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_new"]
14469    pub fn ENGINE_new() -> *mut ENGINE;
14470}
14471extern "C" {
14472    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_free"]
14473    pub fn ENGINE_free(engine: *mut ENGINE) -> ::std::os::raw::c_int;
14474}
14475extern "C" {
14476    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_set_RSA"]
14477    pub fn ENGINE_set_RSA(engine: *mut ENGINE, method: *const RSA_METHOD) -> ::std::os::raw::c_int;
14478}
14479extern "C" {
14480    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_get_RSA"]
14481    pub fn ENGINE_get_RSA(engine: *const ENGINE) -> *const RSA_METHOD;
14482}
14483extern "C" {
14484    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_set_EC"]
14485    pub fn ENGINE_set_EC(
14486        engine: *mut ENGINE,
14487        method: *const EC_KEY_METHOD,
14488    ) -> ::std::os::raw::c_int;
14489}
14490extern "C" {
14491    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_get_EC"]
14492    pub fn ENGINE_get_EC(engine: *const ENGINE) -> *const EC_KEY_METHOD;
14493}
14494extern "C" {
14495    #[link_name = "\u{1}aws_lc_0_36_0_ENGINE_cleanup"]
14496    pub fn ENGINE_cleanup();
14497}
14498extern "C" {
14499    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_new"]
14500    pub fn EC_KEY_new() -> *mut EC_KEY;
14501}
14502extern "C" {
14503    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_new_method"]
14504    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
14505}
14506extern "C" {
14507    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_new_by_curve_name"]
14508    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
14509}
14510extern "C" {
14511    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_free"]
14512    pub fn EC_KEY_free(key: *mut EC_KEY);
14513}
14514extern "C" {
14515    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_dup"]
14516    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
14517}
14518extern "C" {
14519    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_up_ref"]
14520    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14521}
14522extern "C" {
14523    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_is_opaque"]
14524    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
14525}
14526extern "C" {
14527    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get0_group"]
14528    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
14529}
14530extern "C" {
14531    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_group"]
14532    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14533}
14534extern "C" {
14535    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get0_private_key"]
14536    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
14537}
14538extern "C" {
14539    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_private_key"]
14540    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::std::os::raw::c_int;
14541}
14542extern "C" {
14543    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get0_public_key"]
14544    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
14545}
14546extern "C" {
14547    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_public_key"]
14548    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
14549}
14550extern "C" {
14551    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_enc_flags"]
14552    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
14553}
14554extern "C" {
14555    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_enc_flags"]
14556    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
14557}
14558extern "C" {
14559    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_conv_form"]
14560    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
14561}
14562extern "C" {
14563    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_conv_form"]
14564    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
14565}
14566extern "C" {
14567    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_check_key"]
14568    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
14569}
14570extern "C" {
14571    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_check_fips"]
14572    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
14573}
14574extern "C" {
14575    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_public_key_affine_coordinates"]
14576    pub fn EC_KEY_set_public_key_affine_coordinates(
14577        key: *mut EC_KEY,
14578        x: *const BIGNUM,
14579        y: *const BIGNUM,
14580    ) -> ::std::os::raw::c_int;
14581}
14582extern "C" {
14583    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_key2buf"]
14584    pub fn EC_KEY_key2buf(
14585        key: *const EC_KEY,
14586        form: point_conversion_form_t,
14587        out_buf: *mut *mut ::std::os::raw::c_uchar,
14588        ctx: *mut BN_CTX,
14589    ) -> usize;
14590}
14591extern "C" {
14592    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_generate_key"]
14593    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14594}
14595extern "C" {
14596    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_generate_key_fips"]
14597    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14598}
14599extern "C" {
14600    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_derive_from_secret"]
14601    pub fn EC_KEY_derive_from_secret(
14602        group: *const EC_GROUP,
14603        secret: *const u8,
14604        secret_len: usize,
14605    ) -> *mut EC_KEY;
14606}
14607extern "C" {
14608    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_parse_private_key"]
14609    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
14610}
14611extern "C" {
14612    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_marshal_private_key"]
14613    pub fn EC_KEY_marshal_private_key(
14614        cbb: *mut CBB,
14615        key: *const EC_KEY,
14616        enc_flags: ::std::os::raw::c_uint,
14617    ) -> ::std::os::raw::c_int;
14618}
14619extern "C" {
14620    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_parse_curve_name"]
14621    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
14622}
14623extern "C" {
14624    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_marshal_curve_name"]
14625    pub fn EC_KEY_marshal_curve_name(
14626        cbb: *mut CBB,
14627        group: *const EC_GROUP,
14628    ) -> ::std::os::raw::c_int;
14629}
14630extern "C" {
14631    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_parse_parameters"]
14632    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
14633}
14634extern "C" {
14635    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_ex_new_index"]
14636    pub fn EC_KEY_get_ex_new_index(
14637        argl: ::std::os::raw::c_long,
14638        argp: *mut ::std::os::raw::c_void,
14639        unused: *mut CRYPTO_EX_unused,
14640        dup_unused: CRYPTO_EX_dup,
14641        free_func: CRYPTO_EX_free,
14642    ) -> ::std::os::raw::c_int;
14643}
14644extern "C" {
14645    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_ex_data"]
14646    pub fn EC_KEY_set_ex_data(
14647        r: *mut EC_KEY,
14648        idx: ::std::os::raw::c_int,
14649        arg: *mut ::std::os::raw::c_void,
14650    ) -> ::std::os::raw::c_int;
14651}
14652extern "C" {
14653    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_ex_data"]
14654    pub fn EC_KEY_get_ex_data(
14655        r: *const EC_KEY,
14656        idx: ::std::os::raw::c_int,
14657    ) -> *mut ::std::os::raw::c_void;
14658}
14659extern "C" {
14660    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECPrivateKey"]
14661    pub fn d2i_ECPrivateKey(
14662        out_key: *mut *mut EC_KEY,
14663        inp: *mut *const u8,
14664        len: ::std::os::raw::c_long,
14665    ) -> *mut EC_KEY;
14666}
14667extern "C" {
14668    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECPrivateKey"]
14669    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14670}
14671extern "C" {
14672    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECParameters"]
14673    pub fn d2i_ECParameters(
14674        out_key: *mut *mut EC_KEY,
14675        inp: *mut *const u8,
14676        len: ::std::os::raw::c_long,
14677    ) -> *mut EC_KEY;
14678}
14679extern "C" {
14680    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECParameters"]
14681    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14682}
14683extern "C" {
14684    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECPKParameters_bio"]
14685    pub fn d2i_ECPKParameters_bio(bio: *mut BIO, out_group: *mut *mut EC_GROUP) -> *mut EC_GROUP;
14686}
14687extern "C" {
14688    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECPKParameters_bio"]
14689    pub fn i2d_ECPKParameters_bio(bio: *mut BIO, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14690}
14691extern "C" {
14692    #[link_name = "\u{1}aws_lc_0_36_0_o2i_ECPublicKey"]
14693    pub fn o2i_ECPublicKey(
14694        out_key: *mut *mut EC_KEY,
14695        inp: *mut *const u8,
14696        len: ::std::os::raw::c_long,
14697    ) -> *mut EC_KEY;
14698}
14699extern "C" {
14700    #[link_name = "\u{1}aws_lc_0_36_0_i2o_ECPublicKey"]
14701    pub fn i2o_ECPublicKey(
14702        key: *const EC_KEY,
14703        outp: *mut *mut ::std::os::raw::c_uchar,
14704    ) -> ::std::os::raw::c_int;
14705}
14706extern "C" {
14707    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_default_method"]
14708    pub fn EC_KEY_get_default_method() -> *const EC_KEY_METHOD;
14709}
14710extern "C" {
14711    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_OpenSSL"]
14712    pub fn EC_KEY_OpenSSL() -> *const EC_KEY_METHOD;
14713}
14714extern "C" {
14715    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_METHOD_new"]
14716    pub fn EC_KEY_METHOD_new(eckey_meth: *const EC_KEY_METHOD) -> *mut EC_KEY_METHOD;
14717}
14718extern "C" {
14719    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_METHOD_free"]
14720    pub fn EC_KEY_METHOD_free(eckey_meth: *mut EC_KEY_METHOD);
14721}
14722extern "C" {
14723    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_method"]
14724    pub fn EC_KEY_set_method(ec: *mut EC_KEY, meth: *const EC_KEY_METHOD) -> ::std::os::raw::c_int;
14725}
14726extern "C" {
14727    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_get_method"]
14728    pub fn EC_KEY_get_method(ec: *const EC_KEY) -> *const EC_KEY_METHOD;
14729}
14730extern "C" {
14731    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_METHOD_set_sign_awslc"]
14732    pub fn EC_KEY_METHOD_set_sign_awslc(
14733        meth: *mut EC_KEY_METHOD,
14734        sign: ::std::option::Option<
14735            unsafe extern "C" fn(
14736                type_: ::std::os::raw::c_int,
14737                digest: *const u8,
14738                digest_len: ::std::os::raw::c_int,
14739                sig: *mut u8,
14740                siglen: *mut ::std::os::raw::c_uint,
14741                k_inv: *const BIGNUM,
14742                r: *const BIGNUM,
14743                eckey: *mut EC_KEY,
14744            ) -> ::std::os::raw::c_int,
14745        >,
14746        sign_sig: ::std::option::Option<
14747            unsafe extern "C" fn(
14748                digest: *const u8,
14749                digest_len: ::std::os::raw::c_int,
14750                in_kinv: *const BIGNUM,
14751                in_r: *const BIGNUM,
14752                eckey: *mut EC_KEY,
14753            ) -> *mut ECDSA_SIG,
14754        >,
14755    );
14756}
14757extern "C" {
14758    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_METHOD_set_init_awslc"]
14759    pub fn EC_KEY_METHOD_set_init_awslc(
14760        meth: *mut EC_KEY_METHOD,
14761        init: ::std::option::Option<
14762            unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int,
14763        >,
14764        finish: ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY)>,
14765    );
14766}
14767extern "C" {
14768    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_METHOD_set_flags"]
14769    pub fn EC_KEY_METHOD_set_flags(
14770        meth: *mut EC_KEY_METHOD,
14771        flags: ::std::os::raw::c_int,
14772    ) -> ::std::os::raw::c_int;
14773}
14774extern "C" {
14775    #[link_name = "\u{1}aws_lc_0_36_0_EC_KEY_set_asn1_flag"]
14776    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
14777}
14778extern "C" {
14779    #[link_name = "\u{1}aws_lc_0_36_0_ECDH_compute_key"]
14780    pub fn ECDH_compute_key(
14781        out: *mut ::std::os::raw::c_void,
14782        outlen: usize,
14783        pub_key: *const EC_POINT,
14784        priv_key: *const EC_KEY,
14785        kdf: ::std::option::Option<
14786            unsafe extern "C" fn(
14787                in_: *const ::std::os::raw::c_void,
14788                inlen: usize,
14789                out: *mut ::std::os::raw::c_void,
14790                outlen: *mut usize,
14791            ) -> *mut ::std::os::raw::c_void,
14792        >,
14793    ) -> ::std::os::raw::c_int;
14794}
14795extern "C" {
14796    #[link_name = "\u{1}aws_lc_0_36_0_ECDH_compute_key_fips"]
14797    pub fn ECDH_compute_key_fips(
14798        out: *mut u8,
14799        out_len: usize,
14800        pub_key: *const EC_POINT,
14801        priv_key: *const EC_KEY,
14802    ) -> ::std::os::raw::c_int;
14803}
14804extern "C" {
14805    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_sign"]
14806    pub fn ECDSA_sign(
14807        type_: ::std::os::raw::c_int,
14808        digest: *const u8,
14809        digest_len: usize,
14810        sig: *mut u8,
14811        sig_len: *mut ::std::os::raw::c_uint,
14812        key: *const EC_KEY,
14813    ) -> ::std::os::raw::c_int;
14814}
14815extern "C" {
14816    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_verify"]
14817    pub fn ECDSA_verify(
14818        type_: ::std::os::raw::c_int,
14819        digest: *const u8,
14820        digest_len: usize,
14821        sig: *const u8,
14822        sig_len: usize,
14823        key: *const EC_KEY,
14824    ) -> ::std::os::raw::c_int;
14825}
14826extern "C" {
14827    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_size"]
14828    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
14829}
14830#[repr(C)]
14831#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14832pub struct ecdsa_sig_st {
14833    pub r: *mut BIGNUM,
14834    pub s: *mut BIGNUM,
14835}
14836#[test]
14837fn bindgen_test_layout_ecdsa_sig_st() {
14838    const UNINIT: ::std::mem::MaybeUninit<ecdsa_sig_st> = ::std::mem::MaybeUninit::uninit();
14839    let ptr = UNINIT.as_ptr();
14840    assert_eq!(
14841        ::std::mem::size_of::<ecdsa_sig_st>(),
14842        16usize,
14843        "Size of ecdsa_sig_st"
14844    );
14845    assert_eq!(
14846        ::std::mem::align_of::<ecdsa_sig_st>(),
14847        8usize,
14848        "Alignment of ecdsa_sig_st"
14849    );
14850    assert_eq!(
14851        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
14852        0usize,
14853        "Offset of field: ecdsa_sig_st::r"
14854    );
14855    assert_eq!(
14856        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
14857        8usize,
14858        "Offset of field: ecdsa_sig_st::s"
14859    );
14860}
14861impl Default for ecdsa_sig_st {
14862    fn default() -> Self {
14863        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14864        unsafe {
14865            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14866            s.assume_init()
14867        }
14868    }
14869}
14870extern "C" {
14871    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_new"]
14872    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
14873}
14874extern "C" {
14875    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_free"]
14876    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
14877}
14878extern "C" {
14879    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_get0_r"]
14880    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
14881}
14882extern "C" {
14883    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_get0_s"]
14884    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
14885}
14886extern "C" {
14887    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_get0"]
14888    pub fn ECDSA_SIG_get0(
14889        sig: *const ECDSA_SIG,
14890        out_r: *mut *const BIGNUM,
14891        out_s: *mut *const BIGNUM,
14892    );
14893}
14894extern "C" {
14895    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_set0"]
14896    pub fn ECDSA_SIG_set0(
14897        sig: *mut ECDSA_SIG,
14898        r: *mut BIGNUM,
14899        s: *mut BIGNUM,
14900    ) -> ::std::os::raw::c_int;
14901}
14902extern "C" {
14903    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_do_sign"]
14904    pub fn ECDSA_do_sign(
14905        digest: *const u8,
14906        digest_len: usize,
14907        key: *const EC_KEY,
14908    ) -> *mut ECDSA_SIG;
14909}
14910extern "C" {
14911    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_do_verify"]
14912    pub fn ECDSA_do_verify(
14913        digest: *const u8,
14914        digest_len: usize,
14915        sig: *const ECDSA_SIG,
14916        key: *const EC_KEY,
14917    ) -> ::std::os::raw::c_int;
14918}
14919extern "C" {
14920    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_parse"]
14921    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
14922}
14923extern "C" {
14924    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_from_bytes"]
14925    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
14926}
14927extern "C" {
14928    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_marshal"]
14929    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
14930}
14931extern "C" {
14932    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_to_bytes"]
14933    pub fn ECDSA_SIG_to_bytes(
14934        out_bytes: *mut *mut u8,
14935        out_len: *mut usize,
14936        sig: *const ECDSA_SIG,
14937    ) -> ::std::os::raw::c_int;
14938}
14939extern "C" {
14940    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_SIG_max_len"]
14941    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
14942}
14943extern "C" {
14944    #[link_name = "\u{1}aws_lc_0_36_0_ECDSA_sign_with_nonce_and_leak_private_key_for_testing"]
14945    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
14946        digest: *const u8,
14947        digest_len: usize,
14948        eckey: *const EC_KEY,
14949        nonce: *const u8,
14950        nonce_len: usize,
14951    ) -> *mut ECDSA_SIG;
14952}
14953extern "C" {
14954    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECDSA_SIG"]
14955    pub fn d2i_ECDSA_SIG(
14956        out: *mut *mut ECDSA_SIG,
14957        inp: *mut *const u8,
14958        len: ::std::os::raw::c_long,
14959    ) -> *mut ECDSA_SIG;
14960}
14961extern "C" {
14962    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECDSA_SIG"]
14963    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14964}
14965extern "C" {
14966    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_gcm"]
14967    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
14968}
14969extern "C" {
14970    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_192_gcm"]
14971    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
14972}
14973extern "C" {
14974    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_gcm"]
14975    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
14976}
14977extern "C" {
14978    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_chacha20_poly1305"]
14979    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
14980}
14981extern "C" {
14982    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_xchacha20_poly1305"]
14983    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
14984}
14985extern "C" {
14986    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_ctr_hmac_sha256"]
14987    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
14988}
14989extern "C" {
14990    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_ctr_hmac_sha256"]
14991    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
14992}
14993extern "C" {
14994    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_gcm_siv"]
14995    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
14996}
14997extern "C" {
14998    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_gcm_siv"]
14999    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
15000}
15001extern "C" {
15002    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_gcm_randnonce"]
15003    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
15004}
15005extern "C" {
15006    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_gcm_randnonce"]
15007    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
15008}
15009extern "C" {
15010    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_ccm_bluetooth"]
15011    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
15012}
15013extern "C" {
15014    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_ccm_bluetooth_8"]
15015    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
15016}
15017extern "C" {
15018    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_ccm_matter"]
15019    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
15020}
15021extern "C" {
15022    #[link_name = "\u{1}aws_lc_0_36_0_EVP_has_aes_hardware"]
15023    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
15024}
15025extern "C" {
15026    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_key_length"]
15027    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
15028}
15029extern "C" {
15030    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_nonce_length"]
15031    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
15032}
15033extern "C" {
15034    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_max_overhead"]
15035    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
15036}
15037extern "C" {
15038    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_max_tag_len"]
15039    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
15040}
15041#[repr(C)]
15042#[derive(Copy, Clone)]
15043pub union evp_aead_ctx_st_state {
15044    pub opaque: [u8; 564usize],
15045    pub alignment: u64,
15046    pub ptr: *mut ::std::os::raw::c_void,
15047}
15048#[test]
15049fn bindgen_test_layout_evp_aead_ctx_st_state() {
15050    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st_state> =
15051        ::std::mem::MaybeUninit::uninit();
15052    let ptr = UNINIT.as_ptr();
15053    assert_eq!(
15054        ::std::mem::size_of::<evp_aead_ctx_st_state>(),
15055        568usize,
15056        "Size of evp_aead_ctx_st_state"
15057    );
15058    assert_eq!(
15059        ::std::mem::align_of::<evp_aead_ctx_st_state>(),
15060        8usize,
15061        "Alignment of evp_aead_ctx_st_state"
15062    );
15063    assert_eq!(
15064        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
15065        0usize,
15066        "Offset of field: evp_aead_ctx_st_state::opaque"
15067    );
15068    assert_eq!(
15069        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
15070        0usize,
15071        "Offset of field: evp_aead_ctx_st_state::alignment"
15072    );
15073    assert_eq!(
15074        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
15075        0usize,
15076        "Offset of field: evp_aead_ctx_st_state::ptr"
15077    );
15078}
15079impl Default for evp_aead_ctx_st_state {
15080    fn default() -> Self {
15081        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15082        unsafe {
15083            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15084            s.assume_init()
15085        }
15086    }
15087}
15088#[repr(C)]
15089#[derive(Copy, Clone)]
15090pub struct evp_aead_ctx_st {
15091    pub aead: *const EVP_AEAD,
15092    pub state: evp_aead_ctx_st_state,
15093    pub state_offset: u8,
15094    pub tag_len: u8,
15095}
15096#[test]
15097fn bindgen_test_layout_evp_aead_ctx_st() {
15098    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st> = ::std::mem::MaybeUninit::uninit();
15099    let ptr = UNINIT.as_ptr();
15100    assert_eq!(
15101        ::std::mem::size_of::<evp_aead_ctx_st>(),
15102        584usize,
15103        "Size of evp_aead_ctx_st"
15104    );
15105    assert_eq!(
15106        ::std::mem::align_of::<evp_aead_ctx_st>(),
15107        8usize,
15108        "Alignment of evp_aead_ctx_st"
15109    );
15110    assert_eq!(
15111        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
15112        0usize,
15113        "Offset of field: evp_aead_ctx_st::aead"
15114    );
15115    assert_eq!(
15116        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15117        8usize,
15118        "Offset of field: evp_aead_ctx_st::state"
15119    );
15120    assert_eq!(
15121        unsafe { ::std::ptr::addr_of!((*ptr).state_offset) as usize - ptr as usize },
15122        576usize,
15123        "Offset of field: evp_aead_ctx_st::state_offset"
15124    );
15125    assert_eq!(
15126        unsafe { ::std::ptr::addr_of!((*ptr).tag_len) as usize - ptr as usize },
15127        577usize,
15128        "Offset of field: evp_aead_ctx_st::tag_len"
15129    );
15130}
15131impl Default for evp_aead_ctx_st {
15132    fn default() -> Self {
15133        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15134        unsafe {
15135            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15136            s.assume_init()
15137        }
15138    }
15139}
15140extern "C" {
15141    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_zero"]
15142    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
15143}
15144extern "C" {
15145    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_new"]
15146    pub fn EVP_AEAD_CTX_new(
15147        aead: *const EVP_AEAD,
15148        key: *const u8,
15149        key_len: usize,
15150        tag_len: usize,
15151    ) -> *mut EVP_AEAD_CTX;
15152}
15153extern "C" {
15154    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_free"]
15155    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
15156}
15157extern "C" {
15158    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_init"]
15159    pub fn EVP_AEAD_CTX_init(
15160        ctx: *mut EVP_AEAD_CTX,
15161        aead: *const EVP_AEAD,
15162        key: *const u8,
15163        key_len: usize,
15164        tag_len: usize,
15165        impl_: *mut ENGINE,
15166    ) -> ::std::os::raw::c_int;
15167}
15168extern "C" {
15169    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_cleanup"]
15170    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
15171}
15172extern "C" {
15173    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_seal"]
15174    pub fn EVP_AEAD_CTX_seal(
15175        ctx: *const EVP_AEAD_CTX,
15176        out: *mut u8,
15177        out_len: *mut usize,
15178        max_out_len: usize,
15179        nonce: *const u8,
15180        nonce_len: usize,
15181        in_: *const u8,
15182        in_len: usize,
15183        ad: *const u8,
15184        ad_len: usize,
15185    ) -> ::std::os::raw::c_int;
15186}
15187extern "C" {
15188    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_open"]
15189    pub fn EVP_AEAD_CTX_open(
15190        ctx: *const EVP_AEAD_CTX,
15191        out: *mut u8,
15192        out_len: *mut usize,
15193        max_out_len: usize,
15194        nonce: *const u8,
15195        nonce_len: usize,
15196        in_: *const u8,
15197        in_len: usize,
15198        ad: *const u8,
15199        ad_len: usize,
15200    ) -> ::std::os::raw::c_int;
15201}
15202extern "C" {
15203    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_seal_scatter"]
15204    pub fn EVP_AEAD_CTX_seal_scatter(
15205        ctx: *const EVP_AEAD_CTX,
15206        out: *mut u8,
15207        out_tag: *mut u8,
15208        out_tag_len: *mut usize,
15209        max_out_tag_len: usize,
15210        nonce: *const u8,
15211        nonce_len: usize,
15212        in_: *const u8,
15213        in_len: usize,
15214        extra_in: *const u8,
15215        extra_in_len: usize,
15216        ad: *const u8,
15217        ad_len: usize,
15218    ) -> ::std::os::raw::c_int;
15219}
15220extern "C" {
15221    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_open_gather"]
15222    pub fn EVP_AEAD_CTX_open_gather(
15223        ctx: *const EVP_AEAD_CTX,
15224        out: *mut u8,
15225        nonce: *const u8,
15226        nonce_len: usize,
15227        in_: *const u8,
15228        in_len: usize,
15229        in_tag: *const u8,
15230        in_tag_len: usize,
15231        ad: *const u8,
15232        ad_len: usize,
15233    ) -> ::std::os::raw::c_int;
15234}
15235extern "C" {
15236    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_aead"]
15237    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
15238}
15239extern "C" {
15240    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_cbc_sha1_tls"]
15241    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
15242}
15243extern "C" {
15244    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_cbc_sha1_tls_implicit_iv"]
15245    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15246}
15247extern "C" {
15248    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_cbc_sha1_tls"]
15249    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
15250}
15251extern "C" {
15252    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_cbc_sha1_tls_implicit_iv"]
15253    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15254}
15255extern "C" {
15256    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_cbc_sha256_tls"]
15257    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
15258}
15259extern "C" {
15260    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_cbc_sha256_tls_implicit_iv"]
15261    pub fn EVP_aead_aes_128_cbc_sha256_tls_implicit_iv() -> *const EVP_AEAD;
15262}
15263extern "C" {
15264    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_cbc_sha384_tls"]
15265    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
15266}
15267extern "C" {
15268    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_des_ede3_cbc_sha1_tls"]
15269    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
15270}
15271extern "C" {
15272    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv"]
15273    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15274}
15275extern "C" {
15276    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_null_sha1_tls"]
15277    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
15278}
15279extern "C" {
15280    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_gcm_tls12"]
15281    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
15282}
15283extern "C" {
15284    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_gcm_tls12"]
15285    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
15286}
15287extern "C" {
15288    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_128_gcm_tls13"]
15289    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
15290}
15291extern "C" {
15292    #[link_name = "\u{1}aws_lc_0_36_0_EVP_aead_aes_256_gcm_tls13"]
15293    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
15294}
15295pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
15296pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
15297pub type evp_aead_direction_t = ::std::os::raw::c_uint;
15298extern "C" {
15299    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_init_with_direction"]
15300    pub fn EVP_AEAD_CTX_init_with_direction(
15301        ctx: *mut EVP_AEAD_CTX,
15302        aead: *const EVP_AEAD,
15303        key: *const u8,
15304        key_len: usize,
15305        tag_len: usize,
15306        dir: evp_aead_direction_t,
15307    ) -> ::std::os::raw::c_int;
15308}
15309extern "C" {
15310    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_get_iv"]
15311    pub fn EVP_AEAD_CTX_get_iv(
15312        ctx: *const EVP_AEAD_CTX,
15313        out_iv: *mut *const u8,
15314        out_len: *mut usize,
15315    ) -> ::std::os::raw::c_int;
15316}
15317extern "C" {
15318    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_CTX_tag_len"]
15319    pub fn EVP_AEAD_CTX_tag_len(
15320        ctx: *const EVP_AEAD_CTX,
15321        out_tag_len: *mut usize,
15322        in_len: usize,
15323        extra_in_len: usize,
15324    ) -> ::std::os::raw::c_int;
15325}
15326extern "C" {
15327    #[link_name = "\u{1}aws_lc_0_36_0_EVP_AEAD_get_iv_from_ipv4_nanosecs"]
15328    pub fn EVP_AEAD_get_iv_from_ipv4_nanosecs(
15329        ipv4_address: u32,
15330        nanosecs: u64,
15331        out_iv: *mut u8,
15332    ) -> ::std::os::raw::c_int;
15333}
15334extern "C" {
15335    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_dup"]
15336    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15337}
15338extern "C" {
15339    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_cmp"]
15340    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15341}
15342extern "C" {
15343    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_get0_data"]
15344    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15345}
15346extern "C" {
15347    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_length"]
15348    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15349}
15350extern "C" {
15351    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_obj2nid"]
15352    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15353}
15354extern "C" {
15355    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_cbs2nid"]
15356    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::std::os::raw::c_int;
15357}
15358extern "C" {
15359    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_sn2nid"]
15360    pub fn OBJ_sn2nid(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15361}
15362extern "C" {
15363    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_ln2nid"]
15364    pub fn OBJ_ln2nid(long_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15365}
15366extern "C" {
15367    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_txt2nid"]
15368    pub fn OBJ_txt2nid(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15369}
15370extern "C" {
15371    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_nid2obj"]
15372    pub fn OBJ_nid2obj(nid: ::std::os::raw::c_int) -> *mut ASN1_OBJECT;
15373}
15374extern "C" {
15375    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_get_undef"]
15376    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15377}
15378extern "C" {
15379    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_nid2sn"]
15380    pub fn OBJ_nid2sn(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15381}
15382extern "C" {
15383    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_nid2ln"]
15384    pub fn OBJ_nid2ln(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15385}
15386extern "C" {
15387    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_nid2cbb"]
15388    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
15389}
15390extern "C" {
15391    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_txt2obj"]
15392    pub fn OBJ_txt2obj(
15393        s: *const ::std::os::raw::c_char,
15394        dont_search_names: ::std::os::raw::c_int,
15395    ) -> *mut ASN1_OBJECT;
15396}
15397extern "C" {
15398    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_obj2txt"]
15399    pub fn OBJ_obj2txt(
15400        out: *mut ::std::os::raw::c_char,
15401        out_len: ::std::os::raw::c_int,
15402        obj: *const ASN1_OBJECT,
15403        always_return_oid: ::std::os::raw::c_int,
15404    ) -> ::std::os::raw::c_int;
15405}
15406extern "C" {
15407    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_create"]
15408    pub fn OBJ_create(
15409        oid: *const ::std::os::raw::c_char,
15410        short_name: *const ::std::os::raw::c_char,
15411        long_name: *const ::std::os::raw::c_char,
15412    ) -> ::std::os::raw::c_int;
15413}
15414extern "C" {
15415    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_find_sigid_algs"]
15416    pub fn OBJ_find_sigid_algs(
15417        sign_nid: ::std::os::raw::c_int,
15418        out_digest_nid: *mut ::std::os::raw::c_int,
15419        out_pkey_nid: *mut ::std::os::raw::c_int,
15420    ) -> ::std::os::raw::c_int;
15421}
15422extern "C" {
15423    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_find_sigid_by_algs"]
15424    pub fn OBJ_find_sigid_by_algs(
15425        out_sign_nid: *mut ::std::os::raw::c_int,
15426        digest_nid: ::std::os::raw::c_int,
15427        pkey_nid: ::std::os::raw::c_int,
15428    ) -> ::std::os::raw::c_int;
15429}
15430#[repr(C)]
15431#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15432pub struct obj_name_st {
15433    pub type_: ::std::os::raw::c_int,
15434    pub alias: ::std::os::raw::c_int,
15435    pub name: *const ::std::os::raw::c_char,
15436    pub data: *const ::std::os::raw::c_char,
15437}
15438#[test]
15439fn bindgen_test_layout_obj_name_st() {
15440    const UNINIT: ::std::mem::MaybeUninit<obj_name_st> = ::std::mem::MaybeUninit::uninit();
15441    let ptr = UNINIT.as_ptr();
15442    assert_eq!(
15443        ::std::mem::size_of::<obj_name_st>(),
15444        24usize,
15445        "Size of obj_name_st"
15446    );
15447    assert_eq!(
15448        ::std::mem::align_of::<obj_name_st>(),
15449        8usize,
15450        "Alignment of obj_name_st"
15451    );
15452    assert_eq!(
15453        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
15454        0usize,
15455        "Offset of field: obj_name_st::type_"
15456    );
15457    assert_eq!(
15458        unsafe { ::std::ptr::addr_of!((*ptr).alias) as usize - ptr as usize },
15459        4usize,
15460        "Offset of field: obj_name_st::alias"
15461    );
15462    assert_eq!(
15463        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
15464        8usize,
15465        "Offset of field: obj_name_st::name"
15466    );
15467    assert_eq!(
15468        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15469        16usize,
15470        "Offset of field: obj_name_st::data"
15471    );
15472}
15473impl Default for obj_name_st {
15474    fn default() -> Self {
15475        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15476        unsafe {
15477            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15478            s.assume_init()
15479        }
15480    }
15481}
15482pub type OBJ_NAME = obj_name_st;
15483extern "C" {
15484    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_NAME_do_all_sorted"]
15485    pub fn OBJ_NAME_do_all_sorted(
15486        type_: ::std::os::raw::c_int,
15487        callback: ::std::option::Option<
15488            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::std::os::raw::c_void),
15489        >,
15490        arg: *mut ::std::os::raw::c_void,
15491    );
15492}
15493extern "C" {
15494    #[link_name = "\u{1}aws_lc_0_36_0_OBJ_cleanup"]
15495    pub fn OBJ_cleanup();
15496}
15497extern "C" {
15498    #[link_name = "\u{1}aws_lc_0_36_0_MD5_Init"]
15499    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15500}
15501extern "C" {
15502    #[link_name = "\u{1}aws_lc_0_36_0_MD5_Update"]
15503    pub fn MD5_Update(
15504        md5: *mut MD5_CTX,
15505        data: *const ::std::os::raw::c_void,
15506        len: usize,
15507    ) -> ::std::os::raw::c_int;
15508}
15509extern "C" {
15510    #[link_name = "\u{1}aws_lc_0_36_0_MD5_Final"]
15511    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15512}
15513extern "C" {
15514    #[link_name = "\u{1}aws_lc_0_36_0_MD5"]
15515    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15516}
15517extern "C" {
15518    #[link_name = "\u{1}aws_lc_0_36_0_MD5_Transform"]
15519    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
15520}
15521#[repr(C)]
15522#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15523pub struct md5_state_st {
15524    pub h: [u32; 4usize],
15525    pub Nl: u32,
15526    pub Nh: u32,
15527    pub data: [u8; 64usize],
15528    pub num: ::std::os::raw::c_uint,
15529}
15530#[test]
15531fn bindgen_test_layout_md5_state_st() {
15532    const UNINIT: ::std::mem::MaybeUninit<md5_state_st> = ::std::mem::MaybeUninit::uninit();
15533    let ptr = UNINIT.as_ptr();
15534    assert_eq!(
15535        ::std::mem::size_of::<md5_state_st>(),
15536        92usize,
15537        "Size of md5_state_st"
15538    );
15539    assert_eq!(
15540        ::std::mem::align_of::<md5_state_st>(),
15541        4usize,
15542        "Alignment of md5_state_st"
15543    );
15544    assert_eq!(
15545        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
15546        0usize,
15547        "Offset of field: md5_state_st::h"
15548    );
15549    assert_eq!(
15550        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
15551        16usize,
15552        "Offset of field: md5_state_st::Nl"
15553    );
15554    assert_eq!(
15555        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
15556        20usize,
15557        "Offset of field: md5_state_st::Nh"
15558    );
15559    assert_eq!(
15560        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15561        24usize,
15562        "Offset of field: md5_state_st::data"
15563    );
15564    assert_eq!(
15565        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
15566        88usize,
15567        "Offset of field: md5_state_st::num"
15568    );
15569}
15570impl Default for md5_state_st {
15571    fn default() -> Self {
15572        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15573        unsafe {
15574            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15575            s.assume_init()
15576        }
15577    }
15578}
15579extern "C" {
15580    #[link_name = "\u{1}aws_lc_0_36_0_HMAC"]
15581    pub fn HMAC(
15582        evp_md: *const EVP_MD,
15583        key: *const ::std::os::raw::c_void,
15584        key_len: usize,
15585        data: *const u8,
15586        data_len: usize,
15587        out: *mut u8,
15588        out_len: *mut ::std::os::raw::c_uint,
15589    ) -> *mut u8;
15590}
15591extern "C" {
15592    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_init"]
15593    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
15594}
15595extern "C" {
15596    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_new"]
15597    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
15598}
15599extern "C" {
15600    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_cleanup"]
15601    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
15602}
15603extern "C" {
15604    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_cleanse"]
15605    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
15606}
15607extern "C" {
15608    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_free"]
15609    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
15610}
15611extern "C" {
15612    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_Init_ex"]
15613    pub fn HMAC_Init_ex(
15614        ctx: *mut HMAC_CTX,
15615        key: *const ::std::os::raw::c_void,
15616        key_len: usize,
15617        md: *const EVP_MD,
15618        impl_: *mut ENGINE,
15619    ) -> ::std::os::raw::c_int;
15620}
15621extern "C" {
15622    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_Update"]
15623    pub fn HMAC_Update(
15624        ctx: *mut HMAC_CTX,
15625        data: *const u8,
15626        data_len: usize,
15627    ) -> ::std::os::raw::c_int;
15628}
15629extern "C" {
15630    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_Final"]
15631    pub fn HMAC_Final(
15632        ctx: *mut HMAC_CTX,
15633        out: *mut u8,
15634        out_len: *mut ::std::os::raw::c_uint,
15635    ) -> ::std::os::raw::c_int;
15636}
15637extern "C" {
15638    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_size"]
15639    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
15640}
15641extern "C" {
15642    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_get_md"]
15643    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
15644}
15645extern "C" {
15646    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_copy_ex"]
15647    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15648}
15649extern "C" {
15650    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_reset"]
15651    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
15652}
15653extern "C" {
15654    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_set_precomputed_key_export"]
15655    pub fn HMAC_set_precomputed_key_export(ctx: *mut HMAC_CTX) -> ::std::os::raw::c_int;
15656}
15657extern "C" {
15658    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_get_precomputed_key"]
15659    pub fn HMAC_get_precomputed_key(
15660        ctx: *mut HMAC_CTX,
15661        out: *mut u8,
15662        out_len: *mut usize,
15663    ) -> ::std::os::raw::c_int;
15664}
15665extern "C" {
15666    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_Init_from_precomputed_key"]
15667    pub fn HMAC_Init_from_precomputed_key(
15668        ctx: *mut HMAC_CTX,
15669        precomputed_key: *const u8,
15670        precompute_key_len: usize,
15671        md: *const EVP_MD,
15672    ) -> ::std::os::raw::c_int;
15673}
15674extern "C" {
15675    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_Init"]
15676    pub fn HMAC_Init(
15677        ctx: *mut HMAC_CTX,
15678        key: *const ::std::os::raw::c_void,
15679        key_len: ::std::os::raw::c_int,
15680        md: *const EVP_MD,
15681    ) -> ::std::os::raw::c_int;
15682}
15683extern "C" {
15684    #[link_name = "\u{1}aws_lc_0_36_0_HMAC_CTX_copy"]
15685    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15686}
15687#[repr(C)]
15688#[derive(Debug, Copy, Clone)]
15689pub struct hmac_methods_st {
15690    _unused: [u8; 0],
15691}
15692pub type HmacMethods = hmac_methods_st;
15693#[repr(C)]
15694#[derive(Copy, Clone)]
15695pub union md_ctx_union {
15696    pub md5: MD5_CTX,
15697    pub sha1: SHA_CTX,
15698    pub sha256: SHA256_CTX,
15699    pub sha512: SHA512_CTX,
15700    pub sha3: [u8; 400usize],
15701}
15702#[test]
15703fn bindgen_test_layout_md_ctx_union() {
15704    const UNINIT: ::std::mem::MaybeUninit<md_ctx_union> = ::std::mem::MaybeUninit::uninit();
15705    let ptr = UNINIT.as_ptr();
15706    assert_eq!(
15707        ::std::mem::size_of::<md_ctx_union>(),
15708        400usize,
15709        "Size of md_ctx_union"
15710    );
15711    assert_eq!(
15712        ::std::mem::align_of::<md_ctx_union>(),
15713        8usize,
15714        "Alignment of md_ctx_union"
15715    );
15716    assert_eq!(
15717        unsafe { ::std::ptr::addr_of!((*ptr).md5) as usize - ptr as usize },
15718        0usize,
15719        "Offset of field: md_ctx_union::md5"
15720    );
15721    assert_eq!(
15722        unsafe { ::std::ptr::addr_of!((*ptr).sha1) as usize - ptr as usize },
15723        0usize,
15724        "Offset of field: md_ctx_union::sha1"
15725    );
15726    assert_eq!(
15727        unsafe { ::std::ptr::addr_of!((*ptr).sha256) as usize - ptr as usize },
15728        0usize,
15729        "Offset of field: md_ctx_union::sha256"
15730    );
15731    assert_eq!(
15732        unsafe { ::std::ptr::addr_of!((*ptr).sha512) as usize - ptr as usize },
15733        0usize,
15734        "Offset of field: md_ctx_union::sha512"
15735    );
15736    assert_eq!(
15737        unsafe { ::std::ptr::addr_of!((*ptr).sha3) as usize - ptr as usize },
15738        0usize,
15739        "Offset of field: md_ctx_union::sha3"
15740    );
15741}
15742impl Default for md_ctx_union {
15743    fn default() -> Self {
15744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15745        unsafe {
15746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15747            s.assume_init()
15748        }
15749    }
15750}
15751#[repr(C)]
15752#[derive(Copy, Clone)]
15753pub struct hmac_ctx_st {
15754    pub md: *const EVP_MD,
15755    pub methods: *const HmacMethods,
15756    pub md_ctx: md_ctx_union,
15757    pub i_ctx: md_ctx_union,
15758    pub o_ctx: md_ctx_union,
15759    pub state: i8,
15760}
15761#[test]
15762fn bindgen_test_layout_hmac_ctx_st() {
15763    const UNINIT: ::std::mem::MaybeUninit<hmac_ctx_st> = ::std::mem::MaybeUninit::uninit();
15764    let ptr = UNINIT.as_ptr();
15765    assert_eq!(
15766        ::std::mem::size_of::<hmac_ctx_st>(),
15767        1224usize,
15768        "Size of hmac_ctx_st"
15769    );
15770    assert_eq!(
15771        ::std::mem::align_of::<hmac_ctx_st>(),
15772        8usize,
15773        "Alignment of hmac_ctx_st"
15774    );
15775    assert_eq!(
15776        unsafe { ::std::ptr::addr_of!((*ptr).md) as usize - ptr as usize },
15777        0usize,
15778        "Offset of field: hmac_ctx_st::md"
15779    );
15780    assert_eq!(
15781        unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize },
15782        8usize,
15783        "Offset of field: hmac_ctx_st::methods"
15784    );
15785    assert_eq!(
15786        unsafe { ::std::ptr::addr_of!((*ptr).md_ctx) as usize - ptr as usize },
15787        16usize,
15788        "Offset of field: hmac_ctx_st::md_ctx"
15789    );
15790    assert_eq!(
15791        unsafe { ::std::ptr::addr_of!((*ptr).i_ctx) as usize - ptr as usize },
15792        416usize,
15793        "Offset of field: hmac_ctx_st::i_ctx"
15794    );
15795    assert_eq!(
15796        unsafe { ::std::ptr::addr_of!((*ptr).o_ctx) as usize - ptr as usize },
15797        816usize,
15798        "Offset of field: hmac_ctx_st::o_ctx"
15799    );
15800    assert_eq!(
15801        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15802        1216usize,
15803        "Offset of field: hmac_ctx_st::state"
15804    );
15805}
15806impl Default for hmac_ctx_st {
15807    fn default() -> Self {
15808        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15809        unsafe {
15810            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15811            s.assume_init()
15812        }
15813    }
15814}
15815extern "C" {
15816    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_new"]
15817    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
15818}
15819extern "C" {
15820    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_free"]
15821    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
15822}
15823extern "C" {
15824    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_up_ref"]
15825    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
15826}
15827extern "C" {
15828    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_is_opaque"]
15829    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15830}
15831extern "C" {
15832    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_cmp"]
15833    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
15834}
15835extern "C" {
15836    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_copy_parameters"]
15837    pub fn EVP_PKEY_copy_parameters(
15838        to: *mut EVP_PKEY,
15839        from: *const EVP_PKEY,
15840    ) -> ::std::os::raw::c_int;
15841}
15842extern "C" {
15843    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_missing_parameters"]
15844    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15845}
15846extern "C" {
15847    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_size"]
15848    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15849}
15850extern "C" {
15851    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_bits"]
15852    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15853}
15854extern "C" {
15855    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_id"]
15856    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15857}
15858extern "C" {
15859    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_get0_name"]
15860    pub fn EVP_MD_get0_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15861}
15862extern "C" {
15863    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_name"]
15864    pub fn EVP_MD_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15865}
15866extern "C" {
15867    #[link_name = "\u{1}aws_lc_0_36_0_EVP_get_pw_prompt"]
15868    pub fn EVP_get_pw_prompt() -> *mut ::std::os::raw::c_char;
15869}
15870extern "C" {
15871    #[link_name = "\u{1}aws_lc_0_36_0_EVP_read_pw_string"]
15872    pub fn EVP_read_pw_string(
15873        buf: *mut ::std::os::raw::c_char,
15874        length: ::std::os::raw::c_int,
15875        prompt: *const ::std::os::raw::c_char,
15876        verify: ::std::os::raw::c_int,
15877    ) -> ::std::os::raw::c_int;
15878}
15879extern "C" {
15880    #[link_name = "\u{1}aws_lc_0_36_0_EVP_read_pw_string_min"]
15881    pub fn EVP_read_pw_string_min(
15882        buf: *mut ::std::os::raw::c_char,
15883        min_length: ::std::os::raw::c_int,
15884        length: ::std::os::raw::c_int,
15885        prompt: *const ::std::os::raw::c_char,
15886        verify: ::std::os::raw::c_int,
15887    ) -> ::std::os::raw::c_int;
15888}
15889extern "C" {
15890    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set1_RSA"]
15891    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15892}
15893extern "C" {
15894    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_assign_RSA"]
15895    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15896}
15897extern "C" {
15898    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get0_RSA"]
15899    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15900}
15901extern "C" {
15902    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get1_RSA"]
15903    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15904}
15905extern "C" {
15906    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set1_DSA"]
15907    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15908}
15909extern "C" {
15910    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_assign_DSA"]
15911    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15912}
15913extern "C" {
15914    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get0_DSA"]
15915    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15916}
15917extern "C" {
15918    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get1_DSA"]
15919    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15920}
15921extern "C" {
15922    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set1_EC_KEY"]
15923    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15924}
15925extern "C" {
15926    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_assign_EC_KEY"]
15927    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15928}
15929extern "C" {
15930    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get0_EC_KEY"]
15931    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15932}
15933extern "C" {
15934    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get1_EC_KEY"]
15935    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15936}
15937extern "C" {
15938    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set1_DH"]
15939    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15940}
15941extern "C" {
15942    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_assign_DH"]
15943    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15944}
15945extern "C" {
15946    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get0_DH"]
15947    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
15948}
15949extern "C" {
15950    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get1_DH"]
15951    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
15952}
15953extern "C" {
15954    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dh_paramgen_prime_len"]
15955    pub fn EVP_PKEY_CTX_set_dh_paramgen_prime_len(
15956        ctx: *mut EVP_PKEY_CTX,
15957        pbits: ::std::os::raw::c_int,
15958    ) -> ::std::os::raw::c_int;
15959}
15960extern "C" {
15961    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dh_paramgen_generator"]
15962    pub fn EVP_PKEY_CTX_set_dh_paramgen_generator(
15963        ctx: *mut EVP_PKEY_CTX,
15964        gen_: ::std::os::raw::c_int,
15965    ) -> ::std::os::raw::c_int;
15966}
15967extern "C" {
15968    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set_type"]
15969    pub fn EVP_PKEY_set_type(
15970        pkey: *mut EVP_PKEY,
15971        type_: ::std::os::raw::c_int,
15972    ) -> ::std::os::raw::c_int;
15973}
15974extern "C" {
15975    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set_type_str"]
15976    pub fn EVP_PKEY_set_type_str(
15977        pkey: *mut EVP_PKEY,
15978        str_: *const ::std::os::raw::c_char,
15979        len: ::std::os::raw::c_int,
15980    ) -> ::std::os::raw::c_int;
15981}
15982extern "C" {
15983    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_cmp_parameters"]
15984    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
15985        -> ::std::os::raw::c_int;
15986}
15987extern "C" {
15988    #[link_name = "\u{1}aws_lc_0_36_0_EVP_parse_public_key"]
15989    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15990}
15991extern "C" {
15992    #[link_name = "\u{1}aws_lc_0_36_0_EVP_marshal_public_key"]
15993    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
15994}
15995extern "C" {
15996    #[link_name = "\u{1}aws_lc_0_36_0_EVP_parse_private_key"]
15997    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15998}
15999extern "C" {
16000    #[link_name = "\u{1}aws_lc_0_36_0_EVP_marshal_private_key"]
16001    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
16002}
16003extern "C" {
16004    #[link_name = "\u{1}aws_lc_0_36_0_EVP_marshal_private_key_v2"]
16005    pub fn EVP_marshal_private_key_v2(cbb: *mut CBB, key: *const EVP_PKEY)
16006        -> ::std::os::raw::c_int;
16007}
16008extern "C" {
16009    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_new_raw_private_key"]
16010    pub fn EVP_PKEY_new_raw_private_key(
16011        type_: ::std::os::raw::c_int,
16012        unused: *mut ENGINE,
16013        in_: *const u8,
16014        len: usize,
16015    ) -> *mut EVP_PKEY;
16016}
16017extern "C" {
16018    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_new_raw_public_key"]
16019    pub fn EVP_PKEY_new_raw_public_key(
16020        type_: ::std::os::raw::c_int,
16021        unused: *mut ENGINE,
16022        in_: *const u8,
16023        len: usize,
16024    ) -> *mut EVP_PKEY;
16025}
16026extern "C" {
16027    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get_raw_private_key"]
16028    pub fn EVP_PKEY_get_raw_private_key(
16029        pkey: *const EVP_PKEY,
16030        out: *mut u8,
16031        out_len: *mut usize,
16032    ) -> ::std::os::raw::c_int;
16033}
16034extern "C" {
16035    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get_raw_public_key"]
16036    pub fn EVP_PKEY_get_raw_public_key(
16037        pkey: *const EVP_PKEY,
16038        out: *mut u8,
16039        out_len: *mut usize,
16040    ) -> ::std::os::raw::c_int;
16041}
16042extern "C" {
16043    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestSignInit"]
16044    pub fn EVP_DigestSignInit(
16045        ctx: *mut EVP_MD_CTX,
16046        pctx: *mut *mut EVP_PKEY_CTX,
16047        type_: *const EVP_MD,
16048        e: *mut ENGINE,
16049        pkey: *mut EVP_PKEY,
16050    ) -> ::std::os::raw::c_int;
16051}
16052extern "C" {
16053    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestSignUpdate"]
16054    pub fn EVP_DigestSignUpdate(
16055        ctx: *mut EVP_MD_CTX,
16056        data: *const ::std::os::raw::c_void,
16057        len: usize,
16058    ) -> ::std::os::raw::c_int;
16059}
16060extern "C" {
16061    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestSignFinal"]
16062    pub fn EVP_DigestSignFinal(
16063        ctx: *mut EVP_MD_CTX,
16064        out_sig: *mut u8,
16065        out_sig_len: *mut usize,
16066    ) -> ::std::os::raw::c_int;
16067}
16068extern "C" {
16069    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestSign"]
16070    pub fn EVP_DigestSign(
16071        ctx: *mut EVP_MD_CTX,
16072        out_sig: *mut u8,
16073        out_sig_len: *mut usize,
16074        data: *const u8,
16075        data_len: usize,
16076    ) -> ::std::os::raw::c_int;
16077}
16078extern "C" {
16079    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestVerifyInit"]
16080    pub fn EVP_DigestVerifyInit(
16081        ctx: *mut EVP_MD_CTX,
16082        pctx: *mut *mut EVP_PKEY_CTX,
16083        type_: *const EVP_MD,
16084        e: *mut ENGINE,
16085        pkey: *mut EVP_PKEY,
16086    ) -> ::std::os::raw::c_int;
16087}
16088extern "C" {
16089    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestVerifyUpdate"]
16090    pub fn EVP_DigestVerifyUpdate(
16091        ctx: *mut EVP_MD_CTX,
16092        data: *const ::std::os::raw::c_void,
16093        len: usize,
16094    ) -> ::std::os::raw::c_int;
16095}
16096extern "C" {
16097    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestVerifyFinal"]
16098    pub fn EVP_DigestVerifyFinal(
16099        ctx: *mut EVP_MD_CTX,
16100        sig: *const u8,
16101        sig_len: usize,
16102    ) -> ::std::os::raw::c_int;
16103}
16104extern "C" {
16105    #[link_name = "\u{1}aws_lc_0_36_0_EVP_DigestVerify"]
16106    pub fn EVP_DigestVerify(
16107        ctx: *mut EVP_MD_CTX,
16108        sig: *const u8,
16109        sig_len: usize,
16110        data: *const u8,
16111        len: usize,
16112    ) -> ::std::os::raw::c_int;
16113}
16114extern "C" {
16115    #[link_name = "\u{1}aws_lc_0_36_0_EVP_SignInit_ex"]
16116    pub fn EVP_SignInit_ex(
16117        ctx: *mut EVP_MD_CTX,
16118        type_: *const EVP_MD,
16119        impl_: *mut ENGINE,
16120    ) -> ::std::os::raw::c_int;
16121}
16122extern "C" {
16123    #[link_name = "\u{1}aws_lc_0_36_0_EVP_SignInit"]
16124    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16125}
16126extern "C" {
16127    #[link_name = "\u{1}aws_lc_0_36_0_EVP_SignUpdate"]
16128    pub fn EVP_SignUpdate(
16129        ctx: *mut EVP_MD_CTX,
16130        data: *const ::std::os::raw::c_void,
16131        len: usize,
16132    ) -> ::std::os::raw::c_int;
16133}
16134extern "C" {
16135    #[link_name = "\u{1}aws_lc_0_36_0_EVP_SignFinal"]
16136    pub fn EVP_SignFinal(
16137        ctx: *const EVP_MD_CTX,
16138        sig: *mut u8,
16139        out_sig_len: *mut ::std::os::raw::c_uint,
16140        pkey: *mut EVP_PKEY,
16141    ) -> ::std::os::raw::c_int;
16142}
16143extern "C" {
16144    #[link_name = "\u{1}aws_lc_0_36_0_EVP_VerifyInit_ex"]
16145    pub fn EVP_VerifyInit_ex(
16146        ctx: *mut EVP_MD_CTX,
16147        type_: *const EVP_MD,
16148        impl_: *mut ENGINE,
16149    ) -> ::std::os::raw::c_int;
16150}
16151extern "C" {
16152    #[link_name = "\u{1}aws_lc_0_36_0_EVP_VerifyInit"]
16153    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16154}
16155extern "C" {
16156    #[link_name = "\u{1}aws_lc_0_36_0_EVP_VerifyUpdate"]
16157    pub fn EVP_VerifyUpdate(
16158        ctx: *mut EVP_MD_CTX,
16159        data: *const ::std::os::raw::c_void,
16160        len: usize,
16161    ) -> ::std::os::raw::c_int;
16162}
16163extern "C" {
16164    #[link_name = "\u{1}aws_lc_0_36_0_EVP_VerifyFinal"]
16165    pub fn EVP_VerifyFinal(
16166        ctx: *mut EVP_MD_CTX,
16167        sig: *const u8,
16168        sig_len: usize,
16169        pkey: *mut EVP_PKEY,
16170    ) -> ::std::os::raw::c_int;
16171}
16172extern "C" {
16173    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_print_public"]
16174    pub fn EVP_PKEY_print_public(
16175        out: *mut BIO,
16176        pkey: *const EVP_PKEY,
16177        indent: ::std::os::raw::c_int,
16178        pctx: *mut ASN1_PCTX,
16179    ) -> ::std::os::raw::c_int;
16180}
16181extern "C" {
16182    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_print_private"]
16183    pub fn EVP_PKEY_print_private(
16184        out: *mut BIO,
16185        pkey: *const EVP_PKEY,
16186        indent: ::std::os::raw::c_int,
16187        pctx: *mut ASN1_PCTX,
16188    ) -> ::std::os::raw::c_int;
16189}
16190extern "C" {
16191    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_print_params"]
16192    pub fn EVP_PKEY_print_params(
16193        out: *mut BIO,
16194        pkey: *const EVP_PKEY,
16195        indent: ::std::os::raw::c_int,
16196        pctx: *mut ASN1_PCTX,
16197    ) -> ::std::os::raw::c_int;
16198}
16199extern "C" {
16200    #[link_name = "\u{1}aws_lc_0_36_0_PKCS5_PBKDF2_HMAC"]
16201    pub fn PKCS5_PBKDF2_HMAC(
16202        password: *const ::std::os::raw::c_char,
16203        password_len: usize,
16204        salt: *const u8,
16205        salt_len: usize,
16206        iterations: u32,
16207        digest: *const EVP_MD,
16208        key_len: usize,
16209        out_key: *mut u8,
16210    ) -> ::std::os::raw::c_int;
16211}
16212extern "C" {
16213    #[link_name = "\u{1}aws_lc_0_36_0_PKCS5_PBKDF2_HMAC_SHA1"]
16214    pub fn PKCS5_PBKDF2_HMAC_SHA1(
16215        password: *const ::std::os::raw::c_char,
16216        password_len: usize,
16217        salt: *const u8,
16218        salt_len: usize,
16219        iterations: u32,
16220        key_len: usize,
16221        out_key: *mut u8,
16222    ) -> ::std::os::raw::c_int;
16223}
16224extern "C" {
16225    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PBE_scrypt"]
16226    pub fn EVP_PBE_scrypt(
16227        password: *const ::std::os::raw::c_char,
16228        password_len: usize,
16229        salt: *const u8,
16230        salt_len: usize,
16231        N: u64,
16232        r: u64,
16233        p: u64,
16234        max_mem: usize,
16235        out_key: *mut u8,
16236        key_len: usize,
16237    ) -> ::std::os::raw::c_int;
16238}
16239extern "C" {
16240    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_new"]
16241    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16242}
16243extern "C" {
16244    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_new_id"]
16245    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16246}
16247extern "C" {
16248    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_free"]
16249    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
16250}
16251extern "C" {
16252    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_dup"]
16253    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
16254}
16255extern "C" {
16256    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get0_pkey"]
16257    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
16258}
16259extern "C" {
16260    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_sign_init"]
16261    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16262}
16263extern "C" {
16264    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_sign"]
16265    pub fn EVP_PKEY_sign(
16266        ctx: *mut EVP_PKEY_CTX,
16267        sig: *mut u8,
16268        sig_len: *mut 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_36_0_EVP_PKEY_verify_init"]
16275    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16276}
16277extern "C" {
16278    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_verify"]
16279    pub fn EVP_PKEY_verify(
16280        ctx: *mut EVP_PKEY_CTX,
16281        sig: *const u8,
16282        sig_len: usize,
16283        digest: *const u8,
16284        digest_len: usize,
16285    ) -> ::std::os::raw::c_int;
16286}
16287extern "C" {
16288    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_encrypt_init"]
16289    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16290}
16291extern "C" {
16292    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_encrypt"]
16293    pub fn EVP_PKEY_encrypt(
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_36_0_EVP_PKEY_decrypt_init"]
16303    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16304}
16305extern "C" {
16306    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_decrypt"]
16307    pub fn EVP_PKEY_decrypt(
16308        ctx: *mut EVP_PKEY_CTX,
16309        out: *mut u8,
16310        out_len: *mut usize,
16311        in_: *const u8,
16312        in_len: usize,
16313    ) -> ::std::os::raw::c_int;
16314}
16315extern "C" {
16316    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_verify_recover_init"]
16317    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16318}
16319extern "C" {
16320    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_verify_recover"]
16321    pub fn EVP_PKEY_verify_recover(
16322        ctx: *mut EVP_PKEY_CTX,
16323        out: *mut u8,
16324        out_len: *mut usize,
16325        sig: *const u8,
16326        siglen: usize,
16327    ) -> ::std::os::raw::c_int;
16328}
16329extern "C" {
16330    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_derive_init"]
16331    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16332}
16333extern "C" {
16334    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_derive_set_peer"]
16335    pub fn EVP_PKEY_derive_set_peer(
16336        ctx: *mut EVP_PKEY_CTX,
16337        peer: *mut EVP_PKEY,
16338    ) -> ::std::os::raw::c_int;
16339}
16340extern "C" {
16341    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_derive"]
16342    pub fn EVP_PKEY_derive(
16343        ctx: *mut EVP_PKEY_CTX,
16344        key: *mut u8,
16345        out_key_len: *mut usize,
16346    ) -> ::std::os::raw::c_int;
16347}
16348extern "C" {
16349    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_check"]
16350    pub fn EVP_PKEY_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16351}
16352extern "C" {
16353    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_public_check"]
16354    pub fn EVP_PKEY_public_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16355}
16356extern "C" {
16357    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_param_check"]
16358    pub fn EVP_PKEY_param_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16359}
16360extern "C" {
16361    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_keygen_init"]
16362    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16363}
16364extern "C" {
16365    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_keygen"]
16366    pub fn EVP_PKEY_keygen(
16367        ctx: *mut EVP_PKEY_CTX,
16368        out_pkey: *mut *mut EVP_PKEY,
16369    ) -> ::std::os::raw::c_int;
16370}
16371extern "C" {
16372    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_encapsulate"]
16373    pub fn EVP_PKEY_encapsulate(
16374        ctx: *mut EVP_PKEY_CTX,
16375        ciphertext: *mut u8,
16376        ciphertext_len: *mut usize,
16377        shared_secret: *mut u8,
16378        shared_secret_len: *mut usize,
16379    ) -> ::std::os::raw::c_int;
16380}
16381extern "C" {
16382    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_decapsulate"]
16383    pub fn EVP_PKEY_decapsulate(
16384        ctx: *mut EVP_PKEY_CTX,
16385        shared_secret: *mut u8,
16386        shared_secret_len: *mut usize,
16387        ciphertext: *const u8,
16388        ciphertext_len: usize,
16389    ) -> ::std::os::raw::c_int;
16390}
16391extern "C" {
16392    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_paramgen_init"]
16393    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16394}
16395extern "C" {
16396    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_paramgen"]
16397    pub fn EVP_PKEY_paramgen(
16398        ctx: *mut EVP_PKEY_CTX,
16399        out_pkey: *mut *mut EVP_PKEY,
16400    ) -> ::std::os::raw::c_int;
16401}
16402extern "C" {
16403    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_signature_md"]
16404    pub fn EVP_PKEY_CTX_set_signature_md(
16405        ctx: *mut EVP_PKEY_CTX,
16406        md: *const EVP_MD,
16407    ) -> ::std::os::raw::c_int;
16408}
16409extern "C" {
16410    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_signature_md"]
16411    pub fn EVP_PKEY_CTX_get_signature_md(
16412        ctx: *mut EVP_PKEY_CTX,
16413        out_md: *mut *const EVP_MD,
16414    ) -> ::std::os::raw::c_int;
16415}
16416extern "C" {
16417    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_signature_context"]
16418    pub fn EVP_PKEY_CTX_set_signature_context(
16419        ctx: *mut EVP_PKEY_CTX,
16420        context: *const u8,
16421        context_len: usize,
16422    ) -> ::std::os::raw::c_int;
16423}
16424extern "C" {
16425    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get0_signature_context"]
16426    pub fn EVP_PKEY_CTX_get0_signature_context(
16427        ctx: *mut EVP_PKEY_CTX,
16428        context: *mut *const u8,
16429        context_len: *mut usize,
16430    ) -> ::std::os::raw::c_int;
16431}
16432extern "C" {
16433    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_padding"]
16434    pub fn EVP_PKEY_CTX_set_rsa_padding(
16435        ctx: *mut EVP_PKEY_CTX,
16436        padding: ::std::os::raw::c_int,
16437    ) -> ::std::os::raw::c_int;
16438}
16439extern "C" {
16440    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_rsa_padding"]
16441    pub fn EVP_PKEY_CTX_get_rsa_padding(
16442        ctx: *mut EVP_PKEY_CTX,
16443        out_padding: *mut ::std::os::raw::c_int,
16444    ) -> ::std::os::raw::c_int;
16445}
16446extern "C" {
16447    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_pss_saltlen"]
16448    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
16449        ctx: *mut EVP_PKEY_CTX,
16450        salt_len: ::std::os::raw::c_int,
16451    ) -> ::std::os::raw::c_int;
16452}
16453extern "C" {
16454    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_rsa_pss_saltlen"]
16455    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
16456        ctx: *mut EVP_PKEY_CTX,
16457        out_salt_len: *mut ::std::os::raw::c_int,
16458    ) -> ::std::os::raw::c_int;
16459}
16460extern "C" {
16461    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_keygen_bits"]
16462    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
16463        ctx: *mut EVP_PKEY_CTX,
16464        bits: ::std::os::raw::c_int,
16465    ) -> ::std::os::raw::c_int;
16466}
16467extern "C" {
16468    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_keygen_pubexp"]
16469    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
16470        ctx: *mut EVP_PKEY_CTX,
16471        e: *mut BIGNUM,
16472    ) -> ::std::os::raw::c_int;
16473}
16474extern "C" {
16475    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_oaep_md"]
16476    pub fn EVP_PKEY_CTX_set_rsa_oaep_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_36_0_EVP_PKEY_CTX_get_rsa_oaep_md"]
16483    pub fn EVP_PKEY_CTX_get_rsa_oaep_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_36_0_EVP_PKEY_CTX_set_rsa_mgf1_md"]
16490    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
16491        ctx: *mut EVP_PKEY_CTX,
16492        md: *const EVP_MD,
16493    ) -> ::std::os::raw::c_int;
16494}
16495extern "C" {
16496    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_rsa_mgf1_md"]
16497    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
16498        ctx: *mut EVP_PKEY_CTX,
16499        out_md: *mut *const EVP_MD,
16500    ) -> ::std::os::raw::c_int;
16501}
16502extern "C" {
16503    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set0_rsa_oaep_label"]
16504    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
16505        ctx: *mut EVP_PKEY_CTX,
16506        label: *mut u8,
16507        label_len: usize,
16508    ) -> ::std::os::raw::c_int;
16509}
16510extern "C" {
16511    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get0_rsa_oaep_label"]
16512    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
16513        ctx: *mut EVP_PKEY_CTX,
16514        out_label: *mut *const u8,
16515    ) -> ::std::os::raw::c_int;
16516}
16517extern "C" {
16518    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_ec_paramgen_curve_nid"]
16519    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
16520        ctx: *mut EVP_PKEY_CTX,
16521        nid: ::std::os::raw::c_int,
16522    ) -> ::std::os::raw::c_int;
16523}
16524extern "C" {
16525    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_kem_set_params"]
16526    pub fn EVP_PKEY_CTX_kem_set_params(
16527        ctx: *mut EVP_PKEY_CTX,
16528        nid: ::std::os::raw::c_int,
16529    ) -> ::std::os::raw::c_int;
16530}
16531extern "C" {
16532    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_kem_new_raw_public_key"]
16533    pub fn EVP_PKEY_kem_new_raw_public_key(
16534        nid: ::std::os::raw::c_int,
16535        in_: *const u8,
16536        len: usize,
16537    ) -> *mut EVP_PKEY;
16538}
16539extern "C" {
16540    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_kem_new_raw_secret_key"]
16541    pub fn EVP_PKEY_kem_new_raw_secret_key(
16542        nid: ::std::os::raw::c_int,
16543        in_: *const u8,
16544        len: usize,
16545    ) -> *mut EVP_PKEY;
16546}
16547extern "C" {
16548    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_kem_new_raw_key"]
16549    pub fn EVP_PKEY_kem_new_raw_key(
16550        nid: ::std::os::raw::c_int,
16551        in_public: *const u8,
16552        len_public: usize,
16553        in_secret: *const u8,
16554        len_secret: usize,
16555    ) -> *mut EVP_PKEY;
16556}
16557extern "C" {
16558    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_kem_check_key"]
16559    pub fn EVP_PKEY_kem_check_key(key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
16560}
16561extern "C" {
16562    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_pqdsa_set_params"]
16563    pub fn EVP_PKEY_CTX_pqdsa_set_params(
16564        ctx: *mut EVP_PKEY_CTX,
16565        nid: ::std::os::raw::c_int,
16566    ) -> ::std::os::raw::c_int;
16567}
16568extern "C" {
16569    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_pqdsa_new_raw_public_key"]
16570    pub fn EVP_PKEY_pqdsa_new_raw_public_key(
16571        nid: ::std::os::raw::c_int,
16572        in_: *const u8,
16573        len: usize,
16574    ) -> *mut EVP_PKEY;
16575}
16576extern "C" {
16577    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_pqdsa_new_raw_private_key"]
16578    pub fn EVP_PKEY_pqdsa_new_raw_private_key(
16579        nid: ::std::os::raw::c_int,
16580        in_: *const u8,
16581        len: usize,
16582    ) -> *mut EVP_PKEY;
16583}
16584extern "C" {
16585    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dh_pad"]
16586    pub fn EVP_PKEY_CTX_set_dh_pad(
16587        ctx: *mut EVP_PKEY_CTX,
16588        pad: ::std::os::raw::c_int,
16589    ) -> ::std::os::raw::c_int;
16590}
16591extern "C" {
16592    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_asn1_get_count"]
16593    pub fn EVP_PKEY_asn1_get_count() -> ::std::os::raw::c_int;
16594}
16595extern "C" {
16596    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_asn1_get0"]
16597    pub fn EVP_PKEY_asn1_get0(idx: ::std::os::raw::c_int) -> *const EVP_PKEY_ASN1_METHOD;
16598}
16599extern "C" {
16600    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_asn1_find"]
16601    pub fn EVP_PKEY_asn1_find(
16602        _pe: *mut *mut ENGINE,
16603        type_: ::std::os::raw::c_int,
16604    ) -> *const EVP_PKEY_ASN1_METHOD;
16605}
16606extern "C" {
16607    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_asn1_find_str"]
16608    pub fn EVP_PKEY_asn1_find_str(
16609        _pe: *mut *mut ENGINE,
16610        name: *const ::std::os::raw::c_char,
16611        len: ::std::os::raw::c_int,
16612    ) -> *const EVP_PKEY_ASN1_METHOD;
16613}
16614extern "C" {
16615    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_asn1_get0_info"]
16616    pub fn EVP_PKEY_asn1_get0_info(
16617        ppkey_id: *mut ::std::os::raw::c_int,
16618        pkey_base_id: *mut ::std::os::raw::c_int,
16619        ppkey_flags: *mut ::std::os::raw::c_int,
16620        pinfo: *mut *const ::std::os::raw::c_char,
16621        ppem_str: *mut *const ::std::os::raw::c_char,
16622        ameth: *const EVP_PKEY_ASN1_METHOD,
16623    ) -> ::std::os::raw::c_int;
16624}
16625pub type EVP_PKEY_gen_cb =
16626    ::std::option::Option<unsafe extern "C" fn(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int>;
16627extern "C" {
16628    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_cb"]
16629    pub fn EVP_PKEY_CTX_set_cb(ctx: *mut EVP_PKEY_CTX, cb: EVP_PKEY_gen_cb);
16630}
16631extern "C" {
16632    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_keygen_info"]
16633    pub fn EVP_PKEY_CTX_get_keygen_info(
16634        ctx: *mut EVP_PKEY_CTX,
16635        idx: ::std::os::raw::c_int,
16636    ) -> ::std::os::raw::c_int;
16637}
16638extern "C" {
16639    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_app_data"]
16640    pub fn EVP_PKEY_CTX_set_app_data(ctx: *mut EVP_PKEY_CTX, data: *mut ::std::os::raw::c_void);
16641}
16642extern "C" {
16643    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_get_app_data"]
16644    pub fn EVP_PKEY_CTX_get_app_data(ctx: *mut EVP_PKEY_CTX) -> *mut ::std::os::raw::c_void;
16645}
16646extern "C" {
16647    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_get_pkey_type"]
16648    pub fn EVP_MD_get_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16649}
16650extern "C" {
16651    #[link_name = "\u{1}aws_lc_0_36_0_EVP_MD_pkey_type"]
16652    pub fn EVP_MD_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16653}
16654extern "C" {
16655    #[link_name = "\u{1}aws_lc_0_36_0_EVP_CIPHER_do_all_sorted"]
16656    pub fn EVP_CIPHER_do_all_sorted(
16657        callback: ::std::option::Option<
16658            unsafe extern "C" fn(
16659                cipher: *const EVP_CIPHER,
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_36_0_EVP_MD_do_all_sorted"]
16670    pub fn EVP_MD_do_all_sorted(
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_36_0_EVP_MD_do_all"]
16684    pub fn EVP_MD_do_all(
16685        callback: ::std::option::Option<
16686            unsafe extern "C" fn(
16687                cipher: *const EVP_MD,
16688                name: *const ::std::os::raw::c_char,
16689                unused: *const ::std::os::raw::c_char,
16690                arg: *mut ::std::os::raw::c_void,
16691            ),
16692        >,
16693        arg: *mut ::std::os::raw::c_void,
16694    );
16695}
16696extern "C" {
16697    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PrivateKey"]
16698    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16699}
16700extern "C" {
16701    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PublicKey"]
16702    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16703}
16704extern "C" {
16705    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PrivateKey"]
16706    pub fn d2i_PrivateKey(
16707        type_: ::std::os::raw::c_int,
16708        out: *mut *mut EVP_PKEY,
16709        inp: *mut *const u8,
16710        len: ::std::os::raw::c_long,
16711    ) -> *mut EVP_PKEY;
16712}
16713extern "C" {
16714    #[link_name = "\u{1}aws_lc_0_36_0_d2i_AutoPrivateKey"]
16715    pub fn d2i_AutoPrivateKey(
16716        out: *mut *mut EVP_PKEY,
16717        inp: *mut *const u8,
16718        len: ::std::os::raw::c_long,
16719    ) -> *mut EVP_PKEY;
16720}
16721extern "C" {
16722    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PublicKey"]
16723    pub fn d2i_PublicKey(
16724        type_: ::std::os::raw::c_int,
16725        out: *mut *mut EVP_PKEY,
16726        inp: *mut *const u8,
16727        len: ::std::os::raw::c_long,
16728    ) -> *mut EVP_PKEY;
16729}
16730extern "C" {
16731    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_ec_param_enc"]
16732    pub fn EVP_PKEY_CTX_set_ec_param_enc(
16733        ctx: *mut EVP_PKEY_CTX,
16734        encoding: ::std::os::raw::c_int,
16735    ) -> ::std::os::raw::c_int;
16736}
16737extern "C" {
16738    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_set1_tls_encodedpoint"]
16739    pub fn EVP_PKEY_set1_tls_encodedpoint(
16740        pkey: *mut EVP_PKEY,
16741        in_: *const u8,
16742        len: usize,
16743    ) -> ::std::os::raw::c_int;
16744}
16745extern "C" {
16746    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get1_tls_encodedpoint"]
16747    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
16748}
16749extern "C" {
16750    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_base_id"]
16751    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
16752}
16753extern "C" {
16754    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_pss_keygen_md"]
16755    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_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_36_0_EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen"]
16762    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
16763        ctx: *mut EVP_PKEY_CTX,
16764        salt_len: ::std::os::raw::c_int,
16765    ) -> ::std::os::raw::c_int;
16766}
16767extern "C" {
16768    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md"]
16769    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
16770        ctx: *mut EVP_PKEY_CTX,
16771        md: *const EVP_MD,
16772    ) -> ::std::os::raw::c_int;
16773}
16774extern "C" {
16775    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PUBKEY"]
16776    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16777}
16778extern "C" {
16779    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PUBKEY"]
16780    pub fn d2i_PUBKEY(
16781        out: *mut *mut EVP_PKEY,
16782        inp: *mut *const u8,
16783        len: ::std::os::raw::c_long,
16784    ) -> *mut EVP_PKEY;
16785}
16786extern "C" {
16787    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSA_PUBKEY"]
16788    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16789}
16790extern "C" {
16791    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSA_PUBKEY"]
16792    pub fn d2i_RSA_PUBKEY(
16793        out: *mut *mut RSA,
16794        inp: *mut *const u8,
16795        len: ::std::os::raw::c_long,
16796    ) -> *mut RSA;
16797}
16798extern "C" {
16799    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSA_PUBKEY"]
16800    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16801}
16802extern "C" {
16803    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSA_PUBKEY"]
16804    pub fn d2i_DSA_PUBKEY(
16805        out: *mut *mut DSA,
16806        inp: *mut *const u8,
16807        len: ::std::os::raw::c_long,
16808    ) -> *mut DSA;
16809}
16810extern "C" {
16811    #[link_name = "\u{1}aws_lc_0_36_0_i2d_EC_PUBKEY"]
16812    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16813}
16814extern "C" {
16815    #[link_name = "\u{1}aws_lc_0_36_0_d2i_EC_PUBKEY"]
16816    pub fn d2i_EC_PUBKEY(
16817        out: *mut *mut EC_KEY,
16818        inp: *mut *const u8,
16819        len: ::std::os::raw::c_long,
16820    ) -> *mut EC_KEY;
16821}
16822extern "C" {
16823    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_assign"]
16824    pub fn EVP_PKEY_assign(
16825        pkey: *mut EVP_PKEY,
16826        type_: ::std::os::raw::c_int,
16827        key: *mut ::std::os::raw::c_void,
16828    ) -> ::std::os::raw::c_int;
16829}
16830extern "C" {
16831    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_type"]
16832    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
16833}
16834extern "C" {
16835    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_new_mac_key"]
16836    pub fn EVP_PKEY_new_mac_key(
16837        type_: ::std::os::raw::c_int,
16838        engine: *mut ENGINE,
16839        mac_key: *const u8,
16840        mac_key_len: usize,
16841    ) -> *mut EVP_PKEY;
16842}
16843extern "C" {
16844    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_get0"]
16845    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::std::os::raw::c_void;
16846}
16847extern "C" {
16848    #[link_name = "\u{1}aws_lc_0_36_0_OpenSSL_add_all_algorithms"]
16849    pub fn OpenSSL_add_all_algorithms();
16850}
16851extern "C" {
16852    #[link_name = "\u{1}aws_lc_0_36_0_OPENSSL_add_all_algorithms_conf"]
16853    pub fn OPENSSL_add_all_algorithms_conf();
16854}
16855extern "C" {
16856    #[link_name = "\u{1}aws_lc_0_36_0_OpenSSL_add_all_ciphers"]
16857    pub fn OpenSSL_add_all_ciphers();
16858}
16859extern "C" {
16860    #[link_name = "\u{1}aws_lc_0_36_0_OpenSSL_add_all_digests"]
16861    pub fn OpenSSL_add_all_digests();
16862}
16863extern "C" {
16864    #[link_name = "\u{1}aws_lc_0_36_0_EVP_cleanup"]
16865    pub fn EVP_cleanup();
16866}
16867extern "C" {
16868    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dsa_paramgen_bits"]
16869    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
16870        ctx: *mut EVP_PKEY_CTX,
16871        nbits: ::std::os::raw::c_int,
16872    ) -> ::std::os::raw::c_int;
16873}
16874extern "C" {
16875    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dsa_paramgen_md"]
16876    pub fn EVP_PKEY_CTX_set_dsa_paramgen_md(
16877        ctx: *mut EVP_PKEY_CTX,
16878        md: *const EVP_MD,
16879    ) -> ::std::os::raw::c_int;
16880}
16881extern "C" {
16882    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_dsa_paramgen_q_bits"]
16883    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
16884        ctx: *mut EVP_PKEY_CTX,
16885        qbits: ::std::os::raw::c_int,
16886    ) -> ::std::os::raw::c_int;
16887}
16888extern "C" {
16889    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_ctrl_str"]
16890    pub fn EVP_PKEY_CTX_ctrl_str(
16891        ctx: *mut EVP_PKEY_CTX,
16892        type_: *const ::std::os::raw::c_char,
16893        value: *const ::std::os::raw::c_char,
16894    ) -> ::std::os::raw::c_int;
16895}
16896extern "C" {
16897    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_tls1_prf"]
16898    pub fn CRYPTO_tls1_prf(
16899        digest: *const EVP_MD,
16900        out: *mut u8,
16901        out_len: usize,
16902        secret: *const u8,
16903        secret_len: usize,
16904        label: *const ::std::os::raw::c_char,
16905        label_len: usize,
16906        seed1: *const u8,
16907        seed1_len: usize,
16908        seed2: *const u8,
16909        seed2_len: usize,
16910    ) -> ::std::os::raw::c_int;
16911}
16912extern "C" {
16913    #[link_name = "\u{1}aws_lc_0_36_0_SSKDF_digest"]
16914    pub fn SSKDF_digest(
16915        out_key: *mut u8,
16916        out_len: usize,
16917        digest: *const EVP_MD,
16918        secret: *const u8,
16919        secret_len: usize,
16920        info: *const u8,
16921        info_len: usize,
16922    ) -> ::std::os::raw::c_int;
16923}
16924extern "C" {
16925    #[link_name = "\u{1}aws_lc_0_36_0_SSKDF_hmac"]
16926    pub fn SSKDF_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        salt: *const u8,
16935        salt_len: usize,
16936    ) -> ::std::os::raw::c_int;
16937}
16938extern "C" {
16939    #[link_name = "\u{1}aws_lc_0_36_0_KBKDF_ctr_hmac"]
16940    pub fn KBKDF_ctr_hmac(
16941        out_key: *mut u8,
16942        out_len: usize,
16943        digest: *const EVP_MD,
16944        secret: *const u8,
16945        secret_len: usize,
16946        info: *const u8,
16947        info_len: usize,
16948    ) -> ::std::os::raw::c_int;
16949}
16950extern "C" {
16951    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_hkdf_mode"]
16952    pub fn EVP_PKEY_CTX_hkdf_mode(
16953        ctx: *mut EVP_PKEY_CTX,
16954        mode: ::std::os::raw::c_int,
16955    ) -> ::std::os::raw::c_int;
16956}
16957extern "C" {
16958    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set_hkdf_md"]
16959    pub fn EVP_PKEY_CTX_set_hkdf_md(
16960        ctx: *mut EVP_PKEY_CTX,
16961        md: *const EVP_MD,
16962    ) -> ::std::os::raw::c_int;
16963}
16964extern "C" {
16965    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set1_hkdf_key"]
16966    pub fn EVP_PKEY_CTX_set1_hkdf_key(
16967        ctx: *mut EVP_PKEY_CTX,
16968        key: *const u8,
16969        key_len: usize,
16970    ) -> ::std::os::raw::c_int;
16971}
16972extern "C" {
16973    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_set1_hkdf_salt"]
16974    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
16975        ctx: *mut EVP_PKEY_CTX,
16976        salt: *const u8,
16977        salt_len: usize,
16978    ) -> ::std::os::raw::c_int;
16979}
16980extern "C" {
16981    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_CTX_add1_hkdf_info"]
16982    pub fn EVP_PKEY_CTX_add1_hkdf_info(
16983        ctx: *mut EVP_PKEY_CTX,
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_36_0_HKDF"]
16990    pub fn HKDF(
16991        out_key: *mut u8,
16992        out_len: usize,
16993        digest: *const EVP_MD,
16994        secret: *const u8,
16995        secret_len: usize,
16996        salt: *const u8,
16997        salt_len: usize,
16998        info: *const u8,
16999        info_len: usize,
17000    ) -> ::std::os::raw::c_int;
17001}
17002extern "C" {
17003    #[link_name = "\u{1}aws_lc_0_36_0_HKDF_extract"]
17004    pub fn HKDF_extract(
17005        out_key: *mut u8,
17006        out_len: *mut usize,
17007        digest: *const EVP_MD,
17008        secret: *const u8,
17009        secret_len: usize,
17010        salt: *const u8,
17011        salt_len: usize,
17012    ) -> ::std::os::raw::c_int;
17013}
17014extern "C" {
17015    #[link_name = "\u{1}aws_lc_0_36_0_HKDF_expand"]
17016    pub fn HKDF_expand(
17017        out_key: *mut u8,
17018        out_len: usize,
17019        digest: *const EVP_MD,
17020        prk: *const u8,
17021        prk_len: usize,
17022        info: *const u8,
17023        info_len: usize,
17024    ) -> ::std::os::raw::c_int;
17025}
17026extern "C" {
17027    #[link_name = "\u{1}aws_lc_0_36_0_EVP_hpke_x25519_hkdf_sha256"]
17028    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
17029}
17030extern "C" {
17031    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEM_id"]
17032    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
17033}
17034extern "C" {
17035    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEM_public_key_len"]
17036    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17037}
17038extern "C" {
17039    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEM_private_key_len"]
17040    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17041}
17042extern "C" {
17043    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEM_enc_len"]
17044    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
17045}
17046extern "C" {
17047    #[link_name = "\u{1}aws_lc_0_36_0_EVP_hpke_hkdf_sha256"]
17048    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
17049}
17050extern "C" {
17051    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KDF_id"]
17052    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
17053}
17054extern "C" {
17055    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KDF_hkdf_md"]
17056    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
17057}
17058extern "C" {
17059    #[link_name = "\u{1}aws_lc_0_36_0_EVP_hpke_aes_128_gcm"]
17060    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
17061}
17062extern "C" {
17063    #[link_name = "\u{1}aws_lc_0_36_0_EVP_hpke_aes_256_gcm"]
17064    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
17065}
17066extern "C" {
17067    #[link_name = "\u{1}aws_lc_0_36_0_EVP_hpke_chacha20_poly1305"]
17068    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
17069}
17070extern "C" {
17071    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_AEAD_id"]
17072    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
17073}
17074extern "C" {
17075    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_AEAD_aead"]
17076    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
17077}
17078extern "C" {
17079    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_zero"]
17080    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
17081}
17082extern "C" {
17083    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_cleanup"]
17084    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
17085}
17086extern "C" {
17087    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_new"]
17088    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
17089}
17090extern "C" {
17091    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_free"]
17092    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
17093}
17094extern "C" {
17095    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_copy"]
17096    pub fn EVP_HPKE_KEY_copy(
17097        dst: *mut EVP_HPKE_KEY,
17098        src: *const EVP_HPKE_KEY,
17099    ) -> ::std::os::raw::c_int;
17100}
17101extern "C" {
17102    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_move"]
17103    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
17104}
17105extern "C" {
17106    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_init"]
17107    pub fn EVP_HPKE_KEY_init(
17108        key: *mut EVP_HPKE_KEY,
17109        kem: *const EVP_HPKE_KEM,
17110        priv_key: *const u8,
17111        priv_key_len: usize,
17112    ) -> ::std::os::raw::c_int;
17113}
17114extern "C" {
17115    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_generate"]
17116    pub fn EVP_HPKE_KEY_generate(
17117        key: *mut EVP_HPKE_KEY,
17118        kem: *const EVP_HPKE_KEM,
17119    ) -> ::std::os::raw::c_int;
17120}
17121extern "C" {
17122    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_kem"]
17123    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
17124}
17125extern "C" {
17126    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_public_key"]
17127    pub fn EVP_HPKE_KEY_public_key(
17128        key: *const EVP_HPKE_KEY,
17129        out: *mut u8,
17130        out_len: *mut usize,
17131        max_out: usize,
17132    ) -> ::std::os::raw::c_int;
17133}
17134extern "C" {
17135    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_KEY_private_key"]
17136    pub fn EVP_HPKE_KEY_private_key(
17137        key: *const EVP_HPKE_KEY,
17138        out: *mut u8,
17139        out_len: *mut usize,
17140        max_out: usize,
17141    ) -> ::std::os::raw::c_int;
17142}
17143extern "C" {
17144    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_zero"]
17145    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
17146}
17147extern "C" {
17148    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_cleanup"]
17149    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
17150}
17151extern "C" {
17152    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_new"]
17153    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
17154}
17155extern "C" {
17156    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_free"]
17157    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
17158}
17159extern "C" {
17160    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_sender"]
17161    pub fn EVP_HPKE_CTX_setup_sender(
17162        ctx: *mut EVP_HPKE_CTX,
17163        out_enc: *mut u8,
17164        out_enc_len: *mut usize,
17165        max_enc: usize,
17166        kem: *const EVP_HPKE_KEM,
17167        kdf: *const EVP_HPKE_KDF,
17168        aead: *const EVP_HPKE_AEAD,
17169        peer_public_key: *const u8,
17170        peer_public_key_len: usize,
17171        info: *const u8,
17172        info_len: usize,
17173    ) -> ::std::os::raw::c_int;
17174}
17175extern "C" {
17176    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_sender_with_seed_for_testing"]
17177    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
17178        ctx: *mut EVP_HPKE_CTX,
17179        out_enc: *mut u8,
17180        out_enc_len: *mut usize,
17181        max_enc: usize,
17182        kem: *const EVP_HPKE_KEM,
17183        kdf: *const EVP_HPKE_KDF,
17184        aead: *const EVP_HPKE_AEAD,
17185        peer_public_key: *const u8,
17186        peer_public_key_len: usize,
17187        info: *const u8,
17188        info_len: usize,
17189        seed: *const u8,
17190        seed_len: usize,
17191    ) -> ::std::os::raw::c_int;
17192}
17193extern "C" {
17194    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_recipient"]
17195    pub fn EVP_HPKE_CTX_setup_recipient(
17196        ctx: *mut EVP_HPKE_CTX,
17197        key: *const EVP_HPKE_KEY,
17198        kdf: *const EVP_HPKE_KDF,
17199        aead: *const EVP_HPKE_AEAD,
17200        enc: *const u8,
17201        enc_len: usize,
17202        info: *const u8,
17203        info_len: usize,
17204    ) -> ::std::os::raw::c_int;
17205}
17206extern "C" {
17207    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_auth_sender"]
17208    pub fn EVP_HPKE_CTX_setup_auth_sender(
17209        ctx: *mut EVP_HPKE_CTX,
17210        out_enc: *mut u8,
17211        out_enc_len: *mut usize,
17212        max_enc: usize,
17213        key: *const EVP_HPKE_KEY,
17214        kdf: *const EVP_HPKE_KDF,
17215        aead: *const EVP_HPKE_AEAD,
17216        peer_public_key: *const u8,
17217        peer_public_key_len: usize,
17218        info: *const u8,
17219        info_len: usize,
17220    ) -> ::std::os::raw::c_int;
17221}
17222extern "C" {
17223    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing"]
17224    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
17225        ctx: *mut EVP_HPKE_CTX,
17226        out_enc: *mut u8,
17227        out_enc_len: *mut usize,
17228        max_enc: usize,
17229        key: *const EVP_HPKE_KEY,
17230        kdf: *const EVP_HPKE_KDF,
17231        aead: *const EVP_HPKE_AEAD,
17232        peer_public_key: *const u8,
17233        peer_public_key_len: usize,
17234        info: *const u8,
17235        info_len: usize,
17236        seed: *const u8,
17237        seed_len: usize,
17238    ) -> ::std::os::raw::c_int;
17239}
17240extern "C" {
17241    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_setup_auth_recipient"]
17242    pub fn EVP_HPKE_CTX_setup_auth_recipient(
17243        ctx: *mut EVP_HPKE_CTX,
17244        key: *const EVP_HPKE_KEY,
17245        kdf: *const EVP_HPKE_KDF,
17246        aead: *const EVP_HPKE_AEAD,
17247        enc: *const u8,
17248        enc_len: usize,
17249        info: *const u8,
17250        info_len: usize,
17251        peer_public_key: *const u8,
17252        peer_public_key_len: usize,
17253    ) -> ::std::os::raw::c_int;
17254}
17255extern "C" {
17256    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_open"]
17257    pub fn EVP_HPKE_CTX_open(
17258        ctx: *mut EVP_HPKE_CTX,
17259        out: *mut u8,
17260        out_len: *mut usize,
17261        max_out_len: usize,
17262        in_: *const u8,
17263        in_len: usize,
17264        ad: *const u8,
17265        ad_len: usize,
17266    ) -> ::std::os::raw::c_int;
17267}
17268extern "C" {
17269    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_seal"]
17270    pub fn EVP_HPKE_CTX_seal(
17271        ctx: *mut EVP_HPKE_CTX,
17272        out: *mut u8,
17273        out_len: *mut usize,
17274        max_out_len: usize,
17275        in_: *const u8,
17276        in_len: usize,
17277        ad: *const u8,
17278        ad_len: usize,
17279    ) -> ::std::os::raw::c_int;
17280}
17281extern "C" {
17282    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_export"]
17283    pub fn EVP_HPKE_CTX_export(
17284        ctx: *const EVP_HPKE_CTX,
17285        out: *mut u8,
17286        secret_len: usize,
17287        context: *const u8,
17288        context_len: usize,
17289    ) -> ::std::os::raw::c_int;
17290}
17291extern "C" {
17292    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_max_overhead"]
17293    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
17294}
17295extern "C" {
17296    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_kem"]
17297    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
17298}
17299extern "C" {
17300    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_aead"]
17301    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
17302}
17303extern "C" {
17304    #[link_name = "\u{1}aws_lc_0_36_0_EVP_HPKE_CTX_kdf"]
17305    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
17306}
17307#[repr(C)]
17308#[derive(Copy, Clone)]
17309pub struct evp_hpke_ctx_st {
17310    pub kem: *const EVP_HPKE_KEM,
17311    pub aead: *const EVP_HPKE_AEAD,
17312    pub kdf: *const EVP_HPKE_KDF,
17313    pub aead_ctx: EVP_AEAD_CTX,
17314    pub base_nonce: [u8; 24usize],
17315    pub exporter_secret: [u8; 64usize],
17316    pub seq: u64,
17317    pub is_sender: ::std::os::raw::c_int,
17318}
17319#[test]
17320fn bindgen_test_layout_evp_hpke_ctx_st() {
17321    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_ctx_st> = ::std::mem::MaybeUninit::uninit();
17322    let ptr = UNINIT.as_ptr();
17323    assert_eq!(
17324        ::std::mem::size_of::<evp_hpke_ctx_st>(),
17325        712usize,
17326        "Size of evp_hpke_ctx_st"
17327    );
17328    assert_eq!(
17329        ::std::mem::align_of::<evp_hpke_ctx_st>(),
17330        8usize,
17331        "Alignment of evp_hpke_ctx_st"
17332    );
17333    assert_eq!(
17334        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17335        0usize,
17336        "Offset of field: evp_hpke_ctx_st::kem"
17337    );
17338    assert_eq!(
17339        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
17340        8usize,
17341        "Offset of field: evp_hpke_ctx_st::aead"
17342    );
17343    assert_eq!(
17344        unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize },
17345        16usize,
17346        "Offset of field: evp_hpke_ctx_st::kdf"
17347    );
17348    assert_eq!(
17349        unsafe { ::std::ptr::addr_of!((*ptr).aead_ctx) as usize - ptr as usize },
17350        24usize,
17351        "Offset of field: evp_hpke_ctx_st::aead_ctx"
17352    );
17353    assert_eq!(
17354        unsafe { ::std::ptr::addr_of!((*ptr).base_nonce) as usize - ptr as usize },
17355        608usize,
17356        "Offset of field: evp_hpke_ctx_st::base_nonce"
17357    );
17358    assert_eq!(
17359        unsafe { ::std::ptr::addr_of!((*ptr).exporter_secret) as usize - ptr as usize },
17360        632usize,
17361        "Offset of field: evp_hpke_ctx_st::exporter_secret"
17362    );
17363    assert_eq!(
17364        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
17365        696usize,
17366        "Offset of field: evp_hpke_ctx_st::seq"
17367    );
17368    assert_eq!(
17369        unsafe { ::std::ptr::addr_of!((*ptr).is_sender) as usize - ptr as usize },
17370        704usize,
17371        "Offset of field: evp_hpke_ctx_st::is_sender"
17372    );
17373}
17374impl Default for evp_hpke_ctx_st {
17375    fn default() -> Self {
17376        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17377        unsafe {
17378            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17379            s.assume_init()
17380        }
17381    }
17382}
17383#[repr(C)]
17384#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17385pub struct evp_hpke_key_st {
17386    pub kem: *const EVP_HPKE_KEM,
17387    pub private_key: [u8; 32usize],
17388    pub public_key: [u8; 32usize],
17389}
17390#[test]
17391fn bindgen_test_layout_evp_hpke_key_st() {
17392    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_key_st> = ::std::mem::MaybeUninit::uninit();
17393    let ptr = UNINIT.as_ptr();
17394    assert_eq!(
17395        ::std::mem::size_of::<evp_hpke_key_st>(),
17396        72usize,
17397        "Size of evp_hpke_key_st"
17398    );
17399    assert_eq!(
17400        ::std::mem::align_of::<evp_hpke_key_st>(),
17401        8usize,
17402        "Alignment of evp_hpke_key_st"
17403    );
17404    assert_eq!(
17405        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17406        0usize,
17407        "Offset of field: evp_hpke_key_st::kem"
17408    );
17409    assert_eq!(
17410        unsafe { ::std::ptr::addr_of!((*ptr).private_key) as usize - ptr as usize },
17411        8usize,
17412        "Offset of field: evp_hpke_key_st::private_key"
17413    );
17414    assert_eq!(
17415        unsafe { ::std::ptr::addr_of!((*ptr).public_key) as usize - ptr as usize },
17416        40usize,
17417        "Offset of field: evp_hpke_key_st::public_key"
17418    );
17419}
17420impl Default for evp_hpke_key_st {
17421    fn default() -> Self {
17422        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17423        unsafe {
17424            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17425            s.assume_init()
17426        }
17427    }
17428}
17429#[repr(C)]
17430#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17431pub struct HRSS_private_key {
17432    pub opaque: [u8; 1808usize],
17433}
17434#[test]
17435fn bindgen_test_layout_HRSS_private_key() {
17436    const UNINIT: ::std::mem::MaybeUninit<HRSS_private_key> = ::std::mem::MaybeUninit::uninit();
17437    let ptr = UNINIT.as_ptr();
17438    assert_eq!(
17439        ::std::mem::size_of::<HRSS_private_key>(),
17440        1808usize,
17441        "Size of HRSS_private_key"
17442    );
17443    assert_eq!(
17444        ::std::mem::align_of::<HRSS_private_key>(),
17445        1usize,
17446        "Alignment of HRSS_private_key"
17447    );
17448    assert_eq!(
17449        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17450        0usize,
17451        "Offset of field: HRSS_private_key::opaque"
17452    );
17453}
17454impl Default for HRSS_private_key {
17455    fn default() -> Self {
17456        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17457        unsafe {
17458            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17459            s.assume_init()
17460        }
17461    }
17462}
17463#[repr(C)]
17464#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17465pub struct HRSS_public_key {
17466    pub opaque: [u8; 1424usize],
17467}
17468#[test]
17469fn bindgen_test_layout_HRSS_public_key() {
17470    const UNINIT: ::std::mem::MaybeUninit<HRSS_public_key> = ::std::mem::MaybeUninit::uninit();
17471    let ptr = UNINIT.as_ptr();
17472    assert_eq!(
17473        ::std::mem::size_of::<HRSS_public_key>(),
17474        1424usize,
17475        "Size of HRSS_public_key"
17476    );
17477    assert_eq!(
17478        ::std::mem::align_of::<HRSS_public_key>(),
17479        1usize,
17480        "Alignment of HRSS_public_key"
17481    );
17482    assert_eq!(
17483        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17484        0usize,
17485        "Offset of field: HRSS_public_key::opaque"
17486    );
17487}
17488impl Default for HRSS_public_key {
17489    fn default() -> Self {
17490        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17491        unsafe {
17492            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17493            s.assume_init()
17494        }
17495    }
17496}
17497extern "C" {
17498    #[link_name = "\u{1}aws_lc_0_36_0_HRSS_generate_key"]
17499    pub fn HRSS_generate_key(
17500        out_pub: *mut HRSS_public_key,
17501        out_priv: *mut HRSS_private_key,
17502        input: *const u8,
17503    ) -> ::std::os::raw::c_int;
17504}
17505extern "C" {
17506    #[link_name = "\u{1}aws_lc_0_36_0_HRSS_encap"]
17507    pub fn HRSS_encap(
17508        out_ciphertext: *mut u8,
17509        out_shared_key: *mut u8,
17510        in_pub: *const HRSS_public_key,
17511        in_: *const u8,
17512    ) -> ::std::os::raw::c_int;
17513}
17514extern "C" {
17515    #[link_name = "\u{1}aws_lc_0_36_0_HRSS_decap"]
17516    pub fn HRSS_decap(
17517        out_shared_key: *mut u8,
17518        in_priv: *const HRSS_private_key,
17519        ciphertext: *const u8,
17520        ciphertext_len: usize,
17521    ) -> ::std::os::raw::c_int;
17522}
17523extern "C" {
17524    #[link_name = "\u{1}aws_lc_0_36_0_HRSS_marshal_public_key"]
17525    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
17526}
17527extern "C" {
17528    #[link_name = "\u{1}aws_lc_0_36_0_HRSS_parse_public_key"]
17529    pub fn HRSS_parse_public_key(
17530        out: *mut HRSS_public_key,
17531        in_: *const u8,
17532    ) -> ::std::os::raw::c_int;
17533}
17534extern "C" {
17535    #[link_name = "\u{1}aws_lc_0_36_0_MD4_Init"]
17536    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17537}
17538extern "C" {
17539    #[link_name = "\u{1}aws_lc_0_36_0_MD4_Update"]
17540    pub fn MD4_Update(
17541        md4: *mut MD4_CTX,
17542        data: *const ::std::os::raw::c_void,
17543        len: usize,
17544    ) -> ::std::os::raw::c_int;
17545}
17546extern "C" {
17547    #[link_name = "\u{1}aws_lc_0_36_0_MD4_Final"]
17548    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17549}
17550extern "C" {
17551    #[link_name = "\u{1}aws_lc_0_36_0_MD4"]
17552    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
17553}
17554extern "C" {
17555    #[link_name = "\u{1}aws_lc_0_36_0_MD4_Transform"]
17556    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
17557}
17558#[repr(C)]
17559#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17560pub struct md4_state_st {
17561    pub h: [u32; 4usize],
17562    pub Nl: u32,
17563    pub Nh: u32,
17564    pub data: [u8; 64usize],
17565    pub num: ::std::os::raw::c_uint,
17566}
17567#[test]
17568fn bindgen_test_layout_md4_state_st() {
17569    const UNINIT: ::std::mem::MaybeUninit<md4_state_st> = ::std::mem::MaybeUninit::uninit();
17570    let ptr = UNINIT.as_ptr();
17571    assert_eq!(
17572        ::std::mem::size_of::<md4_state_st>(),
17573        92usize,
17574        "Size of md4_state_st"
17575    );
17576    assert_eq!(
17577        ::std::mem::align_of::<md4_state_st>(),
17578        4usize,
17579        "Alignment of md4_state_st"
17580    );
17581    assert_eq!(
17582        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
17583        0usize,
17584        "Offset of field: md4_state_st::h"
17585    );
17586    assert_eq!(
17587        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
17588        16usize,
17589        "Offset of field: md4_state_st::Nl"
17590    );
17591    assert_eq!(
17592        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
17593        20usize,
17594        "Offset of field: md4_state_st::Nh"
17595    );
17596    assert_eq!(
17597        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17598        24usize,
17599        "Offset of field: md4_state_st::data"
17600    );
17601    assert_eq!(
17602        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
17603        88usize,
17604        "Offset of field: md4_state_st::num"
17605    );
17606}
17607impl Default for md4_state_st {
17608    fn default() -> Self {
17609        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17610        unsafe {
17611            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17612            s.assume_init()
17613        }
17614    }
17615}
17616#[repr(C)]
17617#[derive(Debug, Copy, Clone)]
17618pub struct stack_st_CRYPTO_BUFFER {
17619    _unused: [u8; 0],
17620}
17621#[repr(C)]
17622#[derive(Debug, Copy, Clone)]
17623pub struct stack_st_X509 {
17624    _unused: [u8; 0],
17625}
17626#[repr(C)]
17627#[derive(Debug, Copy, Clone)]
17628pub struct stack_st_X509_CRL {
17629    _unused: [u8; 0],
17630}
17631extern "C" {
17632    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_raw_certificates"]
17633    pub fn PKCS7_get_raw_certificates(
17634        out_certs: *mut stack_st_CRYPTO_BUFFER,
17635        cbs: *mut CBS,
17636        pool: *mut CRYPTO_BUFFER_POOL,
17637    ) -> ::std::os::raw::c_int;
17638}
17639extern "C" {
17640    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_certificates"]
17641    pub fn PKCS7_get_certificates(
17642        out_certs: *mut stack_st_X509,
17643        cbs: *mut CBS,
17644    ) -> ::std::os::raw::c_int;
17645}
17646extern "C" {
17647    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_bundle_raw_certificates"]
17648    pub fn PKCS7_bundle_raw_certificates(
17649        out: *mut CBB,
17650        certs: *const stack_st_CRYPTO_BUFFER,
17651    ) -> ::std::os::raw::c_int;
17652}
17653extern "C" {
17654    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_bundle_certificates"]
17655    pub fn PKCS7_bundle_certificates(
17656        out: *mut CBB,
17657        certs: *const stack_st_X509,
17658    ) -> ::std::os::raw::c_int;
17659}
17660extern "C" {
17661    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_CRLs"]
17662    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS)
17663        -> ::std::os::raw::c_int;
17664}
17665extern "C" {
17666    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_bundle_CRLs"]
17667    pub fn PKCS7_bundle_CRLs(
17668        out: *mut CBB,
17669        crls: *const stack_st_X509_CRL,
17670    ) -> ::std::os::raw::c_int;
17671}
17672extern "C" {
17673    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_PEM_certificates"]
17674    pub fn PKCS7_get_PEM_certificates(
17675        out_certs: *mut stack_st_X509,
17676        pem_bio: *mut BIO,
17677    ) -> ::std::os::raw::c_int;
17678}
17679extern "C" {
17680    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_PEM_CRLs"]
17681    pub fn PKCS7_get_PEM_CRLs(
17682        out_crls: *mut stack_st_X509_CRL,
17683        pem_bio: *mut BIO,
17684    ) -> ::std::os::raw::c_int;
17685}
17686extern "C" {
17687    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS7_bio"]
17688    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
17689}
17690extern "C" {
17691    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS7_bio"]
17692    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::std::os::raw::c_int;
17693}
17694extern "C" {
17695    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_data"]
17696    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::std::os::raw::c_int;
17697}
17698extern "C" {
17699    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_digest"]
17700    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::std::os::raw::c_int;
17701}
17702extern "C" {
17703    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_encrypted"]
17704    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::std::os::raw::c_int;
17705}
17706extern "C" {
17707    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_enveloped"]
17708    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17709}
17710extern "C" {
17711    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_signed"]
17712    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::std::os::raw::c_int;
17713}
17714extern "C" {
17715    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_type_is_signedAndEnveloped"]
17716    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17717}
17718#[repr(C)]
17719#[derive(Copy, Clone)]
17720pub struct pkcs7_st {
17721    pub type_: *mut ASN1_OBJECT,
17722    pub d: pkcs7_st__bindgen_ty_1,
17723}
17724#[repr(C)]
17725#[derive(Copy, Clone)]
17726pub union pkcs7_st__bindgen_ty_1 {
17727    pub ptr: *mut ::std::os::raw::c_char,
17728    pub data: *mut ASN1_OCTET_STRING,
17729    pub sign: *mut PKCS7_SIGNED,
17730    pub enveloped: *mut PKCS7_ENVELOPE,
17731    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
17732    pub digest: *mut PKCS7_DIGEST,
17733    pub encrypted: *mut PKCS7_ENCRYPT,
17734    pub other: *mut ASN1_TYPE,
17735}
17736#[test]
17737fn bindgen_test_layout_pkcs7_st__bindgen_ty_1() {
17738    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st__bindgen_ty_1> =
17739        ::std::mem::MaybeUninit::uninit();
17740    let ptr = UNINIT.as_ptr();
17741    assert_eq!(
17742        ::std::mem::size_of::<pkcs7_st__bindgen_ty_1>(),
17743        8usize,
17744        "Size of pkcs7_st__bindgen_ty_1"
17745    );
17746    assert_eq!(
17747        ::std::mem::align_of::<pkcs7_st__bindgen_ty_1>(),
17748        8usize,
17749        "Alignment of pkcs7_st__bindgen_ty_1"
17750    );
17751    assert_eq!(
17752        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
17753        0usize,
17754        "Offset of field: pkcs7_st__bindgen_ty_1::ptr"
17755    );
17756    assert_eq!(
17757        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17758        0usize,
17759        "Offset of field: pkcs7_st__bindgen_ty_1::data"
17760    );
17761    assert_eq!(
17762        unsafe { ::std::ptr::addr_of!((*ptr).sign) as usize - ptr as usize },
17763        0usize,
17764        "Offset of field: pkcs7_st__bindgen_ty_1::sign"
17765    );
17766    assert_eq!(
17767        unsafe { ::std::ptr::addr_of!((*ptr).enveloped) as usize - ptr as usize },
17768        0usize,
17769        "Offset of field: pkcs7_st__bindgen_ty_1::enveloped"
17770    );
17771    assert_eq!(
17772        unsafe { ::std::ptr::addr_of!((*ptr).signed_and_enveloped) as usize - ptr as usize },
17773        0usize,
17774        "Offset of field: pkcs7_st__bindgen_ty_1::signed_and_enveloped"
17775    );
17776    assert_eq!(
17777        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
17778        0usize,
17779        "Offset of field: pkcs7_st__bindgen_ty_1::digest"
17780    );
17781    assert_eq!(
17782        unsafe { ::std::ptr::addr_of!((*ptr).encrypted) as usize - ptr as usize },
17783        0usize,
17784        "Offset of field: pkcs7_st__bindgen_ty_1::encrypted"
17785    );
17786    assert_eq!(
17787        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
17788        0usize,
17789        "Offset of field: pkcs7_st__bindgen_ty_1::other"
17790    );
17791}
17792impl Default for pkcs7_st__bindgen_ty_1 {
17793    fn default() -> Self {
17794        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17795        unsafe {
17796            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17797            s.assume_init()
17798        }
17799    }
17800}
17801#[test]
17802fn bindgen_test_layout_pkcs7_st() {
17803    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st> = ::std::mem::MaybeUninit::uninit();
17804    let ptr = UNINIT.as_ptr();
17805    assert_eq!(
17806        ::std::mem::size_of::<pkcs7_st>(),
17807        16usize,
17808        "Size of pkcs7_st"
17809    );
17810    assert_eq!(
17811        ::std::mem::align_of::<pkcs7_st>(),
17812        8usize,
17813        "Alignment of pkcs7_st"
17814    );
17815    assert_eq!(
17816        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
17817        0usize,
17818        "Offset of field: pkcs7_st::type_"
17819    );
17820    assert_eq!(
17821        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
17822        8usize,
17823        "Offset of field: pkcs7_st::d"
17824    );
17825}
17826impl Default for pkcs7_st {
17827    fn default() -> Self {
17828        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17829        unsafe {
17830            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17831            s.assume_init()
17832        }
17833    }
17834}
17835#[repr(C)]
17836#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17837pub struct pkcs7_signed_st {
17838    pub version: *mut ASN1_INTEGER,
17839    pub md_algs: *mut stack_st_X509_ALGOR,
17840    pub contents: *mut PKCS7,
17841    pub cert: *mut stack_st_X509,
17842    pub crl: *mut stack_st_X509_CRL,
17843    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17844}
17845#[test]
17846fn bindgen_test_layout_pkcs7_signed_st() {
17847    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signed_st> = ::std::mem::MaybeUninit::uninit();
17848    let ptr = UNINIT.as_ptr();
17849    assert_eq!(
17850        ::std::mem::size_of::<pkcs7_signed_st>(),
17851        48usize,
17852        "Size of pkcs7_signed_st"
17853    );
17854    assert_eq!(
17855        ::std::mem::align_of::<pkcs7_signed_st>(),
17856        8usize,
17857        "Alignment of pkcs7_signed_st"
17858    );
17859    assert_eq!(
17860        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17861        0usize,
17862        "Offset of field: pkcs7_signed_st::version"
17863    );
17864    assert_eq!(
17865        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
17866        8usize,
17867        "Offset of field: pkcs7_signed_st::md_algs"
17868    );
17869    assert_eq!(
17870        unsafe { ::std::ptr::addr_of!((*ptr).contents) as usize - ptr as usize },
17871        16usize,
17872        "Offset of field: pkcs7_signed_st::contents"
17873    );
17874    assert_eq!(
17875        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
17876        24usize,
17877        "Offset of field: pkcs7_signed_st::cert"
17878    );
17879    assert_eq!(
17880        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
17881        32usize,
17882        "Offset of field: pkcs7_signed_st::crl"
17883    );
17884    assert_eq!(
17885        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
17886        40usize,
17887        "Offset of field: pkcs7_signed_st::signer_info"
17888    );
17889}
17890impl Default for pkcs7_signed_st {
17891    fn default() -> Self {
17892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17893        unsafe {
17894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17895            s.assume_init()
17896        }
17897    }
17898}
17899#[repr(C)]
17900#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17901pub struct pkcs7_signer_info_st {
17902    pub version: *mut ASN1_INTEGER,
17903    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
17904    pub digest_alg: *mut X509_ALGOR,
17905    pub auth_attr: *mut stack_st_X509_ATTRIBUTE,
17906    pub digest_enc_alg: *mut X509_ALGOR,
17907    pub enc_digest: *mut ASN1_OCTET_STRING,
17908    pub unauth_attr: *mut stack_st_X509_ATTRIBUTE,
17909    pub pkey: *mut EVP_PKEY,
17910}
17911#[test]
17912fn bindgen_test_layout_pkcs7_signer_info_st() {
17913    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signer_info_st> = ::std::mem::MaybeUninit::uninit();
17914    let ptr = UNINIT.as_ptr();
17915    assert_eq!(
17916        ::std::mem::size_of::<pkcs7_signer_info_st>(),
17917        64usize,
17918        "Size of pkcs7_signer_info_st"
17919    );
17920    assert_eq!(
17921        ::std::mem::align_of::<pkcs7_signer_info_st>(),
17922        8usize,
17923        "Alignment of pkcs7_signer_info_st"
17924    );
17925    assert_eq!(
17926        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17927        0usize,
17928        "Offset of field: pkcs7_signer_info_st::version"
17929    );
17930    assert_eq!(
17931        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
17932        8usize,
17933        "Offset of field: pkcs7_signer_info_st::issuer_and_serial"
17934    );
17935    assert_eq!(
17936        unsafe { ::std::ptr::addr_of!((*ptr).digest_alg) as usize - ptr as usize },
17937        16usize,
17938        "Offset of field: pkcs7_signer_info_st::digest_alg"
17939    );
17940    assert_eq!(
17941        unsafe { ::std::ptr::addr_of!((*ptr).auth_attr) as usize - ptr as usize },
17942        24usize,
17943        "Offset of field: pkcs7_signer_info_st::auth_attr"
17944    );
17945    assert_eq!(
17946        unsafe { ::std::ptr::addr_of!((*ptr).digest_enc_alg) as usize - ptr as usize },
17947        32usize,
17948        "Offset of field: pkcs7_signer_info_st::digest_enc_alg"
17949    );
17950    assert_eq!(
17951        unsafe { ::std::ptr::addr_of!((*ptr).enc_digest) as usize - ptr as usize },
17952        40usize,
17953        "Offset of field: pkcs7_signer_info_st::enc_digest"
17954    );
17955    assert_eq!(
17956        unsafe { ::std::ptr::addr_of!((*ptr).unauth_attr) as usize - ptr as usize },
17957        48usize,
17958        "Offset of field: pkcs7_signer_info_st::unauth_attr"
17959    );
17960    assert_eq!(
17961        unsafe { ::std::ptr::addr_of!((*ptr).pkey) as usize - ptr as usize },
17962        56usize,
17963        "Offset of field: pkcs7_signer_info_st::pkey"
17964    );
17965}
17966impl Default for pkcs7_signer_info_st {
17967    fn default() -> Self {
17968        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17969        unsafe {
17970            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17971            s.assume_init()
17972        }
17973    }
17974}
17975#[repr(C)]
17976#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17977pub struct pkcs7_sign_envelope_st {
17978    pub version: *mut ASN1_INTEGER,
17979    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
17980    pub md_algs: *mut stack_st_X509_ALGOR,
17981    pub enc_data: *mut PKCS7_ENC_CONTENT,
17982    pub cert: *mut stack_st_X509,
17983    pub crl: *mut stack_st_X509_CRL,
17984    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17985}
17986#[test]
17987fn bindgen_test_layout_pkcs7_sign_envelope_st() {
17988    const UNINIT: ::std::mem::MaybeUninit<pkcs7_sign_envelope_st> =
17989        ::std::mem::MaybeUninit::uninit();
17990    let ptr = UNINIT.as_ptr();
17991    assert_eq!(
17992        ::std::mem::size_of::<pkcs7_sign_envelope_st>(),
17993        56usize,
17994        "Size of pkcs7_sign_envelope_st"
17995    );
17996    assert_eq!(
17997        ::std::mem::align_of::<pkcs7_sign_envelope_st>(),
17998        8usize,
17999        "Alignment of pkcs7_sign_envelope_st"
18000    );
18001    assert_eq!(
18002        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18003        0usize,
18004        "Offset of field: pkcs7_sign_envelope_st::version"
18005    );
18006    assert_eq!(
18007        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18008        8usize,
18009        "Offset of field: pkcs7_sign_envelope_st::recipientinfo"
18010    );
18011    assert_eq!(
18012        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
18013        16usize,
18014        "Offset of field: pkcs7_sign_envelope_st::md_algs"
18015    );
18016    assert_eq!(
18017        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18018        24usize,
18019        "Offset of field: pkcs7_sign_envelope_st::enc_data"
18020    );
18021    assert_eq!(
18022        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18023        32usize,
18024        "Offset of field: pkcs7_sign_envelope_st::cert"
18025    );
18026    assert_eq!(
18027        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
18028        40usize,
18029        "Offset of field: pkcs7_sign_envelope_st::crl"
18030    );
18031    assert_eq!(
18032        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
18033        48usize,
18034        "Offset of field: pkcs7_sign_envelope_st::signer_info"
18035    );
18036}
18037impl Default for pkcs7_sign_envelope_st {
18038    fn default() -> Self {
18039        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18040        unsafe {
18041            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18042            s.assume_init()
18043        }
18044    }
18045}
18046#[repr(C)]
18047#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18048pub struct pkcs7_envelope_st {
18049    pub version: *mut ASN1_INTEGER,
18050    pub enc_data: *mut PKCS7_ENC_CONTENT,
18051    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
18052}
18053#[test]
18054fn bindgen_test_layout_pkcs7_envelope_st() {
18055    const UNINIT: ::std::mem::MaybeUninit<pkcs7_envelope_st> = ::std::mem::MaybeUninit::uninit();
18056    let ptr = UNINIT.as_ptr();
18057    assert_eq!(
18058        ::std::mem::size_of::<pkcs7_envelope_st>(),
18059        24usize,
18060        "Size of pkcs7_envelope_st"
18061    );
18062    assert_eq!(
18063        ::std::mem::align_of::<pkcs7_envelope_st>(),
18064        8usize,
18065        "Alignment of pkcs7_envelope_st"
18066    );
18067    assert_eq!(
18068        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18069        0usize,
18070        "Offset of field: pkcs7_envelope_st::version"
18071    );
18072    assert_eq!(
18073        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18074        8usize,
18075        "Offset of field: pkcs7_envelope_st::enc_data"
18076    );
18077    assert_eq!(
18078        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18079        16usize,
18080        "Offset of field: pkcs7_envelope_st::recipientinfo"
18081    );
18082}
18083impl Default for pkcs7_envelope_st {
18084    fn default() -> Self {
18085        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18086        unsafe {
18087            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18088            s.assume_init()
18089        }
18090    }
18091}
18092#[repr(C)]
18093#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18094pub struct pkcs7_recip_info_st {
18095    pub version: *mut ASN1_INTEGER,
18096    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
18097    pub key_enc_algor: *mut X509_ALGOR,
18098    pub enc_key: *mut ASN1_OCTET_STRING,
18099    pub cert: *mut X509,
18100}
18101#[test]
18102fn bindgen_test_layout_pkcs7_recip_info_st() {
18103    const UNINIT: ::std::mem::MaybeUninit<pkcs7_recip_info_st> = ::std::mem::MaybeUninit::uninit();
18104    let ptr = UNINIT.as_ptr();
18105    assert_eq!(
18106        ::std::mem::size_of::<pkcs7_recip_info_st>(),
18107        40usize,
18108        "Size of pkcs7_recip_info_st"
18109    );
18110    assert_eq!(
18111        ::std::mem::align_of::<pkcs7_recip_info_st>(),
18112        8usize,
18113        "Alignment of pkcs7_recip_info_st"
18114    );
18115    assert_eq!(
18116        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18117        0usize,
18118        "Offset of field: pkcs7_recip_info_st::version"
18119    );
18120    assert_eq!(
18121        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
18122        8usize,
18123        "Offset of field: pkcs7_recip_info_st::issuer_and_serial"
18124    );
18125    assert_eq!(
18126        unsafe { ::std::ptr::addr_of!((*ptr).key_enc_algor) as usize - ptr as usize },
18127        16usize,
18128        "Offset of field: pkcs7_recip_info_st::key_enc_algor"
18129    );
18130    assert_eq!(
18131        unsafe { ::std::ptr::addr_of!((*ptr).enc_key) as usize - ptr as usize },
18132        24usize,
18133        "Offset of field: pkcs7_recip_info_st::enc_key"
18134    );
18135    assert_eq!(
18136        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18137        32usize,
18138        "Offset of field: pkcs7_recip_info_st::cert"
18139    );
18140}
18141impl Default for pkcs7_recip_info_st {
18142    fn default() -> Self {
18143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18144        unsafe {
18145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18146            s.assume_init()
18147        }
18148    }
18149}
18150#[repr(C)]
18151#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18152pub struct pkcs7_issuer_and_serial_st {
18153    pub issuer: *mut X509_NAME,
18154    pub serial: *mut ASN1_INTEGER,
18155}
18156#[test]
18157fn bindgen_test_layout_pkcs7_issuer_and_serial_st() {
18158    const UNINIT: ::std::mem::MaybeUninit<pkcs7_issuer_and_serial_st> =
18159        ::std::mem::MaybeUninit::uninit();
18160    let ptr = UNINIT.as_ptr();
18161    assert_eq!(
18162        ::std::mem::size_of::<pkcs7_issuer_and_serial_st>(),
18163        16usize,
18164        "Size of pkcs7_issuer_and_serial_st"
18165    );
18166    assert_eq!(
18167        ::std::mem::align_of::<pkcs7_issuer_and_serial_st>(),
18168        8usize,
18169        "Alignment of pkcs7_issuer_and_serial_st"
18170    );
18171    assert_eq!(
18172        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
18173        0usize,
18174        "Offset of field: pkcs7_issuer_and_serial_st::issuer"
18175    );
18176    assert_eq!(
18177        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
18178        8usize,
18179        "Offset of field: pkcs7_issuer_and_serial_st::serial"
18180    );
18181}
18182impl Default for pkcs7_issuer_and_serial_st {
18183    fn default() -> Self {
18184        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18185        unsafe {
18186            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18187            s.assume_init()
18188        }
18189    }
18190}
18191extern "C" {
18192    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_new"]
18193    pub fn PKCS7_new() -> *mut PKCS7;
18194}
18195extern "C" {
18196    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_free"]
18197    pub fn PKCS7_free(a: *mut PKCS7);
18198}
18199extern "C" {
18200    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS7"]
18201    pub fn d2i_PKCS7(
18202        a: *mut *mut PKCS7,
18203        in_: *mut *const ::std::os::raw::c_uchar,
18204        len: ::std::os::raw::c_long,
18205    ) -> *mut PKCS7;
18206}
18207extern "C" {
18208    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS7"]
18209    pub fn i2d_PKCS7(
18210        a: *mut PKCS7,
18211        out: *mut *mut ::std::os::raw::c_uchar,
18212    ) -> ::std::os::raw::c_int;
18213}
18214extern "C" {
18215    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_it"]
18216    pub static PKCS7_it: ASN1_ITEM;
18217}
18218extern "C" {
18219    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_RECIP_INFO_new"]
18220    pub fn PKCS7_RECIP_INFO_new() -> *mut PKCS7_RECIP_INFO;
18221}
18222extern "C" {
18223    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_RECIP_INFO_free"]
18224    pub fn PKCS7_RECIP_INFO_free(a: *mut PKCS7_RECIP_INFO);
18225}
18226extern "C" {
18227    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS7_RECIP_INFO"]
18228    pub fn d2i_PKCS7_RECIP_INFO(
18229        a: *mut *mut PKCS7_RECIP_INFO,
18230        in_: *mut *const ::std::os::raw::c_uchar,
18231        len: ::std::os::raw::c_long,
18232    ) -> *mut PKCS7_RECIP_INFO;
18233}
18234extern "C" {
18235    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS7_RECIP_INFO"]
18236    pub fn i2d_PKCS7_RECIP_INFO(
18237        a: *mut PKCS7_RECIP_INFO,
18238        out: *mut *mut ::std::os::raw::c_uchar,
18239    ) -> ::std::os::raw::c_int;
18240}
18241extern "C" {
18242    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_RECIP_INFO_it"]
18243    pub static PKCS7_RECIP_INFO_it: ASN1_ITEM;
18244}
18245extern "C" {
18246    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_SIGNER_INFO_new"]
18247    pub fn PKCS7_SIGNER_INFO_new() -> *mut PKCS7_SIGNER_INFO;
18248}
18249extern "C" {
18250    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_SIGNER_INFO_free"]
18251    pub fn PKCS7_SIGNER_INFO_free(a: *mut PKCS7_SIGNER_INFO);
18252}
18253extern "C" {
18254    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS7_SIGNER_INFO"]
18255    pub fn d2i_PKCS7_SIGNER_INFO(
18256        a: *mut *mut PKCS7_SIGNER_INFO,
18257        in_: *mut *const ::std::os::raw::c_uchar,
18258        len: ::std::os::raw::c_long,
18259    ) -> *mut PKCS7_SIGNER_INFO;
18260}
18261extern "C" {
18262    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS7_SIGNER_INFO"]
18263    pub fn i2d_PKCS7_SIGNER_INFO(
18264        a: *mut PKCS7_SIGNER_INFO,
18265        out: *mut *mut ::std::os::raw::c_uchar,
18266    ) -> ::std::os::raw::c_int;
18267}
18268extern "C" {
18269    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_SIGNER_INFO_it"]
18270    pub static PKCS7_SIGNER_INFO_it: ASN1_ITEM;
18271}
18272#[repr(C)]
18273#[derive(Debug, Copy, Clone)]
18274pub struct stack_st_PKCS7_RECIP_INFO {
18275    _unused: [u8; 0],
18276}
18277pub type sk_PKCS7_RECIP_INFO_free_func =
18278    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_RECIP_INFO)>;
18279pub type sk_PKCS7_RECIP_INFO_copy_func = ::std::option::Option<
18280    unsafe extern "C" fn(arg1: *const PKCS7_RECIP_INFO) -> *mut PKCS7_RECIP_INFO,
18281>;
18282pub type sk_PKCS7_RECIP_INFO_cmp_func = ::std::option::Option<
18283    unsafe extern "C" fn(
18284        arg1: *const *const PKCS7_RECIP_INFO,
18285        arg2: *const *const PKCS7_RECIP_INFO,
18286    ) -> ::std::os::raw::c_int,
18287>;
18288pub type sk_PKCS7_RECIP_INFO_delete_if_func = ::std::option::Option<
18289    unsafe extern "C" fn(
18290        arg1: *mut PKCS7_RECIP_INFO,
18291        arg2: *mut ::std::os::raw::c_void,
18292    ) -> ::std::os::raw::c_int,
18293>;
18294#[repr(C)]
18295#[derive(Debug, Copy, Clone)]
18296pub struct stack_st_PKCS7_SIGNER_INFO {
18297    _unused: [u8; 0],
18298}
18299pub type sk_PKCS7_SIGNER_INFO_free_func =
18300    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_SIGNER_INFO)>;
18301pub type sk_PKCS7_SIGNER_INFO_copy_func = ::std::option::Option<
18302    unsafe extern "C" fn(arg1: *const PKCS7_SIGNER_INFO) -> *mut PKCS7_SIGNER_INFO,
18303>;
18304pub type sk_PKCS7_SIGNER_INFO_cmp_func = ::std::option::Option<
18305    unsafe extern "C" fn(
18306        arg1: *const *const PKCS7_SIGNER_INFO,
18307        arg2: *const *const PKCS7_SIGNER_INFO,
18308    ) -> ::std::os::raw::c_int,
18309>;
18310pub type sk_PKCS7_SIGNER_INFO_delete_if_func = ::std::option::Option<
18311    unsafe extern "C" fn(
18312        arg1: *mut PKCS7_SIGNER_INFO,
18313        arg2: *mut ::std::os::raw::c_void,
18314    ) -> ::std::os::raw::c_int,
18315>;
18316extern "C" {
18317    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_dup"]
18318    pub fn PKCS7_dup(p7: *mut PKCS7) -> *mut PKCS7;
18319}
18320extern "C" {
18321    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_signed_attribute"]
18322    pub fn PKCS7_get_signed_attribute(
18323        si: *const PKCS7_SIGNER_INFO,
18324        nid: ::std::os::raw::c_int,
18325    ) -> *mut ASN1_TYPE;
18326}
18327extern "C" {
18328    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_signer_info"]
18329    pub fn PKCS7_get_signer_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_SIGNER_INFO;
18330}
18331extern "C" {
18332    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_RECIP_INFO_set"]
18333    pub fn PKCS7_RECIP_INFO_set(
18334        p7i: *mut PKCS7_RECIP_INFO,
18335        x509: *mut X509,
18336    ) -> ::std::os::raw::c_int;
18337}
18338extern "C" {
18339    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_SIGNER_INFO_set"]
18340    pub fn PKCS7_SIGNER_INFO_set(
18341        p7i: *mut PKCS7_SIGNER_INFO,
18342        x509: *mut X509,
18343        pkey: *mut EVP_PKEY,
18344        dgst: *const EVP_MD,
18345    ) -> ::std::os::raw::c_int;
18346}
18347extern "C" {
18348    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_add_certificate"]
18349    pub fn PKCS7_add_certificate(p7: *mut PKCS7, x509: *mut X509) -> ::std::os::raw::c_int;
18350}
18351extern "C" {
18352    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_add_crl"]
18353    pub fn PKCS7_add_crl(p7: *mut PKCS7, x509: *mut X509_CRL) -> ::std::os::raw::c_int;
18354}
18355extern "C" {
18356    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_add_recipient_info"]
18357    pub fn PKCS7_add_recipient_info(
18358        p7: *mut PKCS7,
18359        ri: *mut PKCS7_RECIP_INFO,
18360    ) -> ::std::os::raw::c_int;
18361}
18362extern "C" {
18363    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_add_signer"]
18364    pub fn PKCS7_add_signer(p7: *mut PKCS7, p7i: *mut PKCS7_SIGNER_INFO) -> ::std::os::raw::c_int;
18365}
18366extern "C" {
18367    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_content_new"]
18368    pub fn PKCS7_content_new(p7: *mut PKCS7, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18369}
18370extern "C" {
18371    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_set_content"]
18372    pub fn PKCS7_set_content(p7: *mut PKCS7, p7_data: *mut PKCS7) -> ::std::os::raw::c_int;
18373}
18374extern "C" {
18375    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_set_cipher"]
18376    pub fn PKCS7_set_cipher(p7: *mut PKCS7, cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
18377}
18378extern "C" {
18379    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_set_type"]
18380    pub fn PKCS7_set_type(p7: *mut PKCS7, type_: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18381}
18382extern "C" {
18383    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_RECIP_INFO_get0_alg"]
18384    pub fn PKCS7_RECIP_INFO_get0_alg(ri: *mut PKCS7_RECIP_INFO, penc: *mut *mut X509_ALGOR);
18385}
18386extern "C" {
18387    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_SIGNER_INFO_get0_algs"]
18388    pub fn PKCS7_SIGNER_INFO_get0_algs(
18389        si: *mut PKCS7_SIGNER_INFO,
18390        pk: *mut *mut EVP_PKEY,
18391        pdig: *mut *mut X509_ALGOR,
18392        psig: *mut *mut X509_ALGOR,
18393    );
18394}
18395extern "C" {
18396    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_sign"]
18397    pub fn PKCS7_sign(
18398        sign_cert: *mut X509,
18399        pkey: *mut EVP_PKEY,
18400        certs: *mut stack_st_X509,
18401        data: *mut BIO,
18402        flags: ::std::os::raw::c_int,
18403    ) -> *mut PKCS7;
18404}
18405extern "C" {
18406    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_verify"]
18407    pub fn PKCS7_verify(
18408        p7: *mut PKCS7,
18409        certs: *mut stack_st_X509,
18410        store: *mut X509_STORE,
18411        indata: *mut BIO,
18412        outdata: *mut BIO,
18413        flags: ::std::os::raw::c_int,
18414    ) -> ::std::os::raw::c_int;
18415}
18416extern "C" {
18417    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_is_detached"]
18418    pub fn PKCS7_is_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18419}
18420extern "C" {
18421    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_set_detached"]
18422    pub fn PKCS7_set_detached(
18423        p7: *mut PKCS7,
18424        detach: ::std::os::raw::c_int,
18425    ) -> ::std::os::raw::c_int;
18426}
18427extern "C" {
18428    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_detached"]
18429    pub fn PKCS7_get_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18430}
18431extern "C" {
18432    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_dataInit"]
18433    pub fn PKCS7_dataInit(p7: *mut PKCS7, bio: *mut BIO) -> *mut BIO;
18434}
18435extern "C" {
18436    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_dataFinal"]
18437    pub fn PKCS7_dataFinal(p7: *mut PKCS7, bio: *mut BIO) -> ::std::os::raw::c_int;
18438}
18439extern "C" {
18440    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_set_digest"]
18441    pub fn PKCS7_set_digest(p7: *mut PKCS7, md: *const EVP_MD) -> ::std::os::raw::c_int;
18442}
18443extern "C" {
18444    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get_recipient_info"]
18445    pub fn PKCS7_get_recipient_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_RECIP_INFO;
18446}
18447extern "C" {
18448    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_add_recipient"]
18449    pub fn PKCS7_add_recipient(p7: *mut PKCS7, x509: *mut X509) -> *mut PKCS7_RECIP_INFO;
18450}
18451extern "C" {
18452    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_get0_signers"]
18453    pub fn PKCS7_get0_signers(
18454        p7: *mut PKCS7,
18455        certs: *mut stack_st_X509,
18456        flags: ::std::os::raw::c_int,
18457    ) -> *mut stack_st_X509;
18458}
18459extern "C" {
18460    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_encrypt"]
18461    pub fn PKCS7_encrypt(
18462        certs: *mut stack_st_X509,
18463        in_: *mut BIO,
18464        cipher: *const EVP_CIPHER,
18465        flags: ::std::os::raw::c_int,
18466    ) -> *mut PKCS7;
18467}
18468extern "C" {
18469    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_decrypt"]
18470    pub fn PKCS7_decrypt(
18471        p7: *mut PKCS7,
18472        pkey: *mut EVP_PKEY,
18473        cert: *mut X509,
18474        data: *mut BIO,
18475        flags: ::std::os::raw::c_int,
18476    ) -> ::std::os::raw::c_int;
18477}
18478extern "C" {
18479    #[link_name = "\u{1}aws_lc_0_36_0_SMIME_read_PKCS7"]
18480    pub fn SMIME_read_PKCS7(in_: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7;
18481}
18482extern "C" {
18483    #[link_name = "\u{1}aws_lc_0_36_0_SMIME_write_PKCS7"]
18484    pub fn SMIME_write_PKCS7(
18485        out: *mut BIO,
18486        p7: *mut PKCS7,
18487        data: *mut BIO,
18488        flags: ::std::os::raw::c_int,
18489    ) -> ::std::os::raw::c_int;
18490}
18491extern "C" {
18492    #[link_name = "\u{1}aws_lc_0_36_0_PKCS7_print_ctx"]
18493    pub fn PKCS7_print_ctx(
18494        bio: *mut BIO,
18495        pkcs7: *mut PKCS7,
18496        indent: ::std::os::raw::c_int,
18497        pctx: *const ASN1_PCTX,
18498    ) -> ::std::os::raw::c_int;
18499}
18500pub type sk_CRYPTO_BUFFER_free_func =
18501    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
18502pub type sk_CRYPTO_BUFFER_copy_func =
18503    ::std::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
18504pub type sk_CRYPTO_BUFFER_cmp_func = ::std::option::Option<
18505    unsafe extern "C" fn(
18506        arg1: *const *const CRYPTO_BUFFER,
18507        arg2: *const *const CRYPTO_BUFFER,
18508    ) -> ::std::os::raw::c_int,
18509>;
18510pub type sk_CRYPTO_BUFFER_delete_if_func = ::std::option::Option<
18511    unsafe extern "C" fn(
18512        arg1: *mut CRYPTO_BUFFER,
18513        arg2: *mut ::std::os::raw::c_void,
18514    ) -> ::std::os::raw::c_int,
18515>;
18516extern "C" {
18517    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_POOL_new"]
18518    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
18519}
18520extern "C" {
18521    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_POOL_free"]
18522    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
18523}
18524extern "C" {
18525    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_new"]
18526    pub fn CRYPTO_BUFFER_new(
18527        data: *const u8,
18528        len: usize,
18529        pool: *mut CRYPTO_BUFFER_POOL,
18530    ) -> *mut CRYPTO_BUFFER;
18531}
18532extern "C" {
18533    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_alloc"]
18534    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
18535}
18536extern "C" {
18537    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_new_from_CBS"]
18538    pub fn CRYPTO_BUFFER_new_from_CBS(
18539        cbs: *const CBS,
18540        pool: *mut CRYPTO_BUFFER_POOL,
18541    ) -> *mut CRYPTO_BUFFER;
18542}
18543extern "C" {
18544    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_new_from_static_data_unsafe"]
18545    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
18546        data: *const u8,
18547        len: usize,
18548        pool: *mut CRYPTO_BUFFER_POOL,
18549    ) -> *mut CRYPTO_BUFFER;
18550}
18551extern "C" {
18552    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_free"]
18553    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
18554}
18555extern "C" {
18556    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_up_ref"]
18557    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
18558}
18559extern "C" {
18560    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_data"]
18561    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
18562}
18563extern "C" {
18564    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_len"]
18565    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
18566}
18567extern "C" {
18568    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_BUFFER_init_CBS"]
18569    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
18570}
18571extern "C" {
18572    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_public_key"]
18573    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
18574}
18575extern "C" {
18576    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_private_key"]
18577    pub fn RSA_new_private_key(
18578        n: *const BIGNUM,
18579        e: *const BIGNUM,
18580        d: *const BIGNUM,
18581        p: *const BIGNUM,
18582        q: *const BIGNUM,
18583        dmp1: *const BIGNUM,
18584        dmq1: *const BIGNUM,
18585        iqmp: *const BIGNUM,
18586    ) -> *mut RSA;
18587}
18588extern "C" {
18589    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new"]
18590    pub fn RSA_new() -> *mut RSA;
18591}
18592extern "C" {
18593    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_method"]
18594    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
18595}
18596extern "C" {
18597    #[link_name = "\u{1}aws_lc_0_36_0_RSA_free"]
18598    pub fn RSA_free(rsa: *mut RSA);
18599}
18600extern "C" {
18601    #[link_name = "\u{1}aws_lc_0_36_0_RSA_up_ref"]
18602    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
18603}
18604extern "C" {
18605    #[link_name = "\u{1}aws_lc_0_36_0_RSA_bits"]
18606    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
18607}
18608extern "C" {
18609    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_n"]
18610    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
18611}
18612extern "C" {
18613    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_e"]
18614    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
18615}
18616extern "C" {
18617    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_d"]
18618    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
18619}
18620extern "C" {
18621    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_p"]
18622    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
18623}
18624extern "C" {
18625    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_q"]
18626    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
18627}
18628extern "C" {
18629    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_dmp1"]
18630    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
18631}
18632extern "C" {
18633    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_dmq1"]
18634    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
18635}
18636extern "C" {
18637    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_iqmp"]
18638    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
18639}
18640extern "C" {
18641    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_key"]
18642    pub fn RSA_get0_key(
18643        rsa: *const RSA,
18644        out_n: *mut *const BIGNUM,
18645        out_e: *mut *const BIGNUM,
18646        out_d: *mut *const BIGNUM,
18647    );
18648}
18649extern "C" {
18650    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_factors"]
18651    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
18652}
18653extern "C" {
18654    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_crt_params"]
18655    pub fn RSA_get0_crt_params(
18656        rsa: *const RSA,
18657        out_dmp1: *mut *const BIGNUM,
18658        out_dmq1: *mut *const BIGNUM,
18659        out_iqmp: *mut *const BIGNUM,
18660    );
18661}
18662extern "C" {
18663    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set0_key"]
18664    pub fn RSA_set0_key(
18665        rsa: *mut RSA,
18666        n: *mut BIGNUM,
18667        e: *mut BIGNUM,
18668        d: *mut BIGNUM,
18669    ) -> ::std::os::raw::c_int;
18670}
18671extern "C" {
18672    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set0_factors"]
18673    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
18674        -> ::std::os::raw::c_int;
18675}
18676extern "C" {
18677    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set0_crt_params"]
18678    pub fn RSA_set0_crt_params(
18679        rsa: *mut RSA,
18680        dmp1: *mut BIGNUM,
18681        dmq1: *mut BIGNUM,
18682        iqmp: *mut BIGNUM,
18683    ) -> ::std::os::raw::c_int;
18684}
18685extern "C" {
18686    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get_default_method"]
18687    pub fn RSA_get_default_method() -> *const RSA_METHOD;
18688}
18689extern "C" {
18690    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_new"]
18691    pub fn RSA_meth_new(
18692        name: *const ::std::os::raw::c_char,
18693        flags: ::std::os::raw::c_int,
18694    ) -> *mut RSA_METHOD;
18695}
18696extern "C" {
18697    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set_method"]
18698    pub fn RSA_set_method(rsa: *mut RSA, meth: *const RSA_METHOD) -> ::std::os::raw::c_int;
18699}
18700extern "C" {
18701    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get_method"]
18702    pub fn RSA_get_method(rsa: *const RSA) -> *const RSA_METHOD;
18703}
18704extern "C" {
18705    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_free"]
18706    pub fn RSA_meth_free(meth: *mut RSA_METHOD);
18707}
18708extern "C" {
18709    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_init"]
18710    pub fn RSA_meth_set_init(
18711        meth: *mut RSA_METHOD,
18712        init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18713    ) -> ::std::os::raw::c_int;
18714}
18715extern "C" {
18716    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_finish"]
18717    pub fn RSA_meth_set_finish(
18718        meth: *mut RSA_METHOD,
18719        finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18720    ) -> ::std::os::raw::c_int;
18721}
18722extern "C" {
18723    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_priv_dec"]
18724    pub fn RSA_meth_set_priv_dec(
18725        meth: *mut RSA_METHOD,
18726        priv_dec: ::std::option::Option<
18727            unsafe extern "C" fn(
18728                max_out: ::std::os::raw::c_int,
18729                from: *const u8,
18730                to: *mut u8,
18731                rsa: *mut RSA,
18732                padding: ::std::os::raw::c_int,
18733            ) -> ::std::os::raw::c_int,
18734        >,
18735    ) -> ::std::os::raw::c_int;
18736}
18737extern "C" {
18738    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_priv_enc"]
18739    pub fn RSA_meth_set_priv_enc(
18740        meth: *mut RSA_METHOD,
18741        priv_enc: ::std::option::Option<
18742            unsafe extern "C" fn(
18743                max_out: ::std::os::raw::c_int,
18744                from: *const u8,
18745                to: *mut u8,
18746                rsa: *mut RSA,
18747                padding: ::std::os::raw::c_int,
18748            ) -> ::std::os::raw::c_int,
18749        >,
18750    ) -> ::std::os::raw::c_int;
18751}
18752extern "C" {
18753    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_pub_dec"]
18754    pub fn RSA_meth_set_pub_dec(
18755        meth: *mut RSA_METHOD,
18756        pub_dec: ::std::option::Option<
18757            unsafe extern "C" fn(
18758                max_out: ::std::os::raw::c_int,
18759                from: *const u8,
18760                to: *mut u8,
18761                rsa: *mut RSA,
18762                padding: ::std::os::raw::c_int,
18763            ) -> ::std::os::raw::c_int,
18764        >,
18765    ) -> ::std::os::raw::c_int;
18766}
18767extern "C" {
18768    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_pub_enc"]
18769    pub fn RSA_meth_set_pub_enc(
18770        meth: *mut RSA_METHOD,
18771        pub_enc: ::std::option::Option<
18772            unsafe extern "C" fn(
18773                max_out: ::std::os::raw::c_int,
18774                from: *const u8,
18775                to: *mut u8,
18776                rsa: *mut RSA,
18777                padding: ::std::os::raw::c_int,
18778            ) -> ::std::os::raw::c_int,
18779        >,
18780    ) -> ::std::os::raw::c_int;
18781}
18782extern "C" {
18783    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set0_app_data"]
18784    pub fn RSA_meth_set0_app_data(
18785        meth: *mut RSA_METHOD,
18786        app_data: *mut ::std::os::raw::c_void,
18787    ) -> ::std::os::raw::c_int;
18788}
18789extern "C" {
18790    #[link_name = "\u{1}aws_lc_0_36_0_RSA_meth_set_sign"]
18791    pub fn RSA_meth_set_sign(
18792        meth: *mut RSA_METHOD,
18793        sign: ::std::option::Option<
18794            unsafe extern "C" fn(
18795                type_: ::std::os::raw::c_int,
18796                m: *const ::std::os::raw::c_uchar,
18797                m_length: ::std::os::raw::c_uint,
18798                sigret: *mut ::std::os::raw::c_uchar,
18799                siglen: *mut ::std::os::raw::c_uint,
18800                rsa: *const RSA,
18801            ) -> ::std::os::raw::c_int,
18802        >,
18803    ) -> ::std::os::raw::c_int;
18804}
18805extern "C" {
18806    #[link_name = "\u{1}aws_lc_0_36_0_RSA_generate_key_ex"]
18807    pub fn RSA_generate_key_ex(
18808        rsa: *mut RSA,
18809        bits: ::std::os::raw::c_int,
18810        e: *const BIGNUM,
18811        cb: *mut BN_GENCB,
18812    ) -> ::std::os::raw::c_int;
18813}
18814extern "C" {
18815    #[link_name = "\u{1}aws_lc_0_36_0_RSA_generate_key_fips"]
18816    pub fn RSA_generate_key_fips(
18817        rsa: *mut RSA,
18818        bits: ::std::os::raw::c_int,
18819        cb: *mut BN_GENCB,
18820    ) -> ::std::os::raw::c_int;
18821}
18822extern "C" {
18823    #[link_name = "\u{1}aws_lc_0_36_0_RSA_encrypt"]
18824    pub fn RSA_encrypt(
18825        rsa: *mut RSA,
18826        out_len: *mut usize,
18827        out: *mut u8,
18828        max_out: usize,
18829        in_: *const u8,
18830        in_len: usize,
18831        padding: ::std::os::raw::c_int,
18832    ) -> ::std::os::raw::c_int;
18833}
18834extern "C" {
18835    #[link_name = "\u{1}aws_lc_0_36_0_RSA_decrypt"]
18836    pub fn RSA_decrypt(
18837        rsa: *mut RSA,
18838        out_len: *mut usize,
18839        out: *mut u8,
18840        max_out: usize,
18841        in_: *const u8,
18842        in_len: usize,
18843        padding: ::std::os::raw::c_int,
18844    ) -> ::std::os::raw::c_int;
18845}
18846extern "C" {
18847    #[link_name = "\u{1}aws_lc_0_36_0_RSA_public_encrypt"]
18848    pub fn RSA_public_encrypt(
18849        flen: usize,
18850        from: *const u8,
18851        to: *mut u8,
18852        rsa: *mut RSA,
18853        padding: ::std::os::raw::c_int,
18854    ) -> ::std::os::raw::c_int;
18855}
18856extern "C" {
18857    #[link_name = "\u{1}aws_lc_0_36_0_RSA_private_decrypt"]
18858    pub fn RSA_private_decrypt(
18859        flen: usize,
18860        from: *const u8,
18861        to: *mut u8,
18862        rsa: *mut RSA,
18863        padding: ::std::os::raw::c_int,
18864    ) -> ::std::os::raw::c_int;
18865}
18866extern "C" {
18867    #[link_name = "\u{1}aws_lc_0_36_0_RSA_sign"]
18868    pub fn RSA_sign(
18869        hash_nid: ::std::os::raw::c_int,
18870        digest: *const u8,
18871        digest_len: usize,
18872        out: *mut u8,
18873        out_len: *mut ::std::os::raw::c_uint,
18874        rsa: *mut RSA,
18875    ) -> ::std::os::raw::c_int;
18876}
18877extern "C" {
18878    #[link_name = "\u{1}aws_lc_0_36_0_RSA_sign_pss_mgf1"]
18879    pub fn RSA_sign_pss_mgf1(
18880        rsa: *mut RSA,
18881        out_len: *mut usize,
18882        out: *mut u8,
18883        max_out: usize,
18884        digest: *const u8,
18885        digest_len: usize,
18886        md: *const EVP_MD,
18887        mgf1_md: *const EVP_MD,
18888        salt_len: ::std::os::raw::c_int,
18889    ) -> ::std::os::raw::c_int;
18890}
18891extern "C" {
18892    #[link_name = "\u{1}aws_lc_0_36_0_RSA_sign_raw"]
18893    pub fn RSA_sign_raw(
18894        rsa: *mut RSA,
18895        out_len: *mut usize,
18896        out: *mut u8,
18897        max_out: usize,
18898        in_: *const u8,
18899        in_len: usize,
18900        padding: ::std::os::raw::c_int,
18901    ) -> ::std::os::raw::c_int;
18902}
18903extern "C" {
18904    #[link_name = "\u{1}aws_lc_0_36_0_RSA_verify"]
18905    pub fn RSA_verify(
18906        hash_nid: ::std::os::raw::c_int,
18907        digest: *const u8,
18908        digest_len: usize,
18909        sig: *const u8,
18910        sig_len: usize,
18911        rsa: *mut RSA,
18912    ) -> ::std::os::raw::c_int;
18913}
18914extern "C" {
18915    #[link_name = "\u{1}aws_lc_0_36_0_RSA_verify_pss_mgf1"]
18916    pub fn RSA_verify_pss_mgf1(
18917        rsa: *mut RSA,
18918        digest: *const u8,
18919        digest_len: usize,
18920        md: *const EVP_MD,
18921        mgf1_md: *const EVP_MD,
18922        salt_len: ::std::os::raw::c_int,
18923        sig: *const u8,
18924        sig_len: usize,
18925    ) -> ::std::os::raw::c_int;
18926}
18927extern "C" {
18928    #[link_name = "\u{1}aws_lc_0_36_0_RSA_verify_raw"]
18929    pub fn RSA_verify_raw(
18930        rsa: *mut RSA,
18931        out_len: *mut usize,
18932        out: *mut u8,
18933        max_out: usize,
18934        in_: *const u8,
18935        in_len: usize,
18936        padding: ::std::os::raw::c_int,
18937    ) -> ::std::os::raw::c_int;
18938}
18939extern "C" {
18940    #[link_name = "\u{1}aws_lc_0_36_0_RSA_private_encrypt"]
18941    pub fn RSA_private_encrypt(
18942        flen: usize,
18943        from: *const u8,
18944        to: *mut u8,
18945        rsa: *mut RSA,
18946        padding: ::std::os::raw::c_int,
18947    ) -> ::std::os::raw::c_int;
18948}
18949extern "C" {
18950    #[link_name = "\u{1}aws_lc_0_36_0_RSA_public_decrypt"]
18951    pub fn RSA_public_decrypt(
18952        flen: usize,
18953        from: *const u8,
18954        to: *mut u8,
18955        rsa: *mut RSA,
18956        padding: ::std::os::raw::c_int,
18957    ) -> ::std::os::raw::c_int;
18958}
18959extern "C" {
18960    #[link_name = "\u{1}aws_lc_0_36_0_RSA_size"]
18961    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
18962}
18963extern "C" {
18964    #[link_name = "\u{1}aws_lc_0_36_0_RSA_is_opaque"]
18965    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
18966}
18967extern "C" {
18968    #[link_name = "\u{1}aws_lc_0_36_0_RSAPublicKey_dup"]
18969    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
18970}
18971extern "C" {
18972    #[link_name = "\u{1}aws_lc_0_36_0_RSAPrivateKey_dup"]
18973    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
18974}
18975extern "C" {
18976    #[link_name = "\u{1}aws_lc_0_36_0_RSA_check_key"]
18977    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
18978}
18979extern "C" {
18980    #[link_name = "\u{1}aws_lc_0_36_0_RSA_check_fips"]
18981    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
18982}
18983extern "C" {
18984    #[link_name = "\u{1}aws_lc_0_36_0_RSA_verify_PKCS1_PSS_mgf1"]
18985    pub fn RSA_verify_PKCS1_PSS_mgf1(
18986        rsa: *const RSA,
18987        mHash: *const u8,
18988        Hash: *const EVP_MD,
18989        mgf1Hash: *const EVP_MD,
18990        EM: *const u8,
18991        sLen: ::std::os::raw::c_int,
18992    ) -> ::std::os::raw::c_int;
18993}
18994extern "C" {
18995    #[link_name = "\u{1}aws_lc_0_36_0_RSA_padding_add_PKCS1_PSS_mgf1"]
18996    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
18997        rsa: *const RSA,
18998        EM: *mut u8,
18999        mHash: *const u8,
19000        Hash: *const EVP_MD,
19001        mgf1Hash: *const EVP_MD,
19002        sLen: ::std::os::raw::c_int,
19003    ) -> ::std::os::raw::c_int;
19004}
19005extern "C" {
19006    #[link_name = "\u{1}aws_lc_0_36_0_RSA_padding_add_PKCS1_OAEP_mgf1"]
19007    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
19008        to: *mut u8,
19009        to_len: usize,
19010        from: *const u8,
19011        from_len: usize,
19012        param: *const u8,
19013        param_len: usize,
19014        md: *const EVP_MD,
19015        mgf1md: *const EVP_MD,
19016    ) -> ::std::os::raw::c_int;
19017}
19018extern "C" {
19019    #[link_name = "\u{1}aws_lc_0_36_0_PKCS1_MGF1"]
19020    pub fn PKCS1_MGF1(
19021        out: *mut u8,
19022        len: usize,
19023        seed: *const u8,
19024        seed_len: usize,
19025        md: *const EVP_MD,
19026    ) -> ::std::os::raw::c_int;
19027}
19028extern "C" {
19029    #[link_name = "\u{1}aws_lc_0_36_0_RSA_add_pkcs1_prefix"]
19030    pub fn RSA_add_pkcs1_prefix(
19031        out_msg: *mut *mut u8,
19032        out_msg_len: *mut usize,
19033        is_alloced: *mut ::std::os::raw::c_int,
19034        hash_nid: ::std::os::raw::c_int,
19035        digest: *const u8,
19036        digest_len: usize,
19037    ) -> ::std::os::raw::c_int;
19038}
19039extern "C" {
19040    #[link_name = "\u{1}aws_lc_0_36_0_RSA_parse_public_key"]
19041    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
19042}
19043extern "C" {
19044    #[link_name = "\u{1}aws_lc_0_36_0_RSA_public_key_from_bytes"]
19045    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19046}
19047extern "C" {
19048    #[link_name = "\u{1}aws_lc_0_36_0_RSA_marshal_public_key"]
19049    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19050}
19051extern "C" {
19052    #[link_name = "\u{1}aws_lc_0_36_0_RSA_public_key_to_bytes"]
19053    pub fn RSA_public_key_to_bytes(
19054        out_bytes: *mut *mut u8,
19055        out_len: *mut usize,
19056        rsa: *const RSA,
19057    ) -> ::std::os::raw::c_int;
19058}
19059extern "C" {
19060    #[link_name = "\u{1}aws_lc_0_36_0_RSA_parse_private_key"]
19061    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
19062}
19063extern "C" {
19064    #[link_name = "\u{1}aws_lc_0_36_0_RSA_private_key_from_bytes"]
19065    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19066}
19067extern "C" {
19068    #[link_name = "\u{1}aws_lc_0_36_0_RSA_marshal_private_key"]
19069    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19070}
19071extern "C" {
19072    #[link_name = "\u{1}aws_lc_0_36_0_RSA_private_key_to_bytes"]
19073    pub fn RSA_private_key_to_bytes(
19074        out_bytes: *mut *mut u8,
19075        out_len: *mut usize,
19076        rsa: *const RSA,
19077    ) -> ::std::os::raw::c_int;
19078}
19079extern "C" {
19080    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_private_key_no_crt"]
19081    pub fn RSA_new_private_key_no_crt(
19082        n: *const BIGNUM,
19083        e: *const BIGNUM,
19084        d: *const BIGNUM,
19085    ) -> *mut RSA;
19086}
19087extern "C" {
19088    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_private_key_no_e"]
19089    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
19090}
19091extern "C" {
19092    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_public_key_large_e"]
19093    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
19094}
19095extern "C" {
19096    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_private_key_large_e"]
19097    pub fn RSA_new_private_key_large_e(
19098        n: *const BIGNUM,
19099        e: *const BIGNUM,
19100        d: *const BIGNUM,
19101        p: *const BIGNUM,
19102        q: *const BIGNUM,
19103        dmp1: *const BIGNUM,
19104        dmq1: *const BIGNUM,
19105        iqmp: *const BIGNUM,
19106    ) -> *mut RSA;
19107}
19108extern "C" {
19109    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get_ex_new_index"]
19110    pub fn RSA_get_ex_new_index(
19111        argl: ::std::os::raw::c_long,
19112        argp: *mut ::std::os::raw::c_void,
19113        unused: *mut CRYPTO_EX_unused,
19114        dup_unused: CRYPTO_EX_dup,
19115        free_func: CRYPTO_EX_free,
19116    ) -> ::std::os::raw::c_int;
19117}
19118extern "C" {
19119    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set_ex_data"]
19120    pub fn RSA_set_ex_data(
19121        rsa: *mut RSA,
19122        idx: ::std::os::raw::c_int,
19123        arg: *mut ::std::os::raw::c_void,
19124    ) -> ::std::os::raw::c_int;
19125}
19126extern "C" {
19127    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get_ex_data"]
19128    pub fn RSA_get_ex_data(
19129        rsa: *const RSA,
19130        idx: ::std::os::raw::c_int,
19131    ) -> *mut ::std::os::raw::c_void;
19132}
19133extern "C" {
19134    #[link_name = "\u{1}aws_lc_0_36_0_RSA_flags"]
19135    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
19136}
19137extern "C" {
19138    #[link_name = "\u{1}aws_lc_0_36_0_RSA_set_flags"]
19139    pub fn RSA_set_flags(rsa: *mut RSA, flags: ::std::os::raw::c_int);
19140}
19141extern "C" {
19142    #[link_name = "\u{1}aws_lc_0_36_0_RSA_test_flags"]
19143    pub fn RSA_test_flags(rsa: *const RSA, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
19144}
19145extern "C" {
19146    #[link_name = "\u{1}aws_lc_0_36_0_RSA_blinding_on"]
19147    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
19148}
19149extern "C" {
19150    #[link_name = "\u{1}aws_lc_0_36_0_RSA_blinding_off_temp_for_accp_compatibility"]
19151    pub fn RSA_blinding_off_temp_for_accp_compatibility(rsa: *mut RSA);
19152}
19153extern "C" {
19154    #[link_name = "\u{1}aws_lc_0_36_0_RSA_pkey_ctx_ctrl"]
19155    pub fn RSA_pkey_ctx_ctrl(
19156        ctx: *mut EVP_PKEY_CTX,
19157        optype: ::std::os::raw::c_int,
19158        cmd: ::std::os::raw::c_int,
19159        p1: ::std::os::raw::c_int,
19160        p2: *mut ::std::os::raw::c_void,
19161    ) -> ::std::os::raw::c_int;
19162}
19163extern "C" {
19164    #[link_name = "\u{1}aws_lc_0_36_0_RSA_generate_key"]
19165    pub fn RSA_generate_key(
19166        bits: ::std::os::raw::c_int,
19167        e: u64,
19168        callback: *mut ::std::os::raw::c_void,
19169        cb_arg: *mut ::std::os::raw::c_void,
19170    ) -> *mut RSA;
19171}
19172extern "C" {
19173    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPublicKey"]
19174    pub fn d2i_RSAPublicKey(
19175        out: *mut *mut RSA,
19176        inp: *mut *const u8,
19177        len: ::std::os::raw::c_long,
19178    ) -> *mut RSA;
19179}
19180extern "C" {
19181    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPublicKey"]
19182    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19183}
19184extern "C" {
19185    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPrivateKey"]
19186    pub fn d2i_RSAPrivateKey(
19187        out: *mut *mut RSA,
19188        inp: *mut *const u8,
19189        len: ::std::os::raw::c_long,
19190    ) -> *mut RSA;
19191}
19192extern "C" {
19193    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPrivateKey"]
19194    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19195}
19196extern "C" {
19197    #[link_name = "\u{1}aws_lc_0_36_0_RSA_padding_add_PKCS1_PSS"]
19198    pub fn RSA_padding_add_PKCS1_PSS(
19199        rsa: *const RSA,
19200        EM: *mut u8,
19201        mHash: *const u8,
19202        Hash: *const EVP_MD,
19203        sLen: ::std::os::raw::c_int,
19204    ) -> ::std::os::raw::c_int;
19205}
19206extern "C" {
19207    #[link_name = "\u{1}aws_lc_0_36_0_RSA_verify_PKCS1_PSS"]
19208    pub fn RSA_verify_PKCS1_PSS(
19209        rsa: *const RSA,
19210        mHash: *const u8,
19211        Hash: *const EVP_MD,
19212        EM: *const u8,
19213        sLen: ::std::os::raw::c_int,
19214    ) -> ::std::os::raw::c_int;
19215}
19216extern "C" {
19217    #[link_name = "\u{1}aws_lc_0_36_0_RSA_padding_add_PKCS1_OAEP"]
19218    pub fn RSA_padding_add_PKCS1_OAEP(
19219        to: *mut u8,
19220        to_len: usize,
19221        from: *const u8,
19222        from_len: usize,
19223        param: *const u8,
19224        param_len: usize,
19225    ) -> ::std::os::raw::c_int;
19226}
19227extern "C" {
19228    #[link_name = "\u{1}aws_lc_0_36_0_RSA_print"]
19229    pub fn RSA_print(
19230        bio: *mut BIO,
19231        rsa: *const RSA,
19232        indent: ::std::os::raw::c_int,
19233    ) -> ::std::os::raw::c_int;
19234}
19235extern "C" {
19236    #[link_name = "\u{1}aws_lc_0_36_0_RSA_print_fp"]
19237    pub fn RSA_print_fp(
19238        fp: *mut FILE,
19239        rsa: *const RSA,
19240        indent: ::std::os::raw::c_int,
19241    ) -> ::std::os::raw::c_int;
19242}
19243extern "C" {
19244    #[link_name = "\u{1}aws_lc_0_36_0_RSA_get0_pss_params"]
19245    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
19246}
19247extern "C" {
19248    #[link_name = "\u{1}aws_lc_0_36_0_RSA_new_method_no_e"]
19249    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
19250}
19251pub type sk_X509_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
19252pub type sk_X509_copy_func =
19253    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
19254pub type sk_X509_cmp_func = ::std::option::Option<
19255    unsafe extern "C" fn(
19256        arg1: *const *const X509,
19257        arg2: *const *const X509,
19258    ) -> ::std::os::raw::c_int,
19259>;
19260pub type sk_X509_delete_if_func = ::std::option::Option<
19261    unsafe extern "C" fn(
19262        arg1: *mut X509,
19263        arg2: *mut ::std::os::raw::c_void,
19264    ) -> ::std::os::raw::c_int,
19265>;
19266extern "C" {
19267    #[link_name = "\u{1}aws_lc_0_36_0_X509_it"]
19268    pub static X509_it: ASN1_ITEM;
19269}
19270extern "C" {
19271    #[link_name = "\u{1}aws_lc_0_36_0_X509_up_ref"]
19272    pub fn X509_up_ref(x509: *mut X509) -> ::std::os::raw::c_int;
19273}
19274extern "C" {
19275    #[link_name = "\u{1}aws_lc_0_36_0_X509_chain_up_ref"]
19276    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
19277}
19278extern "C" {
19279    #[link_name = "\u{1}aws_lc_0_36_0_X509_dup"]
19280    pub fn X509_dup(x509: *mut X509) -> *mut X509;
19281}
19282extern "C" {
19283    #[link_name = "\u{1}aws_lc_0_36_0_X509_free"]
19284    pub fn X509_free(x509: *mut X509);
19285}
19286extern "C" {
19287    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509"]
19288    pub fn d2i_X509(
19289        out: *mut *mut X509,
19290        inp: *mut *const u8,
19291        len: ::std::os::raw::c_long,
19292    ) -> *mut X509;
19293}
19294extern "C" {
19295    #[link_name = "\u{1}aws_lc_0_36_0_X509_parse_from_buffer"]
19296    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
19297}
19298extern "C" {
19299    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509"]
19300    pub fn i2d_X509(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19301}
19302extern "C" {
19303    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_version"]
19304    pub fn X509_get_version(x509: *const X509) -> ::std::os::raw::c_long;
19305}
19306extern "C" {
19307    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_serialNumber"]
19308    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
19309}
19310extern "C" {
19311    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_notBefore"]
19312    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
19313}
19314extern "C" {
19315    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_notAfter"]
19316    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
19317}
19318extern "C" {
19319    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_issuer_name"]
19320    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
19321}
19322extern "C" {
19323    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_subject_name"]
19324    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
19325}
19326extern "C" {
19327    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_X509_PUBKEY"]
19328    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
19329}
19330extern "C" {
19331    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_pubkey"]
19332    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19333}
19334extern "C" {
19335    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_pubkey"]
19336    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19337}
19338extern "C" {
19339    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_pubkey_bitstr"]
19340    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
19341}
19342extern "C" {
19343    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_private_key"]
19344    pub fn X509_check_private_key(
19345        x509: *const X509,
19346        pkey: *const EVP_PKEY,
19347    ) -> ::std::os::raw::c_int;
19348}
19349extern "C" {
19350    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_uids"]
19351    pub fn X509_get0_uids(
19352        x509: *const X509,
19353        out_issuer_uid: *mut *const ASN1_BIT_STRING,
19354        out_subject_uid: *mut *const ASN1_BIT_STRING,
19355    );
19356}
19357extern "C" {
19358    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_extension_flags"]
19359    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
19360}
19361extern "C" {
19362    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_pathlen"]
19363    pub fn X509_get_pathlen(x509: *mut X509) -> ::std::os::raw::c_long;
19364}
19365extern "C" {
19366    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_key_usage"]
19367    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
19368}
19369extern "C" {
19370    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_extended_key_usage"]
19371    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
19372}
19373extern "C" {
19374    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_subject_key_id"]
19375    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19376}
19377extern "C" {
19378    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_authority_key_id"]
19379    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19380}
19381#[repr(C)]
19382#[derive(Debug, Copy, Clone)]
19383pub struct stack_st_GENERAL_NAME {
19384    _unused: [u8; 0],
19385}
19386pub type sk_GENERAL_NAME_free_func =
19387    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
19388pub type sk_GENERAL_NAME_copy_func =
19389    ::std::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
19390pub type sk_GENERAL_NAME_cmp_func = ::std::option::Option<
19391    unsafe extern "C" fn(
19392        arg1: *const *const GENERAL_NAME,
19393        arg2: *const *const GENERAL_NAME,
19394    ) -> ::std::os::raw::c_int,
19395>;
19396pub type sk_GENERAL_NAME_delete_if_func = ::std::option::Option<
19397    unsafe extern "C" fn(
19398        arg1: *mut GENERAL_NAME,
19399        arg2: *mut ::std::os::raw::c_void,
19400    ) -> ::std::os::raw::c_int,
19401>;
19402pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
19403extern "C" {
19404    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_authority_issuer"]
19405    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
19406}
19407extern "C" {
19408    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_authority_serial"]
19409    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
19410}
19411#[repr(C)]
19412#[derive(Debug, Copy, Clone)]
19413pub struct stack_st_X509_EXTENSION {
19414    _unused: [u8; 0],
19415}
19416extern "C" {
19417    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_extensions"]
19418    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
19419}
19420extern "C" {
19421    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext_count"]
19422    pub fn X509_get_ext_count(x: *const X509) -> ::std::os::raw::c_int;
19423}
19424extern "C" {
19425    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext_by_NID"]
19426    pub fn X509_get_ext_by_NID(
19427        x: *const X509,
19428        nid: ::std::os::raw::c_int,
19429        lastpos: ::std::os::raw::c_int,
19430    ) -> ::std::os::raw::c_int;
19431}
19432extern "C" {
19433    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext_by_OBJ"]
19434    pub fn X509_get_ext_by_OBJ(
19435        x: *const X509,
19436        obj: *const ASN1_OBJECT,
19437        lastpos: ::std::os::raw::c_int,
19438    ) -> ::std::os::raw::c_int;
19439}
19440extern "C" {
19441    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext_by_critical"]
19442    pub fn X509_get_ext_by_critical(
19443        x: *const X509,
19444        crit: ::std::os::raw::c_int,
19445        lastpos: ::std::os::raw::c_int,
19446    ) -> ::std::os::raw::c_int;
19447}
19448extern "C" {
19449    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext"]
19450    pub fn X509_get_ext(x: *const X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19451}
19452extern "C" {
19453    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ext_d2i"]
19454    pub fn X509_get_ext_d2i(
19455        x509: *const X509,
19456        nid: ::std::os::raw::c_int,
19457        out_critical: *mut ::std::os::raw::c_int,
19458        out_idx: *mut ::std::os::raw::c_int,
19459    ) -> *mut ::std::os::raw::c_void;
19460}
19461extern "C" {
19462    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_tbs_sigalg"]
19463    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
19464}
19465extern "C" {
19466    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_signature_info"]
19467    pub fn X509_get_signature_info(
19468        x509: *mut X509,
19469        digest_nid: *mut ::std::os::raw::c_int,
19470        pubkey_nid: *mut ::std::os::raw::c_int,
19471        sec_bits: *mut ::std::os::raw::c_int,
19472        flags: *mut u32,
19473    ) -> ::std::os::raw::c_int;
19474}
19475extern "C" {
19476    #[link_name = "\u{1}aws_lc_0_36_0_X509_get0_signature"]
19477    pub fn X509_get0_signature(
19478        out_sig: *mut *const ASN1_BIT_STRING,
19479        out_alg: *mut *const X509_ALGOR,
19480        x509: *const X509,
19481    );
19482}
19483extern "C" {
19484    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_signature_nid"]
19485    pub fn X509_get_signature_nid(x509: *const X509) -> ::std::os::raw::c_int;
19486}
19487extern "C" {
19488    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_tbs"]
19489    pub fn i2d_X509_tbs(
19490        x509: *mut X509,
19491        outp: *mut *mut ::std::os::raw::c_uchar,
19492    ) -> ::std::os::raw::c_int;
19493}
19494extern "C" {
19495    #[link_name = "\u{1}aws_lc_0_36_0_X509_verify"]
19496    pub fn X509_verify(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19497}
19498extern "C" {
19499    #[link_name = "\u{1}aws_lc_0_36_0_X509_get1_email"]
19500    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19501}
19502extern "C" {
19503    #[link_name = "\u{1}aws_lc_0_36_0_X509_get1_ocsp"]
19504    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19505}
19506extern "C" {
19507    #[link_name = "\u{1}aws_lc_0_36_0_X509_email_free"]
19508    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
19509}
19510extern "C" {
19511    #[link_name = "\u{1}aws_lc_0_36_0_X509_cmp"]
19512    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
19513}
19514extern "C" {
19515    #[link_name = "\u{1}aws_lc_0_36_0_X509_new"]
19516    pub fn X509_new() -> *mut X509;
19517}
19518extern "C" {
19519    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_version"]
19520    pub fn X509_set_version(
19521        x509: *mut X509,
19522        version: ::std::os::raw::c_long,
19523    ) -> ::std::os::raw::c_int;
19524}
19525extern "C" {
19526    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_serialNumber"]
19527    pub fn X509_set_serialNumber(
19528        x509: *mut X509,
19529        serial: *const ASN1_INTEGER,
19530    ) -> ::std::os::raw::c_int;
19531}
19532extern "C" {
19533    #[link_name = "\u{1}aws_lc_0_36_0_X509_set1_notBefore"]
19534    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19535}
19536extern "C" {
19537    #[link_name = "\u{1}aws_lc_0_36_0_X509_set1_notAfter"]
19538    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19539}
19540extern "C" {
19541    #[link_name = "\u{1}aws_lc_0_36_0_X509_getm_notBefore"]
19542    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
19543}
19544extern "C" {
19545    #[link_name = "\u{1}aws_lc_0_36_0_X509_getm_notAfter"]
19546    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
19547}
19548extern "C" {
19549    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_issuer_name"]
19550    pub fn X509_set_issuer_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19551}
19552extern "C" {
19553    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_subject_name"]
19554    pub fn X509_set_subject_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19555}
19556extern "C" {
19557    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_pubkey"]
19558    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19559}
19560extern "C" {
19561    #[link_name = "\u{1}aws_lc_0_36_0_X509_delete_ext"]
19562    pub fn X509_delete_ext(x: *mut X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19563}
19564extern "C" {
19565    #[link_name = "\u{1}aws_lc_0_36_0_X509_add_ext"]
19566    pub fn X509_add_ext(
19567        x: *mut X509,
19568        ex: *const X509_EXTENSION,
19569        loc: ::std::os::raw::c_int,
19570    ) -> ::std::os::raw::c_int;
19571}
19572extern "C" {
19573    #[link_name = "\u{1}aws_lc_0_36_0_X509_add1_ext_i2d"]
19574    pub fn X509_add1_ext_i2d(
19575        x: *mut X509,
19576        nid: ::std::os::raw::c_int,
19577        value: *mut ::std::os::raw::c_void,
19578        crit: ::std::os::raw::c_int,
19579        flags: ::std::os::raw::c_ulong,
19580    ) -> ::std::os::raw::c_int;
19581}
19582extern "C" {
19583    #[link_name = "\u{1}aws_lc_0_36_0_X509_sign"]
19584    pub fn X509_sign(
19585        x509: *mut X509,
19586        pkey: *mut EVP_PKEY,
19587        md: *const EVP_MD,
19588    ) -> ::std::os::raw::c_int;
19589}
19590extern "C" {
19591    #[link_name = "\u{1}aws_lc_0_36_0_X509_sign_ctx"]
19592    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19593}
19594extern "C" {
19595    #[link_name = "\u{1}aws_lc_0_36_0_i2d_re_X509_tbs"]
19596    pub fn i2d_re_X509_tbs(
19597        x509: *mut X509,
19598        outp: *mut *mut ::std::os::raw::c_uchar,
19599    ) -> ::std::os::raw::c_int;
19600}
19601extern "C" {
19602    #[link_name = "\u{1}aws_lc_0_36_0_X509_set1_signature_algo"]
19603    pub fn X509_set1_signature_algo(
19604        x509: *mut X509,
19605        algo: *const X509_ALGOR,
19606    ) -> ::std::os::raw::c_int;
19607}
19608extern "C" {
19609    #[link_name = "\u{1}aws_lc_0_36_0_X509_set1_signature_value"]
19610    pub fn X509_set1_signature_value(
19611        x509: *mut X509,
19612        sig: *const u8,
19613        sig_len: usize,
19614    ) -> ::std::os::raw::c_int;
19615}
19616extern "C" {
19617    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_AUX"]
19618    pub fn i2d_X509_AUX(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19619}
19620extern "C" {
19621    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_AUX"]
19622    pub fn d2i_X509_AUX(
19623        x509: *mut *mut X509,
19624        inp: *mut *const u8,
19625        length: ::std::os::raw::c_long,
19626    ) -> *mut X509;
19627}
19628extern "C" {
19629    #[link_name = "\u{1}aws_lc_0_36_0_X509_alias_set1"]
19630    pub fn X509_alias_set1(
19631        x509: *mut X509,
19632        name: *const u8,
19633        len: ossl_ssize_t,
19634    ) -> ::std::os::raw::c_int;
19635}
19636extern "C" {
19637    #[link_name = "\u{1}aws_lc_0_36_0_X509_keyid_set1"]
19638    pub fn X509_keyid_set1(
19639        x509: *mut X509,
19640        id: *const u8,
19641        len: ossl_ssize_t,
19642    ) -> ::std::os::raw::c_int;
19643}
19644extern "C" {
19645    #[link_name = "\u{1}aws_lc_0_36_0_X509_alias_get0"]
19646    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19647}
19648extern "C" {
19649    #[link_name = "\u{1}aws_lc_0_36_0_X509_keyid_get0"]
19650    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19651}
19652extern "C" {
19653    #[link_name = "\u{1}aws_lc_0_36_0_X509_add1_trust_object"]
19654    pub fn X509_add1_trust_object(
19655        x509: *mut X509,
19656        obj: *const ASN1_OBJECT,
19657    ) -> ::std::os::raw::c_int;
19658}
19659extern "C" {
19660    #[link_name = "\u{1}aws_lc_0_36_0_X509_add1_reject_object"]
19661    pub fn X509_add1_reject_object(
19662        x509: *mut X509,
19663        obj: *const ASN1_OBJECT,
19664    ) -> ::std::os::raw::c_int;
19665}
19666extern "C" {
19667    #[link_name = "\u{1}aws_lc_0_36_0_X509_trust_clear"]
19668    pub fn X509_trust_clear(x509: *mut X509);
19669}
19670extern "C" {
19671    #[link_name = "\u{1}aws_lc_0_36_0_X509_reject_clear"]
19672    pub fn X509_reject_clear(x509: *mut X509);
19673}
19674pub type sk_X509_CRL_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
19675pub type sk_X509_CRL_copy_func =
19676    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
19677pub type sk_X509_CRL_cmp_func = ::std::option::Option<
19678    unsafe extern "C" fn(
19679        arg1: *const *const X509_CRL,
19680        arg2: *const *const X509_CRL,
19681    ) -> ::std::os::raw::c_int,
19682>;
19683pub type sk_X509_CRL_delete_if_func = ::std::option::Option<
19684    unsafe extern "C" fn(
19685        arg1: *mut X509_CRL,
19686        arg2: *mut ::std::os::raw::c_void,
19687    ) -> ::std::os::raw::c_int,
19688>;
19689#[repr(C)]
19690#[derive(Debug, Copy, Clone)]
19691pub struct stack_st_X509_REVOKED {
19692    _unused: [u8; 0],
19693}
19694pub type sk_X509_REVOKED_free_func =
19695    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
19696pub type sk_X509_REVOKED_copy_func =
19697    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
19698pub type sk_X509_REVOKED_cmp_func = ::std::option::Option<
19699    unsafe extern "C" fn(
19700        arg1: *const *const X509_REVOKED,
19701        arg2: *const *const X509_REVOKED,
19702    ) -> ::std::os::raw::c_int,
19703>;
19704pub type sk_X509_REVOKED_delete_if_func = ::std::option::Option<
19705    unsafe extern "C" fn(
19706        arg1: *mut X509_REVOKED,
19707        arg2: *mut ::std::os::raw::c_void,
19708    ) -> ::std::os::raw::c_int,
19709>;
19710extern "C" {
19711    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_it"]
19712    pub static X509_CRL_it: ASN1_ITEM;
19713}
19714extern "C" {
19715    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_up_ref"]
19716    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19717}
19718extern "C" {
19719    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_dup"]
19720    pub fn X509_CRL_dup(crl: *mut X509_CRL) -> *mut X509_CRL;
19721}
19722extern "C" {
19723    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_free"]
19724    pub fn X509_CRL_free(crl: *mut X509_CRL);
19725}
19726extern "C" {
19727    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_CRL"]
19728    pub fn d2i_X509_CRL(
19729        out: *mut *mut X509_CRL,
19730        inp: *mut *const u8,
19731        len: ::std::os::raw::c_long,
19732    ) -> *mut X509_CRL;
19733}
19734extern "C" {
19735    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_CRL"]
19736    pub fn i2d_X509_CRL(crl: *mut X509_CRL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19737}
19738extern "C" {
19739    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_match"]
19740    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
19741}
19742extern "C" {
19743    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_version"]
19744    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::std::os::raw::c_long;
19745}
19746extern "C" {
19747    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_lastUpdate"]
19748    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19749}
19750extern "C" {
19751    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_nextUpdate"]
19752    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19753}
19754extern "C" {
19755    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_issuer"]
19756    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
19757}
19758extern "C" {
19759    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_by_serial"]
19760    pub fn X509_CRL_get0_by_serial(
19761        crl: *mut X509_CRL,
19762        out: *mut *mut X509_REVOKED,
19763        serial: *const ASN1_INTEGER,
19764    ) -> ::std::os::raw::c_int;
19765}
19766extern "C" {
19767    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_by_cert"]
19768    pub fn X509_CRL_get0_by_cert(
19769        crl: *mut X509_CRL,
19770        out: *mut *mut X509_REVOKED,
19771        x509: *mut X509,
19772    ) -> ::std::os::raw::c_int;
19773}
19774extern "C" {
19775    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_REVOKED"]
19776    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
19777}
19778extern "C" {
19779    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_extensions"]
19780    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
19781}
19782extern "C" {
19783    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext_count"]
19784    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::std::os::raw::c_int;
19785}
19786extern "C" {
19787    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext_by_NID"]
19788    pub fn X509_CRL_get_ext_by_NID(
19789        x: *const X509_CRL,
19790        nid: ::std::os::raw::c_int,
19791        lastpos: ::std::os::raw::c_int,
19792    ) -> ::std::os::raw::c_int;
19793}
19794extern "C" {
19795    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext_by_OBJ"]
19796    pub fn X509_CRL_get_ext_by_OBJ(
19797        x: *const X509_CRL,
19798        obj: *const ASN1_OBJECT,
19799        lastpos: ::std::os::raw::c_int,
19800    ) -> ::std::os::raw::c_int;
19801}
19802extern "C" {
19803    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext_by_critical"]
19804    pub fn X509_CRL_get_ext_by_critical(
19805        x: *const X509_CRL,
19806        crit: ::std::os::raw::c_int,
19807        lastpos: ::std::os::raw::c_int,
19808    ) -> ::std::os::raw::c_int;
19809}
19810extern "C" {
19811    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext"]
19812    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19813}
19814extern "C" {
19815    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_ext_d2i"]
19816    pub fn X509_CRL_get_ext_d2i(
19817        crl: *const X509_CRL,
19818        nid: ::std::os::raw::c_int,
19819        out_critical: *mut ::std::os::raw::c_int,
19820        out_idx: *mut ::std::os::raw::c_int,
19821    ) -> *mut ::std::os::raw::c_void;
19822}
19823extern "C" {
19824    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get0_signature"]
19825    pub fn X509_CRL_get0_signature(
19826        crl: *const X509_CRL,
19827        out_sig: *mut *const ASN1_BIT_STRING,
19828        out_alg: *mut *const X509_ALGOR,
19829    );
19830}
19831extern "C" {
19832    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_signature_nid"]
19833    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::std::os::raw::c_int;
19834}
19835extern "C" {
19836    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_CRL_tbs"]
19837    pub fn i2d_X509_CRL_tbs(
19838        crl: *mut X509_CRL,
19839        outp: *mut *mut ::std::os::raw::c_uchar,
19840    ) -> ::std::os::raw::c_int;
19841}
19842extern "C" {
19843    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_verify"]
19844    pub fn X509_CRL_verify(crl: *mut X509_CRL, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19845}
19846extern "C" {
19847    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_new"]
19848    pub fn X509_CRL_new() -> *mut X509_CRL;
19849}
19850extern "C" {
19851    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set_version"]
19852    pub fn X509_CRL_set_version(
19853        crl: *mut X509_CRL,
19854        version: ::std::os::raw::c_long,
19855    ) -> ::std::os::raw::c_int;
19856}
19857extern "C" {
19858    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set_issuer_name"]
19859    pub fn X509_CRL_set_issuer_name(
19860        crl: *mut X509_CRL,
19861        name: *mut X509_NAME,
19862    ) -> ::std::os::raw::c_int;
19863}
19864extern "C" {
19865    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set1_lastUpdate"]
19866    pub fn X509_CRL_set1_lastUpdate(
19867        crl: *mut X509_CRL,
19868        tm: *const ASN1_TIME,
19869    ) -> ::std::os::raw::c_int;
19870}
19871extern "C" {
19872    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set1_nextUpdate"]
19873    pub fn X509_CRL_set1_nextUpdate(
19874        crl: *mut X509_CRL,
19875        tm: *const ASN1_TIME,
19876    ) -> ::std::os::raw::c_int;
19877}
19878extern "C" {
19879    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_add0_revoked"]
19880    pub fn X509_CRL_add0_revoked(
19881        crl: *mut X509_CRL,
19882        rev: *mut X509_REVOKED,
19883    ) -> ::std::os::raw::c_int;
19884}
19885extern "C" {
19886    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_sort"]
19887    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19888}
19889extern "C" {
19890    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_delete_ext"]
19891    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::std::os::raw::c_int)
19892        -> *mut X509_EXTENSION;
19893}
19894extern "C" {
19895    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_add_ext"]
19896    pub fn X509_CRL_add_ext(
19897        x: *mut X509_CRL,
19898        ex: *const X509_EXTENSION,
19899        loc: ::std::os::raw::c_int,
19900    ) -> ::std::os::raw::c_int;
19901}
19902extern "C" {
19903    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_add1_ext_i2d"]
19904    pub fn X509_CRL_add1_ext_i2d(
19905        x: *mut X509_CRL,
19906        nid: ::std::os::raw::c_int,
19907        value: *mut ::std::os::raw::c_void,
19908        crit: ::std::os::raw::c_int,
19909        flags: ::std::os::raw::c_ulong,
19910    ) -> ::std::os::raw::c_int;
19911}
19912extern "C" {
19913    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_sign"]
19914    pub fn X509_CRL_sign(
19915        crl: *mut X509_CRL,
19916        pkey: *mut EVP_PKEY,
19917        md: *const EVP_MD,
19918    ) -> ::std::os::raw::c_int;
19919}
19920extern "C" {
19921    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_sign_ctx"]
19922    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19923}
19924extern "C" {
19925    #[link_name = "\u{1}aws_lc_0_36_0_i2d_re_X509_CRL_tbs"]
19926    pub fn i2d_re_X509_CRL_tbs(
19927        crl: *mut X509_CRL,
19928        outp: *mut *mut ::std::os::raw::c_uchar,
19929    ) -> ::std::os::raw::c_int;
19930}
19931extern "C" {
19932    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set1_signature_algo"]
19933    pub fn X509_CRL_set1_signature_algo(
19934        crl: *mut X509_CRL,
19935        algo: *const X509_ALGOR,
19936    ) -> ::std::os::raw::c_int;
19937}
19938extern "C" {
19939    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_set1_signature_value"]
19940    pub fn X509_CRL_set1_signature_value(
19941        crl: *mut X509_CRL,
19942        sig: *const u8,
19943        sig_len: usize,
19944    ) -> ::std::os::raw::c_int;
19945}
19946extern "C" {
19947    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_http_nbio"]
19948    pub fn X509_CRL_http_nbio(
19949        rctx: *mut OCSP_REQ_CTX,
19950        pcrl: *mut *mut X509_CRL,
19951    ) -> ::std::os::raw::c_int;
19952}
19953extern "C" {
19954    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_it"]
19955    pub static X509_REVOKED_it: ASN1_ITEM;
19956}
19957extern "C" {
19958    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_new"]
19959    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
19960}
19961extern "C" {
19962    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_free"]
19963    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
19964}
19965extern "C" {
19966    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_REVOKED"]
19967    pub fn d2i_X509_REVOKED(
19968        out: *mut *mut X509_REVOKED,
19969        inp: *mut *const u8,
19970        len: ::std::os::raw::c_long,
19971    ) -> *mut X509_REVOKED;
19972}
19973extern "C" {
19974    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_REVOKED"]
19975    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19976}
19977extern "C" {
19978    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_dup"]
19979    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
19980}
19981extern "C" {
19982    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get0_serialNumber"]
19983    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
19984}
19985extern "C" {
19986    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_set_serialNumber"]
19987    pub fn X509_REVOKED_set_serialNumber(
19988        revoked: *mut X509_REVOKED,
19989        serial: *const ASN1_INTEGER,
19990    ) -> ::std::os::raw::c_int;
19991}
19992extern "C" {
19993    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get0_revocationDate"]
19994    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
19995}
19996extern "C" {
19997    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_set_revocationDate"]
19998    pub fn X509_REVOKED_set_revocationDate(
19999        revoked: *mut X509_REVOKED,
20000        tm: *const ASN1_TIME,
20001    ) -> ::std::os::raw::c_int;
20002}
20003extern "C" {
20004    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get0_extensions"]
20005    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
20006}
20007extern "C" {
20008    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext_count"]
20009    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::std::os::raw::c_int;
20010}
20011extern "C" {
20012    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext_by_NID"]
20013    pub fn X509_REVOKED_get_ext_by_NID(
20014        x: *const X509_REVOKED,
20015        nid: ::std::os::raw::c_int,
20016        lastpos: ::std::os::raw::c_int,
20017    ) -> ::std::os::raw::c_int;
20018}
20019extern "C" {
20020    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext_by_OBJ"]
20021    pub fn X509_REVOKED_get_ext_by_OBJ(
20022        x: *const X509_REVOKED,
20023        obj: *const ASN1_OBJECT,
20024        lastpos: ::std::os::raw::c_int,
20025    ) -> ::std::os::raw::c_int;
20026}
20027extern "C" {
20028    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext_by_critical"]
20029    pub fn X509_REVOKED_get_ext_by_critical(
20030        x: *const X509_REVOKED,
20031        crit: ::std::os::raw::c_int,
20032        lastpos: ::std::os::raw::c_int,
20033    ) -> ::std::os::raw::c_int;
20034}
20035extern "C" {
20036    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext"]
20037    pub fn X509_REVOKED_get_ext(
20038        x: *const X509_REVOKED,
20039        loc: ::std::os::raw::c_int,
20040    ) -> *mut X509_EXTENSION;
20041}
20042extern "C" {
20043    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_delete_ext"]
20044    pub fn X509_REVOKED_delete_ext(
20045        x: *mut X509_REVOKED,
20046        loc: ::std::os::raw::c_int,
20047    ) -> *mut X509_EXTENSION;
20048}
20049extern "C" {
20050    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_add_ext"]
20051    pub fn X509_REVOKED_add_ext(
20052        x: *mut X509_REVOKED,
20053        ex: *const X509_EXTENSION,
20054        loc: ::std::os::raw::c_int,
20055    ) -> ::std::os::raw::c_int;
20056}
20057extern "C" {
20058    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_get_ext_d2i"]
20059    pub fn X509_REVOKED_get_ext_d2i(
20060        revoked: *const X509_REVOKED,
20061        nid: ::std::os::raw::c_int,
20062        out_critical: *mut ::std::os::raw::c_int,
20063        out_idx: *mut ::std::os::raw::c_int,
20064    ) -> *mut ::std::os::raw::c_void;
20065}
20066extern "C" {
20067    #[link_name = "\u{1}aws_lc_0_36_0_X509_REVOKED_add1_ext_i2d"]
20068    pub fn X509_REVOKED_add1_ext_i2d(
20069        x: *mut X509_REVOKED,
20070        nid: ::std::os::raw::c_int,
20071        value: *mut ::std::os::raw::c_void,
20072        crit: ::std::os::raw::c_int,
20073        flags: ::std::os::raw::c_ulong,
20074    ) -> ::std::os::raw::c_int;
20075}
20076extern "C" {
20077    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_it"]
20078    pub static X509_REQ_it: ASN1_ITEM;
20079}
20080extern "C" {
20081    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_dup"]
20082    pub fn X509_REQ_dup(req: *mut X509_REQ) -> *mut X509_REQ;
20083}
20084extern "C" {
20085    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_free"]
20086    pub fn X509_REQ_free(req: *mut X509_REQ);
20087}
20088extern "C" {
20089    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_REQ"]
20090    pub fn d2i_X509_REQ(
20091        out: *mut *mut X509_REQ,
20092        inp: *mut *const u8,
20093        len: ::std::os::raw::c_long,
20094    ) -> *mut X509_REQ;
20095}
20096extern "C" {
20097    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_REQ"]
20098    pub fn i2d_X509_REQ(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20099}
20100extern "C" {
20101    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_version"]
20102    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::std::os::raw::c_long;
20103}
20104extern "C" {
20105    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_subject_name"]
20106    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
20107}
20108extern "C" {
20109    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get0_pubkey"]
20110    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20111}
20112extern "C" {
20113    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_pubkey"]
20114    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20115}
20116extern "C" {
20117    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_check_private_key"]
20118    pub fn X509_REQ_check_private_key(
20119        req: *const X509_REQ,
20120        pkey: *const EVP_PKEY,
20121    ) -> ::std::os::raw::c_int;
20122}
20123extern "C" {
20124    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_attr_count"]
20125    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::std::os::raw::c_int;
20126}
20127extern "C" {
20128    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_attr"]
20129    pub fn X509_REQ_get_attr(
20130        req: *const X509_REQ,
20131        loc: ::std::os::raw::c_int,
20132    ) -> *mut X509_ATTRIBUTE;
20133}
20134extern "C" {
20135    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_attr_by_NID"]
20136    pub fn X509_REQ_get_attr_by_NID(
20137        req: *const X509_REQ,
20138        nid: ::std::os::raw::c_int,
20139        lastpos: ::std::os::raw::c_int,
20140    ) -> ::std::os::raw::c_int;
20141}
20142extern "C" {
20143    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_attr_by_OBJ"]
20144    pub fn X509_REQ_get_attr_by_OBJ(
20145        req: *const X509_REQ,
20146        obj: *const ASN1_OBJECT,
20147        lastpos: ::std::os::raw::c_int,
20148    ) -> ::std::os::raw::c_int;
20149}
20150extern "C" {
20151    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_extension_nid"]
20152    pub fn X509_REQ_extension_nid(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
20153}
20154extern "C" {
20155    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_extensions"]
20156    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
20157}
20158extern "C" {
20159    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get0_signature"]
20160    pub fn X509_REQ_get0_signature(
20161        req: *const X509_REQ,
20162        out_sig: *mut *const ASN1_BIT_STRING,
20163        out_alg: *mut *const X509_ALGOR,
20164    );
20165}
20166extern "C" {
20167    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get_signature_nid"]
20168    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::std::os::raw::c_int;
20169}
20170extern "C" {
20171    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_verify"]
20172    pub fn X509_REQ_verify(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20173}
20174extern "C" {
20175    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_get1_email"]
20176    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
20177}
20178extern "C" {
20179    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_new"]
20180    pub fn X509_REQ_new() -> *mut X509_REQ;
20181}
20182extern "C" {
20183    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_set_version"]
20184    pub fn X509_REQ_set_version(
20185        req: *mut X509_REQ,
20186        version: ::std::os::raw::c_long,
20187    ) -> ::std::os::raw::c_int;
20188}
20189extern "C" {
20190    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_set_subject_name"]
20191    pub fn X509_REQ_set_subject_name(
20192        req: *mut X509_REQ,
20193        name: *mut X509_NAME,
20194    ) -> ::std::os::raw::c_int;
20195}
20196extern "C" {
20197    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_set_pubkey"]
20198    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20199}
20200extern "C" {
20201    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_delete_attr"]
20202    pub fn X509_REQ_delete_attr(
20203        req: *mut X509_REQ,
20204        loc: ::std::os::raw::c_int,
20205    ) -> *mut X509_ATTRIBUTE;
20206}
20207extern "C" {
20208    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add1_attr"]
20209    pub fn X509_REQ_add1_attr(
20210        req: *mut X509_REQ,
20211        attr: *const X509_ATTRIBUTE,
20212    ) -> ::std::os::raw::c_int;
20213}
20214extern "C" {
20215    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add1_attr_by_OBJ"]
20216    pub fn X509_REQ_add1_attr_by_OBJ(
20217        req: *mut X509_REQ,
20218        obj: *const ASN1_OBJECT,
20219        attrtype: ::std::os::raw::c_int,
20220        data: *const ::std::os::raw::c_uchar,
20221        len: ::std::os::raw::c_int,
20222    ) -> ::std::os::raw::c_int;
20223}
20224extern "C" {
20225    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add1_attr_by_NID"]
20226    pub fn X509_REQ_add1_attr_by_NID(
20227        req: *mut X509_REQ,
20228        nid: ::std::os::raw::c_int,
20229        attrtype: ::std::os::raw::c_int,
20230        data: *const ::std::os::raw::c_uchar,
20231        len: ::std::os::raw::c_int,
20232    ) -> ::std::os::raw::c_int;
20233}
20234extern "C" {
20235    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add1_attr_by_txt"]
20236    pub fn X509_REQ_add1_attr_by_txt(
20237        req: *mut X509_REQ,
20238        attrname: *const ::std::os::raw::c_char,
20239        attrtype: ::std::os::raw::c_int,
20240        data: *const ::std::os::raw::c_uchar,
20241        len: ::std::os::raw::c_int,
20242    ) -> ::std::os::raw::c_int;
20243}
20244extern "C" {
20245    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add_extensions_nid"]
20246    pub fn X509_REQ_add_extensions_nid(
20247        req: *mut X509_REQ,
20248        exts: *const stack_st_X509_EXTENSION,
20249        nid: ::std::os::raw::c_int,
20250    ) -> ::std::os::raw::c_int;
20251}
20252extern "C" {
20253    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_add_extensions"]
20254    pub fn X509_REQ_add_extensions(
20255        req: *mut X509_REQ,
20256        exts: *const stack_st_X509_EXTENSION,
20257    ) -> ::std::os::raw::c_int;
20258}
20259extern "C" {
20260    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_sign"]
20261    pub fn X509_REQ_sign(
20262        req: *mut X509_REQ,
20263        pkey: *mut EVP_PKEY,
20264        md: *const EVP_MD,
20265    ) -> ::std::os::raw::c_int;
20266}
20267extern "C" {
20268    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_sign_ctx"]
20269    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
20270}
20271extern "C" {
20272    #[link_name = "\u{1}aws_lc_0_36_0_i2d_re_X509_REQ_tbs"]
20273    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20274}
20275extern "C" {
20276    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_set1_signature_algo"]
20277    pub fn X509_REQ_set1_signature_algo(
20278        req: *mut X509_REQ,
20279        algo: *const X509_ALGOR,
20280    ) -> ::std::os::raw::c_int;
20281}
20282extern "C" {
20283    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_set1_signature_value"]
20284    pub fn X509_REQ_set1_signature_value(
20285        req: *mut X509_REQ,
20286        sig: *const u8,
20287        sig_len: usize,
20288    ) -> ::std::os::raw::c_int;
20289}
20290#[repr(C)]
20291#[derive(Debug, Copy, Clone)]
20292pub struct stack_st_X509_NAME_ENTRY {
20293    _unused: [u8; 0],
20294}
20295pub type sk_X509_NAME_ENTRY_free_func =
20296    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
20297pub type sk_X509_NAME_ENTRY_copy_func = ::std::option::Option<
20298    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
20299>;
20300pub type sk_X509_NAME_ENTRY_cmp_func = ::std::option::Option<
20301    unsafe extern "C" fn(
20302        arg1: *const *const X509_NAME_ENTRY,
20303        arg2: *const *const X509_NAME_ENTRY,
20304    ) -> ::std::os::raw::c_int,
20305>;
20306pub type sk_X509_NAME_ENTRY_delete_if_func = ::std::option::Option<
20307    unsafe extern "C" fn(
20308        arg1: *mut X509_NAME_ENTRY,
20309        arg2: *mut ::std::os::raw::c_void,
20310    ) -> ::std::os::raw::c_int,
20311>;
20312#[repr(C)]
20313#[derive(Debug, Copy, Clone)]
20314pub struct stack_st_X509_NAME {
20315    _unused: [u8; 0],
20316}
20317pub type sk_X509_NAME_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
20318pub type sk_X509_NAME_copy_func =
20319    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
20320pub type sk_X509_NAME_cmp_func = ::std::option::Option<
20321    unsafe extern "C" fn(
20322        arg1: *const *const X509_NAME,
20323        arg2: *const *const X509_NAME,
20324    ) -> ::std::os::raw::c_int,
20325>;
20326pub type sk_X509_NAME_delete_if_func = ::std::option::Option<
20327    unsafe extern "C" fn(
20328        arg1: *mut X509_NAME,
20329        arg2: *mut ::std::os::raw::c_void,
20330    ) -> ::std::os::raw::c_int,
20331>;
20332extern "C" {
20333    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_it"]
20334    pub static X509_NAME_it: ASN1_ITEM;
20335}
20336extern "C" {
20337    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_new"]
20338    pub fn X509_NAME_new() -> *mut X509_NAME;
20339}
20340extern "C" {
20341    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_free"]
20342    pub fn X509_NAME_free(name: *mut X509_NAME);
20343}
20344extern "C" {
20345    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_NAME"]
20346    pub fn d2i_X509_NAME(
20347        out: *mut *mut X509_NAME,
20348        inp: *mut *const u8,
20349        len: ::std::os::raw::c_long,
20350    ) -> *mut X509_NAME;
20351}
20352extern "C" {
20353    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_NAME"]
20354    pub fn i2d_X509_NAME(in_: *mut X509_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20355}
20356extern "C" {
20357    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_dup"]
20358    pub fn X509_NAME_dup(name: *mut X509_NAME) -> *mut X509_NAME;
20359}
20360extern "C" {
20361    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_cmp"]
20362    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::std::os::raw::c_int;
20363}
20364extern "C" {
20365    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get0_der"]
20366    pub fn X509_NAME_get0_der(
20367        name: *mut X509_NAME,
20368        out_der: *mut *const u8,
20369        out_der_len: *mut usize,
20370    ) -> ::std::os::raw::c_int;
20371}
20372extern "C" {
20373    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_set"]
20374    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *mut X509_NAME) -> ::std::os::raw::c_int;
20375}
20376extern "C" {
20377    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_entry_count"]
20378    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::std::os::raw::c_int;
20379}
20380extern "C" {
20381    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get_index_by_NID"]
20382    pub fn X509_NAME_get_index_by_NID(
20383        name: *const X509_NAME,
20384        nid: ::std::os::raw::c_int,
20385        lastpos: ::std::os::raw::c_int,
20386    ) -> ::std::os::raw::c_int;
20387}
20388extern "C" {
20389    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get_index_by_OBJ"]
20390    pub fn X509_NAME_get_index_by_OBJ(
20391        name: *const X509_NAME,
20392        obj: *const ASN1_OBJECT,
20393        lastpos: ::std::os::raw::c_int,
20394    ) -> ::std::os::raw::c_int;
20395}
20396extern "C" {
20397    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get_entry"]
20398    pub fn X509_NAME_get_entry(
20399        name: *const X509_NAME,
20400        loc: ::std::os::raw::c_int,
20401    ) -> *mut X509_NAME_ENTRY;
20402}
20403extern "C" {
20404    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_delete_entry"]
20405    pub fn X509_NAME_delete_entry(
20406        name: *mut X509_NAME,
20407        loc: ::std::os::raw::c_int,
20408    ) -> *mut X509_NAME_ENTRY;
20409}
20410extern "C" {
20411    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_add_entry"]
20412    pub fn X509_NAME_add_entry(
20413        name: *mut X509_NAME,
20414        entry: *const X509_NAME_ENTRY,
20415        loc: ::std::os::raw::c_int,
20416        set: ::std::os::raw::c_int,
20417    ) -> ::std::os::raw::c_int;
20418}
20419extern "C" {
20420    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_add_entry_by_OBJ"]
20421    pub fn X509_NAME_add_entry_by_OBJ(
20422        name: *mut X509_NAME,
20423        obj: *const ASN1_OBJECT,
20424        type_: ::std::os::raw::c_int,
20425        bytes: *const u8,
20426        len: ossl_ssize_t,
20427        loc: ::std::os::raw::c_int,
20428        set: ::std::os::raw::c_int,
20429    ) -> ::std::os::raw::c_int;
20430}
20431extern "C" {
20432    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_add_entry_by_NID"]
20433    pub fn X509_NAME_add_entry_by_NID(
20434        name: *mut X509_NAME,
20435        nid: ::std::os::raw::c_int,
20436        type_: ::std::os::raw::c_int,
20437        bytes: *const u8,
20438        len: ossl_ssize_t,
20439        loc: ::std::os::raw::c_int,
20440        set: ::std::os::raw::c_int,
20441    ) -> ::std::os::raw::c_int;
20442}
20443extern "C" {
20444    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_add_entry_by_txt"]
20445    pub fn X509_NAME_add_entry_by_txt(
20446        name: *mut X509_NAME,
20447        field: *const ::std::os::raw::c_char,
20448        type_: ::std::os::raw::c_int,
20449        bytes: *const u8,
20450        len: ossl_ssize_t,
20451        loc: ::std::os::raw::c_int,
20452        set: ::std::os::raw::c_int,
20453    ) -> ::std::os::raw::c_int;
20454}
20455extern "C" {
20456    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_it"]
20457    pub static X509_NAME_ENTRY_it: ASN1_ITEM;
20458}
20459extern "C" {
20460    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_new"]
20461    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
20462}
20463extern "C" {
20464    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_free"]
20465    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
20466}
20467extern "C" {
20468    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_NAME_ENTRY"]
20469    pub fn d2i_X509_NAME_ENTRY(
20470        out: *mut *mut X509_NAME_ENTRY,
20471        inp: *mut *const u8,
20472        len: ::std::os::raw::c_long,
20473    ) -> *mut X509_NAME_ENTRY;
20474}
20475extern "C" {
20476    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_NAME_ENTRY"]
20477    pub fn i2d_X509_NAME_ENTRY(
20478        in_: *const X509_NAME_ENTRY,
20479        outp: *mut *mut u8,
20480    ) -> ::std::os::raw::c_int;
20481}
20482extern "C" {
20483    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_dup"]
20484    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
20485}
20486extern "C" {
20487    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_get_object"]
20488    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
20489}
20490extern "C" {
20491    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_set_object"]
20492    pub fn X509_NAME_ENTRY_set_object(
20493        entry: *mut X509_NAME_ENTRY,
20494        obj: *const ASN1_OBJECT,
20495    ) -> ::std::os::raw::c_int;
20496}
20497extern "C" {
20498    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_get_data"]
20499    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
20500}
20501extern "C" {
20502    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_set_data"]
20503    pub fn X509_NAME_ENTRY_set_data(
20504        entry: *mut X509_NAME_ENTRY,
20505        type_: ::std::os::raw::c_int,
20506        bytes: *const u8,
20507        len: ossl_ssize_t,
20508    ) -> ::std::os::raw::c_int;
20509}
20510extern "C" {
20511    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_set"]
20512    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::std::os::raw::c_int;
20513}
20514extern "C" {
20515    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_create_by_OBJ"]
20516    pub fn X509_NAME_ENTRY_create_by_OBJ(
20517        out: *mut *mut X509_NAME_ENTRY,
20518        obj: *const ASN1_OBJECT,
20519        type_: ::std::os::raw::c_int,
20520        bytes: *const u8,
20521        len: ossl_ssize_t,
20522    ) -> *mut X509_NAME_ENTRY;
20523}
20524extern "C" {
20525    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_create_by_NID"]
20526    pub fn X509_NAME_ENTRY_create_by_NID(
20527        out: *mut *mut X509_NAME_ENTRY,
20528        nid: ::std::os::raw::c_int,
20529        type_: ::std::os::raw::c_int,
20530        bytes: *const u8,
20531        len: ossl_ssize_t,
20532    ) -> *mut X509_NAME_ENTRY;
20533}
20534extern "C" {
20535    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_ENTRY_create_by_txt"]
20536    pub fn X509_NAME_ENTRY_create_by_txt(
20537        out: *mut *mut X509_NAME_ENTRY,
20538        field: *const ::std::os::raw::c_char,
20539        type_: ::std::os::raw::c_int,
20540        bytes: *const u8,
20541        len: ossl_ssize_t,
20542    ) -> *mut X509_NAME_ENTRY;
20543}
20544extern "C" {
20545    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_it"]
20546    pub static X509_PUBKEY_it: ASN1_ITEM;
20547}
20548extern "C" {
20549    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_new"]
20550    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
20551}
20552extern "C" {
20553    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_free"]
20554    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
20555}
20556extern "C" {
20557    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_PUBKEY"]
20558    pub fn d2i_X509_PUBKEY(
20559        out: *mut *mut X509_PUBKEY,
20560        inp: *mut *const u8,
20561        len: ::std::os::raw::c_long,
20562    ) -> *mut X509_PUBKEY;
20563}
20564extern "C" {
20565    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_PUBKEY"]
20566    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20567}
20568extern "C" {
20569    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_set"]
20570    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20571}
20572extern "C" {
20573    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_get0"]
20574    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20575}
20576extern "C" {
20577    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_get"]
20578    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20579}
20580extern "C" {
20581    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_set0_param"]
20582    pub fn X509_PUBKEY_set0_param(
20583        pub_: *mut X509_PUBKEY,
20584        obj: *mut ASN1_OBJECT,
20585        param_type: ::std::os::raw::c_int,
20586        param_value: *mut ::std::os::raw::c_void,
20587        key: *mut u8,
20588        key_len: ::std::os::raw::c_int,
20589    ) -> ::std::os::raw::c_int;
20590}
20591extern "C" {
20592    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_get0_param"]
20593    pub fn X509_PUBKEY_get0_param(
20594        out_obj: *mut *mut ASN1_OBJECT,
20595        out_key: *mut *const u8,
20596        out_key_len: *mut ::std::os::raw::c_int,
20597        out_alg: *mut *mut X509_ALGOR,
20598        pub_: *mut X509_PUBKEY,
20599    ) -> ::std::os::raw::c_int;
20600}
20601extern "C" {
20602    #[link_name = "\u{1}aws_lc_0_36_0_X509_PUBKEY_get0_public_key"]
20603    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
20604}
20605extern "C" {
20606    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_it"]
20607    pub static X509_EXTENSION_it: ASN1_ITEM;
20608}
20609extern "C" {
20610    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_new"]
20611    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
20612}
20613extern "C" {
20614    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_free"]
20615    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
20616}
20617extern "C" {
20618    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_EXTENSION"]
20619    pub fn d2i_X509_EXTENSION(
20620        out: *mut *mut X509_EXTENSION,
20621        inp: *mut *const u8,
20622        len: ::std::os::raw::c_long,
20623    ) -> *mut X509_EXTENSION;
20624}
20625extern "C" {
20626    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_EXTENSION"]
20627    pub fn i2d_X509_EXTENSION(
20628        ex: *const X509_EXTENSION,
20629        outp: *mut *mut u8,
20630    ) -> ::std::os::raw::c_int;
20631}
20632extern "C" {
20633    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_dup"]
20634    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
20635}
20636extern "C" {
20637    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_create_by_NID"]
20638    pub fn X509_EXTENSION_create_by_NID(
20639        ex: *mut *mut X509_EXTENSION,
20640        nid: ::std::os::raw::c_int,
20641        crit: ::std::os::raw::c_int,
20642        data: *const ASN1_OCTET_STRING,
20643    ) -> *mut X509_EXTENSION;
20644}
20645extern "C" {
20646    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_create_by_OBJ"]
20647    pub fn X509_EXTENSION_create_by_OBJ(
20648        ex: *mut *mut X509_EXTENSION,
20649        obj: *const ASN1_OBJECT,
20650        crit: ::std::os::raw::c_int,
20651        data: *const ASN1_OCTET_STRING,
20652    ) -> *mut X509_EXTENSION;
20653}
20654extern "C" {
20655    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_get_object"]
20656    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
20657}
20658extern "C" {
20659    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_get_data"]
20660    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
20661}
20662extern "C" {
20663    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_get_critical"]
20664    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
20665}
20666extern "C" {
20667    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_set_object"]
20668    pub fn X509_EXTENSION_set_object(
20669        ex: *mut X509_EXTENSION,
20670        obj: *const ASN1_OBJECT,
20671    ) -> ::std::os::raw::c_int;
20672}
20673extern "C" {
20674    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_set_critical"]
20675    pub fn X509_EXTENSION_set_critical(
20676        ex: *mut X509_EXTENSION,
20677        crit: ::std::os::raw::c_int,
20678    ) -> ::std::os::raw::c_int;
20679}
20680extern "C" {
20681    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSION_set_data"]
20682    pub fn X509_EXTENSION_set_data(
20683        ex: *mut X509_EXTENSION,
20684        data: *const ASN1_OCTET_STRING,
20685    ) -> ::std::os::raw::c_int;
20686}
20687pub type sk_X509_EXTENSION_free_func =
20688    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
20689pub type sk_X509_EXTENSION_copy_func =
20690    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION>;
20691pub type sk_X509_EXTENSION_cmp_func = ::std::option::Option<
20692    unsafe extern "C" fn(
20693        arg1: *const *const X509_EXTENSION,
20694        arg2: *const *const X509_EXTENSION,
20695    ) -> ::std::os::raw::c_int,
20696>;
20697pub type sk_X509_EXTENSION_delete_if_func = ::std::option::Option<
20698    unsafe extern "C" fn(
20699        arg1: *mut X509_EXTENSION,
20700        arg2: *mut ::std::os::raw::c_void,
20701    ) -> ::std::os::raw::c_int,
20702>;
20703pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
20704extern "C" {
20705    #[link_name = "\u{1}aws_lc_0_36_0_X509_EXTENSIONS_it"]
20706    pub static X509_EXTENSIONS_it: ASN1_ITEM;
20707}
20708extern "C" {
20709    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_EXTENSIONS"]
20710    pub fn d2i_X509_EXTENSIONS(
20711        out: *mut *mut X509_EXTENSIONS,
20712        inp: *mut *const u8,
20713        len: ::std::os::raw::c_long,
20714    ) -> *mut X509_EXTENSIONS;
20715}
20716extern "C" {
20717    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_EXTENSIONS"]
20718    pub fn i2d_X509_EXTENSIONS(
20719        alg: *const X509_EXTENSIONS,
20720        outp: *mut *mut u8,
20721    ) -> ::std::os::raw::c_int;
20722}
20723extern "C" {
20724    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_get_ext_count"]
20725    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::std::os::raw::c_int;
20726}
20727extern "C" {
20728    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_get_ext_by_NID"]
20729    pub fn X509v3_get_ext_by_NID(
20730        x: *const stack_st_X509_EXTENSION,
20731        nid: ::std::os::raw::c_int,
20732        lastpos: ::std::os::raw::c_int,
20733    ) -> ::std::os::raw::c_int;
20734}
20735extern "C" {
20736    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_get_ext_by_OBJ"]
20737    pub fn X509v3_get_ext_by_OBJ(
20738        x: *const stack_st_X509_EXTENSION,
20739        obj: *const ASN1_OBJECT,
20740        lastpos: ::std::os::raw::c_int,
20741    ) -> ::std::os::raw::c_int;
20742}
20743extern "C" {
20744    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_get_ext_by_critical"]
20745    pub fn X509v3_get_ext_by_critical(
20746        x: *const stack_st_X509_EXTENSION,
20747        crit: ::std::os::raw::c_int,
20748        lastpos: ::std::os::raw::c_int,
20749    ) -> ::std::os::raw::c_int;
20750}
20751extern "C" {
20752    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_get_ext"]
20753    pub fn X509v3_get_ext(
20754        x: *const stack_st_X509_EXTENSION,
20755        loc: ::std::os::raw::c_int,
20756    ) -> *mut X509_EXTENSION;
20757}
20758extern "C" {
20759    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_delete_ext"]
20760    pub fn X509v3_delete_ext(
20761        x: *mut stack_st_X509_EXTENSION,
20762        loc: ::std::os::raw::c_int,
20763    ) -> *mut X509_EXTENSION;
20764}
20765extern "C" {
20766    #[link_name = "\u{1}aws_lc_0_36_0_X509v3_add_ext"]
20767    pub fn X509v3_add_ext(
20768        x: *mut *mut stack_st_X509_EXTENSION,
20769        ex: *const X509_EXTENSION,
20770        loc: ::std::os::raw::c_int,
20771    ) -> *mut stack_st_X509_EXTENSION;
20772}
20773extern "C" {
20774    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_d2i"]
20775    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::std::os::raw::c_void;
20776}
20777extern "C" {
20778    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_get_d2i"]
20779    pub fn X509V3_get_d2i(
20780        extensions: *const stack_st_X509_EXTENSION,
20781        nid: ::std::os::raw::c_int,
20782        out_critical: *mut ::std::os::raw::c_int,
20783        out_idx: *mut ::std::os::raw::c_int,
20784    ) -> *mut ::std::os::raw::c_void;
20785}
20786extern "C" {
20787    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_free"]
20788    pub fn X509V3_EXT_free(
20789        nid: ::std::os::raw::c_int,
20790        ext_data: *mut ::std::os::raw::c_void,
20791    ) -> ::std::os::raw::c_int;
20792}
20793extern "C" {
20794    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_i2d"]
20795    pub fn X509V3_EXT_i2d(
20796        ext_nid: ::std::os::raw::c_int,
20797        crit: ::std::os::raw::c_int,
20798        ext_struc: *mut ::std::os::raw::c_void,
20799    ) -> *mut X509_EXTENSION;
20800}
20801extern "C" {
20802    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_add1_i2d"]
20803    pub fn X509V3_add1_i2d(
20804        x: *mut *mut stack_st_X509_EXTENSION,
20805        nid: ::std::os::raw::c_int,
20806        value: *mut ::std::os::raw::c_void,
20807        crit: ::std::os::raw::c_int,
20808        flags: ::std::os::raw::c_ulong,
20809    ) -> ::std::os::raw::c_int;
20810}
20811#[repr(C)]
20812#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20813pub struct otherName_st {
20814    pub type_id: *mut ASN1_OBJECT,
20815    pub value: *mut ASN1_TYPE,
20816}
20817#[test]
20818fn bindgen_test_layout_otherName_st() {
20819    const UNINIT: ::std::mem::MaybeUninit<otherName_st> = ::std::mem::MaybeUninit::uninit();
20820    let ptr = UNINIT.as_ptr();
20821    assert_eq!(
20822        ::std::mem::size_of::<otherName_st>(),
20823        16usize,
20824        "Size of otherName_st"
20825    );
20826    assert_eq!(
20827        ::std::mem::align_of::<otherName_st>(),
20828        8usize,
20829        "Alignment of otherName_st"
20830    );
20831    assert_eq!(
20832        unsafe { ::std::ptr::addr_of!((*ptr).type_id) as usize - ptr as usize },
20833        0usize,
20834        "Offset of field: otherName_st::type_id"
20835    );
20836    assert_eq!(
20837        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
20838        8usize,
20839        "Offset of field: otherName_st::value"
20840    );
20841}
20842impl Default for otherName_st {
20843    fn default() -> Self {
20844        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20845        unsafe {
20846            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20847            s.assume_init()
20848        }
20849    }
20850}
20851pub type OTHERNAME = otherName_st;
20852#[repr(C)]
20853#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20854pub struct EDIPartyName_st {
20855    pub nameAssigner: *mut ASN1_STRING,
20856    pub partyName: *mut ASN1_STRING,
20857}
20858#[test]
20859fn bindgen_test_layout_EDIPartyName_st() {
20860    const UNINIT: ::std::mem::MaybeUninit<EDIPartyName_st> = ::std::mem::MaybeUninit::uninit();
20861    let ptr = UNINIT.as_ptr();
20862    assert_eq!(
20863        ::std::mem::size_of::<EDIPartyName_st>(),
20864        16usize,
20865        "Size of EDIPartyName_st"
20866    );
20867    assert_eq!(
20868        ::std::mem::align_of::<EDIPartyName_st>(),
20869        8usize,
20870        "Alignment of EDIPartyName_st"
20871    );
20872    assert_eq!(
20873        unsafe { ::std::ptr::addr_of!((*ptr).nameAssigner) as usize - ptr as usize },
20874        0usize,
20875        "Offset of field: EDIPartyName_st::nameAssigner"
20876    );
20877    assert_eq!(
20878        unsafe { ::std::ptr::addr_of!((*ptr).partyName) as usize - ptr as usize },
20879        8usize,
20880        "Offset of field: EDIPartyName_st::partyName"
20881    );
20882}
20883impl Default for EDIPartyName_st {
20884    fn default() -> Self {
20885        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20886        unsafe {
20887            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20888            s.assume_init()
20889        }
20890    }
20891}
20892pub type EDIPARTYNAME = EDIPartyName_st;
20893#[repr(C)]
20894#[derive(Copy, Clone)]
20895pub struct GENERAL_NAME_st {
20896    pub type_: ::std::os::raw::c_int,
20897    pub d: GENERAL_NAME_st__bindgen_ty_1,
20898}
20899#[repr(C)]
20900#[derive(Copy, Clone)]
20901pub union GENERAL_NAME_st__bindgen_ty_1 {
20902    pub ptr: *mut ::std::os::raw::c_char,
20903    pub otherName: *mut OTHERNAME,
20904    pub rfc822Name: *mut ASN1_IA5STRING,
20905    pub dNSName: *mut ASN1_IA5STRING,
20906    pub x400Address: *mut ASN1_STRING,
20907    pub directoryName: *mut X509_NAME,
20908    pub ediPartyName: *mut EDIPARTYNAME,
20909    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
20910    pub iPAddress: *mut ASN1_OCTET_STRING,
20911    pub registeredID: *mut ASN1_OBJECT,
20912    pub ip: *mut ASN1_OCTET_STRING,
20913    pub dirn: *mut X509_NAME,
20914    pub ia5: *mut ASN1_IA5STRING,
20915    pub rid: *mut ASN1_OBJECT,
20916}
20917#[test]
20918fn bindgen_test_layout_GENERAL_NAME_st__bindgen_ty_1() {
20919    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st__bindgen_ty_1> =
20920        ::std::mem::MaybeUninit::uninit();
20921    let ptr = UNINIT.as_ptr();
20922    assert_eq!(
20923        ::std::mem::size_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20924        8usize,
20925        "Size of GENERAL_NAME_st__bindgen_ty_1"
20926    );
20927    assert_eq!(
20928        ::std::mem::align_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20929        8usize,
20930        "Alignment of GENERAL_NAME_st__bindgen_ty_1"
20931    );
20932    assert_eq!(
20933        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
20934        0usize,
20935        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ptr"
20936    );
20937    assert_eq!(
20938        unsafe { ::std::ptr::addr_of!((*ptr).otherName) as usize - ptr as usize },
20939        0usize,
20940        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::otherName"
20941    );
20942    assert_eq!(
20943        unsafe { ::std::ptr::addr_of!((*ptr).rfc822Name) as usize - ptr as usize },
20944        0usize,
20945        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rfc822Name"
20946    );
20947    assert_eq!(
20948        unsafe { ::std::ptr::addr_of!((*ptr).dNSName) as usize - ptr as usize },
20949        0usize,
20950        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dNSName"
20951    );
20952    assert_eq!(
20953        unsafe { ::std::ptr::addr_of!((*ptr).x400Address) as usize - ptr as usize },
20954        0usize,
20955        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::x400Address"
20956    );
20957    assert_eq!(
20958        unsafe { ::std::ptr::addr_of!((*ptr).directoryName) as usize - ptr as usize },
20959        0usize,
20960        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::directoryName"
20961    );
20962    assert_eq!(
20963        unsafe { ::std::ptr::addr_of!((*ptr).ediPartyName) as usize - ptr as usize },
20964        0usize,
20965        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ediPartyName"
20966    );
20967    assert_eq!(
20968        unsafe { ::std::ptr::addr_of!((*ptr).uniformResourceIdentifier) as usize - ptr as usize },
20969        0usize,
20970        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::uniformResourceIdentifier"
20971    );
20972    assert_eq!(
20973        unsafe { ::std::ptr::addr_of!((*ptr).iPAddress) as usize - ptr as usize },
20974        0usize,
20975        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::iPAddress"
20976    );
20977    assert_eq!(
20978        unsafe { ::std::ptr::addr_of!((*ptr).registeredID) as usize - ptr as usize },
20979        0usize,
20980        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::registeredID"
20981    );
20982    assert_eq!(
20983        unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize },
20984        0usize,
20985        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ip"
20986    );
20987    assert_eq!(
20988        unsafe { ::std::ptr::addr_of!((*ptr).dirn) as usize - ptr as usize },
20989        0usize,
20990        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dirn"
20991    );
20992    assert_eq!(
20993        unsafe { ::std::ptr::addr_of!((*ptr).ia5) as usize - ptr as usize },
20994        0usize,
20995        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ia5"
20996    );
20997    assert_eq!(
20998        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
20999        0usize,
21000        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rid"
21001    );
21002}
21003impl Default for GENERAL_NAME_st__bindgen_ty_1 {
21004    fn default() -> Self {
21005        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21006        unsafe {
21007            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21008            s.assume_init()
21009        }
21010    }
21011}
21012#[test]
21013fn bindgen_test_layout_GENERAL_NAME_st() {
21014    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st> = ::std::mem::MaybeUninit::uninit();
21015    let ptr = UNINIT.as_ptr();
21016    assert_eq!(
21017        ::std::mem::size_of::<GENERAL_NAME_st>(),
21018        16usize,
21019        "Size of GENERAL_NAME_st"
21020    );
21021    assert_eq!(
21022        ::std::mem::align_of::<GENERAL_NAME_st>(),
21023        8usize,
21024        "Alignment of GENERAL_NAME_st"
21025    );
21026    assert_eq!(
21027        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
21028        0usize,
21029        "Offset of field: GENERAL_NAME_st::type_"
21030    );
21031    assert_eq!(
21032        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
21033        8usize,
21034        "Offset of field: GENERAL_NAME_st::d"
21035    );
21036}
21037impl Default for GENERAL_NAME_st {
21038    fn default() -> Self {
21039        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21040        unsafe {
21041            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21042            s.assume_init()
21043        }
21044    }
21045}
21046extern "C" {
21047    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_new"]
21048    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
21049}
21050extern "C" {
21051    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_free"]
21052    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
21053}
21054extern "C" {
21055    #[link_name = "\u{1}aws_lc_0_36_0_d2i_GENERAL_NAME"]
21056    pub fn d2i_GENERAL_NAME(
21057        out: *mut *mut GENERAL_NAME,
21058        inp: *mut *const u8,
21059        len: ::std::os::raw::c_long,
21060    ) -> *mut GENERAL_NAME;
21061}
21062extern "C" {
21063    #[link_name = "\u{1}aws_lc_0_36_0_i2d_GENERAL_NAME"]
21064    pub fn i2d_GENERAL_NAME(in_: *mut GENERAL_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21065}
21066extern "C" {
21067    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_dup"]
21068    pub fn GENERAL_NAME_dup(gen_: *mut GENERAL_NAME) -> *mut GENERAL_NAME;
21069}
21070extern "C" {
21071    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAMES_new"]
21072    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
21073}
21074extern "C" {
21075    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAMES_free"]
21076    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
21077}
21078extern "C" {
21079    #[link_name = "\u{1}aws_lc_0_36_0_d2i_GENERAL_NAMES"]
21080    pub fn d2i_GENERAL_NAMES(
21081        out: *mut *mut GENERAL_NAMES,
21082        inp: *mut *const u8,
21083        len: ::std::os::raw::c_long,
21084    ) -> *mut GENERAL_NAMES;
21085}
21086extern "C" {
21087    #[link_name = "\u{1}aws_lc_0_36_0_i2d_GENERAL_NAMES"]
21088    pub fn i2d_GENERAL_NAMES(in_: *mut GENERAL_NAMES, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21089}
21090extern "C" {
21091    #[link_name = "\u{1}aws_lc_0_36_0_OTHERNAME_new"]
21092    pub fn OTHERNAME_new() -> *mut OTHERNAME;
21093}
21094extern "C" {
21095    #[link_name = "\u{1}aws_lc_0_36_0_OTHERNAME_free"]
21096    pub fn OTHERNAME_free(name: *mut OTHERNAME);
21097}
21098extern "C" {
21099    #[link_name = "\u{1}aws_lc_0_36_0_EDIPARTYNAME_new"]
21100    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
21101}
21102extern "C" {
21103    #[link_name = "\u{1}aws_lc_0_36_0_EDIPARTYNAME_free"]
21104    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
21105}
21106extern "C" {
21107    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_set0_value"]
21108    pub fn GENERAL_NAME_set0_value(
21109        gen_: *mut GENERAL_NAME,
21110        type_: ::std::os::raw::c_int,
21111        value: *mut ::std::os::raw::c_void,
21112    );
21113}
21114extern "C" {
21115    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_get0_value"]
21116    pub fn GENERAL_NAME_get0_value(
21117        gen_: *const GENERAL_NAME,
21118        out_type: *mut ::std::os::raw::c_int,
21119    ) -> *mut ::std::os::raw::c_void;
21120}
21121extern "C" {
21122    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_set0_othername"]
21123    pub fn GENERAL_NAME_set0_othername(
21124        gen_: *mut GENERAL_NAME,
21125        oid: *mut ASN1_OBJECT,
21126        value: *mut ASN1_TYPE,
21127    ) -> ::std::os::raw::c_int;
21128}
21129extern "C" {
21130    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_get0_otherName"]
21131    pub fn GENERAL_NAME_get0_otherName(
21132        gen_: *const GENERAL_NAME,
21133        out_oid: *mut *mut ASN1_OBJECT,
21134        out_value: *mut *mut ASN1_TYPE,
21135    ) -> ::std::os::raw::c_int;
21136}
21137#[repr(C)]
21138#[derive(Debug, Copy, Clone)]
21139pub struct stack_st_X509_ALGOR {
21140    _unused: [u8; 0],
21141}
21142pub type sk_X509_ALGOR_free_func =
21143    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
21144pub type sk_X509_ALGOR_copy_func =
21145    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
21146pub type sk_X509_ALGOR_cmp_func = ::std::option::Option<
21147    unsafe extern "C" fn(
21148        arg1: *const *const X509_ALGOR,
21149        arg2: *const *const X509_ALGOR,
21150    ) -> ::std::os::raw::c_int,
21151>;
21152pub type sk_X509_ALGOR_delete_if_func = ::std::option::Option<
21153    unsafe extern "C" fn(
21154        arg1: *mut X509_ALGOR,
21155        arg2: *mut ::std::os::raw::c_void,
21156    ) -> ::std::os::raw::c_int,
21157>;
21158extern "C" {
21159    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_it"]
21160    pub static X509_ALGOR_it: ASN1_ITEM;
21161}
21162extern "C" {
21163    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_new"]
21164    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
21165}
21166extern "C" {
21167    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_dup"]
21168    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
21169}
21170extern "C" {
21171    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_free"]
21172    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
21173}
21174extern "C" {
21175    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_ALGOR"]
21176    pub fn d2i_X509_ALGOR(
21177        out: *mut *mut X509_ALGOR,
21178        inp: *mut *const u8,
21179        len: ::std::os::raw::c_long,
21180    ) -> *mut X509_ALGOR;
21181}
21182extern "C" {
21183    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_ALGOR"]
21184    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21185}
21186extern "C" {
21187    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_set0"]
21188    pub fn X509_ALGOR_set0(
21189        alg: *mut X509_ALGOR,
21190        obj: *mut ASN1_OBJECT,
21191        param_type: ::std::os::raw::c_int,
21192        param_value: *mut ::std::os::raw::c_void,
21193    ) -> ::std::os::raw::c_int;
21194}
21195extern "C" {
21196    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_get0"]
21197    pub fn X509_ALGOR_get0(
21198        out_obj: *mut *const ASN1_OBJECT,
21199        out_param_type: *mut ::std::os::raw::c_int,
21200        out_param_value: *mut *const ::std::os::raw::c_void,
21201        alg: *const X509_ALGOR,
21202    );
21203}
21204extern "C" {
21205    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_set_md"]
21206    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::std::os::raw::c_int;
21207}
21208extern "C" {
21209    #[link_name = "\u{1}aws_lc_0_36_0_X509_ALGOR_cmp"]
21210    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::std::os::raw::c_int;
21211}
21212#[repr(C)]
21213#[derive(Debug, Copy, Clone)]
21214pub struct stack_st_X509_ATTRIBUTE {
21215    _unused: [u8; 0],
21216}
21217pub type sk_X509_ATTRIBUTE_free_func =
21218    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
21219pub type sk_X509_ATTRIBUTE_copy_func =
21220    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE>;
21221pub type sk_X509_ATTRIBUTE_cmp_func = ::std::option::Option<
21222    unsafe extern "C" fn(
21223        arg1: *const *const X509_ATTRIBUTE,
21224        arg2: *const *const X509_ATTRIBUTE,
21225    ) -> ::std::os::raw::c_int,
21226>;
21227pub type sk_X509_ATTRIBUTE_delete_if_func = ::std::option::Option<
21228    unsafe extern "C" fn(
21229        arg1: *mut X509_ATTRIBUTE,
21230        arg2: *mut ::std::os::raw::c_void,
21231    ) -> ::std::os::raw::c_int,
21232>;
21233extern "C" {
21234    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_it"]
21235    pub static X509_ATTRIBUTE_it: ASN1_ITEM;
21236}
21237extern "C" {
21238    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_new"]
21239    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
21240}
21241extern "C" {
21242    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_dup"]
21243    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
21244}
21245extern "C" {
21246    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_free"]
21247    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
21248}
21249extern "C" {
21250    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_ATTRIBUTE"]
21251    pub fn d2i_X509_ATTRIBUTE(
21252        out: *mut *mut X509_ATTRIBUTE,
21253        inp: *mut *const u8,
21254        len: ::std::os::raw::c_long,
21255    ) -> *mut X509_ATTRIBUTE;
21256}
21257extern "C" {
21258    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_ATTRIBUTE"]
21259    pub fn i2d_X509_ATTRIBUTE(
21260        alg: *const X509_ATTRIBUTE,
21261        outp: *mut *mut u8,
21262    ) -> ::std::os::raw::c_int;
21263}
21264extern "C" {
21265    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_create"]
21266    pub fn X509_ATTRIBUTE_create(
21267        nid: ::std::os::raw::c_int,
21268        attrtype: ::std::os::raw::c_int,
21269        value: *mut ::std::os::raw::c_void,
21270    ) -> *mut X509_ATTRIBUTE;
21271}
21272extern "C" {
21273    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_create_by_NID"]
21274    pub fn X509_ATTRIBUTE_create_by_NID(
21275        attr: *mut *mut X509_ATTRIBUTE,
21276        nid: ::std::os::raw::c_int,
21277        attrtype: ::std::os::raw::c_int,
21278        data: *const ::std::os::raw::c_void,
21279        len: ::std::os::raw::c_int,
21280    ) -> *mut X509_ATTRIBUTE;
21281}
21282extern "C" {
21283    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_create_by_OBJ"]
21284    pub fn X509_ATTRIBUTE_create_by_OBJ(
21285        attr: *mut *mut X509_ATTRIBUTE,
21286        obj: *const ASN1_OBJECT,
21287        attrtype: ::std::os::raw::c_int,
21288        data: *const ::std::os::raw::c_void,
21289        len: ::std::os::raw::c_int,
21290    ) -> *mut X509_ATTRIBUTE;
21291}
21292extern "C" {
21293    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_create_by_txt"]
21294    pub fn X509_ATTRIBUTE_create_by_txt(
21295        attr: *mut *mut X509_ATTRIBUTE,
21296        attrname: *const ::std::os::raw::c_char,
21297        type_: ::std::os::raw::c_int,
21298        bytes: *const ::std::os::raw::c_uchar,
21299        len: ::std::os::raw::c_int,
21300    ) -> *mut X509_ATTRIBUTE;
21301}
21302extern "C" {
21303    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_set1_object"]
21304    pub fn X509_ATTRIBUTE_set1_object(
21305        attr: *mut X509_ATTRIBUTE,
21306        obj: *const ASN1_OBJECT,
21307    ) -> ::std::os::raw::c_int;
21308}
21309extern "C" {
21310    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_set1_data"]
21311    pub fn X509_ATTRIBUTE_set1_data(
21312        attr: *mut X509_ATTRIBUTE,
21313        attrtype: ::std::os::raw::c_int,
21314        data: *const ::std::os::raw::c_void,
21315        len: ::std::os::raw::c_int,
21316    ) -> ::std::os::raw::c_int;
21317}
21318extern "C" {
21319    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_get0_data"]
21320    pub fn X509_ATTRIBUTE_get0_data(
21321        attr: *mut X509_ATTRIBUTE,
21322        idx: ::std::os::raw::c_int,
21323        attrtype: ::std::os::raw::c_int,
21324        unused: *mut ::std::os::raw::c_void,
21325    ) -> *mut ::std::os::raw::c_void;
21326}
21327extern "C" {
21328    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_count"]
21329    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::std::os::raw::c_int;
21330}
21331extern "C" {
21332    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_get0_object"]
21333    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
21334}
21335extern "C" {
21336    #[link_name = "\u{1}aws_lc_0_36_0_X509_ATTRIBUTE_get0_type"]
21337    pub fn X509_ATTRIBUTE_get0_type(
21338        attr: *mut X509_ATTRIBUTE,
21339        idx: ::std::os::raw::c_int,
21340    ) -> *mut ASN1_TYPE;
21341}
21342extern "C" {
21343    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_new"]
21344    pub fn X509_STORE_new() -> *mut X509_STORE;
21345}
21346extern "C" {
21347    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_up_ref"]
21348    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21349}
21350extern "C" {
21351    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_free"]
21352    pub fn X509_STORE_free(store: *mut X509_STORE);
21353}
21354extern "C" {
21355    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_add_cert"]
21356    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::std::os::raw::c_int;
21357}
21358extern "C" {
21359    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_add_crl"]
21360    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
21361}
21362extern "C" {
21363    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get0_param"]
21364    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
21365}
21366extern "C" {
21367    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set1_param"]
21368    pub fn X509_STORE_set1_param(
21369        store: *mut X509_STORE,
21370        param: *const X509_VERIFY_PARAM,
21371    ) -> ::std::os::raw::c_int;
21372}
21373extern "C" {
21374    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_flags"]
21375    pub fn X509_STORE_set_flags(
21376        store: *mut X509_STORE,
21377        flags: ::std::os::raw::c_ulong,
21378    ) -> ::std::os::raw::c_int;
21379}
21380extern "C" {
21381    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_depth"]
21382    pub fn X509_STORE_set_depth(
21383        store: *mut X509_STORE,
21384        depth: ::std::os::raw::c_int,
21385    ) -> ::std::os::raw::c_int;
21386}
21387extern "C" {
21388    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_purpose"]
21389    pub fn X509_STORE_set_purpose(
21390        store: *mut X509_STORE,
21391        purpose: ::std::os::raw::c_int,
21392    ) -> ::std::os::raw::c_int;
21393}
21394extern "C" {
21395    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_trust"]
21396    pub fn X509_STORE_set_trust(
21397        store: *mut X509_STORE,
21398        trust: ::std::os::raw::c_int,
21399    ) -> ::std::os::raw::c_int;
21400}
21401#[repr(C)]
21402#[derive(Debug, Copy, Clone)]
21403pub struct stack_st_X509_OBJECT {
21404    _unused: [u8; 0],
21405}
21406pub type sk_X509_OBJECT_free_func =
21407    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
21408pub type sk_X509_OBJECT_copy_func =
21409    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
21410pub type sk_X509_OBJECT_cmp_func = ::std::option::Option<
21411    unsafe extern "C" fn(
21412        arg1: *const *const X509_OBJECT,
21413        arg2: *const *const X509_OBJECT,
21414    ) -> ::std::os::raw::c_int,
21415>;
21416pub type sk_X509_OBJECT_delete_if_func = ::std::option::Option<
21417    unsafe extern "C" fn(
21418        arg1: *mut X509_OBJECT,
21419        arg2: *mut ::std::os::raw::c_void,
21420    ) -> ::std::os::raw::c_int,
21421>;
21422extern "C" {
21423    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_new"]
21424    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
21425}
21426extern "C" {
21427    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_free"]
21428    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
21429}
21430extern "C" {
21431    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_get_type"]
21432    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::std::os::raw::c_int;
21433}
21434extern "C" {
21435    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_get0_X509"]
21436    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
21437}
21438pub type X509_STORE_CTX_lookup_crls_fn = ::std::option::Option<
21439    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, nm: *mut X509_NAME) -> *mut stack_st_X509_CRL,
21440>;
21441extern "C" {
21442    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get_lookup_crls"]
21443    pub fn X509_STORE_get_lookup_crls(ctx: *mut X509_STORE) -> X509_STORE_CTX_lookup_crls_fn;
21444}
21445extern "C" {
21446    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_lookup_crls"]
21447    pub fn X509_STORE_set_lookup_crls(
21448        ctx: *mut X509_STORE,
21449        lookup_crls: X509_STORE_CTX_lookup_crls_fn,
21450    );
21451}
21452extern "C" {
21453    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_new"]
21454    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
21455}
21456extern "C" {
21457    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_free"]
21458    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
21459}
21460extern "C" {
21461    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_init"]
21462    pub fn X509_STORE_CTX_init(
21463        ctx: *mut X509_STORE_CTX,
21464        store: *mut X509_STORE,
21465        x509: *mut X509,
21466        chain: *mut stack_st_X509,
21467    ) -> ::std::os::raw::c_int;
21468}
21469extern "C" {
21470    #[link_name = "\u{1}aws_lc_0_36_0_X509_verify_cert"]
21471    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21472}
21473extern "C" {
21474    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_chain"]
21475    pub fn X509_STORE_CTX_get0_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21476}
21477extern "C" {
21478    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get1_chain"]
21479    pub fn X509_STORE_CTX_get1_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21480}
21481extern "C" {
21482    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_cert"]
21483    pub fn X509_STORE_CTX_set_cert(c: *mut X509_STORE_CTX, x: *mut X509);
21484}
21485extern "C" {
21486    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_error"]
21487    pub fn X509_STORE_CTX_get_error(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21488}
21489extern "C" {
21490    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_error"]
21491    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::std::os::raw::c_int);
21492}
21493extern "C" {
21494    #[link_name = "\u{1}aws_lc_0_36_0_X509_verify_cert_error_string"]
21495    pub fn X509_verify_cert_error_string(
21496        err: ::std::os::raw::c_long,
21497    ) -> *const ::std::os::raw::c_char;
21498}
21499extern "C" {
21500    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_error_depth"]
21501    pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21502}
21503extern "C" {
21504    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_current_cert"]
21505    pub fn X509_STORE_CTX_get_current_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21506}
21507extern "C" {
21508    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_current_issuer"]
21509    pub fn X509_STORE_CTX_get0_current_issuer(ctx: *mut X509_STORE_CTX) -> *mut X509;
21510}
21511extern "C" {
21512    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_current_crl"]
21513    pub fn X509_STORE_CTX_get0_current_crl(ctx: *mut X509_STORE_CTX) -> *mut X509_CRL;
21514}
21515extern "C" {
21516    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_store"]
21517    pub fn X509_STORE_CTX_get0_store(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE;
21518}
21519extern "C" {
21520    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_cert"]
21521    pub fn X509_STORE_CTX_get0_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21522}
21523extern "C" {
21524    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_untrusted"]
21525    pub fn X509_STORE_CTX_get0_untrusted(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21526}
21527extern "C" {
21528    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set0_trusted_stack"]
21529    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21530}
21531extern "C" {
21532    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set0_crls"]
21533    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21534}
21535extern "C" {
21536    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_default"]
21537    pub fn X509_STORE_CTX_set_default(
21538        ctx: *mut X509_STORE_CTX,
21539        name: *const ::std::os::raw::c_char,
21540    ) -> ::std::os::raw::c_int;
21541}
21542extern "C" {
21543    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_param"]
21544    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21545}
21546extern "C" {
21547    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set0_param"]
21548    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21549}
21550extern "C" {
21551    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_flags"]
21552    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::std::os::raw::c_ulong);
21553}
21554extern "C" {
21555    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_time"]
21556    pub fn X509_STORE_CTX_set_time(
21557        ctx: *mut X509_STORE_CTX,
21558        flags: ::std::os::raw::c_ulong,
21559        t: time_t,
21560    );
21561}
21562extern "C" {
21563    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_time_posix"]
21564    pub fn X509_STORE_CTX_set_time_posix(
21565        ctx: *mut X509_STORE_CTX,
21566        flags: ::std::os::raw::c_ulong,
21567        t: i64,
21568    );
21569}
21570extern "C" {
21571    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_depth"]
21572    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::std::os::raw::c_int);
21573}
21574extern "C" {
21575    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_purpose"]
21576    pub fn X509_STORE_CTX_set_purpose(
21577        ctx: *mut X509_STORE_CTX,
21578        purpose: ::std::os::raw::c_int,
21579    ) -> ::std::os::raw::c_int;
21580}
21581extern "C" {
21582    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_trust"]
21583    pub fn X509_STORE_CTX_set_trust(
21584        ctx: *mut X509_STORE_CTX,
21585        trust: ::std::os::raw::c_int,
21586    ) -> ::std::os::raw::c_int;
21587}
21588extern "C" {
21589    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_add_custom_crit_oid"]
21590    pub fn X509_STORE_CTX_add_custom_crit_oid(
21591        ctx: *mut X509_STORE_CTX,
21592        oid: *mut ASN1_OBJECT,
21593    ) -> ::std::os::raw::c_int;
21594}
21595pub type X509_STORE_CTX_verify_crit_oids_cb = ::std::option::Option<
21596    unsafe extern "C" fn(
21597        ctx: *mut X509_STORE_CTX,
21598        x509: *mut X509,
21599        oids: *mut stack_st_ASN1_OBJECT,
21600    ) -> ::std::os::raw::c_int,
21601>;
21602extern "C" {
21603    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_verify_crit_oids"]
21604    pub fn X509_STORE_CTX_set_verify_crit_oids(
21605        ctx: *mut X509_STORE_CTX,
21606        verify_custom_crit_oids: X509_STORE_CTX_verify_crit_oids_cb,
21607    );
21608}
21609extern "C" {
21610    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_new"]
21611    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21612}
21613extern "C" {
21614    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_free"]
21615    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21616}
21617extern "C" {
21618    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_inherit"]
21619    pub fn X509_VERIFY_PARAM_inherit(
21620        to: *mut X509_VERIFY_PARAM,
21621        from: *const X509_VERIFY_PARAM,
21622    ) -> ::std::os::raw::c_int;
21623}
21624extern "C" {
21625    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1"]
21626    pub fn X509_VERIFY_PARAM_set1(
21627        to: *mut X509_VERIFY_PARAM,
21628        from: *const X509_VERIFY_PARAM,
21629    ) -> ::std::os::raw::c_int;
21630}
21631extern "C" {
21632    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_flags"]
21633    pub fn X509_VERIFY_PARAM_set_flags(
21634        param: *mut X509_VERIFY_PARAM,
21635        flags: ::std::os::raw::c_ulong,
21636    ) -> ::std::os::raw::c_int;
21637}
21638extern "C" {
21639    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_clear_flags"]
21640    pub fn X509_VERIFY_PARAM_clear_flags(
21641        param: *mut X509_VERIFY_PARAM,
21642        flags: ::std::os::raw::c_ulong,
21643    ) -> ::std::os::raw::c_int;
21644}
21645extern "C" {
21646    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_get_flags"]
21647    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_ulong;
21648}
21649extern "C" {
21650    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_depth"]
21651    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::std::os::raw::c_int);
21652}
21653extern "C" {
21654    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_get_depth"]
21655    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_int;
21656}
21657extern "C" {
21658    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_time"]
21659    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21660}
21661extern "C" {
21662    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_time_posix"]
21663    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21664}
21665extern "C" {
21666    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_add0_policy"]
21667    pub fn X509_VERIFY_PARAM_add0_policy(
21668        param: *mut X509_VERIFY_PARAM,
21669        policy: *mut ASN1_OBJECT,
21670    ) -> ::std::os::raw::c_int;
21671}
21672extern "C" {
21673    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1_policies"]
21674    pub fn X509_VERIFY_PARAM_set1_policies(
21675        param: *mut X509_VERIFY_PARAM,
21676        policies: *const stack_st_ASN1_OBJECT,
21677    ) -> ::std::os::raw::c_int;
21678}
21679extern "C" {
21680    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1_host"]
21681    pub fn X509_VERIFY_PARAM_set1_host(
21682        param: *mut X509_VERIFY_PARAM,
21683        name: *const ::std::os::raw::c_char,
21684        name_len: usize,
21685    ) -> ::std::os::raw::c_int;
21686}
21687extern "C" {
21688    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_add1_host"]
21689    pub fn X509_VERIFY_PARAM_add1_host(
21690        param: *mut X509_VERIFY_PARAM,
21691        name: *const ::std::os::raw::c_char,
21692        name_len: usize,
21693    ) -> ::std::os::raw::c_int;
21694}
21695extern "C" {
21696    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_hostflags"]
21697    pub fn X509_VERIFY_PARAM_set_hostflags(
21698        param: *mut X509_VERIFY_PARAM,
21699        flags: ::std::os::raw::c_uint,
21700    );
21701}
21702extern "C" {
21703    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_get_hostflags"]
21704    pub fn X509_VERIFY_PARAM_get_hostflags(
21705        param: *const X509_VERIFY_PARAM,
21706    ) -> ::std::os::raw::c_uint;
21707}
21708extern "C" {
21709    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1_email"]
21710    pub fn X509_VERIFY_PARAM_set1_email(
21711        param: *mut X509_VERIFY_PARAM,
21712        email: *const ::std::os::raw::c_char,
21713        email_len: usize,
21714    ) -> ::std::os::raw::c_int;
21715}
21716extern "C" {
21717    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1_ip"]
21718    pub fn X509_VERIFY_PARAM_set1_ip(
21719        param: *mut X509_VERIFY_PARAM,
21720        ip: *const u8,
21721        ip_len: usize,
21722    ) -> ::std::os::raw::c_int;
21723}
21724extern "C" {
21725    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set1_ip_asc"]
21726    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21727        param: *mut X509_VERIFY_PARAM,
21728        ipasc: *const ::std::os::raw::c_char,
21729    ) -> ::std::os::raw::c_int;
21730}
21731extern "C" {
21732    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_purpose"]
21733    pub fn X509_VERIFY_PARAM_set_purpose(
21734        param: *mut X509_VERIFY_PARAM,
21735        purpose: ::std::os::raw::c_int,
21736    ) -> ::std::os::raw::c_int;
21737}
21738extern "C" {
21739    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_set_trust"]
21740    pub fn X509_VERIFY_PARAM_set_trust(
21741        param: *mut X509_VERIFY_PARAM,
21742        trust: ::std::os::raw::c_int,
21743    ) -> ::std::os::raw::c_int;
21744}
21745extern "C" {
21746    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_enable_ec_key_explicit_params"]
21747    pub fn X509_VERIFY_PARAM_enable_ec_key_explicit_params(
21748        param: *mut X509_VERIFY_PARAM,
21749    ) -> ::std::os::raw::c_int;
21750}
21751extern "C" {
21752    #[link_name = "\u{1}aws_lc_0_36_0_X509_VERIFY_PARAM_disable_ec_key_explicit_params"]
21753    pub fn X509_VERIFY_PARAM_disable_ec_key_explicit_params(
21754        param: *mut X509_VERIFY_PARAM,
21755    ) -> ::std::os::raw::c_int;
21756}
21757extern "C" {
21758    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_load_locations"]
21759    pub fn X509_STORE_load_locations(
21760        store: *mut X509_STORE,
21761        file: *const ::std::os::raw::c_char,
21762        dir: *const ::std::os::raw::c_char,
21763    ) -> ::std::os::raw::c_int;
21764}
21765extern "C" {
21766    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_add_lookup"]
21767    pub fn X509_STORE_add_lookup(
21768        store: *mut X509_STORE,
21769        method: *const X509_LOOKUP_METHOD,
21770    ) -> *mut X509_LOOKUP;
21771}
21772extern "C" {
21773    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_hash_dir"]
21774    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21775}
21776extern "C" {
21777    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_file"]
21778    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21779}
21780extern "C" {
21781    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_load_file"]
21782    pub fn X509_LOOKUP_load_file(
21783        lookup: *mut X509_LOOKUP,
21784        file: *const ::std::os::raw::c_char,
21785        type_: ::std::os::raw::c_int,
21786    ) -> ::std::os::raw::c_int;
21787}
21788extern "C" {
21789    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_add_dir"]
21790    pub fn X509_LOOKUP_add_dir(
21791        lookup: *mut X509_LOOKUP,
21792        path: *const ::std::os::raw::c_char,
21793        type_: ::std::os::raw::c_int,
21794    ) -> ::std::os::raw::c_int;
21795}
21796extern "C" {
21797    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_ctrl"]
21798    pub fn X509_LOOKUP_ctrl(
21799        lookup: *mut X509_LOOKUP,
21800        cmd: ::std::os::raw::c_int,
21801        argc: *const ::std::os::raw::c_char,
21802        argl: ::std::os::raw::c_long,
21803        ret: *mut *mut ::std::os::raw::c_char,
21804    ) -> ::std::os::raw::c_int;
21805}
21806extern "C" {
21807    #[link_name = "\u{1}aws_lc_0_36_0_X509_load_cert_file"]
21808    pub fn X509_load_cert_file(
21809        lookup: *mut X509_LOOKUP,
21810        file: *const ::std::os::raw::c_char,
21811        type_: ::std::os::raw::c_int,
21812    ) -> ::std::os::raw::c_int;
21813}
21814extern "C" {
21815    #[link_name = "\u{1}aws_lc_0_36_0_X509_load_crl_file"]
21816    pub fn X509_load_crl_file(
21817        lookup: *mut X509_LOOKUP,
21818        file: *const ::std::os::raw::c_char,
21819        type_: ::std::os::raw::c_int,
21820    ) -> ::std::os::raw::c_int;
21821}
21822extern "C" {
21823    #[link_name = "\u{1}aws_lc_0_36_0_X509_load_cert_crl_file"]
21824    pub fn X509_load_cert_crl_file(
21825        lookup: *mut X509_LOOKUP,
21826        file: *const ::std::os::raw::c_char,
21827        type_: ::std::os::raw::c_int,
21828    ) -> ::std::os::raw::c_int;
21829}
21830extern "C" {
21831    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_hash"]
21832    pub fn X509_NAME_hash(name: *mut X509_NAME) -> u32;
21833}
21834extern "C" {
21835    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_hash_old"]
21836    pub fn X509_NAME_hash_old(name: *mut X509_NAME) -> u32;
21837}
21838extern "C" {
21839    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_default_paths"]
21840    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21841}
21842extern "C" {
21843    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_cert_area"]
21844    pub fn X509_get_default_cert_area() -> *const ::std::os::raw::c_char;
21845}
21846extern "C" {
21847    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_cert_dir"]
21848    pub fn X509_get_default_cert_dir() -> *const ::std::os::raw::c_char;
21849}
21850extern "C" {
21851    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_cert_file"]
21852    pub fn X509_get_default_cert_file() -> *const ::std::os::raw::c_char;
21853}
21854extern "C" {
21855    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_private_dir"]
21856    pub fn X509_get_default_private_dir() -> *const ::std::os::raw::c_char;
21857}
21858extern "C" {
21859    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_cert_dir_env"]
21860    pub fn X509_get_default_cert_dir_env() -> *const ::std::os::raw::c_char;
21861}
21862extern "C" {
21863    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_default_cert_file_env"]
21864    pub fn X509_get_default_cert_file_env() -> *const ::std::os::raw::c_char;
21865}
21866#[repr(C)]
21867#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21868pub struct Netscape_spki_st {
21869    pub spkac: *mut NETSCAPE_SPKAC,
21870    pub sig_algor: *mut X509_ALGOR,
21871    pub signature: *mut ASN1_BIT_STRING,
21872}
21873#[test]
21874fn bindgen_test_layout_Netscape_spki_st() {
21875    const UNINIT: ::std::mem::MaybeUninit<Netscape_spki_st> = ::std::mem::MaybeUninit::uninit();
21876    let ptr = UNINIT.as_ptr();
21877    assert_eq!(
21878        ::std::mem::size_of::<Netscape_spki_st>(),
21879        24usize,
21880        "Size of Netscape_spki_st"
21881    );
21882    assert_eq!(
21883        ::std::mem::align_of::<Netscape_spki_st>(),
21884        8usize,
21885        "Alignment of Netscape_spki_st"
21886    );
21887    assert_eq!(
21888        unsafe { ::std::ptr::addr_of!((*ptr).spkac) as usize - ptr as usize },
21889        0usize,
21890        "Offset of field: Netscape_spki_st::spkac"
21891    );
21892    assert_eq!(
21893        unsafe { ::std::ptr::addr_of!((*ptr).sig_algor) as usize - ptr as usize },
21894        8usize,
21895        "Offset of field: Netscape_spki_st::sig_algor"
21896    );
21897    assert_eq!(
21898        unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize },
21899        16usize,
21900        "Offset of field: Netscape_spki_st::signature"
21901    );
21902}
21903impl Default for Netscape_spki_st {
21904    fn default() -> Self {
21905        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21906        unsafe {
21907            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21908            s.assume_init()
21909        }
21910    }
21911}
21912extern "C" {
21913    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_it"]
21914    pub static NETSCAPE_SPKI_it: ASN1_ITEM;
21915}
21916extern "C" {
21917    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_new"]
21918    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21919}
21920extern "C" {
21921    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_free"]
21922    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21923}
21924extern "C" {
21925    #[link_name = "\u{1}aws_lc_0_36_0_d2i_NETSCAPE_SPKI"]
21926    pub fn d2i_NETSCAPE_SPKI(
21927        out: *mut *mut NETSCAPE_SPKI,
21928        inp: *mut *const u8,
21929        len: ::std::os::raw::c_long,
21930    ) -> *mut NETSCAPE_SPKI;
21931}
21932extern "C" {
21933    #[link_name = "\u{1}aws_lc_0_36_0_i2d_NETSCAPE_SPKI"]
21934    pub fn i2d_NETSCAPE_SPKI(
21935        spki: *const NETSCAPE_SPKI,
21936        outp: *mut *mut u8,
21937    ) -> ::std::os::raw::c_int;
21938}
21939extern "C" {
21940    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_verify"]
21941    pub fn NETSCAPE_SPKI_verify(
21942        spki: *mut NETSCAPE_SPKI,
21943        pkey: *mut EVP_PKEY,
21944    ) -> ::std::os::raw::c_int;
21945}
21946extern "C" {
21947    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_b64_decode"]
21948    pub fn NETSCAPE_SPKI_b64_decode(
21949        str_: *const ::std::os::raw::c_char,
21950        len: ossl_ssize_t,
21951    ) -> *mut NETSCAPE_SPKI;
21952}
21953extern "C" {
21954    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_b64_encode"]
21955    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::std::os::raw::c_char;
21956}
21957extern "C" {
21958    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_get_pubkey"]
21959    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21960}
21961extern "C" {
21962    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_set_pubkey"]
21963    pub fn NETSCAPE_SPKI_set_pubkey(
21964        spki: *mut NETSCAPE_SPKI,
21965        pkey: *mut EVP_PKEY,
21966    ) -> ::std::os::raw::c_int;
21967}
21968extern "C" {
21969    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_sign"]
21970    pub fn NETSCAPE_SPKI_sign(
21971        spki: *mut NETSCAPE_SPKI,
21972        pkey: *mut EVP_PKEY,
21973        md: *const EVP_MD,
21974    ) -> ::std::os::raw::c_int;
21975}
21976#[repr(C)]
21977#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21978pub struct Netscape_spkac_st {
21979    pub pubkey: *mut X509_PUBKEY,
21980    pub challenge: *mut ASN1_IA5STRING,
21981}
21982#[test]
21983fn bindgen_test_layout_Netscape_spkac_st() {
21984    const UNINIT: ::std::mem::MaybeUninit<Netscape_spkac_st> = ::std::mem::MaybeUninit::uninit();
21985    let ptr = UNINIT.as_ptr();
21986    assert_eq!(
21987        ::std::mem::size_of::<Netscape_spkac_st>(),
21988        16usize,
21989        "Size of Netscape_spkac_st"
21990    );
21991    assert_eq!(
21992        ::std::mem::align_of::<Netscape_spkac_st>(),
21993        8usize,
21994        "Alignment of Netscape_spkac_st"
21995    );
21996    assert_eq!(
21997        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
21998        0usize,
21999        "Offset of field: Netscape_spkac_st::pubkey"
22000    );
22001    assert_eq!(
22002        unsafe { ::std::ptr::addr_of!((*ptr).challenge) as usize - ptr as usize },
22003        8usize,
22004        "Offset of field: Netscape_spkac_st::challenge"
22005    );
22006}
22007impl Default for Netscape_spkac_st {
22008    fn default() -> Self {
22009        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22010        unsafe {
22011            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22012            s.assume_init()
22013        }
22014    }
22015}
22016extern "C" {
22017    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKAC_it"]
22018    pub static NETSCAPE_SPKAC_it: ASN1_ITEM;
22019}
22020extern "C" {
22021    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKAC_new"]
22022    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
22023}
22024extern "C" {
22025    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKAC_free"]
22026    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
22027}
22028extern "C" {
22029    #[link_name = "\u{1}aws_lc_0_36_0_d2i_NETSCAPE_SPKAC"]
22030    pub fn d2i_NETSCAPE_SPKAC(
22031        out: *mut *mut NETSCAPE_SPKAC,
22032        inp: *mut *const u8,
22033        len: ::std::os::raw::c_long,
22034    ) -> *mut NETSCAPE_SPKAC;
22035}
22036extern "C" {
22037    #[link_name = "\u{1}aws_lc_0_36_0_i2d_NETSCAPE_SPKAC"]
22038    pub fn i2d_NETSCAPE_SPKAC(
22039        spkac: *const NETSCAPE_SPKAC,
22040        outp: *mut *mut u8,
22041    ) -> ::std::os::raw::c_int;
22042}
22043extern "C" {
22044    #[link_name = "\u{1}aws_lc_0_36_0_NETSCAPE_SPKI_print"]
22045    pub fn NETSCAPE_SPKI_print(out: *mut BIO, spki: *mut NETSCAPE_SPKI) -> ::std::os::raw::c_int;
22046}
22047#[repr(C)]
22048#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22049pub struct rsa_pss_params_st {
22050    pub hashAlgorithm: *mut X509_ALGOR,
22051    pub maskGenAlgorithm: *mut X509_ALGOR,
22052    pub saltLength: *mut ASN1_INTEGER,
22053    pub trailerField: *mut ASN1_INTEGER,
22054    pub maskHash: *mut X509_ALGOR,
22055}
22056#[test]
22057fn bindgen_test_layout_rsa_pss_params_st() {
22058    const UNINIT: ::std::mem::MaybeUninit<rsa_pss_params_st> = ::std::mem::MaybeUninit::uninit();
22059    let ptr = UNINIT.as_ptr();
22060    assert_eq!(
22061        ::std::mem::size_of::<rsa_pss_params_st>(),
22062        40usize,
22063        "Size of rsa_pss_params_st"
22064    );
22065    assert_eq!(
22066        ::std::mem::align_of::<rsa_pss_params_st>(),
22067        8usize,
22068        "Alignment of rsa_pss_params_st"
22069    );
22070    assert_eq!(
22071        unsafe { ::std::ptr::addr_of!((*ptr).hashAlgorithm) as usize - ptr as usize },
22072        0usize,
22073        "Offset of field: rsa_pss_params_st::hashAlgorithm"
22074    );
22075    assert_eq!(
22076        unsafe { ::std::ptr::addr_of!((*ptr).maskGenAlgorithm) as usize - ptr as usize },
22077        8usize,
22078        "Offset of field: rsa_pss_params_st::maskGenAlgorithm"
22079    );
22080    assert_eq!(
22081        unsafe { ::std::ptr::addr_of!((*ptr).saltLength) as usize - ptr as usize },
22082        16usize,
22083        "Offset of field: rsa_pss_params_st::saltLength"
22084    );
22085    assert_eq!(
22086        unsafe { ::std::ptr::addr_of!((*ptr).trailerField) as usize - ptr as usize },
22087        24usize,
22088        "Offset of field: rsa_pss_params_st::trailerField"
22089    );
22090    assert_eq!(
22091        unsafe { ::std::ptr::addr_of!((*ptr).maskHash) as usize - ptr as usize },
22092        32usize,
22093        "Offset of field: rsa_pss_params_st::maskHash"
22094    );
22095}
22096impl Default for rsa_pss_params_st {
22097    fn default() -> Self {
22098        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22099        unsafe {
22100            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22101            s.assume_init()
22102        }
22103    }
22104}
22105extern "C" {
22106    #[link_name = "\u{1}aws_lc_0_36_0_RSA_PSS_PARAMS_it"]
22107    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
22108}
22109extern "C" {
22110    #[link_name = "\u{1}aws_lc_0_36_0_RSA_PSS_PARAMS_new"]
22111    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
22112}
22113extern "C" {
22114    #[link_name = "\u{1}aws_lc_0_36_0_RSA_PSS_PARAMS_free"]
22115    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
22116}
22117extern "C" {
22118    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSA_PSS_PARAMS"]
22119    pub fn d2i_RSA_PSS_PARAMS(
22120        out: *mut *mut RSA_PSS_PARAMS,
22121        inp: *mut *const u8,
22122        len: ::std::os::raw::c_long,
22123    ) -> *mut RSA_PSS_PARAMS;
22124}
22125extern "C" {
22126    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSA_PSS_PARAMS"]
22127    pub fn i2d_RSA_PSS_PARAMS(
22128        in_: *const RSA_PSS_PARAMS,
22129        outp: *mut *mut u8,
22130    ) -> ::std::os::raw::c_int;
22131}
22132extern "C" {
22133    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_PRIV_KEY_INFO_it"]
22134    pub static PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM;
22135}
22136extern "C" {
22137    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_PRIV_KEY_INFO_new"]
22138    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
22139}
22140extern "C" {
22141    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_PRIV_KEY_INFO_free"]
22142    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
22143}
22144extern "C" {
22145    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8_PRIV_KEY_INFO"]
22146    pub fn d2i_PKCS8_PRIV_KEY_INFO(
22147        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22148        inp: *mut *const u8,
22149        len: ::std::os::raw::c_long,
22150    ) -> *mut PKCS8_PRIV_KEY_INFO;
22151}
22152extern "C" {
22153    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8_PRIV_KEY_INFO"]
22154    pub fn i2d_PKCS8_PRIV_KEY_INFO(
22155        key: *const PKCS8_PRIV_KEY_INFO,
22156        outp: *mut *mut u8,
22157    ) -> ::std::os::raw::c_int;
22158}
22159extern "C" {
22160    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKCS82PKEY"]
22161    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
22162}
22163extern "C" {
22164    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY2PKCS8"]
22165    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
22166}
22167extern "C" {
22168    #[link_name = "\u{1}aws_lc_0_36_0_X509_SIG_it"]
22169    pub static X509_SIG_it: ASN1_ITEM;
22170}
22171extern "C" {
22172    #[link_name = "\u{1}aws_lc_0_36_0_X509_SIG_new"]
22173    pub fn X509_SIG_new() -> *mut X509_SIG;
22174}
22175extern "C" {
22176    #[link_name = "\u{1}aws_lc_0_36_0_X509_SIG_free"]
22177    pub fn X509_SIG_free(key: *mut X509_SIG);
22178}
22179extern "C" {
22180    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_SIG"]
22181    pub fn d2i_X509_SIG(
22182        out: *mut *mut X509_SIG,
22183        inp: *mut *const u8,
22184        len: ::std::os::raw::c_long,
22185    ) -> *mut X509_SIG;
22186}
22187extern "C" {
22188    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_SIG"]
22189    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
22190}
22191extern "C" {
22192    #[link_name = "\u{1}aws_lc_0_36_0_X509_SIG_get0"]
22193    pub fn X509_SIG_get0(
22194        sig: *const X509_SIG,
22195        out_alg: *mut *const X509_ALGOR,
22196        out_digest: *mut *const ASN1_OCTET_STRING,
22197    );
22198}
22199extern "C" {
22200    #[link_name = "\u{1}aws_lc_0_36_0_X509_SIG_getm"]
22201    pub fn X509_SIG_getm(
22202        sig: *mut X509_SIG,
22203        out_alg: *mut *mut X509_ALGOR,
22204        out_digest: *mut *mut ASN1_OCTET_STRING,
22205    );
22206}
22207extern "C" {
22208    #[link_name = "\u{1}aws_lc_0_36_0_X509_print_ex"]
22209    pub fn X509_print_ex(
22210        bp: *mut BIO,
22211        x: *mut X509,
22212        nmflag: ::std::os::raw::c_ulong,
22213        cflag: ::std::os::raw::c_ulong,
22214    ) -> ::std::os::raw::c_int;
22215}
22216extern "C" {
22217    #[link_name = "\u{1}aws_lc_0_36_0_X509_print_ex_fp"]
22218    pub fn X509_print_ex_fp(
22219        fp: *mut FILE,
22220        x: *mut X509,
22221        nmflag: ::std::os::raw::c_ulong,
22222        cflag: ::std::os::raw::c_ulong,
22223    ) -> ::std::os::raw::c_int;
22224}
22225extern "C" {
22226    #[link_name = "\u{1}aws_lc_0_36_0_X509_print"]
22227    pub fn X509_print(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
22228}
22229extern "C" {
22230    #[link_name = "\u{1}aws_lc_0_36_0_X509_print_fp"]
22231    pub fn X509_print_fp(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
22232}
22233extern "C" {
22234    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_print"]
22235    pub fn X509_CRL_print(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22236}
22237extern "C" {
22238    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_print_fp"]
22239    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22240}
22241extern "C" {
22242    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_print_ex"]
22243    pub fn X509_REQ_print_ex(
22244        bp: *mut BIO,
22245        x: *mut X509_REQ,
22246        nmflag: ::std::os::raw::c_ulong,
22247        cflag: ::std::os::raw::c_ulong,
22248    ) -> ::std::os::raw::c_int;
22249}
22250extern "C" {
22251    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_print"]
22252    pub fn X509_REQ_print(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22253}
22254extern "C" {
22255    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_print_fp"]
22256    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22257}
22258extern "C" {
22259    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_print_ex"]
22260    pub fn X509_NAME_print_ex(
22261        out: *mut BIO,
22262        nm: *const X509_NAME,
22263        indent: ::std::os::raw::c_int,
22264        flags: ::std::os::raw::c_ulong,
22265    ) -> ::std::os::raw::c_int;
22266}
22267extern "C" {
22268    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_print"]
22269    pub fn X509_NAME_print(
22270        bp: *mut BIO,
22271        name: *const X509_NAME,
22272        obase: ::std::os::raw::c_int,
22273    ) -> ::std::os::raw::c_int;
22274}
22275extern "C" {
22276    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_oneline"]
22277    pub fn X509_NAME_oneline(
22278        name: *const X509_NAME,
22279        buf: *mut ::std::os::raw::c_char,
22280        size: ::std::os::raw::c_int,
22281    ) -> *mut ::std::os::raw::c_char;
22282}
22283extern "C" {
22284    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_print_ex_fp"]
22285    pub fn X509_NAME_print_ex_fp(
22286        fp: *mut FILE,
22287        nm: *const X509_NAME,
22288        indent: ::std::os::raw::c_int,
22289        flags: ::std::os::raw::c_ulong,
22290    ) -> ::std::os::raw::c_int;
22291}
22292extern "C" {
22293    #[link_name = "\u{1}aws_lc_0_36_0_X509_signature_dump"]
22294    pub fn X509_signature_dump(
22295        bio: *mut BIO,
22296        sig: *const ASN1_STRING,
22297        indent: ::std::os::raw::c_int,
22298    ) -> ::std::os::raw::c_int;
22299}
22300extern "C" {
22301    #[link_name = "\u{1}aws_lc_0_36_0_X509_signature_print"]
22302    pub fn X509_signature_print(
22303        bio: *mut BIO,
22304        alg: *const X509_ALGOR,
22305        sig: *const ASN1_STRING,
22306    ) -> ::std::os::raw::c_int;
22307}
22308extern "C" {
22309    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_print"]
22310    pub fn X509V3_EXT_print(
22311        out: *mut BIO,
22312        ext: *const X509_EXTENSION,
22313        flag: ::std::os::raw::c_ulong,
22314        indent: ::std::os::raw::c_int,
22315    ) -> ::std::os::raw::c_int;
22316}
22317extern "C" {
22318    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_print_fp"]
22319    pub fn X509V3_EXT_print_fp(
22320        out: *mut FILE,
22321        ext: *const X509_EXTENSION,
22322        flag: ::std::os::raw::c_int,
22323        indent: ::std::os::raw::c_int,
22324    ) -> ::std::os::raw::c_int;
22325}
22326extern "C" {
22327    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_extensions_print"]
22328    pub fn X509V3_extensions_print(
22329        out: *mut BIO,
22330        title: *const ::std::os::raw::c_char,
22331        exts: *const stack_st_X509_EXTENSION,
22332        flag: ::std::os::raw::c_ulong,
22333        indent: ::std::os::raw::c_int,
22334    ) -> ::std::os::raw::c_int;
22335}
22336extern "C" {
22337    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_NAME_print"]
22338    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::std::os::raw::c_int;
22339}
22340extern "C" {
22341    #[link_name = "\u{1}aws_lc_0_36_0_X509_pubkey_digest"]
22342    pub fn X509_pubkey_digest(
22343        x509: *const X509,
22344        md: *const EVP_MD,
22345        out: *mut u8,
22346        out_len: *mut ::std::os::raw::c_uint,
22347    ) -> ::std::os::raw::c_int;
22348}
22349extern "C" {
22350    #[link_name = "\u{1}aws_lc_0_36_0_X509_digest"]
22351    pub fn X509_digest(
22352        x509: *const X509,
22353        md: *const EVP_MD,
22354        out: *mut u8,
22355        out_len: *mut ::std::os::raw::c_uint,
22356    ) -> ::std::os::raw::c_int;
22357}
22358extern "C" {
22359    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_digest"]
22360    pub fn X509_CRL_digest(
22361        crl: *const X509_CRL,
22362        md: *const EVP_MD,
22363        out: *mut u8,
22364        out_len: *mut ::std::os::raw::c_uint,
22365    ) -> ::std::os::raw::c_int;
22366}
22367extern "C" {
22368    #[link_name = "\u{1}aws_lc_0_36_0_X509_REQ_digest"]
22369    pub fn X509_REQ_digest(
22370        req: *const X509_REQ,
22371        md: *const EVP_MD,
22372        out: *mut u8,
22373        out_len: *mut ::std::os::raw::c_uint,
22374    ) -> ::std::os::raw::c_int;
22375}
22376extern "C" {
22377    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_digest"]
22378    pub fn X509_NAME_digest(
22379        name: *const X509_NAME,
22380        md: *const EVP_MD,
22381        out: *mut u8,
22382        out_len: *mut ::std::os::raw::c_uint,
22383    ) -> ::std::os::raw::c_int;
22384}
22385extern "C" {
22386    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_bio"]
22387    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
22388}
22389extern "C" {
22390    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_CRL_bio"]
22391    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22392}
22393extern "C" {
22394    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_REQ_bio"]
22395    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22396}
22397extern "C" {
22398    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPrivateKey_bio"]
22399    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22400}
22401extern "C" {
22402    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPublicKey_bio"]
22403    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22404}
22405extern "C" {
22406    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSA_PUBKEY_bio"]
22407    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22408}
22409extern "C" {
22410    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSA_PUBKEY_bio"]
22411    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22412}
22413extern "C" {
22414    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSAPrivateKey_bio"]
22415    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22416}
22417extern "C" {
22418    #[link_name = "\u{1}aws_lc_0_36_0_d2i_EC_PUBKEY_bio"]
22419    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22420}
22421extern "C" {
22422    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECPrivateKey_bio"]
22423    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22424}
22425extern "C" {
22426    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8_bio"]
22427    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22428}
22429extern "C" {
22430    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8_PRIV_KEY_INFO_bio"]
22431    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
22432        bp: *mut BIO,
22433        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22434    ) -> *mut PKCS8_PRIV_KEY_INFO;
22435}
22436extern "C" {
22437    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PUBKEY_bio"]
22438    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22439}
22440extern "C" {
22441    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DHparams_bio"]
22442    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
22443}
22444extern "C" {
22445    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PrivateKey_bio"]
22446    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22447}
22448extern "C" {
22449    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_bio"]
22450    pub fn i2d_X509_bio(bp: *mut BIO, x509: *mut X509) -> ::std::os::raw::c_int;
22451}
22452extern "C" {
22453    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_CRL_bio"]
22454    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22455}
22456extern "C" {
22457    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_REQ_bio"]
22458    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22459}
22460extern "C" {
22461    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPrivateKey_bio"]
22462    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22463}
22464extern "C" {
22465    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPublicKey_bio"]
22466    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22467}
22468extern "C" {
22469    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSA_PUBKEY_bio"]
22470    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22471}
22472extern "C" {
22473    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSA_PUBKEY_bio"]
22474    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22475}
22476extern "C" {
22477    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSAPrivateKey_bio"]
22478    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22479}
22480extern "C" {
22481    #[link_name = "\u{1}aws_lc_0_36_0_i2d_EC_PUBKEY_bio"]
22482    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22483}
22484extern "C" {
22485    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECPrivateKey_bio"]
22486    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22487}
22488extern "C" {
22489    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8_bio"]
22490    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22491}
22492extern "C" {
22493    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8_PRIV_KEY_INFO_bio"]
22494    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
22495        bp: *mut BIO,
22496        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22497    ) -> ::std::os::raw::c_int;
22498}
22499extern "C" {
22500    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PrivateKey_bio"]
22501    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22502}
22503extern "C" {
22504    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PUBKEY_bio"]
22505    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22506}
22507extern "C" {
22508    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DHparams_bio"]
22509    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::std::os::raw::c_int;
22510}
22511extern "C" {
22512    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKeyInfo_bio"]
22513    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22514}
22515extern "C" {
22516    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_fp"]
22517    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
22518}
22519extern "C" {
22520    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_CRL_fp"]
22521    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22522}
22523extern "C" {
22524    #[link_name = "\u{1}aws_lc_0_36_0_d2i_X509_REQ_fp"]
22525    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22526}
22527extern "C" {
22528    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPrivateKey_fp"]
22529    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22530}
22531extern "C" {
22532    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSAPublicKey_fp"]
22533    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22534}
22535extern "C" {
22536    #[link_name = "\u{1}aws_lc_0_36_0_d2i_RSA_PUBKEY_fp"]
22537    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22538}
22539extern "C" {
22540    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSA_PUBKEY_fp"]
22541    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22542}
22543extern "C" {
22544    #[link_name = "\u{1}aws_lc_0_36_0_d2i_DSAPrivateKey_fp"]
22545    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22546}
22547extern "C" {
22548    #[link_name = "\u{1}aws_lc_0_36_0_d2i_EC_PUBKEY_fp"]
22549    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22550}
22551extern "C" {
22552    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ECPrivateKey_fp"]
22553    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22554}
22555extern "C" {
22556    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8_fp"]
22557    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22558}
22559extern "C" {
22560    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8_PRIV_KEY_INFO_fp"]
22561    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
22562        fp: *mut FILE,
22563        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22564    ) -> *mut PKCS8_PRIV_KEY_INFO;
22565}
22566extern "C" {
22567    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PrivateKey_fp"]
22568    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22569}
22570extern "C" {
22571    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PUBKEY_fp"]
22572    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22573}
22574extern "C" {
22575    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_fp"]
22576    pub fn i2d_X509_fp(fp: *mut FILE, x509: *mut X509) -> ::std::os::raw::c_int;
22577}
22578extern "C" {
22579    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_CRL_fp"]
22580    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22581}
22582extern "C" {
22583    #[link_name = "\u{1}aws_lc_0_36_0_i2d_X509_REQ_fp"]
22584    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22585}
22586extern "C" {
22587    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPrivateKey_fp"]
22588    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22589}
22590extern "C" {
22591    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSAPublicKey_fp"]
22592    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22593}
22594extern "C" {
22595    #[link_name = "\u{1}aws_lc_0_36_0_i2d_RSA_PUBKEY_fp"]
22596    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22597}
22598extern "C" {
22599    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSA_PUBKEY_fp"]
22600    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22601}
22602extern "C" {
22603    #[link_name = "\u{1}aws_lc_0_36_0_i2d_DSAPrivateKey_fp"]
22604    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22605}
22606extern "C" {
22607    #[link_name = "\u{1}aws_lc_0_36_0_i2d_EC_PUBKEY_fp"]
22608    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22609}
22610extern "C" {
22611    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ECPrivateKey_fp"]
22612    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22613}
22614extern "C" {
22615    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8_fp"]
22616    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22617}
22618extern "C" {
22619    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8_PRIV_KEY_INFO_fp"]
22620    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
22621        fp: *mut FILE,
22622        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22623    ) -> ::std::os::raw::c_int;
22624}
22625extern "C" {
22626    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKeyInfo_fp"]
22627    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22628}
22629extern "C" {
22630    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PrivateKey_fp"]
22631    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22632}
22633extern "C" {
22634    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PUBKEY_fp"]
22635    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22636}
22637extern "C" {
22638    #[link_name = "\u{1}aws_lc_0_36_0_X509_find_by_issuer_and_serial"]
22639    pub fn X509_find_by_issuer_and_serial(
22640        sk: *const stack_st_X509,
22641        name: *mut X509_NAME,
22642        serial: *const ASN1_INTEGER,
22643    ) -> *mut X509;
22644}
22645extern "C" {
22646    #[link_name = "\u{1}aws_lc_0_36_0_X509_find_by_subject"]
22647    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *mut X509_NAME) -> *mut X509;
22648}
22649extern "C" {
22650    #[link_name = "\u{1}aws_lc_0_36_0_X509_cmp_time"]
22651    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::std::os::raw::c_int;
22652}
22653extern "C" {
22654    #[link_name = "\u{1}aws_lc_0_36_0_X509_cmp_time_posix"]
22655    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::std::os::raw::c_int;
22656}
22657extern "C" {
22658    #[link_name = "\u{1}aws_lc_0_36_0_X509_cmp_current_time"]
22659    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::std::os::raw::c_int;
22660}
22661extern "C" {
22662    #[link_name = "\u{1}aws_lc_0_36_0_X509_time_adj"]
22663    pub fn X509_time_adj(
22664        s: *mut ASN1_TIME,
22665        offset_sec: ::std::os::raw::c_long,
22666        t: *const time_t,
22667    ) -> *mut ASN1_TIME;
22668}
22669extern "C" {
22670    #[link_name = "\u{1}aws_lc_0_36_0_X509_time_adj_ex"]
22671    pub fn X509_time_adj_ex(
22672        s: *mut ASN1_TIME,
22673        offset_day: ::std::os::raw::c_int,
22674        offset_sec: ::std::os::raw::c_long,
22675        t: *const time_t,
22676    ) -> *mut ASN1_TIME;
22677}
22678extern "C" {
22679    #[link_name = "\u{1}aws_lc_0_36_0_X509_gmtime_adj"]
22680    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::std::os::raw::c_long)
22681        -> *mut ASN1_TIME;
22682}
22683extern "C" {
22684    #[link_name = "\u{1}aws_lc_0_36_0_X509_issuer_name_cmp"]
22685    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22686}
22687extern "C" {
22688    #[link_name = "\u{1}aws_lc_0_36_0_X509_subject_name_cmp"]
22689    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22690}
22691extern "C" {
22692    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_cmp"]
22693    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
22694}
22695extern "C" {
22696    #[link_name = "\u{1}aws_lc_0_36_0_X509_issuer_name_hash"]
22697    pub fn X509_issuer_name_hash(x509: *mut X509) -> u32;
22698}
22699extern "C" {
22700    #[link_name = "\u{1}aws_lc_0_36_0_X509_subject_name_hash"]
22701    pub fn X509_subject_name_hash(x509: *mut X509) -> u32;
22702}
22703extern "C" {
22704    #[link_name = "\u{1}aws_lc_0_36_0_X509_issuer_name_hash_old"]
22705    pub fn X509_issuer_name_hash_old(x509: *mut X509) -> u32;
22706}
22707extern "C" {
22708    #[link_name = "\u{1}aws_lc_0_36_0_X509_subject_name_hash_old"]
22709    pub fn X509_subject_name_hash_old(x509: *mut X509) -> u32;
22710}
22711extern "C" {
22712    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ex_new_index"]
22713    pub fn X509_get_ex_new_index(
22714        argl: ::std::os::raw::c_long,
22715        argp: *mut ::std::os::raw::c_void,
22716        unused: *mut CRYPTO_EX_unused,
22717        dup_unused: CRYPTO_EX_dup,
22718        free_func: CRYPTO_EX_free,
22719    ) -> ::std::os::raw::c_int;
22720}
22721extern "C" {
22722    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_ex_data"]
22723    pub fn X509_set_ex_data(
22724        r: *mut X509,
22725        idx: ::std::os::raw::c_int,
22726        arg: *mut ::std::os::raw::c_void,
22727    ) -> ::std::os::raw::c_int;
22728}
22729extern "C" {
22730    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_ex_data"]
22731    pub fn X509_get_ex_data(
22732        r: *mut X509,
22733        idx: ::std::os::raw::c_int,
22734    ) -> *mut ::std::os::raw::c_void;
22735}
22736extern "C" {
22737    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_ex_new_index"]
22738    pub fn X509_STORE_CTX_get_ex_new_index(
22739        argl: ::std::os::raw::c_long,
22740        argp: *mut ::std::os::raw::c_void,
22741        unused: *mut CRYPTO_EX_unused,
22742        dup_unused: CRYPTO_EX_dup,
22743        free_func: CRYPTO_EX_free,
22744    ) -> ::std::os::raw::c_int;
22745}
22746extern "C" {
22747    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_ex_data"]
22748    pub fn X509_STORE_CTX_set_ex_data(
22749        ctx: *mut X509_STORE_CTX,
22750        idx: ::std::os::raw::c_int,
22751        data: *mut ::std::os::raw::c_void,
22752    ) -> ::std::os::raw::c_int;
22753}
22754extern "C" {
22755    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_ex_data"]
22756    pub fn X509_STORE_CTX_get_ex_data(
22757        ctx: *mut X509_STORE_CTX,
22758        idx: ::std::os::raw::c_int,
22759    ) -> *mut ::std::os::raw::c_void;
22760}
22761extern "C" {
22762    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get_ex_new_index"]
22763    pub fn X509_STORE_get_ex_new_index(
22764        argl: ::std::os::raw::c_long,
22765        argp: *mut ::std::os::raw::c_void,
22766        unused: *mut CRYPTO_EX_unused,
22767        dup_unused: CRYPTO_EX_dup,
22768        free_func: CRYPTO_EX_free,
22769    ) -> ::std::os::raw::c_int;
22770}
22771extern "C" {
22772    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_ex_data"]
22773    pub fn X509_STORE_set_ex_data(
22774        ctx: *mut X509_STORE,
22775        idx: ::std::os::raw::c_int,
22776        data: *mut ::std::os::raw::c_void,
22777    ) -> ::std::os::raw::c_int;
22778}
22779extern "C" {
22780    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get_ex_data"]
22781    pub fn X509_STORE_get_ex_data(
22782        ctx: *mut X509_STORE,
22783        idx: ::std::os::raw::c_int,
22784    ) -> *mut ::std::os::raw::c_void;
22785}
22786extern "C" {
22787    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_digest"]
22788    pub fn ASN1_digest(
22789        i2d: i2d_of_void,
22790        type_: *const EVP_MD,
22791        data: *mut ::std::os::raw::c_char,
22792        md: *mut ::std::os::raw::c_uchar,
22793        len: *mut ::std::os::raw::c_uint,
22794    ) -> ::std::os::raw::c_int;
22795}
22796extern "C" {
22797    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_digest"]
22798    pub fn ASN1_item_digest(
22799        it: *const ASN1_ITEM,
22800        type_: *const EVP_MD,
22801        data: *mut ::std::os::raw::c_void,
22802        md: *mut ::std::os::raw::c_uchar,
22803        len: *mut ::std::os::raw::c_uint,
22804    ) -> ::std::os::raw::c_int;
22805}
22806extern "C" {
22807    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_verify"]
22808    pub fn ASN1_item_verify(
22809        it: *const ASN1_ITEM,
22810        algor1: *const X509_ALGOR,
22811        signature: *const ASN1_BIT_STRING,
22812        data: *mut ::std::os::raw::c_void,
22813        pkey: *mut EVP_PKEY,
22814    ) -> ::std::os::raw::c_int;
22815}
22816extern "C" {
22817    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_sign"]
22818    pub fn ASN1_item_sign(
22819        it: *const ASN1_ITEM,
22820        algor1: *mut X509_ALGOR,
22821        algor2: *mut X509_ALGOR,
22822        signature: *mut ASN1_BIT_STRING,
22823        data: *mut ::std::os::raw::c_void,
22824        pkey: *mut EVP_PKEY,
22825        type_: *const EVP_MD,
22826    ) -> ::std::os::raw::c_int;
22827}
22828extern "C" {
22829    #[link_name = "\u{1}aws_lc_0_36_0_ASN1_item_sign_ctx"]
22830    pub fn ASN1_item_sign_ctx(
22831        it: *const ASN1_ITEM,
22832        algor1: *mut X509_ALGOR,
22833        algor2: *mut X509_ALGOR,
22834        signature: *mut ASN1_BIT_STRING,
22835        asn: *mut ::std::os::raw::c_void,
22836        ctx: *mut EVP_MD_CTX,
22837    ) -> ::std::os::raw::c_int;
22838}
22839extern "C" {
22840    #[link_name = "\u{1}aws_lc_0_36_0_X509_supported_extension"]
22841    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
22842}
22843extern "C" {
22844    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_ca"]
22845    pub fn X509_check_ca(x509: *mut X509) -> ::std::os::raw::c_int;
22846}
22847extern "C" {
22848    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_issued"]
22849    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> ::std::os::raw::c_int;
22850}
22851extern "C" {
22852    #[link_name = "\u{1}aws_lc_0_36_0_NAME_CONSTRAINTS_check"]
22853    pub fn NAME_CONSTRAINTS_check(
22854        x509: *mut X509,
22855        nc: *mut NAME_CONSTRAINTS,
22856    ) -> ::std::os::raw::c_int;
22857}
22858extern "C" {
22859    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_host"]
22860    pub fn X509_check_host(
22861        x509: *const X509,
22862        chk: *const ::std::os::raw::c_char,
22863        chklen: usize,
22864        flags: ::std::os::raw::c_uint,
22865        out_peername: *mut *mut ::std::os::raw::c_char,
22866    ) -> ::std::os::raw::c_int;
22867}
22868extern "C" {
22869    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_email"]
22870    pub fn X509_check_email(
22871        x509: *const X509,
22872        chk: *const ::std::os::raw::c_char,
22873        chklen: usize,
22874        flags: ::std::os::raw::c_uint,
22875    ) -> ::std::os::raw::c_int;
22876}
22877extern "C" {
22878    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_ip"]
22879    pub fn X509_check_ip(
22880        x509: *const X509,
22881        chk: *const u8,
22882        chklen: usize,
22883        flags: ::std::os::raw::c_uint,
22884    ) -> ::std::os::raw::c_int;
22885}
22886extern "C" {
22887    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_ip_asc"]
22888    pub fn X509_check_ip_asc(
22889        x509: *const X509,
22890        ipasc: *const ::std::os::raw::c_char,
22891        flags: ::std::os::raw::c_uint,
22892    ) -> ::std::os::raw::c_int;
22893}
22894extern "C" {
22895    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get1_issuer"]
22896    pub fn X509_STORE_CTX_get1_issuer(
22897        out_issuer: *mut *mut X509,
22898        ctx: *mut X509_STORE_CTX,
22899        x509: *mut X509,
22900    ) -> ::std::os::raw::c_int;
22901}
22902extern "C" {
22903    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_purpose"]
22904    pub fn X509_check_purpose(
22905        x509: *mut X509,
22906        purpose: ::std::os::raw::c_int,
22907        ca: ::std::os::raw::c_int,
22908    ) -> ::std::os::raw::c_int;
22909}
22910extern "C" {
22911    #[link_name = "\u{1}aws_lc_0_36_0_X509_check_trust"]
22912    pub fn X509_check_trust(
22913        x509: *mut X509,
22914        id: ::std::os::raw::c_int,
22915        flags: ::std::os::raw::c_int,
22916    ) -> ::std::os::raw::c_int;
22917}
22918#[repr(C)]
22919#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22920pub struct private_key_st {
22921    pub dec_pkey: *mut EVP_PKEY,
22922}
22923#[test]
22924fn bindgen_test_layout_private_key_st() {
22925    const UNINIT: ::std::mem::MaybeUninit<private_key_st> = ::std::mem::MaybeUninit::uninit();
22926    let ptr = UNINIT.as_ptr();
22927    assert_eq!(
22928        ::std::mem::size_of::<private_key_st>(),
22929        8usize,
22930        "Size of private_key_st"
22931    );
22932    assert_eq!(
22933        ::std::mem::align_of::<private_key_st>(),
22934        8usize,
22935        "Alignment of private_key_st"
22936    );
22937    assert_eq!(
22938        unsafe { ::std::ptr::addr_of!((*ptr).dec_pkey) as usize - ptr as usize },
22939        0usize,
22940        "Offset of field: private_key_st::dec_pkey"
22941    );
22942}
22943impl Default for private_key_st {
22944    fn default() -> Self {
22945        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22946        unsafe {
22947            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22948            s.assume_init()
22949        }
22950    }
22951}
22952#[repr(C)]
22953#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22954pub struct X509_info_st {
22955    pub x509: *mut X509,
22956    pub crl: *mut X509_CRL,
22957    pub x_pkey: *mut X509_PKEY,
22958    pub enc_cipher: EVP_CIPHER_INFO,
22959    pub enc_len: ::std::os::raw::c_int,
22960    pub enc_data: *mut ::std::os::raw::c_char,
22961}
22962#[test]
22963fn bindgen_test_layout_X509_info_st() {
22964    const UNINIT: ::std::mem::MaybeUninit<X509_info_st> = ::std::mem::MaybeUninit::uninit();
22965    let ptr = UNINIT.as_ptr();
22966    assert_eq!(
22967        ::std::mem::size_of::<X509_info_st>(),
22968        64usize,
22969        "Size of X509_info_st"
22970    );
22971    assert_eq!(
22972        ::std::mem::align_of::<X509_info_st>(),
22973        8usize,
22974        "Alignment of X509_info_st"
22975    );
22976    assert_eq!(
22977        unsafe { ::std::ptr::addr_of!((*ptr).x509) as usize - ptr as usize },
22978        0usize,
22979        "Offset of field: X509_info_st::x509"
22980    );
22981    assert_eq!(
22982        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
22983        8usize,
22984        "Offset of field: X509_info_st::crl"
22985    );
22986    assert_eq!(
22987        unsafe { ::std::ptr::addr_of!((*ptr).x_pkey) as usize - ptr as usize },
22988        16usize,
22989        "Offset of field: X509_info_st::x_pkey"
22990    );
22991    assert_eq!(
22992        unsafe { ::std::ptr::addr_of!((*ptr).enc_cipher) as usize - ptr as usize },
22993        24usize,
22994        "Offset of field: X509_info_st::enc_cipher"
22995    );
22996    assert_eq!(
22997        unsafe { ::std::ptr::addr_of!((*ptr).enc_len) as usize - ptr as usize },
22998        48usize,
22999        "Offset of field: X509_info_st::enc_len"
23000    );
23001    assert_eq!(
23002        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
23003        56usize,
23004        "Offset of field: X509_info_st::enc_data"
23005    );
23006}
23007impl Default for X509_info_st {
23008    fn default() -> Self {
23009        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23010        unsafe {
23011            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23012            s.assume_init()
23013        }
23014    }
23015}
23016#[repr(C)]
23017#[derive(Debug, Copy, Clone)]
23018pub struct stack_st_X509_INFO {
23019    _unused: [u8; 0],
23020}
23021pub type sk_X509_INFO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
23022pub type sk_X509_INFO_copy_func =
23023    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
23024pub type sk_X509_INFO_cmp_func = ::std::option::Option<
23025    unsafe extern "C" fn(
23026        arg1: *const *const X509_INFO,
23027        arg2: *const *const X509_INFO,
23028    ) -> ::std::os::raw::c_int,
23029>;
23030pub type sk_X509_INFO_delete_if_func = ::std::option::Option<
23031    unsafe extern "C" fn(
23032        arg1: *mut X509_INFO,
23033        arg2: *mut ::std::os::raw::c_void,
23034    ) -> ::std::os::raw::c_int,
23035>;
23036extern "C" {
23037    #[link_name = "\u{1}aws_lc_0_36_0_X509_INFO_free"]
23038    pub fn X509_INFO_free(info: *mut X509_INFO);
23039}
23040pub type X509V3_EXT_NEW =
23041    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
23042pub type X509V3_EXT_FREE =
23043    ::std::option::Option<unsafe extern "C" fn(ext: *mut ::std::os::raw::c_void)>;
23044pub type X509V3_EXT_D2I = ::std::option::Option<
23045    unsafe extern "C" fn(
23046        ext: *mut ::std::os::raw::c_void,
23047        inp: *mut *const u8,
23048        len: ::std::os::raw::c_long,
23049    ) -> *mut ::std::os::raw::c_void,
23050>;
23051pub type X509V3_EXT_I2D = ::std::option::Option<
23052    unsafe extern "C" fn(
23053        ext: *mut ::std::os::raw::c_void,
23054        outp: *mut *mut u8,
23055    ) -> ::std::os::raw::c_int,
23056>;
23057pub type X509V3_EXT_I2V = ::std::option::Option<
23058    unsafe extern "C" fn(
23059        method: *const X509V3_EXT_METHOD,
23060        ext: *mut ::std::os::raw::c_void,
23061        extlist: *mut stack_st_CONF_VALUE,
23062    ) -> *mut stack_st_CONF_VALUE,
23063>;
23064pub type X509V3_EXT_V2I = ::std::option::Option<
23065    unsafe extern "C" fn(
23066        method: *const X509V3_EXT_METHOD,
23067        ctx: *const X509V3_CTX,
23068        values: *const stack_st_CONF_VALUE,
23069    ) -> *mut ::std::os::raw::c_void,
23070>;
23071pub type X509V3_EXT_I2S = ::std::option::Option<
23072    unsafe extern "C" fn(
23073        method: *const X509V3_EXT_METHOD,
23074        ext: *mut ::std::os::raw::c_void,
23075    ) -> *mut ::std::os::raw::c_char,
23076>;
23077pub type X509V3_EXT_S2I = ::std::option::Option<
23078    unsafe extern "C" fn(
23079        method: *const X509V3_EXT_METHOD,
23080        ctx: *const X509V3_CTX,
23081        str_: *const ::std::os::raw::c_char,
23082    ) -> *mut ::std::os::raw::c_void,
23083>;
23084pub type X509V3_EXT_I2R = ::std::option::Option<
23085    unsafe extern "C" fn(
23086        method: *const X509V3_EXT_METHOD,
23087        ext: *mut ::std::os::raw::c_void,
23088        out: *mut BIO,
23089        indent: ::std::os::raw::c_int,
23090    ) -> ::std::os::raw::c_int,
23091>;
23092pub type X509V3_EXT_R2I = ::std::option::Option<
23093    unsafe extern "C" fn(
23094        method: *const X509V3_EXT_METHOD,
23095        ctx: *const X509V3_CTX,
23096        str_: *const ::std::os::raw::c_char,
23097    ) -> *mut ::std::os::raw::c_void,
23098>;
23099#[repr(C)]
23100#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23101pub struct v3_ext_method {
23102    pub ext_nid: ::std::os::raw::c_int,
23103    pub ext_flags: ::std::os::raw::c_int,
23104    pub it: *const ASN1_ITEM_st,
23105    pub ext_new: X509V3_EXT_NEW,
23106    pub ext_free: X509V3_EXT_FREE,
23107    pub d2i: X509V3_EXT_D2I,
23108    pub i2d: X509V3_EXT_I2D,
23109    pub i2s: X509V3_EXT_I2S,
23110    pub s2i: X509V3_EXT_S2I,
23111    pub i2v: X509V3_EXT_I2V,
23112    pub v2i: X509V3_EXT_V2I,
23113    pub i2r: X509V3_EXT_I2R,
23114    pub r2i: X509V3_EXT_R2I,
23115    pub usr_data: *mut ::std::os::raw::c_void,
23116}
23117#[test]
23118fn bindgen_test_layout_v3_ext_method() {
23119    const UNINIT: ::std::mem::MaybeUninit<v3_ext_method> = ::std::mem::MaybeUninit::uninit();
23120    let ptr = UNINIT.as_ptr();
23121    assert_eq!(
23122        ::std::mem::size_of::<v3_ext_method>(),
23123        104usize,
23124        "Size of v3_ext_method"
23125    );
23126    assert_eq!(
23127        ::std::mem::align_of::<v3_ext_method>(),
23128        8usize,
23129        "Alignment of v3_ext_method"
23130    );
23131    assert_eq!(
23132        unsafe { ::std::ptr::addr_of!((*ptr).ext_nid) as usize - ptr as usize },
23133        0usize,
23134        "Offset of field: v3_ext_method::ext_nid"
23135    );
23136    assert_eq!(
23137        unsafe { ::std::ptr::addr_of!((*ptr).ext_flags) as usize - ptr as usize },
23138        4usize,
23139        "Offset of field: v3_ext_method::ext_flags"
23140    );
23141    assert_eq!(
23142        unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize },
23143        8usize,
23144        "Offset of field: v3_ext_method::it"
23145    );
23146    assert_eq!(
23147        unsafe { ::std::ptr::addr_of!((*ptr).ext_new) as usize - ptr as usize },
23148        16usize,
23149        "Offset of field: v3_ext_method::ext_new"
23150    );
23151    assert_eq!(
23152        unsafe { ::std::ptr::addr_of!((*ptr).ext_free) as usize - ptr as usize },
23153        24usize,
23154        "Offset of field: v3_ext_method::ext_free"
23155    );
23156    assert_eq!(
23157        unsafe { ::std::ptr::addr_of!((*ptr).d2i) as usize - ptr as usize },
23158        32usize,
23159        "Offset of field: v3_ext_method::d2i"
23160    );
23161    assert_eq!(
23162        unsafe { ::std::ptr::addr_of!((*ptr).i2d) as usize - ptr as usize },
23163        40usize,
23164        "Offset of field: v3_ext_method::i2d"
23165    );
23166    assert_eq!(
23167        unsafe { ::std::ptr::addr_of!((*ptr).i2s) as usize - ptr as usize },
23168        48usize,
23169        "Offset of field: v3_ext_method::i2s"
23170    );
23171    assert_eq!(
23172        unsafe { ::std::ptr::addr_of!((*ptr).s2i) as usize - ptr as usize },
23173        56usize,
23174        "Offset of field: v3_ext_method::s2i"
23175    );
23176    assert_eq!(
23177        unsafe { ::std::ptr::addr_of!((*ptr).i2v) as usize - ptr as usize },
23178        64usize,
23179        "Offset of field: v3_ext_method::i2v"
23180    );
23181    assert_eq!(
23182        unsafe { ::std::ptr::addr_of!((*ptr).v2i) as usize - ptr as usize },
23183        72usize,
23184        "Offset of field: v3_ext_method::v2i"
23185    );
23186    assert_eq!(
23187        unsafe { ::std::ptr::addr_of!((*ptr).i2r) as usize - ptr as usize },
23188        80usize,
23189        "Offset of field: v3_ext_method::i2r"
23190    );
23191    assert_eq!(
23192        unsafe { ::std::ptr::addr_of!((*ptr).r2i) as usize - ptr as usize },
23193        88usize,
23194        "Offset of field: v3_ext_method::r2i"
23195    );
23196    assert_eq!(
23197        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23198        96usize,
23199        "Offset of field: v3_ext_method::usr_data"
23200    );
23201}
23202impl Default for v3_ext_method {
23203    fn default() -> Self {
23204        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23205        unsafe {
23206            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23207            s.assume_init()
23208        }
23209    }
23210}
23211extern "C" {
23212    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_get"]
23213    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
23214}
23215extern "C" {
23216    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_get_nid"]
23217    pub fn X509V3_EXT_get_nid(nid: ::std::os::raw::c_int) -> *const X509V3_EXT_METHOD;
23218}
23219extern "C" {
23220    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_add"]
23221    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::std::os::raw::c_int;
23222}
23223extern "C" {
23224    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_add_alias"]
23225    pub fn X509V3_EXT_add_alias(
23226        nid_to: ::std::os::raw::c_int,
23227        nid_from: ::std::os::raw::c_int,
23228    ) -> ::std::os::raw::c_int;
23229}
23230#[repr(C)]
23231#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23232pub struct v3_ext_ctx {
23233    pub flags: ::std::os::raw::c_int,
23234    pub issuer_cert: *const X509,
23235    pub subject_cert: *const X509,
23236    pub subject_req: *const X509_REQ,
23237    pub crl: *const X509_CRL,
23238    pub db: *const CONF,
23239}
23240#[test]
23241fn bindgen_test_layout_v3_ext_ctx() {
23242    const UNINIT: ::std::mem::MaybeUninit<v3_ext_ctx> = ::std::mem::MaybeUninit::uninit();
23243    let ptr = UNINIT.as_ptr();
23244    assert_eq!(
23245        ::std::mem::size_of::<v3_ext_ctx>(),
23246        48usize,
23247        "Size of v3_ext_ctx"
23248    );
23249    assert_eq!(
23250        ::std::mem::align_of::<v3_ext_ctx>(),
23251        8usize,
23252        "Alignment of v3_ext_ctx"
23253    );
23254    assert_eq!(
23255        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23256        0usize,
23257        "Offset of field: v3_ext_ctx::flags"
23258    );
23259    assert_eq!(
23260        unsafe { ::std::ptr::addr_of!((*ptr).issuer_cert) as usize - ptr as usize },
23261        8usize,
23262        "Offset of field: v3_ext_ctx::issuer_cert"
23263    );
23264    assert_eq!(
23265        unsafe { ::std::ptr::addr_of!((*ptr).subject_cert) as usize - ptr as usize },
23266        16usize,
23267        "Offset of field: v3_ext_ctx::subject_cert"
23268    );
23269    assert_eq!(
23270        unsafe { ::std::ptr::addr_of!((*ptr).subject_req) as usize - ptr as usize },
23271        24usize,
23272        "Offset of field: v3_ext_ctx::subject_req"
23273    );
23274    assert_eq!(
23275        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
23276        32usize,
23277        "Offset of field: v3_ext_ctx::crl"
23278    );
23279    assert_eq!(
23280        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
23281        40usize,
23282        "Offset of field: v3_ext_ctx::db"
23283    );
23284}
23285impl Default for v3_ext_ctx {
23286    fn default() -> Self {
23287        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23288        unsafe {
23289            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23290            s.assume_init()
23291        }
23292    }
23293}
23294extern "C" {
23295    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_set_ctx"]
23296    pub fn X509V3_set_ctx(
23297        ctx: *mut X509V3_CTX,
23298        issuer: *const X509,
23299        subject: *const X509,
23300        req: *const X509_REQ,
23301        crl: *const X509_CRL,
23302        flags: ::std::os::raw::c_int,
23303    );
23304}
23305extern "C" {
23306    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_set_nconf"]
23307    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
23308}
23309extern "C" {
23310    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_nconf"]
23311    pub fn X509V3_EXT_nconf(
23312        conf: *const CONF,
23313        ctx: *const X509V3_CTX,
23314        name: *const ::std::os::raw::c_char,
23315        value: *const ::std::os::raw::c_char,
23316    ) -> *mut X509_EXTENSION;
23317}
23318extern "C" {
23319    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_nconf_nid"]
23320    pub fn X509V3_EXT_nconf_nid(
23321        conf: *const CONF,
23322        ctx: *const X509V3_CTX,
23323        ext_nid: ::std::os::raw::c_int,
23324        value: *const ::std::os::raw::c_char,
23325    ) -> *mut X509_EXTENSION;
23326}
23327extern "C" {
23328    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_conf_nid"]
23329    pub fn X509V3_EXT_conf_nid(
23330        conf: *mut lhash_st_CONF_VALUE,
23331        ctx: *const X509V3_CTX,
23332        ext_nid: ::std::os::raw::c_int,
23333        value: *const ::std::os::raw::c_char,
23334    ) -> *mut X509_EXTENSION;
23335}
23336extern "C" {
23337    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_add_nconf_sk"]
23338    pub fn X509V3_EXT_add_nconf_sk(
23339        conf: *const CONF,
23340        ctx: *const X509V3_CTX,
23341        section: *const ::std::os::raw::c_char,
23342        sk: *mut *mut stack_st_X509_EXTENSION,
23343    ) -> ::std::os::raw::c_int;
23344}
23345extern "C" {
23346    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_add_nconf"]
23347    pub fn X509V3_EXT_add_nconf(
23348        conf: *const CONF,
23349        ctx: *const X509V3_CTX,
23350        section: *const ::std::os::raw::c_char,
23351        cert: *mut X509,
23352    ) -> ::std::os::raw::c_int;
23353}
23354extern "C" {
23355    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_REQ_add_nconf"]
23356    pub fn X509V3_EXT_REQ_add_nconf(
23357        conf: *const CONF,
23358        ctx: *const X509V3_CTX,
23359        section: *const ::std::os::raw::c_char,
23360        req: *mut X509_REQ,
23361    ) -> ::std::os::raw::c_int;
23362}
23363extern "C" {
23364    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_CRL_add_nconf"]
23365    pub fn X509V3_EXT_CRL_add_nconf(
23366        conf: *const CONF,
23367        ctx: *const X509V3_CTX,
23368        section: *const ::std::os::raw::c_char,
23369        crl: *mut X509_CRL,
23370    ) -> ::std::os::raw::c_int;
23371}
23372extern "C" {
23373    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_EXT_conf"]
23374    pub fn X509V3_EXT_conf(
23375        conf: *mut lhash_st_CONF_VALUE,
23376        ctx: *mut X509V3_CTX,
23377        name: *const ::std::os::raw::c_char,
23378        value: *const ::std::os::raw::c_char,
23379    ) -> *mut X509_EXTENSION;
23380}
23381extern "C" {
23382    #[link_name = "\u{1}aws_lc_0_36_0_i2s_ASN1_OCTET_STRING"]
23383    pub fn i2s_ASN1_OCTET_STRING(
23384        method: *const X509V3_EXT_METHOD,
23385        oct: *const ASN1_OCTET_STRING,
23386    ) -> *mut ::std::os::raw::c_char;
23387}
23388extern "C" {
23389    #[link_name = "\u{1}aws_lc_0_36_0_s2i_ASN1_OCTET_STRING"]
23390    pub fn s2i_ASN1_OCTET_STRING(
23391        method: *const X509V3_EXT_METHOD,
23392        ctx: *const X509V3_CTX,
23393        str_: *const ::std::os::raw::c_char,
23394    ) -> *mut ASN1_OCTET_STRING;
23395}
23396extern "C" {
23397    #[link_name = "\u{1}aws_lc_0_36_0_i2s_ASN1_INTEGER"]
23398    pub fn i2s_ASN1_INTEGER(
23399        method: *const X509V3_EXT_METHOD,
23400        aint: *const ASN1_INTEGER,
23401    ) -> *mut ::std::os::raw::c_char;
23402}
23403extern "C" {
23404    #[link_name = "\u{1}aws_lc_0_36_0_s2i_ASN1_INTEGER"]
23405    pub fn s2i_ASN1_INTEGER(
23406        method: *const X509V3_EXT_METHOD,
23407        value: *const ::std::os::raw::c_char,
23408    ) -> *mut ASN1_INTEGER;
23409}
23410extern "C" {
23411    #[link_name = "\u{1}aws_lc_0_36_0_i2s_ASN1_ENUMERATED"]
23412    pub fn i2s_ASN1_ENUMERATED(
23413        method: *const X509V3_EXT_METHOD,
23414        aint: *const ASN1_ENUMERATED,
23415    ) -> *mut ::std::os::raw::c_char;
23416}
23417extern "C" {
23418    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_conf_free"]
23419    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
23420}
23421extern "C" {
23422    #[link_name = "\u{1}aws_lc_0_36_0_i2v_GENERAL_NAME"]
23423    pub fn i2v_GENERAL_NAME(
23424        method: *const X509V3_EXT_METHOD,
23425        gen_: *const GENERAL_NAME,
23426        ret: *mut stack_st_CONF_VALUE,
23427    ) -> *mut stack_st_CONF_VALUE;
23428}
23429extern "C" {
23430    #[link_name = "\u{1}aws_lc_0_36_0_i2v_GENERAL_NAMES"]
23431    pub fn i2v_GENERAL_NAMES(
23432        method: *const X509V3_EXT_METHOD,
23433        gen_: *const GENERAL_NAMES,
23434        extlist: *mut stack_st_CONF_VALUE,
23435    ) -> *mut stack_st_CONF_VALUE;
23436}
23437extern "C" {
23438    #[link_name = "\u{1}aws_lc_0_36_0_a2i_IPADDRESS"]
23439    pub fn a2i_IPADDRESS(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23440}
23441extern "C" {
23442    #[link_name = "\u{1}aws_lc_0_36_0_a2i_IPADDRESS_NC"]
23443    pub fn a2i_IPADDRESS_NC(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23444}
23445extern "C" {
23446    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_notBefore"]
23447    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
23448}
23449extern "C" {
23450    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_notAfter"]
23451    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
23452}
23453extern "C" {
23454    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_notBefore"]
23455    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23456}
23457extern "C" {
23458    #[link_name = "\u{1}aws_lc_0_36_0_X509_set_notAfter"]
23459    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23460}
23461extern "C" {
23462    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_lastUpdate"]
23463    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23464}
23465extern "C" {
23466    #[link_name = "\u{1}aws_lc_0_36_0_X509_CRL_get_nextUpdate"]
23467    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23468}
23469extern "C" {
23470    #[link_name = "\u{1}aws_lc_0_36_0_X509_get_serialNumber"]
23471    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
23472}
23473extern "C" {
23474    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get_text_by_OBJ"]
23475    pub fn X509_NAME_get_text_by_OBJ(
23476        name: *const X509_NAME,
23477        obj: *const ASN1_OBJECT,
23478        buf: *mut ::std::os::raw::c_char,
23479        len: ::std::os::raw::c_int,
23480    ) -> ::std::os::raw::c_int;
23481}
23482extern "C" {
23483    #[link_name = "\u{1}aws_lc_0_36_0_X509_NAME_get_text_by_NID"]
23484    pub fn X509_NAME_get_text_by_NID(
23485        name: *const X509_NAME,
23486        nid: ::std::os::raw::c_int,
23487        buf: *mut ::std::os::raw::c_char,
23488        len: ::std::os::raw::c_int,
23489    ) -> ::std::os::raw::c_int;
23490}
23491extern "C" {
23492    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get0_parent_ctx"]
23493    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE_CTX;
23494}
23495extern "C" {
23496    #[link_name = "\u{1}aws_lc_0_36_0_X509_LOOKUP_free"]
23497    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
23498}
23499extern "C" {
23500    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_cleanup"]
23501    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
23502}
23503extern "C" {
23504    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_add_standard_extensions"]
23505    pub fn X509V3_add_standard_extensions() -> ::std::os::raw::c_int;
23506}
23507extern "C" {
23508    #[link_name = "\u{1}aws_lc_0_36_0_X509V3_parse_list"]
23509    pub fn X509V3_parse_list(line: *const ::std::os::raw::c_char) -> *mut stack_st_CONF_VALUE;
23510}
23511extern "C" {
23512    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_chain"]
23513    pub fn X509_STORE_CTX_get_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
23514}
23515extern "C" {
23516    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_trusted_stack"]
23517    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23518}
23519pub type X509_STORE_CTX_verify_cb = ::std::option::Option<
23520    unsafe extern "C" fn(
23521        arg1: ::std::os::raw::c_int,
23522        arg2: *mut X509_STORE_CTX,
23523    ) -> ::std::os::raw::c_int,
23524>;
23525extern "C" {
23526    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_verify_cb"]
23527    pub fn X509_STORE_CTX_set_verify_cb(
23528        ctx: *mut X509_STORE_CTX,
23529        verify_cb: ::std::option::Option<
23530            unsafe extern "C" fn(
23531                ok: ::std::os::raw::c_int,
23532                ctx: *mut X509_STORE_CTX,
23533            ) -> ::std::os::raw::c_int,
23534        >,
23535    );
23536}
23537extern "C" {
23538    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get_verify_cb"]
23539    pub fn X509_STORE_get_verify_cb(ctx: *mut X509_STORE) -> X509_STORE_CTX_verify_cb;
23540}
23541extern "C" {
23542    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_verify_cb"]
23543    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
23544}
23545pub type X509_STORE_CTX_get_crl_fn = ::std::option::Option<
23546    unsafe extern "C" fn(
23547        ctx: *mut X509_STORE_CTX,
23548        crl: *mut *mut X509_CRL,
23549        x: *mut X509,
23550    ) -> ::std::os::raw::c_int,
23551>;
23552pub type X509_STORE_CTX_check_crl_fn = ::std::option::Option<
23553    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, crl: *mut X509_CRL) -> ::std::os::raw::c_int,
23554>;
23555extern "C" {
23556    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_get_crl"]
23557    pub fn X509_STORE_set_get_crl(store: *mut X509_STORE, get_crl: X509_STORE_CTX_get_crl_fn);
23558}
23559extern "C" {
23560    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_set_check_crl"]
23561    pub fn X509_STORE_set_check_crl(store: *mut X509_STORE, check_crl: X509_STORE_CTX_check_crl_fn);
23562}
23563extern "C" {
23564    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set_chain"]
23565    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23566}
23567extern "C" {
23568    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_set0_untrusted"]
23569    pub fn X509_STORE_CTX_set0_untrusted(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23570}
23571#[repr(C)]
23572#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23573pub struct x509_purpose_st {
23574    pub purpose: ::std::os::raw::c_int,
23575    pub trust: ::std::os::raw::c_int,
23576    pub flags: ::std::os::raw::c_int,
23577    pub check_purpose: ::std::option::Option<
23578        unsafe extern "C" fn(
23579            arg1: *const x509_purpose_st,
23580            arg2: *const X509,
23581            arg3: ::std::os::raw::c_int,
23582        ) -> ::std::os::raw::c_int,
23583    >,
23584    pub name: *mut ::std::os::raw::c_char,
23585    pub sname: *mut ::std::os::raw::c_char,
23586    pub usr_data: *mut ::std::os::raw::c_void,
23587}
23588#[test]
23589fn bindgen_test_layout_x509_purpose_st() {
23590    const UNINIT: ::std::mem::MaybeUninit<x509_purpose_st> = ::std::mem::MaybeUninit::uninit();
23591    let ptr = UNINIT.as_ptr();
23592    assert_eq!(
23593        ::std::mem::size_of::<x509_purpose_st>(),
23594        48usize,
23595        "Size of x509_purpose_st"
23596    );
23597    assert_eq!(
23598        ::std::mem::align_of::<x509_purpose_st>(),
23599        8usize,
23600        "Alignment of x509_purpose_st"
23601    );
23602    assert_eq!(
23603        unsafe { ::std::ptr::addr_of!((*ptr).purpose) as usize - ptr as usize },
23604        0usize,
23605        "Offset of field: x509_purpose_st::purpose"
23606    );
23607    assert_eq!(
23608        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23609        4usize,
23610        "Offset of field: x509_purpose_st::trust"
23611    );
23612    assert_eq!(
23613        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23614        8usize,
23615        "Offset of field: x509_purpose_st::flags"
23616    );
23617    assert_eq!(
23618        unsafe { ::std::ptr::addr_of!((*ptr).check_purpose) as usize - ptr as usize },
23619        16usize,
23620        "Offset of field: x509_purpose_st::check_purpose"
23621    );
23622    assert_eq!(
23623        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23624        24usize,
23625        "Offset of field: x509_purpose_st::name"
23626    );
23627    assert_eq!(
23628        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
23629        32usize,
23630        "Offset of field: x509_purpose_st::sname"
23631    );
23632    assert_eq!(
23633        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23634        40usize,
23635        "Offset of field: x509_purpose_st::usr_data"
23636    );
23637}
23638impl Default for x509_purpose_st {
23639    fn default() -> Self {
23640        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23641        unsafe {
23642            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23643            s.assume_init()
23644        }
23645    }
23646}
23647pub type X509_PURPOSE = x509_purpose_st;
23648#[repr(C)]
23649#[derive(Debug, Copy, Clone)]
23650pub struct stack_st_X509_PURPOSE {
23651    _unused: [u8; 0],
23652}
23653pub type sk_X509_PURPOSE_free_func =
23654    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_PURPOSE)>;
23655pub type sk_X509_PURPOSE_copy_func =
23656    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_PURPOSE) -> *mut X509_PURPOSE>;
23657pub type sk_X509_PURPOSE_cmp_func = ::std::option::Option<
23658    unsafe extern "C" fn(
23659        arg1: *const *const X509_PURPOSE,
23660        arg2: *const *const X509_PURPOSE,
23661    ) -> ::std::os::raw::c_int,
23662>;
23663pub type sk_X509_PURPOSE_delete_if_func = ::std::option::Option<
23664    unsafe extern "C" fn(
23665        arg1: *mut X509_PURPOSE,
23666        arg2: *mut ::std::os::raw::c_void,
23667    ) -> ::std::os::raw::c_int,
23668>;
23669extern "C" {
23670    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_get0_objects"]
23671    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
23672}
23673extern "C" {
23674    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get_by_sname"]
23675    pub fn X509_PURPOSE_get_by_sname(sname: *const ::std::os::raw::c_char)
23676        -> ::std::os::raw::c_int;
23677}
23678extern "C" {
23679    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get0"]
23680    pub fn X509_PURPOSE_get0(id: ::std::os::raw::c_int) -> *const X509_PURPOSE;
23681}
23682extern "C" {
23683    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get_id"]
23684    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::std::os::raw::c_int;
23685}
23686#[repr(C)]
23687#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23688pub struct X509_algor_st {
23689    pub algorithm: *mut ASN1_OBJECT,
23690    pub parameter: *mut ASN1_TYPE,
23691}
23692#[test]
23693fn bindgen_test_layout_X509_algor_st() {
23694    const UNINIT: ::std::mem::MaybeUninit<X509_algor_st> = ::std::mem::MaybeUninit::uninit();
23695    let ptr = UNINIT.as_ptr();
23696    assert_eq!(
23697        ::std::mem::size_of::<X509_algor_st>(),
23698        16usize,
23699        "Size of X509_algor_st"
23700    );
23701    assert_eq!(
23702        ::std::mem::align_of::<X509_algor_st>(),
23703        8usize,
23704        "Alignment of X509_algor_st"
23705    );
23706    assert_eq!(
23707        unsafe { ::std::ptr::addr_of!((*ptr).algorithm) as usize - ptr as usize },
23708        0usize,
23709        "Offset of field: X509_algor_st::algorithm"
23710    );
23711    assert_eq!(
23712        unsafe { ::std::ptr::addr_of!((*ptr).parameter) as usize - ptr as usize },
23713        8usize,
23714        "Offset of field: X509_algor_st::parameter"
23715    );
23716}
23717impl Default for X509_algor_st {
23718    fn default() -> Self {
23719        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23720        unsafe {
23721            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23722            s.assume_init()
23723        }
23724    }
23725}
23726#[repr(C)]
23727#[derive(Debug, Copy, Clone)]
23728pub struct stack_st_DIST_POINT {
23729    _unused: [u8; 0],
23730}
23731#[repr(C)]
23732#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23733pub struct x509_trust_st {
23734    pub trust: ::std::os::raw::c_int,
23735    pub flags: ::std::os::raw::c_int,
23736    pub check_trust: ::std::option::Option<
23737        unsafe extern "C" fn(arg1: *const X509_TRUST, arg2: *mut X509) -> ::std::os::raw::c_int,
23738    >,
23739    pub name: *mut ::std::os::raw::c_char,
23740    pub arg1: ::std::os::raw::c_int,
23741    pub arg2: *mut ::std::os::raw::c_void,
23742}
23743#[test]
23744fn bindgen_test_layout_x509_trust_st() {
23745    const UNINIT: ::std::mem::MaybeUninit<x509_trust_st> = ::std::mem::MaybeUninit::uninit();
23746    let ptr = UNINIT.as_ptr();
23747    assert_eq!(
23748        ::std::mem::size_of::<x509_trust_st>(),
23749        40usize,
23750        "Size of x509_trust_st"
23751    );
23752    assert_eq!(
23753        ::std::mem::align_of::<x509_trust_st>(),
23754        8usize,
23755        "Alignment of x509_trust_st"
23756    );
23757    assert_eq!(
23758        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23759        0usize,
23760        "Offset of field: x509_trust_st::trust"
23761    );
23762    assert_eq!(
23763        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23764        4usize,
23765        "Offset of field: x509_trust_st::flags"
23766    );
23767    assert_eq!(
23768        unsafe { ::std::ptr::addr_of!((*ptr).check_trust) as usize - ptr as usize },
23769        8usize,
23770        "Offset of field: x509_trust_st::check_trust"
23771    );
23772    assert_eq!(
23773        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23774        16usize,
23775        "Offset of field: x509_trust_st::name"
23776    );
23777    assert_eq!(
23778        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
23779        24usize,
23780        "Offset of field: x509_trust_st::arg1"
23781    );
23782    assert_eq!(
23783        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
23784        32usize,
23785        "Offset of field: x509_trust_st::arg2"
23786    );
23787}
23788impl Default for x509_trust_st {
23789    fn default() -> Self {
23790        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23791        unsafe {
23792            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23793            s.assume_init()
23794        }
23795    }
23796}
23797#[repr(C)]
23798#[derive(Debug, Copy, Clone)]
23799pub struct stack_st_X509_TRUST {
23800    _unused: [u8; 0],
23801}
23802pub type sk_X509_TRUST_free_func =
23803    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_TRUST)>;
23804pub type sk_X509_TRUST_copy_func =
23805    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_TRUST) -> *mut X509_TRUST>;
23806pub type sk_X509_TRUST_cmp_func = ::std::option::Option<
23807    unsafe extern "C" fn(
23808        arg1: *const *const X509_TRUST,
23809        arg2: *const *const X509_TRUST,
23810    ) -> ::std::os::raw::c_int,
23811>;
23812pub type sk_X509_TRUST_delete_if_func = ::std::option::Option<
23813    unsafe extern "C" fn(
23814        arg1: *mut X509_TRUST,
23815        arg2: *mut ::std::os::raw::c_void,
23816    ) -> ::std::os::raw::c_int,
23817>;
23818extern "C" {
23819    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_set"]
23820    pub fn X509_TRUST_set(
23821        t: *mut ::std::os::raw::c_int,
23822        trust: ::std::os::raw::c_int,
23823    ) -> ::std::os::raw::c_int;
23824}
23825extern "C" {
23826    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get_count"]
23827    pub fn X509_TRUST_get_count() -> ::std::os::raw::c_int;
23828}
23829extern "C" {
23830    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get0"]
23831    pub fn X509_TRUST_get0(idx: ::std::os::raw::c_int) -> *const X509_TRUST;
23832}
23833extern "C" {
23834    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get_by_id"]
23835    pub fn X509_TRUST_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
23836}
23837extern "C" {
23838    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get_flags"]
23839    pub fn X509_TRUST_get_flags(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23840}
23841extern "C" {
23842    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get0_name"]
23843    pub fn X509_TRUST_get0_name(xp: *const X509_TRUST) -> *mut ::std::os::raw::c_char;
23844}
23845extern "C" {
23846    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_get_trust"]
23847    pub fn X509_TRUST_get_trust(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23848}
23849extern "C" {
23850    #[link_name = "\u{1}aws_lc_0_36_0_X509_TRUST_cleanup"]
23851    pub fn X509_TRUST_cleanup();
23852}
23853extern "C" {
23854    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_get0_X509_CRL"]
23855    pub fn X509_OBJECT_get0_X509_CRL(a: *const X509_OBJECT) -> *mut X509_CRL;
23856}
23857extern "C" {
23858    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_set1_X509"]
23859    pub fn X509_OBJECT_set1_X509(a: *mut X509_OBJECT, obj: *mut X509) -> ::std::os::raw::c_int;
23860}
23861extern "C" {
23862    #[link_name = "\u{1}aws_lc_0_36_0_X509_OBJECT_set1_X509_CRL"]
23863    pub fn X509_OBJECT_set1_X509_CRL(
23864        a: *mut X509_OBJECT,
23865        obj: *mut X509_CRL,
23866    ) -> ::std::os::raw::c_int;
23867}
23868extern "C" {
23869    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_lock"]
23870    pub fn X509_STORE_lock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23871}
23872extern "C" {
23873    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_unlock"]
23874    pub fn X509_STORE_unlock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23875}
23876extern "C" {
23877    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get1_certs"]
23878    pub fn X509_STORE_CTX_get1_certs(
23879        st: *mut X509_STORE_CTX,
23880        nm: *mut X509_NAME,
23881    ) -> *mut stack_st_X509;
23882}
23883extern "C" {
23884    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get1_crls"]
23885    pub fn X509_STORE_CTX_get1_crls(
23886        st: *mut X509_STORE_CTX,
23887        nm: *mut X509_NAME,
23888    ) -> *mut stack_st_X509_CRL;
23889}
23890extern "C" {
23891    #[link_name = "\u{1}aws_lc_0_36_0_X509_STORE_CTX_get_by_subject"]
23892    pub fn X509_STORE_CTX_get_by_subject(
23893        vs: *mut X509_STORE_CTX,
23894        type_: ::std::os::raw::c_int,
23895        name: *mut X509_NAME,
23896        ret: *mut X509_OBJECT,
23897    ) -> ::std::os::raw::c_int;
23898}
23899#[repr(C)]
23900#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23901pub struct BASIC_CONSTRAINTS_st {
23902    pub ca: ASN1_BOOLEAN,
23903    pub pathlen: *mut ASN1_INTEGER,
23904}
23905#[test]
23906fn bindgen_test_layout_BASIC_CONSTRAINTS_st() {
23907    const UNINIT: ::std::mem::MaybeUninit<BASIC_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
23908    let ptr = UNINIT.as_ptr();
23909    assert_eq!(
23910        ::std::mem::size_of::<BASIC_CONSTRAINTS_st>(),
23911        16usize,
23912        "Size of BASIC_CONSTRAINTS_st"
23913    );
23914    assert_eq!(
23915        ::std::mem::align_of::<BASIC_CONSTRAINTS_st>(),
23916        8usize,
23917        "Alignment of BASIC_CONSTRAINTS_st"
23918    );
23919    assert_eq!(
23920        unsafe { ::std::ptr::addr_of!((*ptr).ca) as usize - ptr as usize },
23921        0usize,
23922        "Offset of field: BASIC_CONSTRAINTS_st::ca"
23923    );
23924    assert_eq!(
23925        unsafe { ::std::ptr::addr_of!((*ptr).pathlen) as usize - ptr as usize },
23926        8usize,
23927        "Offset of field: BASIC_CONSTRAINTS_st::pathlen"
23928    );
23929}
23930impl Default for BASIC_CONSTRAINTS_st {
23931    fn default() -> Self {
23932        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23933        unsafe {
23934            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23935            s.assume_init()
23936        }
23937    }
23938}
23939#[repr(C)]
23940#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23941pub struct ACCESS_DESCRIPTION_st {
23942    pub method: *mut ASN1_OBJECT,
23943    pub location: *mut GENERAL_NAME,
23944}
23945#[test]
23946fn bindgen_test_layout_ACCESS_DESCRIPTION_st() {
23947    const UNINIT: ::std::mem::MaybeUninit<ACCESS_DESCRIPTION_st> =
23948        ::std::mem::MaybeUninit::uninit();
23949    let ptr = UNINIT.as_ptr();
23950    assert_eq!(
23951        ::std::mem::size_of::<ACCESS_DESCRIPTION_st>(),
23952        16usize,
23953        "Size of ACCESS_DESCRIPTION_st"
23954    );
23955    assert_eq!(
23956        ::std::mem::align_of::<ACCESS_DESCRIPTION_st>(),
23957        8usize,
23958        "Alignment of ACCESS_DESCRIPTION_st"
23959    );
23960    assert_eq!(
23961        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
23962        0usize,
23963        "Offset of field: ACCESS_DESCRIPTION_st::method"
23964    );
23965    assert_eq!(
23966        unsafe { ::std::ptr::addr_of!((*ptr).location) as usize - ptr as usize },
23967        8usize,
23968        "Offset of field: ACCESS_DESCRIPTION_st::location"
23969    );
23970}
23971impl Default for ACCESS_DESCRIPTION_st {
23972    fn default() -> Self {
23973        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23974        unsafe {
23975            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23976            s.assume_init()
23977        }
23978    }
23979}
23980pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
23981#[repr(C)]
23982#[derive(Debug, Copy, Clone)]
23983pub struct stack_st_ACCESS_DESCRIPTION {
23984    _unused: [u8; 0],
23985}
23986pub type sk_ACCESS_DESCRIPTION_free_func =
23987    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
23988pub type sk_ACCESS_DESCRIPTION_copy_func = ::std::option::Option<
23989    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
23990>;
23991pub type sk_ACCESS_DESCRIPTION_cmp_func = ::std::option::Option<
23992    unsafe extern "C" fn(
23993        arg1: *const *const ACCESS_DESCRIPTION,
23994        arg2: *const *const ACCESS_DESCRIPTION,
23995    ) -> ::std::os::raw::c_int,
23996>;
23997pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::std::option::Option<
23998    unsafe extern "C" fn(
23999        arg1: *mut ACCESS_DESCRIPTION,
24000        arg2: *mut ::std::os::raw::c_void,
24001    ) -> ::std::os::raw::c_int,
24002>;
24003pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
24004pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
24005#[repr(C)]
24006#[derive(Copy, Clone)]
24007pub struct DIST_POINT_NAME_st {
24008    pub type_: ::std::os::raw::c_int,
24009    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
24010    pub dpname: *mut X509_NAME,
24011}
24012#[repr(C)]
24013#[derive(Copy, Clone)]
24014pub union DIST_POINT_NAME_st__bindgen_ty_1 {
24015    pub fullname: *mut GENERAL_NAMES,
24016    pub relativename: *mut stack_st_X509_NAME_ENTRY,
24017}
24018#[test]
24019fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
24020    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st__bindgen_ty_1> =
24021        ::std::mem::MaybeUninit::uninit();
24022    let ptr = UNINIT.as_ptr();
24023    assert_eq!(
24024        ::std::mem::size_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24025        8usize,
24026        "Size of DIST_POINT_NAME_st__bindgen_ty_1"
24027    );
24028    assert_eq!(
24029        ::std::mem::align_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24030        8usize,
24031        "Alignment of DIST_POINT_NAME_st__bindgen_ty_1"
24032    );
24033    assert_eq!(
24034        unsafe { ::std::ptr::addr_of!((*ptr).fullname) as usize - ptr as usize },
24035        0usize,
24036        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::fullname"
24037    );
24038    assert_eq!(
24039        unsafe { ::std::ptr::addr_of!((*ptr).relativename) as usize - ptr as usize },
24040        0usize,
24041        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::relativename"
24042    );
24043}
24044impl Default for DIST_POINT_NAME_st__bindgen_ty_1 {
24045    fn default() -> Self {
24046        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24047        unsafe {
24048            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24049            s.assume_init()
24050        }
24051    }
24052}
24053#[test]
24054fn bindgen_test_layout_DIST_POINT_NAME_st() {
24055    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st> = ::std::mem::MaybeUninit::uninit();
24056    let ptr = UNINIT.as_ptr();
24057    assert_eq!(
24058        ::std::mem::size_of::<DIST_POINT_NAME_st>(),
24059        24usize,
24060        "Size of DIST_POINT_NAME_st"
24061    );
24062    assert_eq!(
24063        ::std::mem::align_of::<DIST_POINT_NAME_st>(),
24064        8usize,
24065        "Alignment of DIST_POINT_NAME_st"
24066    );
24067    assert_eq!(
24068        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
24069        0usize,
24070        "Offset of field: DIST_POINT_NAME_st::type_"
24071    );
24072    assert_eq!(
24073        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
24074        8usize,
24075        "Offset of field: DIST_POINT_NAME_st::name"
24076    );
24077    assert_eq!(
24078        unsafe { ::std::ptr::addr_of!((*ptr).dpname) as usize - ptr as usize },
24079        16usize,
24080        "Offset of field: DIST_POINT_NAME_st::dpname"
24081    );
24082}
24083impl Default for DIST_POINT_NAME_st {
24084    fn default() -> Self {
24085        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24086        unsafe {
24087            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24088            s.assume_init()
24089        }
24090    }
24091}
24092pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
24093#[repr(C)]
24094#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24095pub struct DIST_POINT_st {
24096    pub distpoint: *mut DIST_POINT_NAME,
24097    pub reasons: *mut ASN1_BIT_STRING,
24098    pub CRLissuer: *mut GENERAL_NAMES,
24099}
24100#[test]
24101fn bindgen_test_layout_DIST_POINT_st() {
24102    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_st> = ::std::mem::MaybeUninit::uninit();
24103    let ptr = UNINIT.as_ptr();
24104    assert_eq!(
24105        ::std::mem::size_of::<DIST_POINT_st>(),
24106        24usize,
24107        "Size of DIST_POINT_st"
24108    );
24109    assert_eq!(
24110        ::std::mem::align_of::<DIST_POINT_st>(),
24111        8usize,
24112        "Alignment of DIST_POINT_st"
24113    );
24114    assert_eq!(
24115        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24116        0usize,
24117        "Offset of field: DIST_POINT_st::distpoint"
24118    );
24119    assert_eq!(
24120        unsafe { ::std::ptr::addr_of!((*ptr).reasons) as usize - ptr as usize },
24121        8usize,
24122        "Offset of field: DIST_POINT_st::reasons"
24123    );
24124    assert_eq!(
24125        unsafe { ::std::ptr::addr_of!((*ptr).CRLissuer) as usize - ptr as usize },
24126        16usize,
24127        "Offset of field: DIST_POINT_st::CRLissuer"
24128    );
24129}
24130impl Default for DIST_POINT_st {
24131    fn default() -> Self {
24132        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24133        unsafe {
24134            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24135            s.assume_init()
24136        }
24137    }
24138}
24139pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
24140pub type sk_DIST_POINT_free_func =
24141    ::std::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
24142pub type sk_DIST_POINT_copy_func =
24143    ::std::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
24144pub type sk_DIST_POINT_cmp_func = ::std::option::Option<
24145    unsafe extern "C" fn(
24146        arg1: *const *const DIST_POINT,
24147        arg2: *const *const DIST_POINT,
24148    ) -> ::std::os::raw::c_int,
24149>;
24150pub type sk_DIST_POINT_delete_if_func = ::std::option::Option<
24151    unsafe extern "C" fn(
24152        arg1: *mut DIST_POINT,
24153        arg2: *mut ::std::os::raw::c_void,
24154    ) -> ::std::os::raw::c_int,
24155>;
24156#[repr(C)]
24157#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24158pub struct AUTHORITY_KEYID_st {
24159    pub keyid: *mut ASN1_OCTET_STRING,
24160    pub issuer: *mut GENERAL_NAMES,
24161    pub serial: *mut ASN1_INTEGER,
24162}
24163#[test]
24164fn bindgen_test_layout_AUTHORITY_KEYID_st() {
24165    const UNINIT: ::std::mem::MaybeUninit<AUTHORITY_KEYID_st> = ::std::mem::MaybeUninit::uninit();
24166    let ptr = UNINIT.as_ptr();
24167    assert_eq!(
24168        ::std::mem::size_of::<AUTHORITY_KEYID_st>(),
24169        24usize,
24170        "Size of AUTHORITY_KEYID_st"
24171    );
24172    assert_eq!(
24173        ::std::mem::align_of::<AUTHORITY_KEYID_st>(),
24174        8usize,
24175        "Alignment of AUTHORITY_KEYID_st"
24176    );
24177    assert_eq!(
24178        unsafe { ::std::ptr::addr_of!((*ptr).keyid) as usize - ptr as usize },
24179        0usize,
24180        "Offset of field: AUTHORITY_KEYID_st::keyid"
24181    );
24182    assert_eq!(
24183        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
24184        8usize,
24185        "Offset of field: AUTHORITY_KEYID_st::issuer"
24186    );
24187    assert_eq!(
24188        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
24189        16usize,
24190        "Offset of field: AUTHORITY_KEYID_st::serial"
24191    );
24192}
24193impl Default for AUTHORITY_KEYID_st {
24194    fn default() -> Self {
24195        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24196        unsafe {
24197            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24198            s.assume_init()
24199        }
24200    }
24201}
24202#[repr(C)]
24203#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24204pub struct NOTICEREF_st {
24205    pub organization: *mut ASN1_STRING,
24206    pub noticenos: *mut stack_st_ASN1_INTEGER,
24207}
24208#[test]
24209fn bindgen_test_layout_NOTICEREF_st() {
24210    const UNINIT: ::std::mem::MaybeUninit<NOTICEREF_st> = ::std::mem::MaybeUninit::uninit();
24211    let ptr = UNINIT.as_ptr();
24212    assert_eq!(
24213        ::std::mem::size_of::<NOTICEREF_st>(),
24214        16usize,
24215        "Size of NOTICEREF_st"
24216    );
24217    assert_eq!(
24218        ::std::mem::align_of::<NOTICEREF_st>(),
24219        8usize,
24220        "Alignment of NOTICEREF_st"
24221    );
24222    assert_eq!(
24223        unsafe { ::std::ptr::addr_of!((*ptr).organization) as usize - ptr as usize },
24224        0usize,
24225        "Offset of field: NOTICEREF_st::organization"
24226    );
24227    assert_eq!(
24228        unsafe { ::std::ptr::addr_of!((*ptr).noticenos) as usize - ptr as usize },
24229        8usize,
24230        "Offset of field: NOTICEREF_st::noticenos"
24231    );
24232}
24233impl Default for NOTICEREF_st {
24234    fn default() -> Self {
24235        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24236        unsafe {
24237            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24238            s.assume_init()
24239        }
24240    }
24241}
24242pub type NOTICEREF = NOTICEREF_st;
24243#[repr(C)]
24244#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24245pub struct USERNOTICE_st {
24246    pub noticeref: *mut NOTICEREF,
24247    pub exptext: *mut ASN1_STRING,
24248}
24249#[test]
24250fn bindgen_test_layout_USERNOTICE_st() {
24251    const UNINIT: ::std::mem::MaybeUninit<USERNOTICE_st> = ::std::mem::MaybeUninit::uninit();
24252    let ptr = UNINIT.as_ptr();
24253    assert_eq!(
24254        ::std::mem::size_of::<USERNOTICE_st>(),
24255        16usize,
24256        "Size of USERNOTICE_st"
24257    );
24258    assert_eq!(
24259        ::std::mem::align_of::<USERNOTICE_st>(),
24260        8usize,
24261        "Alignment of USERNOTICE_st"
24262    );
24263    assert_eq!(
24264        unsafe { ::std::ptr::addr_of!((*ptr).noticeref) as usize - ptr as usize },
24265        0usize,
24266        "Offset of field: USERNOTICE_st::noticeref"
24267    );
24268    assert_eq!(
24269        unsafe { ::std::ptr::addr_of!((*ptr).exptext) as usize - ptr as usize },
24270        8usize,
24271        "Offset of field: USERNOTICE_st::exptext"
24272    );
24273}
24274impl Default for USERNOTICE_st {
24275    fn default() -> Self {
24276        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24277        unsafe {
24278            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24279            s.assume_init()
24280        }
24281    }
24282}
24283pub type USERNOTICE = USERNOTICE_st;
24284#[repr(C)]
24285#[derive(Copy, Clone)]
24286pub struct POLICYQUALINFO_st {
24287    pub pqualid: *mut ASN1_OBJECT,
24288    pub d: POLICYQUALINFO_st__bindgen_ty_1,
24289}
24290#[repr(C)]
24291#[derive(Copy, Clone)]
24292pub union POLICYQUALINFO_st__bindgen_ty_1 {
24293    pub cpsuri: *mut ASN1_IA5STRING,
24294    pub usernotice: *mut USERNOTICE,
24295    pub other: *mut ASN1_TYPE,
24296}
24297#[test]
24298fn bindgen_test_layout_POLICYQUALINFO_st__bindgen_ty_1() {
24299    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st__bindgen_ty_1> =
24300        ::std::mem::MaybeUninit::uninit();
24301    let ptr = UNINIT.as_ptr();
24302    assert_eq!(
24303        ::std::mem::size_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24304        8usize,
24305        "Size of POLICYQUALINFO_st__bindgen_ty_1"
24306    );
24307    assert_eq!(
24308        ::std::mem::align_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24309        8usize,
24310        "Alignment of POLICYQUALINFO_st__bindgen_ty_1"
24311    );
24312    assert_eq!(
24313        unsafe { ::std::ptr::addr_of!((*ptr).cpsuri) as usize - ptr as usize },
24314        0usize,
24315        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::cpsuri"
24316    );
24317    assert_eq!(
24318        unsafe { ::std::ptr::addr_of!((*ptr).usernotice) as usize - ptr as usize },
24319        0usize,
24320        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::usernotice"
24321    );
24322    assert_eq!(
24323        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
24324        0usize,
24325        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::other"
24326    );
24327}
24328impl Default for POLICYQUALINFO_st__bindgen_ty_1 {
24329    fn default() -> Self {
24330        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24331        unsafe {
24332            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24333            s.assume_init()
24334        }
24335    }
24336}
24337#[test]
24338fn bindgen_test_layout_POLICYQUALINFO_st() {
24339    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st> = ::std::mem::MaybeUninit::uninit();
24340    let ptr = UNINIT.as_ptr();
24341    assert_eq!(
24342        ::std::mem::size_of::<POLICYQUALINFO_st>(),
24343        16usize,
24344        "Size of POLICYQUALINFO_st"
24345    );
24346    assert_eq!(
24347        ::std::mem::align_of::<POLICYQUALINFO_st>(),
24348        8usize,
24349        "Alignment of POLICYQUALINFO_st"
24350    );
24351    assert_eq!(
24352        unsafe { ::std::ptr::addr_of!((*ptr).pqualid) as usize - ptr as usize },
24353        0usize,
24354        "Offset of field: POLICYQUALINFO_st::pqualid"
24355    );
24356    assert_eq!(
24357        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
24358        8usize,
24359        "Offset of field: POLICYQUALINFO_st::d"
24360    );
24361}
24362impl Default for POLICYQUALINFO_st {
24363    fn default() -> Self {
24364        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24365        unsafe {
24366            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24367            s.assume_init()
24368        }
24369    }
24370}
24371pub type POLICYQUALINFO = POLICYQUALINFO_st;
24372#[repr(C)]
24373#[derive(Debug, Copy, Clone)]
24374pub struct stack_st_POLICYQUALINFO {
24375    _unused: [u8; 0],
24376}
24377pub type sk_POLICYQUALINFO_free_func =
24378    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
24379pub type sk_POLICYQUALINFO_copy_func =
24380    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO>;
24381pub type sk_POLICYQUALINFO_cmp_func = ::std::option::Option<
24382    unsafe extern "C" fn(
24383        arg1: *const *const POLICYQUALINFO,
24384        arg2: *const *const POLICYQUALINFO,
24385    ) -> ::std::os::raw::c_int,
24386>;
24387pub type sk_POLICYQUALINFO_delete_if_func = ::std::option::Option<
24388    unsafe extern "C" fn(
24389        arg1: *mut POLICYQUALINFO,
24390        arg2: *mut ::std::os::raw::c_void,
24391    ) -> ::std::os::raw::c_int,
24392>;
24393#[repr(C)]
24394#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24395pub struct POLICYINFO_st {
24396    pub policyid: *mut ASN1_OBJECT,
24397    pub qualifiers: *mut stack_st_POLICYQUALINFO,
24398}
24399#[test]
24400fn bindgen_test_layout_POLICYINFO_st() {
24401    const UNINIT: ::std::mem::MaybeUninit<POLICYINFO_st> = ::std::mem::MaybeUninit::uninit();
24402    let ptr = UNINIT.as_ptr();
24403    assert_eq!(
24404        ::std::mem::size_of::<POLICYINFO_st>(),
24405        16usize,
24406        "Size of POLICYINFO_st"
24407    );
24408    assert_eq!(
24409        ::std::mem::align_of::<POLICYINFO_st>(),
24410        8usize,
24411        "Alignment of POLICYINFO_st"
24412    );
24413    assert_eq!(
24414        unsafe { ::std::ptr::addr_of!((*ptr).policyid) as usize - ptr as usize },
24415        0usize,
24416        "Offset of field: POLICYINFO_st::policyid"
24417    );
24418    assert_eq!(
24419        unsafe { ::std::ptr::addr_of!((*ptr).qualifiers) as usize - ptr as usize },
24420        8usize,
24421        "Offset of field: POLICYINFO_st::qualifiers"
24422    );
24423}
24424impl Default for POLICYINFO_st {
24425    fn default() -> Self {
24426        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24427        unsafe {
24428            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24429            s.assume_init()
24430        }
24431    }
24432}
24433pub type POLICYINFO = POLICYINFO_st;
24434#[repr(C)]
24435#[derive(Debug, Copy, Clone)]
24436pub struct stack_st_POLICYINFO {
24437    _unused: [u8; 0],
24438}
24439pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
24440pub type sk_POLICYINFO_free_func =
24441    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
24442pub type sk_POLICYINFO_copy_func =
24443    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
24444pub type sk_POLICYINFO_cmp_func = ::std::option::Option<
24445    unsafe extern "C" fn(
24446        arg1: *const *const POLICYINFO,
24447        arg2: *const *const POLICYINFO,
24448    ) -> ::std::os::raw::c_int,
24449>;
24450pub type sk_POLICYINFO_delete_if_func = ::std::option::Option<
24451    unsafe extern "C" fn(
24452        arg1: *mut POLICYINFO,
24453        arg2: *mut ::std::os::raw::c_void,
24454    ) -> ::std::os::raw::c_int,
24455>;
24456#[repr(C)]
24457#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24458pub struct POLICY_MAPPING_st {
24459    pub issuerDomainPolicy: *mut ASN1_OBJECT,
24460    pub subjectDomainPolicy: *mut ASN1_OBJECT,
24461}
24462#[test]
24463fn bindgen_test_layout_POLICY_MAPPING_st() {
24464    const UNINIT: ::std::mem::MaybeUninit<POLICY_MAPPING_st> = ::std::mem::MaybeUninit::uninit();
24465    let ptr = UNINIT.as_ptr();
24466    assert_eq!(
24467        ::std::mem::size_of::<POLICY_MAPPING_st>(),
24468        16usize,
24469        "Size of POLICY_MAPPING_st"
24470    );
24471    assert_eq!(
24472        ::std::mem::align_of::<POLICY_MAPPING_st>(),
24473        8usize,
24474        "Alignment of POLICY_MAPPING_st"
24475    );
24476    assert_eq!(
24477        unsafe { ::std::ptr::addr_of!((*ptr).issuerDomainPolicy) as usize - ptr as usize },
24478        0usize,
24479        "Offset of field: POLICY_MAPPING_st::issuerDomainPolicy"
24480    );
24481    assert_eq!(
24482        unsafe { ::std::ptr::addr_of!((*ptr).subjectDomainPolicy) as usize - ptr as usize },
24483        8usize,
24484        "Offset of field: POLICY_MAPPING_st::subjectDomainPolicy"
24485    );
24486}
24487impl Default for POLICY_MAPPING_st {
24488    fn default() -> Self {
24489        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24490        unsafe {
24491            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24492            s.assume_init()
24493        }
24494    }
24495}
24496pub type POLICY_MAPPING = POLICY_MAPPING_st;
24497#[repr(C)]
24498#[derive(Debug, Copy, Clone)]
24499pub struct stack_st_POLICY_MAPPING {
24500    _unused: [u8; 0],
24501}
24502pub type sk_POLICY_MAPPING_free_func =
24503    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
24504pub type sk_POLICY_MAPPING_copy_func =
24505    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING>;
24506pub type sk_POLICY_MAPPING_cmp_func = ::std::option::Option<
24507    unsafe extern "C" fn(
24508        arg1: *const *const POLICY_MAPPING,
24509        arg2: *const *const POLICY_MAPPING,
24510    ) -> ::std::os::raw::c_int,
24511>;
24512pub type sk_POLICY_MAPPING_delete_if_func = ::std::option::Option<
24513    unsafe extern "C" fn(
24514        arg1: *mut POLICY_MAPPING,
24515        arg2: *mut ::std::os::raw::c_void,
24516    ) -> ::std::os::raw::c_int,
24517>;
24518pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
24519#[repr(C)]
24520#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24521pub struct GENERAL_SUBTREE_st {
24522    pub base: *mut GENERAL_NAME,
24523    pub minimum: *mut ASN1_INTEGER,
24524    pub maximum: *mut ASN1_INTEGER,
24525}
24526#[test]
24527fn bindgen_test_layout_GENERAL_SUBTREE_st() {
24528    const UNINIT: ::std::mem::MaybeUninit<GENERAL_SUBTREE_st> = ::std::mem::MaybeUninit::uninit();
24529    let ptr = UNINIT.as_ptr();
24530    assert_eq!(
24531        ::std::mem::size_of::<GENERAL_SUBTREE_st>(),
24532        24usize,
24533        "Size of GENERAL_SUBTREE_st"
24534    );
24535    assert_eq!(
24536        ::std::mem::align_of::<GENERAL_SUBTREE_st>(),
24537        8usize,
24538        "Alignment of GENERAL_SUBTREE_st"
24539    );
24540    assert_eq!(
24541        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
24542        0usize,
24543        "Offset of field: GENERAL_SUBTREE_st::base"
24544    );
24545    assert_eq!(
24546        unsafe { ::std::ptr::addr_of!((*ptr).minimum) as usize - ptr as usize },
24547        8usize,
24548        "Offset of field: GENERAL_SUBTREE_st::minimum"
24549    );
24550    assert_eq!(
24551        unsafe { ::std::ptr::addr_of!((*ptr).maximum) as usize - ptr as usize },
24552        16usize,
24553        "Offset of field: GENERAL_SUBTREE_st::maximum"
24554    );
24555}
24556impl Default for GENERAL_SUBTREE_st {
24557    fn default() -> Self {
24558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24559        unsafe {
24560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24561            s.assume_init()
24562        }
24563    }
24564}
24565pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
24566#[repr(C)]
24567#[derive(Debug, Copy, Clone)]
24568pub struct stack_st_GENERAL_SUBTREE {
24569    _unused: [u8; 0],
24570}
24571pub type sk_GENERAL_SUBTREE_free_func =
24572    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
24573pub type sk_GENERAL_SUBTREE_copy_func = ::std::option::Option<
24574    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
24575>;
24576pub type sk_GENERAL_SUBTREE_cmp_func = ::std::option::Option<
24577    unsafe extern "C" fn(
24578        arg1: *const *const GENERAL_SUBTREE,
24579        arg2: *const *const GENERAL_SUBTREE,
24580    ) -> ::std::os::raw::c_int,
24581>;
24582pub type sk_GENERAL_SUBTREE_delete_if_func = ::std::option::Option<
24583    unsafe extern "C" fn(
24584        arg1: *mut GENERAL_SUBTREE,
24585        arg2: *mut ::std::os::raw::c_void,
24586    ) -> ::std::os::raw::c_int,
24587>;
24588#[repr(C)]
24589#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24590pub struct NAME_CONSTRAINTS_st {
24591    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24592    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24593}
24594#[test]
24595fn bindgen_test_layout_NAME_CONSTRAINTS_st() {
24596    const UNINIT: ::std::mem::MaybeUninit<NAME_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
24597    let ptr = UNINIT.as_ptr();
24598    assert_eq!(
24599        ::std::mem::size_of::<NAME_CONSTRAINTS_st>(),
24600        16usize,
24601        "Size of NAME_CONSTRAINTS_st"
24602    );
24603    assert_eq!(
24604        ::std::mem::align_of::<NAME_CONSTRAINTS_st>(),
24605        8usize,
24606        "Alignment of NAME_CONSTRAINTS_st"
24607    );
24608    assert_eq!(
24609        unsafe { ::std::ptr::addr_of!((*ptr).permittedSubtrees) as usize - ptr as usize },
24610        0usize,
24611        "Offset of field: NAME_CONSTRAINTS_st::permittedSubtrees"
24612    );
24613    assert_eq!(
24614        unsafe { ::std::ptr::addr_of!((*ptr).excludedSubtrees) as usize - ptr as usize },
24615        8usize,
24616        "Offset of field: NAME_CONSTRAINTS_st::excludedSubtrees"
24617    );
24618}
24619impl Default for NAME_CONSTRAINTS_st {
24620    fn default() -> Self {
24621        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24622        unsafe {
24623            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24624            s.assume_init()
24625        }
24626    }
24627}
24628#[repr(C)]
24629#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24630pub struct POLICY_CONSTRAINTS_st {
24631    pub requireExplicitPolicy: *mut ASN1_INTEGER,
24632    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
24633}
24634#[test]
24635fn bindgen_test_layout_POLICY_CONSTRAINTS_st() {
24636    const UNINIT: ::std::mem::MaybeUninit<POLICY_CONSTRAINTS_st> =
24637        ::std::mem::MaybeUninit::uninit();
24638    let ptr = UNINIT.as_ptr();
24639    assert_eq!(
24640        ::std::mem::size_of::<POLICY_CONSTRAINTS_st>(),
24641        16usize,
24642        "Size of POLICY_CONSTRAINTS_st"
24643    );
24644    assert_eq!(
24645        ::std::mem::align_of::<POLICY_CONSTRAINTS_st>(),
24646        8usize,
24647        "Alignment of POLICY_CONSTRAINTS_st"
24648    );
24649    assert_eq!(
24650        unsafe { ::std::ptr::addr_of!((*ptr).requireExplicitPolicy) as usize - ptr as usize },
24651        0usize,
24652        "Offset of field: POLICY_CONSTRAINTS_st::requireExplicitPolicy"
24653    );
24654    assert_eq!(
24655        unsafe { ::std::ptr::addr_of!((*ptr).inhibitPolicyMapping) as usize - ptr as usize },
24656        8usize,
24657        "Offset of field: POLICY_CONSTRAINTS_st::inhibitPolicyMapping"
24658    );
24659}
24660impl Default for POLICY_CONSTRAINTS_st {
24661    fn default() -> Self {
24662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24663        unsafe {
24664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24665            s.assume_init()
24666        }
24667    }
24668}
24669pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
24670#[repr(C)]
24671#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24672pub struct ISSUING_DIST_POINT_st {
24673    pub distpoint: *mut DIST_POINT_NAME,
24674    pub onlyuser: ASN1_BOOLEAN,
24675    pub onlyCA: ASN1_BOOLEAN,
24676    pub onlysomereasons: *mut ASN1_BIT_STRING,
24677    pub indirectCRL: ASN1_BOOLEAN,
24678    pub onlyattr: ASN1_BOOLEAN,
24679}
24680#[test]
24681fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
24682    const UNINIT: ::std::mem::MaybeUninit<ISSUING_DIST_POINT_st> =
24683        ::std::mem::MaybeUninit::uninit();
24684    let ptr = UNINIT.as_ptr();
24685    assert_eq!(
24686        ::std::mem::size_of::<ISSUING_DIST_POINT_st>(),
24687        32usize,
24688        "Size of ISSUING_DIST_POINT_st"
24689    );
24690    assert_eq!(
24691        ::std::mem::align_of::<ISSUING_DIST_POINT_st>(),
24692        8usize,
24693        "Alignment of ISSUING_DIST_POINT_st"
24694    );
24695    assert_eq!(
24696        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24697        0usize,
24698        "Offset of field: ISSUING_DIST_POINT_st::distpoint"
24699    );
24700    assert_eq!(
24701        unsafe { ::std::ptr::addr_of!((*ptr).onlyuser) as usize - ptr as usize },
24702        8usize,
24703        "Offset of field: ISSUING_DIST_POINT_st::onlyuser"
24704    );
24705    assert_eq!(
24706        unsafe { ::std::ptr::addr_of!((*ptr).onlyCA) as usize - ptr as usize },
24707        12usize,
24708        "Offset of field: ISSUING_DIST_POINT_st::onlyCA"
24709    );
24710    assert_eq!(
24711        unsafe { ::std::ptr::addr_of!((*ptr).onlysomereasons) as usize - ptr as usize },
24712        16usize,
24713        "Offset of field: ISSUING_DIST_POINT_st::onlysomereasons"
24714    );
24715    assert_eq!(
24716        unsafe { ::std::ptr::addr_of!((*ptr).indirectCRL) as usize - ptr as usize },
24717        24usize,
24718        "Offset of field: ISSUING_DIST_POINT_st::indirectCRL"
24719    );
24720    assert_eq!(
24721        unsafe { ::std::ptr::addr_of!((*ptr).onlyattr) as usize - ptr as usize },
24722        28usize,
24723        "Offset of field: ISSUING_DIST_POINT_st::onlyattr"
24724    );
24725}
24726impl Default for ISSUING_DIST_POINT_st {
24727    fn default() -> Self {
24728        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24729        unsafe {
24730            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24731            s.assume_init()
24732        }
24733    }
24734}
24735extern "C" {
24736    #[link_name = "\u{1}aws_lc_0_36_0_BASIC_CONSTRAINTS_it"]
24737    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
24738}
24739extern "C" {
24740    #[link_name = "\u{1}aws_lc_0_36_0_BASIC_CONSTRAINTS_new"]
24741    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
24742}
24743extern "C" {
24744    #[link_name = "\u{1}aws_lc_0_36_0_BASIC_CONSTRAINTS_free"]
24745    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
24746}
24747extern "C" {
24748    #[link_name = "\u{1}aws_lc_0_36_0_d2i_BASIC_CONSTRAINTS"]
24749    pub fn d2i_BASIC_CONSTRAINTS(
24750        out: *mut *mut BASIC_CONSTRAINTS,
24751        inp: *mut *const u8,
24752        len: ::std::os::raw::c_long,
24753    ) -> *mut BASIC_CONSTRAINTS;
24754}
24755extern "C" {
24756    #[link_name = "\u{1}aws_lc_0_36_0_i2d_BASIC_CONSTRAINTS"]
24757    pub fn i2d_BASIC_CONSTRAINTS(
24758        bcons: *const BASIC_CONSTRAINTS,
24759        outp: *mut *mut u8,
24760    ) -> ::std::os::raw::c_int;
24761}
24762extern "C" {
24763    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_KEYID_it"]
24764    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
24765}
24766extern "C" {
24767    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_KEYID_new"]
24768    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
24769}
24770extern "C" {
24771    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_KEYID_free"]
24772    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
24773}
24774extern "C" {
24775    #[link_name = "\u{1}aws_lc_0_36_0_d2i_AUTHORITY_KEYID"]
24776    pub fn d2i_AUTHORITY_KEYID(
24777        out: *mut *mut AUTHORITY_KEYID,
24778        inp: *mut *const u8,
24779        len: ::std::os::raw::c_long,
24780    ) -> *mut AUTHORITY_KEYID;
24781}
24782extern "C" {
24783    #[link_name = "\u{1}aws_lc_0_36_0_i2d_AUTHORITY_KEYID"]
24784    pub fn i2d_AUTHORITY_KEYID(
24785        akid: *mut AUTHORITY_KEYID,
24786        outp: *mut *mut u8,
24787    ) -> ::std::os::raw::c_int;
24788}
24789extern "C" {
24790    #[link_name = "\u{1}aws_lc_0_36_0_EXTENDED_KEY_USAGE_it"]
24791    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
24792}
24793extern "C" {
24794    #[link_name = "\u{1}aws_lc_0_36_0_EXTENDED_KEY_USAGE_new"]
24795    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
24796}
24797extern "C" {
24798    #[link_name = "\u{1}aws_lc_0_36_0_EXTENDED_KEY_USAGE_free"]
24799    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
24800}
24801extern "C" {
24802    #[link_name = "\u{1}aws_lc_0_36_0_d2i_EXTENDED_KEY_USAGE"]
24803    pub fn d2i_EXTENDED_KEY_USAGE(
24804        out: *mut *mut EXTENDED_KEY_USAGE,
24805        inp: *mut *const u8,
24806        len: ::std::os::raw::c_long,
24807    ) -> *mut EXTENDED_KEY_USAGE;
24808}
24809extern "C" {
24810    #[link_name = "\u{1}aws_lc_0_36_0_i2d_EXTENDED_KEY_USAGE"]
24811    pub fn i2d_EXTENDED_KEY_USAGE(
24812        eku: *const EXTENDED_KEY_USAGE,
24813        outp: *mut *mut u8,
24814    ) -> ::std::os::raw::c_int;
24815}
24816extern "C" {
24817    #[link_name = "\u{1}aws_lc_0_36_0_CERTIFICATEPOLICIES_it"]
24818    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
24819}
24820extern "C" {
24821    #[link_name = "\u{1}aws_lc_0_36_0_CERTIFICATEPOLICIES_new"]
24822    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
24823}
24824extern "C" {
24825    #[link_name = "\u{1}aws_lc_0_36_0_CERTIFICATEPOLICIES_free"]
24826    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
24827}
24828extern "C" {
24829    #[link_name = "\u{1}aws_lc_0_36_0_d2i_CERTIFICATEPOLICIES"]
24830    pub fn d2i_CERTIFICATEPOLICIES(
24831        out: *mut *mut CERTIFICATEPOLICIES,
24832        inp: *mut *const u8,
24833        len: ::std::os::raw::c_long,
24834    ) -> *mut CERTIFICATEPOLICIES;
24835}
24836extern "C" {
24837    #[link_name = "\u{1}aws_lc_0_36_0_i2d_CERTIFICATEPOLICIES"]
24838    pub fn i2d_CERTIFICATEPOLICIES(
24839        policies: *const CERTIFICATEPOLICIES,
24840        outp: *mut *mut u8,
24841    ) -> ::std::os::raw::c_int;
24842}
24843extern "C" {
24844    #[link_name = "\u{1}aws_lc_0_36_0_POLICYINFO_new"]
24845    pub fn POLICYINFO_new() -> *mut POLICYINFO;
24846}
24847extern "C" {
24848    #[link_name = "\u{1}aws_lc_0_36_0_POLICYINFO_free"]
24849    pub fn POLICYINFO_free(info: *mut POLICYINFO);
24850}
24851extern "C" {
24852    #[link_name = "\u{1}aws_lc_0_36_0_POLICYQUALINFO_new"]
24853    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
24854}
24855extern "C" {
24856    #[link_name = "\u{1}aws_lc_0_36_0_POLICYQUALINFO_free"]
24857    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
24858}
24859extern "C" {
24860    #[link_name = "\u{1}aws_lc_0_36_0_USERNOTICE_new"]
24861    pub fn USERNOTICE_new() -> *mut USERNOTICE;
24862}
24863extern "C" {
24864    #[link_name = "\u{1}aws_lc_0_36_0_USERNOTICE_free"]
24865    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
24866}
24867extern "C" {
24868    #[link_name = "\u{1}aws_lc_0_36_0_NOTICEREF_new"]
24869    pub fn NOTICEREF_new() -> *mut NOTICEREF;
24870}
24871extern "C" {
24872    #[link_name = "\u{1}aws_lc_0_36_0_NOTICEREF_free"]
24873    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
24874}
24875extern "C" {
24876    #[link_name = "\u{1}aws_lc_0_36_0_CRL_DIST_POINTS_it"]
24877    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
24878}
24879extern "C" {
24880    #[link_name = "\u{1}aws_lc_0_36_0_CRL_DIST_POINTS_new"]
24881    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
24882}
24883extern "C" {
24884    #[link_name = "\u{1}aws_lc_0_36_0_CRL_DIST_POINTS_free"]
24885    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
24886}
24887extern "C" {
24888    #[link_name = "\u{1}aws_lc_0_36_0_d2i_CRL_DIST_POINTS"]
24889    pub fn d2i_CRL_DIST_POINTS(
24890        out: *mut *mut CRL_DIST_POINTS,
24891        inp: *mut *const u8,
24892        len: ::std::os::raw::c_long,
24893    ) -> *mut CRL_DIST_POINTS;
24894}
24895extern "C" {
24896    #[link_name = "\u{1}aws_lc_0_36_0_i2d_CRL_DIST_POINTS"]
24897    pub fn i2d_CRL_DIST_POINTS(
24898        crldp: *mut CRL_DIST_POINTS,
24899        outp: *mut *mut u8,
24900    ) -> ::std::os::raw::c_int;
24901}
24902extern "C" {
24903    #[link_name = "\u{1}aws_lc_0_36_0_DIST_POINT_new"]
24904    pub fn DIST_POINT_new() -> *mut DIST_POINT;
24905}
24906extern "C" {
24907    #[link_name = "\u{1}aws_lc_0_36_0_DIST_POINT_free"]
24908    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
24909}
24910extern "C" {
24911    #[link_name = "\u{1}aws_lc_0_36_0_DIST_POINT_NAME_new"]
24912    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
24913}
24914extern "C" {
24915    #[link_name = "\u{1}aws_lc_0_36_0_DIST_POINT_NAME_free"]
24916    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
24917}
24918extern "C" {
24919    #[link_name = "\u{1}aws_lc_0_36_0_ISSUING_DIST_POINT_it"]
24920    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
24921}
24922extern "C" {
24923    #[link_name = "\u{1}aws_lc_0_36_0_ISSUING_DIST_POINT_new"]
24924    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
24925}
24926extern "C" {
24927    #[link_name = "\u{1}aws_lc_0_36_0_ISSUING_DIST_POINT_free"]
24928    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
24929}
24930extern "C" {
24931    #[link_name = "\u{1}aws_lc_0_36_0_d2i_ISSUING_DIST_POINT"]
24932    pub fn d2i_ISSUING_DIST_POINT(
24933        out: *mut *mut ISSUING_DIST_POINT,
24934        inp: *mut *const u8,
24935        len: ::std::os::raw::c_long,
24936    ) -> *mut ISSUING_DIST_POINT;
24937}
24938extern "C" {
24939    #[link_name = "\u{1}aws_lc_0_36_0_i2d_ISSUING_DIST_POINT"]
24940    pub fn i2d_ISSUING_DIST_POINT(
24941        idp: *mut ISSUING_DIST_POINT,
24942        outp: *mut *mut u8,
24943    ) -> ::std::os::raw::c_int;
24944}
24945extern "C" {
24946    #[link_name = "\u{1}aws_lc_0_36_0_ACCESS_DESCRIPTION_new"]
24947    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
24948}
24949extern "C" {
24950    #[link_name = "\u{1}aws_lc_0_36_0_ACCESS_DESCRIPTION_free"]
24951    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
24952}
24953extern "C" {
24954    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_INFO_ACCESS_it"]
24955    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
24956}
24957extern "C" {
24958    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_INFO_ACCESS_new"]
24959    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
24960}
24961extern "C" {
24962    #[link_name = "\u{1}aws_lc_0_36_0_AUTHORITY_INFO_ACCESS_free"]
24963    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
24964}
24965extern "C" {
24966    #[link_name = "\u{1}aws_lc_0_36_0_d2i_AUTHORITY_INFO_ACCESS"]
24967    pub fn d2i_AUTHORITY_INFO_ACCESS(
24968        out: *mut *mut AUTHORITY_INFO_ACCESS,
24969        inp: *mut *const u8,
24970        len: ::std::os::raw::c_long,
24971    ) -> *mut AUTHORITY_INFO_ACCESS;
24972}
24973extern "C" {
24974    #[link_name = "\u{1}aws_lc_0_36_0_i2d_AUTHORITY_INFO_ACCESS"]
24975    pub fn i2d_AUTHORITY_INFO_ACCESS(
24976        aia: *mut AUTHORITY_INFO_ACCESS,
24977        outp: *mut *mut u8,
24978    ) -> ::std::os::raw::c_int;
24979}
24980extern "C" {
24981    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_MAPPING_new"]
24982    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
24983}
24984extern "C" {
24985    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_MAPPING_free"]
24986    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
24987}
24988extern "C" {
24989    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_MAPPINGS_it"]
24990    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
24991}
24992extern "C" {
24993    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_SUBTREE_new"]
24994    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
24995}
24996extern "C" {
24997    #[link_name = "\u{1}aws_lc_0_36_0_GENERAL_SUBTREE_free"]
24998    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
24999}
25000extern "C" {
25001    #[link_name = "\u{1}aws_lc_0_36_0_NAME_CONSTRAINTS_it"]
25002    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
25003}
25004extern "C" {
25005    #[link_name = "\u{1}aws_lc_0_36_0_NAME_CONSTRAINTS_new"]
25006    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
25007}
25008extern "C" {
25009    #[link_name = "\u{1}aws_lc_0_36_0_NAME_CONSTRAINTS_free"]
25010    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
25011}
25012extern "C" {
25013    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_CONSTRAINTS_new"]
25014    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
25015}
25016extern "C" {
25017    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_CONSTRAINTS_free"]
25018    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
25019}
25020extern "C" {
25021    #[link_name = "\u{1}aws_lc_0_36_0_POLICY_CONSTRAINTS_it"]
25022    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
25023}
25024extern "C" {
25025    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_set"]
25026    pub fn X509_PURPOSE_set(
25027        p: *mut ::std::os::raw::c_int,
25028        purpose: ::std::os::raw::c_int,
25029    ) -> ::std::os::raw::c_int;
25030}
25031extern "C" {
25032    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get_count"]
25033    pub fn X509_PURPOSE_get_count() -> ::std::os::raw::c_int;
25034}
25035extern "C" {
25036    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get_by_id"]
25037    pub fn X509_PURPOSE_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25038}
25039extern "C" {
25040    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get0_name"]
25041    pub fn X509_PURPOSE_get0_name(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25042}
25043extern "C" {
25044    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get0_sname"]
25045    pub fn X509_PURPOSE_get0_sname(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25046}
25047extern "C" {
25048    #[link_name = "\u{1}aws_lc_0_36_0_X509_PURPOSE_get_trust"]
25049    pub fn X509_PURPOSE_get_trust(xp: *const X509_PURPOSE) -> ::std::os::raw::c_int;
25050}
25051#[repr(C)]
25052#[derive(Debug, Copy, Clone)]
25053pub struct ocsp_cert_id_st {
25054    _unused: [u8; 0],
25055}
25056pub type OCSP_CERTID = ocsp_cert_id_st;
25057#[repr(C)]
25058#[derive(Debug, Copy, Clone)]
25059pub struct ocsp_one_request_st {
25060    _unused: [u8; 0],
25061}
25062pub type OCSP_ONEREQ = ocsp_one_request_st;
25063#[repr(C)]
25064#[derive(Debug, Copy, Clone)]
25065pub struct ocsp_req_info_st {
25066    _unused: [u8; 0],
25067}
25068pub type OCSP_REQINFO = ocsp_req_info_st;
25069#[repr(C)]
25070#[derive(Debug, Copy, Clone)]
25071pub struct ocsp_signature_st {
25072    _unused: [u8; 0],
25073}
25074pub type OCSP_SIGNATURE = ocsp_signature_st;
25075#[repr(C)]
25076#[derive(Debug, Copy, Clone)]
25077pub struct ocsp_request_st {
25078    _unused: [u8; 0],
25079}
25080pub type OCSP_REQUEST = ocsp_request_st;
25081#[repr(C)]
25082#[derive(Debug, Copy, Clone)]
25083pub struct ocsp_resp_bytes_st {
25084    _unused: [u8; 0],
25085}
25086pub type OCSP_RESPBYTES = ocsp_resp_bytes_st;
25087#[repr(C)]
25088#[derive(Debug, Copy, Clone)]
25089pub struct ocsp_revoked_info_st {
25090    _unused: [u8; 0],
25091}
25092pub type OCSP_REVOKEDINFO = ocsp_revoked_info_st;
25093#[repr(C)]
25094#[derive(Debug, Copy, Clone)]
25095pub struct ocsp_cert_status_st {
25096    _unused: [u8; 0],
25097}
25098pub type OCSP_CERTSTATUS = ocsp_cert_status_st;
25099#[repr(C)]
25100#[derive(Debug, Copy, Clone)]
25101pub struct ocsp_single_response_st {
25102    _unused: [u8; 0],
25103}
25104pub type OCSP_SINGLERESP = ocsp_single_response_st;
25105#[repr(C)]
25106#[derive(Debug, Copy, Clone)]
25107pub struct ocsp_response_data_st {
25108    _unused: [u8; 0],
25109}
25110pub type OCSP_RESPDATA = ocsp_response_data_st;
25111#[repr(C)]
25112#[derive(Debug, Copy, Clone)]
25113pub struct ocsp_response_st {
25114    _unused: [u8; 0],
25115}
25116pub type OCSP_RESPONSE = ocsp_response_st;
25117#[repr(C)]
25118#[derive(Debug, Copy, Clone)]
25119pub struct ocsp_responder_id_st {
25120    _unused: [u8; 0],
25121}
25122pub type OCSP_RESPID = ocsp_responder_id_st;
25123#[repr(C)]
25124#[derive(Debug, Copy, Clone)]
25125pub struct ocsp_basic_response_st {
25126    _unused: [u8; 0],
25127}
25128pub type OCSP_BASICRESP = ocsp_basic_response_st;
25129#[repr(C)]
25130#[derive(Debug, Copy, Clone)]
25131pub struct stack_st_OCSP_CERTID {
25132    _unused: [u8; 0],
25133}
25134pub type sk_OCSP_CERTID_free_func =
25135    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_CERTID)>;
25136pub type sk_OCSP_CERTID_copy_func =
25137    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_CERTID) -> *mut OCSP_CERTID>;
25138pub type sk_OCSP_CERTID_cmp_func = ::std::option::Option<
25139    unsafe extern "C" fn(
25140        arg1: *const *const OCSP_CERTID,
25141        arg2: *const *const OCSP_CERTID,
25142    ) -> ::std::os::raw::c_int,
25143>;
25144pub type sk_OCSP_CERTID_delete_if_func = ::std::option::Option<
25145    unsafe extern "C" fn(
25146        arg1: *mut OCSP_CERTID,
25147        arg2: *mut ::std::os::raw::c_void,
25148    ) -> ::std::os::raw::c_int,
25149>;
25150#[repr(C)]
25151#[derive(Debug, Copy, Clone)]
25152pub struct stack_st_OCSP_ONEREQ {
25153    _unused: [u8; 0],
25154}
25155pub type sk_OCSP_ONEREQ_free_func =
25156    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_ONEREQ)>;
25157pub type sk_OCSP_ONEREQ_copy_func =
25158    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_ONEREQ) -> *mut OCSP_ONEREQ>;
25159pub type sk_OCSP_ONEREQ_cmp_func = ::std::option::Option<
25160    unsafe extern "C" fn(
25161        arg1: *const *const OCSP_ONEREQ,
25162        arg2: *const *const OCSP_ONEREQ,
25163    ) -> ::std::os::raw::c_int,
25164>;
25165pub type sk_OCSP_ONEREQ_delete_if_func = ::std::option::Option<
25166    unsafe extern "C" fn(
25167        arg1: *mut OCSP_ONEREQ,
25168        arg2: *mut ::std::os::raw::c_void,
25169    ) -> ::std::os::raw::c_int,
25170>;
25171#[repr(C)]
25172#[derive(Debug, Copy, Clone)]
25173pub struct stack_st_OCSP_RESPID {
25174    _unused: [u8; 0],
25175}
25176pub type sk_OCSP_RESPID_free_func =
25177    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_RESPID)>;
25178pub type sk_OCSP_RESPID_copy_func =
25179    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_RESPID) -> *mut OCSP_RESPID>;
25180pub type sk_OCSP_RESPID_cmp_func = ::std::option::Option<
25181    unsafe extern "C" fn(
25182        arg1: *const *const OCSP_RESPID,
25183        arg2: *const *const OCSP_RESPID,
25184    ) -> ::std::os::raw::c_int,
25185>;
25186pub type sk_OCSP_RESPID_delete_if_func = ::std::option::Option<
25187    unsafe extern "C" fn(
25188        arg1: *mut OCSP_RESPID,
25189        arg2: *mut ::std::os::raw::c_void,
25190    ) -> ::std::os::raw::c_int,
25191>;
25192#[repr(C)]
25193#[derive(Debug, Copy, Clone)]
25194pub struct stack_st_OCSP_SINGLERESP {
25195    _unused: [u8; 0],
25196}
25197pub type sk_OCSP_SINGLERESP_free_func =
25198    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_SINGLERESP)>;
25199pub type sk_OCSP_SINGLERESP_copy_func = ::std::option::Option<
25200    unsafe extern "C" fn(arg1: *const OCSP_SINGLERESP) -> *mut OCSP_SINGLERESP,
25201>;
25202pub type sk_OCSP_SINGLERESP_cmp_func = ::std::option::Option<
25203    unsafe extern "C" fn(
25204        arg1: *const *const OCSP_SINGLERESP,
25205        arg2: *const *const OCSP_SINGLERESP,
25206    ) -> ::std::os::raw::c_int,
25207>;
25208pub type sk_OCSP_SINGLERESP_delete_if_func = ::std::option::Option<
25209    unsafe extern "C" fn(
25210        arg1: *mut OCSP_SINGLERESP,
25211        arg2: *mut ::std::os::raw::c_void,
25212    ) -> ::std::os::raw::c_int,
25213>;
25214extern "C" {
25215    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_new"]
25216    pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP;
25217}
25218extern "C" {
25219    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_free"]
25220    pub fn OCSP_BASICRESP_free(a: *mut OCSP_BASICRESP);
25221}
25222extern "C" {
25223    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_BASICRESP"]
25224    pub fn d2i_OCSP_BASICRESP(
25225        a: *mut *mut OCSP_BASICRESP,
25226        in_: *mut *const ::std::os::raw::c_uchar,
25227        len: ::std::os::raw::c_long,
25228    ) -> *mut OCSP_BASICRESP;
25229}
25230extern "C" {
25231    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_BASICRESP"]
25232    pub fn i2d_OCSP_BASICRESP(
25233        a: *mut OCSP_BASICRESP,
25234        out: *mut *mut ::std::os::raw::c_uchar,
25235    ) -> ::std::os::raw::c_int;
25236}
25237extern "C" {
25238    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_it"]
25239    pub static OCSP_BASICRESP_it: ASN1_ITEM;
25240}
25241extern "C" {
25242    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_RESPONSE_new"]
25243    pub fn OCSP_RESPONSE_new() -> *mut OCSP_RESPONSE;
25244}
25245extern "C" {
25246    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_RESPONSE_free"]
25247    pub fn OCSP_RESPONSE_free(a: *mut OCSP_RESPONSE);
25248}
25249extern "C" {
25250    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_RESPONSE"]
25251    pub fn d2i_OCSP_RESPONSE(
25252        a: *mut *mut OCSP_RESPONSE,
25253        in_: *mut *const ::std::os::raw::c_uchar,
25254        len: ::std::os::raw::c_long,
25255    ) -> *mut OCSP_RESPONSE;
25256}
25257extern "C" {
25258    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_RESPONSE"]
25259    pub fn i2d_OCSP_RESPONSE(
25260        a: *mut OCSP_RESPONSE,
25261        out: *mut *mut ::std::os::raw::c_uchar,
25262    ) -> ::std::os::raw::c_int;
25263}
25264extern "C" {
25265    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_RESPONSE_it"]
25266    pub static OCSP_RESPONSE_it: ASN1_ITEM;
25267}
25268extern "C" {
25269    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_CERTID_new"]
25270    pub fn OCSP_CERTID_new() -> *mut OCSP_CERTID;
25271}
25272extern "C" {
25273    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_CERTID_free"]
25274    pub fn OCSP_CERTID_free(a: *mut OCSP_CERTID);
25275}
25276extern "C" {
25277    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_CERTID"]
25278    pub fn d2i_OCSP_CERTID(
25279        a: *mut *mut OCSP_CERTID,
25280        in_: *mut *const ::std::os::raw::c_uchar,
25281        len: ::std::os::raw::c_long,
25282    ) -> *mut OCSP_CERTID;
25283}
25284extern "C" {
25285    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_CERTID"]
25286    pub fn i2d_OCSP_CERTID(
25287        a: *mut OCSP_CERTID,
25288        out: *mut *mut ::std::os::raw::c_uchar,
25289    ) -> ::std::os::raw::c_int;
25290}
25291extern "C" {
25292    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_CERTID_it"]
25293    pub static OCSP_CERTID_it: ASN1_ITEM;
25294}
25295extern "C" {
25296    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQUEST_new"]
25297    pub fn OCSP_REQUEST_new() -> *mut OCSP_REQUEST;
25298}
25299extern "C" {
25300    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQUEST_free"]
25301    pub fn OCSP_REQUEST_free(a: *mut OCSP_REQUEST);
25302}
25303extern "C" {
25304    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_REQUEST"]
25305    pub fn d2i_OCSP_REQUEST(
25306        a: *mut *mut OCSP_REQUEST,
25307        in_: *mut *const ::std::os::raw::c_uchar,
25308        len: ::std::os::raw::c_long,
25309    ) -> *mut OCSP_REQUEST;
25310}
25311extern "C" {
25312    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_REQUEST"]
25313    pub fn i2d_OCSP_REQUEST(
25314        a: *mut OCSP_REQUEST,
25315        out: *mut *mut ::std::os::raw::c_uchar,
25316    ) -> ::std::os::raw::c_int;
25317}
25318extern "C" {
25319    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQUEST_it"]
25320    pub static OCSP_REQUEST_it: ASN1_ITEM;
25321}
25322extern "C" {
25323    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_new"]
25324    pub fn OCSP_SINGLERESP_new() -> *mut OCSP_SINGLERESP;
25325}
25326extern "C" {
25327    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_free"]
25328    pub fn OCSP_SINGLERESP_free(a: *mut OCSP_SINGLERESP);
25329}
25330extern "C" {
25331    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_SINGLERESP"]
25332    pub fn d2i_OCSP_SINGLERESP(
25333        a: *mut *mut OCSP_SINGLERESP,
25334        in_: *mut *const ::std::os::raw::c_uchar,
25335        len: ::std::os::raw::c_long,
25336    ) -> *mut OCSP_SINGLERESP;
25337}
25338extern "C" {
25339    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_SINGLERESP"]
25340    pub fn i2d_OCSP_SINGLERESP(
25341        a: *mut OCSP_SINGLERESP,
25342        out: *mut *mut ::std::os::raw::c_uchar,
25343    ) -> ::std::os::raw::c_int;
25344}
25345extern "C" {
25346    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_it"]
25347    pub static OCSP_SINGLERESP_it: ASN1_ITEM;
25348}
25349extern "C" {
25350    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_ONEREQ_new"]
25351    pub fn OCSP_ONEREQ_new() -> *mut OCSP_ONEREQ;
25352}
25353extern "C" {
25354    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_ONEREQ_free"]
25355    pub fn OCSP_ONEREQ_free(a: *mut OCSP_ONEREQ);
25356}
25357extern "C" {
25358    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_ONEREQ"]
25359    pub fn d2i_OCSP_ONEREQ(
25360        a: *mut *mut OCSP_ONEREQ,
25361        in_: *mut *const ::std::os::raw::c_uchar,
25362        len: ::std::os::raw::c_long,
25363    ) -> *mut OCSP_ONEREQ;
25364}
25365extern "C" {
25366    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_ONEREQ"]
25367    pub fn i2d_OCSP_ONEREQ(
25368        a: *mut OCSP_ONEREQ,
25369        out: *mut *mut ::std::os::raw::c_uchar,
25370    ) -> ::std::os::raw::c_int;
25371}
25372extern "C" {
25373    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_ONEREQ_it"]
25374    pub static OCSP_ONEREQ_it: ASN1_ITEM;
25375}
25376extern "C" {
25377    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_REQUEST_bio"]
25378    pub fn d2i_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut *mut OCSP_REQUEST) -> *mut OCSP_REQUEST;
25379}
25380extern "C" {
25381    #[link_name = "\u{1}aws_lc_0_36_0_d2i_OCSP_RESPONSE_bio"]
25382    pub fn d2i_OCSP_RESPONSE_bio(
25383        bp: *mut BIO,
25384        presp: *mut *mut OCSP_RESPONSE,
25385    ) -> *mut OCSP_RESPONSE;
25386}
25387extern "C" {
25388    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_RESPONSE_bio"]
25389    pub fn i2d_OCSP_RESPONSE_bio(bp: *mut BIO, presp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25390}
25391extern "C" {
25392    #[link_name = "\u{1}aws_lc_0_36_0_i2d_OCSP_REQUEST_bio"]
25393    pub fn i2d_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25394}
25395extern "C" {
25396    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_CERTID_dup"]
25397    pub fn OCSP_CERTID_dup(id: *mut OCSP_CERTID) -> *mut OCSP_CERTID;
25398}
25399extern "C" {
25400    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_sendreq_bio"]
25401    pub fn OCSP_sendreq_bio(
25402        b: *mut BIO,
25403        path: *const ::std::os::raw::c_char,
25404        req: *mut OCSP_REQUEST,
25405    ) -> *mut OCSP_RESPONSE;
25406}
25407extern "C" {
25408    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_sendreq_new"]
25409    pub fn OCSP_sendreq_new(
25410        io: *mut BIO,
25411        path: *const ::std::os::raw::c_char,
25412        req: *mut OCSP_REQUEST,
25413        maxline: ::std::os::raw::c_int,
25414    ) -> *mut OCSP_REQ_CTX;
25415}
25416extern "C" {
25417    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_sendreq_nbio"]
25418    pub fn OCSP_sendreq_nbio(
25419        presp: *mut *mut OCSP_RESPONSE,
25420        rctx: *mut OCSP_REQ_CTX,
25421    ) -> ::std::os::raw::c_int;
25422}
25423extern "C" {
25424    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_new"]
25425    pub fn OCSP_REQ_CTX_new(io: *mut BIO, maxline: ::std::os::raw::c_int) -> *mut OCSP_REQ_CTX;
25426}
25427extern "C" {
25428    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_free"]
25429    pub fn OCSP_REQ_CTX_free(rctx: *mut OCSP_REQ_CTX);
25430}
25431extern "C" {
25432    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_set_max_response_length"]
25433    pub fn OCSP_set_max_response_length(rctx: *mut OCSP_REQ_CTX, len: ::std::os::raw::c_ulong);
25434}
25435extern "C" {
25436    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_http"]
25437    pub fn OCSP_REQ_CTX_http(
25438        rctx: *mut OCSP_REQ_CTX,
25439        op: *const ::std::os::raw::c_char,
25440        path: *const ::std::os::raw::c_char,
25441    ) -> ::std::os::raw::c_int;
25442}
25443extern "C" {
25444    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_set1_req"]
25445    pub fn OCSP_REQ_CTX_set1_req(
25446        rctx: *mut OCSP_REQ_CTX,
25447        req: *mut OCSP_REQUEST,
25448    ) -> ::std::os::raw::c_int;
25449}
25450extern "C" {
25451    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_add1_header"]
25452    pub fn OCSP_REQ_CTX_add1_header(
25453        rctx: *mut OCSP_REQ_CTX,
25454        name: *const ::std::os::raw::c_char,
25455        value: *const ::std::os::raw::c_char,
25456    ) -> ::std::os::raw::c_int;
25457}
25458extern "C" {
25459    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQ_CTX_i2d"]
25460    pub fn OCSP_REQ_CTX_i2d(
25461        rctx: *mut OCSP_REQ_CTX,
25462        it: *const ASN1_ITEM,
25463        val: *mut ASN1_VALUE,
25464    ) -> ::std::os::raw::c_int;
25465}
25466extern "C" {
25467    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_add0_id"]
25468    pub fn OCSP_request_add0_id(req: *mut OCSP_REQUEST, cid: *mut OCSP_CERTID) -> *mut OCSP_ONEREQ;
25469}
25470extern "C" {
25471    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_onereq_get0_id"]
25472    pub fn OCSP_onereq_get0_id(one: *mut OCSP_ONEREQ) -> *mut OCSP_CERTID;
25473}
25474extern "C" {
25475    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_add1_nonce"]
25476    pub fn OCSP_request_add1_nonce(
25477        req: *mut OCSP_REQUEST,
25478        val: *mut ::std::os::raw::c_uchar,
25479        len: ::std::os::raw::c_int,
25480    ) -> ::std::os::raw::c_int;
25481}
25482extern "C" {
25483    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_basic_add1_nonce"]
25484    pub fn OCSP_basic_add1_nonce(
25485        resp: *mut OCSP_BASICRESP,
25486        val: *mut ::std::os::raw::c_uchar,
25487        len: ::std::os::raw::c_int,
25488    ) -> ::std::os::raw::c_int;
25489}
25490extern "C" {
25491    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_check_nonce"]
25492    pub fn OCSP_check_nonce(
25493        req: *mut OCSP_REQUEST,
25494        bs: *mut OCSP_BASICRESP,
25495    ) -> ::std::os::raw::c_int;
25496}
25497extern "C" {
25498    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_copy_nonce"]
25499    pub fn OCSP_copy_nonce(
25500        resp: *mut OCSP_BASICRESP,
25501        req: *mut OCSP_REQUEST,
25502    ) -> ::std::os::raw::c_int;
25503}
25504extern "C" {
25505    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_set1_name"]
25506    pub fn OCSP_request_set1_name(
25507        req: *mut OCSP_REQUEST,
25508        nm: *mut X509_NAME,
25509    ) -> ::std::os::raw::c_int;
25510}
25511extern "C" {
25512    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_add1_cert"]
25513    pub fn OCSP_request_add1_cert(req: *mut OCSP_REQUEST, cert: *mut X509)
25514        -> ::std::os::raw::c_int;
25515}
25516extern "C" {
25517    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_is_signed"]
25518    pub fn OCSP_request_is_signed(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25519}
25520extern "C" {
25521    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_onereq_count"]
25522    pub fn OCSP_request_onereq_count(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25523}
25524extern "C" {
25525    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_onereq_get0"]
25526    pub fn OCSP_request_onereq_get0(
25527        req: *mut OCSP_REQUEST,
25528        i: ::std::os::raw::c_int,
25529    ) -> *mut OCSP_ONEREQ;
25530}
25531extern "C" {
25532    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_sign"]
25533    pub fn OCSP_request_sign(
25534        req: *mut OCSP_REQUEST,
25535        signer: *mut X509,
25536        key: *mut EVP_PKEY,
25537        dgst: *const EVP_MD,
25538        certs: *mut stack_st_X509,
25539        flags: ::std::os::raw::c_ulong,
25540    ) -> ::std::os::raw::c_int;
25541}
25542extern "C" {
25543    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_response_status"]
25544    pub fn OCSP_response_status(resp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25545}
25546extern "C" {
25547    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_response_get1_basic"]
25548    pub fn OCSP_response_get1_basic(resp: *mut OCSP_RESPONSE) -> *mut OCSP_BASICRESP;
25549}
25550extern "C" {
25551    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_resp_count"]
25552    pub fn OCSP_resp_count(bs: *mut OCSP_BASICRESP) -> ::std::os::raw::c_int;
25553}
25554extern "C" {
25555    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_resp_get0"]
25556    pub fn OCSP_resp_get0(bs: *mut OCSP_BASICRESP, idx: usize) -> *mut OCSP_SINGLERESP;
25557}
25558extern "C" {
25559    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_single_get0_status"]
25560    pub fn OCSP_single_get0_status(
25561        single: *mut OCSP_SINGLERESP,
25562        reason: *mut ::std::os::raw::c_int,
25563        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25564        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25565        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25566    ) -> ::std::os::raw::c_int;
25567}
25568extern "C" {
25569    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_resp_find"]
25570    pub fn OCSP_resp_find(
25571        bs: *mut OCSP_BASICRESP,
25572        id: *mut OCSP_CERTID,
25573        last: ::std::os::raw::c_int,
25574    ) -> ::std::os::raw::c_int;
25575}
25576extern "C" {
25577    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_resp_find_status"]
25578    pub fn OCSP_resp_find_status(
25579        bs: *mut OCSP_BASICRESP,
25580        id: *mut OCSP_CERTID,
25581        status: *mut ::std::os::raw::c_int,
25582        reason: *mut ::std::os::raw::c_int,
25583        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25584        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25585        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25586    ) -> ::std::os::raw::c_int;
25587}
25588extern "C" {
25589    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_check_validity"]
25590    pub fn OCSP_check_validity(
25591        thisUpdate: *mut ASN1_GENERALIZEDTIME,
25592        nextUpdate: *mut ASN1_GENERALIZEDTIME,
25593        drift_num_seconds: ::std::os::raw::c_long,
25594        max_age_seconds: ::std::os::raw::c_long,
25595    ) -> ::std::os::raw::c_int;
25596}
25597extern "C" {
25598    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_basic_verify"]
25599    pub fn OCSP_basic_verify(
25600        bs: *mut OCSP_BASICRESP,
25601        certs: *mut stack_st_X509,
25602        st: *mut X509_STORE,
25603        flags: ::std::os::raw::c_ulong,
25604    ) -> ::std::os::raw::c_int;
25605}
25606extern "C" {
25607    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_request_verify"]
25608    pub fn OCSP_request_verify(
25609        req: *mut OCSP_REQUEST,
25610        certs: *mut stack_st_X509,
25611        st: *mut X509_STORE,
25612        flags: ::std::os::raw::c_ulong,
25613    ) -> ::std::os::raw::c_int;
25614}
25615extern "C" {
25616    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_cert_id_new"]
25617    pub fn OCSP_cert_id_new(
25618        dgst: *const EVP_MD,
25619        issuerName: *const X509_NAME,
25620        issuerKey: *const ASN1_BIT_STRING,
25621        serialNumber: *const ASN1_INTEGER,
25622    ) -> *mut OCSP_CERTID;
25623}
25624extern "C" {
25625    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_cert_to_id"]
25626    pub fn OCSP_cert_to_id(
25627        dgst: *const EVP_MD,
25628        subject: *const X509,
25629        issuer: *const X509,
25630    ) -> *mut OCSP_CERTID;
25631}
25632extern "C" {
25633    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_parse_url"]
25634    pub fn OCSP_parse_url(
25635        url: *const ::std::os::raw::c_char,
25636        phost: *mut *mut ::std::os::raw::c_char,
25637        pport: *mut *mut ::std::os::raw::c_char,
25638        ppath: *mut *mut ::std::os::raw::c_char,
25639        pssl: *mut ::std::os::raw::c_int,
25640    ) -> ::std::os::raw::c_int;
25641}
25642extern "C" {
25643    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_id_issuer_cmp"]
25644    pub fn OCSP_id_issuer_cmp(
25645        a: *const OCSP_CERTID,
25646        b: *const OCSP_CERTID,
25647    ) -> ::std::os::raw::c_int;
25648}
25649extern "C" {
25650    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_id_cmp"]
25651    pub fn OCSP_id_cmp(a: *const OCSP_CERTID, b: *const OCSP_CERTID) -> ::std::os::raw::c_int;
25652}
25653extern "C" {
25654    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_id_get0_info"]
25655    pub fn OCSP_id_get0_info(
25656        nameHash: *mut *mut ASN1_OCTET_STRING,
25657        algor: *mut *mut ASN1_OBJECT,
25658        keyHash: *mut *mut ASN1_OCTET_STRING,
25659        serial: *mut *mut ASN1_INTEGER,
25660        cid: *mut OCSP_CERTID,
25661    ) -> ::std::os::raw::c_int;
25662}
25663extern "C" {
25664    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_basic_add1_cert"]
25665    pub fn OCSP_basic_add1_cert(
25666        resp: *mut OCSP_BASICRESP,
25667        cert: *mut X509,
25668    ) -> ::std::os::raw::c_int;
25669}
25670extern "C" {
25671    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_basic_add1_status"]
25672    pub fn OCSP_basic_add1_status(
25673        resp: *mut OCSP_BASICRESP,
25674        cid: *mut OCSP_CERTID,
25675        status: ::std::os::raw::c_int,
25676        revoked_reason: ::std::os::raw::c_int,
25677        revoked_time: *mut ASN1_TIME,
25678        this_update: *mut ASN1_TIME,
25679        next_update: *mut ASN1_TIME,
25680    ) -> *mut OCSP_SINGLERESP;
25681}
25682extern "C" {
25683    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_basic_sign"]
25684    pub fn OCSP_basic_sign(
25685        resp: *mut OCSP_BASICRESP,
25686        signer: *mut X509,
25687        key: *mut EVP_PKEY,
25688        dgst: *const EVP_MD,
25689        certs: *mut stack_st_X509,
25690        flags: ::std::os::raw::c_ulong,
25691    ) -> ::std::os::raw::c_int;
25692}
25693extern "C" {
25694    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_response_create"]
25695    pub fn OCSP_response_create(
25696        status: ::std::os::raw::c_int,
25697        bs: *mut OCSP_BASICRESP,
25698    ) -> *mut OCSP_RESPONSE;
25699}
25700extern "C" {
25701    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_get0_id"]
25702    pub fn OCSP_SINGLERESP_get0_id(x: *const OCSP_SINGLERESP) -> *const OCSP_CERTID;
25703}
25704extern "C" {
25705    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_response_status_str"]
25706    pub fn OCSP_response_status_str(
25707        status_code: ::std::os::raw::c_long,
25708    ) -> *const ::std::os::raw::c_char;
25709}
25710extern "C" {
25711    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_cert_status_str"]
25712    pub fn OCSP_cert_status_str(
25713        status_code: ::std::os::raw::c_long,
25714    ) -> *const ::std::os::raw::c_char;
25715}
25716extern "C" {
25717    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_crl_reason_str"]
25718    pub fn OCSP_crl_reason_str(
25719        status_code: ::std::os::raw::c_long,
25720    ) -> *const ::std::os::raw::c_char;
25721}
25722extern "C" {
25723    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_REQUEST_print"]
25724    pub fn OCSP_REQUEST_print(
25725        bp: *mut BIO,
25726        req: *mut OCSP_REQUEST,
25727        flags: ::std::os::raw::c_ulong,
25728    ) -> ::std::os::raw::c_int;
25729}
25730extern "C" {
25731    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_RESPONSE_print"]
25732    pub fn OCSP_RESPONSE_print(
25733        bp: *mut BIO,
25734        resp: *mut OCSP_RESPONSE,
25735        flags: ::std::os::raw::c_ulong,
25736    ) -> ::std::os::raw::c_int;
25737}
25738extern "C" {
25739    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_get_ext_by_NID"]
25740    pub fn OCSP_BASICRESP_get_ext_by_NID(
25741        bs: *mut OCSP_BASICRESP,
25742        nid: ::std::os::raw::c_int,
25743        lastpos: ::std::os::raw::c_int,
25744    ) -> ::std::os::raw::c_int;
25745}
25746extern "C" {
25747    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_get_ext"]
25748    pub fn OCSP_BASICRESP_get_ext(
25749        bs: *mut OCSP_BASICRESP,
25750        loc: ::std::os::raw::c_int,
25751    ) -> *mut X509_EXTENSION;
25752}
25753extern "C" {
25754    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_BASICRESP_delete_ext"]
25755    pub fn OCSP_BASICRESP_delete_ext(
25756        x: *mut OCSP_BASICRESP,
25757        loc: ::std::os::raw::c_int,
25758    ) -> *mut X509_EXTENSION;
25759}
25760extern "C" {
25761    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_add_ext"]
25762    pub fn OCSP_SINGLERESP_add_ext(
25763        sresp: *mut OCSP_SINGLERESP,
25764        ex: *mut X509_EXTENSION,
25765        loc: ::std::os::raw::c_int,
25766    ) -> ::std::os::raw::c_int;
25767}
25768extern "C" {
25769    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_get_ext_count"]
25770    pub fn OCSP_SINGLERESP_get_ext_count(sresp: *mut OCSP_SINGLERESP) -> ::std::os::raw::c_int;
25771}
25772extern "C" {
25773    #[link_name = "\u{1}aws_lc_0_36_0_OCSP_SINGLERESP_get_ext"]
25774    pub fn OCSP_SINGLERESP_get_ext(
25775        sresp: *mut OCSP_SINGLERESP,
25776        loc: ::std::os::raw::c_int,
25777    ) -> *mut X509_EXTENSION;
25778}
25779pub type pem_password_cb = ::std::option::Option<
25780    unsafe extern "C" fn(
25781        buf: *mut ::std::os::raw::c_char,
25782        size: ::std::os::raw::c_int,
25783        rwflag: ::std::os::raw::c_int,
25784        userdata: *mut ::std::os::raw::c_void,
25785    ) -> ::std::os::raw::c_int,
25786>;
25787extern "C" {
25788    #[link_name = "\u{1}aws_lc_0_36_0_PEM_get_EVP_CIPHER_INFO"]
25789    pub fn PEM_get_EVP_CIPHER_INFO(
25790        header: *mut ::std::os::raw::c_char,
25791        cipher: *mut EVP_CIPHER_INFO,
25792    ) -> ::std::os::raw::c_int;
25793}
25794extern "C" {
25795    #[link_name = "\u{1}aws_lc_0_36_0_PEM_do_header"]
25796    pub fn PEM_do_header(
25797        cipher: *mut EVP_CIPHER_INFO,
25798        data: *mut ::std::os::raw::c_uchar,
25799        len: *mut ::std::os::raw::c_long,
25800        callback: pem_password_cb,
25801        u: *mut ::std::os::raw::c_void,
25802    ) -> ::std::os::raw::c_int;
25803}
25804extern "C" {
25805    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio"]
25806    pub fn PEM_read_bio(
25807        bp: *mut BIO,
25808        name: *mut *mut ::std::os::raw::c_char,
25809        header: *mut *mut ::std::os::raw::c_char,
25810        data: *mut *mut ::std::os::raw::c_uchar,
25811        len: *mut ::std::os::raw::c_long,
25812    ) -> ::std::os::raw::c_int;
25813}
25814extern "C" {
25815    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio"]
25816    pub fn PEM_write_bio(
25817        bp: *mut BIO,
25818        name: *const ::std::os::raw::c_char,
25819        hdr: *const ::std::os::raw::c_char,
25820        data: *const ::std::os::raw::c_uchar,
25821        len: ::std::os::raw::c_long,
25822    ) -> ::std::os::raw::c_int;
25823}
25824extern "C" {
25825    #[link_name = "\u{1}aws_lc_0_36_0_PEM_bytes_read_bio"]
25826    pub fn PEM_bytes_read_bio(
25827        pdata: *mut *mut ::std::os::raw::c_uchar,
25828        plen: *mut ::std::os::raw::c_long,
25829        pnm: *mut *mut ::std::os::raw::c_char,
25830        name: *const ::std::os::raw::c_char,
25831        bp: *mut BIO,
25832        cb: pem_password_cb,
25833        u: *mut ::std::os::raw::c_void,
25834    ) -> ::std::os::raw::c_int;
25835}
25836extern "C" {
25837    #[link_name = "\u{1}aws_lc_0_36_0_PEM_ASN1_read_bio"]
25838    pub fn PEM_ASN1_read_bio(
25839        d2i: d2i_of_void,
25840        name: *const ::std::os::raw::c_char,
25841        bp: *mut BIO,
25842        x: *mut *mut ::std::os::raw::c_void,
25843        cb: pem_password_cb,
25844        u: *mut ::std::os::raw::c_void,
25845    ) -> *mut ::std::os::raw::c_void;
25846}
25847extern "C" {
25848    #[link_name = "\u{1}aws_lc_0_36_0_PEM_ASN1_write_bio"]
25849    pub fn PEM_ASN1_write_bio(
25850        i2d: i2d_of_void,
25851        name: *const ::std::os::raw::c_char,
25852        bp: *mut BIO,
25853        x: *mut ::std::os::raw::c_void,
25854        enc: *const EVP_CIPHER,
25855        pass: *const ::std::os::raw::c_uchar,
25856        pass_len: ::std::os::raw::c_int,
25857        cb: pem_password_cb,
25858        u: *mut ::std::os::raw::c_void,
25859    ) -> ::std::os::raw::c_int;
25860}
25861extern "C" {
25862    #[link_name = "\u{1}aws_lc_0_36_0_PEM_X509_INFO_read_bio"]
25863    pub fn PEM_X509_INFO_read_bio(
25864        bp: *mut BIO,
25865        sk: *mut stack_st_X509_INFO,
25866        cb: pem_password_cb,
25867        u: *mut ::std::os::raw::c_void,
25868    ) -> *mut stack_st_X509_INFO;
25869}
25870extern "C" {
25871    #[link_name = "\u{1}aws_lc_0_36_0_PEM_X509_INFO_write_bio"]
25872    pub fn PEM_X509_INFO_write_bio(
25873        bp: *mut BIO,
25874        xi: *mut X509_INFO,
25875        enc: *mut EVP_CIPHER,
25876        kstr: *mut ::std::os::raw::c_uchar,
25877        klen: ::std::os::raw::c_int,
25878        cd: pem_password_cb,
25879        u: *mut ::std::os::raw::c_void,
25880    ) -> ::std::os::raw::c_int;
25881}
25882extern "C" {
25883    #[link_name = "\u{1}aws_lc_0_36_0_PEM_X509_INFO_read"]
25884    pub fn PEM_X509_INFO_read(
25885        fp: *mut FILE,
25886        sk: *mut stack_st_X509_INFO,
25887        cb: pem_password_cb,
25888        u: *mut ::std::os::raw::c_void,
25889    ) -> *mut stack_st_X509_INFO;
25890}
25891extern "C" {
25892    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read"]
25893    pub fn PEM_read(
25894        fp: *mut FILE,
25895        name: *mut *mut ::std::os::raw::c_char,
25896        header: *mut *mut ::std::os::raw::c_char,
25897        data: *mut *mut ::std::os::raw::c_uchar,
25898        len: *mut ::std::os::raw::c_long,
25899    ) -> ::std::os::raw::c_int;
25900}
25901extern "C" {
25902    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write"]
25903    pub fn PEM_write(
25904        fp: *mut FILE,
25905        name: *const ::std::os::raw::c_char,
25906        hdr: *const ::std::os::raw::c_char,
25907        data: *const ::std::os::raw::c_uchar,
25908        len: ::std::os::raw::c_long,
25909    ) -> ::std::os::raw::c_int;
25910}
25911extern "C" {
25912    #[link_name = "\u{1}aws_lc_0_36_0_PEM_ASN1_read"]
25913    pub fn PEM_ASN1_read(
25914        d2i: d2i_of_void,
25915        name: *const ::std::os::raw::c_char,
25916        fp: *mut FILE,
25917        x: *mut *mut ::std::os::raw::c_void,
25918        cb: pem_password_cb,
25919        u: *mut ::std::os::raw::c_void,
25920    ) -> *mut ::std::os::raw::c_void;
25921}
25922extern "C" {
25923    #[link_name = "\u{1}aws_lc_0_36_0_PEM_ASN1_write"]
25924    pub fn PEM_ASN1_write(
25925        i2d: i2d_of_void,
25926        name: *const ::std::os::raw::c_char,
25927        fp: *mut FILE,
25928        x: *mut ::std::os::raw::c_void,
25929        enc: *const EVP_CIPHER,
25930        pass: *const ::std::os::raw::c_uchar,
25931        pass_len: ::std::os::raw::c_int,
25932        callback: pem_password_cb,
25933        u: *mut ::std::os::raw::c_void,
25934    ) -> ::std::os::raw::c_int;
25935}
25936extern "C" {
25937    #[link_name = "\u{1}aws_lc_0_36_0_PEM_def_callback"]
25938    pub fn PEM_def_callback(
25939        buf: *mut ::std::os::raw::c_char,
25940        size: ::std::os::raw::c_int,
25941        rwflag: ::std::os::raw::c_int,
25942        userdata: *mut ::std::os::raw::c_void,
25943    ) -> ::std::os::raw::c_int;
25944}
25945extern "C" {
25946    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_X509"]
25947    pub fn PEM_read_bio_X509(
25948        bp: *mut BIO,
25949        x: *mut *mut X509,
25950        cb: pem_password_cb,
25951        u: *mut ::std::os::raw::c_void,
25952    ) -> *mut X509;
25953}
25954extern "C" {
25955    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_X509"]
25956    pub fn PEM_read_X509(
25957        fp: *mut FILE,
25958        x: *mut *mut X509,
25959        cb: pem_password_cb,
25960        u: *mut ::std::os::raw::c_void,
25961    ) -> *mut X509;
25962}
25963extern "C" {
25964    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_X509"]
25965    pub fn PEM_write_bio_X509(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25966}
25967extern "C" {
25968    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_X509"]
25969    pub fn PEM_write_X509(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25970}
25971extern "C" {
25972    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_X509_AUX"]
25973    pub fn PEM_read_bio_X509_AUX(
25974        bp: *mut BIO,
25975        x: *mut *mut X509,
25976        cb: pem_password_cb,
25977        u: *mut ::std::os::raw::c_void,
25978    ) -> *mut X509;
25979}
25980extern "C" {
25981    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_X509_AUX"]
25982    pub fn PEM_read_X509_AUX(
25983        fp: *mut FILE,
25984        x: *mut *mut X509,
25985        cb: pem_password_cb,
25986        u: *mut ::std::os::raw::c_void,
25987    ) -> *mut X509;
25988}
25989extern "C" {
25990    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_X509_AUX"]
25991    pub fn PEM_write_bio_X509_AUX(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25992}
25993extern "C" {
25994    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_X509_AUX"]
25995    pub fn PEM_write_X509_AUX(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25996}
25997extern "C" {
25998    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_X509_REQ"]
25999    pub fn PEM_read_bio_X509_REQ(
26000        bp: *mut BIO,
26001        x: *mut *mut X509_REQ,
26002        cb: pem_password_cb,
26003        u: *mut ::std::os::raw::c_void,
26004    ) -> *mut X509_REQ;
26005}
26006extern "C" {
26007    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_X509_REQ"]
26008    pub fn PEM_read_X509_REQ(
26009        fp: *mut FILE,
26010        x: *mut *mut X509_REQ,
26011        cb: pem_password_cb,
26012        u: *mut ::std::os::raw::c_void,
26013    ) -> *mut X509_REQ;
26014}
26015extern "C" {
26016    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_X509_REQ"]
26017    pub fn PEM_write_bio_X509_REQ(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26018}
26019extern "C" {
26020    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_X509_REQ"]
26021    pub fn PEM_write_X509_REQ(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26022}
26023extern "C" {
26024    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_X509_REQ_NEW"]
26025    pub fn PEM_write_bio_X509_REQ_NEW(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26026}
26027extern "C" {
26028    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_X509_REQ_NEW"]
26029    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26030}
26031extern "C" {
26032    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_X509_CRL"]
26033    pub fn PEM_read_bio_X509_CRL(
26034        bp: *mut BIO,
26035        x: *mut *mut X509_CRL,
26036        cb: pem_password_cb,
26037        u: *mut ::std::os::raw::c_void,
26038    ) -> *mut X509_CRL;
26039}
26040extern "C" {
26041    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_X509_CRL"]
26042    pub fn PEM_read_X509_CRL(
26043        fp: *mut FILE,
26044        x: *mut *mut X509_CRL,
26045        cb: pem_password_cb,
26046        u: *mut ::std::os::raw::c_void,
26047    ) -> *mut X509_CRL;
26048}
26049extern "C" {
26050    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_X509_CRL"]
26051    pub fn PEM_write_bio_X509_CRL(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26052}
26053extern "C" {
26054    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_X509_CRL"]
26055    pub fn PEM_write_X509_CRL(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26056}
26057extern "C" {
26058    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_PKCS7"]
26059    pub fn PEM_read_bio_PKCS7(
26060        bp: *mut BIO,
26061        x: *mut *mut PKCS7,
26062        cb: pem_password_cb,
26063        u: *mut ::std::os::raw::c_void,
26064    ) -> *mut PKCS7;
26065}
26066extern "C" {
26067    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_PKCS7"]
26068    pub fn PEM_read_PKCS7(
26069        fp: *mut FILE,
26070        x: *mut *mut PKCS7,
26071        cb: pem_password_cb,
26072        u: *mut ::std::os::raw::c_void,
26073    ) -> *mut PKCS7;
26074}
26075extern "C" {
26076    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PKCS7"]
26077    pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> ::std::os::raw::c_int;
26078}
26079extern "C" {
26080    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PKCS7"]
26081    pub fn PEM_write_PKCS7(fp: *mut FILE, x: *mut PKCS7) -> ::std::os::raw::c_int;
26082}
26083extern "C" {
26084    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_PKCS8"]
26085    pub fn PEM_read_bio_PKCS8(
26086        bp: *mut BIO,
26087        x: *mut *mut X509_SIG,
26088        cb: pem_password_cb,
26089        u: *mut ::std::os::raw::c_void,
26090    ) -> *mut X509_SIG;
26091}
26092extern "C" {
26093    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_PKCS8"]
26094    pub fn PEM_read_PKCS8(
26095        fp: *mut FILE,
26096        x: *mut *mut X509_SIG,
26097        cb: pem_password_cb,
26098        u: *mut ::std::os::raw::c_void,
26099    ) -> *mut X509_SIG;
26100}
26101extern "C" {
26102    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PKCS8"]
26103    pub fn PEM_write_bio_PKCS8(bp: *mut BIO, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26104}
26105extern "C" {
26106    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PKCS8"]
26107    pub fn PEM_write_PKCS8(fp: *mut FILE, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26108}
26109extern "C" {
26110    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_PKCS8_PRIV_KEY_INFO"]
26111    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
26112        bp: *mut BIO,
26113        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26114        cb: pem_password_cb,
26115        u: *mut ::std::os::raw::c_void,
26116    ) -> *mut PKCS8_PRIV_KEY_INFO;
26117}
26118extern "C" {
26119    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_PKCS8_PRIV_KEY_INFO"]
26120    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
26121        fp: *mut FILE,
26122        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26123        cb: pem_password_cb,
26124        u: *mut ::std::os::raw::c_void,
26125    ) -> *mut PKCS8_PRIV_KEY_INFO;
26126}
26127extern "C" {
26128    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PKCS8_PRIV_KEY_INFO"]
26129    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
26130        bp: *mut BIO,
26131        x: *mut PKCS8_PRIV_KEY_INFO,
26132    ) -> ::std::os::raw::c_int;
26133}
26134extern "C" {
26135    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PKCS8_PRIV_KEY_INFO"]
26136    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
26137        fp: *mut FILE,
26138        x: *mut PKCS8_PRIV_KEY_INFO,
26139    ) -> ::std::os::raw::c_int;
26140}
26141extern "C" {
26142    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_RSAPrivateKey"]
26143    pub fn PEM_read_bio_RSAPrivateKey(
26144        bp: *mut BIO,
26145        x: *mut *mut RSA,
26146        cb: pem_password_cb,
26147        u: *mut ::std::os::raw::c_void,
26148    ) -> *mut RSA;
26149}
26150extern "C" {
26151    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_RSAPrivateKey"]
26152    pub fn PEM_read_RSAPrivateKey(
26153        fp: *mut FILE,
26154        x: *mut *mut RSA,
26155        cb: pem_password_cb,
26156        u: *mut ::std::os::raw::c_void,
26157    ) -> *mut RSA;
26158}
26159extern "C" {
26160    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_RSAPrivateKey"]
26161    pub fn PEM_write_bio_RSAPrivateKey(
26162        bp: *mut BIO,
26163        x: *mut RSA,
26164        enc: *const EVP_CIPHER,
26165        pass: *const ::std::os::raw::c_uchar,
26166        pass_len: ::std::os::raw::c_int,
26167        cb: pem_password_cb,
26168        u: *mut ::std::os::raw::c_void,
26169    ) -> ::std::os::raw::c_int;
26170}
26171extern "C" {
26172    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_RSAPrivateKey"]
26173    pub fn PEM_write_RSAPrivateKey(
26174        fp: *mut FILE,
26175        x: *mut RSA,
26176        enc: *const EVP_CIPHER,
26177        pass: *const ::std::os::raw::c_uchar,
26178        pass_len: ::std::os::raw::c_int,
26179        cb: pem_password_cb,
26180        u: *mut ::std::os::raw::c_void,
26181    ) -> ::std::os::raw::c_int;
26182}
26183extern "C" {
26184    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_RSAPublicKey"]
26185    pub fn PEM_read_bio_RSAPublicKey(
26186        bp: *mut BIO,
26187        x: *mut *mut RSA,
26188        cb: pem_password_cb,
26189        u: *mut ::std::os::raw::c_void,
26190    ) -> *mut RSA;
26191}
26192extern "C" {
26193    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_RSAPublicKey"]
26194    pub fn PEM_read_RSAPublicKey(
26195        fp: *mut FILE,
26196        x: *mut *mut RSA,
26197        cb: pem_password_cb,
26198        u: *mut ::std::os::raw::c_void,
26199    ) -> *mut RSA;
26200}
26201extern "C" {
26202    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_RSAPublicKey"]
26203    pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, x: *const RSA) -> ::std::os::raw::c_int;
26204}
26205extern "C" {
26206    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_RSAPublicKey"]
26207    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, x: *const RSA) -> ::std::os::raw::c_int;
26208}
26209extern "C" {
26210    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_RSA_PUBKEY"]
26211    pub fn PEM_read_bio_RSA_PUBKEY(
26212        bp: *mut BIO,
26213        x: *mut *mut RSA,
26214        cb: pem_password_cb,
26215        u: *mut ::std::os::raw::c_void,
26216    ) -> *mut RSA;
26217}
26218extern "C" {
26219    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_RSA_PUBKEY"]
26220    pub fn PEM_read_RSA_PUBKEY(
26221        fp: *mut FILE,
26222        x: *mut *mut RSA,
26223        cb: pem_password_cb,
26224        u: *mut ::std::os::raw::c_void,
26225    ) -> *mut RSA;
26226}
26227extern "C" {
26228    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_RSA_PUBKEY"]
26229    pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, x: *mut RSA) -> ::std::os::raw::c_int;
26230}
26231extern "C" {
26232    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_RSA_PUBKEY"]
26233    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, x: *mut RSA) -> ::std::os::raw::c_int;
26234}
26235extern "C" {
26236    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_DSAPrivateKey"]
26237    pub fn PEM_read_bio_DSAPrivateKey(
26238        bp: *mut BIO,
26239        x: *mut *mut DSA,
26240        cb: pem_password_cb,
26241        u: *mut ::std::os::raw::c_void,
26242    ) -> *mut DSA;
26243}
26244extern "C" {
26245    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_DSAPrivateKey"]
26246    pub fn PEM_read_DSAPrivateKey(
26247        fp: *mut FILE,
26248        x: *mut *mut DSA,
26249        cb: pem_password_cb,
26250        u: *mut ::std::os::raw::c_void,
26251    ) -> *mut DSA;
26252}
26253extern "C" {
26254    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_DSAPrivateKey"]
26255    pub fn PEM_write_bio_DSAPrivateKey(
26256        bp: *mut BIO,
26257        x: *mut DSA,
26258        enc: *const EVP_CIPHER,
26259        pass: *const ::std::os::raw::c_uchar,
26260        pass_len: ::std::os::raw::c_int,
26261        cb: pem_password_cb,
26262        u: *mut ::std::os::raw::c_void,
26263    ) -> ::std::os::raw::c_int;
26264}
26265extern "C" {
26266    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_DSAPrivateKey"]
26267    pub fn PEM_write_DSAPrivateKey(
26268        fp: *mut FILE,
26269        x: *mut DSA,
26270        enc: *const EVP_CIPHER,
26271        pass: *const ::std::os::raw::c_uchar,
26272        pass_len: ::std::os::raw::c_int,
26273        cb: pem_password_cb,
26274        u: *mut ::std::os::raw::c_void,
26275    ) -> ::std::os::raw::c_int;
26276}
26277extern "C" {
26278    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_DSA_PUBKEY"]
26279    pub fn PEM_read_bio_DSA_PUBKEY(
26280        bp: *mut BIO,
26281        x: *mut *mut DSA,
26282        cb: pem_password_cb,
26283        u: *mut ::std::os::raw::c_void,
26284    ) -> *mut DSA;
26285}
26286extern "C" {
26287    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_DSA_PUBKEY"]
26288    pub fn PEM_read_DSA_PUBKEY(
26289        fp: *mut FILE,
26290        x: *mut *mut DSA,
26291        cb: pem_password_cb,
26292        u: *mut ::std::os::raw::c_void,
26293    ) -> *mut DSA;
26294}
26295extern "C" {
26296    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_DSA_PUBKEY"]
26297    pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, x: *mut DSA) -> ::std::os::raw::c_int;
26298}
26299extern "C" {
26300    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_DSA_PUBKEY"]
26301    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, x: *mut DSA) -> ::std::os::raw::c_int;
26302}
26303extern "C" {
26304    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_DSAparams"]
26305    pub fn PEM_read_bio_DSAparams(
26306        bp: *mut BIO,
26307        x: *mut *mut DSA,
26308        cb: pem_password_cb,
26309        u: *mut ::std::os::raw::c_void,
26310    ) -> *mut DSA;
26311}
26312extern "C" {
26313    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_DSAparams"]
26314    pub fn PEM_read_DSAparams(
26315        fp: *mut FILE,
26316        x: *mut *mut DSA,
26317        cb: pem_password_cb,
26318        u: *mut ::std::os::raw::c_void,
26319    ) -> *mut DSA;
26320}
26321extern "C" {
26322    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_DSAparams"]
26323    pub fn PEM_write_bio_DSAparams(bp: *mut BIO, x: *const DSA) -> ::std::os::raw::c_int;
26324}
26325extern "C" {
26326    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_DSAparams"]
26327    pub fn PEM_write_DSAparams(fp: *mut FILE, x: *const DSA) -> ::std::os::raw::c_int;
26328}
26329extern "C" {
26330    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_ECPrivateKey"]
26331    pub fn PEM_read_bio_ECPrivateKey(
26332        bp: *mut BIO,
26333        x: *mut *mut EC_KEY,
26334        cb: pem_password_cb,
26335        u: *mut ::std::os::raw::c_void,
26336    ) -> *mut EC_KEY;
26337}
26338extern "C" {
26339    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_ECPrivateKey"]
26340    pub fn PEM_read_ECPrivateKey(
26341        fp: *mut FILE,
26342        x: *mut *mut EC_KEY,
26343        cb: pem_password_cb,
26344        u: *mut ::std::os::raw::c_void,
26345    ) -> *mut EC_KEY;
26346}
26347extern "C" {
26348    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_ECPrivateKey"]
26349    pub fn PEM_write_bio_ECPrivateKey(
26350        bp: *mut BIO,
26351        x: *mut EC_KEY,
26352        enc: *const EVP_CIPHER,
26353        pass: *const ::std::os::raw::c_uchar,
26354        pass_len: ::std::os::raw::c_int,
26355        cb: pem_password_cb,
26356        u: *mut ::std::os::raw::c_void,
26357    ) -> ::std::os::raw::c_int;
26358}
26359extern "C" {
26360    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_ECPrivateKey"]
26361    pub fn PEM_write_ECPrivateKey(
26362        fp: *mut FILE,
26363        x: *mut EC_KEY,
26364        enc: *const EVP_CIPHER,
26365        pass: *const ::std::os::raw::c_uchar,
26366        pass_len: ::std::os::raw::c_int,
26367        cb: pem_password_cb,
26368        u: *mut ::std::os::raw::c_void,
26369    ) -> ::std::os::raw::c_int;
26370}
26371extern "C" {
26372    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_EC_PUBKEY"]
26373    pub fn PEM_read_bio_EC_PUBKEY(
26374        bp: *mut BIO,
26375        x: *mut *mut EC_KEY,
26376        cb: pem_password_cb,
26377        u: *mut ::std::os::raw::c_void,
26378    ) -> *mut EC_KEY;
26379}
26380extern "C" {
26381    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_EC_PUBKEY"]
26382    pub fn PEM_read_EC_PUBKEY(
26383        fp: *mut FILE,
26384        x: *mut *mut EC_KEY,
26385        cb: pem_password_cb,
26386        u: *mut ::std::os::raw::c_void,
26387    ) -> *mut EC_KEY;
26388}
26389extern "C" {
26390    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_EC_PUBKEY"]
26391    pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26392}
26393extern "C" {
26394    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_EC_PUBKEY"]
26395    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26396}
26397extern "C" {
26398    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_DHparams"]
26399    pub fn PEM_read_bio_DHparams(
26400        bp: *mut BIO,
26401        x: *mut *mut DH,
26402        cb: pem_password_cb,
26403        u: *mut ::std::os::raw::c_void,
26404    ) -> *mut DH;
26405}
26406extern "C" {
26407    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_DHparams"]
26408    pub fn PEM_read_DHparams(
26409        fp: *mut FILE,
26410        x: *mut *mut DH,
26411        cb: pem_password_cb,
26412        u: *mut ::std::os::raw::c_void,
26413    ) -> *mut DH;
26414}
26415extern "C" {
26416    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_DHparams"]
26417    pub fn PEM_write_bio_DHparams(bp: *mut BIO, x: *const DH) -> ::std::os::raw::c_int;
26418}
26419extern "C" {
26420    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_DHparams"]
26421    pub fn PEM_write_DHparams(fp: *mut FILE, x: *const DH) -> ::std::os::raw::c_int;
26422}
26423extern "C" {
26424    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_PrivateKey"]
26425    pub fn PEM_read_bio_PrivateKey(
26426        bp: *mut BIO,
26427        x: *mut *mut EVP_PKEY,
26428        cb: pem_password_cb,
26429        u: *mut ::std::os::raw::c_void,
26430    ) -> *mut EVP_PKEY;
26431}
26432extern "C" {
26433    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_PrivateKey"]
26434    pub fn PEM_read_PrivateKey(
26435        fp: *mut FILE,
26436        x: *mut *mut EVP_PKEY,
26437        cb: pem_password_cb,
26438        u: *mut ::std::os::raw::c_void,
26439    ) -> *mut EVP_PKEY;
26440}
26441extern "C" {
26442    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PrivateKey"]
26443    pub fn PEM_write_bio_PrivateKey(
26444        bp: *mut BIO,
26445        x: *mut EVP_PKEY,
26446        enc: *const EVP_CIPHER,
26447        pass: *const ::std::os::raw::c_uchar,
26448        pass_len: ::std::os::raw::c_int,
26449        cb: pem_password_cb,
26450        u: *mut ::std::os::raw::c_void,
26451    ) -> ::std::os::raw::c_int;
26452}
26453extern "C" {
26454    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PrivateKey"]
26455    pub fn PEM_write_PrivateKey(
26456        fp: *mut FILE,
26457        x: *mut EVP_PKEY,
26458        enc: *const EVP_CIPHER,
26459        pass: *const ::std::os::raw::c_uchar,
26460        pass_len: ::std::os::raw::c_int,
26461        cb: pem_password_cb,
26462        u: *mut ::std::os::raw::c_void,
26463    ) -> ::std::os::raw::c_int;
26464}
26465extern "C" {
26466    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_PUBKEY"]
26467    pub fn PEM_read_bio_PUBKEY(
26468        bp: *mut BIO,
26469        x: *mut *mut EVP_PKEY,
26470        cb: pem_password_cb,
26471        u: *mut ::std::os::raw::c_void,
26472    ) -> *mut EVP_PKEY;
26473}
26474extern "C" {
26475    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_PUBKEY"]
26476    pub fn PEM_read_PUBKEY(
26477        fp: *mut FILE,
26478        x: *mut *mut EVP_PKEY,
26479        cb: pem_password_cb,
26480        u: *mut ::std::os::raw::c_void,
26481    ) -> *mut EVP_PKEY;
26482}
26483extern "C" {
26484    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PUBKEY"]
26485    pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26486}
26487extern "C" {
26488    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PUBKEY"]
26489    pub fn PEM_write_PUBKEY(fp: *mut FILE, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26490}
26491extern "C" {
26492    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PKCS8PrivateKey_nid"]
26493    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
26494        bp: *mut BIO,
26495        x: *const EVP_PKEY,
26496        nid: ::std::os::raw::c_int,
26497        pass: *const ::std::os::raw::c_char,
26498        pass_len: ::std::os::raw::c_int,
26499        cb: pem_password_cb,
26500        u: *mut ::std::os::raw::c_void,
26501    ) -> ::std::os::raw::c_int;
26502}
26503extern "C" {
26504    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PKCS8PrivateKey"]
26505    pub fn PEM_write_bio_PKCS8PrivateKey(
26506        bp: *mut BIO,
26507        x: *const EVP_PKEY,
26508        enc: *const EVP_CIPHER,
26509        pass: *const ::std::os::raw::c_char,
26510        pass_len: ::std::os::raw::c_int,
26511        cb: pem_password_cb,
26512        u: *mut ::std::os::raw::c_void,
26513    ) -> ::std::os::raw::c_int;
26514}
26515extern "C" {
26516    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKey_bio"]
26517    pub fn i2d_PKCS8PrivateKey_bio(
26518        bp: *mut BIO,
26519        x: *const EVP_PKEY,
26520        enc: *const EVP_CIPHER,
26521        pass: *const ::std::os::raw::c_char,
26522        pass_len: ::std::os::raw::c_int,
26523        cb: pem_password_cb,
26524        u: *mut ::std::os::raw::c_void,
26525    ) -> ::std::os::raw::c_int;
26526}
26527extern "C" {
26528    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKey_nid_bio"]
26529    pub fn i2d_PKCS8PrivateKey_nid_bio(
26530        bp: *mut BIO,
26531        x: *const EVP_PKEY,
26532        nid: ::std::os::raw::c_int,
26533        pass: *const ::std::os::raw::c_char,
26534        pass_len: ::std::os::raw::c_int,
26535        cb: pem_password_cb,
26536        u: *mut ::std::os::raw::c_void,
26537    ) -> ::std::os::raw::c_int;
26538}
26539extern "C" {
26540    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8PrivateKey_bio"]
26541    pub fn d2i_PKCS8PrivateKey_bio(
26542        bp: *mut BIO,
26543        x: *mut *mut EVP_PKEY,
26544        cb: pem_password_cb,
26545        u: *mut ::std::os::raw::c_void,
26546    ) -> *mut EVP_PKEY;
26547}
26548extern "C" {
26549    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKey_fp"]
26550    pub fn i2d_PKCS8PrivateKey_fp(
26551        fp: *mut FILE,
26552        x: *const EVP_PKEY,
26553        enc: *const EVP_CIPHER,
26554        pass: *const ::std::os::raw::c_char,
26555        pass_len: ::std::os::raw::c_int,
26556        cb: pem_password_cb,
26557        u: *mut ::std::os::raw::c_void,
26558    ) -> ::std::os::raw::c_int;
26559}
26560extern "C" {
26561    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS8PrivateKey_nid_fp"]
26562    pub fn i2d_PKCS8PrivateKey_nid_fp(
26563        fp: *mut FILE,
26564        x: *const EVP_PKEY,
26565        nid: ::std::os::raw::c_int,
26566        pass: *const ::std::os::raw::c_char,
26567        pass_len: ::std::os::raw::c_int,
26568        cb: pem_password_cb,
26569        u: *mut ::std::os::raw::c_void,
26570    ) -> ::std::os::raw::c_int;
26571}
26572extern "C" {
26573    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PKCS8PrivateKey_nid"]
26574    pub fn PEM_write_PKCS8PrivateKey_nid(
26575        fp: *mut FILE,
26576        x: *const EVP_PKEY,
26577        nid: ::std::os::raw::c_int,
26578        pass: *const ::std::os::raw::c_char,
26579        pass_len: ::std::os::raw::c_int,
26580        cb: pem_password_cb,
26581        u: *mut ::std::os::raw::c_void,
26582    ) -> ::std::os::raw::c_int;
26583}
26584extern "C" {
26585    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS8PrivateKey_fp"]
26586    pub fn d2i_PKCS8PrivateKey_fp(
26587        fp: *mut FILE,
26588        x: *mut *mut EVP_PKEY,
26589        cb: pem_password_cb,
26590        u: *mut ::std::os::raw::c_void,
26591    ) -> *mut EVP_PKEY;
26592}
26593extern "C" {
26594    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_PKCS8PrivateKey"]
26595    pub fn PEM_write_PKCS8PrivateKey(
26596        fp: *mut FILE,
26597        x: *const EVP_PKEY,
26598        enc: *const EVP_CIPHER,
26599        pass: *const ::std::os::raw::c_char,
26600        pass_len: ::std::os::raw::c_int,
26601        cd: pem_password_cb,
26602        u: *mut ::std::os::raw::c_void,
26603    ) -> ::std::os::raw::c_int;
26604}
26605extern "C" {
26606    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_Parameters"]
26607    pub fn PEM_read_bio_Parameters(bio: *mut BIO, pkey: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
26608}
26609extern "C" {
26610    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_Parameters"]
26611    pub fn PEM_write_bio_Parameters(bio: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26612}
26613extern "C" {
26614    #[link_name = "\u{1}aws_lc_0_36_0_PEM_read_bio_ECPKParameters"]
26615    pub fn PEM_read_bio_ECPKParameters(
26616        bio: *mut BIO,
26617        out_group: *mut *mut EC_GROUP,
26618        cb: pem_password_cb,
26619        u: *mut ::std::os::raw::c_void,
26620    ) -> *mut EC_GROUP;
26621}
26622extern "C" {
26623    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_ECPKParameters"]
26624    pub fn PEM_write_bio_ECPKParameters(
26625        out: *mut BIO,
26626        group: *const EC_GROUP,
26627    ) -> ::std::os::raw::c_int;
26628}
26629extern "C" {
26630    #[link_name = "\u{1}aws_lc_0_36_0_PEM_write_bio_PrivateKey_traditional"]
26631    pub fn PEM_write_bio_PrivateKey_traditional(
26632        bp: *mut BIO,
26633        x: *mut EVP_PKEY,
26634        enc: *const EVP_CIPHER,
26635        kstr: *mut ::std::os::raw::c_uchar,
26636        klen: ::std::os::raw::c_int,
26637        cb: pem_password_cb,
26638        u: *mut ::std::os::raw::c_void,
26639    ) -> ::std::os::raw::c_int;
26640}
26641extern "C" {
26642    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_encrypt"]
26643    pub fn PKCS8_encrypt(
26644        pbe_nid: ::std::os::raw::c_int,
26645        cipher: *const EVP_CIPHER,
26646        pass: *const ::std::os::raw::c_char,
26647        pass_len: ::std::os::raw::c_int,
26648        salt: *const u8,
26649        salt_len: usize,
26650        iterations: ::std::os::raw::c_int,
26651        p8inf: *mut PKCS8_PRIV_KEY_INFO,
26652    ) -> *mut X509_SIG;
26653}
26654extern "C" {
26655    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_marshal_encrypted_private_key"]
26656    pub fn PKCS8_marshal_encrypted_private_key(
26657        out: *mut CBB,
26658        pbe_nid: ::std::os::raw::c_int,
26659        cipher: *const EVP_CIPHER,
26660        pass: *const ::std::os::raw::c_char,
26661        pass_len: usize,
26662        salt: *const u8,
26663        salt_len: usize,
26664        iterations: ::std::os::raw::c_int,
26665        pkey: *const EVP_PKEY,
26666    ) -> ::std::os::raw::c_int;
26667}
26668extern "C" {
26669    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_decrypt"]
26670    pub fn PKCS8_decrypt(
26671        pkcs8: *mut X509_SIG,
26672        pass: *const ::std::os::raw::c_char,
26673        pass_len: ::std::os::raw::c_int,
26674    ) -> *mut PKCS8_PRIV_KEY_INFO;
26675}
26676extern "C" {
26677    #[link_name = "\u{1}aws_lc_0_36_0_PKCS8_parse_encrypted_private_key"]
26678    pub fn PKCS8_parse_encrypted_private_key(
26679        cbs: *mut CBS,
26680        pass: *const ::std::os::raw::c_char,
26681        pass_len: usize,
26682    ) -> *mut EVP_PKEY;
26683}
26684extern "C" {
26685    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_get_key_and_certs"]
26686    pub fn PKCS12_get_key_and_certs(
26687        out_key: *mut *mut EVP_PKEY,
26688        out_certs: *mut stack_st_X509,
26689        in_: *mut CBS,
26690        password: *const ::std::os::raw::c_char,
26691    ) -> ::std::os::raw::c_int;
26692}
26693extern "C" {
26694    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_PBE_add"]
26695    pub fn PKCS12_PBE_add();
26696}
26697extern "C" {
26698    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS12"]
26699    pub fn d2i_PKCS12(
26700        out_p12: *mut *mut PKCS12,
26701        ber_bytes: *mut *const u8,
26702        ber_len: usize,
26703    ) -> *mut PKCS12;
26704}
26705extern "C" {
26706    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS12_bio"]
26707    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26708}
26709extern "C" {
26710    #[link_name = "\u{1}aws_lc_0_36_0_d2i_PKCS12_fp"]
26711    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26712}
26713extern "C" {
26714    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS12"]
26715    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::std::os::raw::c_int;
26716}
26717extern "C" {
26718    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS12_bio"]
26719    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::std::os::raw::c_int;
26720}
26721extern "C" {
26722    #[link_name = "\u{1}aws_lc_0_36_0_i2d_PKCS12_fp"]
26723    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::std::os::raw::c_int;
26724}
26725extern "C" {
26726    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_parse"]
26727    pub fn PKCS12_parse(
26728        p12: *const PKCS12,
26729        password: *const ::std::os::raw::c_char,
26730        out_pkey: *mut *mut EVP_PKEY,
26731        out_cert: *mut *mut X509,
26732        out_ca_certs: *mut *mut stack_st_X509,
26733    ) -> ::std::os::raw::c_int;
26734}
26735extern "C" {
26736    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_set_mac"]
26737    pub fn PKCS12_set_mac(
26738        p12: *mut PKCS12,
26739        password: *const ::std::os::raw::c_char,
26740        password_len: ::std::os::raw::c_int,
26741        salt: *mut ::std::os::raw::c_uchar,
26742        salt_len: ::std::os::raw::c_int,
26743        mac_iterations: ::std::os::raw::c_int,
26744        md: *const EVP_MD,
26745    ) -> ::std::os::raw::c_int;
26746}
26747extern "C" {
26748    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_verify_mac"]
26749    pub fn PKCS12_verify_mac(
26750        p12: *const PKCS12,
26751        password: *const ::std::os::raw::c_char,
26752        password_len: ::std::os::raw::c_int,
26753    ) -> ::std::os::raw::c_int;
26754}
26755extern "C" {
26756    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_create"]
26757    pub fn PKCS12_create(
26758        password: *const ::std::os::raw::c_char,
26759        name: *const ::std::os::raw::c_char,
26760        pkey: *const EVP_PKEY,
26761        cert: *mut X509,
26762        chain: *const stack_st_X509,
26763        key_nid: ::std::os::raw::c_int,
26764        cert_nid: ::std::os::raw::c_int,
26765        iterations: ::std::os::raw::c_int,
26766        mac_iterations: ::std::os::raw::c_int,
26767        key_type: ::std::os::raw::c_int,
26768    ) -> *mut PKCS12;
26769}
26770extern "C" {
26771    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_new"]
26772    pub fn PKCS12_new() -> *mut PKCS12;
26773}
26774extern "C" {
26775    #[link_name = "\u{1}aws_lc_0_36_0_PKCS12_free"]
26776    pub fn PKCS12_free(p12: *mut PKCS12);
26777}
26778pub type poly1305_state = [u8; 512usize];
26779extern "C" {
26780    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_poly1305_init"]
26781    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
26782}
26783extern "C" {
26784    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_poly1305_update"]
26785    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
26786}
26787extern "C" {
26788    #[link_name = "\u{1}aws_lc_0_36_0_CRYPTO_poly1305_finish"]
26789    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
26790}
26791extern "C" {
26792    #[link_name = "\u{1}aws_lc_0_36_0_RAND_bytes"]
26793    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26794}
26795extern "C" {
26796    #[link_name = "\u{1}aws_lc_0_36_0_RAND_priv_bytes"]
26797    pub fn RAND_priv_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26798}
26799extern "C" {
26800    #[link_name = "\u{1}aws_lc_0_36_0_RAND_bytes_with_user_prediction_resistance"]
26801    pub fn RAND_bytes_with_user_prediction_resistance(
26802        out: *mut u8,
26803        out_len: usize,
26804        user_pred_resistance: *const u8,
26805    ) -> ::std::os::raw::c_int;
26806}
26807extern "C" {
26808    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
26809}
26810extern "C" {
26811    #[link_name = "\u{1}aws_lc_0_36_0_RAND_pseudo_bytes"]
26812    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26813}
26814extern "C" {
26815    #[link_name = "\u{1}aws_lc_0_36_0_RAND_seed"]
26816    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
26817}
26818extern "C" {
26819    #[link_name = "\u{1}aws_lc_0_36_0_RAND_load_file"]
26820    pub fn RAND_load_file(
26821        path: *const ::std::os::raw::c_char,
26822        num: ::std::os::raw::c_long,
26823    ) -> ::std::os::raw::c_int;
26824}
26825extern "C" {
26826    #[link_name = "\u{1}aws_lc_0_36_0_RAND_write_file"]
26827    pub fn RAND_write_file(file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26828}
26829extern "C" {
26830    #[link_name = "\u{1}aws_lc_0_36_0_RAND_file_name"]
26831    pub fn RAND_file_name(
26832        buf: *mut ::std::os::raw::c_char,
26833        num: usize,
26834    ) -> *const ::std::os::raw::c_char;
26835}
26836extern "C" {
26837    #[link_name = "\u{1}aws_lc_0_36_0_RAND_add"]
26838    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
26839}
26840extern "C" {
26841    #[link_name = "\u{1}aws_lc_0_36_0_RAND_egd"]
26842    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26843}
26844extern "C" {
26845    #[link_name = "\u{1}aws_lc_0_36_0_RAND_egd_bytes"]
26846    pub fn RAND_egd_bytes(
26847        arg1: *const ::std::os::raw::c_char,
26848        bytes: ::std::os::raw::c_int,
26849    ) -> ::std::os::raw::c_int;
26850}
26851extern "C" {
26852    #[link_name = "\u{1}aws_lc_0_36_0_RAND_poll"]
26853    pub fn RAND_poll() -> ::std::os::raw::c_int;
26854}
26855extern "C" {
26856    #[link_name = "\u{1}aws_lc_0_36_0_RAND_status"]
26857    pub fn RAND_status() -> ::std::os::raw::c_int;
26858}
26859extern "C" {
26860    #[link_name = "\u{1}aws_lc_0_36_0_RAND_cleanup"]
26861    pub fn RAND_cleanup();
26862}
26863#[repr(C)]
26864#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
26865pub struct rand_meth_st {
26866    pub seed: ::std::option::Option<
26867        unsafe extern "C" fn(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int),
26868    >,
26869    pub bytes: ::std::option::Option<
26870        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26871    >,
26872    pub cleanup: ::std::option::Option<unsafe extern "C" fn()>,
26873    pub add: ::std::option::Option<
26874        unsafe extern "C" fn(
26875            buf: *const ::std::os::raw::c_void,
26876            num: ::std::os::raw::c_int,
26877            entropy: f64,
26878        ),
26879    >,
26880    pub pseudorand: ::std::option::Option<
26881        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26882    >,
26883    pub status: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
26884}
26885#[test]
26886fn bindgen_test_layout_rand_meth_st() {
26887    const UNINIT: ::std::mem::MaybeUninit<rand_meth_st> = ::std::mem::MaybeUninit::uninit();
26888    let ptr = UNINIT.as_ptr();
26889    assert_eq!(
26890        ::std::mem::size_of::<rand_meth_st>(),
26891        48usize,
26892        "Size of rand_meth_st"
26893    );
26894    assert_eq!(
26895        ::std::mem::align_of::<rand_meth_st>(),
26896        8usize,
26897        "Alignment of rand_meth_st"
26898    );
26899    assert_eq!(
26900        unsafe { ::std::ptr::addr_of!((*ptr).seed) as usize - ptr as usize },
26901        0usize,
26902        "Offset of field: rand_meth_st::seed"
26903    );
26904    assert_eq!(
26905        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
26906        8usize,
26907        "Offset of field: rand_meth_st::bytes"
26908    );
26909    assert_eq!(
26910        unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize },
26911        16usize,
26912        "Offset of field: rand_meth_st::cleanup"
26913    );
26914    assert_eq!(
26915        unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize },
26916        24usize,
26917        "Offset of field: rand_meth_st::add"
26918    );
26919    assert_eq!(
26920        unsafe { ::std::ptr::addr_of!((*ptr).pseudorand) as usize - ptr as usize },
26921        32usize,
26922        "Offset of field: rand_meth_st::pseudorand"
26923    );
26924    assert_eq!(
26925        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
26926        40usize,
26927        "Offset of field: rand_meth_st::status"
26928    );
26929}
26930extern "C" {
26931    #[link_name = "\u{1}aws_lc_0_36_0_RAND_SSLeay"]
26932    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
26933}
26934extern "C" {
26935    #[link_name = "\u{1}aws_lc_0_36_0_RAND_OpenSSL"]
26936    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
26937}
26938extern "C" {
26939    #[link_name = "\u{1}aws_lc_0_36_0_RAND_get_rand_method"]
26940    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
26941}
26942extern "C" {
26943    #[link_name = "\u{1}aws_lc_0_36_0_RAND_set_rand_method"]
26944    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::std::os::raw::c_int;
26945}
26946extern "C" {
26947    #[link_name = "\u{1}aws_lc_0_36_0_RAND_keep_random_devices_open"]
26948    pub fn RAND_keep_random_devices_open(a: ::std::os::raw::c_int);
26949}
26950#[repr(C)]
26951#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26952pub struct rc4_key_st {
26953    pub x: u32,
26954    pub y: u32,
26955    pub data: [u32; 256usize],
26956}
26957#[test]
26958fn bindgen_test_layout_rc4_key_st() {
26959    const UNINIT: ::std::mem::MaybeUninit<rc4_key_st> = ::std::mem::MaybeUninit::uninit();
26960    let ptr = UNINIT.as_ptr();
26961    assert_eq!(
26962        ::std::mem::size_of::<rc4_key_st>(),
26963        1032usize,
26964        "Size of rc4_key_st"
26965    );
26966    assert_eq!(
26967        ::std::mem::align_of::<rc4_key_st>(),
26968        4usize,
26969        "Alignment of rc4_key_st"
26970    );
26971    assert_eq!(
26972        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
26973        0usize,
26974        "Offset of field: rc4_key_st::x"
26975    );
26976    assert_eq!(
26977        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
26978        4usize,
26979        "Offset of field: rc4_key_st::y"
26980    );
26981    assert_eq!(
26982        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
26983        8usize,
26984        "Offset of field: rc4_key_st::data"
26985    );
26986}
26987impl Default for rc4_key_st {
26988    fn default() -> Self {
26989        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
26990        unsafe {
26991            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
26992            s.assume_init()
26993        }
26994    }
26995}
26996extern "C" {
26997    #[link_name = "\u{1}aws_lc_0_36_0_RC4_set_key"]
26998    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::std::os::raw::c_uint, key: *const u8);
26999}
27000extern "C" {
27001    #[link_name = "\u{1}aws_lc_0_36_0_RC4"]
27002    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
27003}
27004extern "C" {
27005    #[link_name = "\u{1}aws_lc_0_36_0_RC4_options"]
27006    pub fn RC4_options() -> *const ::std::os::raw::c_char;
27007}
27008#[repr(C)]
27009#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27010pub struct RIPEMD160state_st {
27011    pub h: [u32; 5usize],
27012    pub Nl: u32,
27013    pub Nh: u32,
27014    pub data: [u8; 64usize],
27015    pub num: ::std::os::raw::c_uint,
27016}
27017#[test]
27018fn bindgen_test_layout_RIPEMD160state_st() {
27019    const UNINIT: ::std::mem::MaybeUninit<RIPEMD160state_st> = ::std::mem::MaybeUninit::uninit();
27020    let ptr = UNINIT.as_ptr();
27021    assert_eq!(
27022        ::std::mem::size_of::<RIPEMD160state_st>(),
27023        96usize,
27024        "Size of RIPEMD160state_st"
27025    );
27026    assert_eq!(
27027        ::std::mem::align_of::<RIPEMD160state_st>(),
27028        4usize,
27029        "Alignment of RIPEMD160state_st"
27030    );
27031    assert_eq!(
27032        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
27033        0usize,
27034        "Offset of field: RIPEMD160state_st::h"
27035    );
27036    assert_eq!(
27037        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
27038        20usize,
27039        "Offset of field: RIPEMD160state_st::Nl"
27040    );
27041    assert_eq!(
27042        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
27043        24usize,
27044        "Offset of field: RIPEMD160state_st::Nh"
27045    );
27046    assert_eq!(
27047        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27048        28usize,
27049        "Offset of field: RIPEMD160state_st::data"
27050    );
27051    assert_eq!(
27052        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
27053        92usize,
27054        "Offset of field: RIPEMD160state_st::num"
27055    );
27056}
27057impl Default for RIPEMD160state_st {
27058    fn default() -> Self {
27059        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27060        unsafe {
27061            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27062            s.assume_init()
27063        }
27064    }
27065}
27066extern "C" {
27067    #[link_name = "\u{1}aws_lc_0_36_0_RIPEMD160_Init"]
27068    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27069}
27070extern "C" {
27071    #[link_name = "\u{1}aws_lc_0_36_0_RIPEMD160_Update"]
27072    pub fn RIPEMD160_Update(
27073        ctx: *mut RIPEMD160_CTX,
27074        data: *const ::std::os::raw::c_void,
27075        len: usize,
27076    ) -> ::std::os::raw::c_int;
27077}
27078extern "C" {
27079    #[link_name = "\u{1}aws_lc_0_36_0_RIPEMD160_Final"]
27080    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27081}
27082extern "C" {
27083    #[link_name = "\u{1}aws_lc_0_36_0_RIPEMD160"]
27084    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
27085}
27086extern "C" {
27087    #[link_name = "\u{1}aws_lc_0_36_0_SIPHASH_24"]
27088    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
27089}
27090extern "C" {
27091    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_experiment_v1"]
27092    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27093}
27094extern "C" {
27095    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_experiment_v2_voprf"]
27096    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27097}
27098extern "C" {
27099    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_experiment_v2_pmb"]
27100    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27101}
27102extern "C" {
27103    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_pst_v1_voprf"]
27104    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27105}
27106extern "C" {
27107    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_pst_v1_pmb"]
27108    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27109}
27110#[repr(C)]
27111#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27112pub struct trust_token_st {
27113    pub data: *mut u8,
27114    pub len: usize,
27115}
27116#[test]
27117fn bindgen_test_layout_trust_token_st() {
27118    const UNINIT: ::std::mem::MaybeUninit<trust_token_st> = ::std::mem::MaybeUninit::uninit();
27119    let ptr = UNINIT.as_ptr();
27120    assert_eq!(
27121        ::std::mem::size_of::<trust_token_st>(),
27122        16usize,
27123        "Size of trust_token_st"
27124    );
27125    assert_eq!(
27126        ::std::mem::align_of::<trust_token_st>(),
27127        8usize,
27128        "Alignment of trust_token_st"
27129    );
27130    assert_eq!(
27131        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27132        0usize,
27133        "Offset of field: trust_token_st::data"
27134    );
27135    assert_eq!(
27136        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
27137        8usize,
27138        "Offset of field: trust_token_st::len"
27139    );
27140}
27141impl Default for trust_token_st {
27142    fn default() -> Self {
27143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27144        unsafe {
27145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27146            s.assume_init()
27147        }
27148    }
27149}
27150#[repr(C)]
27151#[derive(Debug, Copy, Clone)]
27152pub struct stack_st_TRUST_TOKEN {
27153    _unused: [u8; 0],
27154}
27155pub type sk_TRUST_TOKEN_free_func =
27156    ::std::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27157pub type sk_TRUST_TOKEN_copy_func =
27158    ::std::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27159pub type sk_TRUST_TOKEN_cmp_func = ::std::option::Option<
27160    unsafe extern "C" fn(
27161        arg1: *const *const TRUST_TOKEN,
27162        arg2: *const *const TRUST_TOKEN,
27163    ) -> ::std::os::raw::c_int,
27164>;
27165pub type sk_TRUST_TOKEN_delete_if_func = ::std::option::Option<
27166    unsafe extern "C" fn(
27167        arg1: *mut TRUST_TOKEN,
27168        arg2: *mut ::std::os::raw::c_void,
27169    ) -> ::std::os::raw::c_int,
27170>;
27171extern "C" {
27172    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_new"]
27173    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27174}
27175extern "C" {
27176    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_free"]
27177    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27178}
27179extern "C" {
27180    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_generate_key"]
27181    pub fn TRUST_TOKEN_generate_key(
27182        method: *const TRUST_TOKEN_METHOD,
27183        out_priv_key: *mut u8,
27184        out_priv_key_len: *mut usize,
27185        max_priv_key_len: usize,
27186        out_pub_key: *mut u8,
27187        out_pub_key_len: *mut usize,
27188        max_pub_key_len: usize,
27189        id: u32,
27190    ) -> ::std::os::raw::c_int;
27191}
27192extern "C" {
27193    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_derive_key_from_secret"]
27194    pub fn TRUST_TOKEN_derive_key_from_secret(
27195        method: *const TRUST_TOKEN_METHOD,
27196        out_priv_key: *mut u8,
27197        out_priv_key_len: *mut usize,
27198        max_priv_key_len: usize,
27199        out_pub_key: *mut u8,
27200        out_pub_key_len: *mut usize,
27201        max_pub_key_len: usize,
27202        id: u32,
27203        secret: *const u8,
27204        secret_len: usize,
27205    ) -> ::std::os::raw::c_int;
27206}
27207extern "C" {
27208    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_new"]
27209    pub fn TRUST_TOKEN_CLIENT_new(
27210        method: *const TRUST_TOKEN_METHOD,
27211        max_batchsize: usize,
27212    ) -> *mut TRUST_TOKEN_CLIENT;
27213}
27214extern "C" {
27215    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_free"]
27216    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27217}
27218extern "C" {
27219    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_add_key"]
27220    pub fn TRUST_TOKEN_CLIENT_add_key(
27221        ctx: *mut TRUST_TOKEN_CLIENT,
27222        out_key_index: *mut usize,
27223        key: *const u8,
27224        key_len: usize,
27225    ) -> ::std::os::raw::c_int;
27226}
27227extern "C" {
27228    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_set_srr_key"]
27229    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27230        ctx: *mut TRUST_TOKEN_CLIENT,
27231        key: *mut EVP_PKEY,
27232    ) -> ::std::os::raw::c_int;
27233}
27234extern "C" {
27235    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_begin_issuance"]
27236    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27237        ctx: *mut TRUST_TOKEN_CLIENT,
27238        out: *mut *mut u8,
27239        out_len: *mut usize,
27240        count: usize,
27241    ) -> ::std::os::raw::c_int;
27242}
27243extern "C" {
27244    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_begin_issuance_over_message"]
27245    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27246        ctx: *mut TRUST_TOKEN_CLIENT,
27247        out: *mut *mut u8,
27248        out_len: *mut usize,
27249        count: usize,
27250        msg: *const u8,
27251        msg_len: usize,
27252    ) -> ::std::os::raw::c_int;
27253}
27254extern "C" {
27255    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_finish_issuance"]
27256    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27257        ctx: *mut TRUST_TOKEN_CLIENT,
27258        out_key_index: *mut usize,
27259        response: *const u8,
27260        response_len: usize,
27261    ) -> *mut stack_st_TRUST_TOKEN;
27262}
27263extern "C" {
27264    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_begin_redemption"]
27265    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27266        ctx: *mut TRUST_TOKEN_CLIENT,
27267        out: *mut *mut u8,
27268        out_len: *mut usize,
27269        token: *const TRUST_TOKEN,
27270        data: *const u8,
27271        data_len: usize,
27272        time: u64,
27273    ) -> ::std::os::raw::c_int;
27274}
27275extern "C" {
27276    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_CLIENT_finish_redemption"]
27277    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27278        ctx: *mut TRUST_TOKEN_CLIENT,
27279        out_rr: *mut *mut u8,
27280        out_rr_len: *mut usize,
27281        out_sig: *mut *mut u8,
27282        out_sig_len: *mut usize,
27283        response: *const u8,
27284        response_len: usize,
27285    ) -> ::std::os::raw::c_int;
27286}
27287extern "C" {
27288    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_new"]
27289    pub fn TRUST_TOKEN_ISSUER_new(
27290        method: *const TRUST_TOKEN_METHOD,
27291        max_batchsize: usize,
27292    ) -> *mut TRUST_TOKEN_ISSUER;
27293}
27294extern "C" {
27295    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_free"]
27296    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27297}
27298extern "C" {
27299    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_add_key"]
27300    pub fn TRUST_TOKEN_ISSUER_add_key(
27301        ctx: *mut TRUST_TOKEN_ISSUER,
27302        key: *const u8,
27303        key_len: usize,
27304    ) -> ::std::os::raw::c_int;
27305}
27306extern "C" {
27307    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_set_srr_key"]
27308    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27309        ctx: *mut TRUST_TOKEN_ISSUER,
27310        key: *mut EVP_PKEY,
27311    ) -> ::std::os::raw::c_int;
27312}
27313extern "C" {
27314    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_set_metadata_key"]
27315    pub fn TRUST_TOKEN_ISSUER_set_metadata_key(
27316        ctx: *mut TRUST_TOKEN_ISSUER,
27317        key: *const u8,
27318        len: usize,
27319    ) -> ::std::os::raw::c_int;
27320}
27321extern "C" {
27322    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_issue"]
27323    pub fn TRUST_TOKEN_ISSUER_issue(
27324        ctx: *const TRUST_TOKEN_ISSUER,
27325        out: *mut *mut u8,
27326        out_len: *mut usize,
27327        out_tokens_issued: *mut usize,
27328        request: *const u8,
27329        request_len: usize,
27330        public_metadata: u32,
27331        private_metadata: u8,
27332        max_issuance: usize,
27333    ) -> ::std::os::raw::c_int;
27334}
27335extern "C" {
27336    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_redeem"]
27337    pub fn TRUST_TOKEN_ISSUER_redeem(
27338        ctx: *const TRUST_TOKEN_ISSUER,
27339        out_public: *mut u32,
27340        out_private: *mut u8,
27341        out_token: *mut *mut TRUST_TOKEN,
27342        out_client_data: *mut *mut u8,
27343        out_client_data_len: *mut usize,
27344        request: *const u8,
27345        request_len: usize,
27346    ) -> ::std::os::raw::c_int;
27347}
27348extern "C" {
27349    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_ISSUER_redeem_over_message"]
27350    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27351        ctx: *const TRUST_TOKEN_ISSUER,
27352        out_public: *mut u32,
27353        out_private: *mut u8,
27354        out_token: *mut *mut TRUST_TOKEN,
27355        out_client_data: *mut *mut u8,
27356        out_client_data_len: *mut usize,
27357        request: *const u8,
27358        request_len: usize,
27359        msg: *const u8,
27360        msg_len: usize,
27361    ) -> ::std::os::raw::c_int;
27362}
27363extern "C" {
27364    #[link_name = "\u{1}aws_lc_0_36_0_TRUST_TOKEN_decode_private_metadata"]
27365    pub fn TRUST_TOKEN_decode_private_metadata(
27366        method: *const TRUST_TOKEN_METHOD,
27367        out_value: *mut u8,
27368        key: *const u8,
27369        key_len: usize,
27370        nonce: *const u8,
27371        nonce_len: usize,
27372        encrypted_bit: u8,
27373    ) -> ::std::os::raw::c_int;
27374}
27375extern "C" {
27376    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_keygen_deterministic"]
27377    pub fn EVP_PKEY_keygen_deterministic(
27378        ctx: *mut EVP_PKEY_CTX,
27379        out_pkey: *mut *mut EVP_PKEY,
27380        seed: *const u8,
27381        seed_len: *mut usize,
27382    ) -> ::std::os::raw::c_int;
27383}
27384extern "C" {
27385    #[link_name = "\u{1}aws_lc_0_36_0_EVP_PKEY_encapsulate_deterministic"]
27386    pub fn EVP_PKEY_encapsulate_deterministic(
27387        ctx: *mut EVP_PKEY_CTX,
27388        ciphertext: *mut u8,
27389        ciphertext_len: *mut usize,
27390        shared_secret: *mut u8,
27391        shared_secret_len: *mut usize,
27392        seed: *const u8,
27393        seed_len: *mut usize,
27394    ) -> ::std::os::raw::c_int;
27395}
27396extern "C" {
27397    #[link_name = "\u{1}aws_lc_0_36_0_ERR_GET_LIB_RUST"]
27398    pub fn ERR_GET_LIB_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27399}
27400extern "C" {
27401    #[link_name = "\u{1}aws_lc_0_36_0_ERR_GET_REASON_RUST"]
27402    pub fn ERR_GET_REASON_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27403}
27404extern "C" {
27405    #[link_name = "\u{1}aws_lc_0_36_0_ERR_GET_FUNC_RUST"]
27406    pub fn ERR_GET_FUNC_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27407}
27408pub type __builtin_va_list = [__va_list_tag; 1usize];
27409#[repr(C)]
27410#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27411pub struct __va_list_tag {
27412    pub gp_offset: ::std::os::raw::c_uint,
27413    pub fp_offset: ::std::os::raw::c_uint,
27414    pub overflow_arg_area: *mut ::std::os::raw::c_void,
27415    pub reg_save_area: *mut ::std::os::raw::c_void,
27416}
27417#[test]
27418fn bindgen_test_layout___va_list_tag() {
27419    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
27420    let ptr = UNINIT.as_ptr();
27421    assert_eq!(
27422        ::std::mem::size_of::<__va_list_tag>(),
27423        24usize,
27424        "Size of __va_list_tag"
27425    );
27426    assert_eq!(
27427        ::std::mem::align_of::<__va_list_tag>(),
27428        8usize,
27429        "Alignment of __va_list_tag"
27430    );
27431    assert_eq!(
27432        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
27433        0usize,
27434        "Offset of field: __va_list_tag::gp_offset"
27435    );
27436    assert_eq!(
27437        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
27438        4usize,
27439        "Offset of field: __va_list_tag::fp_offset"
27440    );
27441    assert_eq!(
27442        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
27443        8usize,
27444        "Offset of field: __va_list_tag::overflow_arg_area"
27445    );
27446    assert_eq!(
27447        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
27448        16usize,
27449        "Offset of field: __va_list_tag::reg_save_area"
27450    );
27451}
27452impl Default for __va_list_tag {
27453    fn default() -> Self {
27454        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27455        unsafe {
27456            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27457            s.assume_init()
27458        }
27459    }
27460}
27461#[repr(C)]
27462#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
27463pub struct CRYPTO_dynlock_value {
27464    pub _address: u8,
27465}