Skip to main content

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.69.0\0";
179pub const AES_ENCRYPT: i32 = 1;
180pub const AES_DECRYPT: i32 = 0;
181pub const AES_MAXNR: i32 = 14;
182pub const AES_BLOCK_SIZE: i32 = 16;
183pub const SHA_CBLOCK: i32 = 64;
184pub const SHA_DIGEST_LENGTH: i32 = 20;
185pub const SHA224_CBLOCK: i32 = 64;
186pub const SHA224_DIGEST_LENGTH: i32 = 28;
187pub const SHA256_CBLOCK: i32 = 64;
188pub const SHA256_DIGEST_LENGTH: i32 = 32;
189pub const SHA384_CBLOCK: i32 = 128;
190pub const SHA384_DIGEST_LENGTH: i32 = 48;
191pub const SHA512_CBLOCK: i32 = 128;
192pub const SHA512_DIGEST_LENGTH: i32 = 64;
193pub const SHA512_224_DIGEST_LENGTH: i32 = 28;
194pub const SHA512_256_DIGEST_LENGTH: i32 = 32;
195pub const CRYPTO_LOCK: i32 = 1;
196pub const CRYPTO_UNLOCK: i32 = 2;
197pub const CRYPTO_READ: i32 = 4;
198pub const CRYPTO_WRITE: i32 = 8;
199pub const OPENSSL_VERSION_TEXT: &[u8; 42] = b"OpenSSL 1.1.1 (compatible; AWS-LC 1.69.0)\0";
200pub const OPENSSL_VERSION: i32 = 0;
201pub const OPENSSL_CFLAGS: i32 = 1;
202pub const OPENSSL_BUILT_ON: i32 = 2;
203pub const OPENSSL_PLATFORM: i32 = 3;
204pub const OPENSSL_DIR: i32 = 4;
205pub const SSLEAY_VERSION: i32 = 0;
206pub const SSLEAY_CFLAGS: i32 = 1;
207pub const SSLEAY_BUILT_ON: i32 = 2;
208pub const SSLEAY_PLATFORM: i32 = 3;
209pub const SSLEAY_DIR: i32 = 4;
210pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: i32 = 0;
211pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: i32 = 0;
212pub const OPENSSL_INIT_ADD_ALL_CIPHERS: i32 = 0;
213pub const OPENSSL_INIT_ADD_ALL_DIGESTS: i32 = 0;
214pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: i32 = 0;
215pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: i32 = 0;
216pub const OPENSSL_INIT_LOAD_CONFIG: i32 = 0;
217pub const OPENSSL_INIT_NO_LOAD_CONFIG: i32 = 0;
218pub const OPENSSL_INIT_ENGINE_ALL_BUILTIN: i32 = 0;
219pub const CRYPTO_MEM_CHECK_ON: i32 = 0;
220pub const ERR_FLAG_STRING: i32 = 1;
221pub const ERR_FLAG_MALLOCED: i32 = 2;
222pub const ERR_LIB_NONE: i32 = 1;
223pub const ERR_LIB_SYS: i32 = 2;
224pub const ERR_LIB_BN: i32 = 3;
225pub const ERR_LIB_RSA: i32 = 4;
226pub const ERR_LIB_DH: i32 = 5;
227pub const ERR_LIB_EVP: i32 = 6;
228pub const ERR_LIB_BUF: i32 = 7;
229pub const ERR_LIB_OBJ: i32 = 8;
230pub const ERR_LIB_PEM: i32 = 9;
231pub const ERR_LIB_DSA: i32 = 10;
232pub const ERR_LIB_X509: i32 = 11;
233pub const ERR_LIB_ASN1: i32 = 12;
234pub const ERR_LIB_CONF: i32 = 13;
235pub const ERR_LIB_CRYPTO: i32 = 14;
236pub const ERR_LIB_EC: i32 = 15;
237pub const ERR_LIB_SSL: i32 = 16;
238pub const ERR_LIB_BIO: i32 = 17;
239pub const ERR_LIB_PKCS7: i32 = 18;
240pub const ERR_LIB_PKCS8: i32 = 19;
241pub const ERR_LIB_X509V3: i32 = 20;
242pub const ERR_LIB_RAND: i32 = 21;
243pub const ERR_LIB_ENGINE: i32 = 22;
244pub const ERR_LIB_OCSP: i32 = 23;
245pub const ERR_LIB_UI: i32 = 24;
246pub const ERR_LIB_COMP: i32 = 25;
247pub const ERR_LIB_ECDSA: i32 = 26;
248pub const ERR_LIB_ECDH: i32 = 27;
249pub const ERR_LIB_HMAC: i32 = 28;
250pub const ERR_LIB_DIGEST: i32 = 29;
251pub const ERR_LIB_CIPHER: i32 = 30;
252pub const ERR_LIB_HKDF: i32 = 31;
253pub const ERR_LIB_TRUST_TOKEN: i32 = 32;
254pub const ERR_LIB_USER: i32 = 33;
255pub const ERR_NUM_LIBS: i32 = 34;
256pub const ERR_LIB_PKCS12: i32 = 35;
257pub const ERR_LIB_DSO: i32 = 36;
258pub const ERR_LIB_OSSL_STORE: i32 = 37;
259pub const ERR_LIB_FIPS: i32 = 38;
260pub const ERR_LIB_CMS: i32 = 39;
261pub const ERR_LIB_TS: i32 = 40;
262pub const ERR_LIB_CT: i32 = 41;
263pub const ERR_LIB_ASYNC: i32 = 42;
264pub const ERR_LIB_KDF: i32 = 43;
265pub const ERR_LIB_SM2: i32 = 44;
266pub const ERR_R_SYS_LIB: i32 = 2;
267pub const ERR_R_BN_LIB: i32 = 3;
268pub const ERR_R_RSA_LIB: i32 = 4;
269pub const ERR_R_DH_LIB: i32 = 5;
270pub const ERR_R_EVP_LIB: i32 = 6;
271pub const ERR_R_BUF_LIB: i32 = 7;
272pub const ERR_R_OBJ_LIB: i32 = 8;
273pub const ERR_R_PEM_LIB: i32 = 9;
274pub const ERR_R_DSA_LIB: i32 = 10;
275pub const ERR_R_X509_LIB: i32 = 11;
276pub const ERR_R_ASN1_LIB: i32 = 12;
277pub const ERR_R_CONF_LIB: i32 = 13;
278pub const ERR_R_CRYPTO_LIB: i32 = 14;
279pub const ERR_R_EC_LIB: i32 = 15;
280pub const ERR_R_SSL_LIB: i32 = 16;
281pub const ERR_R_BIO_LIB: i32 = 17;
282pub const ERR_R_PKCS7_LIB: i32 = 18;
283pub const ERR_R_PKCS8_LIB: i32 = 19;
284pub const ERR_R_X509V3_LIB: i32 = 20;
285pub const ERR_R_RAND_LIB: i32 = 21;
286pub const ERR_R_DSO_LIB: i32 = 36;
287pub const ERR_R_ENGINE_LIB: i32 = 22;
288pub const ERR_R_OCSP_LIB: i32 = 23;
289pub const ERR_R_UI_LIB: i32 = 24;
290pub const ERR_R_COMP_LIB: i32 = 25;
291pub const ERR_R_ECDSA_LIB: i32 = 26;
292pub const ERR_R_ECDH_LIB: i32 = 27;
293pub const ERR_R_FIPS_LIB: i32 = 38;
294pub const ERR_R_CMS_LIB: i32 = 39;
295pub const ERR_R_TS_LIB: i32 = 40;
296pub const ERR_R_HMAC_LIB: i32 = 28;
297pub const ERR_R_USER_LIB: i32 = 33;
298pub const ERR_R_DIGEST_LIB: i32 = 29;
299pub const ERR_R_CIPHER_LIB: i32 = 30;
300pub const ERR_R_HKDF_LIB: i32 = 31;
301pub const ERR_R_TRUST_TOKEN_LIB: i32 = 32;
302pub const ERR_R_FATAL: i32 = 64;
303pub const ERR_R_MALLOC_FAILURE: i32 = 65;
304pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: i32 = 66;
305pub const ERR_R_PASSED_NULL_PARAMETER: i32 = 67;
306pub const ERR_R_INTERNAL_ERROR: i32 = 68;
307pub const ERR_R_OVERFLOW: i32 = 69;
308pub const ERR_ERROR_STRING_BUF_LEN: i32 = 120;
309pub const ERR_TXT_STRING: i32 = 1;
310pub const ERR_TXT_MALLOCED: i32 = 2;
311pub const ERR_NUM_ERRORS: i32 = 16;
312pub const BIO_RR_CONNECT: i32 = 2;
313pub const BIO_RR_ACCEPT: i32 = 3;
314pub const BIO_CB_FREE: i32 = 1;
315pub const BIO_CB_READ: i32 = 2;
316pub const BIO_CB_WRITE: i32 = 3;
317pub const BIO_CB_PUTS: i32 = 4;
318pub const BIO_CB_GETS: i32 = 5;
319pub const BIO_CB_CTRL: i32 = 6;
320pub const BIO_CB_RETURN: i32 = 128;
321pub const BIO_NOCLOSE: i32 = 0;
322pub const BIO_CLOSE: i32 = 1;
323pub const BIO_FP_TEXT: i32 = 16;
324pub const BIO_CTRL_DGRAM_CONNECT: i32 = 31;
325pub const BIO_CTRL_DGRAM_SET_CONNECTED: i32 = 32;
326pub const BIO_CTRL_DGRAM_SET_RECV_TIMEOUT: i32 = 33;
327pub const BIO_CTRL_DGRAM_GET_RECV_TIMEOUT: i32 = 34;
328pub const BIO_CTRL_DGRAM_SET_SEND_TIMEOUT: i32 = 35;
329pub const BIO_CTRL_DGRAM_GET_SEND_TIMEOUT: i32 = 36;
330pub const BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP: i32 = 37;
331pub const BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP: i32 = 38;
332pub const BIO_CTRL_DGRAM_QUERY_MTU: i32 = 40;
333pub const BIO_CTRL_DGRAM_GET_MTU: i32 = 41;
334pub const BIO_CTRL_DGRAM_SET_MTU: i32 = 42;
335pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: i32 = 43;
336pub const BIO_CTRL_DGRAM_SET_PEER: i32 = 44;
337pub const BIO_CTRL_DGRAM_GET_PEER: i32 = 46;
338pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: i32 = 47;
339pub const BIO_CTRL_RESET: i32 = 1;
340pub const BIO_CTRL_EOF: i32 = 2;
341pub const BIO_CTRL_INFO: i32 = 3;
342pub const BIO_CTRL_GET_CLOSE: i32 = 8;
343pub const BIO_CTRL_SET_CLOSE: i32 = 9;
344pub const BIO_CTRL_PENDING: i32 = 10;
345pub const BIO_CTRL_FLUSH: i32 = 11;
346pub const BIO_CTRL_WPENDING: i32 = 13;
347pub const BIO_CTRL_SET_CALLBACK: i32 = 14;
348pub const BIO_CTRL_GET_CALLBACK: i32 = 15;
349pub const BIO_CTRL_SET: i32 = 4;
350pub const BIO_CTRL_GET: i32 = 5;
351pub const BIO_CTRL_PUSH: i32 = 6;
352pub const BIO_CTRL_POP: i32 = 7;
353pub const BIO_CTRL_DUP: i32 = 12;
354pub const BIO_CTRL_SET_FILENAME: i32 = 30;
355pub const BIO_FLAGS_READ: i32 = 1;
356pub const BIO_FLAGS_WRITE: i32 = 2;
357pub const BIO_FLAGS_IO_SPECIAL: i32 = 4;
358pub const BIO_FLAGS_RWS: i32 = 7;
359pub const BIO_FLAGS_SHOULD_RETRY: i32 = 8;
360pub const BIO_FLAGS_BASE64_NO_NL: i32 = 256;
361pub const BIO_FLAGS_MEM_RDONLY: i32 = 512;
362pub const BIO_TYPE_DESCRIPTOR: i32 = 256;
363pub const BIO_TYPE_FILTER: i32 = 512;
364pub const BIO_TYPE_SOURCE_SINK: i32 = 1024;
365pub const BIO_TYPE_NONE: i32 = 0;
366pub const BIO_TYPE_MEM: i32 = 1025;
367pub const BIO_TYPE_FILE: i32 = 1026;
368pub const BIO_TYPE_FD: i32 = 1284;
369pub const BIO_TYPE_SOCKET: i32 = 1285;
370pub const BIO_TYPE_NULL: i32 = 1030;
371pub const BIO_TYPE_SSL: i32 = 519;
372pub const BIO_TYPE_MD: i32 = 520;
373pub const BIO_TYPE_BUFFER: i32 = 521;
374pub const BIO_TYPE_CIPHER: i32 = 522;
375pub const BIO_TYPE_BASE64: i32 = 523;
376pub const BIO_TYPE_CONNECT: i32 = 1292;
377pub const BIO_TYPE_ACCEPT: i32 = 1293;
378pub const BIO_TYPE_PROXY_CLIENT: i32 = 526;
379pub const BIO_TYPE_PROXY_SERVER: i32 = 527;
380pub const BIO_TYPE_NBIO_TEST: i32 = 528;
381pub const BIO_TYPE_NULL_FILTER: i32 = 529;
382pub const BIO_TYPE_BER: i32 = 530;
383pub const BIO_TYPE_BIO: i32 = 1043;
384pub const BIO_TYPE_LINEBUFFER: i32 = 532;
385pub const BIO_TYPE_DGRAM: i32 = 1301;
386pub const BIO_TYPE_ASN1: i32 = 534;
387pub const BIO_TYPE_COMP: i32 = 535;
388pub const BIO_TYPE_START: i32 = 128;
389pub const BIO_C_SET_CONNECT: i32 = 100;
390pub const BIO_C_DO_STATE_MACHINE: i32 = 101;
391pub const BIO_C_SET_NBIO: i32 = 102;
392pub const BIO_C_SET_PROXY_PARAM: i32 = 103;
393pub const BIO_C_SET_FD: i32 = 104;
394pub const BIO_C_GET_FD: i32 = 105;
395pub const BIO_C_SET_FILE_PTR: i32 = 106;
396pub const BIO_C_GET_FILE_PTR: i32 = 107;
397pub const BIO_C_SET_FILENAME: i32 = 108;
398pub const BIO_C_SET_SSL: i32 = 109;
399pub const BIO_C_GET_SSL: i32 = 110;
400pub const BIO_C_SET_MD: i32 = 111;
401pub const BIO_C_GET_MD: i32 = 112;
402pub const BIO_C_GET_CIPHER_STATUS: i32 = 113;
403pub const BIO_C_SET_BUF_MEM: i32 = 114;
404pub const BIO_C_GET_BUF_MEM_PTR: i32 = 115;
405pub const BIO_C_GET_BUFF_NUM_LINES: i32 = 116;
406pub const BIO_C_SET_BUFF_SIZE: i32 = 117;
407pub const BIO_C_SET_ACCEPT: i32 = 118;
408pub const BIO_C_SSL_MODE: i32 = 119;
409pub const BIO_C_GET_MD_CTX: i32 = 120;
410pub const BIO_C_GET_PROXY_PARAM: i32 = 121;
411pub const BIO_C_SET_BUFF_READ_DATA: i32 = 122;
412pub const BIO_C_GET_ACCEPT: i32 = 124;
413pub const BIO_C_FILE_SEEK: i32 = 128;
414pub const BIO_C_GET_CIPHER_CTX: i32 = 129;
415pub const BIO_C_SET_BUF_MEM_EOF_RETURN: i32 = 130;
416pub const BIO_C_SET_BIND_MODE: i32 = 131;
417pub const BIO_C_GET_BIND_MODE: i32 = 132;
418pub const BIO_C_FILE_TELL: i32 = 133;
419pub const BIO_C_GET_SOCKS: i32 = 134;
420pub const BIO_C_SET_SOCKS: i32 = 135;
421pub const BIO_C_SET_WRITE_BUF_SIZE: i32 = 136;
422pub const BIO_C_GET_WRITE_BUF_SIZE: i32 = 137;
423pub const BIO_C_GET_WRITE_GUARANTEE: i32 = 140;
424pub const BIO_C_GET_READ_REQUEST: i32 = 141;
425pub const BIO_C_SHUTDOWN_WR: i32 = 142;
426pub const BIO_C_NREAD0: i32 = 143;
427pub const BIO_C_NREAD: i32 = 144;
428pub const BIO_C_NWRITE0: i32 = 145;
429pub const BIO_C_NWRITE: i32 = 146;
430pub const BIO_C_RESET_READ_REQUEST: i32 = 147;
431pub const BIO_C_SET_MD_CTX: i32 = 148;
432pub const BIO_C_SET_PREFIX: i32 = 149;
433pub const BIO_C_GET_PREFIX: i32 = 150;
434pub const BIO_C_SET_SUFFIX: i32 = 151;
435pub const BIO_C_GET_SUFFIX: i32 = 152;
436pub const BIO_C_SET_EX_ARG: i32 = 153;
437pub const BIO_C_GET_EX_ARG: i32 = 154;
438pub const BIO_R_BAD_FOPEN_MODE: i32 = 100;
439pub const BIO_R_BROKEN_PIPE: i32 = 101;
440pub const BIO_R_CONNECT_ERROR: i32 = 102;
441pub const BIO_R_ERROR_SETTING_NBIO: i32 = 103;
442pub const BIO_R_INVALID_ARGUMENT: i32 = 104;
443pub const BIO_R_IN_USE: i32 = 105;
444pub const BIO_R_KEEPALIVE: i32 = 106;
445pub const BIO_R_NBIO_CONNECT_ERROR: i32 = 107;
446pub const BIO_R_NO_HOSTNAME_SPECIFIED: i32 = 108;
447pub const BIO_R_NO_PORT_SPECIFIED: i32 = 109;
448pub const BIO_R_NO_SUCH_FILE: i32 = 110;
449pub const BIO_R_NULL_PARAMETER: i32 = 111;
450pub const BIO_R_SYS_LIB: i32 = 112;
451pub const BIO_R_UNABLE_TO_CREATE_SOCKET: i32 = 113;
452pub const BIO_R_UNINITIALIZED: i32 = 114;
453pub const BIO_R_UNSUPPORTED_METHOD: i32 = 115;
454pub const BIO_R_WRITE_TO_READ_ONLY_BIO: i32 = 116;
455pub const BN_BITS2: i32 = 64;
456pub const BN_DEC_FMT1: &[u8; 4] = b"%lu\0";
457pub const BN_HEX_FMT1: &[u8; 4] = b"%lx\0";
458pub const BN_HEX_FMT2: &[u8; 7] = b"%016lx\0";
459pub const BN_RAND_TOP_ANY: i32 = -1;
460pub const BN_RAND_TOP_ONE: i32 = 0;
461pub const BN_RAND_TOP_TWO: i32 = 1;
462pub const BN_RAND_BOTTOM_ANY: i32 = 0;
463pub const BN_RAND_BOTTOM_ODD: i32 = 1;
464pub const BN_GENCB_GENERATED: i32 = 0;
465pub const BN_GENCB_PRIME_TEST: i32 = 1;
466pub const BN_prime_checks_for_validation: i32 = 64;
467pub const BN_prime_checks_for_generation: i32 = 0;
468pub const BN_prime_checks: i32 = 64;
469pub const BN_FLG_MALLOCED: i32 = 1;
470pub const BN_FLG_STATIC_DATA: i32 = 2;
471pub const BN_R_ARG2_LT_ARG3: i32 = 100;
472pub const BN_R_BAD_RECIPROCAL: i32 = 101;
473pub const BN_R_BIGNUM_TOO_LONG: i32 = 102;
474pub const BN_R_BITS_TOO_SMALL: i32 = 103;
475pub const BN_R_CALLED_WITH_EVEN_MODULUS: i32 = 104;
476pub const BN_R_DIV_BY_ZERO: i32 = 105;
477pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: i32 = 106;
478pub const BN_R_INPUT_NOT_REDUCED: i32 = 107;
479pub const BN_R_INVALID_RANGE: i32 = 108;
480pub const BN_R_NEGATIVE_NUMBER: i32 = 109;
481pub const BN_R_NOT_A_SQUARE: i32 = 110;
482pub const BN_R_NOT_INITIALIZED: i32 = 111;
483pub const BN_R_NO_INVERSE: i32 = 112;
484pub const BN_R_PRIVATE_KEY_TOO_LARGE: i32 = 113;
485pub const BN_R_P_IS_NOT_PRIME: i32 = 114;
486pub const BN_R_TOO_MANY_ITERATIONS: i32 = 115;
487pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: i32 = 116;
488pub const BN_R_BAD_ENCODING: i32 = 117;
489pub const BN_R_ENCODE_ERROR: i32 = 118;
490pub const BN_R_INVALID_INPUT: i32 = 119;
491pub const BN_F_BN_GENERATE_PRIME_EX: i32 = 0;
492pub const V_ASN1_UNIVERSAL: i32 = 0;
493pub const V_ASN1_APPLICATION: i32 = 64;
494pub const V_ASN1_CONTEXT_SPECIFIC: i32 = 128;
495pub const V_ASN1_PRIVATE: i32 = 192;
496pub const V_ASN1_CONSTRUCTED: i32 = 32;
497pub const V_ASN1_PRIMITIVE_TAG: i32 = 31;
498pub const V_ASN1_MAX_UNIVERSAL: i32 = 255;
499pub const V_ASN1_UNDEF: i32 = -1;
500pub const V_ASN1_OTHER: i32 = -3;
501pub const V_ASN1_ANY: i32 = -4;
502pub const V_ASN1_EOC: i32 = 0;
503pub const V_ASN1_BOOLEAN: i32 = 1;
504pub const V_ASN1_INTEGER: i32 = 2;
505pub const V_ASN1_BIT_STRING: i32 = 3;
506pub const V_ASN1_OCTET_STRING: i32 = 4;
507pub const V_ASN1_NULL: i32 = 5;
508pub const V_ASN1_OBJECT: i32 = 6;
509pub const V_ASN1_OBJECT_DESCRIPTOR: i32 = 7;
510pub const V_ASN1_EXTERNAL: i32 = 8;
511pub const V_ASN1_REAL: i32 = 9;
512pub const V_ASN1_ENUMERATED: i32 = 10;
513pub const V_ASN1_UTF8STRING: i32 = 12;
514pub const V_ASN1_SEQUENCE: i32 = 16;
515pub const V_ASN1_SET: i32 = 17;
516pub const V_ASN1_NUMERICSTRING: i32 = 18;
517pub const V_ASN1_PRINTABLESTRING: i32 = 19;
518pub const V_ASN1_T61STRING: i32 = 20;
519pub const V_ASN1_TELETEXSTRING: i32 = 20;
520pub const V_ASN1_VIDEOTEXSTRING: i32 = 21;
521pub const V_ASN1_IA5STRING: i32 = 22;
522pub const V_ASN1_UTCTIME: i32 = 23;
523pub const V_ASN1_GENERALIZEDTIME: i32 = 24;
524pub const V_ASN1_GRAPHICSTRING: i32 = 25;
525pub const V_ASN1_ISO64STRING: i32 = 26;
526pub const V_ASN1_VISIBLESTRING: i32 = 26;
527pub const V_ASN1_GENERALSTRING: i32 = 27;
528pub const V_ASN1_UNIVERSALSTRING: i32 = 28;
529pub const V_ASN1_BMPSTRING: i32 = 30;
530pub const V_ASN1_NEG: i32 = 256;
531pub const V_ASN1_NEG_INTEGER: i32 = 258;
532pub const V_ASN1_NEG_ENUMERATED: i32 = 266;
533pub const B_ASN1_NUMERICSTRING: i32 = 1;
534pub const B_ASN1_PRINTABLESTRING: i32 = 2;
535pub const B_ASN1_T61STRING: i32 = 4;
536pub const B_ASN1_TELETEXSTRING: i32 = 4;
537pub const B_ASN1_VIDEOTEXSTRING: i32 = 8;
538pub const B_ASN1_IA5STRING: i32 = 16;
539pub const B_ASN1_GRAPHICSTRING: i32 = 32;
540pub const B_ASN1_ISO64STRING: i32 = 64;
541pub const B_ASN1_VISIBLESTRING: i32 = 64;
542pub const B_ASN1_GENERALSTRING: i32 = 128;
543pub const B_ASN1_UNIVERSALSTRING: i32 = 256;
544pub const B_ASN1_OCTET_STRING: i32 = 512;
545pub const B_ASN1_BIT_STRING: i32 = 1024;
546pub const B_ASN1_BMPSTRING: i32 = 2048;
547pub const B_ASN1_UNKNOWN: i32 = 4096;
548pub const B_ASN1_UTF8STRING: i32 = 8192;
549pub const B_ASN1_UTCTIME: i32 = 16384;
550pub const B_ASN1_GENERALIZEDTIME: i32 = 32768;
551pub const B_ASN1_SEQUENCE: i32 = 65536;
552pub const ASN1_BOOLEAN_FALSE: i32 = 0;
553pub const ASN1_BOOLEAN_TRUE: i32 = 255;
554pub const ASN1_BOOLEAN_NONE: i32 = -1;
555pub const ASN1_STRING_FLAG_BITS_LEFT: i32 = 8;
556pub const MBSTRING_FLAG: i32 = 4096;
557pub const MBSTRING_UTF8: i32 = 4096;
558pub const MBSTRING_ASC: i32 = 4097;
559pub const MBSTRING_BMP: i32 = 4098;
560pub const MBSTRING_UNIV: i32 = 4100;
561pub const DIRSTRING_TYPE: i32 = 10246;
562pub const PKCS9STRING_TYPE: i32 = 10262;
563pub const STABLE_NO_MASK: i32 = 2;
564pub const B_ASN1_DIRECTORYSTRING: i32 = 10502;
565pub const B_ASN1_DISPLAYTEXT: i32 = 10320;
566pub const B_ASN1_TIME: i32 = 49152;
567pub const ASN1_STRFLGS_ESC_2253: i32 = 1;
568pub const ASN1_STRFLGS_ESC_CTRL: i32 = 2;
569pub const ASN1_STRFLGS_ESC_MSB: i32 = 4;
570pub const ASN1_STRFLGS_ESC_QUOTE: i32 = 8;
571pub const ASN1_STRFLGS_UTF8_CONVERT: i32 = 16;
572pub const ASN1_STRFLGS_IGNORE_TYPE: i32 = 32;
573pub const ASN1_STRFLGS_SHOW_TYPE: i32 = 64;
574pub const ASN1_STRFLGS_DUMP_ALL: i32 = 128;
575pub const ASN1_STRFLGS_DUMP_UNKNOWN: i32 = 256;
576pub const ASN1_STRFLGS_DUMP_DER: i32 = 512;
577pub const ASN1_STRFLGS_RFC2253: i32 = 791;
578pub const B_ASN1_PRINTABLE: i32 = 81175;
579pub const ASN1_R_ASN1_LENGTH_MISMATCH: i32 = 100;
580pub const ASN1_R_AUX_ERROR: i32 = 101;
581pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: i32 = 102;
582pub const ASN1_R_BAD_OBJECT_HEADER: i32 = 103;
583pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: i32 = 104;
584pub const ASN1_R_BN_LIB: i32 = 105;
585pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: i32 = 106;
586pub const ASN1_R_BUFFER_TOO_SMALL: i32 = 107;
587pub const ASN1_R_CONTEXT_NOT_INITIALISED: i32 = 108;
588pub const ASN1_R_DECODE_ERROR: i32 = 109;
589pub const ASN1_R_DEPTH_EXCEEDED: i32 = 110;
590pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: i32 = 111;
591pub const ASN1_R_ENCODE_ERROR: i32 = 112;
592pub const ASN1_R_ERROR_GETTING_TIME: i32 = 113;
593pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: i32 = 114;
594pub const ASN1_R_EXPECTING_AN_INTEGER: i32 = 115;
595pub const ASN1_R_EXPECTING_AN_OBJECT: i32 = 116;
596pub const ASN1_R_EXPECTING_A_BOOLEAN: i32 = 117;
597pub const ASN1_R_EXPECTING_A_TIME: i32 = 118;
598pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: i32 = 119;
599pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: i32 = 120;
600pub const ASN1_R_FIELD_MISSING: i32 = 121;
601pub const ASN1_R_FIRST_NUM_TOO_LARGE: i32 = 122;
602pub const ASN1_R_HEADER_TOO_LONG: i32 = 123;
603pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: i32 = 124;
604pub const ASN1_R_ILLEGAL_BOOLEAN: i32 = 125;
605pub const ASN1_R_ILLEGAL_CHARACTERS: i32 = 126;
606pub const ASN1_R_ILLEGAL_FORMAT: i32 = 127;
607pub const ASN1_R_ILLEGAL_HEX: i32 = 128;
608pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: i32 = 129;
609pub const ASN1_R_ILLEGAL_INTEGER: i32 = 130;
610pub const ASN1_R_ILLEGAL_NESTED_TAGGING: i32 = 131;
611pub const ASN1_R_ILLEGAL_NULL: i32 = 132;
612pub const ASN1_R_ILLEGAL_NULL_VALUE: i32 = 133;
613pub const ASN1_R_ILLEGAL_OBJECT: i32 = 134;
614pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: i32 = 135;
615pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: i32 = 136;
616pub const ASN1_R_ILLEGAL_TAGGED_ANY: i32 = 137;
617pub const ASN1_R_ILLEGAL_TIME_VALUE: i32 = 138;
618pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: i32 = 139;
619pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: i32 = 140;
620pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 141;
621pub const ASN1_R_INVALID_BMPSTRING: i32 = 142;
622pub const ASN1_R_INVALID_DIGIT: i32 = 143;
623pub const ASN1_R_INVALID_MODIFIER: i32 = 144;
624pub const ASN1_R_INVALID_NUMBER: i32 = 145;
625pub const ASN1_R_INVALID_OBJECT_ENCODING: i32 = 146;
626pub const ASN1_R_INVALID_SEPARATOR: i32 = 147;
627pub const ASN1_R_INVALID_TIME_FORMAT: i32 = 148;
628pub const ASN1_R_INVALID_UNIVERSALSTRING: i32 = 149;
629pub const ASN1_R_INVALID_UTF8STRING: i32 = 150;
630pub const ASN1_R_LIST_ERROR: i32 = 151;
631pub const ASN1_R_MISSING_ASN1_EOS: i32 = 152;
632pub const ASN1_R_MISSING_EOC: i32 = 153;
633pub const ASN1_R_MISSING_SECOND_NUMBER: i32 = 154;
634pub const ASN1_R_MISSING_VALUE: i32 = 155;
635pub const ASN1_R_MSTRING_NOT_UNIVERSAL: i32 = 156;
636pub const ASN1_R_MSTRING_WRONG_TAG: i32 = 157;
637pub const ASN1_R_NESTED_ASN1_ERROR: i32 = 158;
638pub const ASN1_R_NESTED_ASN1_STRING: i32 = 159;
639pub const ASN1_R_NON_HEX_CHARACTERS: i32 = 160;
640pub const ASN1_R_NOT_ASCII_FORMAT: i32 = 161;
641pub const ASN1_R_NOT_ENOUGH_DATA: i32 = 162;
642pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: i32 = 163;
643pub const ASN1_R_NULL_IS_WRONG_LENGTH: i32 = 164;
644pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: i32 = 165;
645pub const ASN1_R_ODD_NUMBER_OF_CHARS: i32 = 166;
646pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: i32 = 167;
647pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: i32 = 168;
648pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: i32 = 169;
649pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: i32 = 170;
650pub const ASN1_R_SHORT_LINE: i32 = 171;
651pub const ASN1_R_STREAMING_NOT_SUPPORTED: i32 = 172;
652pub const ASN1_R_STRING_TOO_LONG: i32 = 173;
653pub const ASN1_R_STRING_TOO_SHORT: i32 = 174;
654pub const ASN1_R_TAG_VALUE_TOO_HIGH: i32 = 175;
655pub const ASN1_R_TIME_NOT_ASCII_FORMAT: i32 = 176;
656pub const ASN1_R_TOO_LONG: i32 = 177;
657pub const ASN1_R_TYPE_NOT_CONSTRUCTED: i32 = 178;
658pub const ASN1_R_TYPE_NOT_PRIMITIVE: i32 = 179;
659pub const ASN1_R_UNEXPECTED_EOC: i32 = 180;
660pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: i32 = 181;
661pub const ASN1_R_UNKNOWN_FORMAT: i32 = 182;
662pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: i32 = 183;
663pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: i32 = 184;
664pub const ASN1_R_UNKNOWN_TAG: i32 = 185;
665pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: i32 = 186;
666pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 187;
667pub const ASN1_R_UNSUPPORTED_TYPE: i32 = 188;
668pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: i32 = 189;
669pub const ASN1_R_WRONG_TAG: i32 = 190;
670pub const ASN1_R_WRONG_TYPE: i32 = 191;
671pub const ASN1_R_NESTED_TOO_DEEP: i32 = 192;
672pub const ASN1_R_BAD_TEMPLATE: i32 = 193;
673pub const ASN1_R_INVALID_BIT_STRING_PADDING: i32 = 194;
674pub const ASN1_R_WRONG_INTEGER_TYPE: i32 = 195;
675pub const ASN1_R_INVALID_INTEGER: i32 = 196;
676pub const ASN1_TFLG_OPTIONAL: i32 = 1;
677pub const ASN1_TFLG_SET_OF: i32 = 2;
678pub const ASN1_TFLG_SEQUENCE_OF: i32 = 4;
679pub const ASN1_TFLG_SK_MASK: i32 = 6;
680pub const ASN1_TFLG_IMPTAG: i32 = 8;
681pub const ASN1_TFLG_EXPTAG: i32 = 16;
682pub const ASN1_TFLG_TAG_MASK: i32 = 24;
683pub const ASN1_TFLG_UNIVERSAL: i32 = 0;
684pub const ASN1_TFLG_APPLICATION: i32 = 64;
685pub const ASN1_TFLG_CONTEXT: i32 = 128;
686pub const ASN1_TFLG_PRIVATE: i32 = 192;
687pub const ASN1_TFLG_TAG_CLASS: i32 = 192;
688pub const ASN1_TFLG_ADB_MASK: i32 = 768;
689pub const ASN1_TFLG_ADB_OID: i32 = 256;
690pub const ASN1_TFLG_COMBINE: i32 = 1024;
691pub const ASN1_ITYPE_PRIMITIVE: i32 = 0;
692pub const ASN1_ITYPE_SEQUENCE: i32 = 1;
693pub const ASN1_ITYPE_CHOICE: i32 = 2;
694pub const ASN1_ITYPE_EXTERN: i32 = 4;
695pub const ASN1_ITYPE_MSTRING: i32 = 5;
696pub const ASN1_AFLG_REFCOUNT: i32 = 1;
697pub const ASN1_AFLG_ENCODING: i32 = 2;
698pub const ASN1_OP_NEW_PRE: i32 = 0;
699pub const ASN1_OP_NEW_POST: i32 = 1;
700pub const ASN1_OP_FREE_PRE: i32 = 2;
701pub const ASN1_OP_FREE_POST: i32 = 3;
702pub const ASN1_OP_D2I_PRE: i32 = 4;
703pub const ASN1_OP_D2I_POST: i32 = 5;
704pub const ASN1_OP_PRINT_PRE: i32 = 8;
705pub const ASN1_OP_PRINT_POST: i32 = 9;
706pub const ASN1_OP_STREAM_PRE: i32 = 10;
707pub const ASN1_OP_STREAM_POST: i32 = 11;
708pub const ASN1_OP_DETACHED_PRE: i32 = 12;
709pub const ASN1_OP_DETACHED_POST: i32 = 13;
710pub const BLAKE2B256_DIGEST_LENGTH: i32 = 32;
711pub const BLAKE2B_CBLOCK: i32 = 128;
712pub const BF_ENCRYPT: i32 = 1;
713pub const BF_DECRYPT: i32 = 0;
714pub const BF_ROUNDS: i32 = 16;
715pub const BF_BLOCK: i32 = 8;
716pub const CBS_ASN1_TAG_SHIFT: i32 = 24;
717pub const CBS_ASN1_CONSTRUCTED: i32 = 536870912;
718pub const CBS_ASN1_UNIVERSAL: i32 = 0;
719pub const CBS_ASN1_APPLICATION: i32 = 1073741824;
720pub const CBS_ASN1_CONTEXT_SPECIFIC: i64 = 2147483648;
721pub const CBS_ASN1_PRIVATE: i64 = 3221225472;
722pub const CBS_ASN1_CLASS_MASK: i64 = 3221225472;
723pub const CBS_ASN1_TAG_NUMBER_MASK: i32 = 536870911;
724pub const CBS_ASN1_BOOLEAN: i32 = 1;
725pub const CBS_ASN1_INTEGER: i32 = 2;
726pub const CBS_ASN1_BITSTRING: i32 = 3;
727pub const CBS_ASN1_OCTETSTRING: i32 = 4;
728pub const CBS_ASN1_NULL: i32 = 5;
729pub const CBS_ASN1_OBJECT: i32 = 6;
730pub const CBS_ASN1_ENUMERATED: i32 = 10;
731pub const CBS_ASN1_UTF8STRING: i32 = 12;
732pub const CBS_ASN1_SEQUENCE: i32 = 536870928;
733pub const CBS_ASN1_SET: i32 = 536870929;
734pub const CBS_ASN1_NUMERICSTRING: i32 = 18;
735pub const CBS_ASN1_PRINTABLESTRING: i32 = 19;
736pub const CBS_ASN1_T61STRING: i32 = 20;
737pub const CBS_ASN1_VIDEOTEXSTRING: i32 = 21;
738pub const CBS_ASN1_IA5STRING: i32 = 22;
739pub const CBS_ASN1_UTCTIME: i32 = 23;
740pub const CBS_ASN1_GENERALIZEDTIME: i32 = 24;
741pub const CBS_ASN1_GRAPHICSTRING: i32 = 25;
742pub const CBS_ASN1_VISIBLESTRING: i32 = 26;
743pub const CBS_ASN1_GENERALSTRING: i32 = 27;
744pub const CBS_ASN1_UNIVERSALSTRING: i32 = 28;
745pub const CBS_ASN1_BMPSTRING: i32 = 30;
746pub const EVP_CIPH_STREAM_CIPHER: i32 = 0;
747pub const EVP_CIPH_ECB_MODE: i32 = 1;
748pub const EVP_CIPH_CBC_MODE: i32 = 2;
749pub const EVP_CIPH_CFB_MODE: i32 = 3;
750pub const EVP_CIPH_OFB_MODE: i32 = 4;
751pub const EVP_CIPH_CTR_MODE: i32 = 5;
752pub const EVP_CIPH_GCM_MODE: i32 = 6;
753pub const EVP_CIPH_XTS_MODE: i32 = 7;
754pub const EVP_CIPH_CCM_MODE: i32 = 8;
755pub const EVP_CIPH_FLAG_LENGTH_BITS: i32 = 8192;
756pub const EVP_CIPH_OCB_MODE: i32 = 9;
757pub const EVP_CIPH_WRAP_MODE: i32 = 10;
758pub const EVP_CIPH_VARIABLE_LENGTH: i32 = 64;
759pub const EVP_CIPH_ALWAYS_CALL_INIT: i32 = 128;
760pub const EVP_CIPH_CUSTOM_IV: i32 = 256;
761pub const EVP_CIPH_CTRL_INIT: i32 = 512;
762pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: i32 = 1024;
763pub const EVP_CIPH_FLAG_AEAD_CIPHER: i32 = 2048;
764pub const EVP_CIPH_CUSTOM_COPY: i32 = 4096;
765pub const EVP_CIPH_FLAG_NON_FIPS_ALLOW: i32 = 0;
766pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: i32 = 0;
767pub const EVP_CIPH_NO_PADDING: i32 = 2048;
768pub const EVP_CTRL_INIT: i32 = 0;
769pub const EVP_CTRL_SET_KEY_LENGTH: i32 = 1;
770pub const EVP_CTRL_GET_RC2_KEY_BITS: i32 = 2;
771pub const EVP_CTRL_SET_RC2_KEY_BITS: i32 = 3;
772pub const EVP_CTRL_GET_RC5_ROUNDS: i32 = 4;
773pub const EVP_CTRL_SET_RC5_ROUNDS: i32 = 5;
774pub const EVP_CTRL_RAND_KEY: i32 = 6;
775pub const EVP_CTRL_PBE_PRF_NID: i32 = 7;
776pub const EVP_CTRL_COPY: i32 = 8;
777pub const EVP_CTRL_AEAD_SET_IVLEN: i32 = 9;
778pub const EVP_CTRL_AEAD_GET_TAG: i32 = 16;
779pub const EVP_CTRL_AEAD_SET_TAG: i32 = 17;
780pub const EVP_CTRL_AEAD_SET_IV_FIXED: i32 = 18;
781pub const EVP_CTRL_GCM_IV_GEN: i32 = 19;
782pub const EVP_CTRL_CCM_SET_L: i32 = 20;
783pub const EVP_CTRL_AEAD_SET_MAC_KEY: i32 = 23;
784pub const EVP_CTRL_GCM_SET_IV_INV: i32 = 24;
785pub const EVP_CTRL_GET_IVLEN: i32 = 25;
786pub const EVP_GCM_TLS_FIXED_IV_LEN: i32 = 4;
787pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: i32 = 8;
788pub const EVP_GCM_TLS_TAG_LEN: i32 = 16;
789pub const EVP_CTRL_GCM_SET_IVLEN: i32 = 9;
790pub const EVP_CTRL_GCM_GET_TAG: i32 = 16;
791pub const EVP_CTRL_GCM_SET_TAG: i32 = 17;
792pub const EVP_CTRL_GCM_SET_IV_FIXED: i32 = 18;
793pub const EVP_MAX_KEY_LENGTH: i32 = 64;
794pub const EVP_MAX_IV_LENGTH: i32 = 16;
795pub const EVP_MAX_BLOCK_LENGTH: i32 = 32;
796pub const EVP_CTRL_AEAD_TLS1_AAD: i32 = 22;
797pub const EVP_AEAD_TLS1_AAD_LEN: i32 = 13;
798pub const CIPHER_R_AES_KEY_SETUP_FAILED: i32 = 100;
799pub const CIPHER_R_BAD_DECRYPT: i32 = 101;
800pub const CIPHER_R_BAD_KEY_LENGTH: i32 = 102;
801pub const CIPHER_R_BUFFER_TOO_SMALL: i32 = 103;
802pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: i32 = 104;
803pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: i32 = 105;
804pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: i32 = 106;
805pub const CIPHER_R_INITIALIZATION_ERROR: i32 = 107;
806pub const CIPHER_R_INPUT_NOT_INITIALIZED: i32 = 108;
807pub const CIPHER_R_INVALID_AD_SIZE: i32 = 109;
808pub const CIPHER_R_INVALID_KEY_LENGTH: i32 = 110;
809pub const CIPHER_R_INVALID_NONCE_SIZE: i32 = 111;
810pub const CIPHER_R_INVALID_OPERATION: i32 = 112;
811pub const CIPHER_R_IV_TOO_LARGE: i32 = 113;
812pub const CIPHER_R_NO_CIPHER_SET: i32 = 114;
813pub const CIPHER_R_OUTPUT_ALIASES_INPUT: i32 = 115;
814pub const CIPHER_R_TAG_TOO_LARGE: i32 = 116;
815pub const CIPHER_R_TOO_LARGE: i32 = 117;
816pub const CIPHER_R_UNSUPPORTED_AD_SIZE: i32 = 118;
817pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: i32 = 119;
818pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: i32 = 120;
819pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: i32 = 121;
820pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: i32 = 122;
821pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: i32 = 123;
822pub const CIPHER_R_NO_DIRECTION_SET: i32 = 124;
823pub const CIPHER_R_INVALID_NONCE: i32 = 125;
824pub const CIPHER_R_XTS_DUPLICATED_KEYS: i32 = 138;
825pub const CIPHER_R_XTS_DATA_UNIT_IS_TOO_LARGE: i32 = 139;
826pub const CIPHER_R_CTRL_OPERATION_NOT_PERFORMED: i32 = 140;
827pub const CIPHER_R_SERIALIZATION_INVALID_EVP_AEAD_CTX: i32 = 141;
828pub const CIPHER_R_ALIGNMENT_CHANGED: i32 = 142;
829pub const CIPHER_R_SERIALIZATION_INVALID_SERDE_VERSION: i32 = 143;
830pub const CIPHER_R_SERIALIZATION_INVALID_CIPHER_ID: i32 = 144;
831pub const CONF_MFLAGS_DEFAULT_SECTION: i32 = 0;
832pub const CONF_MFLAGS_IGNORE_MISSING_FILE: i32 = 0;
833pub const CONF_R_LIST_CANNOT_BE_NULL: i32 = 100;
834pub const CONF_R_MISSING_CLOSE_SQUARE_BRACKET: i32 = 101;
835pub const CONF_R_MISSING_EQUAL_SIGN: i32 = 102;
836pub const CONF_R_NO_CLOSE_BRACE: i32 = 103;
837pub const CONF_R_UNABLE_TO_CREATE_NEW_SECTION: i32 = 104;
838pub const CONF_R_VARIABLE_HAS_NO_VALUE: i32 = 105;
839pub const CONF_R_VARIABLE_EXPANSION_TOO_LONG: i32 = 106;
840pub const CONF_R_VARIABLE_EXPANSION_NOT_SUPPORTED: i32 = 107;
841pub const CONF_R_NO_CLOSE_QUOTE: i32 = 108;
842pub const CTR_DRBG_ENTROPY_LEN: i32 = 48;
843pub const CTR_DRBG_MAX_GENERATE_LENGTH: i32 = 65536;
844pub const X25519_PRIVATE_KEY_LEN: i32 = 32;
845pub const X25519_PUBLIC_VALUE_LEN: i32 = 32;
846pub const X25519_SHARED_KEY_LEN: i32 = 32;
847pub const ED25519_PRIVATE_KEY_LEN: i32 = 64;
848pub const ED25519_PRIVATE_KEY_SEED_LEN: i32 = 32;
849pub const ED25519_PUBLIC_KEY_LEN: i32 = 32;
850pub const ED25519_SIGNATURE_LEN: i32 = 64;
851pub const ED25519_SEED_LEN: i32 = 32;
852pub const SPAKE2_MAX_MSG_SIZE: i32 = 32;
853pub const SPAKE2_MAX_KEY_SIZE: i32 = 64;
854pub const DES_ENCRYPT: i32 = 1;
855pub const DES_DECRYPT: i32 = 0;
856pub const DES_CBC_MODE: i32 = 0;
857pub const DES_PCBC_MODE: i32 = 1;
858pub const DH_GENERATOR_2: i32 = 2;
859pub const DH_GENERATOR_5: i32 = 5;
860pub const DH_CHECK_P_NOT_PRIME: i32 = 1;
861pub const DH_CHECK_P_NOT_SAFE_PRIME: i32 = 2;
862pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
863pub const DH_CHECK_NOT_SUITABLE_GENERATOR: i32 = 8;
864pub const DH_CHECK_Q_NOT_PRIME: i32 = 16;
865pub const DH_CHECK_INVALID_Q_VALUE: i32 = 32;
866pub const DH_NOT_SUITABLE_GENERATOR: i32 = 8;
867pub const DH_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
868pub const DH_CHECK_PUBKEY_TOO_SMALL: i32 = 1;
869pub const DH_CHECK_PUBKEY_TOO_LARGE: i32 = 2;
870pub const DH_CHECK_PUBKEY_INVALID: i32 = 4;
871pub const DH_FLAG_CACHE_MONT_P: i32 = 0;
872pub const DH_R_BAD_GENERATOR: i32 = 100;
873pub const DH_R_INVALID_PUBKEY: i32 = 101;
874pub const DH_R_MODULUS_TOO_LARGE: i32 = 102;
875pub const DH_R_NO_PRIVATE_VALUE: i32 = 103;
876pub const DH_R_DECODE_ERROR: i32 = 104;
877pub const DH_R_ENCODE_ERROR: i32 = 105;
878pub const DH_R_INVALID_NID: i32 = 106;
879pub const DH_R_INVALID_PARAMETERS: i32 = 107;
880pub const DH_F_DH_BUILTIN_GENPARAMS: i32 = 0;
881pub const EVP_MAX_MD_SIZE: i32 = 64;
882pub const EVP_MAX_MD_CHAINING_LENGTH: i32 = 64;
883pub const EVP_MAX_MD_BLOCK_SIZE: i32 = 144;
884pub const EVP_MD_FLAG_DIGALGID_ABSENT: i32 = 2;
885pub const EVP_MD_FLAG_XOF: i32 = 4;
886pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW: i32 = 0;
887pub const DIGEST_R_INPUT_NOT_INITIALIZED: i32 = 100;
888pub const DIGEST_R_DECODE_ERROR: i32 = 101;
889pub const DIGEST_R_UNKNOWN_HASH: i32 = 102;
890pub const OPENSSL_DSA_MAX_MODULUS_BITS: i32 = 10000;
891pub const DSA_R_BAD_Q_VALUE: i32 = 100;
892pub const DSA_R_MISSING_PARAMETERS: i32 = 101;
893pub const DSA_R_MODULUS_TOO_LARGE: i32 = 102;
894pub const DSA_R_NEED_NEW_SETUP_VALUES: i32 = 103;
895pub const DSA_R_BAD_VERSION: i32 = 104;
896pub const DSA_R_DECODE_ERROR: i32 = 105;
897pub const DSA_R_ENCODE_ERROR: i32 = 106;
898pub const DSA_R_INVALID_PARAMETERS: i32 = 107;
899pub const DSA_R_TOO_MANY_ITERATIONS: i32 = 108;
900pub const OPENSSL_EC_EXPLICIT_CURVE: i32 = 0;
901pub const OPENSSL_EC_NAMED_CURVE: i32 = 1;
902pub const ENGINE_R_OPERATION_NOT_SUPPORTED: i32 = 100;
903pub const EC_PKEY_NO_PARAMETERS: i32 = 1;
904pub const EC_PKEY_NO_PUBKEY: i32 = 2;
905pub const ECDSA_FLAG_OPAQUE: i32 = 1;
906pub const EC_R_BUFFER_TOO_SMALL: i32 = 100;
907pub const EC_R_COORDINATES_OUT_OF_RANGE: i32 = 101;
908pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: i32 = 102;
909pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: i32 = 103;
910pub const EC_R_GROUP2PKPARAMETERS_FAILURE: i32 = 104;
911pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: i32 = 105;
912pub const EC_R_INCOMPATIBLE_OBJECTS: i32 = 106;
913pub const EC_R_INVALID_COMPRESSED_POINT: i32 = 107;
914pub const EC_R_INVALID_COMPRESSION_BIT: i32 = 108;
915pub const EC_R_INVALID_ENCODING: i32 = 109;
916pub const EC_R_INVALID_FIELD: i32 = 110;
917pub const EC_R_INVALID_FORM: i32 = 111;
918pub const EC_R_INVALID_GROUP_ORDER: i32 = 112;
919pub const EC_R_INVALID_PRIVATE_KEY: i32 = 113;
920pub const EC_R_MISSING_PARAMETERS: i32 = 114;
921pub const EC_R_MISSING_PRIVATE_KEY: i32 = 115;
922pub const EC_R_NON_NAMED_CURVE: i32 = 116;
923pub const EC_R_NOT_INITIALIZED: i32 = 117;
924pub const EC_R_PKPARAMETERS2GROUP_FAILURE: i32 = 118;
925pub const EC_R_POINT_AT_INFINITY: i32 = 119;
926pub const EC_R_POINT_IS_NOT_ON_CURVE: i32 = 120;
927pub const EC_R_SLOT_FULL: i32 = 121;
928pub const EC_R_UNDEFINED_GENERATOR: i32 = 122;
929pub const EC_R_UNKNOWN_GROUP: i32 = 123;
930pub const EC_R_UNKNOWN_ORDER: i32 = 124;
931pub const EC_R_WRONG_ORDER: i32 = 125;
932pub const EC_R_BIGNUM_OUT_OF_RANGE: i32 = 126;
933pub const EC_R_WRONG_CURVE_PARAMETERS: i32 = 127;
934pub const EC_R_DECODE_ERROR: i32 = 128;
935pub const EC_R_ENCODE_ERROR: i32 = 129;
936pub const EC_R_GROUP_MISMATCH: i32 = 130;
937pub const EC_R_INVALID_COFACTOR: i32 = 131;
938pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 132;
939pub const EC_R_INVALID_SCALAR: i32 = 133;
940pub const ECDH_R_KDF_FAILED: i32 = 100;
941pub const ECDH_R_NO_PRIVATE_VALUE: i32 = 101;
942pub const ECDH_R_POINT_ARITHMETIC_FAILURE: i32 = 102;
943pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: i32 = 103;
944pub const ECDSA_R_BAD_SIGNATURE: i32 = 100;
945pub const ECDSA_R_MISSING_PARAMETERS: i32 = 101;
946pub const ECDSA_R_NEED_NEW_SETUP_VALUES: i32 = 102;
947pub const ECDSA_R_NOT_IMPLEMENTED: i32 = 103;
948pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: i32 = 104;
949pub const ECDSA_R_ENCODE_ERROR: i32 = 105;
950pub const ECDSA_R_MISMATCHED_SIGNATURE: i32 = 205;
951pub const ECDSA_R_TOO_MANY_ITERATIONS: i32 = 106;
952pub const EVP_R_BUFFER_TOO_SMALL: i32 = 100;
953pub const EVP_R_COMMAND_NOT_SUPPORTED: i32 = 101;
954pub const EVP_R_DECODE_ERROR: i32 = 102;
955pub const EVP_R_DIFFERENT_KEY_TYPES: i32 = 103;
956pub const EVP_R_DIFFERENT_PARAMETERS: i32 = 104;
957pub const EVP_R_ENCODE_ERROR: i32 = 105;
958pub const EVP_R_EXPECTING_A_EC_KEY_KEY: i32 = 106;
959pub const EVP_R_EXPECTING_AN_RSA_KEY: i32 = 107;
960pub const EVP_R_EXPECTING_A_DSA_KEY: i32 = 108;
961pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: i32 = 109;
962pub const EVP_R_INVALID_DIGEST_LENGTH: i32 = 110;
963pub const EVP_R_INVALID_DIGEST_TYPE: i32 = 111;
964pub const EVP_R_INVALID_KEYBITS: i32 = 112;
965pub const EVP_R_INVALID_MGF1_MD: i32 = 113;
966pub const EVP_R_INVALID_OPERATION: i32 = 114;
967pub const EVP_R_INVALID_PADDING_MODE: i32 = 115;
968pub const EVP_R_INVALID_PSS_SALTLEN: i32 = 116;
969pub const EVP_R_KEYS_NOT_SET: i32 = 117;
970pub const EVP_R_MISSING_PARAMETERS: i32 = 118;
971pub const EVP_R_NO_DEFAULT_DIGEST: i32 = 119;
972pub const EVP_R_NO_KEY_SET: i32 = 120;
973pub const EVP_R_NO_MDC2_SUPPORT: i32 = 121;
974pub const EVP_R_NO_NID_FOR_CURVE: i32 = 122;
975pub const EVP_R_NO_OPERATION_SET: i32 = 123;
976pub const EVP_R_NO_PARAMETERS_SET: i32 = 124;
977pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: i32 = 125;
978pub const EVP_R_OPERATON_NOT_INITIALIZED: i32 = 126;
979pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: i32 = 127;
980pub const EVP_R_UNSUPPORTED_ALGORITHM: i32 = 128;
981pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 129;
982pub const EVP_R_NOT_A_PRIVATE_KEY: i32 = 130;
983pub const EVP_R_INVALID_SIGNATURE: i32 = 131;
984pub const EVP_R_MEMORY_LIMIT_EXCEEDED: i32 = 132;
985pub const EVP_R_INVALID_PARAMETERS: i32 = 133;
986pub const EVP_R_INVALID_PEER_KEY: i32 = 134;
987pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH: i32 = 135;
988pub const EVP_R_EMPTY_PSK: i32 = 136;
989pub const EVP_R_INVALID_BUFFER_SIZE: i32 = 137;
990pub const EVP_R_BAD_DECRYPT: i32 = 138;
991pub const EVP_R_EXPECTING_A_DH_KEY: i32 = 139;
992pub const EVP_R_EXPECTING_A_PQDSA_KEY: i32 = 140;
993pub const EVP_R_INVALID_PSS_MD: i32 = 500;
994pub const EVP_R_INVALID_PSS_SALT_LEN: i32 = 501;
995pub const EVP_R_INVALID_PSS_TRAILER_FIELD: i32 = 502;
996pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
997pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
998pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
999pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
1000pub const FIPS_AES_GCM_NONCE_LENGTH: i32 = 12;
1001pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1002pub const LN_undef: &[u8; 10] = b"undefined\0";
1003pub const NID_undef: i32 = 0;
1004pub const OBJ_undef: i32 = 0;
1005pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1006pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1007pub const NID_rsadsi: i32 = 1;
1008pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1009pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1010pub const NID_pkcs: i32 = 2;
1011pub const SN_md2: &[u8; 4] = b"MD2\0";
1012pub const LN_md2: &[u8; 4] = b"md2\0";
1013pub const NID_md2: i32 = 3;
1014pub const SN_md5: &[u8; 4] = b"MD5\0";
1015pub const LN_md5: &[u8; 4] = b"md5\0";
1016pub const NID_md5: i32 = 4;
1017pub const SN_rc4: &[u8; 4] = b"RC4\0";
1018pub const LN_rc4: &[u8; 4] = b"rc4\0";
1019pub const NID_rc4: i32 = 5;
1020pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1021pub const NID_rsaEncryption: i32 = 6;
1022pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1023pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1024pub const NID_md2WithRSAEncryption: i32 = 7;
1025pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1026pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1027pub const NID_md5WithRSAEncryption: i32 = 8;
1028pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1029pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1030pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1031pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1032pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1033pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1034pub const SN_X500: &[u8; 5] = b"X500\0";
1035pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1036pub const NID_X500: i32 = 11;
1037pub const SN_X509: &[u8; 5] = b"X509\0";
1038pub const NID_X509: i32 = 12;
1039pub const SN_commonName: &[u8; 3] = b"CN\0";
1040pub const LN_commonName: &[u8; 11] = b"commonName\0";
1041pub const NID_commonName: i32 = 13;
1042pub const SN_countryName: &[u8; 2] = b"C\0";
1043pub const LN_countryName: &[u8; 12] = b"countryName\0";
1044pub const NID_countryName: i32 = 14;
1045pub const SN_localityName: &[u8; 2] = b"L\0";
1046pub const LN_localityName: &[u8; 13] = b"localityName\0";
1047pub const NID_localityName: i32 = 15;
1048pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1049pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1050pub const NID_stateOrProvinceName: i32 = 16;
1051pub const SN_organizationName: &[u8; 2] = b"O\0";
1052pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1053pub const NID_organizationName: i32 = 17;
1054pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1055pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1056pub const NID_organizationalUnitName: i32 = 18;
1057pub const SN_rsa: &[u8; 4] = b"RSA\0";
1058pub const LN_rsa: &[u8; 4] = b"rsa\0";
1059pub const NID_rsa: i32 = 19;
1060pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1061pub const NID_pkcs7: i32 = 20;
1062pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1063pub const NID_pkcs7_data: i32 = 21;
1064pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1065pub const NID_pkcs7_signed: i32 = 22;
1066pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1067pub const NID_pkcs7_enveloped: i32 = 23;
1068pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1069pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1070pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1071pub const NID_pkcs7_digest: i32 = 25;
1072pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1073pub const NID_pkcs7_encrypted: i32 = 26;
1074pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1075pub const NID_pkcs3: i32 = 27;
1076pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1077pub const NID_dhKeyAgreement: i32 = 28;
1078pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1079pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1080pub const NID_des_ecb: i32 = 29;
1081pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1082pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1083pub const NID_des_cfb64: i32 = 30;
1084pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1085pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1086pub const NID_des_cbc: i32 = 31;
1087pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1088pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1089pub const NID_des_ede_ecb: i32 = 32;
1090pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1091pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1092pub const NID_des_ede3_ecb: i32 = 33;
1093pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1094pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1095pub const NID_idea_cbc: i32 = 34;
1096pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1097pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1098pub const NID_idea_cfb64: i32 = 35;
1099pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1100pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1101pub const NID_idea_ecb: i32 = 36;
1102pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1103pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1104pub const NID_rc2_cbc: i32 = 37;
1105pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1106pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1107pub const NID_rc2_ecb: i32 = 38;
1108pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1109pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1110pub const NID_rc2_cfb64: i32 = 39;
1111pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1112pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1113pub const NID_rc2_ofb64: i32 = 40;
1114pub const SN_sha: &[u8; 4] = b"SHA\0";
1115pub const LN_sha: &[u8; 4] = b"sha\0";
1116pub const NID_sha: i32 = 41;
1117pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1118pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1119pub const NID_shaWithRSAEncryption: i32 = 42;
1120pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1121pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1122pub const NID_des_ede_cbc: i32 = 43;
1123pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1124pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1125pub const NID_des_ede3_cbc: i32 = 44;
1126pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1127pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1128pub const NID_des_ofb64: i32 = 45;
1129pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1130pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1131pub const NID_idea_ofb64: i32 = 46;
1132pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1133pub const NID_pkcs9: i32 = 47;
1134pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1135pub const NID_pkcs9_emailAddress: i32 = 48;
1136pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1137pub const NID_pkcs9_unstructuredName: i32 = 49;
1138pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1139pub const NID_pkcs9_contentType: i32 = 50;
1140pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1141pub const NID_pkcs9_messageDigest: i32 = 51;
1142pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1143pub const NID_pkcs9_signingTime: i32 = 52;
1144pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1145pub const NID_pkcs9_countersignature: i32 = 53;
1146pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1147pub const NID_pkcs9_challengePassword: i32 = 54;
1148pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1149pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1150pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1151pub const NID_pkcs9_extCertAttributes: i32 = 56;
1152pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1153pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1154pub const NID_netscape: i32 = 57;
1155pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1156pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1157pub const NID_netscape_cert_extension: i32 = 58;
1158pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1159pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1160pub const NID_netscape_data_type: i32 = 59;
1161pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1162pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1163pub const NID_des_ede_cfb64: i32 = 60;
1164pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1165pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1166pub const NID_des_ede3_cfb64: i32 = 61;
1167pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1168pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1169pub const NID_des_ede_ofb64: i32 = 62;
1170pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1171pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1172pub const NID_des_ede3_ofb64: i32 = 63;
1173pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1174pub const LN_sha1: &[u8; 5] = b"sha1\0";
1175pub const NID_sha1: i32 = 64;
1176pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1177pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1178pub const NID_sha1WithRSAEncryption: i32 = 65;
1179pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1180pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1181pub const NID_dsaWithSHA: i32 = 66;
1182pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1183pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1184pub const NID_dsa_2: i32 = 67;
1185pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1186pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1187pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1188pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1189pub const NID_id_pbkdf2: i32 = 69;
1190pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1191pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1192pub const NID_dsaWithSHA1_2: i32 = 70;
1193pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1194pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1195pub const NID_netscape_cert_type: i32 = 71;
1196pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1197pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1198pub const NID_netscape_base_url: i32 = 72;
1199pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1200pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1201pub const NID_netscape_revocation_url: i32 = 73;
1202pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1203pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1204pub const NID_netscape_ca_revocation_url: i32 = 74;
1205pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1206pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1207pub const NID_netscape_renewal_url: i32 = 75;
1208pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1209pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1210pub const NID_netscape_ca_policy_url: i32 = 76;
1211pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1212pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1213pub const NID_netscape_ssl_server_name: i32 = 77;
1214pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1215pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1216pub const NID_netscape_comment: i32 = 78;
1217pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1218pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1219pub const NID_netscape_cert_sequence: i32 = 79;
1220pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1221pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1222pub const NID_desx_cbc: i32 = 80;
1223pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1224pub const NID_id_ce: i32 = 81;
1225pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1226pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1227pub const NID_subject_key_identifier: i32 = 82;
1228pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1229pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1230pub const NID_key_usage: i32 = 83;
1231pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1232pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1233pub const NID_private_key_usage_period: i32 = 84;
1234pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1235pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1236pub const NID_subject_alt_name: i32 = 85;
1237pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1238pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1239pub const NID_issuer_alt_name: i32 = 86;
1240pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1241pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1242pub const NID_basic_constraints: i32 = 87;
1243pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1244pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1245pub const NID_crl_number: i32 = 88;
1246pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1247pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1248pub const NID_certificate_policies: i32 = 89;
1249pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1250pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1251pub const NID_authority_key_identifier: i32 = 90;
1252pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1253pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1254pub const NID_bf_cbc: i32 = 91;
1255pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1256pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1257pub const NID_bf_ecb: i32 = 92;
1258pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1259pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1260pub const NID_bf_cfb64: i32 = 93;
1261pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1262pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1263pub const NID_bf_ofb64: i32 = 94;
1264pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1265pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1266pub const NID_mdc2: i32 = 95;
1267pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1268pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1269pub const NID_mdc2WithRSA: i32 = 96;
1270pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1271pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1272pub const NID_rc4_40: i32 = 97;
1273pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1274pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1275pub const NID_rc2_40_cbc: i32 = 98;
1276pub const SN_givenName: &[u8; 3] = b"GN\0";
1277pub const LN_givenName: &[u8; 10] = b"givenName\0";
1278pub const NID_givenName: i32 = 99;
1279pub const SN_surname: &[u8; 3] = b"SN\0";
1280pub const LN_surname: &[u8; 8] = b"surname\0";
1281pub const NID_surname: i32 = 100;
1282pub const SN_initials: &[u8; 9] = b"initials\0";
1283pub const LN_initials: &[u8; 9] = b"initials\0";
1284pub const NID_initials: i32 = 101;
1285pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1286pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1287pub const NID_crl_distribution_points: i32 = 103;
1288pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1289pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1290pub const NID_md5WithRSA: i32 = 104;
1291pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1292pub const NID_serialNumber: i32 = 105;
1293pub const SN_title: &[u8; 6] = b"title\0";
1294pub const LN_title: &[u8; 6] = b"title\0";
1295pub const NID_title: i32 = 106;
1296pub const LN_description: &[u8; 12] = b"description\0";
1297pub const NID_description: i32 = 107;
1298pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1299pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1300pub const NID_cast5_cbc: i32 = 108;
1301pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1302pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1303pub const NID_cast5_ecb: i32 = 109;
1304pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1305pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1306pub const NID_cast5_cfb64: i32 = 110;
1307pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1308pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1309pub const NID_cast5_ofb64: i32 = 111;
1310pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1311pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1312pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1313pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1314pub const NID_dsaWithSHA1: i32 = 113;
1315pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1316pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1317pub const NID_md5_sha1: i32 = 114;
1318pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1319pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1320pub const NID_sha1WithRSA: i32 = 115;
1321pub const SN_dsa: &[u8; 4] = b"DSA\0";
1322pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1323pub const NID_dsa: i32 = 116;
1324pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1325pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1326pub const NID_ripemd160: i32 = 117;
1327pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1328pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1329pub const NID_ripemd160WithRSA: i32 = 119;
1330pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1331pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1332pub const NID_rc5_cbc: i32 = 120;
1333pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1334pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1335pub const NID_rc5_ecb: i32 = 121;
1336pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1337pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1338pub const NID_rc5_cfb64: i32 = 122;
1339pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1340pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1341pub const NID_rc5_ofb64: i32 = 123;
1342pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1343pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1344pub const NID_zlib_compression: i32 = 125;
1345pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1346pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1347pub const NID_ext_key_usage: i32 = 126;
1348pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1349pub const NID_id_pkix: i32 = 127;
1350pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1351pub const NID_id_kp: i32 = 128;
1352pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1353pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1354pub const NID_server_auth: i32 = 129;
1355pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1356pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1357pub const NID_client_auth: i32 = 130;
1358pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1359pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1360pub const NID_code_sign: i32 = 131;
1361pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1362pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1363pub const NID_email_protect: i32 = 132;
1364pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1365pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1366pub const NID_time_stamp: i32 = 133;
1367pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1368pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1369pub const NID_ms_code_ind: i32 = 134;
1370pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1371pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1372pub const NID_ms_code_com: i32 = 135;
1373pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1374pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1375pub const NID_ms_ctl_sign: i32 = 136;
1376pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1377pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1378pub const NID_ms_sgc: i32 = 137;
1379pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1380pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1381pub const NID_ms_efs: i32 = 138;
1382pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1383pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1384pub const NID_ns_sgc: i32 = 139;
1385pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1386pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1387pub const NID_delta_crl: i32 = 140;
1388pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1389pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1390pub const NID_crl_reason: i32 = 141;
1391pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1392pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1393pub const NID_invalidity_date: i32 = 142;
1394pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1395pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1396pub const NID_sxnet: i32 = 143;
1397pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1398pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1399pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1400pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1401pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1402pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1403pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1404pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1405pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1406pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1407pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1408pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1409pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1410pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1411pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1412pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1413pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1414pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1415pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1416pub const NID_keyBag: i32 = 150;
1417pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1418pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1419pub const LN_certBag: &[u8; 8] = b"certBag\0";
1420pub const NID_certBag: i32 = 152;
1421pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1422pub const NID_crlBag: i32 = 153;
1423pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1424pub const NID_secretBag: i32 = 154;
1425pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1426pub const NID_safeContentsBag: i32 = 155;
1427pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1428pub const NID_friendlyName: i32 = 156;
1429pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1430pub const NID_localKeyID: i32 = 157;
1431pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1432pub const NID_x509Certificate: i32 = 158;
1433pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1434pub const NID_sdsiCertificate: i32 = 159;
1435pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1436pub const NID_x509Crl: i32 = 160;
1437pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1438pub const NID_pbes2: i32 = 161;
1439pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1440pub const NID_pbmac1: i32 = 162;
1441pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1442pub const NID_hmacWithSHA1: i32 = 163;
1443pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1444pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1445pub const NID_id_qt_cps: i32 = 164;
1446pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1447pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1448pub const NID_id_qt_unotice: i32 = 165;
1449pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1450pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1451pub const NID_rc2_64_cbc: i32 = 166;
1452pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1453pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1454pub const NID_SMIMECapabilities: i32 = 167;
1455pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1456pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1457pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1458pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1459pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1460pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1461pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1462pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1463pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1464pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1465pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1466pub const NID_ms_ext_req: i32 = 171;
1467pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1468pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1469pub const NID_ext_req: i32 = 172;
1470pub const SN_name: &[u8; 5] = b"name\0";
1471pub const LN_name: &[u8; 5] = b"name\0";
1472pub const NID_name: i32 = 173;
1473pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1474pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1475pub const NID_dnQualifier: i32 = 174;
1476pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1477pub const NID_id_pe: i32 = 175;
1478pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1479pub const NID_id_ad: i32 = 176;
1480pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1481pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1482pub const NID_info_access: i32 = 177;
1483pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1484pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1485pub const NID_ad_OCSP: i32 = 178;
1486pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1487pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1488pub const NID_ad_ca_issuers: i32 = 179;
1489pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1490pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1491pub const NID_OCSP_sign: i32 = 180;
1492pub const SN_iso: &[u8; 4] = b"ISO\0";
1493pub const LN_iso: &[u8; 4] = b"iso\0";
1494pub const NID_iso: i32 = 181;
1495pub const OBJ_iso: i32 = 1;
1496pub const SN_member_body: &[u8; 12] = b"member-body\0";
1497pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1498pub const NID_member_body: i32 = 182;
1499pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1500pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1501pub const NID_ISO_US: i32 = 183;
1502pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1503pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1504pub const NID_X9_57: i32 = 184;
1505pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1506pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1507pub const NID_X9cm: i32 = 185;
1508pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1509pub const NID_pkcs1: i32 = 186;
1510pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1511pub const NID_pkcs5: i32 = 187;
1512pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1513pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1514pub const NID_SMIME: i32 = 188;
1515pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1516pub const NID_id_smime_mod: i32 = 189;
1517pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1518pub const NID_id_smime_ct: i32 = 190;
1519pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1520pub const NID_id_smime_aa: i32 = 191;
1521pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1522pub const NID_id_smime_alg: i32 = 192;
1523pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1524pub const NID_id_smime_cd: i32 = 193;
1525pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1526pub const NID_id_smime_spq: i32 = 194;
1527pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1528pub const NID_id_smime_cti: i32 = 195;
1529pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1530pub const NID_id_smime_mod_cms: i32 = 196;
1531pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1532pub const NID_id_smime_mod_ess: i32 = 197;
1533pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1534pub const NID_id_smime_mod_oid: i32 = 198;
1535pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1536pub const NID_id_smime_mod_msg_v3: i32 = 199;
1537pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1538pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1539pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1540pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1541pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1542pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1543pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1544pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1545pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1546pub const NID_id_smime_ct_receipt: i32 = 204;
1547pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1548pub const NID_id_smime_ct_authData: i32 = 205;
1549pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1550pub const NID_id_smime_ct_publishCert: i32 = 206;
1551pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1552pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1553pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1554pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1555pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1556pub const NID_id_smime_ct_contentInfo: i32 = 209;
1557pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1558pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1559pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1560pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1561pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1562pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1563pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1564pub const NID_id_smime_aa_securityLabel: i32 = 213;
1565pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1566pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1567pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1568pub const NID_id_smime_aa_contentHint: i32 = 215;
1569pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1570pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1571pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1572pub const NID_id_smime_aa_encapContentType: i32 = 217;
1573pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1574pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1575pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1576pub const NID_id_smime_aa_macValue: i32 = 219;
1577pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1578pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1579pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1580pub const NID_id_smime_aa_contentReference: i32 = 221;
1581pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1582pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1583pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1584pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1585pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1586pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1587pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1588pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1589pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1590pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1591pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1592pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1593pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1594pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1595pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1596pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1597pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1598pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1599pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1600pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1601pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1602pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1603pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1604pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1605pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1606pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1607pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1608pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1609pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1610pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1611pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1612pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1613pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1614pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1615pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1616pub const NID_id_smime_aa_signatureType: i32 = 239;
1617pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1618pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1619pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1620pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1621pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1622pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1623pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1624pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1625pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1626pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1627pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1628pub const NID_id_smime_alg_ESDH: i32 = 245;
1629pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1630pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1631pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1632pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1633pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1634pub const NID_id_smime_cd_ldap: i32 = 248;
1635pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1636pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1637pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1638pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1639pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1640pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1641pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1642pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1643pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1644pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1645pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1646pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1647pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1648pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1649pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1650pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1651pub const SN_md4: &[u8; 4] = b"MD4\0";
1652pub const LN_md4: &[u8; 4] = b"md4\0";
1653pub const NID_md4: i32 = 257;
1654pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1655pub const NID_id_pkix_mod: i32 = 258;
1656pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1657pub const NID_id_qt: i32 = 259;
1658pub const SN_id_it: &[u8; 6] = b"id-it\0";
1659pub const NID_id_it: i32 = 260;
1660pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1661pub const NID_id_pkip: i32 = 261;
1662pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1663pub const NID_id_alg: i32 = 262;
1664pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1665pub const NID_id_cmc: i32 = 263;
1666pub const SN_id_on: &[u8; 6] = b"id-on\0";
1667pub const NID_id_on: i32 = 264;
1668pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1669pub const NID_id_pda: i32 = 265;
1670pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1671pub const NID_id_aca: i32 = 266;
1672pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1673pub const NID_id_qcs: i32 = 267;
1674pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1675pub const NID_id_cct: i32 = 268;
1676pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1677pub const NID_id_pkix1_explicit_88: i32 = 269;
1678pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1679pub const NID_id_pkix1_implicit_88: i32 = 270;
1680pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1681pub const NID_id_pkix1_explicit_93: i32 = 271;
1682pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1683pub const NID_id_pkix1_implicit_93: i32 = 272;
1684pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1685pub const NID_id_mod_crmf: i32 = 273;
1686pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1687pub const NID_id_mod_cmc: i32 = 274;
1688pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1689pub const NID_id_mod_kea_profile_88: i32 = 275;
1690pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1691pub const NID_id_mod_kea_profile_93: i32 = 276;
1692pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1693pub const NID_id_mod_cmp: i32 = 277;
1694pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1695pub const NID_id_mod_qualified_cert_88: i32 = 278;
1696pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1697pub const NID_id_mod_qualified_cert_93: i32 = 279;
1698pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1699pub const NID_id_mod_attribute_cert: i32 = 280;
1700pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1701pub const NID_id_mod_timestamp_protocol: i32 = 281;
1702pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1703pub const NID_id_mod_ocsp: i32 = 282;
1704pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1705pub const NID_id_mod_dvcs: i32 = 283;
1706pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1707pub const NID_id_mod_cmp2000: i32 = 284;
1708pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1709pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1710pub const NID_biometricInfo: i32 = 285;
1711pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1712pub const NID_qcStatements: i32 = 286;
1713pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1714pub const NID_ac_auditEntity: i32 = 287;
1715pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1716pub const NID_ac_targeting: i32 = 288;
1717pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1718pub const NID_aaControls: i32 = 289;
1719pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1720pub const NID_sbgp_ipAddrBlock: i32 = 290;
1721pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1722pub const NID_sbgp_autonomousSysNum: i32 = 291;
1723pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1724pub const NID_sbgp_routerIdentifier: i32 = 292;
1725pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1726pub const NID_textNotice: i32 = 293;
1727pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1728pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1729pub const NID_ipsecEndSystem: i32 = 294;
1730pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1731pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1732pub const NID_ipsecTunnel: i32 = 295;
1733pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1734pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1735pub const NID_ipsecUser: i32 = 296;
1736pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1737pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1738pub const NID_dvcs: i32 = 297;
1739pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1740pub const NID_id_it_caProtEncCert: i32 = 298;
1741pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1742pub const NID_id_it_signKeyPairTypes: i32 = 299;
1743pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1744pub const NID_id_it_encKeyPairTypes: i32 = 300;
1745pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1746pub const NID_id_it_preferredSymmAlg: i32 = 301;
1747pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1748pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1749pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1750pub const NID_id_it_currentCRL: i32 = 303;
1751pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1752pub const NID_id_it_unsupportedOIDs: i32 = 304;
1753pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1754pub const NID_id_it_subscriptionRequest: i32 = 305;
1755pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1756pub const NID_id_it_subscriptionResponse: i32 = 306;
1757pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1758pub const NID_id_it_keyPairParamReq: i32 = 307;
1759pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1760pub const NID_id_it_keyPairParamRep: i32 = 308;
1761pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1762pub const NID_id_it_revPassphrase: i32 = 309;
1763pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1764pub const NID_id_it_implicitConfirm: i32 = 310;
1765pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1766pub const NID_id_it_confirmWaitTime: i32 = 311;
1767pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1768pub const NID_id_it_origPKIMessage: i32 = 312;
1769pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1770pub const NID_id_regCtrl: i32 = 313;
1771pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1772pub const NID_id_regInfo: i32 = 314;
1773pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1774pub const NID_id_regCtrl_regToken: i32 = 315;
1775pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1776pub const NID_id_regCtrl_authenticator: i32 = 316;
1777pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1778pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1779pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
1780pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
1781pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
1782pub const NID_id_regCtrl_oldCertID: i32 = 319;
1783pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
1784pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
1785pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
1786pub const NID_id_regInfo_utf8Pairs: i32 = 321;
1787pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
1788pub const NID_id_regInfo_certReq: i32 = 322;
1789pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
1790pub const NID_id_alg_des40: i32 = 323;
1791pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
1792pub const NID_id_alg_noSignature: i32 = 324;
1793pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
1794pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
1795pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
1796pub const NID_id_alg_dh_pop: i32 = 326;
1797pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
1798pub const NID_id_cmc_statusInfo: i32 = 327;
1799pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
1800pub const NID_id_cmc_identification: i32 = 328;
1801pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
1802pub const NID_id_cmc_identityProof: i32 = 329;
1803pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
1804pub const NID_id_cmc_dataReturn: i32 = 330;
1805pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
1806pub const NID_id_cmc_transactionId: i32 = 331;
1807pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
1808pub const NID_id_cmc_senderNonce: i32 = 332;
1809pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
1810pub const NID_id_cmc_recipientNonce: i32 = 333;
1811pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
1812pub const NID_id_cmc_addExtensions: i32 = 334;
1813pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
1814pub const NID_id_cmc_encryptedPOP: i32 = 335;
1815pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
1816pub const NID_id_cmc_decryptedPOP: i32 = 336;
1817pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
1818pub const NID_id_cmc_lraPOPWitness: i32 = 337;
1819pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
1820pub const NID_id_cmc_getCert: i32 = 338;
1821pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
1822pub const NID_id_cmc_getCRL: i32 = 339;
1823pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
1824pub const NID_id_cmc_revokeRequest: i32 = 340;
1825pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
1826pub const NID_id_cmc_regInfo: i32 = 341;
1827pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
1828pub const NID_id_cmc_responseInfo: i32 = 342;
1829pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
1830pub const NID_id_cmc_queryPending: i32 = 343;
1831pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
1832pub const NID_id_cmc_popLinkRandom: i32 = 344;
1833pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
1834pub const NID_id_cmc_popLinkWitness: i32 = 345;
1835pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
1836pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
1837pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
1838pub const NID_id_on_personalData: i32 = 347;
1839pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
1840pub const NID_id_pda_dateOfBirth: i32 = 348;
1841pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
1842pub const NID_id_pda_placeOfBirth: i32 = 349;
1843pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
1844pub const NID_id_pda_gender: i32 = 351;
1845pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
1846pub const NID_id_pda_countryOfCitizenship: i32 = 352;
1847pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
1848pub const NID_id_pda_countryOfResidence: i32 = 353;
1849pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
1850pub const NID_id_aca_authenticationInfo: i32 = 354;
1851pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
1852pub const NID_id_aca_accessIdentity: i32 = 355;
1853pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
1854pub const NID_id_aca_chargingIdentity: i32 = 356;
1855pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
1856pub const NID_id_aca_group: i32 = 357;
1857pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
1858pub const NID_id_aca_role: i32 = 358;
1859pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
1860pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
1861pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
1862pub const NID_id_cct_crs: i32 = 360;
1863pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
1864pub const NID_id_cct_PKIData: i32 = 361;
1865pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
1866pub const NID_id_cct_PKIResponse: i32 = 362;
1867pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
1868pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
1869pub const NID_ad_timeStamping: i32 = 363;
1870pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
1871pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
1872pub const NID_ad_dvcs: i32 = 364;
1873pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
1874pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
1875pub const NID_id_pkix_OCSP_basic: i32 = 365;
1876pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
1877pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
1878pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
1879pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
1880pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
1881pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
1882pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
1883pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
1884pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
1885pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
1886pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
1887pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
1888pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
1889pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
1890pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
1891pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
1892pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
1893pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
1894pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
1895pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
1896pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
1897pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
1898pub const NID_id_pkix_OCSP_valid: i32 = 373;
1899pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
1900pub const NID_id_pkix_OCSP_path: i32 = 374;
1901pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
1902pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
1903pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
1904pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
1905pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
1906pub const NID_algorithm: i32 = 376;
1907pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
1908pub const NID_rsaSignature: i32 = 377;
1909pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
1910pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
1911pub const NID_X500algorithms: i32 = 378;
1912pub const SN_org: &[u8; 4] = b"ORG\0";
1913pub const LN_org: &[u8; 4] = b"org\0";
1914pub const NID_org: i32 = 379;
1915pub const SN_dod: &[u8; 4] = b"DOD\0";
1916pub const LN_dod: &[u8; 4] = b"dod\0";
1917pub const NID_dod: i32 = 380;
1918pub const SN_iana: &[u8; 5] = b"IANA\0";
1919pub const LN_iana: &[u8; 5] = b"iana\0";
1920pub const NID_iana: i32 = 381;
1921pub const SN_Directory: &[u8; 10] = b"directory\0";
1922pub const LN_Directory: &[u8; 10] = b"Directory\0";
1923pub const NID_Directory: i32 = 382;
1924pub const SN_Management: &[u8; 5] = b"mgmt\0";
1925pub const LN_Management: &[u8; 11] = b"Management\0";
1926pub const NID_Management: i32 = 383;
1927pub const SN_Experimental: &[u8; 13] = b"experimental\0";
1928pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
1929pub const NID_Experimental: i32 = 384;
1930pub const SN_Private: &[u8; 8] = b"private\0";
1931pub const LN_Private: &[u8; 8] = b"Private\0";
1932pub const NID_Private: i32 = 385;
1933pub const SN_Security: &[u8; 9] = b"security\0";
1934pub const LN_Security: &[u8; 9] = b"Security\0";
1935pub const NID_Security: i32 = 386;
1936pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
1937pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
1938pub const NID_SNMPv2: i32 = 387;
1939pub const LN_Mail: &[u8; 5] = b"Mail\0";
1940pub const NID_Mail: i32 = 388;
1941pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
1942pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
1943pub const NID_Enterprises: i32 = 389;
1944pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
1945pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
1946pub const NID_dcObject: i32 = 390;
1947pub const SN_domainComponent: &[u8; 3] = b"DC\0";
1948pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
1949pub const NID_domainComponent: i32 = 391;
1950pub const SN_Domain: &[u8; 7] = b"domain\0";
1951pub const LN_Domain: &[u8; 7] = b"Domain\0";
1952pub const NID_Domain: i32 = 392;
1953pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
1954pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
1955pub const NID_selected_attribute_types: i32 = 394;
1956pub const SN_clearance: &[u8; 10] = b"clearance\0";
1957pub const NID_clearance: i32 = 395;
1958pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
1959pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
1960pub const NID_md4WithRSAEncryption: i32 = 396;
1961pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
1962pub const NID_ac_proxying: i32 = 397;
1963pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
1964pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
1965pub const NID_sinfo_access: i32 = 398;
1966pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
1967pub const NID_id_aca_encAttrs: i32 = 399;
1968pub const SN_role: &[u8; 5] = b"role\0";
1969pub const LN_role: &[u8; 5] = b"role\0";
1970pub const NID_role: i32 = 400;
1971pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
1972pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
1973pub const NID_policy_constraints: i32 = 401;
1974pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
1975pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
1976pub const NID_target_information: i32 = 402;
1977pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
1978pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
1979pub const NID_no_rev_avail: i32 = 403;
1980pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
1981pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
1982pub const NID_ansi_X9_62: i32 = 405;
1983pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
1984pub const NID_X9_62_prime_field: i32 = 406;
1985pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
1986pub const NID_X9_62_characteristic_two_field: i32 = 407;
1987pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
1988pub const NID_X9_62_id_ecPublicKey: i32 = 408;
1989pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
1990pub const NID_X9_62_prime192v1: i32 = 409;
1991pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
1992pub const NID_X9_62_prime192v2: i32 = 410;
1993pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
1994pub const NID_X9_62_prime192v3: i32 = 411;
1995pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
1996pub const NID_X9_62_prime239v1: i32 = 412;
1997pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
1998pub const NID_X9_62_prime239v2: i32 = 413;
1999pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
2000pub const NID_X9_62_prime239v3: i32 = 414;
2001pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2002pub const NID_X9_62_prime256v1: i32 = 415;
2003pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2004pub const NID_ecdsa_with_SHA1: i32 = 416;
2005pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2006pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2007pub const NID_ms_csp_name: i32 = 417;
2008pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2009pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2010pub const NID_aes_128_ecb: i32 = 418;
2011pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2012pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2013pub const NID_aes_128_cbc: i32 = 419;
2014pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2015pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2016pub const NID_aes_128_ofb128: i32 = 420;
2017pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2018pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2019pub const NID_aes_128_cfb128: i32 = 421;
2020pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2021pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2022pub const NID_aes_192_ecb: i32 = 422;
2023pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2024pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2025pub const NID_aes_192_cbc: i32 = 423;
2026pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2027pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2028pub const NID_aes_192_ofb128: i32 = 424;
2029pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2030pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2031pub const NID_aes_192_cfb128: i32 = 425;
2032pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2033pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2034pub const NID_aes_256_ecb: i32 = 426;
2035pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2036pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2037pub const NID_aes_256_cbc: i32 = 427;
2038pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2039pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2040pub const NID_aes_256_ofb128: i32 = 428;
2041pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2042pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2043pub const NID_aes_256_cfb128: i32 = 429;
2044pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2045pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2046pub const NID_hold_instruction_code: i32 = 430;
2047pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2048pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2049pub const NID_hold_instruction_none: i32 = 431;
2050pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2051pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2052pub const NID_hold_instruction_call_issuer: i32 = 432;
2053pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2054pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2055pub const NID_hold_instruction_reject: i32 = 433;
2056pub const SN_data: &[u8; 5] = b"data\0";
2057pub const NID_data: i32 = 434;
2058pub const SN_pss: &[u8; 4] = b"pss\0";
2059pub const NID_pss: i32 = 435;
2060pub const SN_ucl: &[u8; 4] = b"ucl\0";
2061pub const NID_ucl: i32 = 436;
2062pub const SN_pilot: &[u8; 6] = b"pilot\0";
2063pub const NID_pilot: i32 = 437;
2064pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2065pub const NID_pilotAttributeType: i32 = 438;
2066pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2067pub const NID_pilotAttributeSyntax: i32 = 439;
2068pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2069pub const NID_pilotObjectClass: i32 = 440;
2070pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2071pub const NID_pilotGroups: i32 = 441;
2072pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2073pub const NID_iA5StringSyntax: i32 = 442;
2074pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2075pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2076pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2077pub const NID_pilotObject: i32 = 444;
2078pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2079pub const NID_pilotPerson: i32 = 445;
2080pub const SN_account: &[u8; 8] = b"account\0";
2081pub const NID_account: i32 = 446;
2082pub const SN_document: &[u8; 9] = b"document\0";
2083pub const NID_document: i32 = 447;
2084pub const SN_room: &[u8; 5] = b"room\0";
2085pub const NID_room: i32 = 448;
2086pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2087pub const NID_documentSeries: i32 = 449;
2088pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2089pub const NID_rFC822localPart: i32 = 450;
2090pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2091pub const NID_dNSDomain: i32 = 451;
2092pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2093pub const NID_domainRelatedObject: i32 = 452;
2094pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2095pub const NID_friendlyCountry: i32 = 453;
2096pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2097pub const NID_simpleSecurityObject: i32 = 454;
2098pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2099pub const NID_pilotOrganization: i32 = 455;
2100pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2101pub const NID_pilotDSA: i32 = 456;
2102pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2103pub const NID_qualityLabelledData: i32 = 457;
2104pub const SN_userId: &[u8; 4] = b"UID\0";
2105pub const LN_userId: &[u8; 7] = b"userId\0";
2106pub const NID_userId: i32 = 458;
2107pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2108pub const NID_textEncodedORAddress: i32 = 459;
2109pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2110pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2111pub const NID_rfc822Mailbox: i32 = 460;
2112pub const SN_info: &[u8; 5] = b"info\0";
2113pub const NID_info: i32 = 461;
2114pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2115pub const NID_favouriteDrink: i32 = 462;
2116pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2117pub const NID_roomNumber: i32 = 463;
2118pub const SN_photo: &[u8; 6] = b"photo\0";
2119pub const NID_photo: i32 = 464;
2120pub const LN_userClass: &[u8; 10] = b"userClass\0";
2121pub const NID_userClass: i32 = 465;
2122pub const SN_host: &[u8; 5] = b"host\0";
2123pub const NID_host: i32 = 466;
2124pub const SN_manager: &[u8; 8] = b"manager\0";
2125pub const NID_manager: i32 = 467;
2126pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2127pub const NID_documentIdentifier: i32 = 468;
2128pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2129pub const NID_documentTitle: i32 = 469;
2130pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2131pub const NID_documentVersion: i32 = 470;
2132pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2133pub const NID_documentAuthor: i32 = 471;
2134pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2135pub const NID_documentLocation: i32 = 472;
2136pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2137pub const NID_homeTelephoneNumber: i32 = 473;
2138pub const SN_secretary: &[u8; 10] = b"secretary\0";
2139pub const NID_secretary: i32 = 474;
2140pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2141pub const NID_otherMailbox: i32 = 475;
2142pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2143pub const NID_lastModifiedTime: i32 = 476;
2144pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2145pub const NID_lastModifiedBy: i32 = 477;
2146pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2147pub const NID_aRecord: i32 = 478;
2148pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2149pub const NID_pilotAttributeType27: i32 = 479;
2150pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2151pub const NID_mXRecord: i32 = 480;
2152pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2153pub const NID_nSRecord: i32 = 481;
2154pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2155pub const NID_sOARecord: i32 = 482;
2156pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2157pub const NID_cNAMERecord: i32 = 483;
2158pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2159pub const NID_associatedDomain: i32 = 484;
2160pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2161pub const NID_associatedName: i32 = 485;
2162pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2163pub const NID_homePostalAddress: i32 = 486;
2164pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2165pub const NID_personalTitle: i32 = 487;
2166pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2167pub const NID_mobileTelephoneNumber: i32 = 488;
2168pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2169pub const NID_pagerTelephoneNumber: i32 = 489;
2170pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2171pub const NID_friendlyCountryName: i32 = 490;
2172pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2173pub const NID_organizationalStatus: i32 = 491;
2174pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2175pub const NID_janetMailbox: i32 = 492;
2176pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2177pub const NID_mailPreferenceOption: i32 = 493;
2178pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2179pub const NID_buildingName: i32 = 494;
2180pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2181pub const NID_dSAQuality: i32 = 495;
2182pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2183pub const NID_singleLevelQuality: i32 = 496;
2184pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2185pub const NID_subtreeMinimumQuality: i32 = 497;
2186pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2187pub const NID_subtreeMaximumQuality: i32 = 498;
2188pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2189pub const NID_personalSignature: i32 = 499;
2190pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2191pub const NID_dITRedirect: i32 = 500;
2192pub const SN_audio: &[u8; 6] = b"audio\0";
2193pub const NID_audio: i32 = 501;
2194pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2195pub const NID_documentPublisher: i32 = 502;
2196pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2197pub const NID_x500UniqueIdentifier: i32 = 503;
2198pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2199pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2200pub const NID_mime_mhs: i32 = 504;
2201pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2202pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2203pub const NID_mime_mhs_headings: i32 = 505;
2204pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2205pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2206pub const NID_mime_mhs_bodies: i32 = 506;
2207pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2208pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2209pub const NID_id_hex_partial_message: i32 = 507;
2210pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2211pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2212pub const NID_id_hex_multipart_message: i32 = 508;
2213pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2214pub const NID_generationQualifier: i32 = 509;
2215pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2216pub const NID_pseudonym: i32 = 510;
2217pub const SN_id_set: &[u8; 7] = b"id-set\0";
2218pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2219pub const NID_id_set: i32 = 512;
2220pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2221pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2222pub const NID_set_ctype: i32 = 513;
2223pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2224pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2225pub const NID_set_msgExt: i32 = 514;
2226pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2227pub const NID_set_attr: i32 = 515;
2228pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2229pub const NID_set_policy: i32 = 516;
2230pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2231pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2232pub const NID_set_certExt: i32 = 517;
2233pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2234pub const NID_set_brand: i32 = 518;
2235pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2236pub const NID_setct_PANData: i32 = 519;
2237pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2238pub const NID_setct_PANToken: i32 = 520;
2239pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2240pub const NID_setct_PANOnly: i32 = 521;
2241pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2242pub const NID_setct_OIData: i32 = 522;
2243pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2244pub const NID_setct_PI: i32 = 523;
2245pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2246pub const NID_setct_PIData: i32 = 524;
2247pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2248pub const NID_setct_PIDataUnsigned: i32 = 525;
2249pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2250pub const NID_setct_HODInput: i32 = 526;
2251pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2252pub const NID_setct_AuthResBaggage: i32 = 527;
2253pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2254pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2255pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2256pub const NID_setct_AuthRevResBaggage: i32 = 529;
2257pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2258pub const NID_setct_CapTokenSeq: i32 = 530;
2259pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2260pub const NID_setct_PInitResData: i32 = 531;
2261pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2262pub const NID_setct_PI_TBS: i32 = 532;
2263pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2264pub const NID_setct_PResData: i32 = 533;
2265pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2266pub const NID_setct_AuthReqTBS: i32 = 534;
2267pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2268pub const NID_setct_AuthResTBS: i32 = 535;
2269pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2270pub const NID_setct_AuthResTBSX: i32 = 536;
2271pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2272pub const NID_setct_AuthTokenTBS: i32 = 537;
2273pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2274pub const NID_setct_CapTokenData: i32 = 538;
2275pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2276pub const NID_setct_CapTokenTBS: i32 = 539;
2277pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2278pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2279pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2280pub const NID_setct_AuthRevReqTBS: i32 = 541;
2281pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2282pub const NID_setct_AuthRevResData: i32 = 542;
2283pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2284pub const NID_setct_AuthRevResTBS: i32 = 543;
2285pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2286pub const NID_setct_CapReqTBS: i32 = 544;
2287pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2288pub const NID_setct_CapReqTBSX: i32 = 545;
2289pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2290pub const NID_setct_CapResData: i32 = 546;
2291pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2292pub const NID_setct_CapRevReqTBS: i32 = 547;
2293pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2294pub const NID_setct_CapRevReqTBSX: i32 = 548;
2295pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2296pub const NID_setct_CapRevResData: i32 = 549;
2297pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2298pub const NID_setct_CredReqTBS: i32 = 550;
2299pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2300pub const NID_setct_CredReqTBSX: i32 = 551;
2301pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2302pub const NID_setct_CredResData: i32 = 552;
2303pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2304pub const NID_setct_CredRevReqTBS: i32 = 553;
2305pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2306pub const NID_setct_CredRevReqTBSX: i32 = 554;
2307pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2308pub const NID_setct_CredRevResData: i32 = 555;
2309pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2310pub const NID_setct_PCertReqData: i32 = 556;
2311pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2312pub const NID_setct_PCertResTBS: i32 = 557;
2313pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2314pub const NID_setct_BatchAdminReqData: i32 = 558;
2315pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2316pub const NID_setct_BatchAdminResData: i32 = 559;
2317pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2318pub const NID_setct_CardCInitResTBS: i32 = 560;
2319pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2320pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2321pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2322pub const NID_setct_RegFormResTBS: i32 = 562;
2323pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2324pub const NID_setct_CertReqData: i32 = 563;
2325pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2326pub const NID_setct_CertReqTBS: i32 = 564;
2327pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2328pub const NID_setct_CertResData: i32 = 565;
2329pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2330pub const NID_setct_CertInqReqTBS: i32 = 566;
2331pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2332pub const NID_setct_ErrorTBS: i32 = 567;
2333pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2334pub const NID_setct_PIDualSignedTBE: i32 = 568;
2335pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2336pub const NID_setct_PIUnsignedTBE: i32 = 569;
2337pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2338pub const NID_setct_AuthReqTBE: i32 = 570;
2339pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2340pub const NID_setct_AuthResTBE: i32 = 571;
2341pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2342pub const NID_setct_AuthResTBEX: i32 = 572;
2343pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2344pub const NID_setct_AuthTokenTBE: i32 = 573;
2345pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2346pub const NID_setct_CapTokenTBE: i32 = 574;
2347pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2348pub const NID_setct_CapTokenTBEX: i32 = 575;
2349pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2350pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2351pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2352pub const NID_setct_AuthRevReqTBE: i32 = 577;
2353pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2354pub const NID_setct_AuthRevResTBE: i32 = 578;
2355pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2356pub const NID_setct_AuthRevResTBEB: i32 = 579;
2357pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2358pub const NID_setct_CapReqTBE: i32 = 580;
2359pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2360pub const NID_setct_CapReqTBEX: i32 = 581;
2361pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2362pub const NID_setct_CapResTBE: i32 = 582;
2363pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2364pub const NID_setct_CapRevReqTBE: i32 = 583;
2365pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2366pub const NID_setct_CapRevReqTBEX: i32 = 584;
2367pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2368pub const NID_setct_CapRevResTBE: i32 = 585;
2369pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2370pub const NID_setct_CredReqTBE: i32 = 586;
2371pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2372pub const NID_setct_CredReqTBEX: i32 = 587;
2373pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2374pub const NID_setct_CredResTBE: i32 = 588;
2375pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2376pub const NID_setct_CredRevReqTBE: i32 = 589;
2377pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2378pub const NID_setct_CredRevReqTBEX: i32 = 590;
2379pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2380pub const NID_setct_CredRevResTBE: i32 = 591;
2381pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2382pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2383pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2384pub const NID_setct_BatchAdminResTBE: i32 = 593;
2385pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2386pub const NID_setct_RegFormReqTBE: i32 = 594;
2387pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2388pub const NID_setct_CertReqTBE: i32 = 595;
2389pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2390pub const NID_setct_CertReqTBEX: i32 = 596;
2391pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2392pub const NID_setct_CertResTBE: i32 = 597;
2393pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2394pub const NID_setct_CRLNotificationTBS: i32 = 598;
2395pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2396pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2397pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2398pub const NID_setct_BCIDistributionTBS: i32 = 600;
2399pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2400pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2401pub const NID_setext_genCrypt: i32 = 601;
2402pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2403pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2404pub const NID_setext_miAuth: i32 = 602;
2405pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2406pub const NID_setext_pinSecure: i32 = 603;
2407pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2408pub const NID_setext_pinAny: i32 = 604;
2409pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2410pub const NID_setext_track2: i32 = 605;
2411pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2412pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2413pub const NID_setext_cv: i32 = 606;
2414pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2415pub const NID_set_policy_root: i32 = 607;
2416pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2417pub const NID_setCext_hashedRoot: i32 = 608;
2418pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2419pub const NID_setCext_certType: i32 = 609;
2420pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2421pub const NID_setCext_merchData: i32 = 610;
2422pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2423pub const NID_setCext_cCertRequired: i32 = 611;
2424pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2425pub const NID_setCext_tunneling: i32 = 612;
2426pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2427pub const NID_setCext_setExt: i32 = 613;
2428pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2429pub const NID_setCext_setQualf: i32 = 614;
2430pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2431pub const NID_setCext_PGWYcapabilities: i32 = 615;
2432pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2433pub const NID_setCext_TokenIdentifier: i32 = 616;
2434pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2435pub const NID_setCext_Track2Data: i32 = 617;
2436pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2437pub const NID_setCext_TokenType: i32 = 618;
2438pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2439pub const NID_setCext_IssuerCapabilities: i32 = 619;
2440pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2441pub const NID_setAttr_Cert: i32 = 620;
2442pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2443pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2444pub const NID_setAttr_PGWYcap: i32 = 621;
2445pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2446pub const NID_setAttr_TokenType: i32 = 622;
2447pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2448pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2449pub const NID_setAttr_IssCap: i32 = 623;
2450pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2451pub const NID_set_rootKeyThumb: i32 = 624;
2452pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2453pub const NID_set_addPolicy: i32 = 625;
2454pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2455pub const NID_setAttr_Token_EMV: i32 = 626;
2456pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2457pub const NID_setAttr_Token_B0Prime: i32 = 627;
2458pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2459pub const NID_setAttr_IssCap_CVM: i32 = 628;
2460pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2461pub const NID_setAttr_IssCap_T2: i32 = 629;
2462pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2463pub const NID_setAttr_IssCap_Sig: i32 = 630;
2464pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2465pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2466pub const NID_setAttr_GenCryptgrm: i32 = 631;
2467pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2468pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2469pub const NID_setAttr_T2Enc: i32 = 632;
2470pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2471pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2472pub const NID_setAttr_T2cleartxt: i32 = 633;
2473pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2474pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2475pub const NID_setAttr_TokICCsig: i32 = 634;
2476pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2477pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2478pub const NID_setAttr_SecDevSig: i32 = 635;
2479pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2480pub const NID_set_brand_IATA_ATA: i32 = 636;
2481pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2482pub const NID_set_brand_Diners: i32 = 637;
2483pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2484pub const NID_set_brand_AmericanExpress: i32 = 638;
2485pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2486pub const NID_set_brand_JCB: i32 = 639;
2487pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2488pub const NID_set_brand_Visa: i32 = 640;
2489pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2490pub const NID_set_brand_MasterCard: i32 = 641;
2491pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2492pub const NID_set_brand_Novus: i32 = 642;
2493pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2494pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2495pub const NID_des_cdmf: i32 = 643;
2496pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2497pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2498pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2499pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2500pub const NID_itu_t: i32 = 645;
2501pub const OBJ_itu_t: i32 = 0;
2502pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2503pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2504pub const NID_joint_iso_itu_t: i32 = 646;
2505pub const OBJ_joint_iso_itu_t: i32 = 2;
2506pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2507pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2508pub const NID_international_organizations: i32 = 647;
2509pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2510pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2511pub const NID_ms_smartcard_login: i32 = 648;
2512pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2513pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2514pub const NID_ms_upn: i32 = 649;
2515pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2516pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2517pub const NID_aes_128_cfb1: i32 = 650;
2518pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2519pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2520pub const NID_aes_192_cfb1: i32 = 651;
2521pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2522pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2523pub const NID_aes_256_cfb1: i32 = 652;
2524pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2525pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2526pub const NID_aes_128_cfb8: i32 = 653;
2527pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2528pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2529pub const NID_aes_192_cfb8: i32 = 654;
2530pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2531pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2532pub const NID_aes_256_cfb8: i32 = 655;
2533pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2534pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2535pub const NID_des_cfb1: i32 = 656;
2536pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2537pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2538pub const NID_des_cfb8: i32 = 657;
2539pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2540pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2541pub const NID_des_ede3_cfb1: i32 = 658;
2542pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2543pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2544pub const NID_des_ede3_cfb8: i32 = 659;
2545pub const SN_streetAddress: &[u8; 7] = b"street\0";
2546pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2547pub const NID_streetAddress: i32 = 660;
2548pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2549pub const NID_postalCode: i32 = 661;
2550pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2551pub const NID_id_ppl: i32 = 662;
2552pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2553pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2554pub const NID_proxyCertInfo: i32 = 663;
2555pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2556pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2557pub const NID_id_ppl_anyLanguage: i32 = 664;
2558pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2559pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2560pub const NID_id_ppl_inheritAll: i32 = 665;
2561pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2562pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2563pub const NID_name_constraints: i32 = 666;
2564pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2565pub const LN_Independent: &[u8; 12] = b"Independent\0";
2566pub const NID_Independent: i32 = 667;
2567pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2568pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2569pub const NID_sha256WithRSAEncryption: i32 = 668;
2570pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2571pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2572pub const NID_sha384WithRSAEncryption: i32 = 669;
2573pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2574pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2575pub const NID_sha512WithRSAEncryption: i32 = 670;
2576pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2577pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2578pub const NID_sha224WithRSAEncryption: i32 = 671;
2579pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2580pub const LN_sha256: &[u8; 7] = b"sha256\0";
2581pub const NID_sha256: i32 = 672;
2582pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2583pub const LN_sha384: &[u8; 7] = b"sha384\0";
2584pub const NID_sha384: i32 = 673;
2585pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2586pub const LN_sha512: &[u8; 7] = b"sha512\0";
2587pub const NID_sha512: i32 = 674;
2588pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2589pub const LN_sha224: &[u8; 7] = b"sha224\0";
2590pub const NID_sha224: i32 = 675;
2591pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2592pub const NID_identified_organization: i32 = 676;
2593pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2594pub const NID_certicom_arc: i32 = 677;
2595pub const SN_wap: &[u8; 4] = b"wap\0";
2596pub const NID_wap: i32 = 678;
2597pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2598pub const NID_wap_wsg: i32 = 679;
2599pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2600pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2601pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2602pub const NID_X9_62_onBasis: i32 = 681;
2603pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2604pub const NID_X9_62_tpBasis: i32 = 682;
2605pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2606pub const NID_X9_62_ppBasis: i32 = 683;
2607pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2608pub const NID_X9_62_c2pnb163v1: i32 = 684;
2609pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2610pub const NID_X9_62_c2pnb163v2: i32 = 685;
2611pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2612pub const NID_X9_62_c2pnb163v3: i32 = 686;
2613pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2614pub const NID_X9_62_c2pnb176v1: i32 = 687;
2615pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2616pub const NID_X9_62_c2tnb191v1: i32 = 688;
2617pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2618pub const NID_X9_62_c2tnb191v2: i32 = 689;
2619pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2620pub const NID_X9_62_c2tnb191v3: i32 = 690;
2621pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2622pub const NID_X9_62_c2onb191v4: i32 = 691;
2623pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2624pub const NID_X9_62_c2onb191v5: i32 = 692;
2625pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2626pub const NID_X9_62_c2pnb208w1: i32 = 693;
2627pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2628pub const NID_X9_62_c2tnb239v1: i32 = 694;
2629pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2630pub const NID_X9_62_c2tnb239v2: i32 = 695;
2631pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2632pub const NID_X9_62_c2tnb239v3: i32 = 696;
2633pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2634pub const NID_X9_62_c2onb239v4: i32 = 697;
2635pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2636pub const NID_X9_62_c2onb239v5: i32 = 698;
2637pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2638pub const NID_X9_62_c2pnb272w1: i32 = 699;
2639pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2640pub const NID_X9_62_c2pnb304w1: i32 = 700;
2641pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2642pub const NID_X9_62_c2tnb359v1: i32 = 701;
2643pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2644pub const NID_X9_62_c2pnb368w1: i32 = 702;
2645pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2646pub const NID_X9_62_c2tnb431r1: i32 = 703;
2647pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2648pub const NID_secp112r1: i32 = 704;
2649pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2650pub const NID_secp112r2: i32 = 705;
2651pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2652pub const NID_secp128r1: i32 = 706;
2653pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2654pub const NID_secp128r2: i32 = 707;
2655pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2656pub const NID_secp160k1: i32 = 708;
2657pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2658pub const NID_secp160r1: i32 = 709;
2659pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2660pub const NID_secp160r2: i32 = 710;
2661pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2662pub const NID_secp192k1: i32 = 711;
2663pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2664pub const NID_secp224k1: i32 = 712;
2665pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2666pub const NID_secp224r1: i32 = 713;
2667pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2668pub const NID_secp256k1: i32 = 714;
2669pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2670pub const NID_secp384r1: i32 = 715;
2671pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2672pub const NID_secp521r1: i32 = 716;
2673pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2674pub const NID_sect113r1: i32 = 717;
2675pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2676pub const NID_sect113r2: i32 = 718;
2677pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2678pub const NID_sect131r1: i32 = 719;
2679pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2680pub const NID_sect131r2: i32 = 720;
2681pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2682pub const NID_sect163k1: i32 = 721;
2683pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2684pub const NID_sect163r1: i32 = 722;
2685pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2686pub const NID_sect163r2: i32 = 723;
2687pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2688pub const NID_sect193r1: i32 = 724;
2689pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2690pub const NID_sect193r2: i32 = 725;
2691pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2692pub const NID_sect233k1: i32 = 726;
2693pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2694pub const NID_sect233r1: i32 = 727;
2695pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2696pub const NID_sect239k1: i32 = 728;
2697pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2698pub const NID_sect283k1: i32 = 729;
2699pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2700pub const NID_sect283r1: i32 = 730;
2701pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2702pub const NID_sect409k1: i32 = 731;
2703pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2704pub const NID_sect409r1: i32 = 732;
2705pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2706pub const NID_sect571k1: i32 = 733;
2707pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2708pub const NID_sect571r1: i32 = 734;
2709pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2710pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2711pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2712pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2713pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2714pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2715pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2716pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2717pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2718pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2719pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2720pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2721pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2722pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2723pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2724pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2725pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2726pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2727pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2728pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2729pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2730pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2731pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2732pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2733pub const NID_any_policy: i32 = 746;
2734pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2735pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2736pub const NID_policy_mappings: i32 = 747;
2737pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2738pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2739pub const NID_inhibit_any_policy: i32 = 748;
2740pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2741pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2742pub const NID_ipsec3: i32 = 749;
2743pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2744pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2745pub const NID_ipsec4: i32 = 750;
2746pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2747pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2748pub const NID_camellia_128_cbc: i32 = 751;
2749pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2750pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2751pub const NID_camellia_192_cbc: i32 = 752;
2752pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2753pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2754pub const NID_camellia_256_cbc: i32 = 753;
2755pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2756pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2757pub const NID_camellia_128_ecb: i32 = 754;
2758pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2759pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2760pub const NID_camellia_192_ecb: i32 = 755;
2761pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2762pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2763pub const NID_camellia_256_ecb: i32 = 756;
2764pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2765pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2766pub const NID_camellia_128_cfb128: i32 = 757;
2767pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2768pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2769pub const NID_camellia_192_cfb128: i32 = 758;
2770pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2771pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2772pub const NID_camellia_256_cfb128: i32 = 759;
2773pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2774pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2775pub const NID_camellia_128_cfb1: i32 = 760;
2776pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
2777pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
2778pub const NID_camellia_192_cfb1: i32 = 761;
2779pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
2780pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
2781pub const NID_camellia_256_cfb1: i32 = 762;
2782pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
2783pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
2784pub const NID_camellia_128_cfb8: i32 = 763;
2785pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
2786pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
2787pub const NID_camellia_192_cfb8: i32 = 764;
2788pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
2789pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
2790pub const NID_camellia_256_cfb8: i32 = 765;
2791pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
2792pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
2793pub const NID_camellia_128_ofb128: i32 = 766;
2794pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
2795pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
2796pub const NID_camellia_192_ofb128: i32 = 767;
2797pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
2798pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
2799pub const NID_camellia_256_ofb128: i32 = 768;
2800pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
2801pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
2802pub const NID_subject_directory_attributes: i32 = 769;
2803pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
2804pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
2805pub const NID_issuing_distribution_point: i32 = 770;
2806pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
2807pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
2808pub const NID_certificate_issuer: i32 = 771;
2809pub const SN_kisa: &[u8; 5] = b"KISA\0";
2810pub const LN_kisa: &[u8; 5] = b"kisa\0";
2811pub const NID_kisa: i32 = 773;
2812pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
2813pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
2814pub const NID_seed_ecb: i32 = 776;
2815pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
2816pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
2817pub const NID_seed_cbc: i32 = 777;
2818pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
2819pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
2820pub const NID_seed_ofb128: i32 = 778;
2821pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
2822pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
2823pub const NID_seed_cfb128: i32 = 779;
2824pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
2825pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
2826pub const NID_hmac_md5: i32 = 780;
2827pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
2828pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
2829pub const NID_hmac_sha1: i32 = 781;
2830pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
2831pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
2832pub const NID_id_PasswordBasedMAC: i32 = 782;
2833pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
2834pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
2835pub const NID_id_DHBasedMac: i32 = 783;
2836pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
2837pub const NID_id_it_suppLangTags: i32 = 784;
2838pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
2839pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
2840pub const NID_caRepository: i32 = 785;
2841pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
2842pub const NID_id_smime_ct_compressedData: i32 = 786;
2843pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
2844pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
2845pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
2846pub const NID_id_aes128_wrap: i32 = 788;
2847pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
2848pub const NID_id_aes192_wrap: i32 = 789;
2849pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
2850pub const NID_id_aes256_wrap: i32 = 790;
2851pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
2852pub const NID_ecdsa_with_Recommended: i32 = 791;
2853pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
2854pub const NID_ecdsa_with_Specified: i32 = 792;
2855pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
2856pub const NID_ecdsa_with_SHA224: i32 = 793;
2857pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
2858pub const NID_ecdsa_with_SHA256: i32 = 794;
2859pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
2860pub const NID_ecdsa_with_SHA384: i32 = 795;
2861pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
2862pub const NID_ecdsa_with_SHA512: i32 = 796;
2863pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
2864pub const NID_hmacWithMD5: i32 = 797;
2865pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
2866pub const NID_hmacWithSHA224: i32 = 798;
2867pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
2868pub const NID_hmacWithSHA256: i32 = 799;
2869pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
2870pub const NID_hmacWithSHA384: i32 = 800;
2871pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
2872pub const NID_hmacWithSHA512: i32 = 801;
2873pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
2874pub const NID_dsa_with_SHA224: i32 = 802;
2875pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
2876pub const NID_dsa_with_SHA256: i32 = 803;
2877pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
2878pub const NID_whirlpool: i32 = 804;
2879pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
2880pub const NID_cryptopro: i32 = 805;
2881pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
2882pub const NID_cryptocom: i32 = 806;
2883pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
2884    b"id-GostR3411-94-with-GostR3410-2001\0";
2885pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
2886    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
2887pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
2888pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
2889pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
2890    b"GOST R 34.11-94 with GOST R 34.10-94\0";
2891pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
2892pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
2893pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
2894pub const NID_id_GostR3411_94: i32 = 809;
2895pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
2896pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
2897pub const NID_id_HMACGostR3411_94: i32 = 810;
2898pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
2899pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
2900pub const NID_id_GostR3410_2001: i32 = 811;
2901pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
2902pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
2903pub const NID_id_GostR3410_94: i32 = 812;
2904pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
2905pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
2906pub const NID_id_Gost28147_89: i32 = 813;
2907pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
2908pub const NID_gost89_cnt: i32 = 814;
2909pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
2910pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
2911pub const NID_id_Gost28147_89_MAC: i32 = 815;
2912pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
2913pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
2914pub const NID_id_GostR3411_94_prf: i32 = 816;
2915pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
2916pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
2917pub const NID_id_GostR3410_2001DH: i32 = 817;
2918pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
2919pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
2920pub const NID_id_GostR3410_94DH: i32 = 818;
2921pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
2922    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
2923pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
2924pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
2925pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
2926pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
2927pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
2928pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
2929pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
2930pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
2931pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
2932pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
2933    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
2934pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
2935pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
2936    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
2937pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
2938pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
2939    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
2940pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
2941pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
2942    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
2943pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
2944pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
2945    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
2946pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
2947pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
2948    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
2949pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
2950pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
2951    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
2952pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
2953pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
2954pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
2955pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
2956    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
2957pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
2958pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
2959    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
2960pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
2961pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
2962    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
2963pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
2964pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
2965    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
2966pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
2967pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
2968    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
2969pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
2970pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
2971    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
2972pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
2973pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
2974    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
2975pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
2976pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
2977pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
2978pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
2979    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
2980pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
2981pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
2982    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
2983pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
2984pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
2985    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
2986pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
2987pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
2988    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
2989pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
2990pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
2991    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
2992pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
2993pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
2994pub const NID_id_GostR3410_94_a: i32 = 845;
2995pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
2996pub const NID_id_GostR3410_94_aBis: i32 = 846;
2997pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
2998pub const NID_id_GostR3410_94_b: i32 = 847;
2999pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
3000pub const NID_id_GostR3410_94_bBis: i32 = 848;
3001pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3002pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3003pub const NID_id_Gost28147_89_cc: i32 = 849;
3004pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3005pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3006pub const NID_id_GostR3410_94_cc: i32 = 850;
3007pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3008pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3009pub const NID_id_GostR3410_2001_cc: i32 = 851;
3010pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3011    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3012pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3013    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3014pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3015pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3016    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3017pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3018    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3019pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3020pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3021pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3022    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3023pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3024pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3025pub const LN_hmac: &[u8; 5] = b"hmac\0";
3026pub const NID_hmac: i32 = 855;
3027pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3028pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3029pub const NID_LocalKeySet: i32 = 856;
3030pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3031pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3032pub const NID_freshest_crl: i32 = 857;
3033pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3034pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3035pub const NID_id_on_permanentIdentifier: i32 = 858;
3036pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3037pub const NID_searchGuide: i32 = 859;
3038pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3039pub const NID_businessCategory: i32 = 860;
3040pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3041pub const NID_postalAddress: i32 = 861;
3042pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3043pub const NID_postOfficeBox: i32 = 862;
3044pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3045pub const NID_physicalDeliveryOfficeName: i32 = 863;
3046pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3047pub const NID_telephoneNumber: i32 = 864;
3048pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3049pub const NID_telexNumber: i32 = 865;
3050pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3051pub const NID_teletexTerminalIdentifier: i32 = 866;
3052pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3053pub const NID_facsimileTelephoneNumber: i32 = 867;
3054pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3055pub const NID_x121Address: i32 = 868;
3056pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3057pub const NID_internationaliSDNNumber: i32 = 869;
3058pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3059pub const NID_registeredAddress: i32 = 870;
3060pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3061pub const NID_destinationIndicator: i32 = 871;
3062pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3063pub const NID_preferredDeliveryMethod: i32 = 872;
3064pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3065pub const NID_presentationAddress: i32 = 873;
3066pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3067pub const NID_supportedApplicationContext: i32 = 874;
3068pub const SN_member: &[u8; 7] = b"member\0";
3069pub const NID_member: i32 = 875;
3070pub const SN_owner: &[u8; 6] = b"owner\0";
3071pub const NID_owner: i32 = 876;
3072pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3073pub const NID_roleOccupant: i32 = 877;
3074pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3075pub const NID_seeAlso: i32 = 878;
3076pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3077pub const NID_userPassword: i32 = 879;
3078pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3079pub const NID_userCertificate: i32 = 880;
3080pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3081pub const NID_cACertificate: i32 = 881;
3082pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3083pub const NID_authorityRevocationList: i32 = 882;
3084pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3085pub const NID_certificateRevocationList: i32 = 883;
3086pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3087pub const NID_crossCertificatePair: i32 = 884;
3088pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3089pub const NID_enhancedSearchGuide: i32 = 885;
3090pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3091pub const NID_protocolInformation: i32 = 886;
3092pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3093pub const NID_distinguishedName: i32 = 887;
3094pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3095pub const NID_uniqueMember: i32 = 888;
3096pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3097pub const NID_houseIdentifier: i32 = 889;
3098pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3099pub const NID_supportedAlgorithms: i32 = 890;
3100pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3101pub const NID_deltaRevocationList: i32 = 891;
3102pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3103pub const NID_dmdName: i32 = 892;
3104pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3105pub const NID_id_alg_PWRI_KEK: i32 = 893;
3106pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3107pub const LN_cmac: &[u8; 5] = b"cmac\0";
3108pub const NID_cmac: i32 = 894;
3109pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3110pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3111pub const NID_aes_128_gcm: i32 = 895;
3112pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3113pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3114pub const NID_aes_128_ccm: i32 = 896;
3115pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3116pub const NID_id_aes128_wrap_pad: i32 = 897;
3117pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3118pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3119pub const NID_aes_192_gcm: i32 = 898;
3120pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3121pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3122pub const NID_aes_192_ccm: i32 = 899;
3123pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3124pub const NID_id_aes192_wrap_pad: i32 = 900;
3125pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3126pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3127pub const NID_aes_256_gcm: i32 = 901;
3128pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3129pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3130pub const NID_aes_256_ccm: i32 = 902;
3131pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3132pub const NID_id_aes256_wrap_pad: i32 = 903;
3133pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3134pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3135pub const NID_aes_128_ctr: i32 = 904;
3136pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3137pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3138pub const NID_aes_192_ctr: i32 = 905;
3139pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3140pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3141pub const NID_aes_256_ctr: i32 = 906;
3142pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3143pub const NID_id_camellia128_wrap: i32 = 907;
3144pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3145pub const NID_id_camellia192_wrap: i32 = 908;
3146pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3147pub const NID_id_camellia256_wrap: i32 = 909;
3148pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3149pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3150pub const NID_anyExtendedKeyUsage: i32 = 910;
3151pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3152pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3153pub const NID_mgf1: i32 = 911;
3154pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3155pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3156pub const NID_rsassaPss: i32 = 912;
3157pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3158pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3159pub const NID_aes_128_xts: i32 = 913;
3160pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3161pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3162pub const NID_aes_256_xts: i32 = 914;
3163pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3164pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3165pub const NID_rc4_hmac_md5: i32 = 915;
3166pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3167pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3168pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3169pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3170pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3171pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3172pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3173pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3174pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3175pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3176pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3177pub const NID_rsaesOaep: i32 = 919;
3178pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3179pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3180pub const NID_dhpublicnumber: i32 = 920;
3181pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3182pub const NID_brainpoolP160r1: i32 = 921;
3183pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3184pub const NID_brainpoolP160t1: i32 = 922;
3185pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3186pub const NID_brainpoolP192r1: i32 = 923;
3187pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3188pub const NID_brainpoolP192t1: i32 = 924;
3189pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3190pub const NID_brainpoolP224r1: i32 = 925;
3191pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3192pub const NID_brainpoolP224t1: i32 = 926;
3193pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3194pub const NID_brainpoolP256r1: i32 = 927;
3195pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3196pub const NID_brainpoolP256t1: i32 = 928;
3197pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3198pub const NID_brainpoolP320r1: i32 = 929;
3199pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3200pub const NID_brainpoolP320t1: i32 = 930;
3201pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3202pub const NID_brainpoolP384r1: i32 = 931;
3203pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3204pub const NID_brainpoolP384t1: i32 = 932;
3205pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3206pub const NID_brainpoolP512r1: i32 = 933;
3207pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3208pub const NID_brainpoolP512t1: i32 = 934;
3209pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3210pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3211pub const NID_pSpecified: i32 = 935;
3212pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3213pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3214pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3215    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3216pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3217pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3218    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3219pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3220pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3221    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3222pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3223pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3224    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3225pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3226pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3227    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3228pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3229pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3230    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3231pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3232pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3233    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3234pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3235pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3236    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3237pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3238pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3239    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3240pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3241pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3242pub const NID_dh_std_kdf: i32 = 946;
3243pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3244pub const NID_dh_cofactor_kdf: i32 = 947;
3245pub const SN_X25519: &[u8; 7] = b"X25519\0";
3246pub const NID_X25519: i32 = 948;
3247pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3248pub const NID_ED25519: i32 = 949;
3249pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3250pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3251pub const NID_chacha20_poly1305: i32 = 950;
3252pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3253pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3254pub const NID_kx_rsa: i32 = 951;
3255pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3256pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3257pub const NID_kx_ecdhe: i32 = 952;
3258pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3259pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3260pub const NID_kx_psk: i32 = 953;
3261pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3262pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3263pub const NID_auth_rsa: i32 = 954;
3264pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3265pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3266pub const NID_auth_ecdsa: i32 = 955;
3267pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3268pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3269pub const NID_auth_psk: i32 = 956;
3270pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3271pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3272pub const NID_kx_any: i32 = 957;
3273pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3274pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3275pub const NID_auth_any: i32 = 958;
3276pub const SN_ED448: &[u8; 6] = b"ED448\0";
3277pub const NID_ED448: i32 = 960;
3278pub const SN_X448: &[u8; 5] = b"X448\0";
3279pub const NID_X448: i32 = 961;
3280pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3281pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3282pub const NID_sha512_256: i32 = 962;
3283pub const SN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"AES-128-CBC-HMAC-SHA256\0";
3284pub const LN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"aes-128-cbc-hmac-sha256\0";
3285pub const NID_aes_128_cbc_hmac_sha256: i32 = 963;
3286pub const SN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"AES-256-CBC-HMAC-SHA256\0";
3287pub const LN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"aes-256-cbc-hmac-sha256\0";
3288pub const NID_aes_256_cbc_hmac_sha256: i32 = 964;
3289pub const SN_sha3_224: &[u8; 9] = b"SHA3-224\0";
3290pub const LN_sha3_224: &[u8; 9] = b"sha3-224\0";
3291pub const NID_sha3_224: i32 = 965;
3292pub const SN_sha3_256: &[u8; 9] = b"SHA3-256\0";
3293pub const LN_sha3_256: &[u8; 9] = b"sha3-256\0";
3294pub const NID_sha3_256: i32 = 966;
3295pub const SN_sha3_384: &[u8; 9] = b"SHA3-384\0";
3296pub const LN_sha3_384: &[u8; 9] = b"sha3-384\0";
3297pub const NID_sha3_384: i32 = 967;
3298pub const SN_sha3_512: &[u8; 9] = b"SHA3-512\0";
3299pub const LN_sha3_512: &[u8; 9] = b"sha3-512\0";
3300pub const NID_sha3_512: i32 = 968;
3301pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3302pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3303pub const NID_hkdf: i32 = 969;
3304pub const SN_kem: &[u8; 4] = b"KEM\0";
3305pub const LN_kem: &[u8; 4] = b"kem\0";
3306pub const NID_kem: i32 = 970;
3307pub const SN_ffdhe2048: &[u8; 10] = b"ffdhe2048\0";
3308pub const NID_ffdhe2048: i32 = 976;
3309pub const SN_ffdhe4096: &[u8; 10] = b"ffdhe4096\0";
3310pub const NID_ffdhe4096: i32 = 977;
3311pub const SN_sha512_224: &[u8; 11] = b"SHA512-224\0";
3312pub const LN_sha512_224: &[u8; 11] = b"sha512-224\0";
3313pub const NID_sha512_224: i32 = 978;
3314pub const SN_shake128: &[u8; 9] = b"SHAKE128\0";
3315pub const LN_shake128: &[u8; 9] = b"shake128\0";
3316pub const NID_shake128: i32 = 979;
3317pub const SN_shake256: &[u8; 9] = b"SHAKE256\0";
3318pub const LN_shake256: &[u8; 9] = b"shake256\0";
3319pub const NID_shake256: i32 = 980;
3320pub const SN_ffdhe3072: &[u8; 10] = b"ffdhe3072\0";
3321pub const NID_ffdhe3072: i32 = 983;
3322pub const SN_ffdhe8192: &[u8; 10] = b"ffdhe8192\0";
3323pub const NID_ffdhe8192: i32 = 984;
3324pub const SN_MLKEM512IPD: &[u8; 12] = b"MLKEM512IPD\0";
3325pub const NID_MLKEM512IPD: i32 = 985;
3326pub const SN_MLKEM768IPD: &[u8; 12] = b"MLKEM768IPD\0";
3327pub const NID_MLKEM768IPD: i32 = 986;
3328pub const SN_MLKEM1024IPD: &[u8; 13] = b"MLKEM1024IPD\0";
3329pub const NID_MLKEM1024IPD: i32 = 987;
3330pub const SN_MLKEM512: &[u8; 9] = b"MLKEM512\0";
3331pub const NID_MLKEM512: i32 = 988;
3332pub const SN_MLKEM768: &[u8; 9] = b"MLKEM768\0";
3333pub const NID_MLKEM768: i32 = 989;
3334pub const SN_MLKEM1024: &[u8; 10] = b"MLKEM1024\0";
3335pub const NID_MLKEM1024: i32 = 990;
3336pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3337pub const NID_X25519MLKEM768: i32 = 991;
3338pub const SN_SecP256r1MLKEM768: &[u8; 18] = b"SecP256r1MLKEM768\0";
3339pub const NID_SecP256r1MLKEM768: i32 = 992;
3340pub const SN_PQDSA: &[u8; 6] = b"PQDSA\0";
3341pub const NID_PQDSA: i32 = 993;
3342pub const SN_MLDSA44: &[u8; 8] = b"MLDSA44\0";
3343pub const NID_MLDSA44: i32 = 994;
3344pub const SN_MLDSA65: &[u8; 8] = b"MLDSA65\0";
3345pub const NID_MLDSA65: i32 = 995;
3346pub const SN_MLDSA87: &[u8; 8] = b"MLDSA87\0";
3347pub const NID_MLDSA87: i32 = 996;
3348pub const SN_ED25519ph: &[u8; 10] = b"ED25519ph\0";
3349pub const NID_ED25519ph: i32 = 997;
3350pub const SN_SecP384r1MLKEM1024: &[u8; 19] = b"SecP384r1MLKEM1024\0";
3351pub const NID_SecP384r1MLKEM1024: i32 = 998;
3352pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3353pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3354pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3355pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3356pub const MD5_CBLOCK: i32 = 64;
3357pub const MD5_DIGEST_LENGTH: i32 = 16;
3358pub const HMAC_MD5_PRECOMPUTED_KEY_SIZE: i32 = 32;
3359pub const HMAC_SHA1_PRECOMPUTED_KEY_SIZE: i32 = 40;
3360pub const HMAC_SHA224_PRECOMPUTED_KEY_SIZE: i32 = 64;
3361pub const HMAC_SHA256_PRECOMPUTED_KEY_SIZE: i32 = 64;
3362pub const HMAC_SHA384_PRECOMPUTED_KEY_SIZE: i32 = 128;
3363pub const HMAC_SHA512_PRECOMPUTED_KEY_SIZE: i32 = 128;
3364pub const HMAC_SHA512_224_PRECOMPUTED_KEY_SIZE: i32 = 128;
3365pub const HMAC_SHA512_256_PRECOMPUTED_KEY_SIZE: i32 = 128;
3366pub const HMAC_MAX_PRECOMPUTED_KEY_SIZE: i32 = 128;
3367pub const HMAC_R_MISSING_PARAMETERS: i32 = 100;
3368pub const HMAC_R_BUFFER_TOO_SMALL: i32 = 102;
3369pub const HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED: i32 = 103;
3370pub const HMAC_R_NOT_CALLED_JUST_AFTER_INIT: i32 = 104;
3371pub const HMAC_R_PRECOMPUTED_KEY_NOT_SUPPORTED_FOR_DIGEST: i32 = 105;
3372pub const EVP_PKEY_NONE: i32 = 0;
3373pub const EVP_PKEY_RSA: i32 = 6;
3374pub const EVP_PKEY_RSA_PSS: i32 = 912;
3375pub const EVP_PKEY_EC: i32 = 408;
3376pub const EVP_PKEY_ED25519: i32 = 949;
3377pub const EVP_PKEY_ED25519PH: i32 = 997;
3378pub const EVP_PKEY_X25519: i32 = 948;
3379pub const EVP_PKEY_HKDF: i32 = 969;
3380pub const EVP_PKEY_HMAC: i32 = 855;
3381pub const EVP_PKEY_DH: i32 = 28;
3382pub const EVP_PKEY_PQDSA: i32 = 993;
3383pub const EVP_PKEY_KEM: i32 = 970;
3384pub const PKCS5_SALT_LEN: i32 = 8;
3385pub const EVP_PKEY_RSA2: i32 = 19;
3386pub const EVP_PKEY_X448: i32 = 961;
3387pub const EVP_PKEY_ED448: i32 = 960;
3388pub const EVP_PKEY_DSA: i32 = 116;
3389pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3390pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3391pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3392pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3393pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3394pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 32;
3395pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 32;
3396pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 32;
3397pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3398pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3399pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3400pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3401pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3402pub const HRSS_SAMPLE_BYTES: i32 = 700;
3403pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3404pub const HRSS_ENCAP_BYTES: i32 = 1400;
3405pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3406pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3407pub const HRSS_KEY_BYTES: i32 = 32;
3408pub const HRSS_POLY3_BYTES: i32 = 140;
3409pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3410pub const MD4_CBLOCK: i32 = 64;
3411pub const MD4_DIGEST_LENGTH: i32 = 16;
3412pub const PKCS7_DETACHED: i32 = 64;
3413pub const PKCS7_BINARY: i32 = 128;
3414pub const PKCS7_NOINTERN: i32 = 16;
3415pub const PKCS7_NOATTR: i32 = 256;
3416pub const PKCS7_NOCERTS: i32 = 2;
3417pub const PKCS7_NOVERIFY: i32 = 32;
3418pub const PKCS7_TEXT: i32 = 1;
3419pub const PKCS7_NOSIGS: i32 = 4;
3420pub const PKCS7_NOCHAIN: i32 = 8;
3421pub const PKCS7_NOSMIMECAP: i32 = 512;
3422pub const PKCS7_STREAM: i32 = 4096;
3423pub const PKCS7_PARTIAL: i32 = 16384;
3424pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3425pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3426pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3427pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3428pub const PKCS7_R_INVALID_NULL_POINTER: i32 = 104;
3429pub const PKCS7_R_NO_CONTENT: i32 = 105;
3430pub const PKCS7_R_CIPHER_NOT_INITIALIZED: i32 = 106;
3431pub const PKCS7_R_UNSUPPORTED_CONTENT_TYPE: i32 = 107;
3432pub const PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST: i32 = 108;
3433pub const PKCS7_R_UNABLE_TO_FIND_MEM_BIO: i32 = 109;
3434pub const PKCS7_R_WRONG_CONTENT_TYPE: i32 = 110;
3435pub const PKCS7_R_CONTENT_AND_DATA_PRESENT: i32 = 111;
3436pub const PKCS7_R_NO_SIGNATURES_ON_DATA: i32 = 112;
3437pub const PKCS7_R_CERTIFICATE_VERIFY_ERROR: i32 = 113;
3438pub const PKCS7_R_SMIME_TEXT_ERROR: i32 = 114;
3439pub const PKCS7_R_SIGNATURE_FAILURE: i32 = 115;
3440pub const PKCS7_R_NO_SIGNERS: i32 = 116;
3441pub const PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 117;
3442pub const PKCS7_R_ERROR_SETTING_CIPHER: i32 = 118;
3443pub const PKCS7_R_ERROR_ADDING_RECIPIENT: i32 = 119;
3444pub const PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 120;
3445pub const PKCS7_R_DECRYPT_ERROR: i32 = 121;
3446pub const PKCS7_R_PKCS7_DATASIGN: i32 = 122;
3447pub const PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 123;
3448pub const PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE: i32 = 124;
3449pub const PKCS7_R_UNKNOWN_DIGEST_TYPE: i32 = 125;
3450pub const PKCS7_R_INVALID_SIGNED_DATA_TYPE: i32 = 126;
3451pub const PKCS7_R_UNSUPPORTED_CIPHER_TYPE: i32 = 127;
3452pub const PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE: i32 = 128;
3453pub const PKCS7_R_DIGEST_FAILURE: i32 = 129;
3454pub const PKCS7_R_WRONG_PKCS7_TYPE: i32 = 130;
3455pub const PKCS7_R_PKCS7_ADD_SIGNER_ERROR: i32 = 131;
3456pub const PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR: i32 = 132;
3457pub const PKCS7_R_NO_DEFAULT_DIGEST: i32 = 133;
3458pub const PKCS7_R_CERT_MUST_BE_RSA: i32 = 134;
3459pub const PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE: i32 = 135;
3460pub const RSA_PKCS1_PADDING: i32 = 1;
3461pub const RSA_NO_PADDING: i32 = 3;
3462pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3463pub const RSA_X931_PADDING: i32 = 5;
3464pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3465pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3466pub const RSA_FLAG_OPAQUE: i32 = 1;
3467pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3468pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3469pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3470pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3471pub const RSA_3: i32 = 3;
3472pub const RSA_F4: i32 = 65537;
3473pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3474pub const RSA_R_BAD_ENCODING: i32 = 100;
3475pub const RSA_R_BAD_E_VALUE: i32 = 101;
3476pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3477pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3478pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3479pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3480pub const RSA_R_BAD_VERSION: i32 = 106;
3481pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3482pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3483pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3484pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3485pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3486pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3487pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3488pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3489pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3490pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3491pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3492pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3493pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3494pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3495pub const RSA_R_ENCODE_ERROR: i32 = 121;
3496pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3497pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3498pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3499pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3500pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3501pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3502pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3503pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3504pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3505pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3506pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3507pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3508pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3509pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3510pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3511pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3512pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3513pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3514pub const RSA_R_TOO_LONG: i32 = 140;
3515pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3516pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3517pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3518pub const RSA_R_VALUE_MISSING: i32 = 144;
3519pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3520pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3521pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3522pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3523pub const RSA_R_MISMATCHED_SIGNATURE: i32 = 248;
3524pub const RSA_F_RSA_OSSL_PRIVATE_ENCRYPT: i32 = 0;
3525pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3526pub const X509V3_R_BAD_OBJECT: i32 = 101;
3527pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3528pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3529pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3530pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3531pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3532pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3533pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3534pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3535pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3536pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3537pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3538pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3539pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3540pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3541pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3542pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3543pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3544pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3545pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3546pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3547pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3548pub const X509V3_R_INVALID_NAME: i32 = 123;
3549pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3550pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3551pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3552pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3553pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3554pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3555pub const X509V3_R_INVALID_OPTION: i32 = 130;
3556pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3557pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3558pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3559pub const X509V3_R_INVALID_SECTION: i32 = 134;
3560pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3561pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3562pub const X509V3_R_MISSING_VALUE: i32 = 137;
3563pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3564pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3565pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3566pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3567pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3568pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3569pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3570pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3571pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3572pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3573pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3574pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3575pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3576pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3577pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3578pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3579pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3580pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3581pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3582pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3583pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3584pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3585pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3586pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3587pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3588pub const X509V3_R_INVALID_VALUE: i32 = 163;
3589pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3590pub const X509_VERSION_1: i32 = 0;
3591pub const X509_VERSION_2: i32 = 1;
3592pub const X509_VERSION_3: i32 = 2;
3593pub const EXFLAG_BCONS: i32 = 1;
3594pub const EXFLAG_KUSAGE: i32 = 2;
3595pub const EXFLAG_XKUSAGE: i32 = 4;
3596pub const EXFLAG_NSCERT: i32 = 8;
3597pub const EXFLAG_CA: i32 = 16;
3598pub const EXFLAG_SI: i32 = 32;
3599pub const EXFLAG_V1: i32 = 64;
3600pub const EXFLAG_INVALID: i32 = 128;
3601pub const EXFLAG_SET: i32 = 256;
3602pub const EXFLAG_CRITICAL: i32 = 512;
3603pub const EXFLAG_SS: i32 = 8192;
3604pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3605pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3606pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3607pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3608pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3609pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3610pub const X509v3_KU_CRL_SIGN: i32 = 2;
3611pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3612pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3613pub const XKU_SSL_SERVER: i32 = 1;
3614pub const XKU_SSL_CLIENT: i32 = 2;
3615pub const XKU_SMIME: i32 = 4;
3616pub const XKU_CODE_SIGN: i32 = 8;
3617pub const XKU_SGC: i32 = 16;
3618pub const XKU_OCSP_SIGN: i32 = 32;
3619pub const XKU_TIMESTAMP: i32 = 64;
3620pub const XKU_DVCS: i32 = 128;
3621pub const XKU_ANYEKU: i32 = 256;
3622pub const X509_SIG_INFO_VALID: i32 = 1;
3623pub const X509_SIG_INFO_TLS: i32 = 2;
3624pub const X509_CRL_VERSION_1: i32 = 0;
3625pub const X509_CRL_VERSION_2: i32 = 1;
3626pub const X509_REQ_VERSION_1: i32 = 0;
3627pub const X509V3_ADD_OP_MASK: i32 = 15;
3628pub const X509V3_ADD_DEFAULT: i32 = 0;
3629pub const X509V3_ADD_APPEND: i32 = 1;
3630pub const X509V3_ADD_REPLACE: i32 = 2;
3631pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3632pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3633pub const X509V3_ADD_DELETE: i32 = 5;
3634pub const X509V3_ADD_SILENT: i32 = 16;
3635pub const GEN_OTHERNAME: i32 = 0;
3636pub const GEN_EMAIL: i32 = 1;
3637pub const GEN_DNS: i32 = 2;
3638pub const GEN_X400: i32 = 3;
3639pub const GEN_DIRNAME: i32 = 4;
3640pub const GEN_EDIPARTY: i32 = 5;
3641pub const GEN_URI: i32 = 6;
3642pub const GEN_IPADD: i32 = 7;
3643pub const GEN_RID: i32 = 8;
3644pub const X509_LU_NONE: i32 = 0;
3645pub const X509_LU_X509: i32 = 1;
3646pub const X509_LU_CRL: i32 = 2;
3647pub const X509_LU_PKEY: i32 = 3;
3648pub const X509_V_OK: i32 = 0;
3649pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3650pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3651pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3652pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3653pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3654pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3655pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3656pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3657pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3658pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3659pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3660pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3661pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3662pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3663pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3664pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3665pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3666pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3667pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3668pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3669pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3670pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3671pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3672pub const X509_V_ERR_INVALID_CA: i32 = 24;
3673pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3674pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3675pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3676pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3677pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3678pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3679pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3680pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3681pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3682pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3683pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3684pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3685pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3686pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3687pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3688pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3689pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3690pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3691pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3692pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3693pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3694pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3695pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3696pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3697pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3698pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3699pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3700pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3701pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3702pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3703pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3704pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3705pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3706pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3707pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3708pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3709pub const X509_V_ERR_EE_KEY_TOO_SMALL: i32 = 68;
3710pub const X509_V_ERR_CA_KEY_TOO_SMALL: i32 = 69;
3711pub const X509_V_ERR_CA_MD_TOO_WEAK: i32 = 70;
3712pub const X509_V_UNABLE_TO_GET_CERTS_PUBLIC_KEY: i32 = 71;
3713pub const X509_V_ERR_EC_KEY_EXPLICIT_PARAMS: i32 = 72;
3714pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3715pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3716pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3717pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3718pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3719pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3720pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3721pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3722pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3723pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3724pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3725pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3726pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3727pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3728pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3729pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
3730pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3731pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
3732pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3733pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 1;
3734pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3735pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 16;
3736pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3737pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3738pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3739pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3740pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3741pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3742pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3743pub const X509_PURPOSE_ANY: i32 = 7;
3744pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3745pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3746pub const X509_TRUST_COMPAT: i32 = 1;
3747pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3748pub const X509_TRUST_SSL_SERVER: i32 = 3;
3749pub const X509_TRUST_EMAIL: i32 = 4;
3750pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3751pub const X509_TRUST_OCSP_SIGN: i32 = 6;
3752pub const X509_TRUST_OCSP_REQUEST: i32 = 7;
3753pub const X509_TRUST_TSA: i32 = 8;
3754pub const X509_FILETYPE_PEM: i32 = 1;
3755pub const X509_FILETYPE_ASN1: i32 = 2;
3756pub const X509_FILETYPE_DEFAULT: i32 = 3;
3757pub const X509_L_FILE_LOAD: i32 = 1;
3758pub const X509_L_ADD_DIR: i32 = 2;
3759pub const X509_FLAG_COMPAT: i32 = 0;
3760pub const X509_FLAG_NO_HEADER: i32 = 1;
3761pub const X509_FLAG_NO_VERSION: i32 = 2;
3762pub const X509_FLAG_NO_SERIAL: i32 = 4;
3763pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3764pub const X509_FLAG_NO_ISSUER: i32 = 16;
3765pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3766pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3767pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3768pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3769pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3770pub const X509_FLAG_NO_AUX: i32 = 1024;
3771pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3772pub const X509_FLAG_NO_IDS: i32 = 4096;
3773pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3774pub const X509V3_EXT_DEFAULT: i32 = 0;
3775pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3776pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3777pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3778pub const XN_FLAG_COMPAT: i32 = 0;
3779pub const XN_FLAG_SEP_MASK: i32 = 983040;
3780pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3781pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3782pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3783pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3784pub const XN_FLAG_DN_REV: i32 = 1048576;
3785pub const XN_FLAG_FN_MASK: i32 = 6291456;
3786pub const XN_FLAG_FN_SN: i32 = 0;
3787pub const XN_FLAG_FN_LN: i32 = 2097152;
3788pub const XN_FLAG_FN_OID: i32 = 4194304;
3789pub const XN_FLAG_FN_NONE: i32 = 6291456;
3790pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3791pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3792pub const XN_FLAG_FN_ALIGN: i32 = 33554432;
3793pub const XN_FLAG_RFC2253: i32 = 17892119;
3794pub const XN_FLAG_ONELINE: i32 = 8520479;
3795pub const XN_FLAG_MULTILINE: i32 = 44302342;
3796pub const X509_TRUST_TRUSTED: i32 = 1;
3797pub const X509_TRUST_REJECTED: i32 = 2;
3798pub const X509_TRUST_UNTRUSTED: i32 = 3;
3799pub const X509V3_EXT_MULTILINE: i32 = 4;
3800pub const X509V3_CTX_TEST: i32 = 1;
3801pub const X509V3_CTX_REPLACE: i32 = 2;
3802pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3803pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3804pub const NS_SSL_CLIENT: i32 = 128;
3805pub const NS_SSL_SERVER: i32 = 64;
3806pub const NS_SMIME: i32 = 32;
3807pub const NS_OBJSIGN: i32 = 16;
3808pub const NS_SSL_CA: i32 = 4;
3809pub const NS_SMIME_CA: i32 = 2;
3810pub const NS_OBJSIGN_CA: i32 = 1;
3811pub const NS_ANY_CA: i32 = 7;
3812pub const X509_V_FLAG_POLICY_MASK: i32 = 1920;
3813pub const X509_R_AKID_MISMATCH: i32 = 100;
3814pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3815pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3816pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3817pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3818pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3819pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3820pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3821pub const X509_R_IDP_MISMATCH: i32 = 108;
3822pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3823pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3824pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3825pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3826pub const X509_R_INVALID_TRUST: i32 = 113;
3827pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3828pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3829pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3830pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3831pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3832pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3833pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3834pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3835pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3836pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3837pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3838pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3839pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3840pub const X509_R_SHOULD_RETRY: i32 = 127;
3841pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3842pub const X509_R_UNKNOWN_NID: i32 = 129;
3843pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3844pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3845pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3846pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3847pub const X509_R_WRONG_TYPE: i32 = 134;
3848pub const X509_R_NAME_TOO_LONG: i32 = 135;
3849pub const X509_R_INVALID_PARAMETER: i32 = 136;
3850pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3851pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3852pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3853pub const X509_R_INVALID_VERSION: i32 = 140;
3854pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3855pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3856pub const X509_R_NO_CRL_FOUND: i32 = 143;
3857pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
3858pub const X509_R_UNKNOWN_SIGID_ALGS: i32 = 145;
3859pub const CRL_REASON_NONE: i32 = -1;
3860pub const CRL_REASON_UNSPECIFIED: i32 = 0;
3861pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
3862pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
3863pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
3864pub const CRL_REASON_SUPERSEDED: i32 = 4;
3865pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
3866pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
3867pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
3868pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
3869pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
3870pub const KU_DIGITAL_SIGNATURE: i32 = 128;
3871pub const KU_NON_REPUDIATION: i32 = 64;
3872pub const KU_KEY_ENCIPHERMENT: i32 = 32;
3873pub const KU_DATA_ENCIPHERMENT: i32 = 16;
3874pub const KU_KEY_AGREEMENT: i32 = 8;
3875pub const KU_KEY_CERT_SIGN: i32 = 4;
3876pub const KU_CRL_SIGN: i32 = 2;
3877pub const KU_ENCIPHER_ONLY: i32 = 1;
3878pub const KU_DECIPHER_ONLY: i32 = 32768;
3879pub const OCSP_REVOKED_STATUS_NOSTATUS: i32 = -1;
3880pub const OCSP_REVOKED_STATUS_UNSPECIFIED: i32 = 0;
3881pub const OCSP_REVOKED_STATUS_KEYCOMPROMISE: i32 = 1;
3882pub const OCSP_REVOKED_STATUS_CACOMPROMISE: i32 = 2;
3883pub const OCSP_REVOKED_STATUS_AFFILIATIONCHANGED: i32 = 3;
3884pub const OCSP_REVOKED_STATUS_SUPERSEDED: i32 = 4;
3885pub const OCSP_REVOKED_STATUS_CESSATIONOFOPERATION: i32 = 5;
3886pub const OCSP_REVOKED_STATUS_CERTIFICATEHOLD: i32 = 6;
3887pub const OCSP_REVOKED_STATUS_REMOVEFROMCRL: i32 = 8;
3888pub const OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN: i32 = 9;
3889pub const OCSP_REVOKED_STATUS_AACOMPROMISE: i32 = 10;
3890pub const OCSP_NOCERTS: i32 = 1;
3891pub const OCSP_NOINTERN: i32 = 2;
3892pub const OCSP_NOCHAIN: i32 = 8;
3893pub const OCSP_NOVERIFY: i32 = 16;
3894pub const OCSP_NOEXPLICIT: i32 = 32;
3895pub const OCSP_TRUSTOTHER: i32 = 512;
3896pub const OCSP_RESPID_KEY: i32 = 1024;
3897pub const OCSP_NOTIME: i32 = 2048;
3898pub const OCSP_NOSIGS: i32 = 0;
3899pub const OCSP_NOCASIGN: i32 = 0;
3900pub const OCSP_NODELEGATED: i32 = 0;
3901pub const OCSP_NOCHECKS: i32 = 0;
3902pub const OCSP_RESPONSE_STATUS_SUCCESSFUL: i32 = 0;
3903pub const OCSP_RESPONSE_STATUS_MALFORMEDREQUEST: i32 = 1;
3904pub const OCSP_RESPONSE_STATUS_INTERNALERROR: i32 = 2;
3905pub const OCSP_RESPONSE_STATUS_TRYLATER: i32 = 3;
3906pub const OCSP_RESPONSE_STATUS_SIGREQUIRED: i32 = 5;
3907pub const OCSP_RESPONSE_STATUS_UNAUTHORIZED: i32 = 6;
3908pub const V_OCSP_RESPID_NAME: i32 = 0;
3909pub const V_OCSP_RESPID_KEY: i32 = 1;
3910pub const V_OCSP_CERTSTATUS_GOOD: i32 = 0;
3911pub const V_OCSP_CERTSTATUS_REVOKED: i32 = 1;
3912pub const V_OCSP_CERTSTATUS_UNKNOWN: i32 = 2;
3913pub const OCSP_NONCE_EQUAL: i32 = 1;
3914pub const OCSP_NONCE_BOTH_ABSENT: i32 = 2;
3915pub const OCSP_NONCE_RESPONSE_ONLY: i32 = 3;
3916pub const OCSP_NONCE_NOT_EQUAL: i32 = 0;
3917pub const OCSP_NONCE_REQUEST_ONLY: i32 = -1;
3918pub const OCSP_R_CERTIFICATE_VERIFY_ERROR: i32 = 101;
3919pub const OCSP_R_DIGEST_ERR: i32 = 102;
3920pub const OCSP_R_MISSING_OCSPSIGNING_USAGE: i32 = 103;
3921pub const OCSP_R_NOT_BASIC_RESPONSE: i32 = 104;
3922pub const OCSP_R_NO_CERTIFICATES_IN_CHAIN: i32 = 105;
3923pub const OCSP_R_NO_RESPONSE_DATA: i32 = 108;
3924pub const OCSP_R_NO_REVOKED_TIME: i32 = 109;
3925pub const OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 110;
3926pub const OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA: i32 = 111;
3927pub const OCSP_R_ROOT_CA_NOT_TRUSTED: i32 = 112;
3928pub const OCSP_R_SERVER_RESPONSE_PARSE_ERROR: i32 = 115;
3929pub const OCSP_R_SIGNATURE_FAILURE: i32 = 117;
3930pub const OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 118;
3931pub const OCSP_R_UNKNOWN_MESSAGE_DIGEST: i32 = 119;
3932pub const OCSP_R_UNKNOWN_NID: i32 = 120;
3933pub const OCSP_R_ERROR_PARSING_URL: i32 = 121;
3934pub const OCSP_R_ERROR_IN_NEXTUPDATE_FIELD: i32 = 122;
3935pub const OCSP_R_ERROR_IN_THISUPDATE_FIELD: i32 = 123;
3936pub const OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE: i32 = 124;
3937pub const OCSP_R_STATUS_EXPIRED: i32 = 125;
3938pub const OCSP_R_STATUS_NOT_YET_VALID: i32 = 126;
3939pub const OCSP_R_STATUS_TOO_OLD: i32 = 127;
3940pub const OCSP_R_REQUEST_NOT_SIGNED: i32 = 128;
3941pub const OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE: i32 = 129;
3942pub const OCSP_R_NO_SIGNER_KEY: i32 = 130;
3943pub const OCSP_R_OCSP_REQUEST_DUPLICATE_SIGNATURE: i32 = 131;
3944pub const OCSP_R_UNKNOWN_FIELD_VALUE: i32 = 132;
3945pub const PEM_BUFSIZE: i32 = 1024;
3946pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
3947pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
3948pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
3949pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
3950pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
3951pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
3952pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
3953pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
3954pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
3955pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
3956pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
3957pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
3958pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
3959pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
3960pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
3961pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
3962pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
3963pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
3964pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
3965pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
3966pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
3967pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
3968pub const PEM_STRING_ECPARAMETERS: &[u8; 14] = b"EC PARAMETERS\0";
3969pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
3970pub const PEM_STRING_PARAMETERS: &[u8; 11] = b"PARAMETERS\0";
3971pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
3972pub const PEM_TYPE_ENCRYPTED: i32 = 10;
3973pub const PEM_TYPE_MIC_ONLY: i32 = 20;
3974pub const PEM_TYPE_MIC_CLEAR: i32 = 30;
3975pub const PEM_TYPE_CLEAR: i32 = 40;
3976pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
3977pub const PEM_R_BAD_DECRYPT: i32 = 101;
3978pub const PEM_R_BAD_END_LINE: i32 = 102;
3979pub const PEM_R_BAD_IV_CHARS: i32 = 103;
3980pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
3981pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
3982pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
3983pub const PEM_R_NOT_DEK_INFO: i32 = 107;
3984pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
3985pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
3986pub const PEM_R_NO_START_LINE: i32 = 110;
3987pub const PEM_R_READ_KEY: i32 = 111;
3988pub const PEM_R_SHORT_HEADER: i32 = 112;
3989pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
3990pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
3991pub const PEM_R_PROBLEMS_GETTING_PASSWORD: i32 = 115;
3992pub const PKCS12_DEFAULT_ITER: i32 = 2048;
3993pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
3994pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
3995pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
3996pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
3997pub const PKCS8_R_DECODE_ERROR: i32 = 104;
3998pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
3999pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4000pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4001pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4002pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4003pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4004pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4005pub const PKCS8_R_MISSING_MAC: i32 = 112;
4006pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4007pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4008pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4009pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4010pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4011pub const PKCS8_R_TOO_LONG: i32 = 118;
4012pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4013pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4014pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4015pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4016pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4017pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4018pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4019pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4020pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4021pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4022pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4023pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4024pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4025pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4026pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4027pub const PKCS12_R_MAC_VERIFY_FAILURE: i32 = 108;
4028pub const RAND_PRED_RESISTANCE_LEN: i32 = 32;
4029pub const RIPEMD160_CBLOCK: i32 = 64;
4030pub const RIPEMD160_LBLOCK: i32 = 16;
4031pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4032pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4033pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4034pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4035pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4036pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4037pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4038pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4039pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4040pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4041pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4042pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4043pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4044pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4045pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4046pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4047pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4048pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4049pub type __off_t = ::std::os::raw::c_long;
4050pub type __off64_t = ::std::os::raw::c_long;
4051pub type __time_t = ::std::os::raw::c_long;
4052pub type time_t = __time_t;
4053#[repr(C)]
4054#[repr(align(4))]
4055#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
4056pub struct static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4057    pub _bitfield_align_1: [u8; 0],
4058    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
4059    pub __bindgen_padding_0: [u8; 3usize],
4060}
4061#[test]
4062fn bindgen_test_layout_static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4063) {
4064    assert_eq!(
4065        ::std::mem::size_of::<
4066            static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit,
4067        >(),
4068        4usize,
4069        "Size of static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit"
4070    );
4071    assert_eq ! (:: std :: mem :: align_of :: < static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit > () , 4usize , "Alignment of static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit");
4072}
4073impl static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4074    #[inline]
4075    pub fn static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4076        &self,
4077    ) -> ::std::os::raw::c_uint {
4078        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
4079    }
4080    #[inline]
4081    pub fn set_static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4082        &mut self,
4083        val: ::std::os::raw::c_uint,
4084    ) {
4085        unsafe {
4086            let val: u32 = ::std::mem::transmute(val);
4087            self._bitfield_1.set(0usize, 1u8, val as u64)
4088        }
4089    }
4090    #[inline]
4091    pub unsafe fn static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4092        this: *const Self,
4093    ) -> ::std::os::raw::c_uint {
4094        unsafe {
4095            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4096                ::std::ptr::addr_of!((*this)._bitfield_1),
4097                0usize,
4098                1u8,
4099            ) as u32)
4100        }
4101    }
4102    #[inline]
4103    pub unsafe fn set_static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4104        this: *mut Self,
4105        val: ::std::os::raw::c_uint,
4106    ) {
4107        unsafe {
4108            let val: u32 = ::std::mem::transmute(val);
4109            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4110                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4111                0usize,
4112                1u8,
4113                val as u64,
4114            )
4115        }
4116    }
4117    #[inline]
4118    pub fn new_bitfield_1(
4119        static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit : :: std :: os :: raw :: c_uint,
4120    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
4121        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
4122        __bindgen_bitfield_unit . set (0usize , 1u8 , { let static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit : u32 = unsafe { :: std :: mem :: transmute (static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit) } ; static_assertion_at_line_279_error_is_pointer_size_must_be_8_bytes_for_64_bit as u64 }) ;
4123        __bindgen_bitfield_unit
4124    }
4125}
4126pub type ossl_ssize_t = isize;
4127pub type CBS_ASN1_TAG = u32;
4128pub type CRYPTO_THREADID = ::std::os::raw::c_int;
4129#[repr(C)]
4130#[derive(Debug, Copy, Clone)]
4131pub struct asn1_null_st {
4132    _unused: [u8; 0],
4133}
4134pub type ASN1_NULL = asn1_null_st;
4135pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
4136pub type ASN1_ITEM = ASN1_ITEM_st;
4137#[repr(C)]
4138#[derive(Debug, Copy, Clone)]
4139pub struct asn1_object_st {
4140    _unused: [u8; 0],
4141}
4142pub type ASN1_OBJECT = asn1_object_st;
4143#[repr(C)]
4144#[derive(Debug, Copy, Clone)]
4145pub struct asn1_pctx_st {
4146    _unused: [u8; 0],
4147}
4148pub type ASN1_PCTX = asn1_pctx_st;
4149pub type ASN1_BIT_STRING = asn1_string_st;
4150pub type ASN1_BMPSTRING = asn1_string_st;
4151pub type ASN1_ENUMERATED = asn1_string_st;
4152pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4153pub type ASN1_GENERALSTRING = asn1_string_st;
4154pub type ASN1_IA5STRING = asn1_string_st;
4155pub type ASN1_INTEGER = asn1_string_st;
4156pub type ASN1_OCTET_STRING = asn1_string_st;
4157pub type ASN1_PRINTABLESTRING = asn1_string_st;
4158pub type ASN1_STRING = asn1_string_st;
4159pub type ASN1_T61STRING = asn1_string_st;
4160pub type ASN1_TIME = asn1_string_st;
4161pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4162pub type ASN1_UTCTIME = asn1_string_st;
4163pub type ASN1_UTF8STRING = asn1_string_st;
4164pub type ASN1_VISIBLESTRING = asn1_string_st;
4165pub type ASN1_TYPE = asn1_type_st;
4166pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4167pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4168pub type DIST_POINT = DIST_POINT_st;
4169pub type DSA_SIG = DSA_SIG_st;
4170pub type GENERAL_NAME = GENERAL_NAME_st;
4171pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4172pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4173pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4174pub type NETSCAPE_SPKI = Netscape_spki_st;
4175pub type RIPEMD160_CTX = RIPEMD160state_st;
4176#[repr(C)]
4177#[derive(Debug, Copy, Clone)]
4178pub struct X509_VERIFY_PARAM_st {
4179    _unused: [u8; 0],
4180}
4181pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4182pub type X509_ALGOR = X509_algor_st;
4183#[repr(C)]
4184#[derive(Debug, Copy, Clone)]
4185pub struct X509_crl_st {
4186    _unused: [u8; 0],
4187}
4188pub type X509_CRL = X509_crl_st;
4189#[repr(C)]
4190#[derive(Debug, Copy, Clone)]
4191pub struct X509_extension_st {
4192    _unused: [u8; 0],
4193}
4194pub type X509_EXTENSION = X509_extension_st;
4195pub type X509_INFO = X509_info_st;
4196#[repr(C)]
4197#[derive(Debug, Copy, Clone)]
4198pub struct X509_name_entry_st {
4199    _unused: [u8; 0],
4200}
4201pub type X509_NAME_ENTRY = X509_name_entry_st;
4202#[repr(C)]
4203#[derive(Debug, Copy, Clone)]
4204pub struct X509_name_st {
4205    _unused: [u8; 0],
4206}
4207pub type X509_NAME = X509_name_st;
4208#[repr(C)]
4209#[derive(Debug, Copy, Clone)]
4210pub struct X509_pubkey_st {
4211    _unused: [u8; 0],
4212}
4213pub type X509_PUBKEY = X509_pubkey_st;
4214#[repr(C)]
4215#[derive(Debug, Copy, Clone)]
4216pub struct X509_req_st {
4217    _unused: [u8; 0],
4218}
4219pub type X509_REQ = X509_req_st;
4220#[repr(C)]
4221#[derive(Debug, Copy, Clone)]
4222pub struct x509_sig_info_st {
4223    _unused: [u8; 0],
4224}
4225pub type X509_SIG_INFO = x509_sig_info_st;
4226#[repr(C)]
4227#[derive(Debug, Copy, Clone)]
4228pub struct X509_sig_st {
4229    _unused: [u8; 0],
4230}
4231pub type X509_SIG = X509_sig_st;
4232#[repr(C)]
4233#[derive(Debug, Copy, Clone)]
4234pub struct bignum_ctx {
4235    _unused: [u8; 0],
4236}
4237pub type BN_CTX = bignum_ctx;
4238pub type BIGNUM = bignum_st;
4239pub type BIO_METHOD = bio_method_st;
4240pub type BIO = bio_st;
4241pub type BLAKE2B_CTX = blake2b_state_st;
4242pub type BN_GENCB = bn_gencb_st;
4243pub type BN_MONT_CTX = bn_mont_ctx_st;
4244pub type BUF_MEM = buf_mem_st;
4245#[repr(C)]
4246#[derive(Debug, Copy, Clone)]
4247pub struct cast_key_st {
4248    _unused: [u8; 0],
4249}
4250pub type CAST_KEY = cast_key_st;
4251pub type CBB = cbb_st;
4252pub type CBS = cbs_st;
4253#[repr(C)]
4254#[derive(Debug, Copy, Clone)]
4255pub struct cmac_ctx_st {
4256    _unused: [u8; 0],
4257}
4258pub type CMAC_CTX = cmac_ctx_st;
4259pub type CONF = conf_st;
4260pub type CONF_VALUE = conf_value_st;
4261#[repr(C)]
4262#[derive(Debug, Copy, Clone)]
4263pub struct crypto_buffer_pool_st {
4264    _unused: [u8; 0],
4265}
4266pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
4267#[repr(C)]
4268#[derive(Debug, Copy, Clone)]
4269pub struct crypto_buffer_st {
4270    _unused: [u8; 0],
4271}
4272pub type CRYPTO_BUFFER = crypto_buffer_st;
4273#[repr(C)]
4274#[derive(Debug, Copy, Clone)]
4275pub struct ctr_drbg_state_st {
4276    _unused: [u8; 0],
4277}
4278pub type CTR_DRBG_STATE = ctr_drbg_state_st;
4279#[repr(C)]
4280#[derive(Debug, Copy, Clone)]
4281pub struct dh_st {
4282    _unused: [u8; 0],
4283}
4284pub type DH = dh_st;
4285#[repr(C)]
4286#[derive(Debug, Copy, Clone)]
4287pub struct dsa_st {
4288    _unused: [u8; 0],
4289}
4290pub type DSA = dsa_st;
4291#[repr(C)]
4292#[derive(Debug, Copy, Clone)]
4293pub struct ec_group_st {
4294    _unused: [u8; 0],
4295}
4296pub type EC_GROUP = ec_group_st;
4297#[repr(C)]
4298#[derive(Debug, Copy, Clone)]
4299pub struct ec_key_st {
4300    _unused: [u8; 0],
4301}
4302pub type EC_KEY = ec_key_st;
4303#[repr(C)]
4304#[derive(Debug, Copy, Clone)]
4305pub struct ec_point_st {
4306    _unused: [u8; 0],
4307}
4308pub type EC_POINT = ec_point_st;
4309#[repr(C)]
4310#[derive(Debug, Copy, Clone)]
4311pub struct ec_key_method_st {
4312    _unused: [u8; 0],
4313}
4314pub type EC_KEY_METHOD = ec_key_method_st;
4315pub type ECDSA_SIG = ecdsa_sig_st;
4316#[repr(C)]
4317#[derive(Debug, Copy, Clone)]
4318pub struct engine_st {
4319    _unused: [u8; 0],
4320}
4321pub type ENGINE = engine_st;
4322pub type EVP_MD_CTX = env_md_ctx_st;
4323#[repr(C)]
4324#[derive(Debug, Copy, Clone)]
4325pub struct env_md_st {
4326    _unused: [u8; 0],
4327}
4328pub type EVP_MD = env_md_st;
4329#[repr(C)]
4330#[derive(Debug, Copy, Clone)]
4331pub struct evp_aead_st {
4332    _unused: [u8; 0],
4333}
4334pub type EVP_AEAD = evp_aead_st;
4335pub type EVP_AEAD_CTX = evp_aead_ctx_st;
4336pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
4337#[repr(C)]
4338#[derive(Debug, Copy, Clone)]
4339pub struct evp_cipher_st {
4340    _unused: [u8; 0],
4341}
4342pub type EVP_CIPHER = evp_cipher_st;
4343#[doc = " @typedef EVP_ENCODE_CTX\n @copydoc evp_encode_ctx_st\n @see evp_encode_ctx_st"]
4344pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
4345#[repr(C)]
4346#[derive(Debug, Copy, Clone)]
4347pub struct evp_hpke_aead_st {
4348    _unused: [u8; 0],
4349}
4350pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
4351pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
4352#[repr(C)]
4353#[derive(Debug, Copy, Clone)]
4354pub struct evp_hpke_kdf_st {
4355    _unused: [u8; 0],
4356}
4357pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
4358#[repr(C)]
4359#[derive(Debug, Copy, Clone)]
4360pub struct evp_hpke_kem_st {
4361    _unused: [u8; 0],
4362}
4363pub type EVP_HPKE_KEM = evp_hpke_kem_st;
4364pub type EVP_HPKE_KEY = evp_hpke_key_st;
4365#[repr(C)]
4366#[derive(Debug, Copy, Clone)]
4367pub struct evp_kem_st {
4368    _unused: [u8; 0],
4369}
4370pub type EVP_KEM = evp_kem_st;
4371#[repr(C)]
4372#[derive(Debug, Copy, Clone)]
4373pub struct kem_key_st {
4374    _unused: [u8; 0],
4375}
4376pub type KEM_KEY = kem_key_st;
4377#[repr(C)]
4378#[derive(Debug, Copy, Clone)]
4379pub struct evp_pkey_ctx_st {
4380    _unused: [u8; 0],
4381}
4382pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
4383#[repr(C)]
4384#[derive(Debug, Copy, Clone)]
4385pub struct evp_pkey_asn1_method_st {
4386    _unused: [u8; 0],
4387}
4388pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st;
4389#[repr(C)]
4390#[derive(Debug, Copy, Clone)]
4391pub struct evp_pkey_st {
4392    _unused: [u8; 0],
4393}
4394pub type EVP_PKEY = evp_pkey_st;
4395#[repr(C)]
4396#[derive(Debug, Copy, Clone)]
4397pub struct evp_pkey_ctx_signature_context_params_st {
4398    _unused: [u8; 0],
4399}
4400pub type EVP_PKEY_CTX_SIGNATURE_CONTEXT_PARAMS = evp_pkey_ctx_signature_context_params_st;
4401pub type HMAC_CTX = hmac_ctx_st;
4402pub type MD4_CTX = md4_state_st;
4403pub type MD5_CTX = md5_state_st;
4404#[repr(C)]
4405#[derive(Debug, Copy, Clone)]
4406pub struct pqdsa_key_st {
4407    _unused: [u8; 0],
4408}
4409pub type PQDSA_KEY = pqdsa_key_st;
4410#[repr(C)]
4411#[derive(Debug, Copy, Clone)]
4412pub struct ocsp_req_ctx_st {
4413    _unused: [u8; 0],
4414}
4415pub type OCSP_REQ_CTX = ocsp_req_ctx_st;
4416#[repr(C)]
4417#[derive(Debug, Copy, Clone)]
4418pub struct ossl_init_settings_st {
4419    _unused: [u8; 0],
4420}
4421pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
4422#[repr(C)]
4423#[derive(Debug, Copy, Clone)]
4424pub struct pkcs7_digest_st {
4425    _unused: [u8; 0],
4426}
4427pub type PKCS7_DIGEST = pkcs7_digest_st;
4428#[repr(C)]
4429#[derive(Debug, Copy, Clone)]
4430pub struct pkcs7_enc_content_st {
4431    _unused: [u8; 0],
4432}
4433pub type PKCS7_ENC_CONTENT = pkcs7_enc_content_st;
4434#[repr(C)]
4435#[derive(Debug, Copy, Clone)]
4436pub struct pkcs7_encrypt_st {
4437    _unused: [u8; 0],
4438}
4439pub type PKCS7_ENCRYPT = pkcs7_encrypt_st;
4440pub type PKCS7_ENVELOPE = pkcs7_envelope_st;
4441pub type PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st;
4442pub type PKCS7_RECIP_INFO = pkcs7_recip_info_st;
4443pub type PKCS7_SIGN_ENVELOPE = pkcs7_sign_envelope_st;
4444pub type PKCS7_SIGNED = pkcs7_signed_st;
4445pub type PKCS7_SIGNER_INFO = pkcs7_signer_info_st;
4446pub type PKCS7 = pkcs7_st;
4447#[repr(C)]
4448#[derive(Debug, Copy, Clone)]
4449pub struct pkcs12_st {
4450    _unused: [u8; 0],
4451}
4452pub type PKCS12 = pkcs12_st;
4453#[repr(C)]
4454#[derive(Debug, Copy, Clone)]
4455pub struct pkcs8_priv_key_info_st {
4456    _unused: [u8; 0],
4457}
4458pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
4459pub type X509_PKEY = private_key_st;
4460pub type RAND_METHOD = rand_meth_st;
4461pub type RC4_KEY = rc4_key_st;
4462#[repr(C)]
4463#[derive(Debug, Copy, Clone)]
4464pub struct rsa_meth_st {
4465    _unused: [u8; 0],
4466}
4467pub type RSA_METHOD = rsa_meth_st;
4468#[repr(C)]
4469#[derive(Debug, Copy, Clone)]
4470pub struct rsassa_pss_params_st {
4471    _unused: [u8; 0],
4472}
4473pub type RSASSA_PSS_PARAMS = rsassa_pss_params_st;
4474pub type RSA_PSS_PARAMS = rsa_pss_params_st;
4475#[repr(C)]
4476#[derive(Debug, Copy, Clone)]
4477pub struct rsa_st {
4478    _unused: [u8; 0],
4479}
4480pub type RSA = rsa_st;
4481pub type SHA256_CTX = sha256_state_st;
4482pub type SHA512_CTX = sha512_state_st;
4483pub type SHA_CTX = sha_state_st;
4484#[repr(C)]
4485#[derive(Debug, Copy, Clone)]
4486pub struct spake2_ctx_st {
4487    _unused: [u8; 0],
4488}
4489pub type SPAKE2_CTX = spake2_ctx_st;
4490#[repr(C)]
4491#[derive(Debug, Copy, Clone)]
4492pub struct srtp_protection_profile_st {
4493    _unused: [u8; 0],
4494}
4495pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
4496#[repr(C)]
4497#[derive(Debug, Copy, Clone)]
4498pub struct ssl_cipher_st {
4499    _unused: [u8; 0],
4500}
4501pub type SSL_CIPHER = ssl_cipher_st;
4502#[repr(C)]
4503#[derive(Debug, Copy, Clone)]
4504pub struct ssl_ctx_st {
4505    _unused: [u8; 0],
4506}
4507pub type SSL_CTX = ssl_ctx_st;
4508#[repr(C)]
4509#[derive(Debug, Copy, Clone)]
4510pub struct ssl_early_callback_ctx {
4511    _unused: [u8; 0],
4512}
4513pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
4514#[repr(C)]
4515#[derive(Debug, Copy, Clone)]
4516pub struct ssl_ech_keys_st {
4517    _unused: [u8; 0],
4518}
4519pub type SSL_ECH_KEYS = ssl_ech_keys_st;
4520#[repr(C)]
4521#[derive(Debug, Copy, Clone)]
4522pub struct ssl_method_st {
4523    _unused: [u8; 0],
4524}
4525pub type SSL_METHOD = ssl_method_st;
4526#[repr(C)]
4527#[derive(Debug, Copy, Clone)]
4528pub struct ssl_private_key_method_st {
4529    _unused: [u8; 0],
4530}
4531pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
4532#[repr(C)]
4533#[derive(Debug, Copy, Clone)]
4534pub struct ssl_quic_method_st {
4535    _unused: [u8; 0],
4536}
4537pub type SSL_QUIC_METHOD = ssl_quic_method_st;
4538#[repr(C)]
4539#[derive(Debug, Copy, Clone)]
4540pub struct ssl_session_st {
4541    _unused: [u8; 0],
4542}
4543pub type SSL_SESSION = ssl_session_st;
4544#[repr(C)]
4545#[derive(Debug, Copy, Clone)]
4546pub struct ssl_st {
4547    _unused: [u8; 0],
4548}
4549pub type SSL = ssl_st;
4550#[repr(C)]
4551#[derive(Debug, Copy, Clone)]
4552pub struct ssl_ticket_aead_method_st {
4553    _unused: [u8; 0],
4554}
4555pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
4556#[repr(C)]
4557#[derive(Debug, Copy, Clone)]
4558pub struct st_ERR_FNS {
4559    _unused: [u8; 0],
4560}
4561pub type ERR_FNS = st_ERR_FNS;
4562pub type TRUST_TOKEN = trust_token_st;
4563#[repr(C)]
4564#[derive(Debug, Copy, Clone)]
4565pub struct trust_token_client_st {
4566    _unused: [u8; 0],
4567}
4568pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
4569#[repr(C)]
4570#[derive(Debug, Copy, Clone)]
4571pub struct trust_token_issuer_st {
4572    _unused: [u8; 0],
4573}
4574pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
4575#[repr(C)]
4576#[derive(Debug, Copy, Clone)]
4577pub struct trust_token_method_st {
4578    _unused: [u8; 0],
4579}
4580pub type TRUST_TOKEN_METHOD = trust_token_method_st;
4581pub type X509V3_CTX = v3_ext_ctx;
4582pub type X509V3_EXT_METHOD = v3_ext_method;
4583#[repr(C)]
4584#[derive(Debug, Copy, Clone)]
4585pub struct x509_attributes_st {
4586    _unused: [u8; 0],
4587}
4588pub type X509_ATTRIBUTE = x509_attributes_st;
4589#[repr(C)]
4590#[derive(Debug, Copy, Clone)]
4591pub struct x509_lookup_st {
4592    _unused: [u8; 0],
4593}
4594pub type X509_LOOKUP = x509_lookup_st;
4595#[repr(C)]
4596#[derive(Debug, Copy, Clone)]
4597pub struct x509_lookup_method_st {
4598    _unused: [u8; 0],
4599}
4600pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
4601#[repr(C)]
4602#[derive(Debug, Copy, Clone)]
4603pub struct x509_object_st {
4604    _unused: [u8; 0],
4605}
4606pub type X509_OBJECT = x509_object_st;
4607#[repr(C)]
4608#[derive(Debug, Copy, Clone)]
4609pub struct x509_revoked_st {
4610    _unused: [u8; 0],
4611}
4612pub type X509_REVOKED = x509_revoked_st;
4613#[repr(C)]
4614#[derive(Debug, Copy, Clone)]
4615pub struct x509_st {
4616    _unused: [u8; 0],
4617}
4618pub type X509 = x509_st;
4619#[repr(C)]
4620#[derive(Debug, Copy, Clone)]
4621pub struct x509_store_ctx_st {
4622    _unused: [u8; 0],
4623}
4624pub type X509_STORE_CTX = x509_store_ctx_st;
4625#[repr(C)]
4626#[derive(Debug, Copy, Clone)]
4627pub struct x509_store_st {
4628    _unused: [u8; 0],
4629}
4630pub type X509_STORE = x509_store_st;
4631pub type X509_TRUST = x509_trust_st;
4632pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
4633#[repr(C)]
4634#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4635pub struct aes_key_st {
4636    pub rd_key: [u32; 60usize],
4637    pub rounds: ::std::os::raw::c_uint,
4638}
4639#[test]
4640fn bindgen_test_layout_aes_key_st() {
4641    const UNINIT: ::std::mem::MaybeUninit<aes_key_st> = ::std::mem::MaybeUninit::uninit();
4642    let ptr = UNINIT.as_ptr();
4643    assert_eq!(
4644        ::std::mem::size_of::<aes_key_st>(),
4645        244usize,
4646        "Size of aes_key_st"
4647    );
4648    assert_eq!(
4649        ::std::mem::align_of::<aes_key_st>(),
4650        4usize,
4651        "Alignment of aes_key_st"
4652    );
4653    assert_eq!(
4654        unsafe { ::std::ptr::addr_of!((*ptr).rd_key) as usize - ptr as usize },
4655        0usize,
4656        "Offset of field: aes_key_st::rd_key"
4657    );
4658    assert_eq!(
4659        unsafe { ::std::ptr::addr_of!((*ptr).rounds) as usize - ptr as usize },
4660        240usize,
4661        "Offset of field: aes_key_st::rounds"
4662    );
4663}
4664impl Default for aes_key_st {
4665    fn default() -> Self {
4666        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4667        unsafe {
4668            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4669            s.assume_init()
4670        }
4671    }
4672}
4673pub type AES_KEY = aes_key_st;
4674extern "C" {
4675    #[link_name = "\u{1}aws_lc_0_38_0_AES_set_encrypt_key"]
4676    pub fn AES_set_encrypt_key(
4677        key: *const u8,
4678        bits: ::std::os::raw::c_uint,
4679        aeskey: *mut AES_KEY,
4680    ) -> ::std::os::raw::c_int;
4681}
4682extern "C" {
4683    #[link_name = "\u{1}aws_lc_0_38_0_AES_set_decrypt_key"]
4684    pub fn AES_set_decrypt_key(
4685        key: *const u8,
4686        bits: ::std::os::raw::c_uint,
4687        aeskey: *mut AES_KEY,
4688    ) -> ::std::os::raw::c_int;
4689}
4690extern "C" {
4691    #[link_name = "\u{1}aws_lc_0_38_0_AES_encrypt"]
4692    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4693}
4694extern "C" {
4695    #[link_name = "\u{1}aws_lc_0_38_0_AES_decrypt"]
4696    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4697}
4698extern "C" {
4699    #[link_name = "\u{1}aws_lc_0_38_0_AES_ctr128_encrypt"]
4700    pub fn AES_ctr128_encrypt(
4701        in_: *const u8,
4702        out: *mut u8,
4703        len: usize,
4704        key: *const AES_KEY,
4705        ivec: *mut u8,
4706        ecount_buf: *mut u8,
4707        num: *mut ::std::os::raw::c_uint,
4708    );
4709}
4710extern "C" {
4711    #[link_name = "\u{1}aws_lc_0_38_0_AES_ecb_encrypt"]
4712    pub fn AES_ecb_encrypt(
4713        in_: *const u8,
4714        out: *mut u8,
4715        key: *const AES_KEY,
4716        enc: ::std::os::raw::c_int,
4717    );
4718}
4719extern "C" {
4720    #[link_name = "\u{1}aws_lc_0_38_0_AES_cbc_encrypt"]
4721    pub fn AES_cbc_encrypt(
4722        in_: *const u8,
4723        out: *mut u8,
4724        len: usize,
4725        key: *const AES_KEY,
4726        ivec: *mut u8,
4727        enc: ::std::os::raw::c_int,
4728    );
4729}
4730extern "C" {
4731    #[link_name = "\u{1}aws_lc_0_38_0_AES_ofb128_encrypt"]
4732    pub fn AES_ofb128_encrypt(
4733        in_: *const u8,
4734        out: *mut u8,
4735        len: usize,
4736        key: *const AES_KEY,
4737        ivec: *mut u8,
4738        num: *mut ::std::os::raw::c_int,
4739    );
4740}
4741extern "C" {
4742    #[link_name = "\u{1}aws_lc_0_38_0_AES_cfb1_encrypt"]
4743    pub fn AES_cfb1_encrypt(
4744        in_: *const u8,
4745        out: *mut u8,
4746        bits: usize,
4747        key: *const AES_KEY,
4748        ivec: *mut u8,
4749        num: *mut ::std::os::raw::c_int,
4750        enc: ::std::os::raw::c_int,
4751    );
4752}
4753extern "C" {
4754    #[link_name = "\u{1}aws_lc_0_38_0_AES_cfb8_encrypt"]
4755    pub fn AES_cfb8_encrypt(
4756        in_: *const u8,
4757        out: *mut u8,
4758        len: usize,
4759        key: *const AES_KEY,
4760        ivec: *mut u8,
4761        num: *mut ::std::os::raw::c_int,
4762        enc: ::std::os::raw::c_int,
4763    );
4764}
4765extern "C" {
4766    #[link_name = "\u{1}aws_lc_0_38_0_AES_cfb128_encrypt"]
4767    pub fn AES_cfb128_encrypt(
4768        in_: *const u8,
4769        out: *mut u8,
4770        len: usize,
4771        key: *const AES_KEY,
4772        ivec: *mut u8,
4773        num: *mut ::std::os::raw::c_int,
4774        enc: ::std::os::raw::c_int,
4775    );
4776}
4777extern "C" {
4778    #[link_name = "\u{1}aws_lc_0_38_0_AES_wrap_key"]
4779    pub fn AES_wrap_key(
4780        key: *const AES_KEY,
4781        iv: *const u8,
4782        out: *mut u8,
4783        in_: *const u8,
4784        in_len: usize,
4785    ) -> ::std::os::raw::c_int;
4786}
4787extern "C" {
4788    #[link_name = "\u{1}aws_lc_0_38_0_AES_unwrap_key"]
4789    pub fn AES_unwrap_key(
4790        key: *const AES_KEY,
4791        iv: *const u8,
4792        out: *mut u8,
4793        in_: *const u8,
4794        in_len: usize,
4795    ) -> ::std::os::raw::c_int;
4796}
4797extern "C" {
4798    #[link_name = "\u{1}aws_lc_0_38_0_AES_wrap_key_padded"]
4799    pub fn AES_wrap_key_padded(
4800        key: *const AES_KEY,
4801        out: *mut u8,
4802        out_len: *mut usize,
4803        max_out: usize,
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_38_0_AES_unwrap_key_padded"]
4810    pub fn AES_unwrap_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}
4819#[repr(C)]
4820#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4821pub struct tm {
4822    pub tm_sec: ::std::os::raw::c_int,
4823    pub tm_min: ::std::os::raw::c_int,
4824    pub tm_hour: ::std::os::raw::c_int,
4825    pub tm_mday: ::std::os::raw::c_int,
4826    pub tm_mon: ::std::os::raw::c_int,
4827    pub tm_year: ::std::os::raw::c_int,
4828    pub tm_wday: ::std::os::raw::c_int,
4829    pub tm_yday: ::std::os::raw::c_int,
4830    pub tm_isdst: ::std::os::raw::c_int,
4831    pub tm_gmtoff: ::std::os::raw::c_long,
4832    pub tm_zone: *const ::std::os::raw::c_char,
4833}
4834#[test]
4835fn bindgen_test_layout_tm() {
4836    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
4837    let ptr = UNINIT.as_ptr();
4838    assert_eq!(::std::mem::size_of::<tm>(), 56usize, "Size of tm");
4839    assert_eq!(::std::mem::align_of::<tm>(), 8usize, "Alignment of tm");
4840    assert_eq!(
4841        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
4842        0usize,
4843        "Offset of field: tm::tm_sec"
4844    );
4845    assert_eq!(
4846        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
4847        4usize,
4848        "Offset of field: tm::tm_min"
4849    );
4850    assert_eq!(
4851        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
4852        8usize,
4853        "Offset of field: tm::tm_hour"
4854    );
4855    assert_eq!(
4856        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
4857        12usize,
4858        "Offset of field: tm::tm_mday"
4859    );
4860    assert_eq!(
4861        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
4862        16usize,
4863        "Offset of field: tm::tm_mon"
4864    );
4865    assert_eq!(
4866        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
4867        20usize,
4868        "Offset of field: tm::tm_year"
4869    );
4870    assert_eq!(
4871        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
4872        24usize,
4873        "Offset of field: tm::tm_wday"
4874    );
4875    assert_eq!(
4876        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
4877        28usize,
4878        "Offset of field: tm::tm_yday"
4879    );
4880    assert_eq!(
4881        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
4882        32usize,
4883        "Offset of field: tm::tm_isdst"
4884    );
4885    assert_eq!(
4886        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
4887        40usize,
4888        "Offset of field: tm::tm_gmtoff"
4889    );
4890    assert_eq!(
4891        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
4892        48usize,
4893        "Offset of field: tm::tm_zone"
4894    );
4895}
4896impl Default for tm {
4897    fn default() -> Self {
4898        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4899        unsafe {
4900            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4901            s.assume_init()
4902        }
4903    }
4904}
4905pub type __gnuc_va_list = __builtin_va_list;
4906pub type FILE = _IO_FILE;
4907#[repr(C)]
4908#[derive(Debug, Copy, Clone)]
4909pub struct _IO_marker {
4910    _unused: [u8; 0],
4911}
4912#[repr(C)]
4913#[derive(Debug, Copy, Clone)]
4914pub struct _IO_codecvt {
4915    _unused: [u8; 0],
4916}
4917#[repr(C)]
4918#[derive(Debug, Copy, Clone)]
4919pub struct _IO_wide_data {
4920    _unused: [u8; 0],
4921}
4922pub type _IO_lock_t = ::std::os::raw::c_void;
4923#[repr(C)]
4924#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4925pub struct _IO_FILE {
4926    pub _flags: ::std::os::raw::c_int,
4927    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
4928    pub _IO_read_end: *mut ::std::os::raw::c_char,
4929    pub _IO_read_base: *mut ::std::os::raw::c_char,
4930    pub _IO_write_base: *mut ::std::os::raw::c_char,
4931    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
4932    pub _IO_write_end: *mut ::std::os::raw::c_char,
4933    pub _IO_buf_base: *mut ::std::os::raw::c_char,
4934    pub _IO_buf_end: *mut ::std::os::raw::c_char,
4935    pub _IO_save_base: *mut ::std::os::raw::c_char,
4936    pub _IO_backup_base: *mut ::std::os::raw::c_char,
4937    pub _IO_save_end: *mut ::std::os::raw::c_char,
4938    pub _markers: *mut _IO_marker,
4939    pub _chain: *mut _IO_FILE,
4940    pub _fileno: ::std::os::raw::c_int,
4941    pub _flags2: ::std::os::raw::c_int,
4942    pub _old_offset: __off_t,
4943    pub _cur_column: ::std::os::raw::c_ushort,
4944    pub _vtable_offset: ::std::os::raw::c_schar,
4945    pub _shortbuf: [::std::os::raw::c_char; 1usize],
4946    pub _lock: *mut _IO_lock_t,
4947    pub _offset: __off64_t,
4948    pub _codecvt: *mut _IO_codecvt,
4949    pub _wide_data: *mut _IO_wide_data,
4950    pub _freeres_list: *mut _IO_FILE,
4951    pub _freeres_buf: *mut ::std::os::raw::c_void,
4952    pub __pad5: usize,
4953    pub _mode: ::std::os::raw::c_int,
4954    pub _unused2: [::std::os::raw::c_char; 20usize],
4955}
4956#[test]
4957fn bindgen_test_layout__IO_FILE() {
4958    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
4959    let ptr = UNINIT.as_ptr();
4960    assert_eq!(
4961        ::std::mem::size_of::<_IO_FILE>(),
4962        216usize,
4963        "Size of _IO_FILE"
4964    );
4965    assert_eq!(
4966        ::std::mem::align_of::<_IO_FILE>(),
4967        8usize,
4968        "Alignment of _IO_FILE"
4969    );
4970    assert_eq!(
4971        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
4972        0usize,
4973        "Offset of field: _IO_FILE::_flags"
4974    );
4975    assert_eq!(
4976        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
4977        8usize,
4978        "Offset of field: _IO_FILE::_IO_read_ptr"
4979    );
4980    assert_eq!(
4981        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
4982        16usize,
4983        "Offset of field: _IO_FILE::_IO_read_end"
4984    );
4985    assert_eq!(
4986        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
4987        24usize,
4988        "Offset of field: _IO_FILE::_IO_read_base"
4989    );
4990    assert_eq!(
4991        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
4992        32usize,
4993        "Offset of field: _IO_FILE::_IO_write_base"
4994    );
4995    assert_eq!(
4996        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
4997        40usize,
4998        "Offset of field: _IO_FILE::_IO_write_ptr"
4999    );
5000    assert_eq!(
5001        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
5002        48usize,
5003        "Offset of field: _IO_FILE::_IO_write_end"
5004    );
5005    assert_eq!(
5006        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
5007        56usize,
5008        "Offset of field: _IO_FILE::_IO_buf_base"
5009    );
5010    assert_eq!(
5011        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
5012        64usize,
5013        "Offset of field: _IO_FILE::_IO_buf_end"
5014    );
5015    assert_eq!(
5016        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
5017        72usize,
5018        "Offset of field: _IO_FILE::_IO_save_base"
5019    );
5020    assert_eq!(
5021        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
5022        80usize,
5023        "Offset of field: _IO_FILE::_IO_backup_base"
5024    );
5025    assert_eq!(
5026        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
5027        88usize,
5028        "Offset of field: _IO_FILE::_IO_save_end"
5029    );
5030    assert_eq!(
5031        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
5032        96usize,
5033        "Offset of field: _IO_FILE::_markers"
5034    );
5035    assert_eq!(
5036        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
5037        104usize,
5038        "Offset of field: _IO_FILE::_chain"
5039    );
5040    assert_eq!(
5041        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
5042        112usize,
5043        "Offset of field: _IO_FILE::_fileno"
5044    );
5045    assert_eq!(
5046        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
5047        116usize,
5048        "Offset of field: _IO_FILE::_flags2"
5049    );
5050    assert_eq!(
5051        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
5052        120usize,
5053        "Offset of field: _IO_FILE::_old_offset"
5054    );
5055    assert_eq!(
5056        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
5057        128usize,
5058        "Offset of field: _IO_FILE::_cur_column"
5059    );
5060    assert_eq!(
5061        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
5062        130usize,
5063        "Offset of field: _IO_FILE::_vtable_offset"
5064    );
5065    assert_eq!(
5066        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
5067        131usize,
5068        "Offset of field: _IO_FILE::_shortbuf"
5069    );
5070    assert_eq!(
5071        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
5072        136usize,
5073        "Offset of field: _IO_FILE::_lock"
5074    );
5075    assert_eq!(
5076        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
5077        144usize,
5078        "Offset of field: _IO_FILE::_offset"
5079    );
5080    assert_eq!(
5081        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
5082        152usize,
5083        "Offset of field: _IO_FILE::_codecvt"
5084    );
5085    assert_eq!(
5086        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
5087        160usize,
5088        "Offset of field: _IO_FILE::_wide_data"
5089    );
5090    assert_eq!(
5091        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
5092        168usize,
5093        "Offset of field: _IO_FILE::_freeres_list"
5094    );
5095    assert_eq!(
5096        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
5097        176usize,
5098        "Offset of field: _IO_FILE::_freeres_buf"
5099    );
5100    assert_eq!(
5101        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
5102        184usize,
5103        "Offset of field: _IO_FILE::__pad5"
5104    );
5105    assert_eq!(
5106        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
5107        192usize,
5108        "Offset of field: _IO_FILE::_mode"
5109    );
5110    assert_eq!(
5111        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
5112        196usize,
5113        "Offset of field: _IO_FILE::_unused2"
5114    );
5115}
5116impl Default for _IO_FILE {
5117    fn default() -> Self {
5118        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5119        unsafe {
5120            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5121            s.assume_init()
5122        }
5123    }
5124}
5125pub type va_list = __gnuc_va_list;
5126#[repr(C)]
5127#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5128pub struct buf_mem_st {
5129    pub length: usize,
5130    pub data: *mut ::std::os::raw::c_char,
5131    pub max: usize,
5132}
5133#[test]
5134fn bindgen_test_layout_buf_mem_st() {
5135    const UNINIT: ::std::mem::MaybeUninit<buf_mem_st> = ::std::mem::MaybeUninit::uninit();
5136    let ptr = UNINIT.as_ptr();
5137    assert_eq!(
5138        ::std::mem::size_of::<buf_mem_st>(),
5139        24usize,
5140        "Size of buf_mem_st"
5141    );
5142    assert_eq!(
5143        ::std::mem::align_of::<buf_mem_st>(),
5144        8usize,
5145        "Alignment of buf_mem_st"
5146    );
5147    assert_eq!(
5148        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
5149        0usize,
5150        "Offset of field: buf_mem_st::length"
5151    );
5152    assert_eq!(
5153        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5154        8usize,
5155        "Offset of field: buf_mem_st::data"
5156    );
5157    assert_eq!(
5158        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
5159        16usize,
5160        "Offset of field: buf_mem_st::max"
5161    );
5162}
5163impl Default for buf_mem_st {
5164    fn default() -> Self {
5165        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5166        unsafe {
5167            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5168            s.assume_init()
5169        }
5170    }
5171}
5172extern "C" {
5173    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_new"]
5174    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5175}
5176extern "C" {
5177    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_free"]
5178    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5179}
5180extern "C" {
5181    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_reserve"]
5182    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::std::os::raw::c_int;
5183}
5184extern "C" {
5185    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_grow"]
5186    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5187}
5188extern "C" {
5189    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_grow_clean"]
5190    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5191}
5192extern "C" {
5193    #[link_name = "\u{1}aws_lc_0_38_0_BUF_MEM_append"]
5194    pub fn BUF_MEM_append(
5195        buf: *mut BUF_MEM,
5196        in_: *const ::std::os::raw::c_void,
5197        len: usize,
5198    ) -> ::std::os::raw::c_int;
5199}
5200extern "C" {
5201    #[link_name = "\u{1}aws_lc_0_38_0_BUF_strdup"]
5202    pub fn BUF_strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5203}
5204extern "C" {
5205    #[link_name = "\u{1}aws_lc_0_38_0_BUF_strnlen"]
5206    pub fn BUF_strnlen(str_: *const ::std::os::raw::c_char, max_len: usize) -> usize;
5207}
5208extern "C" {
5209    #[link_name = "\u{1}aws_lc_0_38_0_BUF_strndup"]
5210    pub fn BUF_strndup(
5211        str_: *const ::std::os::raw::c_char,
5212        size: usize,
5213    ) -> *mut ::std::os::raw::c_char;
5214}
5215extern "C" {
5216    #[link_name = "\u{1}aws_lc_0_38_0_BUF_memdup"]
5217    pub fn BUF_memdup(
5218        data: *const ::std::os::raw::c_void,
5219        size: usize,
5220    ) -> *mut ::std::os::raw::c_void;
5221}
5222extern "C" {
5223    #[link_name = "\u{1}aws_lc_0_38_0_BUF_strlcpy"]
5224    pub fn BUF_strlcpy(
5225        dst: *mut ::std::os::raw::c_char,
5226        src: *const ::std::os::raw::c_char,
5227        dst_size: usize,
5228    ) -> usize;
5229}
5230extern "C" {
5231    #[link_name = "\u{1}aws_lc_0_38_0_BUF_strlcat"]
5232    pub fn BUF_strlcat(
5233        dst: *mut ::std::os::raw::c_char,
5234        src: *const ::std::os::raw::c_char,
5235        dst_size: usize,
5236    ) -> usize;
5237}
5238extern "C" {
5239    #[link_name = "\u{1}aws_lc_0_38_0_SHA1_Init"]
5240    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5241}
5242extern "C" {
5243    #[link_name = "\u{1}aws_lc_0_38_0_SHA1_Update"]
5244    pub fn SHA1_Update(
5245        sha: *mut SHA_CTX,
5246        data: *const ::std::os::raw::c_void,
5247        len: usize,
5248    ) -> ::std::os::raw::c_int;
5249}
5250extern "C" {
5251    #[link_name = "\u{1}aws_lc_0_38_0_SHA1_Final"]
5252    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5253}
5254extern "C" {
5255    #[link_name = "\u{1}aws_lc_0_38_0_SHA1"]
5256    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5257}
5258extern "C" {
5259    #[link_name = "\u{1}aws_lc_0_38_0_SHA1_Transform"]
5260    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
5261}
5262#[repr(C)]
5263#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5264pub struct sha_state_st {
5265    pub h: [u32; 5usize],
5266    pub Nl: u32,
5267    pub Nh: u32,
5268    pub data: [u8; 64usize],
5269    pub num: ::std::os::raw::c_uint,
5270}
5271#[test]
5272fn bindgen_test_layout_sha_state_st() {
5273    const UNINIT: ::std::mem::MaybeUninit<sha_state_st> = ::std::mem::MaybeUninit::uninit();
5274    let ptr = UNINIT.as_ptr();
5275    assert_eq!(
5276        ::std::mem::size_of::<sha_state_st>(),
5277        96usize,
5278        "Size of sha_state_st"
5279    );
5280    assert_eq!(
5281        ::std::mem::align_of::<sha_state_st>(),
5282        4usize,
5283        "Alignment of sha_state_st"
5284    );
5285    assert_eq!(
5286        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5287        0usize,
5288        "Offset of field: sha_state_st::h"
5289    );
5290    assert_eq!(
5291        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5292        20usize,
5293        "Offset of field: sha_state_st::Nl"
5294    );
5295    assert_eq!(
5296        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5297        24usize,
5298        "Offset of field: sha_state_st::Nh"
5299    );
5300    assert_eq!(
5301        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5302        28usize,
5303        "Offset of field: sha_state_st::data"
5304    );
5305    assert_eq!(
5306        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5307        92usize,
5308        "Offset of field: sha_state_st::num"
5309    );
5310}
5311impl Default for sha_state_st {
5312    fn default() -> Self {
5313        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5314        unsafe {
5315            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5316            s.assume_init()
5317        }
5318    }
5319}
5320extern "C" {
5321    #[link_name = "\u{1}aws_lc_0_38_0_SHA224_Init"]
5322    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5323}
5324extern "C" {
5325    #[link_name = "\u{1}aws_lc_0_38_0_SHA224_Update"]
5326    pub fn SHA224_Update(
5327        sha: *mut SHA256_CTX,
5328        data: *const ::std::os::raw::c_void,
5329        len: usize,
5330    ) -> ::std::os::raw::c_int;
5331}
5332extern "C" {
5333    #[link_name = "\u{1}aws_lc_0_38_0_SHA224_Final"]
5334    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5335}
5336extern "C" {
5337    #[link_name = "\u{1}aws_lc_0_38_0_SHA224"]
5338    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5339}
5340extern "C" {
5341    #[link_name = "\u{1}aws_lc_0_38_0_SHA256_Init"]
5342    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5343}
5344extern "C" {
5345    #[link_name = "\u{1}aws_lc_0_38_0_SHA256_Update"]
5346    pub fn SHA256_Update(
5347        sha: *mut SHA256_CTX,
5348        data: *const ::std::os::raw::c_void,
5349        len: usize,
5350    ) -> ::std::os::raw::c_int;
5351}
5352extern "C" {
5353    #[link_name = "\u{1}aws_lc_0_38_0_SHA256_Final"]
5354    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5355}
5356extern "C" {
5357    #[link_name = "\u{1}aws_lc_0_38_0_SHA256"]
5358    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5359}
5360extern "C" {
5361    #[link_name = "\u{1}aws_lc_0_38_0_SHA256_Transform"]
5362    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
5363}
5364extern "C" {
5365    #[link_name = "\u{1}aws_lc_0_38_0_SHA256_TransformBlocks"]
5366    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
5367}
5368#[repr(C)]
5369#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5370pub struct sha256_state_st {
5371    pub h: [u32; 8usize],
5372    pub Nl: u32,
5373    pub Nh: u32,
5374    pub data: [u8; 64usize],
5375    pub num: ::std::os::raw::c_uint,
5376    pub md_len: ::std::os::raw::c_uint,
5377}
5378#[test]
5379fn bindgen_test_layout_sha256_state_st() {
5380    const UNINIT: ::std::mem::MaybeUninit<sha256_state_st> = ::std::mem::MaybeUninit::uninit();
5381    let ptr = UNINIT.as_ptr();
5382    assert_eq!(
5383        ::std::mem::size_of::<sha256_state_st>(),
5384        112usize,
5385        "Size of sha256_state_st"
5386    );
5387    assert_eq!(
5388        ::std::mem::align_of::<sha256_state_st>(),
5389        4usize,
5390        "Alignment of sha256_state_st"
5391    );
5392    assert_eq!(
5393        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5394        0usize,
5395        "Offset of field: sha256_state_st::h"
5396    );
5397    assert_eq!(
5398        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5399        32usize,
5400        "Offset of field: sha256_state_st::Nl"
5401    );
5402    assert_eq!(
5403        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5404        36usize,
5405        "Offset of field: sha256_state_st::Nh"
5406    );
5407    assert_eq!(
5408        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5409        40usize,
5410        "Offset of field: sha256_state_st::data"
5411    );
5412    assert_eq!(
5413        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5414        104usize,
5415        "Offset of field: sha256_state_st::num"
5416    );
5417    assert_eq!(
5418        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5419        108usize,
5420        "Offset of field: sha256_state_st::md_len"
5421    );
5422}
5423impl Default for sha256_state_st {
5424    fn default() -> Self {
5425        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5426        unsafe {
5427            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5428            s.assume_init()
5429        }
5430    }
5431}
5432extern "C" {
5433    #[link_name = "\u{1}aws_lc_0_38_0_SHA384_Init"]
5434    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5435}
5436extern "C" {
5437    #[link_name = "\u{1}aws_lc_0_38_0_SHA384_Update"]
5438    pub fn SHA384_Update(
5439        sha: *mut SHA512_CTX,
5440        data: *const ::std::os::raw::c_void,
5441        len: usize,
5442    ) -> ::std::os::raw::c_int;
5443}
5444extern "C" {
5445    #[link_name = "\u{1}aws_lc_0_38_0_SHA384_Final"]
5446    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5447}
5448extern "C" {
5449    #[link_name = "\u{1}aws_lc_0_38_0_SHA384"]
5450    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5451}
5452extern "C" {
5453    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_Init"]
5454    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5455}
5456extern "C" {
5457    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_Update"]
5458    pub fn SHA512_Update(
5459        sha: *mut SHA512_CTX,
5460        data: *const ::std::os::raw::c_void,
5461        len: usize,
5462    ) -> ::std::os::raw::c_int;
5463}
5464extern "C" {
5465    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_Final"]
5466    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5467}
5468extern "C" {
5469    #[link_name = "\u{1}aws_lc_0_38_0_SHA512"]
5470    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5471}
5472extern "C" {
5473    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_Transform"]
5474    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
5475}
5476#[repr(C)]
5477#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5478pub struct sha512_state_st {
5479    pub h: [u64; 8usize],
5480    pub Nl: u64,
5481    pub Nh: u64,
5482    pub p: [u8; 128usize],
5483    pub num: ::std::os::raw::c_uint,
5484    pub md_len: ::std::os::raw::c_uint,
5485}
5486#[test]
5487fn bindgen_test_layout_sha512_state_st() {
5488    const UNINIT: ::std::mem::MaybeUninit<sha512_state_st> = ::std::mem::MaybeUninit::uninit();
5489    let ptr = UNINIT.as_ptr();
5490    assert_eq!(
5491        ::std::mem::size_of::<sha512_state_st>(),
5492        216usize,
5493        "Size of sha512_state_st"
5494    );
5495    assert_eq!(
5496        ::std::mem::align_of::<sha512_state_st>(),
5497        8usize,
5498        "Alignment of sha512_state_st"
5499    );
5500    assert_eq!(
5501        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5502        0usize,
5503        "Offset of field: sha512_state_st::h"
5504    );
5505    assert_eq!(
5506        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5507        64usize,
5508        "Offset of field: sha512_state_st::Nl"
5509    );
5510    assert_eq!(
5511        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5512        72usize,
5513        "Offset of field: sha512_state_st::Nh"
5514    );
5515    assert_eq!(
5516        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
5517        80usize,
5518        "Offset of field: sha512_state_st::p"
5519    );
5520    assert_eq!(
5521        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5522        208usize,
5523        "Offset of field: sha512_state_st::num"
5524    );
5525    assert_eq!(
5526        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5527        212usize,
5528        "Offset of field: sha512_state_st::md_len"
5529    );
5530}
5531impl Default for sha512_state_st {
5532    fn default() -> Self {
5533        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5534        unsafe {
5535            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5536            s.assume_init()
5537        }
5538    }
5539}
5540extern "C" {
5541    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_224_Init"]
5542    pub fn SHA512_224_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5543}
5544extern "C" {
5545    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_224_Update"]
5546    pub fn SHA512_224_Update(
5547        sha: *mut SHA512_CTX,
5548        data: *const ::std::os::raw::c_void,
5549        len: usize,
5550    ) -> ::std::os::raw::c_int;
5551}
5552extern "C" {
5553    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_224_Final"]
5554    pub fn SHA512_224_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5555}
5556extern "C" {
5557    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_224"]
5558    pub fn SHA512_224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5559}
5560extern "C" {
5561    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_256_Init"]
5562    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5563}
5564extern "C" {
5565    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_256_Update"]
5566    pub fn SHA512_256_Update(
5567        sha: *mut SHA512_CTX,
5568        data: *const ::std::os::raw::c_void,
5569        len: usize,
5570    ) -> ::std::os::raw::c_int;
5571}
5572extern "C" {
5573    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_256_Final"]
5574    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5575}
5576extern "C" {
5577    #[link_name = "\u{1}aws_lc_0_38_0_SHA512_256"]
5578    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5579}
5580extern "C" {
5581    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_malloc"]
5582    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5583}
5584extern "C" {
5585    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_zalloc"]
5586    pub fn OPENSSL_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5587}
5588extern "C" {
5589    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_calloc"]
5590    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
5591}
5592extern "C" {
5593    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_realloc"]
5594    pub fn OPENSSL_realloc(
5595        ptr: *mut ::std::os::raw::c_void,
5596        new_size: usize,
5597    ) -> *mut ::std::os::raw::c_void;
5598}
5599extern "C" {
5600    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_free"]
5601    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
5602}
5603extern "C" {
5604    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_cleanse"]
5605    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
5606}
5607extern "C" {
5608    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_memcmp"]
5609    pub fn CRYPTO_memcmp(
5610        a: *const ::std::os::raw::c_void,
5611        b: *const ::std::os::raw::c_void,
5612        len: usize,
5613    ) -> ::std::os::raw::c_int;
5614}
5615extern "C" {
5616    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_hash32"]
5617    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
5618}
5619extern "C" {
5620    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strhash"]
5621    pub fn OPENSSL_strhash(s: *const ::std::os::raw::c_char) -> u32;
5622}
5623extern "C" {
5624    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strdup"]
5625    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5626}
5627extern "C" {
5628    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strnlen"]
5629    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
5630}
5631extern "C" {
5632    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_isalpha"]
5633    pub fn OPENSSL_isalpha(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5634}
5635extern "C" {
5636    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_isdigit"]
5637    pub fn OPENSSL_isdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5638}
5639extern "C" {
5640    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_isxdigit"]
5641    pub fn OPENSSL_isxdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5642}
5643extern "C" {
5644    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_fromxdigit"]
5645    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5646}
5647extern "C" {
5648    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_hexstr2buf"]
5649    pub fn OPENSSL_hexstr2buf(str_: *const ::std::os::raw::c_char, len: *mut usize) -> *mut u8;
5650}
5651extern "C" {
5652    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_isalnum"]
5653    pub fn OPENSSL_isalnum(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5654}
5655extern "C" {
5656    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_tolower"]
5657    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5658}
5659extern "C" {
5660    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_isspace"]
5661    pub fn OPENSSL_isspace(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5662}
5663extern "C" {
5664    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strcasecmp"]
5665    pub fn OPENSSL_strcasecmp(
5666        a: *const ::std::os::raw::c_char,
5667        b: *const ::std::os::raw::c_char,
5668    ) -> ::std::os::raw::c_int;
5669}
5670extern "C" {
5671    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strncasecmp"]
5672    pub fn OPENSSL_strncasecmp(
5673        a: *const ::std::os::raw::c_char,
5674        b: *const ::std::os::raw::c_char,
5675        n: usize,
5676    ) -> ::std::os::raw::c_int;
5677}
5678extern "C" {
5679    #[link_name = "\u{1}aws_lc_0_38_0_BIO_snprintf"]
5680    pub fn BIO_snprintf(
5681        buf: *mut ::std::os::raw::c_char,
5682        n: usize,
5683        format: *const ::std::os::raw::c_char,
5684        ...
5685    ) -> ::std::os::raw::c_int;
5686}
5687extern "C" {
5688    #[link_name = "\u{1}aws_lc_0_38_0_BIO_vsnprintf"]
5689    pub fn BIO_vsnprintf(
5690        buf: *mut ::std::os::raw::c_char,
5691        n: usize,
5692        format: *const ::std::os::raw::c_char,
5693        args: *mut __va_list_tag,
5694    ) -> ::std::os::raw::c_int;
5695}
5696extern "C" {
5697    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_vasprintf"]
5698    pub fn OPENSSL_vasprintf(
5699        str_: *mut *mut ::std::os::raw::c_char,
5700        format: *const ::std::os::raw::c_char,
5701        args: *mut __va_list_tag,
5702    ) -> ::std::os::raw::c_int;
5703}
5704extern "C" {
5705    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_asprintf"]
5706    pub fn OPENSSL_asprintf(
5707        str_: *mut *mut ::std::os::raw::c_char,
5708        format: *const ::std::os::raw::c_char,
5709        ...
5710    ) -> ::std::os::raw::c_int;
5711}
5712extern "C" {
5713    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strndup"]
5714    pub fn OPENSSL_strndup(
5715        str_: *const ::std::os::raw::c_char,
5716        size: usize,
5717    ) -> *mut ::std::os::raw::c_char;
5718}
5719extern "C" {
5720    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_memdup"]
5721    pub fn OPENSSL_memdup(
5722        data: *const ::std::os::raw::c_void,
5723        size: usize,
5724    ) -> *mut ::std::os::raw::c_void;
5725}
5726extern "C" {
5727    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strlcpy"]
5728    pub fn OPENSSL_strlcpy(
5729        dst: *mut ::std::os::raw::c_char,
5730        src: *const ::std::os::raw::c_char,
5731        dst_size: usize,
5732    ) -> usize;
5733}
5734extern "C" {
5735    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_strlcat"]
5736    pub fn OPENSSL_strlcat(
5737        dst: *mut ::std::os::raw::c_char,
5738        src: *const ::std::os::raw::c_char,
5739        dst_size: usize,
5740    ) -> usize;
5741}
5742extern "C" {
5743    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_malloc"]
5744    pub fn CRYPTO_malloc(
5745        size: usize,
5746        file: *const ::std::os::raw::c_char,
5747        line: ::std::os::raw::c_int,
5748    ) -> *mut ::std::os::raw::c_void;
5749}
5750extern "C" {
5751    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_realloc"]
5752    pub fn CRYPTO_realloc(
5753        ptr: *mut ::std::os::raw::c_void,
5754        new_size: usize,
5755        file: *const ::std::os::raw::c_char,
5756        line: ::std::os::raw::c_int,
5757    ) -> *mut ::std::os::raw::c_void;
5758}
5759extern "C" {
5760    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_free"]
5761    pub fn CRYPTO_free(
5762        ptr: *mut ::std::os::raw::c_void,
5763        file: *const ::std::os::raw::c_char,
5764        line: ::std::os::raw::c_int,
5765    );
5766}
5767extern "C" {
5768    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_clear_free"]
5769    pub fn OPENSSL_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5770}
5771extern "C" {
5772    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_mem_functions"]
5773    pub fn CRYPTO_set_mem_functions(
5774        m: ::std::option::Option<
5775            unsafe extern "C" fn(
5776                arg1: usize,
5777                arg2: *const ::std::os::raw::c_char,
5778                arg3: ::std::os::raw::c_int,
5779            ) -> *mut ::std::os::raw::c_void,
5780        >,
5781        r: ::std::option::Option<
5782            unsafe extern "C" fn(
5783                arg1: *mut ::std::os::raw::c_void,
5784                arg2: usize,
5785                arg3: *const ::std::os::raw::c_char,
5786                arg4: ::std::os::raw::c_int,
5787            ) -> *mut ::std::os::raw::c_void,
5788        >,
5789        f: ::std::option::Option<
5790            unsafe extern "C" fn(
5791                arg1: *mut ::std::os::raw::c_void,
5792                arg2: *const ::std::os::raw::c_char,
5793                arg3: ::std::os::raw::c_int,
5794            ),
5795        >,
5796    ) -> ::std::os::raw::c_int;
5797}
5798extern "C" {
5799    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_secure_malloc_init"]
5800    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::std::os::raw::c_int;
5801}
5802extern "C" {
5803    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_secure_malloc_initialized"]
5804    pub fn CRYPTO_secure_malloc_initialized() -> ::std::os::raw::c_int;
5805}
5806extern "C" {
5807    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_secure_used"]
5808    pub fn CRYPTO_secure_used() -> usize;
5809}
5810extern "C" {
5811    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_secure_malloc"]
5812    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5813}
5814extern "C" {
5815    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_secure_zalloc"]
5816    pub fn OPENSSL_secure_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5817}
5818extern "C" {
5819    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_secure_clear_free"]
5820    pub fn OPENSSL_secure_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5821}
5822#[repr(C)]
5823#[derive(Copy, Clone)]
5824pub union crypto_mutex_st {
5825    pub alignment: f64,
5826    pub padding: [u8; 56usize],
5827}
5828#[test]
5829fn bindgen_test_layout_crypto_mutex_st() {
5830    const UNINIT: ::std::mem::MaybeUninit<crypto_mutex_st> = ::std::mem::MaybeUninit::uninit();
5831    let ptr = UNINIT.as_ptr();
5832    assert_eq!(
5833        ::std::mem::size_of::<crypto_mutex_st>(),
5834        56usize,
5835        "Size of crypto_mutex_st"
5836    );
5837    assert_eq!(
5838        ::std::mem::align_of::<crypto_mutex_st>(),
5839        8usize,
5840        "Alignment of crypto_mutex_st"
5841    );
5842    assert_eq!(
5843        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
5844        0usize,
5845        "Offset of field: crypto_mutex_st::alignment"
5846    );
5847    assert_eq!(
5848        unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
5849        0usize,
5850        "Offset of field: crypto_mutex_st::padding"
5851    );
5852}
5853impl Default for crypto_mutex_st {
5854    fn default() -> Self {
5855        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5856        unsafe {
5857            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5858            s.assume_init()
5859        }
5860    }
5861}
5862pub type CRYPTO_MUTEX = crypto_mutex_st;
5863pub type CRYPTO_refcount_t = u32;
5864extern "C" {
5865    #[link_name = "\u{1}aws_lc_0_38_0_AWSLC_thread_local_clear"]
5866    pub fn AWSLC_thread_local_clear() -> ::std::os::raw::c_int;
5867}
5868extern "C" {
5869    #[link_name = "\u{1}aws_lc_0_38_0_AWSLC_thread_local_shutdown"]
5870    pub fn AWSLC_thread_local_shutdown() -> ::std::os::raw::c_int;
5871}
5872extern "C" {
5873    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_num_locks"]
5874    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
5875}
5876extern "C" {
5877    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_locking_callback"]
5878    pub fn CRYPTO_set_locking_callback(
5879        func: ::std::option::Option<
5880            unsafe extern "C" fn(
5881                mode: ::std::os::raw::c_int,
5882                lock_num: ::std::os::raw::c_int,
5883                file: *const ::std::os::raw::c_char,
5884                line: ::std::os::raw::c_int,
5885            ),
5886        >,
5887    );
5888}
5889extern "C" {
5890    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_add_lock_callback"]
5891    pub fn CRYPTO_set_add_lock_callback(
5892        func: ::std::option::Option<
5893            unsafe extern "C" fn(
5894                num: *mut ::std::os::raw::c_int,
5895                amount: ::std::os::raw::c_int,
5896                lock_num: ::std::os::raw::c_int,
5897                file: *const ::std::os::raw::c_char,
5898                line: ::std::os::raw::c_int,
5899            ) -> ::std::os::raw::c_int,
5900        >,
5901    );
5902}
5903extern "C" {
5904    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_get_locking_callback"]
5905    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<
5906        unsafe extern "C" fn(
5907            arg1: ::std::os::raw::c_int,
5908            arg2: ::std::os::raw::c_int,
5909            arg3: *const ::std::os::raw::c_char,
5910            arg4: ::std::os::raw::c_int,
5911        ),
5912    >;
5913}
5914extern "C" {
5915    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_get_lock_name"]
5916    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
5917}
5918extern "C" {
5919    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_THREADID_set_callback"]
5920    pub fn CRYPTO_THREADID_set_callback(
5921        threadid_func: ::std::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
5922    ) -> ::std::os::raw::c_int;
5923}
5924extern "C" {
5925    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_THREADID_set_numeric"]
5926    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
5927}
5928extern "C" {
5929    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_THREADID_set_pointer"]
5930    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
5931}
5932extern "C" {
5933    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_THREADID_current"]
5934    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
5935}
5936extern "C" {
5937    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_id_callback"]
5938    pub fn CRYPTO_set_id_callback(
5939        func: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_ulong>,
5940    );
5941}
5942#[repr(C)]
5943#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5944pub struct CRYPTO_dynlock {
5945    pub references: ::std::os::raw::c_int,
5946    pub data: *mut CRYPTO_dynlock_value,
5947}
5948#[test]
5949fn bindgen_test_layout_CRYPTO_dynlock() {
5950    const UNINIT: ::std::mem::MaybeUninit<CRYPTO_dynlock> = ::std::mem::MaybeUninit::uninit();
5951    let ptr = UNINIT.as_ptr();
5952    assert_eq!(
5953        ::std::mem::size_of::<CRYPTO_dynlock>(),
5954        16usize,
5955        "Size of CRYPTO_dynlock"
5956    );
5957    assert_eq!(
5958        ::std::mem::align_of::<CRYPTO_dynlock>(),
5959        8usize,
5960        "Alignment of CRYPTO_dynlock"
5961    );
5962    assert_eq!(
5963        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
5964        0usize,
5965        "Offset of field: CRYPTO_dynlock::references"
5966    );
5967    assert_eq!(
5968        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5969        8usize,
5970        "Offset of field: CRYPTO_dynlock::data"
5971    );
5972}
5973impl Default for CRYPTO_dynlock {
5974    fn default() -> Self {
5975        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5976        unsafe {
5977            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5978            s.assume_init()
5979        }
5980    }
5981}
5982extern "C" {
5983    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_dynlock_create_callback"]
5984    pub fn CRYPTO_set_dynlock_create_callback(
5985        dyn_create_function: ::std::option::Option<
5986            unsafe extern "C" fn(
5987                file: *const ::std::os::raw::c_char,
5988                line: ::std::os::raw::c_int,
5989            ) -> *mut CRYPTO_dynlock_value,
5990        >,
5991    );
5992}
5993extern "C" {
5994    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_dynlock_lock_callback"]
5995    pub fn CRYPTO_set_dynlock_lock_callback(
5996        dyn_lock_function: ::std::option::Option<
5997            unsafe extern "C" fn(
5998                mode: ::std::os::raw::c_int,
5999                l: *mut CRYPTO_dynlock_value,
6000                file: *const ::std::os::raw::c_char,
6001                line: ::std::os::raw::c_int,
6002            ),
6003        >,
6004    );
6005}
6006extern "C" {
6007    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_set_dynlock_destroy_callback"]
6008    pub fn CRYPTO_set_dynlock_destroy_callback(
6009        dyn_destroy_function: ::std::option::Option<
6010            unsafe extern "C" fn(
6011                l: *mut CRYPTO_dynlock_value,
6012                file: *const ::std::os::raw::c_char,
6013                line: ::std::os::raw::c_int,
6014            ),
6015        >,
6016    );
6017}
6018extern "C" {
6019    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_get_dynlock_create_callback"]
6020    pub fn CRYPTO_get_dynlock_create_callback() -> ::std::option::Option<
6021        unsafe extern "C" fn(
6022            arg1: *const ::std::os::raw::c_char,
6023            arg2: ::std::os::raw::c_int,
6024        ) -> *mut CRYPTO_dynlock_value,
6025    >;
6026}
6027extern "C" {
6028    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_get_dynlock_lock_callback"]
6029    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<
6030        unsafe extern "C" fn(
6031            arg1: ::std::os::raw::c_int,
6032            arg2: *mut CRYPTO_dynlock_value,
6033            arg3: *const ::std::os::raw::c_char,
6034            arg4: ::std::os::raw::c_int,
6035        ),
6036    >;
6037}
6038extern "C" {
6039    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_get_dynlock_destroy_callback"]
6040    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<
6041        unsafe extern "C" fn(
6042            arg1: *mut CRYPTO_dynlock_value,
6043            arg2: *const ::std::os::raw::c_char,
6044            arg3: ::std::os::raw::c_int,
6045        ),
6046    >;
6047}
6048extern "C" {
6049    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_library_init"]
6050    pub fn CRYPTO_library_init();
6051}
6052extern "C" {
6053    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_is_confidential_build"]
6054    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
6055}
6056extern "C" {
6057    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_has_asm"]
6058    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
6059}
6060extern "C" {
6061    #[link_name = "\u{1}aws_lc_0_38_0_BORINGSSL_self_test"]
6062    pub fn BORINGSSL_self_test() -> ::std::os::raw::c_int;
6063}
6064extern "C" {
6065    pub fn BORINGSSL_integrity_test() -> ::std::os::raw::c_int;
6066}
6067extern "C" {
6068    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_pre_sandbox_init"]
6069    pub fn CRYPTO_pre_sandbox_init();
6070}
6071extern "C" {
6072    #[link_name = "\u{1}aws_lc_0_38_0_FIPS_mode"]
6073    pub fn FIPS_mode() -> ::std::os::raw::c_int;
6074}
6075extern "C" {
6076    #[link_name = "\u{1}aws_lc_0_38_0_FIPS_is_entropy_cpu_jitter"]
6077    pub fn FIPS_is_entropy_cpu_jitter() -> ::std::os::raw::c_int;
6078}
6079extern "C" {
6080    #[link_name = "\u{1}aws_lc_0_38_0_OpenSSL_version"]
6081    pub fn OpenSSL_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6082}
6083extern "C" {
6084    #[link_name = "\u{1}aws_lc_0_38_0_SSLeay_version"]
6085    pub fn SSLeay_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6086}
6087extern "C" {
6088    #[link_name = "\u{1}aws_lc_0_38_0_SSLeay"]
6089    pub fn SSLeay() -> ::std::os::raw::c_ulong;
6090}
6091extern "C" {
6092    #[link_name = "\u{1}aws_lc_0_38_0_OpenSSL_version_num"]
6093    pub fn OpenSSL_version_num() -> ::std::os::raw::c_ulong;
6094}
6095extern "C" {
6096    #[link_name = "\u{1}aws_lc_0_38_0_awslc_api_version_num"]
6097    pub fn awslc_api_version_num() -> ::std::os::raw::c_ulong;
6098}
6099extern "C" {
6100    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_malloc_init"]
6101    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
6102}
6103extern "C" {
6104    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_malloc_init"]
6105    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
6106}
6107extern "C" {
6108    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_load_builtin_engines"]
6109    pub fn ENGINE_load_builtin_engines();
6110}
6111extern "C" {
6112    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_register_all_ciphers"]
6113    pub fn ENGINE_register_all_ciphers();
6114}
6115extern "C" {
6116    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_register_all_digests"]
6117    pub fn ENGINE_register_all_digests();
6118}
6119extern "C" {
6120    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_register_all_complete"]
6121    pub fn ENGINE_register_all_complete() -> ::std::os::raw::c_int;
6122}
6123extern "C" {
6124    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_load_builtin_modules"]
6125    pub fn OPENSSL_load_builtin_modules();
6126}
6127extern "C" {
6128    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_init_crypto"]
6129    pub fn OPENSSL_init_crypto(
6130        opts: u64,
6131        settings: *const OPENSSL_INIT_SETTINGS,
6132    ) -> ::std::os::raw::c_int;
6133}
6134extern "C" {
6135    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_init"]
6136    pub fn OPENSSL_init();
6137}
6138extern "C" {
6139    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_cleanup"]
6140    pub fn OPENSSL_cleanup();
6141}
6142extern "C" {
6143    #[link_name = "\u{1}aws_lc_0_38_0_FIPS_mode_set"]
6144    pub fn FIPS_mode_set(on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6145}
6146extern "C" {
6147    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_mem_ctrl"]
6148    pub fn CRYPTO_mem_ctrl(mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6149}
6150extern "C" {
6151    #[link_name = "\u{1}aws_lc_0_38_0_ERR_load_BIO_strings"]
6152    pub fn ERR_load_BIO_strings();
6153}
6154extern "C" {
6155    #[link_name = "\u{1}aws_lc_0_38_0_ERR_load_ERR_strings"]
6156    pub fn ERR_load_ERR_strings();
6157}
6158extern "C" {
6159    #[link_name = "\u{1}aws_lc_0_38_0_ERR_load_CRYPTO_strings"]
6160    pub fn ERR_load_CRYPTO_strings();
6161}
6162extern "C" {
6163    #[link_name = "\u{1}aws_lc_0_38_0_ERR_load_crypto_strings"]
6164    pub fn ERR_load_crypto_strings();
6165}
6166extern "C" {
6167    #[link_name = "\u{1}aws_lc_0_38_0_ERR_load_RAND_strings"]
6168    pub fn ERR_load_RAND_strings();
6169}
6170extern "C" {
6171    #[link_name = "\u{1}aws_lc_0_38_0_ERR_free_strings"]
6172    pub fn ERR_free_strings();
6173}
6174extern "C" {
6175    #[link_name = "\u{1}aws_lc_0_38_0_ERR_get_error"]
6176    pub fn ERR_get_error() -> u32;
6177}
6178extern "C" {
6179    #[link_name = "\u{1}aws_lc_0_38_0_ERR_get_error_line"]
6180    pub fn ERR_get_error_line(
6181        file: *mut *const ::std::os::raw::c_char,
6182        line: *mut ::std::os::raw::c_int,
6183    ) -> u32;
6184}
6185extern "C" {
6186    #[link_name = "\u{1}aws_lc_0_38_0_ERR_get_error_line_data"]
6187    pub fn ERR_get_error_line_data(
6188        file: *mut *const ::std::os::raw::c_char,
6189        line: *mut ::std::os::raw::c_int,
6190        data: *mut *const ::std::os::raw::c_char,
6191        flags: *mut ::std::os::raw::c_int,
6192    ) -> u32;
6193}
6194extern "C" {
6195    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_error"]
6196    pub fn ERR_peek_error() -> u32;
6197}
6198extern "C" {
6199    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_error_line"]
6200    pub fn ERR_peek_error_line(
6201        file: *mut *const ::std::os::raw::c_char,
6202        line: *mut ::std::os::raw::c_int,
6203    ) -> u32;
6204}
6205extern "C" {
6206    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_error_line_data"]
6207    pub fn ERR_peek_error_line_data(
6208        file: *mut *const ::std::os::raw::c_char,
6209        line: *mut ::std::os::raw::c_int,
6210        data: *mut *const ::std::os::raw::c_char,
6211        flags: *mut ::std::os::raw::c_int,
6212    ) -> u32;
6213}
6214extern "C" {
6215    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_last_error"]
6216    pub fn ERR_peek_last_error() -> u32;
6217}
6218extern "C" {
6219    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_last_error_line"]
6220    pub fn ERR_peek_last_error_line(
6221        file: *mut *const ::std::os::raw::c_char,
6222        line: *mut ::std::os::raw::c_int,
6223    ) -> u32;
6224}
6225extern "C" {
6226    #[link_name = "\u{1}aws_lc_0_38_0_ERR_peek_last_error_line_data"]
6227    pub fn ERR_peek_last_error_line_data(
6228        file: *mut *const ::std::os::raw::c_char,
6229        line: *mut ::std::os::raw::c_int,
6230        data: *mut *const ::std::os::raw::c_char,
6231        flags: *mut ::std::os::raw::c_int,
6232    ) -> u32;
6233}
6234extern "C" {
6235    #[link_name = "\u{1}aws_lc_0_38_0_ERR_error_string_n"]
6236    pub fn ERR_error_string_n(
6237        packed_error: u32,
6238        buf: *mut ::std::os::raw::c_char,
6239        len: usize,
6240    ) -> *mut ::std::os::raw::c_char;
6241}
6242extern "C" {
6243    #[link_name = "\u{1}aws_lc_0_38_0_ERR_lib_error_string"]
6244    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6245}
6246extern "C" {
6247    #[link_name = "\u{1}aws_lc_0_38_0_ERR_reason_error_string"]
6248    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6249}
6250pub type ERR_print_errors_callback_t = ::std::option::Option<
6251    unsafe extern "C" fn(
6252        str_: *const ::std::os::raw::c_char,
6253        len: usize,
6254        ctx: *mut ::std::os::raw::c_void,
6255    ) -> ::std::os::raw::c_int,
6256>;
6257extern "C" {
6258    #[link_name = "\u{1}aws_lc_0_38_0_ERR_print_errors_cb"]
6259    pub fn ERR_print_errors_cb(
6260        callback: ERR_print_errors_callback_t,
6261        ctx: *mut ::std::os::raw::c_void,
6262    );
6263}
6264extern "C" {
6265    #[link_name = "\u{1}aws_lc_0_38_0_ERR_print_errors_fp"]
6266    pub fn ERR_print_errors_fp(file: *mut FILE);
6267}
6268extern "C" {
6269    #[link_name = "\u{1}aws_lc_0_38_0_ERR_clear_error"]
6270    pub fn ERR_clear_error();
6271}
6272extern "C" {
6273    #[link_name = "\u{1}aws_lc_0_38_0_ERR_set_mark"]
6274    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
6275}
6276extern "C" {
6277    #[link_name = "\u{1}aws_lc_0_38_0_ERR_pop_to_mark"]
6278    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
6279}
6280extern "C" {
6281    #[link_name = "\u{1}aws_lc_0_38_0_ERR_get_next_error_library"]
6282    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
6283}
6284extern "C" {
6285    #[link_name = "\u{1}aws_lc_0_38_0_ERR_remove_state"]
6286    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
6287}
6288extern "C" {
6289    #[link_name = "\u{1}aws_lc_0_38_0_ERR_remove_thread_state"]
6290    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
6291}
6292extern "C" {
6293    #[link_name = "\u{1}aws_lc_0_38_0_ERR_func_error_string"]
6294    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6295}
6296extern "C" {
6297    #[link_name = "\u{1}aws_lc_0_38_0_ERR_error_string"]
6298    pub fn ERR_error_string(
6299        packed_error: u32,
6300        buf: *mut ::std::os::raw::c_char,
6301    ) -> *mut ::std::os::raw::c_char;
6302}
6303extern "C" {
6304    #[link_name = "\u{1}aws_lc_0_38_0_ERR_clear_system_error"]
6305    pub fn ERR_clear_system_error();
6306}
6307extern "C" {
6308    #[link_name = "\u{1}aws_lc_0_38_0_ERR_put_error"]
6309    pub fn ERR_put_error(
6310        library: ::std::os::raw::c_int,
6311        unused: ::std::os::raw::c_int,
6312        reason: ::std::os::raw::c_int,
6313        file: *const ::std::os::raw::c_char,
6314        line: ::std::os::raw::c_uint,
6315    );
6316}
6317extern "C" {
6318    #[link_name = "\u{1}aws_lc_0_38_0_ERR_add_error_data"]
6319    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
6320}
6321extern "C" {
6322    #[link_name = "\u{1}aws_lc_0_38_0_ERR_add_error_dataf"]
6323    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
6324}
6325extern "C" {
6326    #[link_name = "\u{1}aws_lc_0_38_0_ERR_set_error_data"]
6327    pub fn ERR_set_error_data(data: *mut ::std::os::raw::c_char, flags: ::std::os::raw::c_int);
6328}
6329pub type OPENSSL_sk_free_func =
6330    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
6331pub type OPENSSL_sk_copy_func = ::std::option::Option<
6332    unsafe extern "C" fn(ptr: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6333>;
6334pub type OPENSSL_sk_cmp_func = ::std::option::Option<
6335    unsafe extern "C" fn(
6336        a: *const *const ::std::os::raw::c_void,
6337        b: *const *const ::std::os::raw::c_void,
6338    ) -> ::std::os::raw::c_int,
6339>;
6340pub type OPENSSL_sk_delete_if_func = ::std::option::Option<
6341    unsafe extern "C" fn(
6342        obj: *mut ::std::os::raw::c_void,
6343        data: *mut ::std::os::raw::c_void,
6344    ) -> ::std::os::raw::c_int,
6345>;
6346pub type OPENSSL_sk_call_free_func = ::std::option::Option<
6347    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::std::os::raw::c_void),
6348>;
6349pub type OPENSSL_sk_call_copy_func = ::std::option::Option<
6350    unsafe extern "C" fn(
6351        arg1: OPENSSL_sk_copy_func,
6352        arg2: *const ::std::os::raw::c_void,
6353    ) -> *mut ::std::os::raw::c_void,
6354>;
6355pub type OPENSSL_sk_call_cmp_func = ::std::option::Option<
6356    unsafe extern "C" fn(
6357        arg1: OPENSSL_sk_cmp_func,
6358        arg2: *const ::std::os::raw::c_void,
6359        arg3: *const ::std::os::raw::c_void,
6360    ) -> ::std::os::raw::c_int,
6361>;
6362pub type OPENSSL_sk_call_delete_if_func = ::std::option::Option<
6363    unsafe extern "C" fn(
6364        arg1: OPENSSL_sk_delete_if_func,
6365        arg2: *mut ::std::os::raw::c_void,
6366        arg3: *mut ::std::os::raw::c_void,
6367    ) -> ::std::os::raw::c_int,
6368>;
6369#[repr(C)]
6370#[derive(Debug, Copy, Clone)]
6371pub struct stack_st {
6372    _unused: [u8; 0],
6373}
6374pub type OPENSSL_STACK = stack_st;
6375extern "C" {
6376    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_new"]
6377    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
6378}
6379extern "C" {
6380    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_new_null"]
6381    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
6382}
6383extern "C" {
6384    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_num"]
6385    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
6386}
6387extern "C" {
6388    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_zero"]
6389    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
6390}
6391extern "C" {
6392    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_value"]
6393    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::std::os::raw::c_void;
6394}
6395extern "C" {
6396    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_set"]
6397    pub fn OPENSSL_sk_set(
6398        sk: *mut OPENSSL_STACK,
6399        i: usize,
6400        p: *mut ::std::os::raw::c_void,
6401    ) -> *mut ::std::os::raw::c_void;
6402}
6403extern "C" {
6404    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_free"]
6405    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
6406}
6407extern "C" {
6408    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_pop_free_ex"]
6409    pub fn OPENSSL_sk_pop_free_ex(
6410        sk: *mut OPENSSL_STACK,
6411        call_free_func: OPENSSL_sk_call_free_func,
6412        free_func: OPENSSL_sk_free_func,
6413    );
6414}
6415extern "C" {
6416    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_insert"]
6417    pub fn OPENSSL_sk_insert(
6418        sk: *mut OPENSSL_STACK,
6419        p: *mut ::std::os::raw::c_void,
6420        where_: usize,
6421    ) -> usize;
6422}
6423extern "C" {
6424    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_delete"]
6425    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::std::os::raw::c_void;
6426}
6427extern "C" {
6428    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_delete_ptr"]
6429    pub fn OPENSSL_sk_delete_ptr(
6430        sk: *mut OPENSSL_STACK,
6431        p: *const ::std::os::raw::c_void,
6432    ) -> *mut ::std::os::raw::c_void;
6433}
6434extern "C" {
6435    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_delete_if"]
6436    pub fn OPENSSL_sk_delete_if(
6437        sk: *mut OPENSSL_STACK,
6438        call_func: OPENSSL_sk_call_delete_if_func,
6439        func: OPENSSL_sk_delete_if_func,
6440        data: *mut ::std::os::raw::c_void,
6441    );
6442}
6443extern "C" {
6444    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_find"]
6445    pub fn OPENSSL_sk_find(
6446        sk: *const OPENSSL_STACK,
6447        out_index: *mut usize,
6448        p: *const ::std::os::raw::c_void,
6449        call_cmp_func: OPENSSL_sk_call_cmp_func,
6450    ) -> ::std::os::raw::c_int;
6451}
6452extern "C" {
6453    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_unshift"]
6454    pub fn OPENSSL_sk_unshift(
6455        sk: *mut OPENSSL_STACK,
6456        data: *mut ::std::os::raw::c_void,
6457    ) -> ::std::os::raw::c_int;
6458}
6459extern "C" {
6460    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_shift"]
6461    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6462}
6463extern "C" {
6464    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_push"]
6465    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::std::os::raw::c_void) -> usize;
6466}
6467extern "C" {
6468    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_pop"]
6469    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6470}
6471extern "C" {
6472    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_dup"]
6473    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6474}
6475extern "C" {
6476    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_sort"]
6477    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6478}
6479extern "C" {
6480    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_is_sorted"]
6481    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::std::os::raw::c_int;
6482}
6483extern "C" {
6484    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_set_cmp_func"]
6485    pub fn OPENSSL_sk_set_cmp_func(
6486        sk: *mut OPENSSL_STACK,
6487        comp: OPENSSL_sk_cmp_func,
6488    ) -> OPENSSL_sk_cmp_func;
6489}
6490extern "C" {
6491    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_sk_deep_copy"]
6492    pub fn OPENSSL_sk_deep_copy(
6493        sk: *const OPENSSL_STACK,
6494        call_copy_func: OPENSSL_sk_call_copy_func,
6495        copy_func: OPENSSL_sk_copy_func,
6496        call_free_func: OPENSSL_sk_call_free_func,
6497        free_func: OPENSSL_sk_free_func,
6498    ) -> *mut OPENSSL_STACK;
6499}
6500pub type _STACK = OPENSSL_STACK;
6501extern "C" {
6502    #[link_name = "\u{1}aws_lc_0_38_0_sk_pop_free"]
6503    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6504}
6505pub type OPENSSL_STRING = *mut ::std::os::raw::c_char;
6506#[repr(C)]
6507#[derive(Debug, Copy, Clone)]
6508pub struct stack_st_void {
6509    _unused: [u8; 0],
6510}
6511pub type sk_void_free_func =
6512    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
6513pub type sk_void_copy_func = ::std::option::Option<
6514    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6515>;
6516pub type sk_void_cmp_func = ::std::option::Option<
6517    unsafe extern "C" fn(
6518        arg1: *const *const ::std::os::raw::c_void,
6519        arg2: *const *const ::std::os::raw::c_void,
6520    ) -> ::std::os::raw::c_int,
6521>;
6522pub type sk_void_delete_if_func = ::std::option::Option<
6523    unsafe extern "C" fn(
6524        arg1: *mut ::std::os::raw::c_void,
6525        arg2: *mut ::std::os::raw::c_void,
6526    ) -> ::std::os::raw::c_int,
6527>;
6528#[repr(C)]
6529#[derive(Debug, Copy, Clone)]
6530pub struct stack_st_OPENSSL_STRING {
6531    _unused: [u8; 0],
6532}
6533pub type sk_OPENSSL_STRING_free_func =
6534    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char)>;
6535pub type sk_OPENSSL_STRING_copy_func = ::std::option::Option<
6536    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
6537>;
6538pub type sk_OPENSSL_STRING_cmp_func = ::std::option::Option<
6539    unsafe extern "C" fn(
6540        arg1: *const *const ::std::os::raw::c_char,
6541        arg2: *const *const ::std::os::raw::c_char,
6542    ) -> ::std::os::raw::c_int,
6543>;
6544pub type sk_OPENSSL_STRING_delete_if_func = ::std::option::Option<
6545    unsafe extern "C" fn(
6546        arg1: *mut ::std::os::raw::c_char,
6547        arg2: *mut ::std::os::raw::c_void,
6548    ) -> ::std::os::raw::c_int,
6549>;
6550pub type CRYPTO_EX_DATA = crypto_ex_data_st;
6551pub type CRYPTO_EX_free = ::std::option::Option<
6552    unsafe extern "C" fn(
6553        parent: *mut ::std::os::raw::c_void,
6554        ptr: *mut ::std::os::raw::c_void,
6555        ad: *mut CRYPTO_EX_DATA,
6556        index: ::std::os::raw::c_int,
6557        argl: ::std::os::raw::c_long,
6558        argp: *mut ::std::os::raw::c_void,
6559    ),
6560>;
6561extern "C" {
6562    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_cleanup_all_ex_data"]
6563    pub fn CRYPTO_cleanup_all_ex_data();
6564}
6565pub type CRYPTO_EX_dup = ::std::option::Option<
6566    unsafe extern "C" fn(
6567        to: *mut CRYPTO_EX_DATA,
6568        from: *const CRYPTO_EX_DATA,
6569        from_d: *mut *mut ::std::os::raw::c_void,
6570        index: ::std::os::raw::c_int,
6571        argl: ::std::os::raw::c_long,
6572        argp: *mut ::std::os::raw::c_void,
6573    ) -> ::std::os::raw::c_int,
6574>;
6575pub type CRYPTO_EX_unused = ::std::os::raw::c_int;
6576#[repr(C)]
6577#[derive(Debug, Copy, Clone, PartialEq, Eq)]
6578pub struct crypto_ex_data_st {
6579    pub sk: *mut stack_st_void,
6580}
6581#[test]
6582fn bindgen_test_layout_crypto_ex_data_st() {
6583    const UNINIT: ::std::mem::MaybeUninit<crypto_ex_data_st> = ::std::mem::MaybeUninit::uninit();
6584    let ptr = UNINIT.as_ptr();
6585    assert_eq!(
6586        ::std::mem::size_of::<crypto_ex_data_st>(),
6587        8usize,
6588        "Size of crypto_ex_data_st"
6589    );
6590    assert_eq!(
6591        ::std::mem::align_of::<crypto_ex_data_st>(),
6592        8usize,
6593        "Alignment of crypto_ex_data_st"
6594    );
6595    assert_eq!(
6596        unsafe { ::std::ptr::addr_of!((*ptr).sk) as usize - ptr as usize },
6597        0usize,
6598        "Offset of field: crypto_ex_data_st::sk"
6599    );
6600}
6601impl Default for crypto_ex_data_st {
6602    fn default() -> Self {
6603        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6604        unsafe {
6605            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6606            s.assume_init()
6607        }
6608    }
6609}
6610#[repr(C)]
6611#[derive(Debug, Copy, Clone)]
6612pub struct stack_st_BIO {
6613    _unused: [u8; 0],
6614}
6615pub type sk_BIO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6616pub type sk_BIO_copy_func =
6617    ::std::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6618pub type sk_BIO_cmp_func = ::std::option::Option<
6619    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::std::os::raw::c_int,
6620>;
6621pub type sk_BIO_delete_if_func = ::std::option::Option<
6622    unsafe extern "C" fn(
6623        arg1: *mut BIO,
6624        arg2: *mut ::std::os::raw::c_void,
6625    ) -> ::std::os::raw::c_int,
6626>;
6627extern "C" {
6628    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new"]
6629    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6630}
6631extern "C" {
6632    #[link_name = "\u{1}aws_lc_0_38_0_BIO_free"]
6633    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
6634}
6635extern "C" {
6636    #[link_name = "\u{1}aws_lc_0_38_0_BIO_vfree"]
6637    pub fn BIO_vfree(bio: *mut BIO);
6638}
6639extern "C" {
6640    #[link_name = "\u{1}aws_lc_0_38_0_BIO_up_ref"]
6641    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
6642}
6643extern "C" {
6644    #[link_name = "\u{1}aws_lc_0_38_0_BIO_read"]
6645    pub fn BIO_read(
6646        bio: *mut BIO,
6647        data: *mut ::std::os::raw::c_void,
6648        len: ::std::os::raw::c_int,
6649    ) -> ::std::os::raw::c_int;
6650}
6651extern "C" {
6652    #[link_name = "\u{1}aws_lc_0_38_0_BIO_read_ex"]
6653    pub fn BIO_read_ex(
6654        bio: *mut BIO,
6655        data: *mut ::std::os::raw::c_void,
6656        data_len: usize,
6657        read_bytes: *mut usize,
6658    ) -> ::std::os::raw::c_int;
6659}
6660extern "C" {
6661    #[link_name = "\u{1}aws_lc_0_38_0_BIO_gets"]
6662    pub fn BIO_gets(
6663        bio: *mut BIO,
6664        buf: *mut ::std::os::raw::c_char,
6665        size: ::std::os::raw::c_int,
6666    ) -> ::std::os::raw::c_int;
6667}
6668extern "C" {
6669    #[link_name = "\u{1}aws_lc_0_38_0_BIO_write"]
6670    pub fn BIO_write(
6671        bio: *mut BIO,
6672        data: *const ::std::os::raw::c_void,
6673        len: ::std::os::raw::c_int,
6674    ) -> ::std::os::raw::c_int;
6675}
6676extern "C" {
6677    #[link_name = "\u{1}aws_lc_0_38_0_BIO_write_ex"]
6678    pub fn BIO_write_ex(
6679        bio: *mut BIO,
6680        data: *const ::std::os::raw::c_void,
6681        data_len: usize,
6682        written_bytes: *mut usize,
6683    ) -> ::std::os::raw::c_int;
6684}
6685extern "C" {
6686    #[link_name = "\u{1}aws_lc_0_38_0_BIO_write_all"]
6687    pub fn BIO_write_all(
6688        bio: *mut BIO,
6689        data: *const ::std::os::raw::c_void,
6690        len: usize,
6691    ) -> ::std::os::raw::c_int;
6692}
6693extern "C" {
6694    #[link_name = "\u{1}aws_lc_0_38_0_BIO_puts"]
6695    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6696}
6697extern "C" {
6698    #[link_name = "\u{1}aws_lc_0_38_0_BIO_flush"]
6699    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
6700}
6701extern "C" {
6702    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl"]
6703    pub fn BIO_ctrl(
6704        bio: *mut BIO,
6705        cmd: ::std::os::raw::c_int,
6706        larg: ::std::os::raw::c_long,
6707        parg: *mut ::std::os::raw::c_void,
6708    ) -> ::std::os::raw::c_long;
6709}
6710extern "C" {
6711    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ptr_ctrl"]
6712    pub fn BIO_ptr_ctrl(
6713        bp: *mut BIO,
6714        cmd: ::std::os::raw::c_int,
6715        larg: ::std::os::raw::c_long,
6716    ) -> *mut ::std::os::raw::c_char;
6717}
6718extern "C" {
6719    #[link_name = "\u{1}aws_lc_0_38_0_BIO_int_ctrl"]
6720    pub fn BIO_int_ctrl(
6721        bp: *mut BIO,
6722        cmd: ::std::os::raw::c_int,
6723        larg: ::std::os::raw::c_long,
6724        iarg: ::std::os::raw::c_int,
6725    ) -> ::std::os::raw::c_long;
6726}
6727extern "C" {
6728    #[link_name = "\u{1}aws_lc_0_38_0_BIO_reset"]
6729    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
6730}
6731extern "C" {
6732    #[link_name = "\u{1}aws_lc_0_38_0_BIO_eof"]
6733    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
6734}
6735extern "C" {
6736    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_flags"]
6737    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6738}
6739extern "C" {
6740    #[link_name = "\u{1}aws_lc_0_38_0_BIO_test_flags"]
6741    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6742}
6743extern "C" {
6744    #[link_name = "\u{1}aws_lc_0_38_0_BIO_should_read"]
6745    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
6746}
6747extern "C" {
6748    #[link_name = "\u{1}aws_lc_0_38_0_BIO_should_write"]
6749    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
6750}
6751extern "C" {
6752    #[link_name = "\u{1}aws_lc_0_38_0_BIO_should_retry"]
6753    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
6754}
6755extern "C" {
6756    #[link_name = "\u{1}aws_lc_0_38_0_BIO_should_io_special"]
6757    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
6758}
6759extern "C" {
6760    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_retry_reason"]
6761    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
6762}
6763extern "C" {
6764    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_retry_reason"]
6765    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::std::os::raw::c_int);
6766}
6767extern "C" {
6768    #[link_name = "\u{1}aws_lc_0_38_0_BIO_clear_flags"]
6769    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6770}
6771extern "C" {
6772    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_retry_read"]
6773    pub fn BIO_set_retry_read(bio: *mut BIO);
6774}
6775extern "C" {
6776    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_retry_write"]
6777    pub fn BIO_set_retry_write(bio: *mut BIO);
6778}
6779extern "C" {
6780    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_retry_flags"]
6781    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
6782}
6783extern "C" {
6784    #[link_name = "\u{1}aws_lc_0_38_0_BIO_clear_retry_flags"]
6785    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6786}
6787extern "C" {
6788    #[link_name = "\u{1}aws_lc_0_38_0_BIO_method_type"]
6789    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
6790}
6791extern "C" {
6792    #[link_name = "\u{1}aws_lc_0_38_0_BIO_method_name"]
6793    pub fn BIO_method_name(b: *const BIO) -> *const ::std::os::raw::c_char;
6794}
6795pub type bio_info_cb = ::std::option::Option<
6796    unsafe extern "C" fn(
6797        b: *mut BIO,
6798        state: ::std::os::raw::c_int,
6799        res: ::std::os::raw::c_int,
6800    ) -> ::std::os::raw::c_long,
6801>;
6802pub type BIO_callback_fn_ex = ::std::option::Option<
6803    unsafe extern "C" fn(
6804        bio: *mut BIO,
6805        oper: ::std::os::raw::c_int,
6806        argp: *const ::std::os::raw::c_char,
6807        len: usize,
6808        argi: ::std::os::raw::c_int,
6809        argl: ::std::os::raw::c_long,
6810        bio_ret: ::std::os::raw::c_int,
6811        processed: *mut usize,
6812    ) -> ::std::os::raw::c_long,
6813>;
6814pub type BIO_callback_fn = ::std::option::Option<
6815    unsafe extern "C" fn(
6816        bio: *mut BIO,
6817        oper: ::std::os::raw::c_int,
6818        argp: *const ::std::os::raw::c_char,
6819        argi: ::std::os::raw::c_int,
6820        argl: ::std::os::raw::c_long,
6821        bio_ret: ::std::os::raw::c_long,
6822    ) -> ::std::os::raw::c_long,
6823>;
6824extern "C" {
6825    #[link_name = "\u{1}aws_lc_0_38_0_BIO_callback_ctrl"]
6826    pub fn BIO_callback_ctrl(
6827        bio: *mut BIO,
6828        cmd: ::std::os::raw::c_int,
6829        fp: bio_info_cb,
6830    ) -> ::std::os::raw::c_long;
6831}
6832extern "C" {
6833    #[link_name = "\u{1}aws_lc_0_38_0_BIO_pending"]
6834    pub fn BIO_pending(bio: *const BIO) -> usize;
6835}
6836extern "C" {
6837    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl_pending"]
6838    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6839}
6840extern "C" {
6841    #[link_name = "\u{1}aws_lc_0_38_0_BIO_wpending"]
6842    pub fn BIO_wpending(bio: *const BIO) -> usize;
6843}
6844extern "C" {
6845    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_close"]
6846    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
6847        -> ::std::os::raw::c_int;
6848}
6849extern "C" {
6850    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_close"]
6851    pub fn BIO_get_close(bio: *mut BIO) -> ::std::os::raw::c_int;
6852}
6853extern "C" {
6854    #[link_name = "\u{1}aws_lc_0_38_0_BIO_number_read"]
6855    pub fn BIO_number_read(bio: *const BIO) -> u64;
6856}
6857extern "C" {
6858    #[link_name = "\u{1}aws_lc_0_38_0_BIO_number_written"]
6859    pub fn BIO_number_written(bio: *const BIO) -> u64;
6860}
6861extern "C" {
6862    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_callback_ex"]
6863    pub fn BIO_set_callback_ex(bio: *mut BIO, callback_ex: BIO_callback_fn_ex);
6864}
6865extern "C" {
6866    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_callback"]
6867    pub fn BIO_set_callback(bio: *mut BIO, callback: BIO_callback_fn);
6868}
6869extern "C" {
6870    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_callback_arg"]
6871    pub fn BIO_set_callback_arg(bio: *mut BIO, arg: *mut ::std::os::raw::c_char);
6872}
6873extern "C" {
6874    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_callback_arg"]
6875    pub fn BIO_get_callback_arg(bio: *const BIO) -> *mut ::std::os::raw::c_char;
6876}
6877extern "C" {
6878    #[link_name = "\u{1}aws_lc_0_38_0_BIO_push"]
6879    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6880}
6881extern "C" {
6882    #[link_name = "\u{1}aws_lc_0_38_0_BIO_pop"]
6883    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6884}
6885extern "C" {
6886    #[link_name = "\u{1}aws_lc_0_38_0_BIO_next"]
6887    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6888}
6889extern "C" {
6890    #[link_name = "\u{1}aws_lc_0_38_0_BIO_free_all"]
6891    pub fn BIO_free_all(bio: *mut BIO);
6892}
6893extern "C" {
6894    #[link_name = "\u{1}aws_lc_0_38_0_BIO_find_type"]
6895    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
6896}
6897extern "C" {
6898    #[link_name = "\u{1}aws_lc_0_38_0_BIO_copy_next_retry"]
6899    pub fn BIO_copy_next_retry(bio: *mut BIO);
6900}
6901extern "C" {
6902    #[link_name = "\u{1}aws_lc_0_38_0_BIO_printf"]
6903    pub fn BIO_printf(
6904        bio: *mut BIO,
6905        format: *const ::std::os::raw::c_char,
6906        ...
6907    ) -> ::std::os::raw::c_int;
6908}
6909extern "C" {
6910    #[link_name = "\u{1}aws_lc_0_38_0_BIO_indent"]
6911    pub fn BIO_indent(
6912        bio: *mut BIO,
6913        indent: ::std::os::raw::c_uint,
6914        max_indent: ::std::os::raw::c_uint,
6915    ) -> ::std::os::raw::c_int;
6916}
6917extern "C" {
6918    #[link_name = "\u{1}aws_lc_0_38_0_BIO_hexdump"]
6919    pub fn BIO_hexdump(
6920        bio: *mut BIO,
6921        data: *const u8,
6922        len: usize,
6923        indent: ::std::os::raw::c_uint,
6924    ) -> ::std::os::raw::c_int;
6925}
6926extern "C" {
6927    #[link_name = "\u{1}aws_lc_0_38_0_BIO_dump"]
6928    pub fn BIO_dump(
6929        bio: *mut BIO,
6930        data: *const ::std::os::raw::c_void,
6931        len: ::std::os::raw::c_int,
6932    ) -> ::std::os::raw::c_int;
6933}
6934extern "C" {
6935    #[link_name = "\u{1}aws_lc_0_38_0_ERR_print_errors"]
6936    pub fn ERR_print_errors(bio: *mut BIO);
6937}
6938extern "C" {
6939    #[link_name = "\u{1}aws_lc_0_38_0_BIO_read_asn1"]
6940    pub fn BIO_read_asn1(
6941        bio: *mut BIO,
6942        out: *mut *mut u8,
6943        out_len: *mut usize,
6944        max_len: usize,
6945    ) -> ::std::os::raw::c_int;
6946}
6947extern "C" {
6948    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_mem"]
6949    pub fn BIO_s_mem() -> *const BIO_METHOD;
6950}
6951extern "C" {
6952    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_mem_buf"]
6953    pub fn BIO_new_mem_buf(buf: *const ::std::os::raw::c_void, len: ossl_ssize_t) -> *mut BIO;
6954}
6955extern "C" {
6956    #[link_name = "\u{1}aws_lc_0_38_0_BIO_mem_contents"]
6957    pub fn BIO_mem_contents(
6958        bio: *const BIO,
6959        out_contents: *mut *const u8,
6960        out_len: *mut usize,
6961    ) -> ::std::os::raw::c_int;
6962}
6963extern "C" {
6964    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_mem_ptr"]
6965    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
6966}
6967extern "C" {
6968    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_mem_buf"]
6969    pub fn BIO_set_mem_buf(
6970        bio: *mut BIO,
6971        b: *mut BUF_MEM,
6972        take_ownership: ::std::os::raw::c_int,
6973    ) -> ::std::os::raw::c_int;
6974}
6975extern "C" {
6976    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_mem_eof_return"]
6977    pub fn BIO_set_mem_eof_return(
6978        bio: *mut BIO,
6979        eof_value: ::std::os::raw::c_int,
6980    ) -> ::std::os::raw::c_int;
6981}
6982extern "C" {
6983    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_fd"]
6984    pub fn BIO_s_fd() -> *const BIO_METHOD;
6985}
6986extern "C" {
6987    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_fd"]
6988    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
6989}
6990extern "C" {
6991    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_fd"]
6992    pub fn BIO_set_fd(
6993        bio: *mut BIO,
6994        fd: ::std::os::raw::c_int,
6995        close_flag: ::std::os::raw::c_int,
6996    ) -> ::std::os::raw::c_int;
6997}
6998extern "C" {
6999    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_fd"]
7000    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7001}
7002extern "C" {
7003    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_file"]
7004    pub fn BIO_s_file() -> *const BIO_METHOD;
7005}
7006extern "C" {
7007    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_file"]
7008    pub fn BIO_new_file(
7009        filename: *const ::std::os::raw::c_char,
7010        mode: *const ::std::os::raw::c_char,
7011    ) -> *mut BIO;
7012}
7013extern "C" {
7014    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_fp"]
7015    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7016}
7017extern "C" {
7018    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_fp"]
7019    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
7020}
7021extern "C" {
7022    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_fp"]
7023    pub fn BIO_set_fp(
7024        bio: *mut BIO,
7025        file: *mut FILE,
7026        close_flag: ::std::os::raw::c_int,
7027    ) -> ::std::os::raw::c_int;
7028}
7029extern "C" {
7030    #[link_name = "\u{1}aws_lc_0_38_0_BIO_read_filename"]
7031    pub fn BIO_read_filename(
7032        bio: *mut BIO,
7033        filename: *const ::std::os::raw::c_char,
7034    ) -> ::std::os::raw::c_int;
7035}
7036extern "C" {
7037    #[link_name = "\u{1}aws_lc_0_38_0_BIO_write_filename"]
7038    pub fn BIO_write_filename(
7039        bio: *mut BIO,
7040        filename: *const ::std::os::raw::c_char,
7041    ) -> ::std::os::raw::c_int;
7042}
7043extern "C" {
7044    #[link_name = "\u{1}aws_lc_0_38_0_BIO_append_filename"]
7045    pub fn BIO_append_filename(
7046        bio: *mut BIO,
7047        filename: *const ::std::os::raw::c_char,
7048    ) -> ::std::os::raw::c_int;
7049}
7050extern "C" {
7051    #[link_name = "\u{1}aws_lc_0_38_0_BIO_rw_filename"]
7052    pub fn BIO_rw_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_38_0_BIO_tell"]
7059    pub fn BIO_tell(bio: *mut BIO) -> ::std::os::raw::c_long;
7060}
7061extern "C" {
7062    #[link_name = "\u{1}aws_lc_0_38_0_BIO_seek"]
7063    pub fn BIO_seek(bio: *mut BIO, offset: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
7064}
7065extern "C" {
7066    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_socket"]
7067    pub fn BIO_s_socket() -> *const BIO_METHOD;
7068}
7069extern "C" {
7070    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_socket"]
7071    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
7072        -> *mut BIO;
7073}
7074extern "C" {
7075    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_connect"]
7076    pub fn BIO_s_connect() -> *const BIO_METHOD;
7077}
7078extern "C" {
7079    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_connect"]
7080    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
7081}
7082extern "C" {
7083    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_conn_hostname"]
7084    pub fn BIO_set_conn_hostname(
7085        bio: *mut BIO,
7086        host_and_optional_port: *const ::std::os::raw::c_char,
7087    ) -> ::std::os::raw::c_int;
7088}
7089extern "C" {
7090    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_conn_port"]
7091    pub fn BIO_set_conn_port(
7092        bio: *mut BIO,
7093        port_str: *const ::std::os::raw::c_char,
7094    ) -> ::std::os::raw::c_int;
7095}
7096extern "C" {
7097    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_conn_int_port"]
7098    pub fn BIO_set_conn_int_port(
7099        bio: *mut BIO,
7100        port: *const ::std::os::raw::c_int,
7101    ) -> ::std::os::raw::c_int;
7102}
7103extern "C" {
7104    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_nbio"]
7105    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7106}
7107extern "C" {
7108    #[link_name = "\u{1}aws_lc_0_38_0_BIO_do_connect"]
7109    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
7110}
7111extern "C" {
7112    #[link_name = "\u{1}aws_lc_0_38_0_BIO_f_md"]
7113    pub fn BIO_f_md() -> *const BIO_METHOD;
7114}
7115extern "C" {
7116    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_md_ctx"]
7117    pub fn BIO_get_md_ctx(b: *mut BIO, ctx: *mut *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
7118}
7119extern "C" {
7120    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_md"]
7121    pub fn BIO_set_md(b: *mut BIO, md: *const EVP_MD) -> ::std::os::raw::c_int;
7122}
7123extern "C" {
7124    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_md"]
7125    pub fn BIO_get_md(b: *mut BIO, md: *mut *mut EVP_MD) -> ::std::os::raw::c_int;
7126}
7127#[repr(C)]
7128#[derive(Copy, Clone)]
7129pub struct bio_addr_st {
7130    _unused: [u8; 0],
7131}
7132pub type BIO_ADDR = bio_addr_st;
7133extern "C" {
7134    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_datagram"]
7135    pub fn BIO_s_datagram() -> *const BIO_METHOD;
7136}
7137extern "C" {
7138    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_dgram"]
7139    pub fn BIO_new_dgram(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7140}
7141extern "C" {
7142    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl_dgram_connect"]
7143    pub fn BIO_ctrl_dgram_connect(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7144}
7145extern "C" {
7146    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl_set_connected"]
7147    pub fn BIO_ctrl_set_connected(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7148}
7149extern "C" {
7150    #[link_name = "\u{1}aws_lc_0_38_0_BIO_dgram_recv_timedout"]
7151    pub fn BIO_dgram_recv_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7152}
7153extern "C" {
7154    #[link_name = "\u{1}aws_lc_0_38_0_BIO_dgram_send_timedout"]
7155    pub fn BIO_dgram_send_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7156}
7157extern "C" {
7158    #[link_name = "\u{1}aws_lc_0_38_0_BIO_dgram_get_peer"]
7159    pub fn BIO_dgram_get_peer(bp: *mut BIO, peer: *mut BIO_ADDR) -> ::std::os::raw::c_int;
7160}
7161extern "C" {
7162    #[link_name = "\u{1}aws_lc_0_38_0_BIO_dgram_set_peer"]
7163    pub fn BIO_dgram_set_peer(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7164}
7165extern "C" {
7166    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_new"]
7167    pub fn BIO_ADDR_new() -> *mut BIO_ADDR;
7168}
7169extern "C" {
7170    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_copy"]
7171    pub fn BIO_ADDR_copy(dst: *mut BIO_ADDR, src: *const BIO_ADDR) -> ::std::os::raw::c_int;
7172}
7173extern "C" {
7174    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_dup"]
7175    pub fn BIO_ADDR_dup(ap: *const BIO_ADDR) -> *mut BIO_ADDR;
7176}
7177extern "C" {
7178    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_free"]
7179    pub fn BIO_ADDR_free(ap: *mut BIO_ADDR);
7180}
7181extern "C" {
7182    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_clear"]
7183    pub fn BIO_ADDR_clear(ap: *mut BIO_ADDR);
7184}
7185extern "C" {
7186    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_rawmake"]
7187    pub fn BIO_ADDR_rawmake(
7188        ap: *mut BIO_ADDR,
7189        family: ::std::os::raw::c_int,
7190        where_: *const ::std::os::raw::c_void,
7191        wherelen: usize,
7192        port: ::std::os::raw::c_ushort,
7193    ) -> ::std::os::raw::c_int;
7194}
7195extern "C" {
7196    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_family"]
7197    pub fn BIO_ADDR_family(ap: *const BIO_ADDR) -> ::std::os::raw::c_int;
7198}
7199extern "C" {
7200    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_rawaddress"]
7201    pub fn BIO_ADDR_rawaddress(
7202        ap: *const BIO_ADDR,
7203        p: *mut ::std::os::raw::c_void,
7204        l: *mut usize,
7205    ) -> ::std::os::raw::c_int;
7206}
7207extern "C" {
7208    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ADDR_rawport"]
7209    pub fn BIO_ADDR_rawport(ap: *const BIO_ADDR) -> ::std::os::raw::c_ushort;
7210}
7211extern "C" {
7212    #[link_name = "\u{1}aws_lc_0_38_0_BIO_new_bio_pair"]
7213    pub fn BIO_new_bio_pair(
7214        out1: *mut *mut BIO,
7215        writebuf1: usize,
7216        out2: *mut *mut BIO,
7217        writebuf2: usize,
7218    ) -> ::std::os::raw::c_int;
7219}
7220extern "C" {
7221    #[link_name = "\u{1}aws_lc_0_38_0_BIO_destroy_bio_pair"]
7222    pub fn BIO_destroy_bio_pair(b: *mut BIO) -> ::std::os::raw::c_int;
7223}
7224extern "C" {
7225    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl_get_read_request"]
7226    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
7227}
7228extern "C" {
7229    #[link_name = "\u{1}aws_lc_0_38_0_BIO_ctrl_get_write_guarantee"]
7230    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
7231}
7232extern "C" {
7233    #[link_name = "\u{1}aws_lc_0_38_0_BIO_shutdown_wr"]
7234    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
7235}
7236extern "C" {
7237    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_new_index"]
7238    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
7239}
7240extern "C" {
7241    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_new"]
7242    pub fn BIO_meth_new(
7243        type_: ::std::os::raw::c_int,
7244        name: *const ::std::os::raw::c_char,
7245    ) -> *mut BIO_METHOD;
7246}
7247extern "C" {
7248    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_free"]
7249    pub fn BIO_meth_free(method: *mut BIO_METHOD);
7250}
7251extern "C" {
7252    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_create"]
7253    pub fn BIO_meth_set_create(
7254        method: *mut BIO_METHOD,
7255        create: ::std::option::Option<
7256            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7257        >,
7258    ) -> ::std::os::raw::c_int;
7259}
7260extern "C" {
7261    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_create"]
7262    pub fn BIO_meth_get_create(
7263        method: *const BIO_METHOD,
7264    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7265}
7266extern "C" {
7267    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_destroy"]
7268    pub fn BIO_meth_set_destroy(
7269        method: *mut BIO_METHOD,
7270        destroy: ::std::option::Option<
7271            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7272        >,
7273    ) -> ::std::os::raw::c_int;
7274}
7275extern "C" {
7276    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_destroy"]
7277    pub fn BIO_meth_get_destroy(
7278        method: *const BIO_METHOD,
7279    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7280}
7281extern "C" {
7282    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_write"]
7283    pub fn BIO_meth_set_write(
7284        method: *mut BIO_METHOD,
7285        write: ::std::option::Option<
7286            unsafe extern "C" fn(
7287                arg1: *mut BIO,
7288                arg2: *const ::std::os::raw::c_char,
7289                arg3: ::std::os::raw::c_int,
7290            ) -> ::std::os::raw::c_int,
7291        >,
7292    ) -> ::std::os::raw::c_int;
7293}
7294extern "C" {
7295    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_read"]
7296    pub fn BIO_meth_set_read(
7297        method: *mut BIO_METHOD,
7298        read: ::std::option::Option<
7299            unsafe extern "C" fn(
7300                arg1: *mut BIO,
7301                arg2: *mut ::std::os::raw::c_char,
7302                arg3: ::std::os::raw::c_int,
7303            ) -> ::std::os::raw::c_int,
7304        >,
7305    ) -> ::std::os::raw::c_int;
7306}
7307extern "C" {
7308    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_gets"]
7309    pub fn BIO_meth_set_gets(
7310        method: *mut BIO_METHOD,
7311        gets: ::std::option::Option<
7312            unsafe extern "C" fn(
7313                arg1: *mut BIO,
7314                arg2: *mut ::std::os::raw::c_char,
7315                arg3: ::std::os::raw::c_int,
7316            ) -> ::std::os::raw::c_int,
7317        >,
7318    ) -> ::std::os::raw::c_int;
7319}
7320extern "C" {
7321    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_gets"]
7322    pub fn BIO_meth_get_gets(
7323        method: *const BIO_METHOD,
7324    ) -> ::std::option::Option<
7325        unsafe extern "C" fn(
7326            method: *mut BIO,
7327            arg1: *mut ::std::os::raw::c_char,
7328            arg2: ::std::os::raw::c_int,
7329        ) -> ::std::os::raw::c_int,
7330    >;
7331}
7332extern "C" {
7333    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_ctrl"]
7334    pub fn BIO_meth_set_ctrl(
7335        method: *mut BIO_METHOD,
7336        ctrl: ::std::option::Option<
7337            unsafe extern "C" fn(
7338                arg1: *mut BIO,
7339                arg2: ::std::os::raw::c_int,
7340                arg3: ::std::os::raw::c_long,
7341                arg4: *mut ::std::os::raw::c_void,
7342            ) -> ::std::os::raw::c_long,
7343        >,
7344    ) -> ::std::os::raw::c_int;
7345}
7346extern "C" {
7347    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_ctrl"]
7348    pub fn BIO_meth_get_ctrl(
7349        method: *const BIO_METHOD,
7350    ) -> ::std::option::Option<
7351        unsafe extern "C" fn(
7352            method: *mut BIO,
7353            arg1: ::std::os::raw::c_int,
7354            arg2: ::std::os::raw::c_long,
7355            arg3: *mut ::std::os::raw::c_void,
7356        ) -> ::std::os::raw::c_long,
7357    >;
7358}
7359extern "C" {
7360    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_callback_ctrl"]
7361    pub fn BIO_meth_set_callback_ctrl(
7362        method: *mut BIO_METHOD,
7363        callback_ctrl: ::std::option::Option<
7364            unsafe extern "C" fn(
7365                arg1: *mut BIO,
7366                arg2: ::std::os::raw::c_int,
7367                arg3: bio_info_cb,
7368            ) -> ::std::os::raw::c_long,
7369        >,
7370    ) -> ::std::os::raw::c_int;
7371}
7372extern "C" {
7373    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_callback_ctrl"]
7374    pub fn BIO_meth_get_callback_ctrl(
7375        method: *const BIO_METHOD,
7376    ) -> ::std::option::Option<
7377        unsafe extern "C" fn(
7378            method: *mut BIO,
7379            arg1: ::std::os::raw::c_int,
7380            arg2: bio_info_cb,
7381        ) -> ::std::os::raw::c_long,
7382    >;
7383}
7384extern "C" {
7385    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_data"]
7386    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
7387}
7388extern "C" {
7389    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_data"]
7390    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
7391}
7392extern "C" {
7393    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_init"]
7394    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
7395}
7396extern "C" {
7397    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_init"]
7398    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
7399}
7400extern "C" {
7401    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_ex_new_index"]
7402    pub fn BIO_get_ex_new_index(
7403        argl: ::std::os::raw::c_long,
7404        argp: *mut ::std::os::raw::c_void,
7405        unused: *mut CRYPTO_EX_unused,
7406        dup_unused: CRYPTO_EX_dup,
7407        free_func: CRYPTO_EX_free,
7408    ) -> ::std::os::raw::c_int;
7409}
7410extern "C" {
7411    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_ex_data"]
7412    pub fn BIO_set_ex_data(
7413        bio: *mut BIO,
7414        idx: ::std::os::raw::c_int,
7415        arg: *mut ::std::os::raw::c_void,
7416    ) -> ::std::os::raw::c_int;
7417}
7418extern "C" {
7419    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_ex_data"]
7420    pub fn BIO_get_ex_data(
7421        bio: *const BIO,
7422        idx: ::std::os::raw::c_int,
7423    ) -> *mut ::std::os::raw::c_void;
7424}
7425extern "C" {
7426    #[link_name = "\u{1}aws_lc_0_38_0_BIO_f_base64"]
7427    pub fn BIO_f_base64() -> *const BIO_METHOD;
7428}
7429extern "C" {
7430    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_retry_special"]
7431    pub fn BIO_set_retry_special(bio: *mut BIO);
7432}
7433extern "C" {
7434    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_shutdown"]
7435    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
7436}
7437extern "C" {
7438    #[link_name = "\u{1}aws_lc_0_38_0_BIO_get_shutdown"]
7439    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
7440}
7441extern "C" {
7442    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_set_puts"]
7443    pub fn BIO_meth_set_puts(
7444        method: *mut BIO_METHOD,
7445        puts: ::std::option::Option<
7446            unsafe extern "C" fn(
7447                arg1: *mut BIO,
7448                arg2: *const ::std::os::raw::c_char,
7449            ) -> ::std::os::raw::c_int,
7450        >,
7451    ) -> ::std::os::raw::c_int;
7452}
7453extern "C" {
7454    #[link_name = "\u{1}aws_lc_0_38_0_BIO_meth_get_puts"]
7455    pub fn BIO_meth_get_puts(
7456        method: *const BIO_METHOD,
7457    ) -> ::std::option::Option<
7458        unsafe extern "C" fn(
7459            method: *mut BIO,
7460            arg1: *const ::std::os::raw::c_char,
7461        ) -> ::std::os::raw::c_int,
7462    >;
7463}
7464extern "C" {
7465    #[link_name = "\u{1}aws_lc_0_38_0_BIO_s_secmem"]
7466    pub fn BIO_s_secmem() -> *const BIO_METHOD;
7467}
7468extern "C" {
7469    #[link_name = "\u{1}aws_lc_0_38_0_BIO_set_write_buffer_size"]
7470    pub fn BIO_set_write_buffer_size(
7471        bio: *mut BIO,
7472        buffer_size: ::std::os::raw::c_int,
7473    ) -> ::std::os::raw::c_int;
7474}
7475#[repr(C)]
7476#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7477pub struct bio_method_st {
7478    pub type_: ::std::os::raw::c_int,
7479    pub name: *const ::std::os::raw::c_char,
7480    pub bwrite: ::std::option::Option<
7481        unsafe extern "C" fn(
7482            arg1: *mut BIO,
7483            arg2: *const ::std::os::raw::c_char,
7484            arg3: ::std::os::raw::c_int,
7485        ) -> ::std::os::raw::c_int,
7486    >,
7487    pub bread: ::std::option::Option<
7488        unsafe extern "C" fn(
7489            arg1: *mut BIO,
7490            arg2: *mut ::std::os::raw::c_char,
7491            arg3: ::std::os::raw::c_int,
7492        ) -> ::std::os::raw::c_int,
7493    >,
7494    pub bputs: ::std::option::Option<
7495        unsafe extern "C" fn(
7496            arg1: *mut BIO,
7497            arg2: *const ::std::os::raw::c_char,
7498        ) -> ::std::os::raw::c_int,
7499    >,
7500    pub bgets: ::std::option::Option<
7501        unsafe extern "C" fn(
7502            arg1: *mut BIO,
7503            arg2: *mut ::std::os::raw::c_char,
7504            arg3: ::std::os::raw::c_int,
7505        ) -> ::std::os::raw::c_int,
7506    >,
7507    pub ctrl: ::std::option::Option<
7508        unsafe extern "C" fn(
7509            arg1: *mut BIO,
7510            arg2: ::std::os::raw::c_int,
7511            arg3: ::std::os::raw::c_long,
7512            arg4: *mut ::std::os::raw::c_void,
7513        ) -> ::std::os::raw::c_long,
7514    >,
7515    pub create:
7516        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7517    pub destroy:
7518        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7519    pub callback_ctrl: ::std::option::Option<
7520        unsafe extern "C" fn(
7521            arg1: *mut BIO,
7522            arg2: ::std::os::raw::c_int,
7523            arg3: bio_info_cb,
7524        ) -> ::std::os::raw::c_long,
7525    >,
7526}
7527#[test]
7528fn bindgen_test_layout_bio_method_st() {
7529    const UNINIT: ::std::mem::MaybeUninit<bio_method_st> = ::std::mem::MaybeUninit::uninit();
7530    let ptr = UNINIT.as_ptr();
7531    assert_eq!(
7532        ::std::mem::size_of::<bio_method_st>(),
7533        80usize,
7534        "Size of bio_method_st"
7535    );
7536    assert_eq!(
7537        ::std::mem::align_of::<bio_method_st>(),
7538        8usize,
7539        "Alignment of bio_method_st"
7540    );
7541    assert_eq!(
7542        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
7543        0usize,
7544        "Offset of field: bio_method_st::type_"
7545    );
7546    assert_eq!(
7547        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
7548        8usize,
7549        "Offset of field: bio_method_st::name"
7550    );
7551    assert_eq!(
7552        unsafe { ::std::ptr::addr_of!((*ptr).bwrite) as usize - ptr as usize },
7553        16usize,
7554        "Offset of field: bio_method_st::bwrite"
7555    );
7556    assert_eq!(
7557        unsafe { ::std::ptr::addr_of!((*ptr).bread) as usize - ptr as usize },
7558        24usize,
7559        "Offset of field: bio_method_st::bread"
7560    );
7561    assert_eq!(
7562        unsafe { ::std::ptr::addr_of!((*ptr).bputs) as usize - ptr as usize },
7563        32usize,
7564        "Offset of field: bio_method_st::bputs"
7565    );
7566    assert_eq!(
7567        unsafe { ::std::ptr::addr_of!((*ptr).bgets) as usize - ptr as usize },
7568        40usize,
7569        "Offset of field: bio_method_st::bgets"
7570    );
7571    assert_eq!(
7572        unsafe { ::std::ptr::addr_of!((*ptr).ctrl) as usize - ptr as usize },
7573        48usize,
7574        "Offset of field: bio_method_st::ctrl"
7575    );
7576    assert_eq!(
7577        unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize },
7578        56usize,
7579        "Offset of field: bio_method_st::create"
7580    );
7581    assert_eq!(
7582        unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize },
7583        64usize,
7584        "Offset of field: bio_method_st::destroy"
7585    );
7586    assert_eq!(
7587        unsafe { ::std::ptr::addr_of!((*ptr).callback_ctrl) as usize - ptr as usize },
7588        72usize,
7589        "Offset of field: bio_method_st::callback_ctrl"
7590    );
7591}
7592impl Default for bio_method_st {
7593    fn default() -> Self {
7594        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7595        unsafe {
7596            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7597            s.assume_init()
7598        }
7599    }
7600}
7601#[repr(C)]
7602#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7603pub struct bio_st {
7604    pub method: *const BIO_METHOD,
7605    pub ex_data: CRYPTO_EX_DATA,
7606    pub callback_ex: BIO_callback_fn_ex,
7607    pub callback: BIO_callback_fn,
7608    pub cb_arg: *mut ::std::os::raw::c_char,
7609    pub init: ::std::os::raw::c_int,
7610    pub shutdown: ::std::os::raw::c_int,
7611    pub flags: ::std::os::raw::c_int,
7612    pub retry_reason: ::std::os::raw::c_int,
7613    pub num: ::std::os::raw::c_int,
7614    pub references: CRYPTO_refcount_t,
7615    pub ptr: *mut ::std::os::raw::c_void,
7616    pub next_bio: *mut BIO,
7617    pub num_read: u64,
7618    pub num_write: u64,
7619}
7620#[test]
7621fn bindgen_test_layout_bio_st() {
7622    const UNINIT: ::std::mem::MaybeUninit<bio_st> = ::std::mem::MaybeUninit::uninit();
7623    let ptr = UNINIT.as_ptr();
7624    assert_eq!(::std::mem::size_of::<bio_st>(), 96usize, "Size of bio_st");
7625    assert_eq!(
7626        ::std::mem::align_of::<bio_st>(),
7627        8usize,
7628        "Alignment of bio_st"
7629    );
7630    assert_eq!(
7631        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
7632        0usize,
7633        "Offset of field: bio_st::method"
7634    );
7635    assert_eq!(
7636        unsafe { ::std::ptr::addr_of!((*ptr).ex_data) as usize - ptr as usize },
7637        8usize,
7638        "Offset of field: bio_st::ex_data"
7639    );
7640    assert_eq!(
7641        unsafe { ::std::ptr::addr_of!((*ptr).callback_ex) as usize - ptr as usize },
7642        16usize,
7643        "Offset of field: bio_st::callback_ex"
7644    );
7645    assert_eq!(
7646        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
7647        24usize,
7648        "Offset of field: bio_st::callback"
7649    );
7650    assert_eq!(
7651        unsafe { ::std::ptr::addr_of!((*ptr).cb_arg) as usize - ptr as usize },
7652        32usize,
7653        "Offset of field: bio_st::cb_arg"
7654    );
7655    assert_eq!(
7656        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
7657        40usize,
7658        "Offset of field: bio_st::init"
7659    );
7660    assert_eq!(
7661        unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize },
7662        44usize,
7663        "Offset of field: bio_st::shutdown"
7664    );
7665    assert_eq!(
7666        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
7667        48usize,
7668        "Offset of field: bio_st::flags"
7669    );
7670    assert_eq!(
7671        unsafe { ::std::ptr::addr_of!((*ptr).retry_reason) as usize - ptr as usize },
7672        52usize,
7673        "Offset of field: bio_st::retry_reason"
7674    );
7675    assert_eq!(
7676        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
7677        56usize,
7678        "Offset of field: bio_st::num"
7679    );
7680    assert_eq!(
7681        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
7682        60usize,
7683        "Offset of field: bio_st::references"
7684    );
7685    assert_eq!(
7686        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
7687        64usize,
7688        "Offset of field: bio_st::ptr"
7689    );
7690    assert_eq!(
7691        unsafe { ::std::ptr::addr_of!((*ptr).next_bio) as usize - ptr as usize },
7692        72usize,
7693        "Offset of field: bio_st::next_bio"
7694    );
7695    assert_eq!(
7696        unsafe { ::std::ptr::addr_of!((*ptr).num_read) as usize - ptr as usize },
7697        80usize,
7698        "Offset of field: bio_st::num_read"
7699    );
7700    assert_eq!(
7701        unsafe { ::std::ptr::addr_of!((*ptr).num_write) as usize - ptr as usize },
7702        88usize,
7703        "Offset of field: bio_st::num_write"
7704    );
7705}
7706impl Default for bio_st {
7707    fn default() -> Self {
7708        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7709        unsafe {
7710            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7711            s.assume_init()
7712        }
7713    }
7714}
7715pub type BN_ULONG = u64;
7716extern "C" {
7717    #[link_name = "\u{1}aws_lc_0_38_0_BN_new"]
7718    pub fn BN_new() -> *mut BIGNUM;
7719}
7720extern "C" {
7721    #[link_name = "\u{1}aws_lc_0_38_0_BN_init"]
7722    pub fn BN_init(bn: *mut BIGNUM);
7723}
7724extern "C" {
7725    #[link_name = "\u{1}aws_lc_0_38_0_BN_free"]
7726    pub fn BN_free(bn: *mut BIGNUM);
7727}
7728extern "C" {
7729    #[link_name = "\u{1}aws_lc_0_38_0_BN_clear_free"]
7730    pub fn BN_clear_free(bn: *mut BIGNUM);
7731}
7732extern "C" {
7733    #[link_name = "\u{1}aws_lc_0_38_0_BN_dup"]
7734    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7735}
7736extern "C" {
7737    #[link_name = "\u{1}aws_lc_0_38_0_BN_copy"]
7738    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7739}
7740extern "C" {
7741    #[link_name = "\u{1}aws_lc_0_38_0_BN_clear"]
7742    pub fn BN_clear(bn: *mut BIGNUM);
7743}
7744extern "C" {
7745    #[link_name = "\u{1}aws_lc_0_38_0_BN_value_one"]
7746    pub fn BN_value_one() -> *const BIGNUM;
7747}
7748extern "C" {
7749    #[link_name = "\u{1}aws_lc_0_38_0_BN_num_bits"]
7750    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7751}
7752extern "C" {
7753    #[link_name = "\u{1}aws_lc_0_38_0_BN_num_bytes"]
7754    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7755}
7756extern "C" {
7757    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_minimal_width"]
7758    pub fn BN_get_minimal_width(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7759}
7760extern "C" {
7761    #[link_name = "\u{1}aws_lc_0_38_0_BN_zero"]
7762    pub fn BN_zero(bn: *mut BIGNUM);
7763}
7764extern "C" {
7765    #[link_name = "\u{1}aws_lc_0_38_0_BN_one"]
7766    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
7767}
7768extern "C" {
7769    #[link_name = "\u{1}aws_lc_0_38_0_BN_set_word"]
7770    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::std::os::raw::c_int;
7771}
7772extern "C" {
7773    #[link_name = "\u{1}aws_lc_0_38_0_BN_set_u64"]
7774    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
7775}
7776extern "C" {
7777    #[link_name = "\u{1}aws_lc_0_38_0_BN_set_negative"]
7778    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
7779}
7780extern "C" {
7781    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_negative"]
7782    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7783}
7784extern "C" {
7785    #[link_name = "\u{1}aws_lc_0_38_0_BN_bin2bn"]
7786    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7787}
7788extern "C" {
7789    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2bin"]
7790    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7791}
7792extern "C" {
7793    #[link_name = "\u{1}aws_lc_0_38_0_BN_le2bn"]
7794    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7795}
7796extern "C" {
7797    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2le_padded"]
7798    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7799}
7800extern "C" {
7801    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2bin_padded"]
7802    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7803}
7804extern "C" {
7805    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2cbb_padded"]
7806    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
7807        -> ::std::os::raw::c_int;
7808}
7809extern "C" {
7810    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2hex"]
7811    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7812}
7813extern "C" {
7814    #[link_name = "\u{1}aws_lc_0_38_0_BN_hex2bn"]
7815    pub fn BN_hex2bn(
7816        outp: *mut *mut BIGNUM,
7817        in_: *const ::std::os::raw::c_char,
7818    ) -> ::std::os::raw::c_int;
7819}
7820extern "C" {
7821    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2dec"]
7822    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7823}
7824extern "C" {
7825    #[link_name = "\u{1}aws_lc_0_38_0_BN_dec2bn"]
7826    pub fn BN_dec2bn(
7827        outp: *mut *mut BIGNUM,
7828        in_: *const ::std::os::raw::c_char,
7829    ) -> ::std::os::raw::c_int;
7830}
7831extern "C" {
7832    #[link_name = "\u{1}aws_lc_0_38_0_BN_asc2bn"]
7833    pub fn BN_asc2bn(
7834        outp: *mut *mut BIGNUM,
7835        in_: *const ::std::os::raw::c_char,
7836    ) -> ::std::os::raw::c_int;
7837}
7838extern "C" {
7839    #[link_name = "\u{1}aws_lc_0_38_0_BN_print"]
7840    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
7841}
7842extern "C" {
7843    #[link_name = "\u{1}aws_lc_0_38_0_BN_print_fp"]
7844    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
7845}
7846extern "C" {
7847    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_word"]
7848    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7849}
7850extern "C" {
7851    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_u64"]
7852    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
7853}
7854extern "C" {
7855    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_flags"]
7856    pub fn BN_get_flags(bn: *const BIGNUM, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7857}
7858extern "C" {
7859    #[link_name = "\u{1}aws_lc_0_38_0_BN_parse_asn1_unsigned"]
7860    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
7861}
7862extern "C" {
7863    #[link_name = "\u{1}aws_lc_0_38_0_BN_marshal_asn1"]
7864    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
7865}
7866extern "C" {
7867    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_new"]
7868    pub fn BN_CTX_new() -> *mut BN_CTX;
7869}
7870extern "C" {
7871    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_free"]
7872    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7873}
7874extern "C" {
7875    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_start"]
7876    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7877}
7878extern "C" {
7879    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_get"]
7880    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7881}
7882extern "C" {
7883    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_end"]
7884    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7885}
7886extern "C" {
7887    #[link_name = "\u{1}aws_lc_0_38_0_BN_add"]
7888    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7889}
7890extern "C" {
7891    #[link_name = "\u{1}aws_lc_0_38_0_BN_uadd"]
7892    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7893}
7894extern "C" {
7895    #[link_name = "\u{1}aws_lc_0_38_0_BN_add_word"]
7896    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7897}
7898extern "C" {
7899    #[link_name = "\u{1}aws_lc_0_38_0_BN_sub"]
7900    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7901}
7902extern "C" {
7903    #[link_name = "\u{1}aws_lc_0_38_0_BN_usub"]
7904    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7905}
7906extern "C" {
7907    #[link_name = "\u{1}aws_lc_0_38_0_BN_sub_word"]
7908    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7909}
7910extern "C" {
7911    #[link_name = "\u{1}aws_lc_0_38_0_BN_mul"]
7912    pub fn BN_mul(
7913        r: *mut BIGNUM,
7914        a: *const BIGNUM,
7915        b: *const BIGNUM,
7916        ctx: *mut BN_CTX,
7917    ) -> ::std::os::raw::c_int;
7918}
7919extern "C" {
7920    #[link_name = "\u{1}aws_lc_0_38_0_BN_mul_word"]
7921    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7922}
7923extern "C" {
7924    #[link_name = "\u{1}aws_lc_0_38_0_BN_sqr"]
7925    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
7926}
7927extern "C" {
7928    #[link_name = "\u{1}aws_lc_0_38_0_BN_div"]
7929    pub fn BN_div(
7930        quotient: *mut BIGNUM,
7931        rem: *mut BIGNUM,
7932        numerator: *const BIGNUM,
7933        divisor: *const BIGNUM,
7934        ctx: *mut BN_CTX,
7935    ) -> ::std::os::raw::c_int;
7936}
7937extern "C" {
7938    #[link_name = "\u{1}aws_lc_0_38_0_BN_div_word"]
7939    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7940}
7941extern "C" {
7942    #[link_name = "\u{1}aws_lc_0_38_0_BN_sqrt"]
7943    pub fn BN_sqrt(
7944        out_sqrt: *mut BIGNUM,
7945        in_: *const BIGNUM,
7946        ctx: *mut BN_CTX,
7947    ) -> ::std::os::raw::c_int;
7948}
7949extern "C" {
7950    #[link_name = "\u{1}aws_lc_0_38_0_BN_cmp"]
7951    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7952}
7953extern "C" {
7954    #[link_name = "\u{1}aws_lc_0_38_0_BN_cmp_word"]
7955    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::std::os::raw::c_int;
7956}
7957extern "C" {
7958    #[link_name = "\u{1}aws_lc_0_38_0_BN_ucmp"]
7959    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7960}
7961extern "C" {
7962    #[link_name = "\u{1}aws_lc_0_38_0_BN_equal_consttime"]
7963    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7964}
7965extern "C" {
7966    #[link_name = "\u{1}aws_lc_0_38_0_BN_abs_is_word"]
7967    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7968}
7969extern "C" {
7970    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_zero"]
7971    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7972}
7973extern "C" {
7974    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_one"]
7975    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7976}
7977extern "C" {
7978    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_word"]
7979    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7980}
7981extern "C" {
7982    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_odd"]
7983    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7984}
7985extern "C" {
7986    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_pow2"]
7987    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
7988}
7989extern "C" {
7990    #[link_name = "\u{1}aws_lc_0_38_0_BN_lshift"]
7991    pub fn BN_lshift(
7992        r: *mut BIGNUM,
7993        a: *const BIGNUM,
7994        n: ::std::os::raw::c_int,
7995    ) -> ::std::os::raw::c_int;
7996}
7997extern "C" {
7998    #[link_name = "\u{1}aws_lc_0_38_0_BN_lshift1"]
7999    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8000}
8001extern "C" {
8002    #[link_name = "\u{1}aws_lc_0_38_0_BN_rshift"]
8003    pub fn BN_rshift(
8004        r: *mut BIGNUM,
8005        a: *const BIGNUM,
8006        n: ::std::os::raw::c_int,
8007    ) -> ::std::os::raw::c_int;
8008}
8009extern "C" {
8010    #[link_name = "\u{1}aws_lc_0_38_0_BN_rshift1"]
8011    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8012}
8013extern "C" {
8014    #[link_name = "\u{1}aws_lc_0_38_0_BN_set_bit"]
8015    pub fn BN_set_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8016}
8017extern "C" {
8018    #[link_name = "\u{1}aws_lc_0_38_0_BN_clear_bit"]
8019    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8020}
8021extern "C" {
8022    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_bit_set"]
8023    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8024}
8025extern "C" {
8026    #[link_name = "\u{1}aws_lc_0_38_0_BN_mask_bits"]
8027    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8028}
8029extern "C" {
8030    #[link_name = "\u{1}aws_lc_0_38_0_BN_count_low_zero_bits"]
8031    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
8032}
8033extern "C" {
8034    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_word"]
8035    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
8036}
8037extern "C" {
8038    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_pow2"]
8039    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8040}
8041extern "C" {
8042    #[link_name = "\u{1}aws_lc_0_38_0_BN_nnmod_pow2"]
8043    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8044}
8045extern "C" {
8046    #[link_name = "\u{1}aws_lc_0_38_0_BN_nnmod"]
8047    pub fn BN_nnmod(
8048        rem: *mut BIGNUM,
8049        numerator: *const BIGNUM,
8050        divisor: *const BIGNUM,
8051        ctx: *mut BN_CTX,
8052    ) -> ::std::os::raw::c_int;
8053}
8054extern "C" {
8055    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_add"]
8056    pub fn BN_mod_add(
8057        r: *mut BIGNUM,
8058        a: *const BIGNUM,
8059        b: *const BIGNUM,
8060        m: *const BIGNUM,
8061        ctx: *mut BN_CTX,
8062    ) -> ::std::os::raw::c_int;
8063}
8064extern "C" {
8065    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_add_quick"]
8066    pub fn BN_mod_add_quick(
8067        r: *mut BIGNUM,
8068        a: *const BIGNUM,
8069        b: *const BIGNUM,
8070        m: *const BIGNUM,
8071    ) -> ::std::os::raw::c_int;
8072}
8073extern "C" {
8074    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_sub"]
8075    pub fn BN_mod_sub(
8076        r: *mut BIGNUM,
8077        a: *const BIGNUM,
8078        b: *const BIGNUM,
8079        m: *const BIGNUM,
8080        ctx: *mut BN_CTX,
8081    ) -> ::std::os::raw::c_int;
8082}
8083extern "C" {
8084    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_sub_quick"]
8085    pub fn BN_mod_sub_quick(
8086        r: *mut BIGNUM,
8087        a: *const BIGNUM,
8088        b: *const BIGNUM,
8089        m: *const BIGNUM,
8090    ) -> ::std::os::raw::c_int;
8091}
8092extern "C" {
8093    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_mul"]
8094    pub fn BN_mod_mul(
8095        r: *mut BIGNUM,
8096        a: *const BIGNUM,
8097        b: *const BIGNUM,
8098        m: *const BIGNUM,
8099        ctx: *mut BN_CTX,
8100    ) -> ::std::os::raw::c_int;
8101}
8102extern "C" {
8103    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_sqr"]
8104    pub fn BN_mod_sqr(
8105        r: *mut BIGNUM,
8106        a: *const BIGNUM,
8107        m: *const BIGNUM,
8108        ctx: *mut BN_CTX,
8109    ) -> ::std::os::raw::c_int;
8110}
8111extern "C" {
8112    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_lshift"]
8113    pub fn BN_mod_lshift(
8114        r: *mut BIGNUM,
8115        a: *const BIGNUM,
8116        n: ::std::os::raw::c_int,
8117        m: *const BIGNUM,
8118        ctx: *mut BN_CTX,
8119    ) -> ::std::os::raw::c_int;
8120}
8121extern "C" {
8122    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_lshift_quick"]
8123    pub fn BN_mod_lshift_quick(
8124        r: *mut BIGNUM,
8125        a: *const BIGNUM,
8126        n: ::std::os::raw::c_int,
8127        m: *const BIGNUM,
8128    ) -> ::std::os::raw::c_int;
8129}
8130extern "C" {
8131    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_lshift1"]
8132    pub fn BN_mod_lshift1(
8133        r: *mut BIGNUM,
8134        a: *const BIGNUM,
8135        m: *const BIGNUM,
8136        ctx: *mut BN_CTX,
8137    ) -> ::std::os::raw::c_int;
8138}
8139extern "C" {
8140    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_lshift1_quick"]
8141    pub fn BN_mod_lshift1_quick(
8142        r: *mut BIGNUM,
8143        a: *const BIGNUM,
8144        m: *const BIGNUM,
8145    ) -> ::std::os::raw::c_int;
8146}
8147extern "C" {
8148    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_sqrt"]
8149    pub fn BN_mod_sqrt(
8150        in_: *mut BIGNUM,
8151        a: *const BIGNUM,
8152        p: *const BIGNUM,
8153        ctx: *mut BN_CTX,
8154    ) -> *mut BIGNUM;
8155}
8156extern "C" {
8157    #[link_name = "\u{1}aws_lc_0_38_0_BN_rand"]
8158    pub fn BN_rand(
8159        rnd: *mut BIGNUM,
8160        bits: ::std::os::raw::c_int,
8161        top: ::std::os::raw::c_int,
8162        bottom: ::std::os::raw::c_int,
8163    ) -> ::std::os::raw::c_int;
8164}
8165extern "C" {
8166    #[link_name = "\u{1}aws_lc_0_38_0_BN_pseudo_rand"]
8167    pub fn BN_pseudo_rand(
8168        rnd: *mut BIGNUM,
8169        bits: ::std::os::raw::c_int,
8170        top: ::std::os::raw::c_int,
8171        bottom: ::std::os::raw::c_int,
8172    ) -> ::std::os::raw::c_int;
8173}
8174extern "C" {
8175    #[link_name = "\u{1}aws_lc_0_38_0_BN_rand_range"]
8176    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8177}
8178extern "C" {
8179    #[link_name = "\u{1}aws_lc_0_38_0_BN_rand_range_ex"]
8180    pub fn BN_rand_range_ex(
8181        r: *mut BIGNUM,
8182        min_inclusive: BN_ULONG,
8183        max_exclusive: *const BIGNUM,
8184    ) -> ::std::os::raw::c_int;
8185}
8186extern "C" {
8187    #[link_name = "\u{1}aws_lc_0_38_0_BN_pseudo_rand_range"]
8188    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8189}
8190#[repr(C)]
8191#[derive(Copy, Clone)]
8192pub struct bn_gencb_st {
8193    pub type_: u8,
8194    pub arg: *mut ::std::os::raw::c_void,
8195    pub callback: bn_gencb_st__bindgen_ty_1,
8196}
8197#[repr(C)]
8198#[derive(Copy, Clone)]
8199pub union bn_gencb_st__bindgen_ty_1 {
8200    pub new_style: ::std::option::Option<
8201        unsafe extern "C" fn(
8202            event: ::std::os::raw::c_int,
8203            n: ::std::os::raw::c_int,
8204            arg1: *mut bn_gencb_st,
8205        ) -> ::std::os::raw::c_int,
8206    >,
8207    pub old_style: ::std::option::Option<
8208        unsafe extern "C" fn(
8209            arg1: ::std::os::raw::c_int,
8210            arg2: ::std::os::raw::c_int,
8211            arg3: *mut ::std::os::raw::c_void,
8212        ),
8213    >,
8214}
8215#[test]
8216fn bindgen_test_layout_bn_gencb_st__bindgen_ty_1() {
8217    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st__bindgen_ty_1> =
8218        ::std::mem::MaybeUninit::uninit();
8219    let ptr = UNINIT.as_ptr();
8220    assert_eq!(
8221        ::std::mem::size_of::<bn_gencb_st__bindgen_ty_1>(),
8222        8usize,
8223        "Size of bn_gencb_st__bindgen_ty_1"
8224    );
8225    assert_eq!(
8226        ::std::mem::align_of::<bn_gencb_st__bindgen_ty_1>(),
8227        8usize,
8228        "Alignment of bn_gencb_st__bindgen_ty_1"
8229    );
8230    assert_eq!(
8231        unsafe { ::std::ptr::addr_of!((*ptr).new_style) as usize - ptr as usize },
8232        0usize,
8233        "Offset of field: bn_gencb_st__bindgen_ty_1::new_style"
8234    );
8235    assert_eq!(
8236        unsafe { ::std::ptr::addr_of!((*ptr).old_style) as usize - ptr as usize },
8237        0usize,
8238        "Offset of field: bn_gencb_st__bindgen_ty_1::old_style"
8239    );
8240}
8241impl Default for bn_gencb_st__bindgen_ty_1 {
8242    fn default() -> Self {
8243        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8244        unsafe {
8245            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8246            s.assume_init()
8247        }
8248    }
8249}
8250#[test]
8251fn bindgen_test_layout_bn_gencb_st() {
8252    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st> = ::std::mem::MaybeUninit::uninit();
8253    let ptr = UNINIT.as_ptr();
8254    assert_eq!(
8255        ::std::mem::size_of::<bn_gencb_st>(),
8256        24usize,
8257        "Size of bn_gencb_st"
8258    );
8259    assert_eq!(
8260        ::std::mem::align_of::<bn_gencb_st>(),
8261        8usize,
8262        "Alignment of bn_gencb_st"
8263    );
8264    assert_eq!(
8265        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8266        0usize,
8267        "Offset of field: bn_gencb_st::type_"
8268    );
8269    assert_eq!(
8270        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
8271        8usize,
8272        "Offset of field: bn_gencb_st::arg"
8273    );
8274    assert_eq!(
8275        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
8276        16usize,
8277        "Offset of field: bn_gencb_st::callback"
8278    );
8279}
8280impl Default for bn_gencb_st {
8281    fn default() -> Self {
8282        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8283        unsafe {
8284            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8285            s.assume_init()
8286        }
8287    }
8288}
8289extern "C" {
8290    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_new"]
8291    pub fn BN_GENCB_new() -> *mut BN_GENCB;
8292}
8293extern "C" {
8294    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_free"]
8295    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
8296}
8297extern "C" {
8298    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_set"]
8299    pub fn BN_GENCB_set(
8300        callback: *mut BN_GENCB,
8301        f: ::std::option::Option<
8302            unsafe extern "C" fn(
8303                event: ::std::os::raw::c_int,
8304                n: ::std::os::raw::c_int,
8305                arg1: *mut BN_GENCB,
8306            ) -> ::std::os::raw::c_int,
8307        >,
8308        arg: *mut ::std::os::raw::c_void,
8309    );
8310}
8311extern "C" {
8312    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_call"]
8313    pub fn BN_GENCB_call(
8314        callback: *mut BN_GENCB,
8315        event: ::std::os::raw::c_int,
8316        n: ::std::os::raw::c_int,
8317    ) -> ::std::os::raw::c_int;
8318}
8319extern "C" {
8320    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_get_arg"]
8321    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::std::os::raw::c_void;
8322}
8323extern "C" {
8324    #[link_name = "\u{1}aws_lc_0_38_0_BN_generate_prime_ex"]
8325    pub fn BN_generate_prime_ex(
8326        ret: *mut BIGNUM,
8327        bits: ::std::os::raw::c_int,
8328        safe: ::std::os::raw::c_int,
8329        add: *const BIGNUM,
8330        rem: *const BIGNUM,
8331        cb: *mut BN_GENCB,
8332    ) -> ::std::os::raw::c_int;
8333}
8334pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
8335pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
8336pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
8337pub type bn_primality_result_t = ::std::os::raw::c_uint;
8338extern "C" {
8339    #[link_name = "\u{1}aws_lc_0_38_0_BN_enhanced_miller_rabin_primality_test"]
8340    pub fn BN_enhanced_miller_rabin_primality_test(
8341        out_result: *mut bn_primality_result_t,
8342        w: *const BIGNUM,
8343        checks: ::std::os::raw::c_int,
8344        ctx: *mut BN_CTX,
8345        cb: *mut BN_GENCB,
8346    ) -> ::std::os::raw::c_int;
8347}
8348extern "C" {
8349    #[link_name = "\u{1}aws_lc_0_38_0_BN_primality_test"]
8350    pub fn BN_primality_test(
8351        is_probably_prime: *mut ::std::os::raw::c_int,
8352        candidate: *const BIGNUM,
8353        checks: ::std::os::raw::c_int,
8354        ctx: *mut BN_CTX,
8355        do_trial_division: ::std::os::raw::c_int,
8356        cb: *mut BN_GENCB,
8357    ) -> ::std::os::raw::c_int;
8358}
8359extern "C" {
8360    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_prime_fasttest_ex"]
8361    pub fn BN_is_prime_fasttest_ex(
8362        candidate: *const BIGNUM,
8363        checks: ::std::os::raw::c_int,
8364        ctx: *mut BN_CTX,
8365        do_trial_division: ::std::os::raw::c_int,
8366        cb: *mut BN_GENCB,
8367    ) -> ::std::os::raw::c_int;
8368}
8369extern "C" {
8370    #[link_name = "\u{1}aws_lc_0_38_0_BN_is_prime_ex"]
8371    pub fn BN_is_prime_ex(
8372        candidate: *const BIGNUM,
8373        checks: ::std::os::raw::c_int,
8374        ctx: *mut BN_CTX,
8375        cb: *mut BN_GENCB,
8376    ) -> ::std::os::raw::c_int;
8377}
8378extern "C" {
8379    #[link_name = "\u{1}aws_lc_0_38_0_BN_gcd"]
8380    pub fn BN_gcd(
8381        r: *mut BIGNUM,
8382        a: *const BIGNUM,
8383        b: *const BIGNUM,
8384        ctx: *mut BN_CTX,
8385    ) -> ::std::os::raw::c_int;
8386}
8387extern "C" {
8388    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_inverse"]
8389    pub fn BN_mod_inverse(
8390        out: *mut BIGNUM,
8391        a: *const BIGNUM,
8392        n: *const BIGNUM,
8393        ctx: *mut BN_CTX,
8394    ) -> *mut BIGNUM;
8395}
8396extern "C" {
8397    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_inverse_blinded"]
8398    pub fn BN_mod_inverse_blinded(
8399        out: *mut BIGNUM,
8400        out_no_inverse: *mut ::std::os::raw::c_int,
8401        a: *const BIGNUM,
8402        mont: *const BN_MONT_CTX,
8403        ctx: *mut BN_CTX,
8404    ) -> ::std::os::raw::c_int;
8405}
8406extern "C" {
8407    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_inverse_odd"]
8408    pub fn BN_mod_inverse_odd(
8409        out: *mut BIGNUM,
8410        out_no_inverse: *mut ::std::os::raw::c_int,
8411        a: *const BIGNUM,
8412        n: *const BIGNUM,
8413        ctx: *mut BN_CTX,
8414    ) -> ::std::os::raw::c_int;
8415}
8416extern "C" {
8417    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_new_for_modulus"]
8418    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8419}
8420extern "C" {
8421    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_new_consttime"]
8422    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8423}
8424extern "C" {
8425    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_free"]
8426    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
8427}
8428extern "C" {
8429    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_copy"]
8430    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
8431}
8432extern "C" {
8433    #[link_name = "\u{1}aws_lc_0_38_0_BN_to_montgomery"]
8434    pub fn BN_to_montgomery(
8435        ret: *mut BIGNUM,
8436        a: *const BIGNUM,
8437        mont: *const BN_MONT_CTX,
8438        ctx: *mut BN_CTX,
8439    ) -> ::std::os::raw::c_int;
8440}
8441extern "C" {
8442    #[link_name = "\u{1}aws_lc_0_38_0_BN_from_montgomery"]
8443    pub fn BN_from_montgomery(
8444        ret: *mut BIGNUM,
8445        a: *const BIGNUM,
8446        mont: *const BN_MONT_CTX,
8447        ctx: *mut BN_CTX,
8448    ) -> ::std::os::raw::c_int;
8449}
8450extern "C" {
8451    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_mul_montgomery"]
8452    pub fn BN_mod_mul_montgomery(
8453        r: *mut BIGNUM,
8454        a: *const BIGNUM,
8455        b: *const BIGNUM,
8456        mont: *const BN_MONT_CTX,
8457        ctx: *mut BN_CTX,
8458    ) -> ::std::os::raw::c_int;
8459}
8460extern "C" {
8461    #[link_name = "\u{1}aws_lc_0_38_0_BN_exp"]
8462    pub fn BN_exp(
8463        r: *mut BIGNUM,
8464        a: *const BIGNUM,
8465        p: *const BIGNUM,
8466        ctx: *mut BN_CTX,
8467    ) -> ::std::os::raw::c_int;
8468}
8469extern "C" {
8470    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp"]
8471    pub fn BN_mod_exp(
8472        r: *mut BIGNUM,
8473        a: *const BIGNUM,
8474        p: *const BIGNUM,
8475        m: *const BIGNUM,
8476        ctx: *mut BN_CTX,
8477    ) -> ::std::os::raw::c_int;
8478}
8479extern "C" {
8480    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp_mont"]
8481    pub fn BN_mod_exp_mont(
8482        r: *mut BIGNUM,
8483        a: *const BIGNUM,
8484        p: *const BIGNUM,
8485        m: *const BIGNUM,
8486        ctx: *mut BN_CTX,
8487        mont: *const BN_MONT_CTX,
8488    ) -> ::std::os::raw::c_int;
8489}
8490extern "C" {
8491    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp_mont_consttime"]
8492    pub fn BN_mod_exp_mont_consttime(
8493        rr: *mut BIGNUM,
8494        a: *const BIGNUM,
8495        p: *const BIGNUM,
8496        m: *const BIGNUM,
8497        ctx: *mut BN_CTX,
8498        mont: *const BN_MONT_CTX,
8499    ) -> ::std::os::raw::c_int;
8500}
8501extern "C" {
8502    #[link_name = "\u{1}aws_lc_0_38_0_BN_GENCB_set_old"]
8503    pub fn BN_GENCB_set_old(
8504        callback: *mut BN_GENCB,
8505        f: ::std::option::Option<
8506            unsafe extern "C" fn(
8507                arg1: ::std::os::raw::c_int,
8508                arg2: ::std::os::raw::c_int,
8509                arg3: *mut ::std::os::raw::c_void,
8510            ),
8511        >,
8512        cb_arg: *mut ::std::os::raw::c_void,
8513    );
8514}
8515extern "C" {
8516    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2mpi"]
8517    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
8518}
8519extern "C" {
8520    #[link_name = "\u{1}aws_lc_0_38_0_BN_mpi2bn"]
8521    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
8522}
8523extern "C" {
8524    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp_mont_word"]
8525    pub fn BN_mod_exp_mont_word(
8526        r: *mut BIGNUM,
8527        a: BN_ULONG,
8528        p: *const BIGNUM,
8529        m: *const BIGNUM,
8530        ctx: *mut BN_CTX,
8531        mont: *const BN_MONT_CTX,
8532    ) -> ::std::os::raw::c_int;
8533}
8534extern "C" {
8535    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp2_mont"]
8536    pub fn BN_mod_exp2_mont(
8537        r: *mut BIGNUM,
8538        a1: *const BIGNUM,
8539        p1: *const BIGNUM,
8540        a2: *const BIGNUM,
8541        p2: *const BIGNUM,
8542        m: *const BIGNUM,
8543        ctx: *mut BN_CTX,
8544        mont: *const BN_MONT_CTX,
8545    ) -> ::std::os::raw::c_int;
8546}
8547extern "C" {
8548    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_new"]
8549    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
8550}
8551extern "C" {
8552    #[link_name = "\u{1}aws_lc_0_38_0_BN_MONT_CTX_set"]
8553    pub fn BN_MONT_CTX_set(
8554        mont: *mut BN_MONT_CTX,
8555        mod_: *const BIGNUM,
8556        ctx: *mut BN_CTX,
8557    ) -> ::std::os::raw::c_int;
8558}
8559extern "C" {
8560    #[link_name = "\u{1}aws_lc_0_38_0_BN_bn2binpad"]
8561    pub fn BN_bn2binpad(
8562        in_: *const BIGNUM,
8563        out: *mut u8,
8564        len: ::std::os::raw::c_int,
8565    ) -> ::std::os::raw::c_int;
8566}
8567extern "C" {
8568    #[link_name = "\u{1}aws_lc_0_38_0_BN_secure_new"]
8569    pub fn BN_secure_new() -> *mut BIGNUM;
8570}
8571extern "C" {
8572    #[link_name = "\u{1}aws_lc_0_38_0_BN_CTX_secure_new"]
8573    pub fn BN_CTX_secure_new() -> *mut BN_CTX;
8574}
8575extern "C" {
8576    #[link_name = "\u{1}aws_lc_0_38_0_BN_mod_exp_mont_consttime_x2"]
8577    pub fn BN_mod_exp_mont_consttime_x2(
8578        rr1: *mut BIGNUM,
8579        a1: *const BIGNUM,
8580        p1: *const BIGNUM,
8581        m1: *const BIGNUM,
8582        in_mont1: *const BN_MONT_CTX,
8583        rr2: *mut BIGNUM,
8584        a2: *const BIGNUM,
8585        p2: *const BIGNUM,
8586        m2: *const BIGNUM,
8587        in_mont2: *const BN_MONT_CTX,
8588        ctx: *mut BN_CTX,
8589    ) -> ::std::os::raw::c_int;
8590}
8591extern "C" {
8592    #[link_name = "\u{1}aws_lc_0_38_0_BN_set_flags"]
8593    pub fn BN_set_flags(b: *mut BIGNUM, n: ::std::os::raw::c_int);
8594}
8595#[repr(C)]
8596#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8597pub struct bignum_st {
8598    pub d: *mut BN_ULONG,
8599    pub width: ::std::os::raw::c_int,
8600    pub dmax: ::std::os::raw::c_int,
8601    pub neg: ::std::os::raw::c_int,
8602    pub flags: ::std::os::raw::c_int,
8603}
8604#[test]
8605fn bindgen_test_layout_bignum_st() {
8606    const UNINIT: ::std::mem::MaybeUninit<bignum_st> = ::std::mem::MaybeUninit::uninit();
8607    let ptr = UNINIT.as_ptr();
8608    assert_eq!(
8609        ::std::mem::size_of::<bignum_st>(),
8610        24usize,
8611        "Size of bignum_st"
8612    );
8613    assert_eq!(
8614        ::std::mem::align_of::<bignum_st>(),
8615        8usize,
8616        "Alignment of bignum_st"
8617    );
8618    assert_eq!(
8619        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
8620        0usize,
8621        "Offset of field: bignum_st::d"
8622    );
8623    assert_eq!(
8624        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
8625        8usize,
8626        "Offset of field: bignum_st::width"
8627    );
8628    assert_eq!(
8629        unsafe { ::std::ptr::addr_of!((*ptr).dmax) as usize - ptr as usize },
8630        12usize,
8631        "Offset of field: bignum_st::dmax"
8632    );
8633    assert_eq!(
8634        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
8635        16usize,
8636        "Offset of field: bignum_st::neg"
8637    );
8638    assert_eq!(
8639        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8640        20usize,
8641        "Offset of field: bignum_st::flags"
8642    );
8643}
8644impl Default for bignum_st {
8645    fn default() -> Self {
8646        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8647        unsafe {
8648            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8649            s.assume_init()
8650        }
8651    }
8652}
8653#[repr(C)]
8654#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8655pub struct bn_mont_ctx_st {
8656    pub RR: BIGNUM,
8657    pub N: BIGNUM,
8658    pub n0: [BN_ULONG; 2usize],
8659}
8660#[test]
8661fn bindgen_test_layout_bn_mont_ctx_st() {
8662    const UNINIT: ::std::mem::MaybeUninit<bn_mont_ctx_st> = ::std::mem::MaybeUninit::uninit();
8663    let ptr = UNINIT.as_ptr();
8664    assert_eq!(
8665        ::std::mem::size_of::<bn_mont_ctx_st>(),
8666        64usize,
8667        "Size of bn_mont_ctx_st"
8668    );
8669    assert_eq!(
8670        ::std::mem::align_of::<bn_mont_ctx_st>(),
8671        8usize,
8672        "Alignment of bn_mont_ctx_st"
8673    );
8674    assert_eq!(
8675        unsafe { ::std::ptr::addr_of!((*ptr).RR) as usize - ptr as usize },
8676        0usize,
8677        "Offset of field: bn_mont_ctx_st::RR"
8678    );
8679    assert_eq!(
8680        unsafe { ::std::ptr::addr_of!((*ptr).N) as usize - ptr as usize },
8681        24usize,
8682        "Offset of field: bn_mont_ctx_st::N"
8683    );
8684    assert_eq!(
8685        unsafe { ::std::ptr::addr_of!((*ptr).n0) as usize - ptr as usize },
8686        48usize,
8687        "Offset of field: bn_mont_ctx_st::n0"
8688    );
8689}
8690impl Default for bn_mont_ctx_st {
8691    fn default() -> Self {
8692        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8693        unsafe {
8694            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8695            s.assume_init()
8696        }
8697    }
8698}
8699extern "C" {
8700    #[link_name = "\u{1}aws_lc_0_38_0_BN_num_bits_word"]
8701    pub fn BN_num_bits_word(l: BN_ULONG) -> ::std::os::raw::c_uint;
8702}
8703extern "C" {
8704    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_tag2bit"]
8705    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
8706}
8707extern "C" {
8708    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_tag2str"]
8709    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
8710}
8711pub type d2i_of_void = ::std::option::Option<
8712    unsafe extern "C" fn(
8713        arg1: *mut *mut ::std::os::raw::c_void,
8714        arg2: *mut *const ::std::os::raw::c_uchar,
8715        arg3: ::std::os::raw::c_long,
8716    ) -> *mut ::std::os::raw::c_void,
8717>;
8718pub type i2d_of_void = ::std::option::Option<
8719    unsafe extern "C" fn(
8720        arg1: *const ::std::os::raw::c_void,
8721        arg2: *mut *mut ::std::os::raw::c_uchar,
8722    ) -> ::std::os::raw::c_int,
8723>;
8724pub type ASN1_ITEM_EXP = ASN1_ITEM;
8725#[repr(C)]
8726#[derive(Debug, Copy, Clone)]
8727pub struct ASN1_VALUE_st {
8728    _unused: [u8; 0],
8729}
8730pub type ASN1_VALUE = ASN1_VALUE_st;
8731extern "C" {
8732    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_parse"]
8733    pub fn ASN1_parse(
8734        bp: *mut BIO,
8735        pp: *const ::std::os::raw::c_uchar,
8736        len: ::std::os::raw::c_long,
8737        indent: ::std::os::raw::c_int,
8738    ) -> ::std::os::raw::c_int;
8739}
8740extern "C" {
8741    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_new"]
8742    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
8743}
8744extern "C" {
8745    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_free"]
8746    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
8747}
8748extern "C" {
8749    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_d2i"]
8750    pub fn ASN1_item_d2i(
8751        out: *mut *mut ASN1_VALUE,
8752        inp: *mut *const ::std::os::raw::c_uchar,
8753        len: ::std::os::raw::c_long,
8754        it: *const ASN1_ITEM,
8755    ) -> *mut ASN1_VALUE;
8756}
8757extern "C" {
8758    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_i2d"]
8759    pub fn ASN1_item_i2d(
8760        val: *mut ASN1_VALUE,
8761        outp: *mut *mut ::std::os::raw::c_uchar,
8762        it: *const ASN1_ITEM,
8763    ) -> ::std::os::raw::c_int;
8764}
8765extern "C" {
8766    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_dup"]
8767    pub fn ASN1_dup(
8768        i2d: i2d_of_void,
8769        d2i: d2i_of_void,
8770        x: *mut ::std::os::raw::c_void,
8771    ) -> *mut ::std::os::raw::c_void;
8772}
8773extern "C" {
8774    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_dup"]
8775    pub fn ASN1_item_dup(
8776        it: *const ASN1_ITEM,
8777        x: *mut ::std::os::raw::c_void,
8778    ) -> *mut ::std::os::raw::c_void;
8779}
8780extern "C" {
8781    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_d2i_fp"]
8782    pub fn ASN1_item_d2i_fp(
8783        it: *const ASN1_ITEM,
8784        in_: *mut FILE,
8785        out: *mut ::std::os::raw::c_void,
8786    ) -> *mut ::std::os::raw::c_void;
8787}
8788extern "C" {
8789    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_d2i_bio"]
8790    pub fn ASN1_item_d2i_bio(
8791        it: *const ASN1_ITEM,
8792        in_: *mut BIO,
8793        out: *mut ::std::os::raw::c_void,
8794    ) -> *mut ::std::os::raw::c_void;
8795}
8796extern "C" {
8797    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_i2d_fp"]
8798    pub fn ASN1_item_i2d_fp(
8799        it: *const ASN1_ITEM,
8800        out: *mut FILE,
8801        in_: *mut ::std::os::raw::c_void,
8802    ) -> ::std::os::raw::c_int;
8803}
8804extern "C" {
8805    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_i2d_bio"]
8806    pub fn ASN1_item_i2d_bio(
8807        it: *const ASN1_ITEM,
8808        out: *mut BIO,
8809        in_: *mut ::std::os::raw::c_void,
8810    ) -> ::std::os::raw::c_int;
8811}
8812extern "C" {
8813    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_i2d_bio"]
8814    pub fn ASN1_i2d_bio(
8815        i2d: i2d_of_void,
8816        out: *mut BIO,
8817        in_: *mut ::std::os::raw::c_void,
8818    ) -> ::std::os::raw::c_int;
8819}
8820extern "C" {
8821    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_unpack"]
8822    pub fn ASN1_item_unpack(
8823        oct: *const ASN1_STRING,
8824        it: *const ASN1_ITEM,
8825    ) -> *mut ::std::os::raw::c_void;
8826}
8827extern "C" {
8828    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_pack"]
8829    pub fn ASN1_item_pack(
8830        obj: *mut ::std::os::raw::c_void,
8831        it: *const ASN1_ITEM,
8832        out: *mut *mut ASN1_STRING,
8833    ) -> *mut ASN1_STRING;
8834}
8835extern "C" {
8836    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_BOOLEAN"]
8837    pub fn d2i_ASN1_BOOLEAN(
8838        out: *mut ASN1_BOOLEAN,
8839        inp: *mut *const ::std::os::raw::c_uchar,
8840        len: ::std::os::raw::c_long,
8841    ) -> ASN1_BOOLEAN;
8842}
8843extern "C" {
8844    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_BOOLEAN"]
8845    pub fn i2d_ASN1_BOOLEAN(
8846        a: ASN1_BOOLEAN,
8847        outp: *mut *mut ::std::os::raw::c_uchar,
8848    ) -> ::std::os::raw::c_int;
8849}
8850extern "C" {
8851    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BOOLEAN_it"]
8852    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
8853}
8854extern "C" {
8855    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TBOOLEAN_it"]
8856    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
8857}
8858extern "C" {
8859    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_FBOOLEAN_it"]
8860    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
8861}
8862#[repr(C)]
8863#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8864pub struct asn1_string_st {
8865    pub length: ::std::os::raw::c_int,
8866    pub type_: ::std::os::raw::c_int,
8867    pub data: *mut ::std::os::raw::c_uchar,
8868    pub flags: ::std::os::raw::c_long,
8869}
8870#[test]
8871fn bindgen_test_layout_asn1_string_st() {
8872    const UNINIT: ::std::mem::MaybeUninit<asn1_string_st> = ::std::mem::MaybeUninit::uninit();
8873    let ptr = UNINIT.as_ptr();
8874    assert_eq!(
8875        ::std::mem::size_of::<asn1_string_st>(),
8876        24usize,
8877        "Size of asn1_string_st"
8878    );
8879    assert_eq!(
8880        ::std::mem::align_of::<asn1_string_st>(),
8881        8usize,
8882        "Alignment of asn1_string_st"
8883    );
8884    assert_eq!(
8885        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
8886        0usize,
8887        "Offset of field: asn1_string_st::length"
8888    );
8889    assert_eq!(
8890        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8891        4usize,
8892        "Offset of field: asn1_string_st::type_"
8893    );
8894    assert_eq!(
8895        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
8896        8usize,
8897        "Offset of field: asn1_string_st::data"
8898    );
8899    assert_eq!(
8900        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8901        16usize,
8902        "Offset of field: asn1_string_st::flags"
8903    );
8904}
8905impl Default for asn1_string_st {
8906    fn default() -> Self {
8907        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8908        unsafe {
8909            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8910            s.assume_init()
8911        }
8912    }
8913}
8914extern "C" {
8915    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_type_new"]
8916    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
8917}
8918extern "C" {
8919    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_new"]
8920    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
8921}
8922extern "C" {
8923    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_free"]
8924    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
8925}
8926extern "C" {
8927    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_clear_free"]
8928    pub fn ASN1_STRING_clear_free(str_: *mut ASN1_STRING);
8929}
8930extern "C" {
8931    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_copy"]
8932    pub fn ASN1_STRING_copy(
8933        dst: *mut ASN1_STRING,
8934        str_: *const ASN1_STRING,
8935    ) -> ::std::os::raw::c_int;
8936}
8937extern "C" {
8938    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_dup"]
8939    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
8940}
8941extern "C" {
8942    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_type"]
8943    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8944}
8945extern "C" {
8946    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_get0_data"]
8947    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
8948}
8949extern "C" {
8950    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_data"]
8951    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
8952}
8953extern "C" {
8954    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_length"]
8955    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8956}
8957extern "C" {
8958    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_cmp"]
8959    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
8960}
8961extern "C" {
8962    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_set"]
8963    pub fn ASN1_STRING_set(
8964        str_: *mut ASN1_STRING,
8965        data: *const ::std::os::raw::c_void,
8966        len: ossl_ssize_t,
8967    ) -> ::std::os::raw::c_int;
8968}
8969extern "C" {
8970    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_set0"]
8971    pub fn ASN1_STRING_set0(
8972        str_: *mut ASN1_STRING,
8973        data: *mut ::std::os::raw::c_void,
8974        len: ::std::os::raw::c_int,
8975    );
8976}
8977extern "C" {
8978    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BMPSTRING_new"]
8979    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
8980}
8981extern "C" {
8982    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALSTRING_new"]
8983    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
8984}
8985extern "C" {
8986    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_IA5STRING_new"]
8987    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
8988}
8989extern "C" {
8990    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_new"]
8991    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
8992}
8993extern "C" {
8994    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLESTRING_new"]
8995    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
8996}
8997extern "C" {
8998    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_T61STRING_new"]
8999    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
9000}
9001extern "C" {
9002    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UNIVERSALSTRING_new"]
9003    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
9004}
9005extern "C" {
9006    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTF8STRING_new"]
9007    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
9008}
9009extern "C" {
9010    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_VISIBLESTRING_new"]
9011    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
9012}
9013extern "C" {
9014    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BMPSTRING_free"]
9015    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
9016}
9017extern "C" {
9018    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALSTRING_free"]
9019    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
9020}
9021extern "C" {
9022    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_IA5STRING_free"]
9023    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
9024}
9025extern "C" {
9026    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_free"]
9027    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
9028}
9029extern "C" {
9030    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLESTRING_free"]
9031    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
9032}
9033extern "C" {
9034    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_T61STRING_free"]
9035    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
9036}
9037extern "C" {
9038    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UNIVERSALSTRING_free"]
9039    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
9040}
9041extern "C" {
9042    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTF8STRING_free"]
9043    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
9044}
9045extern "C" {
9046    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_VISIBLESTRING_free"]
9047    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
9048}
9049extern "C" {
9050    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_BMPSTRING"]
9051    pub fn d2i_ASN1_BMPSTRING(
9052        out: *mut *mut ASN1_BMPSTRING,
9053        inp: *mut *const u8,
9054        len: ::std::os::raw::c_long,
9055    ) -> *mut ASN1_BMPSTRING;
9056}
9057extern "C" {
9058    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_GENERALSTRING"]
9059    pub fn d2i_ASN1_GENERALSTRING(
9060        out: *mut *mut ASN1_GENERALSTRING,
9061        inp: *mut *const u8,
9062        len: ::std::os::raw::c_long,
9063    ) -> *mut ASN1_GENERALSTRING;
9064}
9065extern "C" {
9066    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_IA5STRING"]
9067    pub fn d2i_ASN1_IA5STRING(
9068        out: *mut *mut ASN1_IA5STRING,
9069        inp: *mut *const u8,
9070        len: ::std::os::raw::c_long,
9071    ) -> *mut ASN1_IA5STRING;
9072}
9073extern "C" {
9074    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_OCTET_STRING"]
9075    pub fn d2i_ASN1_OCTET_STRING(
9076        out: *mut *mut ASN1_OCTET_STRING,
9077        inp: *mut *const u8,
9078        len: ::std::os::raw::c_long,
9079    ) -> *mut ASN1_OCTET_STRING;
9080}
9081extern "C" {
9082    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_PRINTABLESTRING"]
9083    pub fn d2i_ASN1_PRINTABLESTRING(
9084        out: *mut *mut ASN1_PRINTABLESTRING,
9085        inp: *mut *const u8,
9086        len: ::std::os::raw::c_long,
9087    ) -> *mut ASN1_PRINTABLESTRING;
9088}
9089extern "C" {
9090    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_T61STRING"]
9091    pub fn d2i_ASN1_T61STRING(
9092        out: *mut *mut ASN1_T61STRING,
9093        inp: *mut *const u8,
9094        len: ::std::os::raw::c_long,
9095    ) -> *mut ASN1_T61STRING;
9096}
9097extern "C" {
9098    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_UNIVERSALSTRING"]
9099    pub fn d2i_ASN1_UNIVERSALSTRING(
9100        out: *mut *mut ASN1_UNIVERSALSTRING,
9101        inp: *mut *const u8,
9102        len: ::std::os::raw::c_long,
9103    ) -> *mut ASN1_UNIVERSALSTRING;
9104}
9105extern "C" {
9106    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_UTF8STRING"]
9107    pub fn d2i_ASN1_UTF8STRING(
9108        out: *mut *mut ASN1_UTF8STRING,
9109        inp: *mut *const u8,
9110        len: ::std::os::raw::c_long,
9111    ) -> *mut ASN1_UTF8STRING;
9112}
9113extern "C" {
9114    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_VISIBLESTRING"]
9115    pub fn d2i_ASN1_VISIBLESTRING(
9116        out: *mut *mut ASN1_VISIBLESTRING,
9117        inp: *mut *const u8,
9118        len: ::std::os::raw::c_long,
9119    ) -> *mut ASN1_VISIBLESTRING;
9120}
9121extern "C" {
9122    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_BMPSTRING"]
9123    pub fn i2d_ASN1_BMPSTRING(
9124        in_: *const ASN1_BMPSTRING,
9125        outp: *mut *mut u8,
9126    ) -> ::std::os::raw::c_int;
9127}
9128extern "C" {
9129    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_GENERALSTRING"]
9130    pub fn i2d_ASN1_GENERALSTRING(
9131        in_: *const ASN1_GENERALSTRING,
9132        outp: *mut *mut u8,
9133    ) -> ::std::os::raw::c_int;
9134}
9135extern "C" {
9136    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_IA5STRING"]
9137    pub fn i2d_ASN1_IA5STRING(
9138        in_: *const ASN1_IA5STRING,
9139        outp: *mut *mut u8,
9140    ) -> ::std::os::raw::c_int;
9141}
9142extern "C" {
9143    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_OCTET_STRING"]
9144    pub fn i2d_ASN1_OCTET_STRING(
9145        in_: *const ASN1_OCTET_STRING,
9146        outp: *mut *mut u8,
9147    ) -> ::std::os::raw::c_int;
9148}
9149extern "C" {
9150    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_PRINTABLESTRING"]
9151    pub fn i2d_ASN1_PRINTABLESTRING(
9152        in_: *const ASN1_PRINTABLESTRING,
9153        outp: *mut *mut u8,
9154    ) -> ::std::os::raw::c_int;
9155}
9156extern "C" {
9157    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_T61STRING"]
9158    pub fn i2d_ASN1_T61STRING(
9159        in_: *const ASN1_T61STRING,
9160        outp: *mut *mut u8,
9161    ) -> ::std::os::raw::c_int;
9162}
9163extern "C" {
9164    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_UNIVERSALSTRING"]
9165    pub fn i2d_ASN1_UNIVERSALSTRING(
9166        in_: *const ASN1_UNIVERSALSTRING,
9167        outp: *mut *mut u8,
9168    ) -> ::std::os::raw::c_int;
9169}
9170extern "C" {
9171    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_UTF8STRING"]
9172    pub fn i2d_ASN1_UTF8STRING(
9173        in_: *const ASN1_UTF8STRING,
9174        outp: *mut *mut u8,
9175    ) -> ::std::os::raw::c_int;
9176}
9177extern "C" {
9178    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_VISIBLESTRING"]
9179    pub fn i2d_ASN1_VISIBLESTRING(
9180        in_: *const ASN1_VISIBLESTRING,
9181        outp: *mut *mut u8,
9182    ) -> ::std::os::raw::c_int;
9183}
9184extern "C" {
9185    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BMPSTRING_it"]
9186    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
9187}
9188extern "C" {
9189    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALSTRING_it"]
9190    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
9191}
9192extern "C" {
9193    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_IA5STRING_it"]
9194    pub static ASN1_IA5STRING_it: ASN1_ITEM;
9195}
9196extern "C" {
9197    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_it"]
9198    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
9199}
9200extern "C" {
9201    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLESTRING_it"]
9202    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
9203}
9204extern "C" {
9205    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_T61STRING_it"]
9206    pub static ASN1_T61STRING_it: ASN1_ITEM;
9207}
9208extern "C" {
9209    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UNIVERSALSTRING_it"]
9210    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
9211}
9212extern "C" {
9213    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTF8STRING_it"]
9214    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
9215}
9216extern "C" {
9217    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_VISIBLESTRING_it"]
9218    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
9219}
9220extern "C" {
9221    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_dup"]
9222    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
9223}
9224extern "C" {
9225    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_cmp"]
9226    pub fn ASN1_OCTET_STRING_cmp(
9227        a: *const ASN1_OCTET_STRING,
9228        b: *const ASN1_OCTET_STRING,
9229    ) -> ::std::os::raw::c_int;
9230}
9231extern "C" {
9232    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OCTET_STRING_set"]
9233    pub fn ASN1_OCTET_STRING_set(
9234        str_: *mut ASN1_OCTET_STRING,
9235        data: *const ::std::os::raw::c_uchar,
9236        len: ::std::os::raw::c_int,
9237    ) -> ::std::os::raw::c_int;
9238}
9239extern "C" {
9240    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_to_UTF8"]
9241    pub fn ASN1_STRING_to_UTF8(
9242        out: *mut *mut ::std::os::raw::c_uchar,
9243        in_: *const ASN1_STRING,
9244    ) -> ::std::os::raw::c_int;
9245}
9246extern "C" {
9247    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_mbstring_copy"]
9248    pub fn ASN1_mbstring_copy(
9249        out: *mut *mut ASN1_STRING,
9250        in_: *const u8,
9251        len: ossl_ssize_t,
9252        inform: ::std::os::raw::c_int,
9253        mask: ::std::os::raw::c_ulong,
9254    ) -> ::std::os::raw::c_int;
9255}
9256extern "C" {
9257    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_mbstring_ncopy"]
9258    pub fn ASN1_mbstring_ncopy(
9259        out: *mut *mut ASN1_STRING,
9260        in_: *const u8,
9261        len: ossl_ssize_t,
9262        inform: ::std::os::raw::c_int,
9263        mask: ::std::os::raw::c_ulong,
9264        minsize: ossl_ssize_t,
9265        maxsize: ossl_ssize_t,
9266    ) -> ::std::os::raw::c_int;
9267}
9268extern "C" {
9269    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_set_by_NID"]
9270    pub fn ASN1_STRING_set_by_NID(
9271        out: *mut *mut ASN1_STRING,
9272        in_: *const ::std::os::raw::c_uchar,
9273        len: ossl_ssize_t,
9274        inform: ::std::os::raw::c_int,
9275        nid: ::std::os::raw::c_int,
9276    ) -> *mut ASN1_STRING;
9277}
9278extern "C" {
9279    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_TABLE_add"]
9280    pub fn ASN1_STRING_TABLE_add(
9281        nid: ::std::os::raw::c_int,
9282        minsize: ::std::os::raw::c_long,
9283        maxsize: ::std::os::raw::c_long,
9284        mask: ::std::os::raw::c_ulong,
9285        flags: ::std::os::raw::c_ulong,
9286    ) -> ::std::os::raw::c_int;
9287}
9288extern "C" {
9289    #[link_name = "\u{1}aws_lc_0_38_0_DIRECTORYSTRING_new"]
9290    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
9291}
9292extern "C" {
9293    #[link_name = "\u{1}aws_lc_0_38_0_DIRECTORYSTRING_free"]
9294    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
9295}
9296extern "C" {
9297    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DIRECTORYSTRING"]
9298    pub fn d2i_DIRECTORYSTRING(
9299        out: *mut *mut ASN1_STRING,
9300        inp: *mut *const u8,
9301        len: ::std::os::raw::c_long,
9302    ) -> *mut ASN1_STRING;
9303}
9304extern "C" {
9305    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DIRECTORYSTRING"]
9306    pub fn i2d_DIRECTORYSTRING(
9307        in_: *const ASN1_STRING,
9308        outp: *mut *mut u8,
9309    ) -> ::std::os::raw::c_int;
9310}
9311extern "C" {
9312    #[link_name = "\u{1}aws_lc_0_38_0_DIRECTORYSTRING_it"]
9313    pub static DIRECTORYSTRING_it: ASN1_ITEM;
9314}
9315extern "C" {
9316    #[link_name = "\u{1}aws_lc_0_38_0_DISPLAYTEXT_new"]
9317    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
9318}
9319extern "C" {
9320    #[link_name = "\u{1}aws_lc_0_38_0_DISPLAYTEXT_free"]
9321    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
9322}
9323extern "C" {
9324    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DISPLAYTEXT"]
9325    pub fn d2i_DISPLAYTEXT(
9326        out: *mut *mut ASN1_STRING,
9327        inp: *mut *const u8,
9328        len: ::std::os::raw::c_long,
9329    ) -> *mut ASN1_STRING;
9330}
9331extern "C" {
9332    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DISPLAYTEXT"]
9333    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9334}
9335extern "C" {
9336    #[link_name = "\u{1}aws_lc_0_38_0_DISPLAYTEXT_it"]
9337    pub static DISPLAYTEXT_it: ASN1_ITEM;
9338}
9339extern "C" {
9340    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_new"]
9341    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
9342}
9343extern "C" {
9344    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_free"]
9345    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
9346}
9347extern "C" {
9348    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_BIT_STRING"]
9349    pub fn d2i_ASN1_BIT_STRING(
9350        out: *mut *mut ASN1_BIT_STRING,
9351        inp: *mut *const u8,
9352        len: ::std::os::raw::c_long,
9353    ) -> *mut ASN1_BIT_STRING;
9354}
9355extern "C" {
9356    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_BIT_STRING"]
9357    pub fn i2d_ASN1_BIT_STRING(
9358        in_: *const ASN1_BIT_STRING,
9359        outp: *mut *mut u8,
9360    ) -> ::std::os::raw::c_int;
9361}
9362extern "C" {
9363    #[link_name = "\u{1}aws_lc_0_38_0_c2i_ASN1_BIT_STRING"]
9364    pub fn c2i_ASN1_BIT_STRING(
9365        out: *mut *mut ASN1_BIT_STRING,
9366        inp: *mut *const u8,
9367        len: ::std::os::raw::c_long,
9368    ) -> *mut ASN1_BIT_STRING;
9369}
9370extern "C" {
9371    #[link_name = "\u{1}aws_lc_0_38_0_i2c_ASN1_BIT_STRING"]
9372    pub fn i2c_ASN1_BIT_STRING(
9373        in_: *const ASN1_BIT_STRING,
9374        outp: *mut *mut u8,
9375    ) -> ::std::os::raw::c_int;
9376}
9377extern "C" {
9378    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_it"]
9379    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
9380}
9381extern "C" {
9382    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_num_bytes"]
9383    pub fn ASN1_BIT_STRING_num_bytes(
9384        str_: *const ASN1_BIT_STRING,
9385        out: *mut usize,
9386    ) -> ::std::os::raw::c_int;
9387}
9388extern "C" {
9389    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_set"]
9390    pub fn ASN1_BIT_STRING_set(
9391        str_: *mut ASN1_BIT_STRING,
9392        d: *const ::std::os::raw::c_uchar,
9393        length: ossl_ssize_t,
9394    ) -> ::std::os::raw::c_int;
9395}
9396extern "C" {
9397    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_set_bit"]
9398    pub fn ASN1_BIT_STRING_set_bit(
9399        str_: *mut ASN1_BIT_STRING,
9400        n: ::std::os::raw::c_int,
9401        value: ::std::os::raw::c_int,
9402    ) -> ::std::os::raw::c_int;
9403}
9404extern "C" {
9405    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_get_bit"]
9406    pub fn ASN1_BIT_STRING_get_bit(
9407        str_: *const ASN1_BIT_STRING,
9408        n: ::std::os::raw::c_int,
9409    ) -> ::std::os::raw::c_int;
9410}
9411extern "C" {
9412    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_BIT_STRING_check"]
9413    pub fn ASN1_BIT_STRING_check(
9414        str_: *const ASN1_BIT_STRING,
9415        flags: *const ::std::os::raw::c_uchar,
9416        flags_len: ::std::os::raw::c_int,
9417    ) -> ::std::os::raw::c_int;
9418}
9419#[repr(C)]
9420#[derive(Debug, Copy, Clone)]
9421pub struct stack_st_ASN1_INTEGER {
9422    _unused: [u8; 0],
9423}
9424pub type sk_ASN1_INTEGER_free_func =
9425    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
9426pub type sk_ASN1_INTEGER_copy_func =
9427    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
9428pub type sk_ASN1_INTEGER_cmp_func = ::std::option::Option<
9429    unsafe extern "C" fn(
9430        arg1: *const *const ASN1_INTEGER,
9431        arg2: *const *const ASN1_INTEGER,
9432    ) -> ::std::os::raw::c_int,
9433>;
9434pub type sk_ASN1_INTEGER_delete_if_func = ::std::option::Option<
9435    unsafe extern "C" fn(
9436        arg1: *mut ASN1_INTEGER,
9437        arg2: *mut ::std::os::raw::c_void,
9438    ) -> ::std::os::raw::c_int,
9439>;
9440extern "C" {
9441    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_new"]
9442    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
9443}
9444extern "C" {
9445    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_free"]
9446    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
9447}
9448extern "C" {
9449    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_dup"]
9450    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
9451}
9452extern "C" {
9453    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_INTEGER"]
9454    pub fn d2i_ASN1_INTEGER(
9455        out: *mut *mut ASN1_INTEGER,
9456        inp: *mut *const u8,
9457        len: ::std::os::raw::c_long,
9458    ) -> *mut ASN1_INTEGER;
9459}
9460extern "C" {
9461    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_INTEGER"]
9462    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9463}
9464extern "C" {
9465    #[link_name = "\u{1}aws_lc_0_38_0_c2i_ASN1_INTEGER"]
9466    pub fn c2i_ASN1_INTEGER(
9467        in_: *mut *mut ASN1_INTEGER,
9468        outp: *mut *const u8,
9469        len: ::std::os::raw::c_long,
9470    ) -> *mut ASN1_INTEGER;
9471}
9472extern "C" {
9473    #[link_name = "\u{1}aws_lc_0_38_0_i2c_ASN1_INTEGER"]
9474    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9475}
9476extern "C" {
9477    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_it"]
9478    pub static ASN1_INTEGER_it: ASN1_ITEM;
9479}
9480extern "C" {
9481    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_set_uint64"]
9482    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
9483}
9484extern "C" {
9485    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_set_int64"]
9486    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::std::os::raw::c_int;
9487}
9488extern "C" {
9489    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_get_uint64"]
9490    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9491}
9492extern "C" {
9493    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_get_int64"]
9494    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9495}
9496extern "C" {
9497    #[link_name = "\u{1}aws_lc_0_38_0_BN_to_ASN1_INTEGER"]
9498    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
9499}
9500extern "C" {
9501    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_to_BN"]
9502    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
9503}
9504extern "C" {
9505    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_cmp"]
9506    pub fn ASN1_INTEGER_cmp(
9507        x: *const ASN1_INTEGER,
9508        y: *const ASN1_INTEGER,
9509    ) -> ::std::os::raw::c_int;
9510}
9511extern "C" {
9512    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_new"]
9513    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
9514}
9515extern "C" {
9516    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_free"]
9517    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
9518}
9519extern "C" {
9520    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_ENUMERATED"]
9521    pub fn d2i_ASN1_ENUMERATED(
9522        out: *mut *mut ASN1_ENUMERATED,
9523        inp: *mut *const u8,
9524        len: ::std::os::raw::c_long,
9525    ) -> *mut ASN1_ENUMERATED;
9526}
9527extern "C" {
9528    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_ENUMERATED"]
9529    pub fn i2d_ASN1_ENUMERATED(
9530        in_: *const ASN1_ENUMERATED,
9531        outp: *mut *mut u8,
9532    ) -> ::std::os::raw::c_int;
9533}
9534extern "C" {
9535    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_it"]
9536    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
9537}
9538extern "C" {
9539    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_set_uint64"]
9540    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::std::os::raw::c_int;
9541}
9542extern "C" {
9543    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_set_int64"]
9544    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::std::os::raw::c_int;
9545}
9546extern "C" {
9547    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_get_uint64"]
9548    pub fn ASN1_ENUMERATED_get_uint64(
9549        out: *mut u64,
9550        a: *const ASN1_ENUMERATED,
9551    ) -> ::std::os::raw::c_int;
9552}
9553extern "C" {
9554    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_get_int64"]
9555    pub fn ASN1_ENUMERATED_get_int64(
9556        out: *mut i64,
9557        a: *const ASN1_ENUMERATED,
9558    ) -> ::std::os::raw::c_int;
9559}
9560extern "C" {
9561    #[link_name = "\u{1}aws_lc_0_38_0_BN_to_ASN1_ENUMERATED"]
9562    pub fn BN_to_ASN1_ENUMERATED(
9563        bn: *const BIGNUM,
9564        ai: *mut ASN1_ENUMERATED,
9565    ) -> *mut ASN1_ENUMERATED;
9566}
9567extern "C" {
9568    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_to_BN"]
9569    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
9570}
9571extern "C" {
9572    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_new"]
9573    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
9574}
9575extern "C" {
9576    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_free"]
9577    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
9578}
9579extern "C" {
9580    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_UTCTIME"]
9581    pub fn d2i_ASN1_UTCTIME(
9582        out: *mut *mut ASN1_UTCTIME,
9583        inp: *mut *const u8,
9584        len: ::std::os::raw::c_long,
9585    ) -> *mut ASN1_UTCTIME;
9586}
9587extern "C" {
9588    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_UTCTIME"]
9589    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9590}
9591extern "C" {
9592    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_it"]
9593    pub static ASN1_UTCTIME_it: ASN1_ITEM;
9594}
9595extern "C" {
9596    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_check"]
9597    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
9598}
9599extern "C" {
9600    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_set"]
9601    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
9602}
9603extern "C" {
9604    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_adj"]
9605    pub fn ASN1_UTCTIME_adj(
9606        s: *mut ASN1_UTCTIME,
9607        posix_time: i64,
9608        offset_day: ::std::os::raw::c_int,
9609        offset_sec: ::std::os::raw::c_long,
9610    ) -> *mut ASN1_UTCTIME;
9611}
9612extern "C" {
9613    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_set_string"]
9614    pub fn ASN1_UTCTIME_set_string(
9615        s: *mut ASN1_UTCTIME,
9616        str_: *const ::std::os::raw::c_char,
9617    ) -> ::std::os::raw::c_int;
9618}
9619extern "C" {
9620    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_cmp_time_t"]
9621    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
9622}
9623extern "C" {
9624    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_new"]
9625    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
9626}
9627extern "C" {
9628    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_free"]
9629    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
9630}
9631extern "C" {
9632    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_GENERALIZEDTIME"]
9633    pub fn d2i_ASN1_GENERALIZEDTIME(
9634        out: *mut *mut ASN1_GENERALIZEDTIME,
9635        inp: *mut *const u8,
9636        len: ::std::os::raw::c_long,
9637    ) -> *mut ASN1_GENERALIZEDTIME;
9638}
9639extern "C" {
9640    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_GENERALIZEDTIME"]
9641    pub fn i2d_ASN1_GENERALIZEDTIME(
9642        in_: *const ASN1_GENERALIZEDTIME,
9643        outp: *mut *mut u8,
9644    ) -> ::std::os::raw::c_int;
9645}
9646extern "C" {
9647    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_it"]
9648    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
9649}
9650extern "C" {
9651    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_check"]
9652    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
9653}
9654extern "C" {
9655    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_set"]
9656    pub fn ASN1_GENERALIZEDTIME_set(
9657        s: *mut ASN1_GENERALIZEDTIME,
9658        posix_time: i64,
9659    ) -> *mut ASN1_GENERALIZEDTIME;
9660}
9661extern "C" {
9662    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_adj"]
9663    pub fn ASN1_GENERALIZEDTIME_adj(
9664        s: *mut ASN1_GENERALIZEDTIME,
9665        posix_time: i64,
9666        offset_day: ::std::os::raw::c_int,
9667        offset_sec: ::std::os::raw::c_long,
9668    ) -> *mut ASN1_GENERALIZEDTIME;
9669}
9670extern "C" {
9671    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_set_string"]
9672    pub fn ASN1_GENERALIZEDTIME_set_string(
9673        s: *mut ASN1_GENERALIZEDTIME,
9674        str_: *const ::std::os::raw::c_char,
9675    ) -> ::std::os::raw::c_int;
9676}
9677extern "C" {
9678    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_new"]
9679    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
9680}
9681extern "C" {
9682    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_free"]
9683    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
9684}
9685extern "C" {
9686    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_TIME"]
9687    pub fn d2i_ASN1_TIME(
9688        out: *mut *mut ASN1_TIME,
9689        inp: *mut *const u8,
9690        len: ::std::os::raw::c_long,
9691    ) -> *mut ASN1_TIME;
9692}
9693extern "C" {
9694    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_TIME"]
9695    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9696}
9697extern "C" {
9698    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_it"]
9699    pub static ASN1_TIME_it: ASN1_ITEM;
9700}
9701extern "C" {
9702    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_diff"]
9703    pub fn ASN1_TIME_diff(
9704        out_days: *mut ::std::os::raw::c_int,
9705        out_seconds: *mut ::std::os::raw::c_int,
9706        from: *const ASN1_TIME,
9707        to: *const ASN1_TIME,
9708    ) -> ::std::os::raw::c_int;
9709}
9710extern "C" {
9711    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_set_posix"]
9712    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
9713}
9714extern "C" {
9715    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_set"]
9716    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
9717}
9718extern "C" {
9719    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_adj"]
9720    pub fn ASN1_TIME_adj(
9721        s: *mut ASN1_TIME,
9722        posix_time: i64,
9723        offset_day: ::std::os::raw::c_int,
9724        offset_sec: ::std::os::raw::c_long,
9725    ) -> *mut ASN1_TIME;
9726}
9727extern "C" {
9728    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_check"]
9729    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::std::os::raw::c_int;
9730}
9731extern "C" {
9732    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_to_generalizedtime"]
9733    pub fn ASN1_TIME_to_generalizedtime(
9734        t: *const ASN1_TIME,
9735        out: *mut *mut ASN1_GENERALIZEDTIME,
9736    ) -> *mut ASN1_GENERALIZEDTIME;
9737}
9738extern "C" {
9739    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_set_string"]
9740    pub fn ASN1_TIME_set_string(
9741        s: *mut ASN1_TIME,
9742        str_: *const ::std::os::raw::c_char,
9743    ) -> ::std::os::raw::c_int;
9744}
9745extern "C" {
9746    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_to_tm"]
9747    pub fn ASN1_TIME_to_tm(t: *const ASN1_TIME, out: *mut tm) -> ::std::os::raw::c_int;
9748}
9749extern "C" {
9750    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_set_string_X509"]
9751    pub fn ASN1_TIME_set_string_X509(
9752        s: *mut ASN1_TIME,
9753        str_: *const ::std::os::raw::c_char,
9754    ) -> ::std::os::raw::c_int;
9755}
9756extern "C" {
9757    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_to_time_t"]
9758    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::std::os::raw::c_int;
9759}
9760extern "C" {
9761    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_to_posix"]
9762    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::std::os::raw::c_int;
9763}
9764extern "C" {
9765    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_NULL_new"]
9766    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
9767}
9768extern "C" {
9769    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_NULL_free"]
9770    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
9771}
9772extern "C" {
9773    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_NULL"]
9774    pub fn d2i_ASN1_NULL(
9775        out: *mut *mut ASN1_NULL,
9776        inp: *mut *const u8,
9777        len: ::std::os::raw::c_long,
9778    ) -> *mut ASN1_NULL;
9779}
9780extern "C" {
9781    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_NULL"]
9782    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9783}
9784extern "C" {
9785    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_NULL_it"]
9786    pub static ASN1_NULL_it: ASN1_ITEM;
9787}
9788#[repr(C)]
9789#[derive(Debug, Copy, Clone)]
9790pub struct stack_st_ASN1_OBJECT {
9791    _unused: [u8; 0],
9792}
9793pub type sk_ASN1_OBJECT_free_func =
9794    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
9795pub type sk_ASN1_OBJECT_copy_func =
9796    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
9797pub type sk_ASN1_OBJECT_cmp_func = ::std::option::Option<
9798    unsafe extern "C" fn(
9799        arg1: *const *const ASN1_OBJECT,
9800        arg2: *const *const ASN1_OBJECT,
9801    ) -> ::std::os::raw::c_int,
9802>;
9803pub type sk_ASN1_OBJECT_delete_if_func = ::std::option::Option<
9804    unsafe extern "C" fn(
9805        arg1: *mut ASN1_OBJECT,
9806        arg2: *mut ::std::os::raw::c_void,
9807    ) -> ::std::os::raw::c_int,
9808>;
9809extern "C" {
9810    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OBJECT_create"]
9811    pub fn ASN1_OBJECT_create(
9812        nid: ::std::os::raw::c_int,
9813        data: *const u8,
9814        len: usize,
9815        sn: *const ::std::os::raw::c_char,
9816        ln: *const ::std::os::raw::c_char,
9817    ) -> *mut ASN1_OBJECT;
9818}
9819extern "C" {
9820    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OBJECT_free"]
9821    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
9822}
9823extern "C" {
9824    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_OBJECT"]
9825    pub fn d2i_ASN1_OBJECT(
9826        out: *mut *mut ASN1_OBJECT,
9827        inp: *mut *const u8,
9828        len: ::std::os::raw::c_long,
9829    ) -> *mut ASN1_OBJECT;
9830}
9831extern "C" {
9832    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_OBJECT"]
9833    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9834}
9835extern "C" {
9836    #[link_name = "\u{1}aws_lc_0_38_0_c2i_ASN1_OBJECT"]
9837    pub fn c2i_ASN1_OBJECT(
9838        out: *mut *mut ASN1_OBJECT,
9839        inp: *mut *const u8,
9840        len: ::std::os::raw::c_long,
9841    ) -> *mut ASN1_OBJECT;
9842}
9843extern "C" {
9844    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_OBJECT_it"]
9845    pub static ASN1_OBJECT_it: ASN1_ITEM;
9846}
9847#[repr(C)]
9848#[derive(Copy, Clone)]
9849pub struct asn1_type_st {
9850    pub type_: ::std::os::raw::c_int,
9851    pub value: asn1_type_st__bindgen_ty_1,
9852}
9853#[repr(C)]
9854#[derive(Copy, Clone)]
9855pub union asn1_type_st__bindgen_ty_1 {
9856    pub ptr: *mut ::std::os::raw::c_char,
9857    pub boolean: ASN1_BOOLEAN,
9858    pub asn1_string: *mut ASN1_STRING,
9859    pub object: *mut ASN1_OBJECT,
9860    pub integer: *mut ASN1_INTEGER,
9861    pub enumerated: *mut ASN1_ENUMERATED,
9862    pub bit_string: *mut ASN1_BIT_STRING,
9863    pub octet_string: *mut ASN1_OCTET_STRING,
9864    pub printablestring: *mut ASN1_PRINTABLESTRING,
9865    pub t61string: *mut ASN1_T61STRING,
9866    pub ia5string: *mut ASN1_IA5STRING,
9867    pub generalstring: *mut ASN1_GENERALSTRING,
9868    pub bmpstring: *mut ASN1_BMPSTRING,
9869    pub universalstring: *mut ASN1_UNIVERSALSTRING,
9870    pub utctime: *mut ASN1_UTCTIME,
9871    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
9872    pub visiblestring: *mut ASN1_VISIBLESTRING,
9873    pub utf8string: *mut ASN1_UTF8STRING,
9874    pub set: *mut ASN1_STRING,
9875    pub sequence: *mut ASN1_STRING,
9876    pub asn1_value: *mut ASN1_VALUE,
9877}
9878#[test]
9879fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
9880    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st__bindgen_ty_1> =
9881        ::std::mem::MaybeUninit::uninit();
9882    let ptr = UNINIT.as_ptr();
9883    assert_eq!(
9884        ::std::mem::size_of::<asn1_type_st__bindgen_ty_1>(),
9885        8usize,
9886        "Size of asn1_type_st__bindgen_ty_1"
9887    );
9888    assert_eq!(
9889        ::std::mem::align_of::<asn1_type_st__bindgen_ty_1>(),
9890        8usize,
9891        "Alignment of asn1_type_st__bindgen_ty_1"
9892    );
9893    assert_eq!(
9894        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
9895        0usize,
9896        "Offset of field: asn1_type_st__bindgen_ty_1::ptr"
9897    );
9898    assert_eq!(
9899        unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize },
9900        0usize,
9901        "Offset of field: asn1_type_st__bindgen_ty_1::boolean"
9902    );
9903    assert_eq!(
9904        unsafe { ::std::ptr::addr_of!((*ptr).asn1_string) as usize - ptr as usize },
9905        0usize,
9906        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_string"
9907    );
9908    assert_eq!(
9909        unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize },
9910        0usize,
9911        "Offset of field: asn1_type_st__bindgen_ty_1::object"
9912    );
9913    assert_eq!(
9914        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
9915        0usize,
9916        "Offset of field: asn1_type_st__bindgen_ty_1::integer"
9917    );
9918    assert_eq!(
9919        unsafe { ::std::ptr::addr_of!((*ptr).enumerated) as usize - ptr as usize },
9920        0usize,
9921        "Offset of field: asn1_type_st__bindgen_ty_1::enumerated"
9922    );
9923    assert_eq!(
9924        unsafe { ::std::ptr::addr_of!((*ptr).bit_string) as usize - ptr as usize },
9925        0usize,
9926        "Offset of field: asn1_type_st__bindgen_ty_1::bit_string"
9927    );
9928    assert_eq!(
9929        unsafe { ::std::ptr::addr_of!((*ptr).octet_string) as usize - ptr as usize },
9930        0usize,
9931        "Offset of field: asn1_type_st__bindgen_ty_1::octet_string"
9932    );
9933    assert_eq!(
9934        unsafe { ::std::ptr::addr_of!((*ptr).printablestring) as usize - ptr as usize },
9935        0usize,
9936        "Offset of field: asn1_type_st__bindgen_ty_1::printablestring"
9937    );
9938    assert_eq!(
9939        unsafe { ::std::ptr::addr_of!((*ptr).t61string) as usize - ptr as usize },
9940        0usize,
9941        "Offset of field: asn1_type_st__bindgen_ty_1::t61string"
9942    );
9943    assert_eq!(
9944        unsafe { ::std::ptr::addr_of!((*ptr).ia5string) as usize - ptr as usize },
9945        0usize,
9946        "Offset of field: asn1_type_st__bindgen_ty_1::ia5string"
9947    );
9948    assert_eq!(
9949        unsafe { ::std::ptr::addr_of!((*ptr).generalstring) as usize - ptr as usize },
9950        0usize,
9951        "Offset of field: asn1_type_st__bindgen_ty_1::generalstring"
9952    );
9953    assert_eq!(
9954        unsafe { ::std::ptr::addr_of!((*ptr).bmpstring) as usize - ptr as usize },
9955        0usize,
9956        "Offset of field: asn1_type_st__bindgen_ty_1::bmpstring"
9957    );
9958    assert_eq!(
9959        unsafe { ::std::ptr::addr_of!((*ptr).universalstring) as usize - ptr as usize },
9960        0usize,
9961        "Offset of field: asn1_type_st__bindgen_ty_1::universalstring"
9962    );
9963    assert_eq!(
9964        unsafe { ::std::ptr::addr_of!((*ptr).utctime) as usize - ptr as usize },
9965        0usize,
9966        "Offset of field: asn1_type_st__bindgen_ty_1::utctime"
9967    );
9968    assert_eq!(
9969        unsafe { ::std::ptr::addr_of!((*ptr).generalizedtime) as usize - ptr as usize },
9970        0usize,
9971        "Offset of field: asn1_type_st__bindgen_ty_1::generalizedtime"
9972    );
9973    assert_eq!(
9974        unsafe { ::std::ptr::addr_of!((*ptr).visiblestring) as usize - ptr as usize },
9975        0usize,
9976        "Offset of field: asn1_type_st__bindgen_ty_1::visiblestring"
9977    );
9978    assert_eq!(
9979        unsafe { ::std::ptr::addr_of!((*ptr).utf8string) as usize - ptr as usize },
9980        0usize,
9981        "Offset of field: asn1_type_st__bindgen_ty_1::utf8string"
9982    );
9983    assert_eq!(
9984        unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize },
9985        0usize,
9986        "Offset of field: asn1_type_st__bindgen_ty_1::set"
9987    );
9988    assert_eq!(
9989        unsafe { ::std::ptr::addr_of!((*ptr).sequence) as usize - ptr as usize },
9990        0usize,
9991        "Offset of field: asn1_type_st__bindgen_ty_1::sequence"
9992    );
9993    assert_eq!(
9994        unsafe { ::std::ptr::addr_of!((*ptr).asn1_value) as usize - ptr as usize },
9995        0usize,
9996        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_value"
9997    );
9998}
9999impl Default for asn1_type_st__bindgen_ty_1 {
10000    fn default() -> Self {
10001        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10002        unsafe {
10003            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10004            s.assume_init()
10005        }
10006    }
10007}
10008#[test]
10009fn bindgen_test_layout_asn1_type_st() {
10010    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st> = ::std::mem::MaybeUninit::uninit();
10011    let ptr = UNINIT.as_ptr();
10012    assert_eq!(
10013        ::std::mem::size_of::<asn1_type_st>(),
10014        16usize,
10015        "Size of asn1_type_st"
10016    );
10017    assert_eq!(
10018        ::std::mem::align_of::<asn1_type_st>(),
10019        8usize,
10020        "Alignment of asn1_type_st"
10021    );
10022    assert_eq!(
10023        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
10024        0usize,
10025        "Offset of field: asn1_type_st::type_"
10026    );
10027    assert_eq!(
10028        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10029        8usize,
10030        "Offset of field: asn1_type_st::value"
10031    );
10032}
10033impl Default for asn1_type_st {
10034    fn default() -> Self {
10035        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10036        unsafe {
10037            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10038            s.assume_init()
10039        }
10040    }
10041}
10042#[repr(C)]
10043#[derive(Debug, Copy, Clone)]
10044pub struct stack_st_ASN1_TYPE {
10045    _unused: [u8; 0],
10046}
10047pub type sk_ASN1_TYPE_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
10048pub type sk_ASN1_TYPE_copy_func =
10049    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
10050pub type sk_ASN1_TYPE_cmp_func = ::std::option::Option<
10051    unsafe extern "C" fn(
10052        arg1: *const *const ASN1_TYPE,
10053        arg2: *const *const ASN1_TYPE,
10054    ) -> ::std::os::raw::c_int,
10055>;
10056pub type sk_ASN1_TYPE_delete_if_func = ::std::option::Option<
10057    unsafe extern "C" fn(
10058        arg1: *mut ASN1_TYPE,
10059        arg2: *mut ::std::os::raw::c_void,
10060    ) -> ::std::os::raw::c_int,
10061>;
10062extern "C" {
10063    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_new"]
10064    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
10065}
10066extern "C" {
10067    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_free"]
10068    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
10069}
10070extern "C" {
10071    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_TYPE"]
10072    pub fn d2i_ASN1_TYPE(
10073        out: *mut *mut ASN1_TYPE,
10074        inp: *mut *const u8,
10075        len: ::std::os::raw::c_long,
10076    ) -> *mut ASN1_TYPE;
10077}
10078extern "C" {
10079    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_TYPE"]
10080    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::std::os::raw::c_int;
10081}
10082extern "C" {
10083    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ANY_it"]
10084    pub static ASN1_ANY_it: ASN1_ITEM;
10085}
10086extern "C" {
10087    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_get"]
10088    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10089}
10090extern "C" {
10091    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_set"]
10092    pub fn ASN1_TYPE_set(
10093        a: *mut ASN1_TYPE,
10094        type_: ::std::os::raw::c_int,
10095        value: *mut ::std::os::raw::c_void,
10096    );
10097}
10098extern "C" {
10099    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_set1"]
10100    pub fn ASN1_TYPE_set1(
10101        a: *mut ASN1_TYPE,
10102        type_: ::std::os::raw::c_int,
10103        value: *const ::std::os::raw::c_void,
10104    ) -> ::std::os::raw::c_int;
10105}
10106extern "C" {
10107    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TYPE_cmp"]
10108    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10109}
10110pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
10111extern "C" {
10112    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_SEQUENCE_ANY"]
10113    pub fn d2i_ASN1_SEQUENCE_ANY(
10114        out: *mut *mut ASN1_SEQUENCE_ANY,
10115        inp: *mut *const u8,
10116        len: ::std::os::raw::c_long,
10117    ) -> *mut ASN1_SEQUENCE_ANY;
10118}
10119extern "C" {
10120    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_SEQUENCE_ANY"]
10121    pub fn i2d_ASN1_SEQUENCE_ANY(
10122        in_: *const ASN1_SEQUENCE_ANY,
10123        outp: *mut *mut u8,
10124    ) -> ::std::os::raw::c_int;
10125}
10126extern "C" {
10127    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_SET_ANY"]
10128    pub fn d2i_ASN1_SET_ANY(
10129        out: *mut *mut ASN1_SEQUENCE_ANY,
10130        inp: *mut *const u8,
10131        len: ::std::os::raw::c_long,
10132    ) -> *mut ASN1_SEQUENCE_ANY;
10133}
10134extern "C" {
10135    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_SET_ANY"]
10136    pub fn i2d_ASN1_SET_ANY(
10137        in_: *const ASN1_SEQUENCE_ANY,
10138        outp: *mut *mut u8,
10139    ) -> ::std::os::raw::c_int;
10140}
10141extern "C" {
10142    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_UTCTIME_print"]
10143    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
10144}
10145extern "C" {
10146    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_GENERALIZEDTIME_print"]
10147    pub fn ASN1_GENERALIZEDTIME_print(
10148        out: *mut BIO,
10149        a: *const ASN1_GENERALIZEDTIME,
10150    ) -> ::std::os::raw::c_int;
10151}
10152extern "C" {
10153    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_TIME_print"]
10154    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
10155}
10156extern "C" {
10157    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_print"]
10158    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
10159}
10160extern "C" {
10161    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_print_ex"]
10162    pub fn ASN1_STRING_print_ex(
10163        out: *mut BIO,
10164        str_: *const ASN1_STRING,
10165        flags: ::std::os::raw::c_ulong,
10166    ) -> ::std::os::raw::c_int;
10167}
10168extern "C" {
10169    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_print_ex_fp"]
10170    pub fn ASN1_STRING_print_ex_fp(
10171        fp: *mut FILE,
10172        str_: *const ASN1_STRING,
10173        flags: ::std::os::raw::c_ulong,
10174    ) -> ::std::os::raw::c_int;
10175}
10176extern "C" {
10177    #[link_name = "\u{1}aws_lc_0_38_0_a2i_ASN1_INTEGER"]
10178    pub fn a2i_ASN1_INTEGER(
10179        bp: *mut BIO,
10180        bs: *mut ASN1_INTEGER,
10181        buf: *mut ::std::os::raw::c_char,
10182        size: ::std::os::raw::c_int,
10183    ) -> ::std::os::raw::c_int;
10184}
10185extern "C" {
10186    #[link_name = "\u{1}aws_lc_0_38_0_i2a_ASN1_INTEGER"]
10187    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
10188}
10189extern "C" {
10190    #[link_name = "\u{1}aws_lc_0_38_0_i2a_ASN1_ENUMERATED"]
10191    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_int;
10192}
10193extern "C" {
10194    #[link_name = "\u{1}aws_lc_0_38_0_i2a_ASN1_OBJECT"]
10195    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
10196}
10197extern "C" {
10198    #[link_name = "\u{1}aws_lc_0_38_0_i2a_ASN1_STRING"]
10199    pub fn i2a_ASN1_STRING(
10200        bp: *mut BIO,
10201        a: *const ASN1_STRING,
10202        type_: ::std::os::raw::c_int,
10203    ) -> ::std::os::raw::c_int;
10204}
10205extern "C" {
10206    #[link_name = "\u{1}aws_lc_0_38_0_i2t_ASN1_OBJECT"]
10207    pub fn i2t_ASN1_OBJECT(
10208        buf: *mut ::std::os::raw::c_char,
10209        buf_len: ::std::os::raw::c_int,
10210        a: *const ASN1_OBJECT,
10211    ) -> ::std::os::raw::c_int;
10212}
10213extern "C" {
10214    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_get_object"]
10215    pub fn ASN1_get_object(
10216        inp: *mut *const ::std::os::raw::c_uchar,
10217        out_length: *mut ::std::os::raw::c_long,
10218        out_tag: *mut ::std::os::raw::c_int,
10219        out_class: *mut ::std::os::raw::c_int,
10220        max_len: ::std::os::raw::c_long,
10221    ) -> ::std::os::raw::c_int;
10222}
10223extern "C" {
10224    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_put_object"]
10225    pub fn ASN1_put_object(
10226        outp: *mut *mut ::std::os::raw::c_uchar,
10227        constructed: ::std::os::raw::c_int,
10228        length: ::std::os::raw::c_int,
10229        tag: ::std::os::raw::c_int,
10230        xclass: ::std::os::raw::c_int,
10231    );
10232}
10233extern "C" {
10234    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_put_eoc"]
10235    pub fn ASN1_put_eoc(outp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
10236}
10237extern "C" {
10238    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_object_size"]
10239    pub fn ASN1_object_size(
10240        constructed: ::std::os::raw::c_int,
10241        length: ::std::os::raw::c_int,
10242        tag: ::std::os::raw::c_int,
10243    ) -> ::std::os::raw::c_int;
10244}
10245extern "C" {
10246    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLE_new"]
10247    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
10248}
10249extern "C" {
10250    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLE_free"]
10251    pub fn ASN1_PRINTABLE_free(str_: *mut ASN1_STRING);
10252}
10253extern "C" {
10254    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ASN1_PRINTABLE"]
10255    pub fn d2i_ASN1_PRINTABLE(
10256        out: *mut *mut ASN1_STRING,
10257        inp: *mut *const u8,
10258        len: ::std::os::raw::c_long,
10259    ) -> *mut ASN1_STRING;
10260}
10261extern "C" {
10262    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ASN1_PRINTABLE"]
10263    pub fn i2d_ASN1_PRINTABLE(in_: *const ASN1_STRING, outp: *mut *mut u8)
10264        -> ::std::os::raw::c_int;
10265}
10266extern "C" {
10267    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_PRINTABLE_it"]
10268    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
10269}
10270extern "C" {
10271    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_set"]
10272    pub fn ASN1_INTEGER_set(
10273        a: *mut ASN1_INTEGER,
10274        v: ::std::os::raw::c_long,
10275    ) -> ::std::os::raw::c_int;
10276}
10277extern "C" {
10278    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_set"]
10279    pub fn ASN1_ENUMERATED_set(
10280        a: *mut ASN1_ENUMERATED,
10281        v: ::std::os::raw::c_long,
10282    ) -> ::std::os::raw::c_int;
10283}
10284extern "C" {
10285    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_INTEGER_get"]
10286    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
10287}
10288extern "C" {
10289    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_ENUMERATED_get"]
10290    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_long;
10291}
10292extern "C" {
10293    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_set_default_mask"]
10294    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
10295}
10296extern "C" {
10297    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_set_default_mask_asc"]
10298    pub fn ASN1_STRING_set_default_mask_asc(
10299        p: *const ::std::os::raw::c_char,
10300    ) -> ::std::os::raw::c_int;
10301}
10302extern "C" {
10303    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_get_default_mask"]
10304    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
10305}
10306extern "C" {
10307    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_STRING_TABLE_cleanup"]
10308    pub fn ASN1_STRING_TABLE_cleanup();
10309}
10310pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
10311#[repr(C)]
10312#[derive(Debug, Copy, Clone)]
10313pub struct ASN1_TLC_st {
10314    _unused: [u8; 0],
10315}
10316pub type ASN1_TLC = ASN1_TLC_st;
10317#[repr(C)]
10318#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10319pub struct ASN1_TEMPLATE_st {
10320    pub flags: u32,
10321    pub tag: ::std::os::raw::c_int,
10322    pub offset: ::std::os::raw::c_ulong,
10323    pub field_name: *const ::std::os::raw::c_char,
10324    pub item: *const ASN1_ITEM_st,
10325}
10326#[test]
10327fn bindgen_test_layout_ASN1_TEMPLATE_st() {
10328    const UNINIT: ::std::mem::MaybeUninit<ASN1_TEMPLATE_st> = ::std::mem::MaybeUninit::uninit();
10329    let ptr = UNINIT.as_ptr();
10330    assert_eq!(
10331        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
10332        32usize,
10333        "Size of ASN1_TEMPLATE_st"
10334    );
10335    assert_eq!(
10336        ::std::mem::align_of::<ASN1_TEMPLATE_st>(),
10337        8usize,
10338        "Alignment of ASN1_TEMPLATE_st"
10339    );
10340    assert_eq!(
10341        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10342        0usize,
10343        "Offset of field: ASN1_TEMPLATE_st::flags"
10344    );
10345    assert_eq!(
10346        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
10347        4usize,
10348        "Offset of field: ASN1_TEMPLATE_st::tag"
10349    );
10350    assert_eq!(
10351        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10352        8usize,
10353        "Offset of field: ASN1_TEMPLATE_st::offset"
10354    );
10355    assert_eq!(
10356        unsafe { ::std::ptr::addr_of!((*ptr).field_name) as usize - ptr as usize },
10357        16usize,
10358        "Offset of field: ASN1_TEMPLATE_st::field_name"
10359    );
10360    assert_eq!(
10361        unsafe { ::std::ptr::addr_of!((*ptr).item) as usize - ptr as usize },
10362        24usize,
10363        "Offset of field: ASN1_TEMPLATE_st::item"
10364    );
10365}
10366impl Default for ASN1_TEMPLATE_st {
10367    fn default() -> Self {
10368        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10369        unsafe {
10370            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10371            s.assume_init()
10372        }
10373    }
10374}
10375pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
10376pub type ASN1_ADB = ASN1_ADB_st;
10377#[repr(C)]
10378#[derive(Debug, Copy, Clone)]
10379pub struct asn1_must_be_null_st {
10380    _unused: [u8; 0],
10381}
10382pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st;
10383#[repr(C)]
10384#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10385pub struct ASN1_ADB_st {
10386    pub flags: u32,
10387    pub offset: ::std::os::raw::c_ulong,
10388    pub unused: *mut ASN1_MUST_BE_NULL,
10389    pub tbl: *const ASN1_ADB_TABLE,
10390    pub tblcount: ::std::os::raw::c_long,
10391    pub default_tt: *const ASN1_TEMPLATE,
10392    pub null_tt: *const ASN1_TEMPLATE,
10393}
10394#[test]
10395fn bindgen_test_layout_ASN1_ADB_st() {
10396    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_st> = ::std::mem::MaybeUninit::uninit();
10397    let ptr = UNINIT.as_ptr();
10398    assert_eq!(
10399        ::std::mem::size_of::<ASN1_ADB_st>(),
10400        56usize,
10401        "Size of ASN1_ADB_st"
10402    );
10403    assert_eq!(
10404        ::std::mem::align_of::<ASN1_ADB_st>(),
10405        8usize,
10406        "Alignment of ASN1_ADB_st"
10407    );
10408    assert_eq!(
10409        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10410        0usize,
10411        "Offset of field: ASN1_ADB_st::flags"
10412    );
10413    assert_eq!(
10414        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10415        8usize,
10416        "Offset of field: ASN1_ADB_st::offset"
10417    );
10418    assert_eq!(
10419        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
10420        16usize,
10421        "Offset of field: ASN1_ADB_st::unused"
10422    );
10423    assert_eq!(
10424        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
10425        24usize,
10426        "Offset of field: ASN1_ADB_st::tbl"
10427    );
10428    assert_eq!(
10429        unsafe { ::std::ptr::addr_of!((*ptr).tblcount) as usize - ptr as usize },
10430        32usize,
10431        "Offset of field: ASN1_ADB_st::tblcount"
10432    );
10433    assert_eq!(
10434        unsafe { ::std::ptr::addr_of!((*ptr).default_tt) as usize - ptr as usize },
10435        40usize,
10436        "Offset of field: ASN1_ADB_st::default_tt"
10437    );
10438    assert_eq!(
10439        unsafe { ::std::ptr::addr_of!((*ptr).null_tt) as usize - ptr as usize },
10440        48usize,
10441        "Offset of field: ASN1_ADB_st::null_tt"
10442    );
10443}
10444impl Default for ASN1_ADB_st {
10445    fn default() -> Self {
10446        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10447        unsafe {
10448            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10449            s.assume_init()
10450        }
10451    }
10452}
10453#[repr(C)]
10454#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10455pub struct ASN1_ADB_TABLE_st {
10456    pub value: ::std::os::raw::c_int,
10457    pub tt: ASN1_TEMPLATE,
10458}
10459#[test]
10460fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
10461    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_TABLE_st> = ::std::mem::MaybeUninit::uninit();
10462    let ptr = UNINIT.as_ptr();
10463    assert_eq!(
10464        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
10465        40usize,
10466        "Size of ASN1_ADB_TABLE_st"
10467    );
10468    assert_eq!(
10469        ::std::mem::align_of::<ASN1_ADB_TABLE_st>(),
10470        8usize,
10471        "Alignment of ASN1_ADB_TABLE_st"
10472    );
10473    assert_eq!(
10474        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10475        0usize,
10476        "Offset of field: ASN1_ADB_TABLE_st::value"
10477    );
10478    assert_eq!(
10479        unsafe { ::std::ptr::addr_of!((*ptr).tt) as usize - ptr as usize },
10480        8usize,
10481        "Offset of field: ASN1_ADB_TABLE_st::tt"
10482    );
10483}
10484impl Default for ASN1_ADB_TABLE_st {
10485    fn default() -> Self {
10486        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10487        unsafe {
10488            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10489            s.assume_init()
10490        }
10491    }
10492}
10493#[repr(C)]
10494#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10495pub struct ASN1_ITEM_st {
10496    pub itype: ::std::os::raw::c_char,
10497    pub utype: ::std::os::raw::c_int,
10498    pub templates: *const ASN1_TEMPLATE,
10499    pub tcount: ::std::os::raw::c_long,
10500    pub funcs: *const ::std::os::raw::c_void,
10501    pub size: ::std::os::raw::c_long,
10502    pub sname: *const ::std::os::raw::c_char,
10503}
10504#[test]
10505fn bindgen_test_layout_ASN1_ITEM_st() {
10506    const UNINIT: ::std::mem::MaybeUninit<ASN1_ITEM_st> = ::std::mem::MaybeUninit::uninit();
10507    let ptr = UNINIT.as_ptr();
10508    assert_eq!(
10509        ::std::mem::size_of::<ASN1_ITEM_st>(),
10510        48usize,
10511        "Size of ASN1_ITEM_st"
10512    );
10513    assert_eq!(
10514        ::std::mem::align_of::<ASN1_ITEM_st>(),
10515        8usize,
10516        "Alignment of ASN1_ITEM_st"
10517    );
10518    assert_eq!(
10519        unsafe { ::std::ptr::addr_of!((*ptr).itype) as usize - ptr as usize },
10520        0usize,
10521        "Offset of field: ASN1_ITEM_st::itype"
10522    );
10523    assert_eq!(
10524        unsafe { ::std::ptr::addr_of!((*ptr).utype) as usize - ptr as usize },
10525        4usize,
10526        "Offset of field: ASN1_ITEM_st::utype"
10527    );
10528    assert_eq!(
10529        unsafe { ::std::ptr::addr_of!((*ptr).templates) as usize - ptr as usize },
10530        8usize,
10531        "Offset of field: ASN1_ITEM_st::templates"
10532    );
10533    assert_eq!(
10534        unsafe { ::std::ptr::addr_of!((*ptr).tcount) as usize - ptr as usize },
10535        16usize,
10536        "Offset of field: ASN1_ITEM_st::tcount"
10537    );
10538    assert_eq!(
10539        unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize },
10540        24usize,
10541        "Offset of field: ASN1_ITEM_st::funcs"
10542    );
10543    assert_eq!(
10544        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
10545        32usize,
10546        "Offset of field: ASN1_ITEM_st::size"
10547    );
10548    assert_eq!(
10549        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
10550        40usize,
10551        "Offset of field: ASN1_ITEM_st::sname"
10552    );
10553}
10554impl Default for ASN1_ITEM_st {
10555    fn default() -> Self {
10556        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10557        unsafe {
10558            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10559            s.assume_init()
10560        }
10561    }
10562}
10563pub type ASN1_new_func = ::std::option::Option<unsafe extern "C" fn() -> *mut ASN1_VALUE>;
10564pub type ASN1_free_func = ::std::option::Option<unsafe extern "C" fn(a: *mut ASN1_VALUE)>;
10565pub type ASN1_d2i_func = ::std::option::Option<
10566    unsafe extern "C" fn(
10567        a: *mut *mut ASN1_VALUE,
10568        in_: *mut *const ::std::os::raw::c_uchar,
10569        length: ::std::os::raw::c_long,
10570    ) -> *mut ASN1_VALUE,
10571>;
10572pub type ASN1_i2d_func = ::std::option::Option<
10573    unsafe extern "C" fn(
10574        a: *mut ASN1_VALUE,
10575        in_: *mut *mut ::std::os::raw::c_uchar,
10576    ) -> ::std::os::raw::c_int,
10577>;
10578pub type ASN1_ex_d2i = ::std::option::Option<
10579    unsafe extern "C" fn(
10580        pval: *mut *mut ASN1_VALUE,
10581        in_: *mut *const ::std::os::raw::c_uchar,
10582        len: ::std::os::raw::c_long,
10583        it: *const ASN1_ITEM,
10584        tag: ::std::os::raw::c_int,
10585        aclass: ::std::os::raw::c_int,
10586        opt: ::std::os::raw::c_char,
10587        ctx: *mut ASN1_TLC,
10588    ) -> ::std::os::raw::c_int,
10589>;
10590pub type ASN1_ex_i2d = ::std::option::Option<
10591    unsafe extern "C" fn(
10592        pval: *mut *mut ASN1_VALUE,
10593        out: *mut *mut ::std::os::raw::c_uchar,
10594        it: *const ASN1_ITEM,
10595        tag: ::std::os::raw::c_int,
10596        aclass: ::std::os::raw::c_int,
10597    ) -> ::std::os::raw::c_int,
10598>;
10599pub type ASN1_ex_new_func = ::std::option::Option<
10600    unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM) -> ::std::os::raw::c_int,
10601>;
10602pub type ASN1_ex_free_func =
10603    ::std::option::Option<unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM)>;
10604pub type ASN1_ex_print_func = ::std::option::Option<
10605    unsafe extern "C" fn(
10606        out: *mut BIO,
10607        pval: *mut *mut ASN1_VALUE,
10608        indent: ::std::os::raw::c_int,
10609        fname: *const ::std::os::raw::c_char,
10610        pctx: *const ASN1_PCTX,
10611    ) -> ::std::os::raw::c_int,
10612>;
10613#[repr(C)]
10614#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10615pub struct ASN1_EXTERN_FUNCS_st {
10616    pub app_data: *mut ::std::os::raw::c_void,
10617    pub asn1_ex_new: ASN1_ex_new_func,
10618    pub asn1_ex_free: ASN1_ex_free_func,
10619    pub asn1_ex_d2i: ASN1_ex_d2i,
10620    pub asn1_ex_i2d: ASN1_ex_i2d,
10621    pub asn1_ex_print: ASN1_ex_print_func,
10622}
10623#[test]
10624fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st() {
10625    const UNINIT: ::std::mem::MaybeUninit<ASN1_EXTERN_FUNCS_st> = ::std::mem::MaybeUninit::uninit();
10626    let ptr = UNINIT.as_ptr();
10627    assert_eq!(
10628        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
10629        48usize,
10630        "Size of ASN1_EXTERN_FUNCS_st"
10631    );
10632    assert_eq!(
10633        ::std::mem::align_of::<ASN1_EXTERN_FUNCS_st>(),
10634        8usize,
10635        "Alignment of ASN1_EXTERN_FUNCS_st"
10636    );
10637    assert_eq!(
10638        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10639        0usize,
10640        "Offset of field: ASN1_EXTERN_FUNCS_st::app_data"
10641    );
10642    assert_eq!(
10643        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_new) as usize - ptr as usize },
10644        8usize,
10645        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_new"
10646    );
10647    assert_eq!(
10648        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_free) as usize - ptr as usize },
10649        16usize,
10650        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_free"
10651    );
10652    assert_eq!(
10653        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_d2i) as usize - ptr as usize },
10654        24usize,
10655        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_d2i"
10656    );
10657    assert_eq!(
10658        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_i2d) as usize - ptr as usize },
10659        32usize,
10660        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_i2d"
10661    );
10662    assert_eq!(
10663        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_print) as usize - ptr as usize },
10664        40usize,
10665        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_print"
10666    );
10667}
10668impl Default for ASN1_EXTERN_FUNCS_st {
10669    fn default() -> Self {
10670        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10671        unsafe {
10672            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10673            s.assume_init()
10674        }
10675    }
10676}
10677pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st;
10678pub type ASN1_aux_cb = ::std::option::Option<
10679    unsafe extern "C" fn(
10680        operation: ::std::os::raw::c_int,
10681        in_: *mut *mut ASN1_VALUE,
10682        it: *const ASN1_ITEM,
10683        exarg: *mut ::std::os::raw::c_void,
10684    ) -> ::std::os::raw::c_int,
10685>;
10686#[repr(C)]
10687#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10688pub struct ASN1_AUX_st {
10689    pub app_data: *mut ::std::os::raw::c_void,
10690    pub flags: u32,
10691    pub ref_offset: ::std::os::raw::c_int,
10692    pub asn1_cb: ASN1_aux_cb,
10693    pub enc_offset: ::std::os::raw::c_int,
10694}
10695#[test]
10696fn bindgen_test_layout_ASN1_AUX_st() {
10697    const UNINIT: ::std::mem::MaybeUninit<ASN1_AUX_st> = ::std::mem::MaybeUninit::uninit();
10698    let ptr = UNINIT.as_ptr();
10699    assert_eq!(
10700        ::std::mem::size_of::<ASN1_AUX_st>(),
10701        32usize,
10702        "Size of ASN1_AUX_st"
10703    );
10704    assert_eq!(
10705        ::std::mem::align_of::<ASN1_AUX_st>(),
10706        8usize,
10707        "Alignment of ASN1_AUX_st"
10708    );
10709    assert_eq!(
10710        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10711        0usize,
10712        "Offset of field: ASN1_AUX_st::app_data"
10713    );
10714    assert_eq!(
10715        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10716        8usize,
10717        "Offset of field: ASN1_AUX_st::flags"
10718    );
10719    assert_eq!(
10720        unsafe { ::std::ptr::addr_of!((*ptr).ref_offset) as usize - ptr as usize },
10721        12usize,
10722        "Offset of field: ASN1_AUX_st::ref_offset"
10723    );
10724    assert_eq!(
10725        unsafe { ::std::ptr::addr_of!((*ptr).asn1_cb) as usize - ptr as usize },
10726        16usize,
10727        "Offset of field: ASN1_AUX_st::asn1_cb"
10728    );
10729    assert_eq!(
10730        unsafe { ::std::ptr::addr_of!((*ptr).enc_offset) as usize - ptr as usize },
10731        24usize,
10732        "Offset of field: ASN1_AUX_st::enc_offset"
10733    );
10734}
10735impl Default for ASN1_AUX_st {
10736    fn default() -> Self {
10737        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10738        unsafe {
10739            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10740            s.assume_init()
10741        }
10742    }
10743}
10744pub type ASN1_AUX = ASN1_AUX_st;
10745extern "C" {
10746    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_SEQUENCE_it"]
10747    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
10748}
10749#[repr(C)]
10750#[derive(Debug, Copy, Clone)]
10751pub struct stack_st_ASN1_VALUE {
10752    _unused: [u8; 0],
10753}
10754pub type sk_ASN1_VALUE_free_func =
10755    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
10756pub type sk_ASN1_VALUE_copy_func =
10757    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
10758pub type sk_ASN1_VALUE_cmp_func = ::std::option::Option<
10759    unsafe extern "C" fn(
10760        arg1: *const *const ASN1_VALUE,
10761        arg2: *const *const ASN1_VALUE,
10762    ) -> ::std::os::raw::c_int,
10763>;
10764pub type sk_ASN1_VALUE_delete_if_func = ::std::option::Option<
10765    unsafe extern "C" fn(
10766        arg1: *mut ASN1_VALUE,
10767        arg2: *mut ::std::os::raw::c_void,
10768    ) -> ::std::os::raw::c_int,
10769>;
10770extern "C" {
10771    #[doc = " @brief Base64 encodes bytes from `src` into `dst`.\n\n @details\n Base64 encodes `src_len` bytes from `src` and writes the\n result to `dst` with a trailing `NULL`.\n\n @param [out] dst    Base64 encoded value\n @param [in] src     Bytes to encode\n @param [in] src_len Number of bytes to encode\n\n @return The number of bytes written, not including the trailing `NULL`"]
10772    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncodeBlock"]
10773    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
10774}
10775extern "C" {
10776    #[doc = " @brief Calculates the number of bytes needed to encode an input using Base64.\n\n @details\n Sets `*out_len` to the number of bytes that will be needed to call\n #EVP_EncodeBlock on an input of length `len`. `*out_len` includes the final\n `NULL` that #EVP_EncodeBlock writes.\n\n @param [out] out_len Number of bytes needed to Base64 encode a source\n @param [in] len      Source length\n\n @retval 1 Success\n @retval 0 Error"]
10777    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncodedLength"]
10778    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10779}
10780extern "C" {
10781    #[doc = " @brief Sets the maximum number of bytes need to store a decoded Base64 input.\n\n @param [out] out_len Maximum number of bytes to store decoded input\n @param [in] len      Base64 formatted input length\n\n @retval 1 Success\n @retval 0 `len` is not a valid length for a base64-encoded string"]
10782    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecodedLength"]
10783    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10784}
10785extern "C" {
10786    #[doc = " @brief Decodes specified number of Base64 formatted bytes to output buffer.\n\n @details\n Decodes `in_len` bytes from base64 and writes `*out_len` bytes to `out`. If\n `*out_len` doesn't have enough bytes for the maximum output size, the\n operation fails.\n\n @param [out] out     Decoded output\n @param [out] out_len Number of bytes written to `out`\n @param [in] max_out  Length of `out`\n @param [in] in       Base64 input buffer\n @param [in] in_len   Number of bytes to decode from `in`\n\n @retval 1 Success\n @retval 0 Error"]
10787    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecodeBase64"]
10788    pub fn EVP_DecodeBase64(
10789        out: *mut u8,
10790        out_len: *mut usize,
10791        max_out: usize,
10792        in_: *const u8,
10793        in_len: usize,
10794    ) -> ::std::os::raw::c_int;
10795}
10796extern "C" {
10797    #[doc = " @brief Returns a newly-allocated EVP_ENCODE_CTX.\n\n @details\n The caller must release the result with #EVP_ENCODE_CTX_free when\n done.\n\n @returns Pointer to newly allocated EVP_ENCODE_CTX or `NULL` on error\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10798    #[link_name = "\u{1}aws_lc_0_38_0_EVP_ENCODE_CTX_new"]
10799    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
10800}
10801extern "C" {
10802    #[doc = " @brief Releases memory associated with `ctx`.\n\n @param [in] ctx Pointer to deallocate\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10803    #[link_name = "\u{1}aws_lc_0_38_0_EVP_ENCODE_CTX_free"]
10804    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
10805}
10806extern "C" {
10807    #[doc = " @brief Initialises `*ctx`.\n\n @details\n This is typically stack allocated, for an encoding operation.\n\n @param [in,out] ctx Context to initialize\n\n @warning The encoding operation breaks its output with newlines every 64 characters of output (48 characters of input). Use #EVP_EncodeBlock to encode raw base64.\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10808    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncodeInit"]
10809    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
10810}
10811extern "C" {
10812    #[doc = " @brief Encodes bytes from `in` to Base64 and writes the value to `out`.\n\n @details\n Some state may be contained in `ctx` so #EVP_EncodeFinal must be used to\n flush it before using the encoded data.\n\n @param [in,out] ctx     Encoding context\n @param [out]    out     Base64 encoded value\n @param [out]    out_len Number of bytes written\n @param [in]     in      Input buffer\n @param [in]     in_len  Number of bytes to encode\n\n @retval 1 Success\n @retval 0 Failure or `in_len` was 0\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10813    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncodeUpdate"]
10814    pub fn EVP_EncodeUpdate(
10815        ctx: *mut EVP_ENCODE_CTX,
10816        out: *mut u8,
10817        out_len: *mut ::std::os::raw::c_int,
10818        in_: *const u8,
10819        in_len: usize,
10820    ) -> ::std::os::raw::c_int;
10821}
10822extern "C" {
10823    #[doc = " @brief Flushes any remaining output bytes from `ctx` to `out`.\n\n @param [in,out] ctx     Encoding context\n @param [out]    out     Output buffer\n @param [out]    out_len Number of bytes written to buffer\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10824    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncodeFinal"]
10825    pub fn EVP_EncodeFinal(
10826        ctx: *mut EVP_ENCODE_CTX,
10827        out: *mut u8,
10828        out_len: *mut ::std::os::raw::c_int,
10829    );
10830}
10831extern "C" {
10832    #[doc = " @brief Initialises `*ctx` for a decoding operation.\n\n @details\n This is typically stack allocated.\n\n @param [in,out] ctx Context to initialize\n\n @todo davidben: This isn't a straight-up base64 decode either. Document and/or fix exactly what's going on here; maximum line length and such.\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10833    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecodeInit"]
10834    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
10835}
10836extern "C" {
10837    #[doc = " @brief Decodes bytes from `in` and writes the decoded data to `out`.\n\n @details\n Some state may be contained in `ctx` so #EVP_DecodeFinal must be used to\n flush it before using the decoded data.\n\n @param [in,out] ctx     Decoding context\n @param [out]    out     Decoded bytes\n @param [out]    out_len Number of bytes written\n @param [in]     in      Input buffer\n @param [in]     in_len  Number of bytes to decode\n\n @retval -1 Error\n @retval 0 The line was short (i.e., it was the last line)\n @retval 1 A full line of input was processed\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10838    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecodeUpdate"]
10839    pub fn EVP_DecodeUpdate(
10840        ctx: *mut EVP_ENCODE_CTX,
10841        out: *mut u8,
10842        out_len: *mut ::std::os::raw::c_int,
10843        in_: *const u8,
10844        in_len: usize,
10845    ) -> ::std::os::raw::c_int;
10846}
10847extern "C" {
10848    #[doc = " @brief Flushes any remaining output bytes from `ctx` to `out`.\n\n @param [in,out] ctx Decoding context\n @param [out]    out Output buffer\n @param [out]    out_len Number of bytes written to buffer\n\n @retval 1 Success\n @retval -1 Error\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10849    #[link_name = "\u{1}aws_lc_0_38_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    #[doc = " @brief Decodes Base64 bytes from `src` and writes value to `dst`.\n\n @param [out] dst Decoded bytes\n @param [in] src  Base64 encoded bytes\n @param [in] src_len Number of bytes to decode\n\n @returns Number of bytes written or -1 on error\n\n @warning `EVP_DecodeBlock`'s return value does not take padding into account. It also strips leading whitespace and trailing whitespace and minuses.\n\n @deprecated OpenSSL provides a streaming base64 implementation, however its behavior is very specific to PEM. It is also very lenient of invalid input. Use of any of these functions is thus deprecated."]
10858    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecodeBlock"]
10859    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
10860}
10861#[doc = " @struct evp_encode_ctx_st\n Encoding Context"]
10862#[repr(C)]
10863#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10864pub struct evp_encode_ctx_st {
10865    #[doc = " @brief Number of valid bytes\n\n @details\n When encoding, `data` will be filled and encoded as a lump. When decoding,\n only the first four bytes of `data` will be used."]
10866    pub data_used: ::std::os::raw::c_uint,
10867    #[doc = " @brief Encoded or decoded data."]
10868    pub data: [u8; 48usize],
10869    #[doc = " @brief Indicates that the end of the base64 data has been seen.\n\n @details\n Only used when decoding. Only whitespace can follow."]
10870    pub eof_seen: ::std::os::raw::c_char,
10871    #[doc = " @brief indicates that invalid base64 data was found.\n\n @details\n This will gitcause all future calls to fail."]
10872    pub error_encountered: ::std::os::raw::c_char,
10873}
10874#[test]
10875fn bindgen_test_layout_evp_encode_ctx_st() {
10876    const UNINIT: ::std::mem::MaybeUninit<evp_encode_ctx_st> = ::std::mem::MaybeUninit::uninit();
10877    let ptr = UNINIT.as_ptr();
10878    assert_eq!(
10879        ::std::mem::size_of::<evp_encode_ctx_st>(),
10880        56usize,
10881        "Size of evp_encode_ctx_st"
10882    );
10883    assert_eq!(
10884        ::std::mem::align_of::<evp_encode_ctx_st>(),
10885        4usize,
10886        "Alignment of evp_encode_ctx_st"
10887    );
10888    assert_eq!(
10889        unsafe { ::std::ptr::addr_of!((*ptr).data_used) as usize - ptr as usize },
10890        0usize,
10891        "Offset of field: evp_encode_ctx_st::data_used"
10892    );
10893    assert_eq!(
10894        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
10895        4usize,
10896        "Offset of field: evp_encode_ctx_st::data"
10897    );
10898    assert_eq!(
10899        unsafe { ::std::ptr::addr_of!((*ptr).eof_seen) as usize - ptr as usize },
10900        52usize,
10901        "Offset of field: evp_encode_ctx_st::eof_seen"
10902    );
10903    assert_eq!(
10904        unsafe { ::std::ptr::addr_of!((*ptr).error_encountered) as usize - ptr as usize },
10905        53usize,
10906        "Offset of field: evp_encode_ctx_st::error_encountered"
10907    );
10908}
10909impl Default for evp_encode_ctx_st {
10910    fn default() -> Self {
10911        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10912        unsafe {
10913            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10914            s.assume_init()
10915        }
10916    }
10917}
10918#[repr(C)]
10919#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10920pub struct blake2b_state_st {
10921    pub h: [u64; 8usize],
10922    pub t_low: u64,
10923    pub t_high: u64,
10924    pub block: [u8; 128usize],
10925    pub block_used: usize,
10926}
10927#[test]
10928fn bindgen_test_layout_blake2b_state_st() {
10929    const UNINIT: ::std::mem::MaybeUninit<blake2b_state_st> = ::std::mem::MaybeUninit::uninit();
10930    let ptr = UNINIT.as_ptr();
10931    assert_eq!(
10932        ::std::mem::size_of::<blake2b_state_st>(),
10933        216usize,
10934        "Size of blake2b_state_st"
10935    );
10936    assert_eq!(
10937        ::std::mem::align_of::<blake2b_state_st>(),
10938        8usize,
10939        "Alignment of blake2b_state_st"
10940    );
10941    assert_eq!(
10942        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
10943        0usize,
10944        "Offset of field: blake2b_state_st::h"
10945    );
10946    assert_eq!(
10947        unsafe { ::std::ptr::addr_of!((*ptr).t_low) as usize - ptr as usize },
10948        64usize,
10949        "Offset of field: blake2b_state_st::t_low"
10950    );
10951    assert_eq!(
10952        unsafe { ::std::ptr::addr_of!((*ptr).t_high) as usize - ptr as usize },
10953        72usize,
10954        "Offset of field: blake2b_state_st::t_high"
10955    );
10956    assert_eq!(
10957        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
10958        80usize,
10959        "Offset of field: blake2b_state_st::block"
10960    );
10961    assert_eq!(
10962        unsafe { ::std::ptr::addr_of!((*ptr).block_used) as usize - ptr as usize },
10963        208usize,
10964        "Offset of field: blake2b_state_st::block_used"
10965    );
10966}
10967impl Default for blake2b_state_st {
10968    fn default() -> Self {
10969        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10970        unsafe {
10971            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10972            s.assume_init()
10973        }
10974    }
10975}
10976extern "C" {
10977    #[link_name = "\u{1}aws_lc_0_38_0_BLAKE2B256_Init"]
10978    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
10979}
10980extern "C" {
10981    #[link_name = "\u{1}aws_lc_0_38_0_BLAKE2B256_Update"]
10982    pub fn BLAKE2B256_Update(
10983        b2b: *mut BLAKE2B_CTX,
10984        data: *const ::std::os::raw::c_void,
10985        len: usize,
10986    );
10987}
10988extern "C" {
10989    #[link_name = "\u{1}aws_lc_0_38_0_BLAKE2B256_Final"]
10990    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
10991}
10992extern "C" {
10993    #[link_name = "\u{1}aws_lc_0_38_0_BLAKE2B256"]
10994    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
10995}
10996#[repr(C)]
10997#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10998pub struct bf_key_st {
10999    pub P: [u32; 18usize],
11000    pub S: [u32; 1024usize],
11001}
11002#[test]
11003fn bindgen_test_layout_bf_key_st() {
11004    const UNINIT: ::std::mem::MaybeUninit<bf_key_st> = ::std::mem::MaybeUninit::uninit();
11005    let ptr = UNINIT.as_ptr();
11006    assert_eq!(
11007        ::std::mem::size_of::<bf_key_st>(),
11008        4168usize,
11009        "Size of bf_key_st"
11010    );
11011    assert_eq!(
11012        ::std::mem::align_of::<bf_key_st>(),
11013        4usize,
11014        "Alignment of bf_key_st"
11015    );
11016    assert_eq!(
11017        unsafe { ::std::ptr::addr_of!((*ptr).P) as usize - ptr as usize },
11018        0usize,
11019        "Offset of field: bf_key_st::P"
11020    );
11021    assert_eq!(
11022        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
11023        72usize,
11024        "Offset of field: bf_key_st::S"
11025    );
11026}
11027impl Default for bf_key_st {
11028    fn default() -> Self {
11029        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11030        unsafe {
11031            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11032            s.assume_init()
11033        }
11034    }
11035}
11036pub type BF_KEY = bf_key_st;
11037extern "C" {
11038    #[link_name = "\u{1}aws_lc_0_38_0_BF_set_key"]
11039    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
11040}
11041extern "C" {
11042    #[link_name = "\u{1}aws_lc_0_38_0_BF_encrypt"]
11043    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
11044}
11045extern "C" {
11046    #[link_name = "\u{1}aws_lc_0_38_0_BF_decrypt"]
11047    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
11048}
11049extern "C" {
11050    #[link_name = "\u{1}aws_lc_0_38_0_BF_ecb_encrypt"]
11051    pub fn BF_ecb_encrypt(
11052        in_: *const u8,
11053        out: *mut u8,
11054        key: *const BF_KEY,
11055        enc: ::std::os::raw::c_int,
11056    );
11057}
11058extern "C" {
11059    #[link_name = "\u{1}aws_lc_0_38_0_BF_cbc_encrypt"]
11060    pub fn BF_cbc_encrypt(
11061        in_: *const u8,
11062        out: *mut u8,
11063        length: usize,
11064        schedule: *const BF_KEY,
11065        ivec: *mut u8,
11066        enc: ::std::os::raw::c_int,
11067    );
11068}
11069extern "C" {
11070    #[link_name = "\u{1}aws_lc_0_38_0_BF_cfb64_encrypt"]
11071    pub fn BF_cfb64_encrypt(
11072        in_: *const u8,
11073        out: *mut u8,
11074        length: usize,
11075        schedule: *const BF_KEY,
11076        ivec: *mut u8,
11077        num: *mut ::std::os::raw::c_int,
11078        encrypt: ::std::os::raw::c_int,
11079    );
11080}
11081extern "C" {
11082    #[link_name = "\u{1}aws_lc_0_38_0_BF_ofb64_encrypt"]
11083    pub fn BF_ofb64_encrypt(
11084        in_: *const u8,
11085        out: *mut u8,
11086        length: usize,
11087        schedule: *const BF_KEY,
11088        ivec: *mut u8,
11089        num: *mut ::std::os::raw::c_int,
11090    );
11091}
11092#[repr(C)]
11093#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11094pub struct cbs_st {
11095    pub data: *const u8,
11096    pub len: usize,
11097}
11098#[test]
11099fn bindgen_test_layout_cbs_st() {
11100    const UNINIT: ::std::mem::MaybeUninit<cbs_st> = ::std::mem::MaybeUninit::uninit();
11101    let ptr = UNINIT.as_ptr();
11102    assert_eq!(::std::mem::size_of::<cbs_st>(), 16usize, "Size of cbs_st");
11103    assert_eq!(
11104        ::std::mem::align_of::<cbs_st>(),
11105        8usize,
11106        "Alignment of cbs_st"
11107    );
11108    assert_eq!(
11109        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
11110        0usize,
11111        "Offset of field: cbs_st::data"
11112    );
11113    assert_eq!(
11114        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11115        8usize,
11116        "Offset of field: cbs_st::len"
11117    );
11118}
11119impl Default for cbs_st {
11120    fn default() -> Self {
11121        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11122        unsafe {
11123            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11124            s.assume_init()
11125        }
11126    }
11127}
11128extern "C" {
11129    #[link_name = "\u{1}aws_lc_0_38_0_CBS_init"]
11130    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
11131}
11132extern "C" {
11133    #[link_name = "\u{1}aws_lc_0_38_0_CBS_skip"]
11134    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11135}
11136extern "C" {
11137    #[link_name = "\u{1}aws_lc_0_38_0_CBS_data"]
11138    pub fn CBS_data(cbs: *const CBS) -> *const u8;
11139}
11140extern "C" {
11141    #[link_name = "\u{1}aws_lc_0_38_0_CBS_len"]
11142    pub fn CBS_len(cbs: *const CBS) -> usize;
11143}
11144extern "C" {
11145    #[link_name = "\u{1}aws_lc_0_38_0_CBS_stow"]
11146    pub fn CBS_stow(
11147        cbs: *const CBS,
11148        out_ptr: *mut *mut u8,
11149        out_len: *mut usize,
11150    ) -> ::std::os::raw::c_int;
11151}
11152extern "C" {
11153    #[link_name = "\u{1}aws_lc_0_38_0_CBS_strdup"]
11154    pub fn CBS_strdup(
11155        cbs: *const CBS,
11156        out_ptr: *mut *mut ::std::os::raw::c_char,
11157    ) -> ::std::os::raw::c_int;
11158}
11159extern "C" {
11160    #[link_name = "\u{1}aws_lc_0_38_0_CBS_contains_zero_byte"]
11161    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
11162}
11163extern "C" {
11164    #[link_name = "\u{1}aws_lc_0_38_0_CBS_mem_equal"]
11165    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11166}
11167extern "C" {
11168    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u8"]
11169    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11170}
11171extern "C" {
11172    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u16"]
11173    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11174}
11175extern "C" {
11176    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u16le"]
11177    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11178}
11179extern "C" {
11180    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u24"]
11181    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11182}
11183extern "C" {
11184    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u32"]
11185    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11186}
11187extern "C" {
11188    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u32le"]
11189    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11190}
11191extern "C" {
11192    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u64"]
11193    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11194}
11195extern "C" {
11196    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u64le"]
11197    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11198}
11199extern "C" {
11200    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_last_u8"]
11201    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11202}
11203extern "C" {
11204    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_bytes"]
11205    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11206}
11207extern "C" {
11208    #[link_name = "\u{1}aws_lc_0_38_0_CBS_copy_bytes"]
11209    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
11210}
11211extern "C" {
11212    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u8_length_prefixed"]
11213    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11214}
11215extern "C" {
11216    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u16_length_prefixed"]
11217    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11218}
11219extern "C" {
11220    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u24_length_prefixed"]
11221    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11222}
11223extern "C" {
11224    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_until_first"]
11225    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::std::os::raw::c_int;
11226}
11227extern "C" {
11228    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_u64_decimal"]
11229    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11230}
11231extern "C" {
11232    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_asn1"]
11233    pub fn CBS_get_asn1(
11234        cbs: *mut CBS,
11235        out: *mut CBS,
11236        tag_value: CBS_ASN1_TAG,
11237    ) -> ::std::os::raw::c_int;
11238}
11239extern "C" {
11240    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_asn1_element"]
11241    pub fn CBS_get_asn1_element(
11242        cbs: *mut CBS,
11243        out: *mut CBS,
11244        tag_value: CBS_ASN1_TAG,
11245    ) -> ::std::os::raw::c_int;
11246}
11247extern "C" {
11248    #[link_name = "\u{1}aws_lc_0_38_0_CBS_peek_asn1_tag"]
11249    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::std::os::raw::c_int;
11250}
11251extern "C" {
11252    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_any_asn1"]
11253    pub fn CBS_get_any_asn1(
11254        cbs: *mut CBS,
11255        out: *mut CBS,
11256        out_tag: *mut CBS_ASN1_TAG,
11257    ) -> ::std::os::raw::c_int;
11258}
11259extern "C" {
11260    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_any_asn1_element"]
11261    pub fn CBS_get_any_asn1_element(
11262        cbs: *mut CBS,
11263        out: *mut CBS,
11264        out_tag: *mut CBS_ASN1_TAG,
11265        out_header_len: *mut usize,
11266    ) -> ::std::os::raw::c_int;
11267}
11268extern "C" {
11269    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_any_ber_asn1_element"]
11270    pub fn CBS_get_any_ber_asn1_element(
11271        cbs: *mut CBS,
11272        out: *mut CBS,
11273        out_tag: *mut CBS_ASN1_TAG,
11274        out_header_len: *mut usize,
11275        out_ber_found: *mut ::std::os::raw::c_int,
11276        out_indefinite: *mut ::std::os::raw::c_int,
11277    ) -> ::std::os::raw::c_int;
11278}
11279extern "C" {
11280    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_asn1_uint64"]
11281    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11282}
11283extern "C" {
11284    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_asn1_int64"]
11285    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::std::os::raw::c_int;
11286}
11287extern "C" {
11288    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_asn1_bool"]
11289    pub fn CBS_get_asn1_bool(
11290        cbs: *mut CBS,
11291        out: *mut ::std::os::raw::c_int,
11292    ) -> ::std::os::raw::c_int;
11293}
11294extern "C" {
11295    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_optional_asn1"]
11296    pub fn CBS_get_optional_asn1(
11297        cbs: *mut CBS,
11298        out: *mut CBS,
11299        out_present: *mut ::std::os::raw::c_int,
11300        tag: CBS_ASN1_TAG,
11301    ) -> ::std::os::raw::c_int;
11302}
11303extern "C" {
11304    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_optional_asn1_octet_string"]
11305    pub fn CBS_get_optional_asn1_octet_string(
11306        cbs: *mut CBS,
11307        out: *mut CBS,
11308        out_present: *mut ::std::os::raw::c_int,
11309        tag: CBS_ASN1_TAG,
11310    ) -> ::std::os::raw::c_int;
11311}
11312extern "C" {
11313    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_optional_asn1_uint64"]
11314    pub fn CBS_get_optional_asn1_uint64(
11315        cbs: *mut CBS,
11316        out: *mut u64,
11317        tag: CBS_ASN1_TAG,
11318        default_value: u64,
11319    ) -> ::std::os::raw::c_int;
11320}
11321extern "C" {
11322    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_optional_asn1_bool"]
11323    pub fn CBS_get_optional_asn1_bool(
11324        cbs: *mut CBS,
11325        out: *mut ::std::os::raw::c_int,
11326        tag: CBS_ASN1_TAG,
11327        default_value: ::std::os::raw::c_int,
11328    ) -> ::std::os::raw::c_int;
11329}
11330extern "C" {
11331    #[link_name = "\u{1}aws_lc_0_38_0_CBS_is_valid_asn1_bitstring"]
11332    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
11333}
11334extern "C" {
11335    #[link_name = "\u{1}aws_lc_0_38_0_CBS_asn1_bitstring_has_bit"]
11336    pub fn CBS_asn1_bitstring_has_bit(
11337        cbs: *const CBS,
11338        bit: ::std::os::raw::c_uint,
11339    ) -> ::std::os::raw::c_int;
11340}
11341extern "C" {
11342    #[link_name = "\u{1}aws_lc_0_38_0_CBS_is_valid_asn1_integer"]
11343    pub fn CBS_is_valid_asn1_integer(
11344        cbs: *const CBS,
11345        out_is_negative: *mut ::std::os::raw::c_int,
11346    ) -> ::std::os::raw::c_int;
11347}
11348extern "C" {
11349    #[link_name = "\u{1}aws_lc_0_38_0_CBS_is_unsigned_asn1_integer"]
11350    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::std::os::raw::c_int;
11351}
11352extern "C" {
11353    #[link_name = "\u{1}aws_lc_0_38_0_CBS_is_valid_asn1_oid"]
11354    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::std::os::raw::c_int;
11355}
11356extern "C" {
11357    #[link_name = "\u{1}aws_lc_0_38_0_CBS_asn1_oid_to_text"]
11358    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
11359}
11360extern "C" {
11361    #[link_name = "\u{1}aws_lc_0_38_0_CBS_parse_generalized_time"]
11362    pub fn CBS_parse_generalized_time(
11363        cbs: *const CBS,
11364        out_tm: *mut tm,
11365        allow_timezone_offset: ::std::os::raw::c_int,
11366    ) -> ::std::os::raw::c_int;
11367}
11368extern "C" {
11369    #[link_name = "\u{1}aws_lc_0_38_0_CBS_parse_utc_time"]
11370    pub fn CBS_parse_utc_time(
11371        cbs: *const CBS,
11372        out_tm: *mut tm,
11373        allow_timezone_offset: ::std::os::raw::c_int,
11374    ) -> ::std::os::raw::c_int;
11375}
11376extern "C" {
11377    #[link_name = "\u{1}aws_lc_0_38_0_CBS_get_optional_asn1_int64"]
11378    pub fn CBS_get_optional_asn1_int64(
11379        cbs: *mut CBS,
11380        out: *mut i64,
11381        tag: CBS_ASN1_TAG,
11382        default_value: i64,
11383    ) -> ::std::os::raw::c_int;
11384}
11385#[repr(C)]
11386#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11387pub struct cbb_buffer_st {
11388    pub buf: *mut u8,
11389    pub len: usize,
11390    pub cap: usize,
11391    pub _bitfield_align_1: [u8; 0],
11392    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11393    pub __bindgen_padding_0: [u8; 7usize],
11394}
11395#[test]
11396fn bindgen_test_layout_cbb_buffer_st() {
11397    const UNINIT: ::std::mem::MaybeUninit<cbb_buffer_st> = ::std::mem::MaybeUninit::uninit();
11398    let ptr = UNINIT.as_ptr();
11399    assert_eq!(
11400        ::std::mem::size_of::<cbb_buffer_st>(),
11401        32usize,
11402        "Size of cbb_buffer_st"
11403    );
11404    assert_eq!(
11405        ::std::mem::align_of::<cbb_buffer_st>(),
11406        8usize,
11407        "Alignment of cbb_buffer_st"
11408    );
11409    assert_eq!(
11410        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
11411        0usize,
11412        "Offset of field: cbb_buffer_st::buf"
11413    );
11414    assert_eq!(
11415        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11416        8usize,
11417        "Offset of field: cbb_buffer_st::len"
11418    );
11419    assert_eq!(
11420        unsafe { ::std::ptr::addr_of!((*ptr).cap) as usize - ptr as usize },
11421        16usize,
11422        "Offset of field: cbb_buffer_st::cap"
11423    );
11424}
11425impl Default for cbb_buffer_st {
11426    fn default() -> Self {
11427        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11428        unsafe {
11429            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11430            s.assume_init()
11431        }
11432    }
11433}
11434impl cbb_buffer_st {
11435    #[inline]
11436    pub fn can_resize(&self) -> ::std::os::raw::c_uint {
11437        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11438    }
11439    #[inline]
11440    pub fn set_can_resize(&mut self, val: ::std::os::raw::c_uint) {
11441        unsafe {
11442            let val: u32 = ::std::mem::transmute(val);
11443            self._bitfield_1.set(0usize, 1u8, val as u64)
11444        }
11445    }
11446    #[inline]
11447    pub unsafe fn can_resize_raw(this: *const Self) -> ::std::os::raw::c_uint {
11448        unsafe {
11449            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11450                ::std::ptr::addr_of!((*this)._bitfield_1),
11451                0usize,
11452                1u8,
11453            ) as u32)
11454        }
11455    }
11456    #[inline]
11457    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11458        unsafe {
11459            let val: u32 = ::std::mem::transmute(val);
11460            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11461                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11462                0usize,
11463                1u8,
11464                val as u64,
11465            )
11466        }
11467    }
11468    #[inline]
11469    pub fn error(&self) -> ::std::os::raw::c_uint {
11470        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11471    }
11472    #[inline]
11473    pub fn set_error(&mut self, val: ::std::os::raw::c_uint) {
11474        unsafe {
11475            let val: u32 = ::std::mem::transmute(val);
11476            self._bitfield_1.set(1usize, 1u8, val as u64)
11477        }
11478    }
11479    #[inline]
11480    pub unsafe fn error_raw(this: *const Self) -> ::std::os::raw::c_uint {
11481        unsafe {
11482            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11483                ::std::ptr::addr_of!((*this)._bitfield_1),
11484                1usize,
11485                1u8,
11486            ) as u32)
11487        }
11488    }
11489    #[inline]
11490    pub unsafe fn set_error_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11491        unsafe {
11492            let val: u32 = ::std::mem::transmute(val);
11493            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11494                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11495                1usize,
11496                1u8,
11497                val as u64,
11498            )
11499        }
11500    }
11501    #[inline]
11502    pub fn new_bitfield_1(
11503        can_resize: ::std::os::raw::c_uint,
11504        error: ::std::os::raw::c_uint,
11505    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11506        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11507        __bindgen_bitfield_unit.set(0usize, 1u8, {
11508            let can_resize: u32 = unsafe { ::std::mem::transmute(can_resize) };
11509            can_resize as u64
11510        });
11511        __bindgen_bitfield_unit.set(1usize, 1u8, {
11512            let error: u32 = unsafe { ::std::mem::transmute(error) };
11513            error as u64
11514        });
11515        __bindgen_bitfield_unit
11516    }
11517}
11518#[repr(C)]
11519#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11520pub struct cbb_child_st {
11521    pub base: *mut cbb_buffer_st,
11522    pub offset: usize,
11523    pub pending_len_len: u8,
11524    pub _bitfield_align_1: [u8; 0],
11525    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11526    pub __bindgen_padding_0: [u16; 3usize],
11527}
11528#[test]
11529fn bindgen_test_layout_cbb_child_st() {
11530    const UNINIT: ::std::mem::MaybeUninit<cbb_child_st> = ::std::mem::MaybeUninit::uninit();
11531    let ptr = UNINIT.as_ptr();
11532    assert_eq!(
11533        ::std::mem::size_of::<cbb_child_st>(),
11534        24usize,
11535        "Size of cbb_child_st"
11536    );
11537    assert_eq!(
11538        ::std::mem::align_of::<cbb_child_st>(),
11539        8usize,
11540        "Alignment of cbb_child_st"
11541    );
11542    assert_eq!(
11543        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11544        0usize,
11545        "Offset of field: cbb_child_st::base"
11546    );
11547    assert_eq!(
11548        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
11549        8usize,
11550        "Offset of field: cbb_child_st::offset"
11551    );
11552    assert_eq!(
11553        unsafe { ::std::ptr::addr_of!((*ptr).pending_len_len) as usize - ptr as usize },
11554        16usize,
11555        "Offset of field: cbb_child_st::pending_len_len"
11556    );
11557}
11558impl Default for cbb_child_st {
11559    fn default() -> Self {
11560        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11561        unsafe {
11562            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11563            s.assume_init()
11564        }
11565    }
11566}
11567impl cbb_child_st {
11568    #[inline]
11569    pub fn pending_is_asn1(&self) -> ::std::os::raw::c_uint {
11570        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11571    }
11572    #[inline]
11573    pub fn set_pending_is_asn1(&mut self, val: ::std::os::raw::c_uint) {
11574        unsafe {
11575            let val: u32 = ::std::mem::transmute(val);
11576            self._bitfield_1.set(0usize, 1u8, val as u64)
11577        }
11578    }
11579    #[inline]
11580    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::std::os::raw::c_uint {
11581        unsafe {
11582            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11583                ::std::ptr::addr_of!((*this)._bitfield_1),
11584                0usize,
11585                1u8,
11586            ) as u32)
11587        }
11588    }
11589    #[inline]
11590    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11591        unsafe {
11592            let val: u32 = ::std::mem::transmute(val);
11593            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11594                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11595                0usize,
11596                1u8,
11597                val as u64,
11598            )
11599        }
11600    }
11601    #[inline]
11602    pub fn new_bitfield_1(
11603        pending_is_asn1: ::std::os::raw::c_uint,
11604    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11605        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11606        __bindgen_bitfield_unit.set(0usize, 1u8, {
11607            let pending_is_asn1: u32 = unsafe { ::std::mem::transmute(pending_is_asn1) };
11608            pending_is_asn1 as u64
11609        });
11610        __bindgen_bitfield_unit
11611    }
11612}
11613#[repr(C)]
11614#[derive(Copy, Clone)]
11615pub struct cbb_st {
11616    pub child: *mut CBB,
11617    pub is_child: ::std::os::raw::c_char,
11618    pub u: cbb_st__bindgen_ty_1,
11619}
11620#[repr(C)]
11621#[derive(Copy, Clone)]
11622pub union cbb_st__bindgen_ty_1 {
11623    pub base: cbb_buffer_st,
11624    pub child: cbb_child_st,
11625}
11626#[test]
11627fn bindgen_test_layout_cbb_st__bindgen_ty_1() {
11628    const UNINIT: ::std::mem::MaybeUninit<cbb_st__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
11629    let ptr = UNINIT.as_ptr();
11630    assert_eq!(
11631        ::std::mem::size_of::<cbb_st__bindgen_ty_1>(),
11632        32usize,
11633        "Size of cbb_st__bindgen_ty_1"
11634    );
11635    assert_eq!(
11636        ::std::mem::align_of::<cbb_st__bindgen_ty_1>(),
11637        8usize,
11638        "Alignment of cbb_st__bindgen_ty_1"
11639    );
11640    assert_eq!(
11641        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11642        0usize,
11643        "Offset of field: cbb_st__bindgen_ty_1::base"
11644    );
11645    assert_eq!(
11646        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11647        0usize,
11648        "Offset of field: cbb_st__bindgen_ty_1::child"
11649    );
11650}
11651impl Default for cbb_st__bindgen_ty_1 {
11652    fn default() -> Self {
11653        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11654        unsafe {
11655            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11656            s.assume_init()
11657        }
11658    }
11659}
11660#[test]
11661fn bindgen_test_layout_cbb_st() {
11662    const UNINIT: ::std::mem::MaybeUninit<cbb_st> = ::std::mem::MaybeUninit::uninit();
11663    let ptr = UNINIT.as_ptr();
11664    assert_eq!(::std::mem::size_of::<cbb_st>(), 48usize, "Size of cbb_st");
11665    assert_eq!(
11666        ::std::mem::align_of::<cbb_st>(),
11667        8usize,
11668        "Alignment of cbb_st"
11669    );
11670    assert_eq!(
11671        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11672        0usize,
11673        "Offset of field: cbb_st::child"
11674    );
11675    assert_eq!(
11676        unsafe { ::std::ptr::addr_of!((*ptr).is_child) as usize - ptr as usize },
11677        8usize,
11678        "Offset of field: cbb_st::is_child"
11679    );
11680    assert_eq!(
11681        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
11682        16usize,
11683        "Offset of field: cbb_st::u"
11684    );
11685}
11686impl Default for cbb_st {
11687    fn default() -> Self {
11688        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11689        unsafe {
11690            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11691            s.assume_init()
11692        }
11693    }
11694}
11695extern "C" {
11696    #[link_name = "\u{1}aws_lc_0_38_0_CBB_zero"]
11697    pub fn CBB_zero(cbb: *mut CBB);
11698}
11699extern "C" {
11700    #[link_name = "\u{1}aws_lc_0_38_0_CBB_init"]
11701    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
11702}
11703extern "C" {
11704    #[link_name = "\u{1}aws_lc_0_38_0_CBB_init_fixed"]
11705    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
11706}
11707extern "C" {
11708    #[link_name = "\u{1}aws_lc_0_38_0_CBB_cleanup"]
11709    pub fn CBB_cleanup(cbb: *mut CBB);
11710}
11711extern "C" {
11712    #[link_name = "\u{1}aws_lc_0_38_0_CBB_finish"]
11713    pub fn CBB_finish(
11714        cbb: *mut CBB,
11715        out_data: *mut *mut u8,
11716        out_len: *mut usize,
11717    ) -> ::std::os::raw::c_int;
11718}
11719extern "C" {
11720    #[link_name = "\u{1}aws_lc_0_38_0_CBB_flush"]
11721    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
11722}
11723extern "C" {
11724    #[link_name = "\u{1}aws_lc_0_38_0_CBB_data"]
11725    pub fn CBB_data(cbb: *const CBB) -> *const u8;
11726}
11727extern "C" {
11728    #[link_name = "\u{1}aws_lc_0_38_0_CBB_len"]
11729    pub fn CBB_len(cbb: *const CBB) -> usize;
11730}
11731extern "C" {
11732    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u8_length_prefixed"]
11733    pub fn CBB_add_u8_length_prefixed(
11734        cbb: *mut CBB,
11735        out_contents: *mut CBB,
11736    ) -> ::std::os::raw::c_int;
11737}
11738extern "C" {
11739    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u16_length_prefixed"]
11740    pub fn CBB_add_u16_length_prefixed(
11741        cbb: *mut CBB,
11742        out_contents: *mut CBB,
11743    ) -> ::std::os::raw::c_int;
11744}
11745extern "C" {
11746    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u24_length_prefixed"]
11747    pub fn CBB_add_u24_length_prefixed(
11748        cbb: *mut CBB,
11749        out_contents: *mut CBB,
11750    ) -> ::std::os::raw::c_int;
11751}
11752extern "C" {
11753    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1"]
11754    pub fn CBB_add_asn1(
11755        cbb: *mut CBB,
11756        out_contents: *mut CBB,
11757        tag: CBS_ASN1_TAG,
11758    ) -> ::std::os::raw::c_int;
11759}
11760extern "C" {
11761    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_bytes"]
11762    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11763}
11764extern "C" {
11765    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_zeros"]
11766    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11767}
11768extern "C" {
11769    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_space"]
11770    pub fn CBB_add_space(
11771        cbb: *mut CBB,
11772        out_data: *mut *mut u8,
11773        len: usize,
11774    ) -> ::std::os::raw::c_int;
11775}
11776extern "C" {
11777    #[link_name = "\u{1}aws_lc_0_38_0_CBB_reserve"]
11778    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
11779}
11780extern "C" {
11781    #[link_name = "\u{1}aws_lc_0_38_0_CBB_did_write"]
11782    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11783}
11784extern "C" {
11785    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u8"]
11786    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
11787}
11788extern "C" {
11789    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u16"]
11790    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11791}
11792extern "C" {
11793    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u16le"]
11794    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11795}
11796extern "C" {
11797    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u24"]
11798    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11799}
11800extern "C" {
11801    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u32"]
11802    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11803}
11804extern "C" {
11805    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u32le"]
11806    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11807}
11808extern "C" {
11809    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u64"]
11810    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11811}
11812extern "C" {
11813    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_u64le"]
11814    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11815}
11816extern "C" {
11817    #[link_name = "\u{1}aws_lc_0_38_0_CBB_discard_child"]
11818    pub fn CBB_discard_child(cbb: *mut CBB);
11819}
11820extern "C" {
11821    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_uint64"]
11822    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11823}
11824extern "C" {
11825    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_uint64_with_tag"]
11826    pub fn CBB_add_asn1_uint64_with_tag(
11827        cbb: *mut CBB,
11828        value: u64,
11829        tag: CBS_ASN1_TAG,
11830    ) -> ::std::os::raw::c_int;
11831}
11832extern "C" {
11833    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_int64"]
11834    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::std::os::raw::c_int;
11835}
11836extern "C" {
11837    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_int64_with_tag"]
11838    pub fn CBB_add_asn1_int64_with_tag(
11839        cbb: *mut CBB,
11840        value: i64,
11841        tag: CBS_ASN1_TAG,
11842    ) -> ::std::os::raw::c_int;
11843}
11844extern "C" {
11845    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_octet_string"]
11846    pub fn CBB_add_asn1_octet_string(
11847        cbb: *mut CBB,
11848        data: *const u8,
11849        data_len: usize,
11850    ) -> ::std::os::raw::c_int;
11851}
11852extern "C" {
11853    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_bool"]
11854    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
11855}
11856extern "C" {
11857    #[link_name = "\u{1}aws_lc_0_38_0_CBB_add_asn1_oid_from_text"]
11858    pub fn CBB_add_asn1_oid_from_text(
11859        cbb: *mut CBB,
11860        text: *const ::std::os::raw::c_char,
11861        len: usize,
11862    ) -> ::std::os::raw::c_int;
11863}
11864extern "C" {
11865    #[link_name = "\u{1}aws_lc_0_38_0_CBB_flush_asn1_set_of"]
11866    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
11867}
11868extern "C" {
11869    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11870}
11871extern "C" {
11872    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11873}
11874extern "C" {
11875    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11876}
11877extern "C" {
11878    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11879}
11880extern "C" {
11881    pub fn CBB_get_utf8_len(u: u32) -> usize;
11882}
11883extern "C" {
11884    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11885}
11886extern "C" {
11887    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11888}
11889extern "C" {
11890    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11891}
11892extern "C" {
11893    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::std::os::raw::c_int;
11894}
11895extern "C" {
11896    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_chacha_20"]
11897    pub fn CRYPTO_chacha_20(
11898        out: *mut u8,
11899        in_: *const u8,
11900        in_len: usize,
11901        key: *const u8,
11902        nonce: *const u8,
11903        counter: u32,
11904    );
11905}
11906extern "C" {
11907    #[link_name = "\u{1}aws_lc_0_38_0_EVP_rc4"]
11908    pub fn EVP_rc4() -> *const EVP_CIPHER;
11909}
11910extern "C" {
11911    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_cbc"]
11912    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
11913}
11914extern "C" {
11915    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ecb"]
11916    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
11917}
11918extern "C" {
11919    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ede"]
11920    pub fn EVP_des_ede() -> *const EVP_CIPHER;
11921}
11922extern "C" {
11923    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ede3"]
11924    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
11925}
11926extern "C" {
11927    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ede_cbc"]
11928    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
11929}
11930extern "C" {
11931    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ede3_cbc"]
11932    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
11933}
11934extern "C" {
11935    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_ecb"]
11936    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
11937}
11938extern "C" {
11939    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cbc"]
11940    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
11941}
11942extern "C" {
11943    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_ctr"]
11944    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
11945}
11946extern "C" {
11947    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_ofb"]
11948    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
11949}
11950extern "C" {
11951    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_ecb"]
11952    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
11953}
11954extern "C" {
11955    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cbc"]
11956    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
11957}
11958extern "C" {
11959    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_ctr"]
11960    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
11961}
11962extern "C" {
11963    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_ofb"]
11964    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
11965}
11966extern "C" {
11967    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_xts"]
11968    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
11969}
11970extern "C" {
11971    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_wrap"]
11972    pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER;
11973}
11974extern "C" {
11975    #[link_name = "\u{1}aws_lc_0_38_0_EVP_enc_null"]
11976    pub fn EVP_enc_null() -> *const EVP_CIPHER;
11977}
11978extern "C" {
11979    #[link_name = "\u{1}aws_lc_0_38_0_EVP_rc2_cbc"]
11980    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
11981}
11982extern "C" {
11983    #[link_name = "\u{1}aws_lc_0_38_0_EVP_rc2_40_cbc"]
11984    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
11985}
11986extern "C" {
11987    #[link_name = "\u{1}aws_lc_0_38_0_EVP_chacha20_poly1305"]
11988    pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER;
11989}
11990extern "C" {
11991    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_cipherbynid"]
11992    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
11993}
11994extern "C" {
11995    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_init"]
11996    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
11997}
11998extern "C" {
11999    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_new"]
12000    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
12001}
12002extern "C" {
12003    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_cleanup"]
12004    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12005}
12006extern "C" {
12007    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_free"]
12008    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
12009}
12010extern "C" {
12011    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_copy"]
12012    pub fn EVP_CIPHER_CTX_copy(
12013        out: *mut EVP_CIPHER_CTX,
12014        in_: *const EVP_CIPHER_CTX,
12015    ) -> ::std::os::raw::c_int;
12016}
12017extern "C" {
12018    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_reset"]
12019    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12020}
12021extern "C" {
12022    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CipherInit_ex"]
12023    pub fn EVP_CipherInit_ex(
12024        ctx: *mut EVP_CIPHER_CTX,
12025        cipher: *const EVP_CIPHER,
12026        engine: *mut ENGINE,
12027        key: *const u8,
12028        iv: *const u8,
12029        enc: ::std::os::raw::c_int,
12030    ) -> ::std::os::raw::c_int;
12031}
12032extern "C" {
12033    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncryptInit_ex"]
12034    pub fn EVP_EncryptInit_ex(
12035        ctx: *mut EVP_CIPHER_CTX,
12036        cipher: *const EVP_CIPHER,
12037        impl_: *mut ENGINE,
12038        key: *const u8,
12039        iv: *const u8,
12040    ) -> ::std::os::raw::c_int;
12041}
12042extern "C" {
12043    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecryptInit_ex"]
12044    pub fn EVP_DecryptInit_ex(
12045        ctx: *mut EVP_CIPHER_CTX,
12046        cipher: *const EVP_CIPHER,
12047        impl_: *mut ENGINE,
12048        key: *const u8,
12049        iv: *const u8,
12050    ) -> ::std::os::raw::c_int;
12051}
12052extern "C" {
12053    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncryptUpdate"]
12054    pub fn EVP_EncryptUpdate(
12055        ctx: *mut EVP_CIPHER_CTX,
12056        out: *mut u8,
12057        out_len: *mut ::std::os::raw::c_int,
12058        in_: *const u8,
12059        in_len: ::std::os::raw::c_int,
12060    ) -> ::std::os::raw::c_int;
12061}
12062extern "C" {
12063    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncryptFinal_ex"]
12064    pub fn EVP_EncryptFinal_ex(
12065        ctx: *mut EVP_CIPHER_CTX,
12066        out: *mut u8,
12067        out_len: *mut ::std::os::raw::c_int,
12068    ) -> ::std::os::raw::c_int;
12069}
12070extern "C" {
12071    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecryptUpdate"]
12072    pub fn EVP_DecryptUpdate(
12073        ctx: *mut EVP_CIPHER_CTX,
12074        out: *mut u8,
12075        out_len: *mut ::std::os::raw::c_int,
12076        in_: *const u8,
12077        in_len: ::std::os::raw::c_int,
12078    ) -> ::std::os::raw::c_int;
12079}
12080extern "C" {
12081    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecryptFinal_ex"]
12082    pub fn EVP_DecryptFinal_ex(
12083        ctx: *mut EVP_CIPHER_CTX,
12084        out: *mut u8,
12085        out_len: *mut ::std::os::raw::c_int,
12086    ) -> ::std::os::raw::c_int;
12087}
12088extern "C" {
12089    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CipherUpdate"]
12090    pub fn EVP_CipherUpdate(
12091        ctx: *mut EVP_CIPHER_CTX,
12092        out: *mut u8,
12093        out_len: *mut ::std::os::raw::c_int,
12094        in_: *const u8,
12095        in_len: ::std::os::raw::c_int,
12096    ) -> ::std::os::raw::c_int;
12097}
12098extern "C" {
12099    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CipherFinal_ex"]
12100    pub fn EVP_CipherFinal_ex(
12101        ctx: *mut EVP_CIPHER_CTX,
12102        out: *mut u8,
12103        out_len: *mut ::std::os::raw::c_int,
12104    ) -> ::std::os::raw::c_int;
12105}
12106extern "C" {
12107    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_cipher"]
12108    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
12109}
12110extern "C" {
12111    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_nid"]
12112    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12113}
12114extern "C" {
12115    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_encrypting"]
12116    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12117}
12118extern "C" {
12119    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_block_size"]
12120    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12121}
12122extern "C" {
12123    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_key_length"]
12124    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12125}
12126extern "C" {
12127    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_iv_length"]
12128    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12129}
12130extern "C" {
12131    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_get_app_data"]
12132    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
12133}
12134extern "C" {
12135    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_set_app_data"]
12136    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
12137}
12138extern "C" {
12139    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_flags"]
12140    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
12141}
12142extern "C" {
12143    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_mode"]
12144    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
12145}
12146extern "C" {
12147    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_ctrl"]
12148    pub fn EVP_CIPHER_CTX_ctrl(
12149        ctx: *mut EVP_CIPHER_CTX,
12150        command: ::std::os::raw::c_int,
12151        arg: ::std::os::raw::c_int,
12152        ptr: *mut ::std::os::raw::c_void,
12153    ) -> ::std::os::raw::c_int;
12154}
12155extern "C" {
12156    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_set_padding"]
12157    pub fn EVP_CIPHER_CTX_set_padding(
12158        ctx: *mut EVP_CIPHER_CTX,
12159        pad: ::std::os::raw::c_int,
12160    ) -> ::std::os::raw::c_int;
12161}
12162extern "C" {
12163    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_set_key_length"]
12164    pub fn EVP_CIPHER_CTX_set_key_length(
12165        ctx: *mut EVP_CIPHER_CTX,
12166        key_len: ::std::os::raw::c_uint,
12167    ) -> ::std::os::raw::c_int;
12168}
12169extern "C" {
12170    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_nid"]
12171    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
12172}
12173extern "C" {
12174    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_name"]
12175    pub fn EVP_CIPHER_name(cipher: *const EVP_CIPHER) -> *const ::std::os::raw::c_char;
12176}
12177extern "C" {
12178    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_block_size"]
12179    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12180}
12181extern "C" {
12182    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_key_length"]
12183    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12184}
12185extern "C" {
12186    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_iv_length"]
12187    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12188}
12189extern "C" {
12190    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_flags"]
12191    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
12192}
12193extern "C" {
12194    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_mode"]
12195    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
12196}
12197extern "C" {
12198    #[link_name = "\u{1}aws_lc_0_38_0_EVP_BytesToKey"]
12199    pub fn EVP_BytesToKey(
12200        type_: *const EVP_CIPHER,
12201        md: *const EVP_MD,
12202        salt: *const u8,
12203        data: *const u8,
12204        data_len: usize,
12205        count: ::std::os::raw::c_uint,
12206        key: *mut u8,
12207        iv: *mut u8,
12208    ) -> ::std::os::raw::c_int;
12209}
12210extern "C" {
12211    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cbc_hmac_sha1"]
12212    pub fn EVP_aes_128_cbc_hmac_sha1() -> *const EVP_CIPHER;
12213}
12214extern "C" {
12215    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cbc_hmac_sha1"]
12216    pub fn EVP_aes_256_cbc_hmac_sha1() -> *const EVP_CIPHER;
12217}
12218extern "C" {
12219    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cbc_hmac_sha256"]
12220    pub fn EVP_aes_128_cbc_hmac_sha256() -> *const EVP_CIPHER;
12221}
12222extern "C" {
12223    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cbc_hmac_sha256"]
12224    pub fn EVP_aes_256_cbc_hmac_sha256() -> *const EVP_CIPHER;
12225}
12226extern "C" {
12227    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CipherInit"]
12228    pub fn EVP_CipherInit(
12229        ctx: *mut EVP_CIPHER_CTX,
12230        cipher: *const EVP_CIPHER,
12231        key: *const u8,
12232        iv: *const u8,
12233        enc: ::std::os::raw::c_int,
12234    ) -> ::std::os::raw::c_int;
12235}
12236extern "C" {
12237    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncryptInit"]
12238    pub fn EVP_EncryptInit(
12239        ctx: *mut EVP_CIPHER_CTX,
12240        cipher: *const EVP_CIPHER,
12241        key: *const u8,
12242        iv: *const u8,
12243    ) -> ::std::os::raw::c_int;
12244}
12245extern "C" {
12246    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecryptInit"]
12247    pub fn EVP_DecryptInit(
12248        ctx: *mut EVP_CIPHER_CTX,
12249        cipher: *const EVP_CIPHER,
12250        key: *const u8,
12251        iv: *const u8,
12252    ) -> ::std::os::raw::c_int;
12253}
12254extern "C" {
12255    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CipherFinal"]
12256    pub fn EVP_CipherFinal(
12257        ctx: *mut EVP_CIPHER_CTX,
12258        out: *mut u8,
12259        out_len: *mut ::std::os::raw::c_int,
12260    ) -> ::std::os::raw::c_int;
12261}
12262extern "C" {
12263    #[link_name = "\u{1}aws_lc_0_38_0_EVP_EncryptFinal"]
12264    pub fn EVP_EncryptFinal(
12265        ctx: *mut EVP_CIPHER_CTX,
12266        out: *mut u8,
12267        out_len: *mut ::std::os::raw::c_int,
12268    ) -> ::std::os::raw::c_int;
12269}
12270extern "C" {
12271    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DecryptFinal"]
12272    pub fn EVP_DecryptFinal(
12273        ctx: *mut EVP_CIPHER_CTX,
12274        out: *mut u8,
12275        out_len: *mut ::std::os::raw::c_int,
12276    ) -> ::std::os::raw::c_int;
12277}
12278extern "C" {
12279    #[link_name = "\u{1}aws_lc_0_38_0_EVP_Cipher"]
12280    pub fn EVP_Cipher(
12281        ctx: *mut EVP_CIPHER_CTX,
12282        out: *mut u8,
12283        in_: *const u8,
12284        in_len: usize,
12285    ) -> ::std::os::raw::c_int;
12286}
12287extern "C" {
12288    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_cipherbyname"]
12289    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
12290}
12291extern "C" {
12292    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_gcm"]
12293    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
12294}
12295extern "C" {
12296    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_gcm"]
12297    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
12298}
12299extern "C" {
12300    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_ccm"]
12301    pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER;
12302}
12303extern "C" {
12304    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_ccm"]
12305    pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER;
12306}
12307extern "C" {
12308    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_ccm"]
12309    pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER;
12310}
12311extern "C" {
12312    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_ecb"]
12313    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
12314}
12315extern "C" {
12316    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_cbc"]
12317    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
12318}
12319extern "C" {
12320    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_ctr"]
12321    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
12322}
12323extern "C" {
12324    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_gcm"]
12325    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
12326}
12327extern "C" {
12328    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_ofb"]
12329    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
12330}
12331extern "C" {
12332    #[link_name = "\u{1}aws_lc_0_38_0_EVP_des_ede3_ecb"]
12333    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
12334}
12335extern "C" {
12336    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cfb128"]
12337    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
12338}
12339extern "C" {
12340    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cfb"]
12341    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
12342}
12343extern "C" {
12344    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cfb1"]
12345    pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
12346}
12347extern "C" {
12348    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_128_cfb8"]
12349    pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
12350}
12351extern "C" {
12352    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_cfb128"]
12353    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
12354}
12355extern "C" {
12356    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_cfb"]
12357    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
12358}
12359extern "C" {
12360    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_cfb1"]
12361    pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER;
12362}
12363extern "C" {
12364    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_192_cfb8"]
12365    pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER;
12366}
12367extern "C" {
12368    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cfb128"]
12369    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
12370}
12371extern "C" {
12372    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cfb"]
12373    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
12374}
12375extern "C" {
12376    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cfb1"]
12377    pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
12378}
12379extern "C" {
12380    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aes_256_cfb8"]
12381    pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
12382}
12383extern "C" {
12384    #[link_name = "\u{1}aws_lc_0_38_0_EVP_bf_ecb"]
12385    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
12386}
12387extern "C" {
12388    #[link_name = "\u{1}aws_lc_0_38_0_EVP_bf_cbc"]
12389    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
12390}
12391extern "C" {
12392    #[link_name = "\u{1}aws_lc_0_38_0_EVP_bf_cfb"]
12393    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
12394}
12395extern "C" {
12396    #[link_name = "\u{1}aws_lc_0_38_0_EVP_bf_cfb64"]
12397    pub fn EVP_bf_cfb64() -> *const EVP_CIPHER;
12398}
12399extern "C" {
12400    #[link_name = "\u{1}aws_lc_0_38_0_EVP_bf_ofb"]
12401    pub fn EVP_bf_ofb() -> *const EVP_CIPHER;
12402}
12403extern "C" {
12404    #[link_name = "\u{1}aws_lc_0_38_0_EVP_cast5_ecb"]
12405    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
12406}
12407extern "C" {
12408    #[link_name = "\u{1}aws_lc_0_38_0_EVP_cast5_cbc"]
12409    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
12410}
12411extern "C" {
12412    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_CTX_set_flags"]
12413    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
12414}
12415extern "C" {
12416    #[link_name = "\u{1}aws_lc_0_38_0_EVP_add_cipher_alias"]
12417    pub fn EVP_add_cipher_alias(
12418        a: *const ::std::os::raw::c_char,
12419        b: *const ::std::os::raw::c_char,
12420    ) -> ::std::os::raw::c_int;
12421}
12422#[repr(C)]
12423#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12424pub struct evp_cipher_ctx_st {
12425    pub cipher: *const EVP_CIPHER,
12426    pub app_data: *mut ::std::os::raw::c_void,
12427    pub cipher_data: *mut ::std::os::raw::c_void,
12428    pub key_len: ::std::os::raw::c_uint,
12429    pub encrypt: ::std::os::raw::c_int,
12430    pub flags: u32,
12431    pub oiv: [u8; 16usize],
12432    pub iv: [u8; 16usize],
12433    pub buf: [u8; 32usize],
12434    pub buf_len: ::std::os::raw::c_int,
12435    pub num: ::std::os::raw::c_uint,
12436    pub final_used: ::std::os::raw::c_int,
12437    pub final_: [u8; 32usize],
12438    pub poisoned: ::std::os::raw::c_int,
12439}
12440#[test]
12441fn bindgen_test_layout_evp_cipher_ctx_st() {
12442    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_ctx_st> = ::std::mem::MaybeUninit::uninit();
12443    let ptr = UNINIT.as_ptr();
12444    assert_eq!(
12445        ::std::mem::size_of::<evp_cipher_ctx_st>(),
12446        152usize,
12447        "Size of evp_cipher_ctx_st"
12448    );
12449    assert_eq!(
12450        ::std::mem::align_of::<evp_cipher_ctx_st>(),
12451        8usize,
12452        "Alignment of evp_cipher_ctx_st"
12453    );
12454    assert_eq!(
12455        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12456        0usize,
12457        "Offset of field: evp_cipher_ctx_st::cipher"
12458    );
12459    assert_eq!(
12460        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
12461        8usize,
12462        "Offset of field: evp_cipher_ctx_st::app_data"
12463    );
12464    assert_eq!(
12465        unsafe { ::std::ptr::addr_of!((*ptr).cipher_data) as usize - ptr as usize },
12466        16usize,
12467        "Offset of field: evp_cipher_ctx_st::cipher_data"
12468    );
12469    assert_eq!(
12470        unsafe { ::std::ptr::addr_of!((*ptr).key_len) as usize - ptr as usize },
12471        24usize,
12472        "Offset of field: evp_cipher_ctx_st::key_len"
12473    );
12474    assert_eq!(
12475        unsafe { ::std::ptr::addr_of!((*ptr).encrypt) as usize - ptr as usize },
12476        28usize,
12477        "Offset of field: evp_cipher_ctx_st::encrypt"
12478    );
12479    assert_eq!(
12480        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
12481        32usize,
12482        "Offset of field: evp_cipher_ctx_st::flags"
12483    );
12484    assert_eq!(
12485        unsafe { ::std::ptr::addr_of!((*ptr).oiv) as usize - ptr as usize },
12486        36usize,
12487        "Offset of field: evp_cipher_ctx_st::oiv"
12488    );
12489    assert_eq!(
12490        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12491        52usize,
12492        "Offset of field: evp_cipher_ctx_st::iv"
12493    );
12494    assert_eq!(
12495        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
12496        68usize,
12497        "Offset of field: evp_cipher_ctx_st::buf"
12498    );
12499    assert_eq!(
12500        unsafe { ::std::ptr::addr_of!((*ptr).buf_len) as usize - ptr as usize },
12501        100usize,
12502        "Offset of field: evp_cipher_ctx_st::buf_len"
12503    );
12504    assert_eq!(
12505        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
12506        104usize,
12507        "Offset of field: evp_cipher_ctx_st::num"
12508    );
12509    assert_eq!(
12510        unsafe { ::std::ptr::addr_of!((*ptr).final_used) as usize - ptr as usize },
12511        108usize,
12512        "Offset of field: evp_cipher_ctx_st::final_used"
12513    );
12514    assert_eq!(
12515        unsafe { ::std::ptr::addr_of!((*ptr).final_) as usize - ptr as usize },
12516        112usize,
12517        "Offset of field: evp_cipher_ctx_st::final_"
12518    );
12519    assert_eq!(
12520        unsafe { ::std::ptr::addr_of!((*ptr).poisoned) as usize - ptr as usize },
12521        144usize,
12522        "Offset of field: evp_cipher_ctx_st::poisoned"
12523    );
12524}
12525impl Default for evp_cipher_ctx_st {
12526    fn default() -> Self {
12527        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12528        unsafe {
12529            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12530            s.assume_init()
12531        }
12532    }
12533}
12534#[repr(C)]
12535#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12536pub struct evp_cipher_info_st {
12537    pub cipher: *const EVP_CIPHER,
12538    pub iv: [::std::os::raw::c_uchar; 16usize],
12539}
12540#[test]
12541fn bindgen_test_layout_evp_cipher_info_st() {
12542    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_info_st> = ::std::mem::MaybeUninit::uninit();
12543    let ptr = UNINIT.as_ptr();
12544    assert_eq!(
12545        ::std::mem::size_of::<evp_cipher_info_st>(),
12546        24usize,
12547        "Size of evp_cipher_info_st"
12548    );
12549    assert_eq!(
12550        ::std::mem::align_of::<evp_cipher_info_st>(),
12551        8usize,
12552        "Alignment of evp_cipher_info_st"
12553    );
12554    assert_eq!(
12555        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12556        0usize,
12557        "Offset of field: evp_cipher_info_st::cipher"
12558    );
12559    assert_eq!(
12560        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12561        8usize,
12562        "Offset of field: evp_cipher_info_st::iv"
12563    );
12564}
12565impl Default for evp_cipher_info_st {
12566    fn default() -> Self {
12567        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12568        unsafe {
12569            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12570            s.assume_init()
12571        }
12572    }
12573}
12574pub type EVP_CIPHER_INFO = evp_cipher_info_st;
12575extern "C" {
12576    #[link_name = "\u{1}aws_lc_0_38_0_AES_CMAC"]
12577    pub fn AES_CMAC(
12578        out: *mut u8,
12579        key: *const u8,
12580        key_len: usize,
12581        in_: *const u8,
12582        in_len: usize,
12583    ) -> ::std::os::raw::c_int;
12584}
12585extern "C" {
12586    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_CTX_new"]
12587    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
12588}
12589extern "C" {
12590    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_CTX_free"]
12591    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
12592}
12593extern "C" {
12594    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_CTX_copy"]
12595    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::std::os::raw::c_int;
12596}
12597extern "C" {
12598    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_Init"]
12599    pub fn CMAC_Init(
12600        ctx: *mut CMAC_CTX,
12601        key: *const ::std::os::raw::c_void,
12602        key_len: usize,
12603        cipher: *const EVP_CIPHER,
12604        engine: *mut ENGINE,
12605    ) -> ::std::os::raw::c_int;
12606}
12607extern "C" {
12608    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_Reset"]
12609    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::std::os::raw::c_int;
12610}
12611extern "C" {
12612    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_Update"]
12613    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::std::os::raw::c_int;
12614}
12615extern "C" {
12616    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_Final"]
12617    pub fn CMAC_Final(
12618        ctx: *mut CMAC_CTX,
12619        out: *mut u8,
12620        out_len: *mut usize,
12621    ) -> ::std::os::raw::c_int;
12622}
12623extern "C" {
12624    #[link_name = "\u{1}aws_lc_0_38_0_CMAC_CTX_get0_cipher_ctx"]
12625    pub fn CMAC_CTX_get0_cipher_ctx(ctx: *mut CMAC_CTX) -> *mut EVP_CIPHER_CTX;
12626}
12627#[repr(C)]
12628#[derive(Debug, Copy, Clone)]
12629pub struct lhash_st {
12630    _unused: [u8; 0],
12631}
12632pub type _LHASH = lhash_st;
12633extern "C" {
12634    #[link_name = "\u{1}aws_lc_0_38_0_lh_doall_arg"]
12635    pub fn lh_doall_arg(
12636        lh: *mut _LHASH,
12637        func: ::std::option::Option<
12638            unsafe extern "C" fn(
12639                arg1: *mut ::std::os::raw::c_void,
12640                arg2: *mut ::std::os::raw::c_void,
12641            ),
12642        >,
12643        arg: *mut ::std::os::raw::c_void,
12644    );
12645}
12646#[repr(C)]
12647#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12648pub struct conf_value_st {
12649    pub section: *mut ::std::os::raw::c_char,
12650    pub name: *mut ::std::os::raw::c_char,
12651    pub value: *mut ::std::os::raw::c_char,
12652}
12653#[test]
12654fn bindgen_test_layout_conf_value_st() {
12655    const UNINIT: ::std::mem::MaybeUninit<conf_value_st> = ::std::mem::MaybeUninit::uninit();
12656    let ptr = UNINIT.as_ptr();
12657    assert_eq!(
12658        ::std::mem::size_of::<conf_value_st>(),
12659        24usize,
12660        "Size of conf_value_st"
12661    );
12662    assert_eq!(
12663        ::std::mem::align_of::<conf_value_st>(),
12664        8usize,
12665        "Alignment of conf_value_st"
12666    );
12667    assert_eq!(
12668        unsafe { ::std::ptr::addr_of!((*ptr).section) as usize - ptr as usize },
12669        0usize,
12670        "Offset of field: conf_value_st::section"
12671    );
12672    assert_eq!(
12673        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
12674        8usize,
12675        "Offset of field: conf_value_st::name"
12676    );
12677    assert_eq!(
12678        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
12679        16usize,
12680        "Offset of field: conf_value_st::value"
12681    );
12682}
12683impl Default for conf_value_st {
12684    fn default() -> Self {
12685        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12686        unsafe {
12687            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12688            s.assume_init()
12689        }
12690    }
12691}
12692#[repr(C)]
12693#[derive(Debug, Copy, Clone)]
12694pub struct stack_st_CONF_VALUE {
12695    _unused: [u8; 0],
12696}
12697pub type sk_CONF_VALUE_free_func =
12698    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
12699pub type sk_CONF_VALUE_copy_func =
12700    ::std::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
12701pub type sk_CONF_VALUE_cmp_func = ::std::option::Option<
12702    unsafe extern "C" fn(
12703        arg1: *const *const CONF_VALUE,
12704        arg2: *const *const CONF_VALUE,
12705    ) -> ::std::os::raw::c_int,
12706>;
12707pub type sk_CONF_VALUE_delete_if_func = ::std::option::Option<
12708    unsafe extern "C" fn(
12709        arg1: *mut CONF_VALUE,
12710        arg2: *mut ::std::os::raw::c_void,
12711    ) -> ::std::os::raw::c_int,
12712>;
12713#[repr(C)]
12714#[derive(Debug, Copy, Clone)]
12715pub struct lhash_st_CONF_VALUE {
12716    _unused: [u8; 0],
12717}
12718#[repr(C)]
12719#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12720pub struct conf_st {
12721    pub data: *mut lhash_st_CONF_VALUE,
12722}
12723#[test]
12724fn bindgen_test_layout_conf_st() {
12725    const UNINIT: ::std::mem::MaybeUninit<conf_st> = ::std::mem::MaybeUninit::uninit();
12726    let ptr = UNINIT.as_ptr();
12727    assert_eq!(::std::mem::size_of::<conf_st>(), 8usize, "Size of conf_st");
12728    assert_eq!(
12729        ::std::mem::align_of::<conf_st>(),
12730        8usize,
12731        "Alignment of conf_st"
12732    );
12733    assert_eq!(
12734        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
12735        0usize,
12736        "Offset of field: conf_st::data"
12737    );
12738}
12739impl Default for conf_st {
12740    fn default() -> Self {
12741        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12742        unsafe {
12743            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12744            s.assume_init()
12745        }
12746    }
12747}
12748extern "C" {
12749    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_new"]
12750    pub fn NCONF_new(method: *mut ::std::os::raw::c_void) -> *mut CONF;
12751}
12752extern "C" {
12753    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_free"]
12754    pub fn NCONF_free(conf: *mut CONF);
12755}
12756extern "C" {
12757    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_load"]
12758    pub fn NCONF_load(
12759        conf: *mut CONF,
12760        filename: *const ::std::os::raw::c_char,
12761        out_error_line: *mut ::std::os::raw::c_long,
12762    ) -> ::std::os::raw::c_int;
12763}
12764extern "C" {
12765    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_load_bio"]
12766    pub fn NCONF_load_bio(
12767        conf: *mut CONF,
12768        bio: *mut BIO,
12769        out_error_line: *mut ::std::os::raw::c_long,
12770    ) -> ::std::os::raw::c_int;
12771}
12772extern "C" {
12773    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_get_section"]
12774    pub fn NCONF_get_section(
12775        conf: *const CONF,
12776        section: *const ::std::os::raw::c_char,
12777    ) -> *const stack_st_CONF_VALUE;
12778}
12779extern "C" {
12780    #[link_name = "\u{1}aws_lc_0_38_0_NCONF_get_string"]
12781    pub fn NCONF_get_string(
12782        conf: *const CONF,
12783        section: *const ::std::os::raw::c_char,
12784        name: *const ::std::os::raw::c_char,
12785    ) -> *const ::std::os::raw::c_char;
12786}
12787extern "C" {
12788    #[link_name = "\u{1}aws_lc_0_38_0_CONF_modules_load_file"]
12789    pub fn CONF_modules_load_file(
12790        filename: *const ::std::os::raw::c_char,
12791        appname: *const ::std::os::raw::c_char,
12792        flags: ::std::os::raw::c_ulong,
12793    ) -> ::std::os::raw::c_int;
12794}
12795extern "C" {
12796    #[link_name = "\u{1}aws_lc_0_38_0_CONF_get1_default_config_file"]
12797    pub fn CONF_get1_default_config_file() -> *mut ::std::os::raw::c_char;
12798}
12799extern "C" {
12800    #[link_name = "\u{1}aws_lc_0_38_0_CONF_modules_free"]
12801    pub fn CONF_modules_free();
12802}
12803extern "C" {
12804    #[link_name = "\u{1}aws_lc_0_38_0_CONF_modules_unload"]
12805    pub fn CONF_modules_unload(all: ::std::os::raw::c_int);
12806}
12807extern "C" {
12808    #[link_name = "\u{1}aws_lc_0_38_0_CONF_modules_finish"]
12809    pub fn CONF_modules_finish();
12810}
12811extern "C" {
12812    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_config"]
12813    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
12814}
12815extern "C" {
12816    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_no_config"]
12817    pub fn OPENSSL_no_config();
12818}
12819extern "C" {
12820    #[link_name = "\u{1}aws_lc_0_38_0_CTR_DRBG_new"]
12821    pub fn CTR_DRBG_new(
12822        entropy: *const u8,
12823        personalization: *const u8,
12824        personalization_len: usize,
12825    ) -> *mut CTR_DRBG_STATE;
12826}
12827extern "C" {
12828    #[link_name = "\u{1}aws_lc_0_38_0_CTR_DRBG_free"]
12829    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
12830}
12831extern "C" {
12832    #[link_name = "\u{1}aws_lc_0_38_0_CTR_DRBG_reseed"]
12833    pub fn CTR_DRBG_reseed(
12834        drbg: *mut CTR_DRBG_STATE,
12835        entropy: *const u8,
12836        additional_data: *const u8,
12837        additional_data_len: usize,
12838    ) -> ::std::os::raw::c_int;
12839}
12840extern "C" {
12841    #[link_name = "\u{1}aws_lc_0_38_0_CTR_DRBG_generate"]
12842    pub fn CTR_DRBG_generate(
12843        drbg: *mut CTR_DRBG_STATE,
12844        out: *mut u8,
12845        out_len: usize,
12846        additional_data: *const u8,
12847        additional_data_len: usize,
12848    ) -> ::std::os::raw::c_int;
12849}
12850extern "C" {
12851    #[link_name = "\u{1}aws_lc_0_38_0_CTR_DRBG_clear"]
12852    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
12853}
12854extern "C" {
12855    #[link_name = "\u{1}aws_lc_0_38_0_X25519_keypair"]
12856    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
12857}
12858extern "C" {
12859    #[link_name = "\u{1}aws_lc_0_38_0_X25519"]
12860    pub fn X25519(
12861        out_shared_key: *mut u8,
12862        private_key: *const u8,
12863        peer_public_value: *const u8,
12864    ) -> ::std::os::raw::c_int;
12865}
12866extern "C" {
12867    #[link_name = "\u{1}aws_lc_0_38_0_X25519_public_from_private"]
12868    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
12869}
12870extern "C" {
12871    #[link_name = "\u{1}aws_lc_0_38_0_ED25519_keypair"]
12872    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
12873}
12874extern "C" {
12875    #[link_name = "\u{1}aws_lc_0_38_0_ED25519_sign"]
12876    pub fn ED25519_sign(
12877        out_sig: *mut u8,
12878        message: *const u8,
12879        message_len: usize,
12880        private_key: *const u8,
12881    ) -> ::std::os::raw::c_int;
12882}
12883extern "C" {
12884    #[link_name = "\u{1}aws_lc_0_38_0_ED25519_verify"]
12885    pub fn ED25519_verify(
12886        message: *const u8,
12887        message_len: usize,
12888        signature: *const u8,
12889        public_key: *const u8,
12890    ) -> ::std::os::raw::c_int;
12891}
12892extern "C" {
12893    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ctx_sign"]
12894    pub fn ED25519ctx_sign(
12895        out_sig: *mut u8,
12896        message: *const u8,
12897        message_len: usize,
12898        private_key: *const u8,
12899        context: *const u8,
12900        context_len: usize,
12901    ) -> ::std::os::raw::c_int;
12902}
12903extern "C" {
12904    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ctx_verify"]
12905    pub fn ED25519ctx_verify(
12906        message: *const u8,
12907        message_len: usize,
12908        signature: *const u8,
12909        public_key: *const u8,
12910        context: *const u8,
12911        context_len: usize,
12912    ) -> ::std::os::raw::c_int;
12913}
12914extern "C" {
12915    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ph_sign"]
12916    pub fn ED25519ph_sign(
12917        out_sig: *mut u8,
12918        message: *const u8,
12919        message_len: usize,
12920        private_key: *const u8,
12921        context: *const u8,
12922        context_len: usize,
12923    ) -> ::std::os::raw::c_int;
12924}
12925extern "C" {
12926    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ph_verify"]
12927    pub fn ED25519ph_verify(
12928        message: *const u8,
12929        message_len: usize,
12930        signature: *const u8,
12931        public_key: *const u8,
12932        context: *const u8,
12933        context_len: usize,
12934    ) -> ::std::os::raw::c_int;
12935}
12936extern "C" {
12937    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ph_sign_digest"]
12938    pub fn ED25519ph_sign_digest(
12939        out_sig: *mut u8,
12940        digest: *const u8,
12941        private_key: *const u8,
12942        context: *const u8,
12943        context_len: usize,
12944    ) -> ::std::os::raw::c_int;
12945}
12946extern "C" {
12947    #[link_name = "\u{1}aws_lc_0_38_0_ED25519ph_verify_digest"]
12948    pub fn ED25519ph_verify_digest(
12949        digest: *const u8,
12950        signature: *const u8,
12951        public_key: *const u8,
12952        context: *const u8,
12953        context_len: usize,
12954    ) -> ::std::os::raw::c_int;
12955}
12956extern "C" {
12957    #[link_name = "\u{1}aws_lc_0_38_0_ED25519_keypair_from_seed"]
12958    pub fn ED25519_keypair_from_seed(
12959        out_public_key: *mut u8,
12960        out_private_key: *mut u8,
12961        seed: *const u8,
12962    );
12963}
12964pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
12965pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
12966pub type spake2_role_t = ::std::os::raw::c_uint;
12967extern "C" {
12968    #[link_name = "\u{1}aws_lc_0_38_0_SPAKE2_CTX_new"]
12969    pub fn SPAKE2_CTX_new(
12970        my_role: spake2_role_t,
12971        my_name: *const u8,
12972        my_name_len: usize,
12973        their_name: *const u8,
12974        their_name_len: usize,
12975    ) -> *mut SPAKE2_CTX;
12976}
12977extern "C" {
12978    #[link_name = "\u{1}aws_lc_0_38_0_SPAKE2_CTX_free"]
12979    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
12980}
12981extern "C" {
12982    #[link_name = "\u{1}aws_lc_0_38_0_SPAKE2_generate_msg"]
12983    pub fn SPAKE2_generate_msg(
12984        ctx: *mut SPAKE2_CTX,
12985        out: *mut u8,
12986        out_len: *mut usize,
12987        max_out_len: usize,
12988        password: *const u8,
12989        password_len: usize,
12990    ) -> ::std::os::raw::c_int;
12991}
12992extern "C" {
12993    #[link_name = "\u{1}aws_lc_0_38_0_SPAKE2_process_msg"]
12994    pub fn SPAKE2_process_msg(
12995        ctx: *mut SPAKE2_CTX,
12996        out_key: *mut u8,
12997        out_key_len: *mut usize,
12998        max_out_key_len: usize,
12999        their_msg: *const u8,
13000        their_msg_len: usize,
13001    ) -> ::std::os::raw::c_int;
13002}
13003#[repr(C)]
13004#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
13005pub struct DES_cblock_st {
13006    pub bytes: [u8; 8usize],
13007}
13008#[test]
13009fn bindgen_test_layout_DES_cblock_st() {
13010    const UNINIT: ::std::mem::MaybeUninit<DES_cblock_st> = ::std::mem::MaybeUninit::uninit();
13011    let ptr = UNINIT.as_ptr();
13012    assert_eq!(
13013        ::std::mem::size_of::<DES_cblock_st>(),
13014        8usize,
13015        "Size of DES_cblock_st"
13016    );
13017    assert_eq!(
13018        ::std::mem::align_of::<DES_cblock_st>(),
13019        1usize,
13020        "Alignment of DES_cblock_st"
13021    );
13022    assert_eq!(
13023        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
13024        0usize,
13025        "Offset of field: DES_cblock_st::bytes"
13026    );
13027}
13028pub type DES_cblock = DES_cblock_st;
13029pub type const_DES_cblock = DES_cblock_st;
13030#[repr(C)]
13031#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
13032pub struct DES_ks {
13033    pub subkeys: [[u32; 2usize]; 16usize],
13034}
13035#[test]
13036fn bindgen_test_layout_DES_ks() {
13037    const UNINIT: ::std::mem::MaybeUninit<DES_ks> = ::std::mem::MaybeUninit::uninit();
13038    let ptr = UNINIT.as_ptr();
13039    assert_eq!(::std::mem::size_of::<DES_ks>(), 128usize, "Size of DES_ks");
13040    assert_eq!(
13041        ::std::mem::align_of::<DES_ks>(),
13042        4usize,
13043        "Alignment of DES_ks"
13044    );
13045    assert_eq!(
13046        unsafe { ::std::ptr::addr_of!((*ptr).subkeys) as usize - ptr as usize },
13047        0usize,
13048        "Offset of field: DES_ks::subkeys"
13049    );
13050}
13051pub type DES_key_schedule = DES_ks;
13052extern "C" {
13053    #[link_name = "\u{1}aws_lc_0_38_0_DES_is_weak_key"]
13054    pub fn DES_is_weak_key(key: *const DES_cblock) -> ::std::os::raw::c_int;
13055}
13056extern "C" {
13057    #[link_name = "\u{1}aws_lc_0_38_0_DES_set_key"]
13058    pub fn DES_set_key(
13059        key: *const DES_cblock,
13060        schedule: *mut DES_key_schedule,
13061    ) -> ::std::os::raw::c_int;
13062}
13063extern "C" {
13064    #[link_name = "\u{1}aws_lc_0_38_0_DES_set_key_unchecked"]
13065    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
13066}
13067extern "C" {
13068    #[link_name = "\u{1}aws_lc_0_38_0_DES_key_sched"]
13069    pub fn DES_key_sched(
13070        key: *const DES_cblock,
13071        schedule: *mut DES_key_schedule,
13072    ) -> ::std::os::raw::c_int;
13073}
13074extern "C" {
13075    #[link_name = "\u{1}aws_lc_0_38_0_DES_set_odd_parity"]
13076    pub fn DES_set_odd_parity(key: *mut DES_cblock);
13077}
13078extern "C" {
13079    #[link_name = "\u{1}aws_lc_0_38_0_DES_ecb_encrypt"]
13080    pub fn DES_ecb_encrypt(
13081        in_: *const DES_cblock,
13082        out: *mut DES_cblock,
13083        schedule: *const DES_key_schedule,
13084        is_encrypt: ::std::os::raw::c_int,
13085    );
13086}
13087extern "C" {
13088    #[link_name = "\u{1}aws_lc_0_38_0_DES_ncbc_encrypt"]
13089    pub fn DES_ncbc_encrypt(
13090        in_: *const u8,
13091        out: *mut u8,
13092        len: usize,
13093        schedule: *const DES_key_schedule,
13094        ivec: *mut DES_cblock,
13095        enc: ::std::os::raw::c_int,
13096    );
13097}
13098extern "C" {
13099    #[link_name = "\u{1}aws_lc_0_38_0_DES_ecb3_encrypt"]
13100    pub fn DES_ecb3_encrypt(
13101        input: *const DES_cblock,
13102        output: *mut DES_cblock,
13103        ks1: *const DES_key_schedule,
13104        ks2: *const DES_key_schedule,
13105        ks3: *const DES_key_schedule,
13106        enc: ::std::os::raw::c_int,
13107    );
13108}
13109extern "C" {
13110    #[link_name = "\u{1}aws_lc_0_38_0_DES_ede3_cbc_encrypt"]
13111    pub fn DES_ede3_cbc_encrypt(
13112        in_: *const u8,
13113        out: *mut u8,
13114        len: usize,
13115        ks1: *const DES_key_schedule,
13116        ks2: *const DES_key_schedule,
13117        ks3: *const DES_key_schedule,
13118        ivec: *mut DES_cblock,
13119        enc: ::std::os::raw::c_int,
13120    );
13121}
13122extern "C" {
13123    #[link_name = "\u{1}aws_lc_0_38_0_DES_ede2_cbc_encrypt"]
13124    pub fn DES_ede2_cbc_encrypt(
13125        in_: *const u8,
13126        out: *mut u8,
13127        len: usize,
13128        ks1: *const DES_key_schedule,
13129        ks2: *const DES_key_schedule,
13130        ivec: *mut DES_cblock,
13131        enc: ::std::os::raw::c_int,
13132    );
13133}
13134extern "C" {
13135    #[link_name = "\u{1}aws_lc_0_38_0_DH_new"]
13136    pub fn DH_new() -> *mut DH;
13137}
13138extern "C" {
13139    #[link_name = "\u{1}aws_lc_0_38_0_DH_new_by_nid"]
13140    pub fn DH_new_by_nid(nid: ::std::os::raw::c_int) -> *mut DH;
13141}
13142extern "C" {
13143    #[link_name = "\u{1}aws_lc_0_38_0_DH_free"]
13144    pub fn DH_free(dh: *mut DH);
13145}
13146extern "C" {
13147    #[link_name = "\u{1}aws_lc_0_38_0_DH_up_ref"]
13148    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
13149}
13150extern "C" {
13151    #[link_name = "\u{1}aws_lc_0_38_0_DH_bits"]
13152    pub fn DH_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13153}
13154extern "C" {
13155    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_pub_key"]
13156    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
13157}
13158extern "C" {
13159    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_priv_key"]
13160    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
13161}
13162extern "C" {
13163    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_p"]
13164    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
13165}
13166extern "C" {
13167    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_q"]
13168    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
13169}
13170extern "C" {
13171    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_g"]
13172    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
13173}
13174extern "C" {
13175    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_key"]
13176    pub fn DH_get0_key(
13177        dh: *const DH,
13178        out_pub_key: *mut *const BIGNUM,
13179        out_priv_key: *mut *const BIGNUM,
13180    );
13181}
13182extern "C" {
13183    #[link_name = "\u{1}aws_lc_0_38_0_DH_set0_key"]
13184    pub fn DH_set0_key(
13185        dh: *mut DH,
13186        pub_key: *mut BIGNUM,
13187        priv_key: *mut BIGNUM,
13188    ) -> ::std::os::raw::c_int;
13189}
13190extern "C" {
13191    #[link_name = "\u{1}aws_lc_0_38_0_DH_get0_pqg"]
13192    pub fn DH_get0_pqg(
13193        dh: *const DH,
13194        out_p: *mut *const BIGNUM,
13195        out_q: *mut *const BIGNUM,
13196        out_g: *mut *const BIGNUM,
13197    );
13198}
13199extern "C" {
13200    #[link_name = "\u{1}aws_lc_0_38_0_DH_set0_pqg"]
13201    pub fn DH_set0_pqg(
13202        dh: *mut DH,
13203        p: *mut BIGNUM,
13204        q: *mut BIGNUM,
13205        g: *mut BIGNUM,
13206    ) -> ::std::os::raw::c_int;
13207}
13208extern "C" {
13209    #[link_name = "\u{1}aws_lc_0_38_0_DH_set_length"]
13210    pub fn DH_set_length(dh: *mut DH, priv_length: ::std::os::raw::c_uint)
13211        -> ::std::os::raw::c_int;
13212}
13213extern "C" {
13214    #[link_name = "\u{1}aws_lc_0_38_0_DH_get_rfc7919_2048"]
13215    pub fn DH_get_rfc7919_2048() -> *mut DH;
13216}
13217extern "C" {
13218    #[link_name = "\u{1}aws_lc_0_38_0_DH_get_rfc7919_4096"]
13219    pub fn DH_get_rfc7919_4096() -> *mut DH;
13220}
13221extern "C" {
13222    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_1536"]
13223    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
13224}
13225extern "C" {
13226    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_2048"]
13227    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
13228}
13229extern "C" {
13230    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_3072"]
13231    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
13232}
13233extern "C" {
13234    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_4096"]
13235    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
13236}
13237extern "C" {
13238    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_6144"]
13239    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
13240}
13241extern "C" {
13242    #[link_name = "\u{1}aws_lc_0_38_0_BN_get_rfc3526_prime_8192"]
13243    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
13244}
13245extern "C" {
13246    #[link_name = "\u{1}aws_lc_0_38_0_DH_generate_parameters_ex"]
13247    pub fn DH_generate_parameters_ex(
13248        dh: *mut DH,
13249        prime_bits: ::std::os::raw::c_int,
13250        generator: ::std::os::raw::c_int,
13251        cb: *mut BN_GENCB,
13252    ) -> ::std::os::raw::c_int;
13253}
13254extern "C" {
13255    #[link_name = "\u{1}aws_lc_0_38_0_DH_generate_key"]
13256    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
13257}
13258extern "C" {
13259    #[link_name = "\u{1}aws_lc_0_38_0_DH_compute_key_padded"]
13260    pub fn DH_compute_key_padded(
13261        out: *mut u8,
13262        peers_key: *const BIGNUM,
13263        dh: *mut DH,
13264    ) -> ::std::os::raw::c_int;
13265}
13266extern "C" {
13267    #[link_name = "\u{1}aws_lc_0_38_0_DH_compute_key_hashed"]
13268    pub fn DH_compute_key_hashed(
13269        dh: *mut DH,
13270        out: *mut u8,
13271        out_len: *mut usize,
13272        max_out_len: usize,
13273        peers_key: *const BIGNUM,
13274        digest: *const EVP_MD,
13275    ) -> ::std::os::raw::c_int;
13276}
13277extern "C" {
13278    #[link_name = "\u{1}aws_lc_0_38_0_DH_size"]
13279    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
13280}
13281extern "C" {
13282    #[link_name = "\u{1}aws_lc_0_38_0_DH_num_bits"]
13283    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13284}
13285extern "C" {
13286    #[link_name = "\u{1}aws_lc_0_38_0_DH_check"]
13287    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13288}
13289extern "C" {
13290    #[link_name = "\u{1}aws_lc_0_38_0_DH_check_pub_key"]
13291    pub fn DH_check_pub_key(
13292        dh: *const DH,
13293        pub_key: *const BIGNUM,
13294        out_flags: *mut ::std::os::raw::c_int,
13295    ) -> ::std::os::raw::c_int;
13296}
13297extern "C" {
13298    #[link_name = "\u{1}aws_lc_0_38_0_DHparams_dup"]
13299    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
13300}
13301extern "C" {
13302    #[link_name = "\u{1}aws_lc_0_38_0_DH_parse_parameters"]
13303    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
13304}
13305extern "C" {
13306    #[link_name = "\u{1}aws_lc_0_38_0_DH_marshal_parameters"]
13307    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
13308}
13309extern "C" {
13310    #[link_name = "\u{1}aws_lc_0_38_0_DH_generate_parameters"]
13311    pub fn DH_generate_parameters(
13312        prime_len: ::std::os::raw::c_int,
13313        generator: ::std::os::raw::c_int,
13314        callback: ::std::option::Option<
13315            unsafe extern "C" fn(
13316                arg1: ::std::os::raw::c_int,
13317                arg2: ::std::os::raw::c_int,
13318                arg3: *mut ::std::os::raw::c_void,
13319            ),
13320        >,
13321        cb_arg: *mut ::std::os::raw::c_void,
13322    ) -> *mut DH;
13323}
13324extern "C" {
13325    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DHparams"]
13326    pub fn d2i_DHparams(
13327        ret: *mut *mut DH,
13328        inp: *mut *const ::std::os::raw::c_uchar,
13329        len: ::std::os::raw::c_long,
13330    ) -> *mut DH;
13331}
13332extern "C" {
13333    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DHparams"]
13334    pub fn i2d_DHparams(
13335        in_: *const DH,
13336        outp: *mut *mut ::std::os::raw::c_uchar,
13337    ) -> ::std::os::raw::c_int;
13338}
13339extern "C" {
13340    #[link_name = "\u{1}aws_lc_0_38_0_DH_compute_key"]
13341    pub fn DH_compute_key(
13342        out: *mut u8,
13343        peers_key: *const BIGNUM,
13344        dh: *mut DH,
13345    ) -> ::std::os::raw::c_int;
13346}
13347extern "C" {
13348    #[link_name = "\u{1}aws_lc_0_38_0_DH_get_2048_256"]
13349    pub fn DH_get_2048_256() -> *mut DH;
13350}
13351extern "C" {
13352    #[link_name = "\u{1}aws_lc_0_38_0_DH_clear_flags"]
13353    pub fn DH_clear_flags(dh: *mut DH, flags: ::std::os::raw::c_int);
13354}
13355extern "C" {
13356    #[link_name = "\u{1}aws_lc_0_38_0_EVP_md4"]
13357    pub fn EVP_md4() -> *const EVP_MD;
13358}
13359extern "C" {
13360    #[link_name = "\u{1}aws_lc_0_38_0_EVP_md5"]
13361    pub fn EVP_md5() -> *const EVP_MD;
13362}
13363extern "C" {
13364    #[link_name = "\u{1}aws_lc_0_38_0_EVP_ripemd160"]
13365    pub fn EVP_ripemd160() -> *const EVP_MD;
13366}
13367extern "C" {
13368    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha1"]
13369    pub fn EVP_sha1() -> *const EVP_MD;
13370}
13371extern "C" {
13372    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha224"]
13373    pub fn EVP_sha224() -> *const EVP_MD;
13374}
13375extern "C" {
13376    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha256"]
13377    pub fn EVP_sha256() -> *const EVP_MD;
13378}
13379extern "C" {
13380    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha384"]
13381    pub fn EVP_sha384() -> *const EVP_MD;
13382}
13383extern "C" {
13384    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha512"]
13385    pub fn EVP_sha512() -> *const EVP_MD;
13386}
13387extern "C" {
13388    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha512_224"]
13389    pub fn EVP_sha512_224() -> *const EVP_MD;
13390}
13391extern "C" {
13392    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha512_256"]
13393    pub fn EVP_sha512_256() -> *const EVP_MD;
13394}
13395extern "C" {
13396    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha3_224"]
13397    pub fn EVP_sha3_224() -> *const EVP_MD;
13398}
13399extern "C" {
13400    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha3_256"]
13401    pub fn EVP_sha3_256() -> *const EVP_MD;
13402}
13403extern "C" {
13404    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha3_384"]
13405    pub fn EVP_sha3_384() -> *const EVP_MD;
13406}
13407extern "C" {
13408    #[link_name = "\u{1}aws_lc_0_38_0_EVP_sha3_512"]
13409    pub fn EVP_sha3_512() -> *const EVP_MD;
13410}
13411extern "C" {
13412    #[link_name = "\u{1}aws_lc_0_38_0_EVP_shake128"]
13413    pub fn EVP_shake128() -> *const EVP_MD;
13414}
13415extern "C" {
13416    #[link_name = "\u{1}aws_lc_0_38_0_EVP_shake256"]
13417    pub fn EVP_shake256() -> *const EVP_MD;
13418}
13419extern "C" {
13420    #[link_name = "\u{1}aws_lc_0_38_0_EVP_blake2b256"]
13421    pub fn EVP_blake2b256() -> *const EVP_MD;
13422}
13423extern "C" {
13424    #[link_name = "\u{1}aws_lc_0_38_0_EVP_md5_sha1"]
13425    pub fn EVP_md5_sha1() -> *const EVP_MD;
13426}
13427extern "C" {
13428    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_digestbynid"]
13429    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
13430}
13431extern "C" {
13432    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_digestbyobj"]
13433    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
13434}
13435extern "C" {
13436    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_init"]
13437    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
13438}
13439extern "C" {
13440    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_new"]
13441    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
13442}
13443extern "C" {
13444    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_cleanup"]
13445    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13446}
13447extern "C" {
13448    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_cleanse"]
13449    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
13450}
13451extern "C" {
13452    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_free"]
13453    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
13454}
13455extern "C" {
13456    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_copy_ex"]
13457    pub fn EVP_MD_CTX_copy_ex(
13458        out: *mut EVP_MD_CTX,
13459        in_: *const EVP_MD_CTX,
13460    ) -> ::std::os::raw::c_int;
13461}
13462extern "C" {
13463    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_move"]
13464    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
13465}
13466extern "C" {
13467    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_reset"]
13468    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13469}
13470extern "C" {
13471    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestInit_ex"]
13472    pub fn EVP_DigestInit_ex(
13473        ctx: *mut EVP_MD_CTX,
13474        type_: *const EVP_MD,
13475        engine: *mut ENGINE,
13476    ) -> ::std::os::raw::c_int;
13477}
13478extern "C" {
13479    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestInit"]
13480    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
13481}
13482extern "C" {
13483    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestUpdate"]
13484    pub fn EVP_DigestUpdate(
13485        ctx: *mut EVP_MD_CTX,
13486        data: *const ::std::os::raw::c_void,
13487        len: usize,
13488    ) -> ::std::os::raw::c_int;
13489}
13490extern "C" {
13491    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestFinal_ex"]
13492    pub fn EVP_DigestFinal_ex(
13493        ctx: *mut EVP_MD_CTX,
13494        md_out: *mut u8,
13495        out_size: *mut ::std::os::raw::c_uint,
13496    ) -> ::std::os::raw::c_int;
13497}
13498extern "C" {
13499    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestFinal"]
13500    pub fn EVP_DigestFinal(
13501        ctx: *mut EVP_MD_CTX,
13502        md_out: *mut u8,
13503        out_size: *mut ::std::os::raw::c_uint,
13504    ) -> ::std::os::raw::c_int;
13505}
13506extern "C" {
13507    #[link_name = "\u{1}aws_lc_0_38_0_EVP_Digest"]
13508    pub fn EVP_Digest(
13509        data: *const ::std::os::raw::c_void,
13510        len: usize,
13511        md_out: *mut u8,
13512        out_size: *mut ::std::os::raw::c_uint,
13513        type_: *const EVP_MD,
13514        impl_: *mut ENGINE,
13515    ) -> ::std::os::raw::c_int;
13516}
13517extern "C" {
13518    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_type"]
13519    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
13520}
13521extern "C" {
13522    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_flags"]
13523    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
13524}
13525extern "C" {
13526    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_size"]
13527    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
13528}
13529extern "C" {
13530    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_block_size"]
13531    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
13532}
13533extern "C" {
13534    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_md"]
13535    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
13536}
13537extern "C" {
13538    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_size"]
13539    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
13540}
13541extern "C" {
13542    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_block_size"]
13543    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
13544}
13545extern "C" {
13546    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_type"]
13547    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13548}
13549extern "C" {
13550    #[link_name = "\u{1}aws_lc_0_38_0_EVP_parse_digest_algorithm"]
13551    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
13552}
13553extern "C" {
13554    #[link_name = "\u{1}aws_lc_0_38_0_EVP_marshal_digest_algorithm"]
13555    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
13556}
13557extern "C" {
13558    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_copy"]
13559    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13560}
13561extern "C" {
13562    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_digestbyname"]
13563    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
13564}
13565extern "C" {
13566    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_create"]
13567    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
13568}
13569extern "C" {
13570    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_destroy"]
13571    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
13572}
13573extern "C" {
13574    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestFinalXOF"]
13575    pub fn EVP_DigestFinalXOF(
13576        ctx: *mut EVP_MD_CTX,
13577        out: *mut u8,
13578        len: usize,
13579    ) -> ::std::os::raw::c_int;
13580}
13581extern "C" {
13582    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestSqueeze"]
13583    pub fn EVP_DigestSqueeze(
13584        ctx: *mut EVP_MD_CTX,
13585        out: *mut u8,
13586        len: usize,
13587    ) -> ::std::os::raw::c_int;
13588}
13589extern "C" {
13590    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_meth_get_flags"]
13591    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
13592}
13593extern "C" {
13594    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_nid"]
13595    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::std::os::raw::c_int;
13596}
13597extern "C" {
13598    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_set_pkey_ctx"]
13599    pub fn EVP_MD_CTX_set_pkey_ctx(ctx: *mut EVP_MD_CTX, pctx: *mut EVP_PKEY_CTX);
13600}
13601extern "C" {
13602    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_get_pkey_ctx"]
13603    pub fn EVP_MD_CTX_get_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13604}
13605extern "C" {
13606    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_pkey_ctx"]
13607    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13608}
13609#[repr(C)]
13610#[derive(Debug, Copy, Clone)]
13611pub struct evp_md_pctx_ops {
13612    _unused: [u8; 0],
13613}
13614#[repr(C)]
13615#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13616pub struct env_md_ctx_st {
13617    pub digest: *const EVP_MD,
13618    pub md_data: *mut ::std::os::raw::c_void,
13619    pub update: ::std::option::Option<
13620        unsafe extern "C" fn(
13621            ctx: *mut EVP_MD_CTX,
13622            data: *const ::std::os::raw::c_void,
13623            count: usize,
13624        ) -> ::std::os::raw::c_int,
13625    >,
13626    pub pctx: *mut EVP_PKEY_CTX,
13627    pub pctx_ops: *const evp_md_pctx_ops,
13628    pub flags: ::std::os::raw::c_ulong,
13629}
13630#[test]
13631fn bindgen_test_layout_env_md_ctx_st() {
13632    const UNINIT: ::std::mem::MaybeUninit<env_md_ctx_st> = ::std::mem::MaybeUninit::uninit();
13633    let ptr = UNINIT.as_ptr();
13634    assert_eq!(
13635        ::std::mem::size_of::<env_md_ctx_st>(),
13636        48usize,
13637        "Size of env_md_ctx_st"
13638    );
13639    assert_eq!(
13640        ::std::mem::align_of::<env_md_ctx_st>(),
13641        8usize,
13642        "Alignment of env_md_ctx_st"
13643    );
13644    assert_eq!(
13645        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
13646        0usize,
13647        "Offset of field: env_md_ctx_st::digest"
13648    );
13649    assert_eq!(
13650        unsafe { ::std::ptr::addr_of!((*ptr).md_data) as usize - ptr as usize },
13651        8usize,
13652        "Offset of field: env_md_ctx_st::md_data"
13653    );
13654    assert_eq!(
13655        unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize },
13656        16usize,
13657        "Offset of field: env_md_ctx_st::update"
13658    );
13659    assert_eq!(
13660        unsafe { ::std::ptr::addr_of!((*ptr).pctx) as usize - ptr as usize },
13661        24usize,
13662        "Offset of field: env_md_ctx_st::pctx"
13663    );
13664    assert_eq!(
13665        unsafe { ::std::ptr::addr_of!((*ptr).pctx_ops) as usize - ptr as usize },
13666        32usize,
13667        "Offset of field: env_md_ctx_st::pctx_ops"
13668    );
13669    assert_eq!(
13670        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
13671        40usize,
13672        "Offset of field: env_md_ctx_st::flags"
13673    );
13674}
13675impl Default for env_md_ctx_st {
13676    fn default() -> Self {
13677        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13678        unsafe {
13679            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13680            s.assume_init()
13681        }
13682    }
13683}
13684extern "C" {
13685    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_unstable_sha3_enable"]
13686    pub fn EVP_MD_unstable_sha3_enable(enable: bool);
13687}
13688extern "C" {
13689    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_unstable_sha3_is_enabled"]
13690    pub fn EVP_MD_unstable_sha3_is_enabled() -> bool;
13691}
13692extern "C" {
13693    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_CTX_set_flags"]
13694    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::std::os::raw::c_int);
13695}
13696extern "C" {
13697    #[link_name = "\u{1}aws_lc_0_38_0_EVP_add_digest"]
13698    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
13699}
13700extern "C" {
13701    #[link_name = "\u{1}aws_lc_0_38_0_EVP_md_null"]
13702    pub fn EVP_md_null() -> *const EVP_MD;
13703}
13704extern "C" {
13705    #[link_name = "\u{1}aws_lc_0_38_0_DSA_new"]
13706    pub fn DSA_new() -> *mut DSA;
13707}
13708extern "C" {
13709    #[link_name = "\u{1}aws_lc_0_38_0_DSA_free"]
13710    pub fn DSA_free(dsa: *mut DSA);
13711}
13712extern "C" {
13713    #[link_name = "\u{1}aws_lc_0_38_0_DSA_up_ref"]
13714    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
13715}
13716extern "C" {
13717    #[link_name = "\u{1}aws_lc_0_38_0_DSA_print"]
13718    pub fn DSA_print(
13719        bio: *mut BIO,
13720        dsa: *const DSA,
13721        indent: ::std::os::raw::c_int,
13722    ) -> ::std::os::raw::c_int;
13723}
13724extern "C" {
13725    #[link_name = "\u{1}aws_lc_0_38_0_DSA_print_fp"]
13726    pub fn DSA_print_fp(
13727        fp: *mut FILE,
13728        dsa: *const DSA,
13729        indent: ::std::os::raw::c_int,
13730    ) -> ::std::os::raw::c_int;
13731}
13732extern "C" {
13733    #[link_name = "\u{1}aws_lc_0_38_0_DSA_bits"]
13734    pub fn DSA_bits(dsa: *const DSA) -> ::std::os::raw::c_uint;
13735}
13736extern "C" {
13737    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_pub_key"]
13738    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
13739}
13740extern "C" {
13741    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_priv_key"]
13742    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
13743}
13744extern "C" {
13745    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_p"]
13746    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
13747}
13748extern "C" {
13749    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_q"]
13750    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
13751}
13752extern "C" {
13753    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_g"]
13754    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
13755}
13756extern "C" {
13757    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_key"]
13758    pub fn DSA_get0_key(
13759        dsa: *const DSA,
13760        out_pub_key: *mut *const BIGNUM,
13761        out_priv_key: *mut *const BIGNUM,
13762    );
13763}
13764extern "C" {
13765    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get0_pqg"]
13766    pub fn DSA_get0_pqg(
13767        dsa: *const DSA,
13768        out_p: *mut *const BIGNUM,
13769        out_q: *mut *const BIGNUM,
13770        out_g: *mut *const BIGNUM,
13771    );
13772}
13773extern "C" {
13774    #[link_name = "\u{1}aws_lc_0_38_0_DSA_set0_key"]
13775    pub fn DSA_set0_key(
13776        dsa: *mut DSA,
13777        pub_key: *mut BIGNUM,
13778        priv_key: *mut BIGNUM,
13779    ) -> ::std::os::raw::c_int;
13780}
13781extern "C" {
13782    #[link_name = "\u{1}aws_lc_0_38_0_DSA_set0_pqg"]
13783    pub fn DSA_set0_pqg(
13784        dsa: *mut DSA,
13785        p: *mut BIGNUM,
13786        q: *mut BIGNUM,
13787        g: *mut BIGNUM,
13788    ) -> ::std::os::raw::c_int;
13789}
13790extern "C" {
13791    #[link_name = "\u{1}aws_lc_0_38_0_DSA_generate_parameters_ex"]
13792    pub fn DSA_generate_parameters_ex(
13793        dsa: *mut DSA,
13794        bits: ::std::os::raw::c_uint,
13795        seed: *const u8,
13796        seed_len: usize,
13797        out_counter: *mut ::std::os::raw::c_int,
13798        out_h: *mut ::std::os::raw::c_ulong,
13799        cb: *mut BN_GENCB,
13800    ) -> ::std::os::raw::c_int;
13801}
13802extern "C" {
13803    #[link_name = "\u{1}aws_lc_0_38_0_DSAparams_dup"]
13804    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
13805}
13806extern "C" {
13807    #[link_name = "\u{1}aws_lc_0_38_0_DSA_generate_key"]
13808    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
13809}
13810#[repr(C)]
13811#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13812pub struct DSA_SIG_st {
13813    pub r: *mut BIGNUM,
13814    pub s: *mut BIGNUM,
13815}
13816#[test]
13817fn bindgen_test_layout_DSA_SIG_st() {
13818    const UNINIT: ::std::mem::MaybeUninit<DSA_SIG_st> = ::std::mem::MaybeUninit::uninit();
13819    let ptr = UNINIT.as_ptr();
13820    assert_eq!(
13821        ::std::mem::size_of::<DSA_SIG_st>(),
13822        16usize,
13823        "Size of DSA_SIG_st"
13824    );
13825    assert_eq!(
13826        ::std::mem::align_of::<DSA_SIG_st>(),
13827        8usize,
13828        "Alignment of DSA_SIG_st"
13829    );
13830    assert_eq!(
13831        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
13832        0usize,
13833        "Offset of field: DSA_SIG_st::r"
13834    );
13835    assert_eq!(
13836        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
13837        8usize,
13838        "Offset of field: DSA_SIG_st::s"
13839    );
13840}
13841impl Default for DSA_SIG_st {
13842    fn default() -> Self {
13843        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13844        unsafe {
13845            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13846            s.assume_init()
13847        }
13848    }
13849}
13850extern "C" {
13851    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_new"]
13852    pub fn DSA_SIG_new() -> *mut DSA_SIG;
13853}
13854extern "C" {
13855    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_free"]
13856    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
13857}
13858extern "C" {
13859    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_get0"]
13860    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
13861}
13862extern "C" {
13863    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_set0"]
13864    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM)
13865        -> ::std::os::raw::c_int;
13866}
13867extern "C" {
13868    #[link_name = "\u{1}aws_lc_0_38_0_DSA_do_sign"]
13869    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
13870}
13871extern "C" {
13872    #[link_name = "\u{1}aws_lc_0_38_0_DSA_do_verify"]
13873    pub fn DSA_do_verify(
13874        digest: *const u8,
13875        digest_len: usize,
13876        sig: *const DSA_SIG,
13877        dsa: *const DSA,
13878    ) -> ::std::os::raw::c_int;
13879}
13880extern "C" {
13881    #[link_name = "\u{1}aws_lc_0_38_0_DSA_do_check_signature"]
13882    pub fn DSA_do_check_signature(
13883        out_valid: *mut ::std::os::raw::c_int,
13884        digest: *const u8,
13885        digest_len: usize,
13886        sig: *const DSA_SIG,
13887        dsa: *const DSA,
13888    ) -> ::std::os::raw::c_int;
13889}
13890extern "C" {
13891    #[link_name = "\u{1}aws_lc_0_38_0_DSA_sign"]
13892    pub fn DSA_sign(
13893        type_: ::std::os::raw::c_int,
13894        digest: *const u8,
13895        digest_len: usize,
13896        out_sig: *mut u8,
13897        out_siglen: *mut ::std::os::raw::c_uint,
13898        dsa: *const DSA,
13899    ) -> ::std::os::raw::c_int;
13900}
13901extern "C" {
13902    #[link_name = "\u{1}aws_lc_0_38_0_DSA_verify"]
13903    pub fn DSA_verify(
13904        type_: ::std::os::raw::c_int,
13905        digest: *const u8,
13906        digest_len: usize,
13907        sig: *const u8,
13908        sig_len: usize,
13909        dsa: *const DSA,
13910    ) -> ::std::os::raw::c_int;
13911}
13912extern "C" {
13913    #[link_name = "\u{1}aws_lc_0_38_0_DSA_check_signature"]
13914    pub fn DSA_check_signature(
13915        out_valid: *mut ::std::os::raw::c_int,
13916        digest: *const u8,
13917        digest_len: usize,
13918        sig: *const u8,
13919        sig_len: usize,
13920        dsa: *const DSA,
13921    ) -> ::std::os::raw::c_int;
13922}
13923extern "C" {
13924    #[link_name = "\u{1}aws_lc_0_38_0_DSA_size"]
13925    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
13926}
13927extern "C" {
13928    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_parse"]
13929    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
13930}
13931extern "C" {
13932    #[link_name = "\u{1}aws_lc_0_38_0_DSA_SIG_marshal"]
13933    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
13934}
13935extern "C" {
13936    #[link_name = "\u{1}aws_lc_0_38_0_DSA_parse_public_key"]
13937    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
13938}
13939extern "C" {
13940    #[link_name = "\u{1}aws_lc_0_38_0_DSA_marshal_public_key"]
13941    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13942}
13943extern "C" {
13944    #[link_name = "\u{1}aws_lc_0_38_0_DSA_parse_private_key"]
13945    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
13946}
13947extern "C" {
13948    #[link_name = "\u{1}aws_lc_0_38_0_DSA_marshal_private_key"]
13949    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13950}
13951extern "C" {
13952    #[link_name = "\u{1}aws_lc_0_38_0_DSA_parse_parameters"]
13953    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
13954}
13955extern "C" {
13956    #[link_name = "\u{1}aws_lc_0_38_0_DSA_marshal_parameters"]
13957    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13958}
13959extern "C" {
13960    #[link_name = "\u{1}aws_lc_0_38_0_DSA_dup_DH"]
13961    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
13962}
13963extern "C" {
13964    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get_ex_new_index"]
13965    pub fn DSA_get_ex_new_index(
13966        argl: ::std::os::raw::c_long,
13967        argp: *mut ::std::os::raw::c_void,
13968        unused: *mut CRYPTO_EX_unused,
13969        dup_unused: CRYPTO_EX_dup,
13970        free_func: CRYPTO_EX_free,
13971    ) -> ::std::os::raw::c_int;
13972}
13973extern "C" {
13974    #[link_name = "\u{1}aws_lc_0_38_0_DSA_set_ex_data"]
13975    pub fn DSA_set_ex_data(
13976        dsa: *mut DSA,
13977        idx: ::std::os::raw::c_int,
13978        arg: *mut ::std::os::raw::c_void,
13979    ) -> ::std::os::raw::c_int;
13980}
13981extern "C" {
13982    #[link_name = "\u{1}aws_lc_0_38_0_DSA_get_ex_data"]
13983    pub fn DSA_get_ex_data(
13984        dsa: *const DSA,
13985        idx: ::std::os::raw::c_int,
13986    ) -> *mut ::std::os::raw::c_void;
13987}
13988extern "C" {
13989    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSA_SIG"]
13990    pub fn d2i_DSA_SIG(
13991        out_sig: *mut *mut DSA_SIG,
13992        inp: *mut *const u8,
13993        len: ::std::os::raw::c_long,
13994    ) -> *mut DSA_SIG;
13995}
13996extern "C" {
13997    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSA_SIG"]
13998    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13999}
14000extern "C" {
14001    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSAPublicKey"]
14002    pub fn d2i_DSAPublicKey(
14003        out: *mut *mut DSA,
14004        inp: *mut *const u8,
14005        len: ::std::os::raw::c_long,
14006    ) -> *mut DSA;
14007}
14008extern "C" {
14009    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSAPublicKey"]
14010    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14011}
14012extern "C" {
14013    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSAPrivateKey"]
14014    pub fn d2i_DSAPrivateKey(
14015        out: *mut *mut DSA,
14016        inp: *mut *const u8,
14017        len: ::std::os::raw::c_long,
14018    ) -> *mut DSA;
14019}
14020extern "C" {
14021    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSAPrivateKey"]
14022    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14023}
14024extern "C" {
14025    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSAparams"]
14026    pub fn d2i_DSAparams(
14027        out: *mut *mut DSA,
14028        inp: *mut *const u8,
14029        len: ::std::os::raw::c_long,
14030    ) -> *mut DSA;
14031}
14032extern "C" {
14033    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSAparams"]
14034    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14035}
14036#[repr(u32)]
14037#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14038pub enum point_conversion_form_t {
14039    POINT_CONVERSION_COMPRESSED = 2,
14040    POINT_CONVERSION_UNCOMPRESSED = 4,
14041    POINT_CONVERSION_HYBRID = 6,
14042}
14043extern "C" {
14044    #[link_name = "\u{1}aws_lc_0_38_0_EC_group_p224"]
14045    pub fn EC_group_p224() -> *const EC_GROUP;
14046}
14047extern "C" {
14048    #[link_name = "\u{1}aws_lc_0_38_0_EC_group_p256"]
14049    pub fn EC_group_p256() -> *const EC_GROUP;
14050}
14051extern "C" {
14052    #[link_name = "\u{1}aws_lc_0_38_0_EC_group_p384"]
14053    pub fn EC_group_p384() -> *const EC_GROUP;
14054}
14055extern "C" {
14056    #[link_name = "\u{1}aws_lc_0_38_0_EC_group_p521"]
14057    pub fn EC_group_p521() -> *const EC_GROUP;
14058}
14059extern "C" {
14060    #[link_name = "\u{1}aws_lc_0_38_0_EC_group_secp256k1"]
14061    pub fn EC_group_secp256k1() -> *const EC_GROUP;
14062}
14063extern "C" {
14064    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_new_by_curve_name"]
14065    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14066}
14067extern "C" {
14068    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_new_by_curve_name_mutable"]
14069    pub fn EC_GROUP_new_by_curve_name_mutable(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14070}
14071extern "C" {
14072    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_cmp"]
14073    pub fn EC_GROUP_cmp(
14074        a: *const EC_GROUP,
14075        b: *const EC_GROUP,
14076        ignored: *mut BN_CTX,
14077    ) -> ::std::os::raw::c_int;
14078}
14079extern "C" {
14080    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get0_generator"]
14081    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
14082}
14083extern "C" {
14084    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get0_order"]
14085    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
14086}
14087extern "C" {
14088    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_order_bits"]
14089    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14090}
14091extern "C" {
14092    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_cofactor"]
14093    pub fn EC_GROUP_get_cofactor(
14094        group: *const EC_GROUP,
14095        cofactor: *mut BIGNUM,
14096        ctx: *mut BN_CTX,
14097    ) -> ::std::os::raw::c_int;
14098}
14099extern "C" {
14100    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_curve_GFp"]
14101    pub fn EC_GROUP_get_curve_GFp(
14102        group: *const EC_GROUP,
14103        out_p: *mut BIGNUM,
14104        out_a: *mut BIGNUM,
14105        out_b: *mut BIGNUM,
14106        ctx: *mut BN_CTX,
14107    ) -> ::std::os::raw::c_int;
14108}
14109extern "C" {
14110    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_curve_name"]
14111    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14112}
14113extern "C" {
14114    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_degree"]
14115    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
14116}
14117extern "C" {
14118    #[link_name = "\u{1}aws_lc_0_38_0_EC_curve_nid2nist"]
14119    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
14120}
14121extern "C" {
14122    #[link_name = "\u{1}aws_lc_0_38_0_EC_curve_nist2nid"]
14123    pub fn EC_curve_nist2nid(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
14124}
14125extern "C" {
14126    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_new"]
14127    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
14128}
14129extern "C" {
14130    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_free"]
14131    pub fn EC_POINT_free(point: *mut EC_POINT);
14132}
14133extern "C" {
14134    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_copy"]
14135    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
14136}
14137extern "C" {
14138    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_dup"]
14139    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
14140}
14141extern "C" {
14142    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_set_to_infinity"]
14143    pub fn EC_POINT_set_to_infinity(
14144        group: *const EC_GROUP,
14145        point: *mut EC_POINT,
14146    ) -> ::std::os::raw::c_int;
14147}
14148extern "C" {
14149    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_is_at_infinity"]
14150    pub fn EC_POINT_is_at_infinity(
14151        group: *const EC_GROUP,
14152        point: *const EC_POINT,
14153    ) -> ::std::os::raw::c_int;
14154}
14155extern "C" {
14156    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_is_on_curve"]
14157    pub fn EC_POINT_is_on_curve(
14158        group: *const EC_GROUP,
14159        point: *const EC_POINT,
14160        ctx: *mut BN_CTX,
14161    ) -> ::std::os::raw::c_int;
14162}
14163extern "C" {
14164    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_cmp"]
14165    pub fn EC_POINT_cmp(
14166        group: *const EC_GROUP,
14167        a: *const EC_POINT,
14168        b: *const EC_POINT,
14169        ctx: *mut BN_CTX,
14170    ) -> ::std::os::raw::c_int;
14171}
14172extern "C" {
14173    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_get_affine_coordinates_GFp"]
14174    pub fn EC_POINT_get_affine_coordinates_GFp(
14175        group: *const EC_GROUP,
14176        point: *const EC_POINT,
14177        x: *mut BIGNUM,
14178        y: *mut BIGNUM,
14179        ctx: *mut BN_CTX,
14180    ) -> ::std::os::raw::c_int;
14181}
14182extern "C" {
14183    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_get_affine_coordinates"]
14184    pub fn EC_POINT_get_affine_coordinates(
14185        group: *const EC_GROUP,
14186        point: *const EC_POINT,
14187        x: *mut BIGNUM,
14188        y: *mut BIGNUM,
14189        ctx: *mut BN_CTX,
14190    ) -> ::std::os::raw::c_int;
14191}
14192extern "C" {
14193    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_set_affine_coordinates_GFp"]
14194    pub fn EC_POINT_set_affine_coordinates_GFp(
14195        group: *const EC_GROUP,
14196        point: *mut EC_POINT,
14197        x: *const BIGNUM,
14198        y: *const BIGNUM,
14199        ctx: *mut BN_CTX,
14200    ) -> ::std::os::raw::c_int;
14201}
14202extern "C" {
14203    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_set_affine_coordinates"]
14204    pub fn EC_POINT_set_affine_coordinates(
14205        group: *const EC_GROUP,
14206        point: *mut EC_POINT,
14207        x: *const BIGNUM,
14208        y: *const BIGNUM,
14209        ctx: *mut BN_CTX,
14210    ) -> ::std::os::raw::c_int;
14211}
14212extern "C" {
14213    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_point2oct"]
14214    pub fn EC_POINT_point2oct(
14215        group: *const EC_GROUP,
14216        point: *const EC_POINT,
14217        form: point_conversion_form_t,
14218        buf: *mut u8,
14219        len: usize,
14220        ctx: *mut BN_CTX,
14221    ) -> usize;
14222}
14223extern "C" {
14224    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_point2cbb"]
14225    pub fn EC_POINT_point2cbb(
14226        out: *mut CBB,
14227        group: *const EC_GROUP,
14228        point: *const EC_POINT,
14229        form: point_conversion_form_t,
14230        ctx: *mut BN_CTX,
14231    ) -> ::std::os::raw::c_int;
14232}
14233extern "C" {
14234    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_oct2point"]
14235    pub fn EC_POINT_oct2point(
14236        group: *const EC_GROUP,
14237        point: *mut EC_POINT,
14238        buf: *const u8,
14239        len: usize,
14240        ctx: *mut BN_CTX,
14241    ) -> ::std::os::raw::c_int;
14242}
14243extern "C" {
14244    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_set_compressed_coordinates_GFp"]
14245    pub fn EC_POINT_set_compressed_coordinates_GFp(
14246        group: *const EC_GROUP,
14247        point: *mut EC_POINT,
14248        x: *const BIGNUM,
14249        y_bit: ::std::os::raw::c_int,
14250        ctx: *mut BN_CTX,
14251    ) -> ::std::os::raw::c_int;
14252}
14253extern "C" {
14254    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_add"]
14255    pub fn EC_POINT_add(
14256        group: *const EC_GROUP,
14257        r: *mut EC_POINT,
14258        a: *const EC_POINT,
14259        b: *const EC_POINT,
14260        ctx: *mut BN_CTX,
14261    ) -> ::std::os::raw::c_int;
14262}
14263extern "C" {
14264    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_dbl"]
14265    pub fn EC_POINT_dbl(
14266        group: *const EC_GROUP,
14267        r: *mut EC_POINT,
14268        a: *const EC_POINT,
14269        ctx: *mut BN_CTX,
14270    ) -> ::std::os::raw::c_int;
14271}
14272extern "C" {
14273    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_invert"]
14274    pub fn EC_POINT_invert(
14275        group: *const EC_GROUP,
14276        a: *mut EC_POINT,
14277        ctx: *mut BN_CTX,
14278    ) -> ::std::os::raw::c_int;
14279}
14280extern "C" {
14281    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_mul"]
14282    pub fn EC_POINT_mul(
14283        group: *const EC_GROUP,
14284        r: *mut EC_POINT,
14285        n: *const BIGNUM,
14286        q: *const EC_POINT,
14287        m: *const BIGNUM,
14288        ctx: *mut BN_CTX,
14289    ) -> ::std::os::raw::c_int;
14290}
14291extern "C" {
14292    #[link_name = "\u{1}aws_lc_0_38_0_EC_hash_to_curve_p256_xmd_sha256_sswu"]
14293    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
14294        group: *const EC_GROUP,
14295        out: *mut EC_POINT,
14296        dst: *const u8,
14297        dst_len: usize,
14298        msg: *const u8,
14299        msg_len: usize,
14300    ) -> ::std::os::raw::c_int;
14301}
14302extern "C" {
14303    #[link_name = "\u{1}aws_lc_0_38_0_EC_hash_to_curve_p384_xmd_sha384_sswu"]
14304    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
14305        group: *const EC_GROUP,
14306        out: *mut EC_POINT,
14307        dst: *const u8,
14308        dst_len: usize,
14309        msg: *const u8,
14310        msg_len: usize,
14311    ) -> ::std::os::raw::c_int;
14312}
14313extern "C" {
14314    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_free"]
14315    pub fn EC_GROUP_free(group: *mut EC_GROUP);
14316}
14317extern "C" {
14318    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_dup"]
14319    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
14320}
14321extern "C" {
14322    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_new_curve_GFp"]
14323    pub fn EC_GROUP_new_curve_GFp(
14324        p: *const BIGNUM,
14325        a: *const BIGNUM,
14326        b: *const BIGNUM,
14327        ctx: *mut BN_CTX,
14328    ) -> *mut EC_GROUP;
14329}
14330extern "C" {
14331    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_set_generator"]
14332    pub fn EC_GROUP_set_generator(
14333        group: *mut EC_GROUP,
14334        generator: *const EC_POINT,
14335        order: *const BIGNUM,
14336        cofactor: *const BIGNUM,
14337    ) -> ::std::os::raw::c_int;
14338}
14339extern "C" {
14340    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_point2bn"]
14341    pub fn EC_POINT_point2bn(
14342        group: *const EC_GROUP,
14343        point: *const EC_POINT,
14344        form: point_conversion_form_t,
14345        ret: *mut BIGNUM,
14346        ctx: *mut BN_CTX,
14347    ) -> *mut BIGNUM;
14348}
14349extern "C" {
14350    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_bn2point"]
14351    pub fn EC_POINT_bn2point(
14352        group: *const EC_GROUP,
14353        bn: *const BIGNUM,
14354        point: *mut EC_POINT,
14355        ctx: *mut BN_CTX,
14356    ) -> *mut EC_POINT;
14357}
14358extern "C" {
14359    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_order"]
14360    pub fn EC_GROUP_get_order(
14361        group: *const EC_GROUP,
14362        order: *mut BIGNUM,
14363        ctx: *mut BN_CTX,
14364    ) -> ::std::os::raw::c_int;
14365}
14366#[repr(C)]
14367#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14368pub struct EC_builtin_curve {
14369    pub nid: ::std::os::raw::c_int,
14370    pub comment: *const ::std::os::raw::c_char,
14371}
14372#[test]
14373fn bindgen_test_layout_EC_builtin_curve() {
14374    const UNINIT: ::std::mem::MaybeUninit<EC_builtin_curve> = ::std::mem::MaybeUninit::uninit();
14375    let ptr = UNINIT.as_ptr();
14376    assert_eq!(
14377        ::std::mem::size_of::<EC_builtin_curve>(),
14378        16usize,
14379        "Size of EC_builtin_curve"
14380    );
14381    assert_eq!(
14382        ::std::mem::align_of::<EC_builtin_curve>(),
14383        8usize,
14384        "Alignment of EC_builtin_curve"
14385    );
14386    assert_eq!(
14387        unsafe { ::std::ptr::addr_of!((*ptr).nid) as usize - ptr as usize },
14388        0usize,
14389        "Offset of field: EC_builtin_curve::nid"
14390    );
14391    assert_eq!(
14392        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
14393        8usize,
14394        "Offset of field: EC_builtin_curve::comment"
14395    );
14396}
14397impl Default for EC_builtin_curve {
14398    fn default() -> Self {
14399        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14400        unsafe {
14401            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14402            s.assume_init()
14403        }
14404    }
14405}
14406extern "C" {
14407    #[link_name = "\u{1}aws_lc_0_38_0_EC_get_builtin_curves"]
14408    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
14409        -> usize;
14410}
14411extern "C" {
14412    #[link_name = "\u{1}aws_lc_0_38_0_EC_POINT_clear_free"]
14413    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
14414}
14415extern "C" {
14416    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_set_seed"]
14417    pub fn EC_GROUP_set_seed(
14418        group: *mut EC_GROUP,
14419        p: *const ::std::os::raw::c_uchar,
14420        len: usize,
14421    ) -> usize;
14422}
14423extern "C" {
14424    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get0_seed"]
14425    pub fn EC_GROUP_get0_seed(group: *const EC_GROUP) -> *mut ::std::os::raw::c_uchar;
14426}
14427extern "C" {
14428    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_seed_len"]
14429    pub fn EC_GROUP_get_seed_len(group: *const EC_GROUP) -> usize;
14430}
14431extern "C" {
14432    #[link_name = "\u{1}aws_lc_0_38_0_ECPKParameters_print"]
14433    pub fn ECPKParameters_print(
14434        bio: *mut BIO,
14435        group: *const EC_GROUP,
14436        offset: ::std::os::raw::c_int,
14437    ) -> ::std::os::raw::c_int;
14438}
14439extern "C" {
14440    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_set_asn1_flag"]
14441    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
14442}
14443extern "C" {
14444    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_asn1_flag"]
14445    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14446}
14447extern "C" {
14448    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_set_point_conversion_form"]
14449    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
14450}
14451extern "C" {
14452    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_get_point_conversion_form"]
14453    pub fn EC_GROUP_get_point_conversion_form(group: *const EC_GROUP) -> point_conversion_form_t;
14454}
14455extern "C" {
14456    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_decoded_from_explicit_params"]
14457    pub fn EC_KEY_decoded_from_explicit_params(key: *const EC_KEY) -> ::std::os::raw::c_int;
14458}
14459#[repr(C)]
14460#[derive(Debug, Copy, Clone)]
14461pub struct ec_method_st {
14462    _unused: [u8; 0],
14463}
14464pub type EC_METHOD = ec_method_st;
14465extern "C" {
14466    #[link_name = "\u{1}aws_lc_0_38_0_EC_GROUP_method_of"]
14467    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
14468}
14469extern "C" {
14470    #[link_name = "\u{1}aws_lc_0_38_0_EC_METHOD_get_field_type"]
14471    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
14472}
14473extern "C" {
14474    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_new"]
14475    pub fn ENGINE_new() -> *mut ENGINE;
14476}
14477extern "C" {
14478    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_free"]
14479    pub fn ENGINE_free(engine: *mut ENGINE) -> ::std::os::raw::c_int;
14480}
14481extern "C" {
14482    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_set_RSA"]
14483    pub fn ENGINE_set_RSA(engine: *mut ENGINE, method: *const RSA_METHOD) -> ::std::os::raw::c_int;
14484}
14485extern "C" {
14486    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_get_RSA"]
14487    pub fn ENGINE_get_RSA(engine: *const ENGINE) -> *const RSA_METHOD;
14488}
14489extern "C" {
14490    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_set_EC"]
14491    pub fn ENGINE_set_EC(
14492        engine: *mut ENGINE,
14493        method: *const EC_KEY_METHOD,
14494    ) -> ::std::os::raw::c_int;
14495}
14496extern "C" {
14497    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_get_EC"]
14498    pub fn ENGINE_get_EC(engine: *const ENGINE) -> *const EC_KEY_METHOD;
14499}
14500extern "C" {
14501    #[link_name = "\u{1}aws_lc_0_38_0_ENGINE_cleanup"]
14502    pub fn ENGINE_cleanup();
14503}
14504extern "C" {
14505    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_new"]
14506    pub fn EC_KEY_new() -> *mut EC_KEY;
14507}
14508extern "C" {
14509    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_new_method"]
14510    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
14511}
14512extern "C" {
14513    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_new_by_curve_name"]
14514    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
14515}
14516extern "C" {
14517    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_free"]
14518    pub fn EC_KEY_free(key: *mut EC_KEY);
14519}
14520extern "C" {
14521    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_dup"]
14522    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
14523}
14524extern "C" {
14525    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_up_ref"]
14526    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14527}
14528extern "C" {
14529    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_is_opaque"]
14530    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
14531}
14532extern "C" {
14533    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get0_group"]
14534    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
14535}
14536extern "C" {
14537    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_group"]
14538    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14539}
14540extern "C" {
14541    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get0_private_key"]
14542    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
14543}
14544extern "C" {
14545    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_private_key"]
14546    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::std::os::raw::c_int;
14547}
14548extern "C" {
14549    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get0_public_key"]
14550    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
14551}
14552extern "C" {
14553    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_public_key"]
14554    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
14555}
14556extern "C" {
14557    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_enc_flags"]
14558    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
14559}
14560extern "C" {
14561    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_enc_flags"]
14562    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
14563}
14564extern "C" {
14565    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_conv_form"]
14566    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
14567}
14568extern "C" {
14569    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_conv_form"]
14570    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
14571}
14572extern "C" {
14573    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_check_key"]
14574    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
14575}
14576extern "C" {
14577    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_check_fips"]
14578    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
14579}
14580extern "C" {
14581    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_public_key_affine_coordinates"]
14582    pub fn EC_KEY_set_public_key_affine_coordinates(
14583        key: *mut EC_KEY,
14584        x: *const BIGNUM,
14585        y: *const BIGNUM,
14586    ) -> ::std::os::raw::c_int;
14587}
14588extern "C" {
14589    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_key2buf"]
14590    pub fn EC_KEY_key2buf(
14591        key: *const EC_KEY,
14592        form: point_conversion_form_t,
14593        out_buf: *mut *mut ::std::os::raw::c_uchar,
14594        ctx: *mut BN_CTX,
14595    ) -> usize;
14596}
14597extern "C" {
14598    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_generate_key"]
14599    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14600}
14601extern "C" {
14602    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_generate_key_fips"]
14603    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14604}
14605extern "C" {
14606    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_derive_from_secret"]
14607    pub fn EC_KEY_derive_from_secret(
14608        group: *const EC_GROUP,
14609        secret: *const u8,
14610        secret_len: usize,
14611    ) -> *mut EC_KEY;
14612}
14613extern "C" {
14614    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_parse_private_key"]
14615    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
14616}
14617extern "C" {
14618    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_marshal_private_key"]
14619    pub fn EC_KEY_marshal_private_key(
14620        cbb: *mut CBB,
14621        key: *const EC_KEY,
14622        enc_flags: ::std::os::raw::c_uint,
14623    ) -> ::std::os::raw::c_int;
14624}
14625extern "C" {
14626    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_parse_curve_name"]
14627    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
14628}
14629extern "C" {
14630    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_marshal_curve_name"]
14631    pub fn EC_KEY_marshal_curve_name(
14632        cbb: *mut CBB,
14633        group: *const EC_GROUP,
14634    ) -> ::std::os::raw::c_int;
14635}
14636extern "C" {
14637    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_parse_parameters"]
14638    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
14639}
14640extern "C" {
14641    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_ex_new_index"]
14642    pub fn EC_KEY_get_ex_new_index(
14643        argl: ::std::os::raw::c_long,
14644        argp: *mut ::std::os::raw::c_void,
14645        unused: *mut CRYPTO_EX_unused,
14646        dup_unused: CRYPTO_EX_dup,
14647        free_func: CRYPTO_EX_free,
14648    ) -> ::std::os::raw::c_int;
14649}
14650extern "C" {
14651    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_ex_data"]
14652    pub fn EC_KEY_set_ex_data(
14653        r: *mut EC_KEY,
14654        idx: ::std::os::raw::c_int,
14655        arg: *mut ::std::os::raw::c_void,
14656    ) -> ::std::os::raw::c_int;
14657}
14658extern "C" {
14659    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_ex_data"]
14660    pub fn EC_KEY_get_ex_data(
14661        r: *const EC_KEY,
14662        idx: ::std::os::raw::c_int,
14663    ) -> *mut ::std::os::raw::c_void;
14664}
14665extern "C" {
14666    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECPrivateKey"]
14667    pub fn d2i_ECPrivateKey(
14668        out_key: *mut *mut EC_KEY,
14669        inp: *mut *const u8,
14670        len: ::std::os::raw::c_long,
14671    ) -> *mut EC_KEY;
14672}
14673extern "C" {
14674    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECPrivateKey"]
14675    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14676}
14677extern "C" {
14678    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECParameters"]
14679    pub fn d2i_ECParameters(
14680        out_key: *mut *mut EC_KEY,
14681        inp: *mut *const u8,
14682        len: ::std::os::raw::c_long,
14683    ) -> *mut EC_KEY;
14684}
14685extern "C" {
14686    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECParameters"]
14687    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14688}
14689extern "C" {
14690    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECPKParameters_bio"]
14691    pub fn d2i_ECPKParameters_bio(bio: *mut BIO, out_group: *mut *mut EC_GROUP) -> *mut EC_GROUP;
14692}
14693extern "C" {
14694    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECPKParameters_bio"]
14695    pub fn i2d_ECPKParameters_bio(bio: *mut BIO, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14696}
14697extern "C" {
14698    #[link_name = "\u{1}aws_lc_0_38_0_o2i_ECPublicKey"]
14699    pub fn o2i_ECPublicKey(
14700        out_key: *mut *mut EC_KEY,
14701        inp: *mut *const u8,
14702        len: ::std::os::raw::c_long,
14703    ) -> *mut EC_KEY;
14704}
14705extern "C" {
14706    #[link_name = "\u{1}aws_lc_0_38_0_i2o_ECPublicKey"]
14707    pub fn i2o_ECPublicKey(
14708        key: *const EC_KEY,
14709        outp: *mut *mut ::std::os::raw::c_uchar,
14710    ) -> ::std::os::raw::c_int;
14711}
14712extern "C" {
14713    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_default_method"]
14714    pub fn EC_KEY_get_default_method() -> *const EC_KEY_METHOD;
14715}
14716extern "C" {
14717    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_OpenSSL"]
14718    pub fn EC_KEY_OpenSSL() -> *const EC_KEY_METHOD;
14719}
14720extern "C" {
14721    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_METHOD_new"]
14722    pub fn EC_KEY_METHOD_new(eckey_meth: *const EC_KEY_METHOD) -> *mut EC_KEY_METHOD;
14723}
14724extern "C" {
14725    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_METHOD_free"]
14726    pub fn EC_KEY_METHOD_free(eckey_meth: *mut EC_KEY_METHOD);
14727}
14728extern "C" {
14729    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_method"]
14730    pub fn EC_KEY_set_method(ec: *mut EC_KEY, meth: *const EC_KEY_METHOD) -> ::std::os::raw::c_int;
14731}
14732extern "C" {
14733    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_get_method"]
14734    pub fn EC_KEY_get_method(ec: *const EC_KEY) -> *const EC_KEY_METHOD;
14735}
14736extern "C" {
14737    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_METHOD_set_sign_awslc"]
14738    pub fn EC_KEY_METHOD_set_sign_awslc(
14739        meth: *mut EC_KEY_METHOD,
14740        sign: ::std::option::Option<
14741            unsafe extern "C" fn(
14742                type_: ::std::os::raw::c_int,
14743                digest: *const u8,
14744                digest_len: ::std::os::raw::c_int,
14745                sig: *mut u8,
14746                siglen: *mut ::std::os::raw::c_uint,
14747                k_inv: *const BIGNUM,
14748                r: *const BIGNUM,
14749                eckey: *mut EC_KEY,
14750            ) -> ::std::os::raw::c_int,
14751        >,
14752        sign_sig: ::std::option::Option<
14753            unsafe extern "C" fn(
14754                digest: *const u8,
14755                digest_len: ::std::os::raw::c_int,
14756                in_kinv: *const BIGNUM,
14757                in_r: *const BIGNUM,
14758                eckey: *mut EC_KEY,
14759            ) -> *mut ECDSA_SIG,
14760        >,
14761    );
14762}
14763extern "C" {
14764    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_METHOD_set_init_awslc"]
14765    pub fn EC_KEY_METHOD_set_init_awslc(
14766        meth: *mut EC_KEY_METHOD,
14767        init: ::std::option::Option<
14768            unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int,
14769        >,
14770        finish: ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY)>,
14771    );
14772}
14773extern "C" {
14774    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_METHOD_set_flags"]
14775    pub fn EC_KEY_METHOD_set_flags(
14776        meth: *mut EC_KEY_METHOD,
14777        flags: ::std::os::raw::c_int,
14778    ) -> ::std::os::raw::c_int;
14779}
14780extern "C" {
14781    #[link_name = "\u{1}aws_lc_0_38_0_EC_KEY_set_asn1_flag"]
14782    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
14783}
14784extern "C" {
14785    #[link_name = "\u{1}aws_lc_0_38_0_ECDH_compute_key"]
14786    pub fn ECDH_compute_key(
14787        out: *mut ::std::os::raw::c_void,
14788        outlen: usize,
14789        pub_key: *const EC_POINT,
14790        priv_key: *const EC_KEY,
14791        kdf: ::std::option::Option<
14792            unsafe extern "C" fn(
14793                in_: *const ::std::os::raw::c_void,
14794                inlen: usize,
14795                out: *mut ::std::os::raw::c_void,
14796                outlen: *mut usize,
14797            ) -> *mut ::std::os::raw::c_void,
14798        >,
14799    ) -> ::std::os::raw::c_int;
14800}
14801extern "C" {
14802    #[link_name = "\u{1}aws_lc_0_38_0_ECDH_compute_key_fips"]
14803    pub fn ECDH_compute_key_fips(
14804        out: *mut u8,
14805        out_len: usize,
14806        pub_key: *const EC_POINT,
14807        priv_key: *const EC_KEY,
14808    ) -> ::std::os::raw::c_int;
14809}
14810extern "C" {
14811    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_sign"]
14812    pub fn ECDSA_sign(
14813        type_: ::std::os::raw::c_int,
14814        digest: *const u8,
14815        digest_len: usize,
14816        sig: *mut u8,
14817        sig_len: *mut ::std::os::raw::c_uint,
14818        key: *const EC_KEY,
14819    ) -> ::std::os::raw::c_int;
14820}
14821extern "C" {
14822    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_verify"]
14823    pub fn ECDSA_verify(
14824        type_: ::std::os::raw::c_int,
14825        digest: *const u8,
14826        digest_len: usize,
14827        sig: *const u8,
14828        sig_len: usize,
14829        key: *const EC_KEY,
14830    ) -> ::std::os::raw::c_int;
14831}
14832extern "C" {
14833    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_size"]
14834    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
14835}
14836#[repr(C)]
14837#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14838pub struct ecdsa_sig_st {
14839    pub r: *mut BIGNUM,
14840    pub s: *mut BIGNUM,
14841}
14842#[test]
14843fn bindgen_test_layout_ecdsa_sig_st() {
14844    const UNINIT: ::std::mem::MaybeUninit<ecdsa_sig_st> = ::std::mem::MaybeUninit::uninit();
14845    let ptr = UNINIT.as_ptr();
14846    assert_eq!(
14847        ::std::mem::size_of::<ecdsa_sig_st>(),
14848        16usize,
14849        "Size of ecdsa_sig_st"
14850    );
14851    assert_eq!(
14852        ::std::mem::align_of::<ecdsa_sig_st>(),
14853        8usize,
14854        "Alignment of ecdsa_sig_st"
14855    );
14856    assert_eq!(
14857        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
14858        0usize,
14859        "Offset of field: ecdsa_sig_st::r"
14860    );
14861    assert_eq!(
14862        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
14863        8usize,
14864        "Offset of field: ecdsa_sig_st::s"
14865    );
14866}
14867impl Default for ecdsa_sig_st {
14868    fn default() -> Self {
14869        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14870        unsafe {
14871            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14872            s.assume_init()
14873        }
14874    }
14875}
14876extern "C" {
14877    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_new"]
14878    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
14879}
14880extern "C" {
14881    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_free"]
14882    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
14883}
14884extern "C" {
14885    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_get0_r"]
14886    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
14887}
14888extern "C" {
14889    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_get0_s"]
14890    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
14891}
14892extern "C" {
14893    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_get0"]
14894    pub fn ECDSA_SIG_get0(
14895        sig: *const ECDSA_SIG,
14896        out_r: *mut *const BIGNUM,
14897        out_s: *mut *const BIGNUM,
14898    );
14899}
14900extern "C" {
14901    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_set0"]
14902    pub fn ECDSA_SIG_set0(
14903        sig: *mut ECDSA_SIG,
14904        r: *mut BIGNUM,
14905        s: *mut BIGNUM,
14906    ) -> ::std::os::raw::c_int;
14907}
14908extern "C" {
14909    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_do_sign"]
14910    pub fn ECDSA_do_sign(
14911        digest: *const u8,
14912        digest_len: usize,
14913        key: *const EC_KEY,
14914    ) -> *mut ECDSA_SIG;
14915}
14916extern "C" {
14917    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_do_verify"]
14918    pub fn ECDSA_do_verify(
14919        digest: *const u8,
14920        digest_len: usize,
14921        sig: *const ECDSA_SIG,
14922        key: *const EC_KEY,
14923    ) -> ::std::os::raw::c_int;
14924}
14925extern "C" {
14926    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_parse"]
14927    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
14928}
14929extern "C" {
14930    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_from_bytes"]
14931    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
14932}
14933extern "C" {
14934    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_marshal"]
14935    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
14936}
14937extern "C" {
14938    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_to_bytes"]
14939    pub fn ECDSA_SIG_to_bytes(
14940        out_bytes: *mut *mut u8,
14941        out_len: *mut usize,
14942        sig: *const ECDSA_SIG,
14943    ) -> ::std::os::raw::c_int;
14944}
14945extern "C" {
14946    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_SIG_max_len"]
14947    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
14948}
14949extern "C" {
14950    #[link_name = "\u{1}aws_lc_0_38_0_ECDSA_sign_with_nonce_and_leak_private_key_for_testing"]
14951    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
14952        digest: *const u8,
14953        digest_len: usize,
14954        eckey: *const EC_KEY,
14955        nonce: *const u8,
14956        nonce_len: usize,
14957    ) -> *mut ECDSA_SIG;
14958}
14959extern "C" {
14960    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECDSA_SIG"]
14961    pub fn d2i_ECDSA_SIG(
14962        out: *mut *mut ECDSA_SIG,
14963        inp: *mut *const u8,
14964        len: ::std::os::raw::c_long,
14965    ) -> *mut ECDSA_SIG;
14966}
14967extern "C" {
14968    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECDSA_SIG"]
14969    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14970}
14971extern "C" {
14972    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_gcm"]
14973    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
14974}
14975extern "C" {
14976    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_192_gcm"]
14977    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
14978}
14979extern "C" {
14980    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_gcm"]
14981    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
14982}
14983extern "C" {
14984    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_chacha20_poly1305"]
14985    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
14986}
14987extern "C" {
14988    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_xchacha20_poly1305"]
14989    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
14990}
14991extern "C" {
14992    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_ctr_hmac_sha256"]
14993    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
14994}
14995extern "C" {
14996    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_ctr_hmac_sha256"]
14997    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
14998}
14999extern "C" {
15000    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_gcm_siv"]
15001    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
15002}
15003extern "C" {
15004    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_gcm_siv"]
15005    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
15006}
15007extern "C" {
15008    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_gcm_randnonce"]
15009    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
15010}
15011extern "C" {
15012    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_gcm_randnonce"]
15013    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
15014}
15015extern "C" {
15016    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_ccm_bluetooth"]
15017    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
15018}
15019extern "C" {
15020    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_ccm_bluetooth_8"]
15021    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
15022}
15023extern "C" {
15024    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_ccm_matter"]
15025    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
15026}
15027extern "C" {
15028    #[link_name = "\u{1}aws_lc_0_38_0_EVP_has_aes_hardware"]
15029    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
15030}
15031extern "C" {
15032    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_key_length"]
15033    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
15034}
15035extern "C" {
15036    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_nonce_length"]
15037    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
15038}
15039extern "C" {
15040    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_max_overhead"]
15041    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
15042}
15043extern "C" {
15044    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_max_tag_len"]
15045    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
15046}
15047#[repr(C)]
15048#[derive(Copy, Clone)]
15049pub union evp_aead_ctx_st_state {
15050    pub opaque: [u8; 564usize],
15051    pub alignment: u64,
15052    pub ptr: *mut ::std::os::raw::c_void,
15053}
15054#[test]
15055fn bindgen_test_layout_evp_aead_ctx_st_state() {
15056    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st_state> =
15057        ::std::mem::MaybeUninit::uninit();
15058    let ptr = UNINIT.as_ptr();
15059    assert_eq!(
15060        ::std::mem::size_of::<evp_aead_ctx_st_state>(),
15061        568usize,
15062        "Size of evp_aead_ctx_st_state"
15063    );
15064    assert_eq!(
15065        ::std::mem::align_of::<evp_aead_ctx_st_state>(),
15066        8usize,
15067        "Alignment of evp_aead_ctx_st_state"
15068    );
15069    assert_eq!(
15070        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
15071        0usize,
15072        "Offset of field: evp_aead_ctx_st_state::opaque"
15073    );
15074    assert_eq!(
15075        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
15076        0usize,
15077        "Offset of field: evp_aead_ctx_st_state::alignment"
15078    );
15079    assert_eq!(
15080        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
15081        0usize,
15082        "Offset of field: evp_aead_ctx_st_state::ptr"
15083    );
15084}
15085impl Default for evp_aead_ctx_st_state {
15086    fn default() -> Self {
15087        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15088        unsafe {
15089            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15090            s.assume_init()
15091        }
15092    }
15093}
15094#[repr(C)]
15095#[derive(Copy, Clone)]
15096pub struct evp_aead_ctx_st {
15097    pub aead: *const EVP_AEAD,
15098    pub state: evp_aead_ctx_st_state,
15099    pub state_offset: u8,
15100    pub tag_len: u8,
15101}
15102#[test]
15103fn bindgen_test_layout_evp_aead_ctx_st() {
15104    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st> = ::std::mem::MaybeUninit::uninit();
15105    let ptr = UNINIT.as_ptr();
15106    assert_eq!(
15107        ::std::mem::size_of::<evp_aead_ctx_st>(),
15108        584usize,
15109        "Size of evp_aead_ctx_st"
15110    );
15111    assert_eq!(
15112        ::std::mem::align_of::<evp_aead_ctx_st>(),
15113        8usize,
15114        "Alignment of evp_aead_ctx_st"
15115    );
15116    assert_eq!(
15117        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
15118        0usize,
15119        "Offset of field: evp_aead_ctx_st::aead"
15120    );
15121    assert_eq!(
15122        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15123        8usize,
15124        "Offset of field: evp_aead_ctx_st::state"
15125    );
15126    assert_eq!(
15127        unsafe { ::std::ptr::addr_of!((*ptr).state_offset) as usize - ptr as usize },
15128        576usize,
15129        "Offset of field: evp_aead_ctx_st::state_offset"
15130    );
15131    assert_eq!(
15132        unsafe { ::std::ptr::addr_of!((*ptr).tag_len) as usize - ptr as usize },
15133        577usize,
15134        "Offset of field: evp_aead_ctx_st::tag_len"
15135    );
15136}
15137impl Default for evp_aead_ctx_st {
15138    fn default() -> Self {
15139        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15140        unsafe {
15141            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15142            s.assume_init()
15143        }
15144    }
15145}
15146extern "C" {
15147    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_zero"]
15148    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
15149}
15150extern "C" {
15151    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_new"]
15152    pub fn EVP_AEAD_CTX_new(
15153        aead: *const EVP_AEAD,
15154        key: *const u8,
15155        key_len: usize,
15156        tag_len: usize,
15157    ) -> *mut EVP_AEAD_CTX;
15158}
15159extern "C" {
15160    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_free"]
15161    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
15162}
15163extern "C" {
15164    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_init"]
15165    pub fn EVP_AEAD_CTX_init(
15166        ctx: *mut EVP_AEAD_CTX,
15167        aead: *const EVP_AEAD,
15168        key: *const u8,
15169        key_len: usize,
15170        tag_len: usize,
15171        impl_: *mut ENGINE,
15172    ) -> ::std::os::raw::c_int;
15173}
15174extern "C" {
15175    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_cleanup"]
15176    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
15177}
15178extern "C" {
15179    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_seal"]
15180    pub fn EVP_AEAD_CTX_seal(
15181        ctx: *const EVP_AEAD_CTX,
15182        out: *mut u8,
15183        out_len: *mut usize,
15184        max_out_len: usize,
15185        nonce: *const u8,
15186        nonce_len: usize,
15187        in_: *const u8,
15188        in_len: usize,
15189        ad: *const u8,
15190        ad_len: usize,
15191    ) -> ::std::os::raw::c_int;
15192}
15193extern "C" {
15194    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_open"]
15195    pub fn EVP_AEAD_CTX_open(
15196        ctx: *const EVP_AEAD_CTX,
15197        out: *mut u8,
15198        out_len: *mut usize,
15199        max_out_len: usize,
15200        nonce: *const u8,
15201        nonce_len: usize,
15202        in_: *const u8,
15203        in_len: usize,
15204        ad: *const u8,
15205        ad_len: usize,
15206    ) -> ::std::os::raw::c_int;
15207}
15208extern "C" {
15209    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_seal_scatter"]
15210    pub fn EVP_AEAD_CTX_seal_scatter(
15211        ctx: *const EVP_AEAD_CTX,
15212        out: *mut u8,
15213        out_tag: *mut u8,
15214        out_tag_len: *mut usize,
15215        max_out_tag_len: usize,
15216        nonce: *const u8,
15217        nonce_len: usize,
15218        in_: *const u8,
15219        in_len: usize,
15220        extra_in: *const u8,
15221        extra_in_len: usize,
15222        ad: *const u8,
15223        ad_len: usize,
15224    ) -> ::std::os::raw::c_int;
15225}
15226extern "C" {
15227    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_open_gather"]
15228    pub fn EVP_AEAD_CTX_open_gather(
15229        ctx: *const EVP_AEAD_CTX,
15230        out: *mut u8,
15231        nonce: *const u8,
15232        nonce_len: usize,
15233        in_: *const u8,
15234        in_len: usize,
15235        in_tag: *const u8,
15236        in_tag_len: usize,
15237        ad: *const u8,
15238        ad_len: usize,
15239    ) -> ::std::os::raw::c_int;
15240}
15241extern "C" {
15242    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_aead"]
15243    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
15244}
15245extern "C" {
15246    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_cbc_sha1_tls"]
15247    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
15248}
15249extern "C" {
15250    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_cbc_sha1_tls_implicit_iv"]
15251    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15252}
15253extern "C" {
15254    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_cbc_sha1_tls"]
15255    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
15256}
15257extern "C" {
15258    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_cbc_sha1_tls_implicit_iv"]
15259    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15260}
15261extern "C" {
15262    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_cbc_sha256_tls"]
15263    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
15264}
15265extern "C" {
15266    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_cbc_sha256_tls_implicit_iv"]
15267    pub fn EVP_aead_aes_128_cbc_sha256_tls_implicit_iv() -> *const EVP_AEAD;
15268}
15269extern "C" {
15270    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_cbc_sha384_tls"]
15271    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
15272}
15273extern "C" {
15274    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_des_ede3_cbc_sha1_tls"]
15275    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
15276}
15277extern "C" {
15278    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv"]
15279    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15280}
15281extern "C" {
15282    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_null_sha1_tls"]
15283    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
15284}
15285extern "C" {
15286    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_gcm_tls12"]
15287    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
15288}
15289extern "C" {
15290    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_gcm_tls12"]
15291    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
15292}
15293extern "C" {
15294    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_128_gcm_tls13"]
15295    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
15296}
15297extern "C" {
15298    #[link_name = "\u{1}aws_lc_0_38_0_EVP_aead_aes_256_gcm_tls13"]
15299    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
15300}
15301pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
15302pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
15303pub type evp_aead_direction_t = ::std::os::raw::c_uint;
15304extern "C" {
15305    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_init_with_direction"]
15306    pub fn EVP_AEAD_CTX_init_with_direction(
15307        ctx: *mut EVP_AEAD_CTX,
15308        aead: *const EVP_AEAD,
15309        key: *const u8,
15310        key_len: usize,
15311        tag_len: usize,
15312        dir: evp_aead_direction_t,
15313    ) -> ::std::os::raw::c_int;
15314}
15315extern "C" {
15316    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_get_iv"]
15317    pub fn EVP_AEAD_CTX_get_iv(
15318        ctx: *const EVP_AEAD_CTX,
15319        out_iv: *mut *const u8,
15320        out_len: *mut usize,
15321    ) -> ::std::os::raw::c_int;
15322}
15323extern "C" {
15324    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_CTX_tag_len"]
15325    pub fn EVP_AEAD_CTX_tag_len(
15326        ctx: *const EVP_AEAD_CTX,
15327        out_tag_len: *mut usize,
15328        in_len: usize,
15329        extra_in_len: usize,
15330    ) -> ::std::os::raw::c_int;
15331}
15332extern "C" {
15333    #[link_name = "\u{1}aws_lc_0_38_0_EVP_AEAD_get_iv_from_ipv4_nanosecs"]
15334    pub fn EVP_AEAD_get_iv_from_ipv4_nanosecs(
15335        ipv4_address: u32,
15336        nanosecs: u64,
15337        out_iv: *mut u8,
15338    ) -> ::std::os::raw::c_int;
15339}
15340extern "C" {
15341    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_dup"]
15342    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15343}
15344extern "C" {
15345    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_cmp"]
15346    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15347}
15348extern "C" {
15349    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_get0_data"]
15350    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15351}
15352extern "C" {
15353    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_length"]
15354    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15355}
15356extern "C" {
15357    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_obj2nid"]
15358    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15359}
15360extern "C" {
15361    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_cbs2nid"]
15362    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::std::os::raw::c_int;
15363}
15364extern "C" {
15365    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_sn2nid"]
15366    pub fn OBJ_sn2nid(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15367}
15368extern "C" {
15369    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_ln2nid"]
15370    pub fn OBJ_ln2nid(long_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15371}
15372extern "C" {
15373    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_txt2nid"]
15374    pub fn OBJ_txt2nid(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15375}
15376extern "C" {
15377    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_nid2obj"]
15378    pub fn OBJ_nid2obj(nid: ::std::os::raw::c_int) -> *mut ASN1_OBJECT;
15379}
15380extern "C" {
15381    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_get_undef"]
15382    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15383}
15384extern "C" {
15385    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_nid2sn"]
15386    pub fn OBJ_nid2sn(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15387}
15388extern "C" {
15389    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_nid2ln"]
15390    pub fn OBJ_nid2ln(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15391}
15392extern "C" {
15393    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_nid2cbb"]
15394    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
15395}
15396extern "C" {
15397    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_txt2obj"]
15398    pub fn OBJ_txt2obj(
15399        s: *const ::std::os::raw::c_char,
15400        dont_search_names: ::std::os::raw::c_int,
15401    ) -> *mut ASN1_OBJECT;
15402}
15403extern "C" {
15404    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_obj2txt"]
15405    pub fn OBJ_obj2txt(
15406        out: *mut ::std::os::raw::c_char,
15407        out_len: ::std::os::raw::c_int,
15408        obj: *const ASN1_OBJECT,
15409        always_return_oid: ::std::os::raw::c_int,
15410    ) -> ::std::os::raw::c_int;
15411}
15412extern "C" {
15413    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_create"]
15414    pub fn OBJ_create(
15415        oid: *const ::std::os::raw::c_char,
15416        short_name: *const ::std::os::raw::c_char,
15417        long_name: *const ::std::os::raw::c_char,
15418    ) -> ::std::os::raw::c_int;
15419}
15420extern "C" {
15421    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_find_sigid_algs"]
15422    pub fn OBJ_find_sigid_algs(
15423        sign_nid: ::std::os::raw::c_int,
15424        out_digest_nid: *mut ::std::os::raw::c_int,
15425        out_pkey_nid: *mut ::std::os::raw::c_int,
15426    ) -> ::std::os::raw::c_int;
15427}
15428extern "C" {
15429    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_find_sigid_by_algs"]
15430    pub fn OBJ_find_sigid_by_algs(
15431        out_sign_nid: *mut ::std::os::raw::c_int,
15432        digest_nid: ::std::os::raw::c_int,
15433        pkey_nid: ::std::os::raw::c_int,
15434    ) -> ::std::os::raw::c_int;
15435}
15436#[repr(C)]
15437#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15438pub struct obj_name_st {
15439    pub type_: ::std::os::raw::c_int,
15440    pub alias: ::std::os::raw::c_int,
15441    pub name: *const ::std::os::raw::c_char,
15442    pub data: *const ::std::os::raw::c_char,
15443}
15444#[test]
15445fn bindgen_test_layout_obj_name_st() {
15446    const UNINIT: ::std::mem::MaybeUninit<obj_name_st> = ::std::mem::MaybeUninit::uninit();
15447    let ptr = UNINIT.as_ptr();
15448    assert_eq!(
15449        ::std::mem::size_of::<obj_name_st>(),
15450        24usize,
15451        "Size of obj_name_st"
15452    );
15453    assert_eq!(
15454        ::std::mem::align_of::<obj_name_st>(),
15455        8usize,
15456        "Alignment of obj_name_st"
15457    );
15458    assert_eq!(
15459        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
15460        0usize,
15461        "Offset of field: obj_name_st::type_"
15462    );
15463    assert_eq!(
15464        unsafe { ::std::ptr::addr_of!((*ptr).alias) as usize - ptr as usize },
15465        4usize,
15466        "Offset of field: obj_name_st::alias"
15467    );
15468    assert_eq!(
15469        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
15470        8usize,
15471        "Offset of field: obj_name_st::name"
15472    );
15473    assert_eq!(
15474        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15475        16usize,
15476        "Offset of field: obj_name_st::data"
15477    );
15478}
15479impl Default for obj_name_st {
15480    fn default() -> Self {
15481        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15482        unsafe {
15483            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15484            s.assume_init()
15485        }
15486    }
15487}
15488pub type OBJ_NAME = obj_name_st;
15489extern "C" {
15490    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_NAME_do_all_sorted"]
15491    pub fn OBJ_NAME_do_all_sorted(
15492        type_: ::std::os::raw::c_int,
15493        callback: ::std::option::Option<
15494            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::std::os::raw::c_void),
15495        >,
15496        arg: *mut ::std::os::raw::c_void,
15497    );
15498}
15499extern "C" {
15500    #[link_name = "\u{1}aws_lc_0_38_0_OBJ_cleanup"]
15501    pub fn OBJ_cleanup();
15502}
15503extern "C" {
15504    #[link_name = "\u{1}aws_lc_0_38_0_MD5_Init"]
15505    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15506}
15507extern "C" {
15508    #[link_name = "\u{1}aws_lc_0_38_0_MD5_Update"]
15509    pub fn MD5_Update(
15510        md5: *mut MD5_CTX,
15511        data: *const ::std::os::raw::c_void,
15512        len: usize,
15513    ) -> ::std::os::raw::c_int;
15514}
15515extern "C" {
15516    #[link_name = "\u{1}aws_lc_0_38_0_MD5_Final"]
15517    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15518}
15519extern "C" {
15520    #[link_name = "\u{1}aws_lc_0_38_0_MD5"]
15521    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15522}
15523extern "C" {
15524    #[link_name = "\u{1}aws_lc_0_38_0_MD5_Transform"]
15525    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
15526}
15527#[repr(C)]
15528#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15529pub struct md5_state_st {
15530    pub h: [u32; 4usize],
15531    pub Nl: u32,
15532    pub Nh: u32,
15533    pub data: [u8; 64usize],
15534    pub num: ::std::os::raw::c_uint,
15535}
15536#[test]
15537fn bindgen_test_layout_md5_state_st() {
15538    const UNINIT: ::std::mem::MaybeUninit<md5_state_st> = ::std::mem::MaybeUninit::uninit();
15539    let ptr = UNINIT.as_ptr();
15540    assert_eq!(
15541        ::std::mem::size_of::<md5_state_st>(),
15542        92usize,
15543        "Size of md5_state_st"
15544    );
15545    assert_eq!(
15546        ::std::mem::align_of::<md5_state_st>(),
15547        4usize,
15548        "Alignment of md5_state_st"
15549    );
15550    assert_eq!(
15551        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
15552        0usize,
15553        "Offset of field: md5_state_st::h"
15554    );
15555    assert_eq!(
15556        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
15557        16usize,
15558        "Offset of field: md5_state_st::Nl"
15559    );
15560    assert_eq!(
15561        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
15562        20usize,
15563        "Offset of field: md5_state_st::Nh"
15564    );
15565    assert_eq!(
15566        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15567        24usize,
15568        "Offset of field: md5_state_st::data"
15569    );
15570    assert_eq!(
15571        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
15572        88usize,
15573        "Offset of field: md5_state_st::num"
15574    );
15575}
15576impl Default for md5_state_st {
15577    fn default() -> Self {
15578        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15579        unsafe {
15580            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15581            s.assume_init()
15582        }
15583    }
15584}
15585extern "C" {
15586    #[link_name = "\u{1}aws_lc_0_38_0_HMAC"]
15587    pub fn HMAC(
15588        evp_md: *const EVP_MD,
15589        key: *const ::std::os::raw::c_void,
15590        key_len: usize,
15591        data: *const u8,
15592        data_len: usize,
15593        out: *mut u8,
15594        out_len: *mut ::std::os::raw::c_uint,
15595    ) -> *mut u8;
15596}
15597extern "C" {
15598    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_init"]
15599    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
15600}
15601extern "C" {
15602    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_new"]
15603    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
15604}
15605extern "C" {
15606    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_cleanup"]
15607    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
15608}
15609extern "C" {
15610    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_cleanse"]
15611    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
15612}
15613extern "C" {
15614    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_free"]
15615    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
15616}
15617extern "C" {
15618    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_Init_ex"]
15619    pub fn HMAC_Init_ex(
15620        ctx: *mut HMAC_CTX,
15621        key: *const ::std::os::raw::c_void,
15622        key_len: usize,
15623        md: *const EVP_MD,
15624        impl_: *mut ENGINE,
15625    ) -> ::std::os::raw::c_int;
15626}
15627extern "C" {
15628    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_Update"]
15629    pub fn HMAC_Update(
15630        ctx: *mut HMAC_CTX,
15631        data: *const u8,
15632        data_len: usize,
15633    ) -> ::std::os::raw::c_int;
15634}
15635extern "C" {
15636    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_Final"]
15637    pub fn HMAC_Final(
15638        ctx: *mut HMAC_CTX,
15639        out: *mut u8,
15640        out_len: *mut ::std::os::raw::c_uint,
15641    ) -> ::std::os::raw::c_int;
15642}
15643extern "C" {
15644    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_size"]
15645    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
15646}
15647extern "C" {
15648    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_get_md"]
15649    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
15650}
15651extern "C" {
15652    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_copy_ex"]
15653    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15654}
15655extern "C" {
15656    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_reset"]
15657    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
15658}
15659extern "C" {
15660    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_set_precomputed_key_export"]
15661    pub fn HMAC_set_precomputed_key_export(ctx: *mut HMAC_CTX) -> ::std::os::raw::c_int;
15662}
15663extern "C" {
15664    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_get_precomputed_key"]
15665    pub fn HMAC_get_precomputed_key(
15666        ctx: *mut HMAC_CTX,
15667        out: *mut u8,
15668        out_len: *mut usize,
15669    ) -> ::std::os::raw::c_int;
15670}
15671extern "C" {
15672    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_Init_from_precomputed_key"]
15673    pub fn HMAC_Init_from_precomputed_key(
15674        ctx: *mut HMAC_CTX,
15675        precomputed_key: *const u8,
15676        precompute_key_len: usize,
15677        md: *const EVP_MD,
15678    ) -> ::std::os::raw::c_int;
15679}
15680extern "C" {
15681    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_Init"]
15682    pub fn HMAC_Init(
15683        ctx: *mut HMAC_CTX,
15684        key: *const ::std::os::raw::c_void,
15685        key_len: ::std::os::raw::c_int,
15686        md: *const EVP_MD,
15687    ) -> ::std::os::raw::c_int;
15688}
15689extern "C" {
15690    #[link_name = "\u{1}aws_lc_0_38_0_HMAC_CTX_copy"]
15691    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15692}
15693#[repr(C)]
15694#[derive(Debug, Copy, Clone)]
15695pub struct hmac_methods_st {
15696    _unused: [u8; 0],
15697}
15698pub type HmacMethods = hmac_methods_st;
15699#[repr(C)]
15700#[derive(Copy, Clone)]
15701pub union md_ctx_union {
15702    pub md5: MD5_CTX,
15703    pub sha1: SHA_CTX,
15704    pub sha256: SHA256_CTX,
15705    pub sha512: SHA512_CTX,
15706    pub sha3: [u8; 400usize],
15707}
15708#[test]
15709fn bindgen_test_layout_md_ctx_union() {
15710    const UNINIT: ::std::mem::MaybeUninit<md_ctx_union> = ::std::mem::MaybeUninit::uninit();
15711    let ptr = UNINIT.as_ptr();
15712    assert_eq!(
15713        ::std::mem::size_of::<md_ctx_union>(),
15714        400usize,
15715        "Size of md_ctx_union"
15716    );
15717    assert_eq!(
15718        ::std::mem::align_of::<md_ctx_union>(),
15719        8usize,
15720        "Alignment of md_ctx_union"
15721    );
15722    assert_eq!(
15723        unsafe { ::std::ptr::addr_of!((*ptr).md5) as usize - ptr as usize },
15724        0usize,
15725        "Offset of field: md_ctx_union::md5"
15726    );
15727    assert_eq!(
15728        unsafe { ::std::ptr::addr_of!((*ptr).sha1) as usize - ptr as usize },
15729        0usize,
15730        "Offset of field: md_ctx_union::sha1"
15731    );
15732    assert_eq!(
15733        unsafe { ::std::ptr::addr_of!((*ptr).sha256) as usize - ptr as usize },
15734        0usize,
15735        "Offset of field: md_ctx_union::sha256"
15736    );
15737    assert_eq!(
15738        unsafe { ::std::ptr::addr_of!((*ptr).sha512) as usize - ptr as usize },
15739        0usize,
15740        "Offset of field: md_ctx_union::sha512"
15741    );
15742    assert_eq!(
15743        unsafe { ::std::ptr::addr_of!((*ptr).sha3) as usize - ptr as usize },
15744        0usize,
15745        "Offset of field: md_ctx_union::sha3"
15746    );
15747}
15748impl Default for md_ctx_union {
15749    fn default() -> Self {
15750        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15751        unsafe {
15752            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15753            s.assume_init()
15754        }
15755    }
15756}
15757#[repr(C)]
15758#[derive(Copy, Clone)]
15759pub struct hmac_ctx_st {
15760    pub md: *const EVP_MD,
15761    pub methods: *const HmacMethods,
15762    pub md_ctx: md_ctx_union,
15763    pub i_ctx: md_ctx_union,
15764    pub o_ctx: md_ctx_union,
15765    pub state: i8,
15766}
15767#[test]
15768fn bindgen_test_layout_hmac_ctx_st() {
15769    const UNINIT: ::std::mem::MaybeUninit<hmac_ctx_st> = ::std::mem::MaybeUninit::uninit();
15770    let ptr = UNINIT.as_ptr();
15771    assert_eq!(
15772        ::std::mem::size_of::<hmac_ctx_st>(),
15773        1224usize,
15774        "Size of hmac_ctx_st"
15775    );
15776    assert_eq!(
15777        ::std::mem::align_of::<hmac_ctx_st>(),
15778        8usize,
15779        "Alignment of hmac_ctx_st"
15780    );
15781    assert_eq!(
15782        unsafe { ::std::ptr::addr_of!((*ptr).md) as usize - ptr as usize },
15783        0usize,
15784        "Offset of field: hmac_ctx_st::md"
15785    );
15786    assert_eq!(
15787        unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize },
15788        8usize,
15789        "Offset of field: hmac_ctx_st::methods"
15790    );
15791    assert_eq!(
15792        unsafe { ::std::ptr::addr_of!((*ptr).md_ctx) as usize - ptr as usize },
15793        16usize,
15794        "Offset of field: hmac_ctx_st::md_ctx"
15795    );
15796    assert_eq!(
15797        unsafe { ::std::ptr::addr_of!((*ptr).i_ctx) as usize - ptr as usize },
15798        416usize,
15799        "Offset of field: hmac_ctx_st::i_ctx"
15800    );
15801    assert_eq!(
15802        unsafe { ::std::ptr::addr_of!((*ptr).o_ctx) as usize - ptr as usize },
15803        816usize,
15804        "Offset of field: hmac_ctx_st::o_ctx"
15805    );
15806    assert_eq!(
15807        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15808        1216usize,
15809        "Offset of field: hmac_ctx_st::state"
15810    );
15811}
15812impl Default for hmac_ctx_st {
15813    fn default() -> Self {
15814        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15815        unsafe {
15816            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15817            s.assume_init()
15818        }
15819    }
15820}
15821extern "C" {
15822    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_new"]
15823    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
15824}
15825extern "C" {
15826    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_free"]
15827    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
15828}
15829extern "C" {
15830    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_up_ref"]
15831    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
15832}
15833extern "C" {
15834    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_is_opaque"]
15835    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15836}
15837extern "C" {
15838    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_cmp"]
15839    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
15840}
15841extern "C" {
15842    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_copy_parameters"]
15843    pub fn EVP_PKEY_copy_parameters(
15844        to: *mut EVP_PKEY,
15845        from: *const EVP_PKEY,
15846    ) -> ::std::os::raw::c_int;
15847}
15848extern "C" {
15849    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_missing_parameters"]
15850    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15851}
15852extern "C" {
15853    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_size"]
15854    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15855}
15856extern "C" {
15857    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_bits"]
15858    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15859}
15860extern "C" {
15861    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_id"]
15862    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15863}
15864extern "C" {
15865    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_pqdsa_get_type"]
15866    pub fn EVP_PKEY_pqdsa_get_type(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15867}
15868extern "C" {
15869    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_get0_name"]
15870    pub fn EVP_MD_get0_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15871}
15872extern "C" {
15873    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_name"]
15874    pub fn EVP_MD_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15875}
15876extern "C" {
15877    #[link_name = "\u{1}aws_lc_0_38_0_EVP_get_pw_prompt"]
15878    pub fn EVP_get_pw_prompt() -> *mut ::std::os::raw::c_char;
15879}
15880extern "C" {
15881    #[link_name = "\u{1}aws_lc_0_38_0_EVP_read_pw_string"]
15882    pub fn EVP_read_pw_string(
15883        buf: *mut ::std::os::raw::c_char,
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_38_0_EVP_read_pw_string_min"]
15891    pub fn EVP_read_pw_string_min(
15892        buf: *mut ::std::os::raw::c_char,
15893        min_length: ::std::os::raw::c_int,
15894        length: ::std::os::raw::c_int,
15895        prompt: *const ::std::os::raw::c_char,
15896        verify: ::std::os::raw::c_int,
15897    ) -> ::std::os::raw::c_int;
15898}
15899extern "C" {
15900    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set1_RSA"]
15901    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15902}
15903extern "C" {
15904    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_assign_RSA"]
15905    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15906}
15907extern "C" {
15908    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get0_RSA"]
15909    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15910}
15911extern "C" {
15912    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get1_RSA"]
15913    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15914}
15915extern "C" {
15916    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set1_DSA"]
15917    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15918}
15919extern "C" {
15920    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_assign_DSA"]
15921    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15922}
15923extern "C" {
15924    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get0_DSA"]
15925    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15926}
15927extern "C" {
15928    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get1_DSA"]
15929    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15930}
15931extern "C" {
15932    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set1_EC_KEY"]
15933    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15934}
15935extern "C" {
15936    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_assign_EC_KEY"]
15937    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15938}
15939extern "C" {
15940    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get0_EC_KEY"]
15941    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15942}
15943extern "C" {
15944    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get1_EC_KEY"]
15945    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15946}
15947extern "C" {
15948    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set1_DH"]
15949    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15950}
15951extern "C" {
15952    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_assign_DH"]
15953    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15954}
15955extern "C" {
15956    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get0_DH"]
15957    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
15958}
15959extern "C" {
15960    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get1_DH"]
15961    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
15962}
15963extern "C" {
15964    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dh_paramgen_prime_len"]
15965    pub fn EVP_PKEY_CTX_set_dh_paramgen_prime_len(
15966        ctx: *mut EVP_PKEY_CTX,
15967        pbits: ::std::os::raw::c_int,
15968    ) -> ::std::os::raw::c_int;
15969}
15970extern "C" {
15971    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dh_paramgen_generator"]
15972    pub fn EVP_PKEY_CTX_set_dh_paramgen_generator(
15973        ctx: *mut EVP_PKEY_CTX,
15974        gen_: ::std::os::raw::c_int,
15975    ) -> ::std::os::raw::c_int;
15976}
15977extern "C" {
15978    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set_type"]
15979    pub fn EVP_PKEY_set_type(
15980        pkey: *mut EVP_PKEY,
15981        type_: ::std::os::raw::c_int,
15982    ) -> ::std::os::raw::c_int;
15983}
15984extern "C" {
15985    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set_type_str"]
15986    pub fn EVP_PKEY_set_type_str(
15987        pkey: *mut EVP_PKEY,
15988        str_: *const ::std::os::raw::c_char,
15989        len: ::std::os::raw::c_int,
15990    ) -> ::std::os::raw::c_int;
15991}
15992extern "C" {
15993    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_cmp_parameters"]
15994    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
15995        -> ::std::os::raw::c_int;
15996}
15997extern "C" {
15998    #[link_name = "\u{1}aws_lc_0_38_0_EVP_parse_public_key"]
15999    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
16000}
16001extern "C" {
16002    #[link_name = "\u{1}aws_lc_0_38_0_EVP_marshal_public_key"]
16003    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
16004}
16005extern "C" {
16006    #[link_name = "\u{1}aws_lc_0_38_0_EVP_parse_private_key"]
16007    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
16008}
16009extern "C" {
16010    #[link_name = "\u{1}aws_lc_0_38_0_EVP_marshal_private_key"]
16011    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
16012}
16013extern "C" {
16014    #[link_name = "\u{1}aws_lc_0_38_0_EVP_marshal_private_key_v2"]
16015    pub fn EVP_marshal_private_key_v2(cbb: *mut CBB, key: *const EVP_PKEY)
16016        -> ::std::os::raw::c_int;
16017}
16018extern "C" {
16019    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_new_raw_private_key"]
16020    pub fn EVP_PKEY_new_raw_private_key(
16021        type_: ::std::os::raw::c_int,
16022        unused: *mut ENGINE,
16023        in_: *const u8,
16024        len: usize,
16025    ) -> *mut EVP_PKEY;
16026}
16027extern "C" {
16028    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_new_raw_public_key"]
16029    pub fn EVP_PKEY_new_raw_public_key(
16030        type_: ::std::os::raw::c_int,
16031        unused: *mut ENGINE,
16032        in_: *const u8,
16033        len: usize,
16034    ) -> *mut EVP_PKEY;
16035}
16036extern "C" {
16037    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get_raw_private_key"]
16038    pub fn EVP_PKEY_get_raw_private_key(
16039        pkey: *const EVP_PKEY,
16040        out: *mut u8,
16041        out_len: *mut usize,
16042    ) -> ::std::os::raw::c_int;
16043}
16044extern "C" {
16045    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get_raw_public_key"]
16046    pub fn EVP_PKEY_get_raw_public_key(
16047        pkey: *const EVP_PKEY,
16048        out: *mut u8,
16049        out_len: *mut usize,
16050    ) -> ::std::os::raw::c_int;
16051}
16052extern "C" {
16053    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestSignInit"]
16054    pub fn EVP_DigestSignInit(
16055        ctx: *mut EVP_MD_CTX,
16056        pctx: *mut *mut EVP_PKEY_CTX,
16057        type_: *const EVP_MD,
16058        e: *mut ENGINE,
16059        pkey: *mut EVP_PKEY,
16060    ) -> ::std::os::raw::c_int;
16061}
16062extern "C" {
16063    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestSignUpdate"]
16064    pub fn EVP_DigestSignUpdate(
16065        ctx: *mut EVP_MD_CTX,
16066        data: *const ::std::os::raw::c_void,
16067        len: usize,
16068    ) -> ::std::os::raw::c_int;
16069}
16070extern "C" {
16071    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestSignFinal"]
16072    pub fn EVP_DigestSignFinal(
16073        ctx: *mut EVP_MD_CTX,
16074        out_sig: *mut u8,
16075        out_sig_len: *mut usize,
16076    ) -> ::std::os::raw::c_int;
16077}
16078extern "C" {
16079    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestSign"]
16080    pub fn EVP_DigestSign(
16081        ctx: *mut EVP_MD_CTX,
16082        out_sig: *mut u8,
16083        out_sig_len: *mut usize,
16084        data: *const u8,
16085        data_len: usize,
16086    ) -> ::std::os::raw::c_int;
16087}
16088extern "C" {
16089    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestVerifyInit"]
16090    pub fn EVP_DigestVerifyInit(
16091        ctx: *mut EVP_MD_CTX,
16092        pctx: *mut *mut EVP_PKEY_CTX,
16093        type_: *const EVP_MD,
16094        e: *mut ENGINE,
16095        pkey: *mut EVP_PKEY,
16096    ) -> ::std::os::raw::c_int;
16097}
16098extern "C" {
16099    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestVerifyUpdate"]
16100    pub fn EVP_DigestVerifyUpdate(
16101        ctx: *mut EVP_MD_CTX,
16102        data: *const ::std::os::raw::c_void,
16103        len: usize,
16104    ) -> ::std::os::raw::c_int;
16105}
16106extern "C" {
16107    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestVerifyFinal"]
16108    pub fn EVP_DigestVerifyFinal(
16109        ctx: *mut EVP_MD_CTX,
16110        sig: *const u8,
16111        sig_len: usize,
16112    ) -> ::std::os::raw::c_int;
16113}
16114extern "C" {
16115    #[link_name = "\u{1}aws_lc_0_38_0_EVP_DigestVerify"]
16116    pub fn EVP_DigestVerify(
16117        ctx: *mut EVP_MD_CTX,
16118        sig: *const u8,
16119        sig_len: usize,
16120        data: *const u8,
16121        len: usize,
16122    ) -> ::std::os::raw::c_int;
16123}
16124extern "C" {
16125    #[link_name = "\u{1}aws_lc_0_38_0_EVP_SignInit_ex"]
16126    pub fn EVP_SignInit_ex(
16127        ctx: *mut EVP_MD_CTX,
16128        type_: *const EVP_MD,
16129        impl_: *mut ENGINE,
16130    ) -> ::std::os::raw::c_int;
16131}
16132extern "C" {
16133    #[link_name = "\u{1}aws_lc_0_38_0_EVP_SignInit"]
16134    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16135}
16136extern "C" {
16137    #[link_name = "\u{1}aws_lc_0_38_0_EVP_SignUpdate"]
16138    pub fn EVP_SignUpdate(
16139        ctx: *mut EVP_MD_CTX,
16140        data: *const ::std::os::raw::c_void,
16141        len: usize,
16142    ) -> ::std::os::raw::c_int;
16143}
16144extern "C" {
16145    #[link_name = "\u{1}aws_lc_0_38_0_EVP_SignFinal"]
16146    pub fn EVP_SignFinal(
16147        ctx: *const EVP_MD_CTX,
16148        sig: *mut u8,
16149        out_sig_len: *mut ::std::os::raw::c_uint,
16150        pkey: *mut EVP_PKEY,
16151    ) -> ::std::os::raw::c_int;
16152}
16153extern "C" {
16154    #[link_name = "\u{1}aws_lc_0_38_0_EVP_VerifyInit_ex"]
16155    pub fn EVP_VerifyInit_ex(
16156        ctx: *mut EVP_MD_CTX,
16157        type_: *const EVP_MD,
16158        impl_: *mut ENGINE,
16159    ) -> ::std::os::raw::c_int;
16160}
16161extern "C" {
16162    #[link_name = "\u{1}aws_lc_0_38_0_EVP_VerifyInit"]
16163    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16164}
16165extern "C" {
16166    #[link_name = "\u{1}aws_lc_0_38_0_EVP_VerifyUpdate"]
16167    pub fn EVP_VerifyUpdate(
16168        ctx: *mut EVP_MD_CTX,
16169        data: *const ::std::os::raw::c_void,
16170        len: usize,
16171    ) -> ::std::os::raw::c_int;
16172}
16173extern "C" {
16174    #[link_name = "\u{1}aws_lc_0_38_0_EVP_VerifyFinal"]
16175    pub fn EVP_VerifyFinal(
16176        ctx: *mut EVP_MD_CTX,
16177        sig: *const u8,
16178        sig_len: usize,
16179        pkey: *mut EVP_PKEY,
16180    ) -> ::std::os::raw::c_int;
16181}
16182extern "C" {
16183    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_print_public"]
16184    pub fn EVP_PKEY_print_public(
16185        out: *mut BIO,
16186        pkey: *const EVP_PKEY,
16187        indent: ::std::os::raw::c_int,
16188        pctx: *mut ASN1_PCTX,
16189    ) -> ::std::os::raw::c_int;
16190}
16191extern "C" {
16192    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_print_private"]
16193    pub fn EVP_PKEY_print_private(
16194        out: *mut BIO,
16195        pkey: *const EVP_PKEY,
16196        indent: ::std::os::raw::c_int,
16197        pctx: *mut ASN1_PCTX,
16198    ) -> ::std::os::raw::c_int;
16199}
16200extern "C" {
16201    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_print_params"]
16202    pub fn EVP_PKEY_print_params(
16203        out: *mut BIO,
16204        pkey: *const EVP_PKEY,
16205        indent: ::std::os::raw::c_int,
16206        pctx: *mut ASN1_PCTX,
16207    ) -> ::std::os::raw::c_int;
16208}
16209extern "C" {
16210    #[link_name = "\u{1}aws_lc_0_38_0_PKCS5_PBKDF2_HMAC"]
16211    pub fn PKCS5_PBKDF2_HMAC(
16212        password: *const ::std::os::raw::c_char,
16213        password_len: usize,
16214        salt: *const u8,
16215        salt_len: usize,
16216        iterations: u32,
16217        digest: *const EVP_MD,
16218        key_len: usize,
16219        out_key: *mut u8,
16220    ) -> ::std::os::raw::c_int;
16221}
16222extern "C" {
16223    #[link_name = "\u{1}aws_lc_0_38_0_PKCS5_PBKDF2_HMAC_SHA1"]
16224    pub fn PKCS5_PBKDF2_HMAC_SHA1(
16225        password: *const ::std::os::raw::c_char,
16226        password_len: usize,
16227        salt: *const u8,
16228        salt_len: usize,
16229        iterations: u32,
16230        key_len: usize,
16231        out_key: *mut u8,
16232    ) -> ::std::os::raw::c_int;
16233}
16234extern "C" {
16235    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PBE_scrypt"]
16236    pub fn EVP_PBE_scrypt(
16237        password: *const ::std::os::raw::c_char,
16238        password_len: usize,
16239        salt: *const u8,
16240        salt_len: usize,
16241        N: u64,
16242        r: u64,
16243        p: u64,
16244        max_mem: usize,
16245        out_key: *mut u8,
16246        key_len: usize,
16247    ) -> ::std::os::raw::c_int;
16248}
16249extern "C" {
16250    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_new"]
16251    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16252}
16253extern "C" {
16254    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_new_id"]
16255    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16256}
16257extern "C" {
16258    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_free"]
16259    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
16260}
16261extern "C" {
16262    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_dup"]
16263    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
16264}
16265extern "C" {
16266    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get0_pkey"]
16267    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
16268}
16269extern "C" {
16270    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_sign_init"]
16271    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16272}
16273extern "C" {
16274    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_sign"]
16275    pub fn EVP_PKEY_sign(
16276        ctx: *mut EVP_PKEY_CTX,
16277        sig: *mut u8,
16278        sig_len: *mut usize,
16279        digest: *const u8,
16280        digest_len: usize,
16281    ) -> ::std::os::raw::c_int;
16282}
16283extern "C" {
16284    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_verify_init"]
16285    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16286}
16287extern "C" {
16288    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_verify"]
16289    pub fn EVP_PKEY_verify(
16290        ctx: *mut EVP_PKEY_CTX,
16291        sig: *const u8,
16292        sig_len: usize,
16293        digest: *const u8,
16294        digest_len: usize,
16295    ) -> ::std::os::raw::c_int;
16296}
16297extern "C" {
16298    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_encrypt_init"]
16299    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16300}
16301extern "C" {
16302    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_encrypt"]
16303    pub fn EVP_PKEY_encrypt(
16304        ctx: *mut EVP_PKEY_CTX,
16305        out: *mut u8,
16306        out_len: *mut usize,
16307        in_: *const u8,
16308        in_len: usize,
16309    ) -> ::std::os::raw::c_int;
16310}
16311extern "C" {
16312    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_decrypt_init"]
16313    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16314}
16315extern "C" {
16316    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_decrypt"]
16317    pub fn EVP_PKEY_decrypt(
16318        ctx: *mut EVP_PKEY_CTX,
16319        out: *mut u8,
16320        out_len: *mut usize,
16321        in_: *const u8,
16322        in_len: usize,
16323    ) -> ::std::os::raw::c_int;
16324}
16325extern "C" {
16326    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_verify_recover_init"]
16327    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16328}
16329extern "C" {
16330    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_verify_recover"]
16331    pub fn EVP_PKEY_verify_recover(
16332        ctx: *mut EVP_PKEY_CTX,
16333        out: *mut u8,
16334        out_len: *mut usize,
16335        sig: *const u8,
16336        siglen: usize,
16337    ) -> ::std::os::raw::c_int;
16338}
16339extern "C" {
16340    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_derive_init"]
16341    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16342}
16343extern "C" {
16344    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_derive_set_peer"]
16345    pub fn EVP_PKEY_derive_set_peer(
16346        ctx: *mut EVP_PKEY_CTX,
16347        peer: *mut EVP_PKEY,
16348    ) -> ::std::os::raw::c_int;
16349}
16350extern "C" {
16351    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_derive"]
16352    pub fn EVP_PKEY_derive(
16353        ctx: *mut EVP_PKEY_CTX,
16354        key: *mut u8,
16355        out_key_len: *mut usize,
16356    ) -> ::std::os::raw::c_int;
16357}
16358extern "C" {
16359    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_check"]
16360    pub fn EVP_PKEY_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16361}
16362extern "C" {
16363    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_public_check"]
16364    pub fn EVP_PKEY_public_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16365}
16366extern "C" {
16367    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_param_check"]
16368    pub fn EVP_PKEY_param_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16369}
16370extern "C" {
16371    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_keygen_init"]
16372    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16373}
16374extern "C" {
16375    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_keygen"]
16376    pub fn EVP_PKEY_keygen(
16377        ctx: *mut EVP_PKEY_CTX,
16378        out_pkey: *mut *mut EVP_PKEY,
16379    ) -> ::std::os::raw::c_int;
16380}
16381extern "C" {
16382    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_encapsulate"]
16383    pub fn EVP_PKEY_encapsulate(
16384        ctx: *mut EVP_PKEY_CTX,
16385        ciphertext: *mut u8,
16386        ciphertext_len: *mut usize,
16387        shared_secret: *mut u8,
16388        shared_secret_len: *mut usize,
16389    ) -> ::std::os::raw::c_int;
16390}
16391extern "C" {
16392    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_decapsulate"]
16393    pub fn EVP_PKEY_decapsulate(
16394        ctx: *mut EVP_PKEY_CTX,
16395        shared_secret: *mut u8,
16396        shared_secret_len: *mut usize,
16397        ciphertext: *const u8,
16398        ciphertext_len: usize,
16399    ) -> ::std::os::raw::c_int;
16400}
16401extern "C" {
16402    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_paramgen_init"]
16403    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16404}
16405extern "C" {
16406    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_paramgen"]
16407    pub fn EVP_PKEY_paramgen(
16408        ctx: *mut EVP_PKEY_CTX,
16409        out_pkey: *mut *mut EVP_PKEY,
16410    ) -> ::std::os::raw::c_int;
16411}
16412extern "C" {
16413    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_signature_md"]
16414    pub fn EVP_PKEY_CTX_set_signature_md(
16415        ctx: *mut EVP_PKEY_CTX,
16416        md: *const EVP_MD,
16417    ) -> ::std::os::raw::c_int;
16418}
16419extern "C" {
16420    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_signature_md"]
16421    pub fn EVP_PKEY_CTX_get_signature_md(
16422        ctx: *mut EVP_PKEY_CTX,
16423        out_md: *mut *const EVP_MD,
16424    ) -> ::std::os::raw::c_int;
16425}
16426extern "C" {
16427    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_signature_context"]
16428    pub fn EVP_PKEY_CTX_set_signature_context(
16429        ctx: *mut EVP_PKEY_CTX,
16430        context: *const u8,
16431        context_len: usize,
16432    ) -> ::std::os::raw::c_int;
16433}
16434extern "C" {
16435    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get0_signature_context"]
16436    pub fn EVP_PKEY_CTX_get0_signature_context(
16437        ctx: *mut EVP_PKEY_CTX,
16438        context: *mut *const u8,
16439        context_len: *mut usize,
16440    ) -> ::std::os::raw::c_int;
16441}
16442extern "C" {
16443    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_padding"]
16444    pub fn EVP_PKEY_CTX_set_rsa_padding(
16445        ctx: *mut EVP_PKEY_CTX,
16446        padding: ::std::os::raw::c_int,
16447    ) -> ::std::os::raw::c_int;
16448}
16449extern "C" {
16450    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_rsa_padding"]
16451    pub fn EVP_PKEY_CTX_get_rsa_padding(
16452        ctx: *mut EVP_PKEY_CTX,
16453        out_padding: *mut ::std::os::raw::c_int,
16454    ) -> ::std::os::raw::c_int;
16455}
16456extern "C" {
16457    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_pss_saltlen"]
16458    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
16459        ctx: *mut EVP_PKEY_CTX,
16460        salt_len: ::std::os::raw::c_int,
16461    ) -> ::std::os::raw::c_int;
16462}
16463extern "C" {
16464    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_rsa_pss_saltlen"]
16465    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
16466        ctx: *mut EVP_PKEY_CTX,
16467        out_salt_len: *mut ::std::os::raw::c_int,
16468    ) -> ::std::os::raw::c_int;
16469}
16470extern "C" {
16471    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_keygen_bits"]
16472    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
16473        ctx: *mut EVP_PKEY_CTX,
16474        bits: ::std::os::raw::c_int,
16475    ) -> ::std::os::raw::c_int;
16476}
16477extern "C" {
16478    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_keygen_pubexp"]
16479    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
16480        ctx: *mut EVP_PKEY_CTX,
16481        e: *mut BIGNUM,
16482    ) -> ::std::os::raw::c_int;
16483}
16484extern "C" {
16485    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_oaep_md"]
16486    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
16487        ctx: *mut EVP_PKEY_CTX,
16488        md: *const EVP_MD,
16489    ) -> ::std::os::raw::c_int;
16490}
16491extern "C" {
16492    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_rsa_oaep_md"]
16493    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
16494        ctx: *mut EVP_PKEY_CTX,
16495        out_md: *mut *const EVP_MD,
16496    ) -> ::std::os::raw::c_int;
16497}
16498extern "C" {
16499    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_mgf1_md"]
16500    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
16501        ctx: *mut EVP_PKEY_CTX,
16502        md: *const EVP_MD,
16503    ) -> ::std::os::raw::c_int;
16504}
16505extern "C" {
16506    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_rsa_mgf1_md"]
16507    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
16508        ctx: *mut EVP_PKEY_CTX,
16509        out_md: *mut *const EVP_MD,
16510    ) -> ::std::os::raw::c_int;
16511}
16512extern "C" {
16513    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set0_rsa_oaep_label"]
16514    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
16515        ctx: *mut EVP_PKEY_CTX,
16516        label: *mut u8,
16517        label_len: usize,
16518    ) -> ::std::os::raw::c_int;
16519}
16520extern "C" {
16521    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get0_rsa_oaep_label"]
16522    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
16523        ctx: *mut EVP_PKEY_CTX,
16524        out_label: *mut *const u8,
16525    ) -> ::std::os::raw::c_int;
16526}
16527extern "C" {
16528    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_ec_paramgen_curve_nid"]
16529    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
16530        ctx: *mut EVP_PKEY_CTX,
16531        nid: ::std::os::raw::c_int,
16532    ) -> ::std::os::raw::c_int;
16533}
16534extern "C" {
16535    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_kem_set_params"]
16536    pub fn EVP_PKEY_CTX_kem_set_params(
16537        ctx: *mut EVP_PKEY_CTX,
16538        nid: ::std::os::raw::c_int,
16539    ) -> ::std::os::raw::c_int;
16540}
16541extern "C" {
16542    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_kem_new_raw_public_key"]
16543    pub fn EVP_PKEY_kem_new_raw_public_key(
16544        nid: ::std::os::raw::c_int,
16545        in_: *const u8,
16546        len: usize,
16547    ) -> *mut EVP_PKEY;
16548}
16549extern "C" {
16550    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_kem_new_raw_secret_key"]
16551    pub fn EVP_PKEY_kem_new_raw_secret_key(
16552        nid: ::std::os::raw::c_int,
16553        in_: *const u8,
16554        len: usize,
16555    ) -> *mut EVP_PKEY;
16556}
16557extern "C" {
16558    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_kem_new_raw_key"]
16559    pub fn EVP_PKEY_kem_new_raw_key(
16560        nid: ::std::os::raw::c_int,
16561        in_public: *const u8,
16562        len_public: usize,
16563        in_secret: *const u8,
16564        len_secret: usize,
16565    ) -> *mut EVP_PKEY;
16566}
16567extern "C" {
16568    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_kem_check_key"]
16569    pub fn EVP_PKEY_kem_check_key(key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
16570}
16571extern "C" {
16572    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_pqdsa_set_params"]
16573    pub fn EVP_PKEY_CTX_pqdsa_set_params(
16574        ctx: *mut EVP_PKEY_CTX,
16575        nid: ::std::os::raw::c_int,
16576    ) -> ::std::os::raw::c_int;
16577}
16578extern "C" {
16579    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_pqdsa_new_raw_public_key"]
16580    pub fn EVP_PKEY_pqdsa_new_raw_public_key(
16581        nid: ::std::os::raw::c_int,
16582        in_: *const u8,
16583        len: usize,
16584    ) -> *mut EVP_PKEY;
16585}
16586extern "C" {
16587    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_pqdsa_new_raw_private_key"]
16588    pub fn EVP_PKEY_pqdsa_new_raw_private_key(
16589        nid: ::std::os::raw::c_int,
16590        in_: *const u8,
16591        len: usize,
16592    ) -> *mut EVP_PKEY;
16593}
16594extern "C" {
16595    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dh_pad"]
16596    pub fn EVP_PKEY_CTX_set_dh_pad(
16597        ctx: *mut EVP_PKEY_CTX,
16598        pad: ::std::os::raw::c_int,
16599    ) -> ::std::os::raw::c_int;
16600}
16601extern "C" {
16602    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_asn1_get_count"]
16603    pub fn EVP_PKEY_asn1_get_count() -> ::std::os::raw::c_int;
16604}
16605extern "C" {
16606    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_asn1_get0"]
16607    pub fn EVP_PKEY_asn1_get0(idx: ::std::os::raw::c_int) -> *const EVP_PKEY_ASN1_METHOD;
16608}
16609extern "C" {
16610    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_asn1_find"]
16611    pub fn EVP_PKEY_asn1_find(
16612        _pe: *mut *mut ENGINE,
16613        type_: ::std::os::raw::c_int,
16614    ) -> *const EVP_PKEY_ASN1_METHOD;
16615}
16616extern "C" {
16617    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_asn1_find_str"]
16618    pub fn EVP_PKEY_asn1_find_str(
16619        _pe: *mut *mut ENGINE,
16620        name: *const ::std::os::raw::c_char,
16621        len: ::std::os::raw::c_int,
16622    ) -> *const EVP_PKEY_ASN1_METHOD;
16623}
16624extern "C" {
16625    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_asn1_get0_info"]
16626    pub fn EVP_PKEY_asn1_get0_info(
16627        ppkey_id: *mut ::std::os::raw::c_int,
16628        pkey_base_id: *mut ::std::os::raw::c_int,
16629        ppkey_flags: *mut ::std::os::raw::c_int,
16630        pinfo: *mut *const ::std::os::raw::c_char,
16631        ppem_str: *mut *const ::std::os::raw::c_char,
16632        ameth: *const EVP_PKEY_ASN1_METHOD,
16633    ) -> ::std::os::raw::c_int;
16634}
16635pub type EVP_PKEY_gen_cb =
16636    ::std::option::Option<unsafe extern "C" fn(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int>;
16637extern "C" {
16638    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_cb"]
16639    pub fn EVP_PKEY_CTX_set_cb(ctx: *mut EVP_PKEY_CTX, cb: EVP_PKEY_gen_cb);
16640}
16641extern "C" {
16642    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_keygen_info"]
16643    pub fn EVP_PKEY_CTX_get_keygen_info(
16644        ctx: *mut EVP_PKEY_CTX,
16645        idx: ::std::os::raw::c_int,
16646    ) -> ::std::os::raw::c_int;
16647}
16648extern "C" {
16649    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_app_data"]
16650    pub fn EVP_PKEY_CTX_set_app_data(ctx: *mut EVP_PKEY_CTX, data: *mut ::std::os::raw::c_void);
16651}
16652extern "C" {
16653    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_get_app_data"]
16654    pub fn EVP_PKEY_CTX_get_app_data(ctx: *mut EVP_PKEY_CTX) -> *mut ::std::os::raw::c_void;
16655}
16656extern "C" {
16657    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_get_pkey_type"]
16658    pub fn EVP_MD_get_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16659}
16660extern "C" {
16661    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_pkey_type"]
16662    pub fn EVP_MD_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16663}
16664extern "C" {
16665    #[link_name = "\u{1}aws_lc_0_38_0_EVP_CIPHER_do_all_sorted"]
16666    pub fn EVP_CIPHER_do_all_sorted(
16667        callback: ::std::option::Option<
16668            unsafe extern "C" fn(
16669                cipher: *const EVP_CIPHER,
16670                name: *const ::std::os::raw::c_char,
16671                unused: *const ::std::os::raw::c_char,
16672                arg: *mut ::std::os::raw::c_void,
16673            ),
16674        >,
16675        arg: *mut ::std::os::raw::c_void,
16676    );
16677}
16678extern "C" {
16679    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_do_all_sorted"]
16680    pub fn EVP_MD_do_all_sorted(
16681        callback: ::std::option::Option<
16682            unsafe extern "C" fn(
16683                cipher: *const EVP_MD,
16684                name: *const ::std::os::raw::c_char,
16685                unused: *const ::std::os::raw::c_char,
16686                arg: *mut ::std::os::raw::c_void,
16687            ),
16688        >,
16689        arg: *mut ::std::os::raw::c_void,
16690    );
16691}
16692extern "C" {
16693    #[link_name = "\u{1}aws_lc_0_38_0_EVP_MD_do_all"]
16694    pub fn EVP_MD_do_all(
16695        callback: ::std::option::Option<
16696            unsafe extern "C" fn(
16697                cipher: *const EVP_MD,
16698                name: *const ::std::os::raw::c_char,
16699                unused: *const ::std::os::raw::c_char,
16700                arg: *mut ::std::os::raw::c_void,
16701            ),
16702        >,
16703        arg: *mut ::std::os::raw::c_void,
16704    );
16705}
16706extern "C" {
16707    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PrivateKey"]
16708    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16709}
16710extern "C" {
16711    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PublicKey"]
16712    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16713}
16714extern "C" {
16715    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PrivateKey"]
16716    pub fn d2i_PrivateKey(
16717        type_: ::std::os::raw::c_int,
16718        out: *mut *mut EVP_PKEY,
16719        inp: *mut *const u8,
16720        len: ::std::os::raw::c_long,
16721    ) -> *mut EVP_PKEY;
16722}
16723extern "C" {
16724    #[link_name = "\u{1}aws_lc_0_38_0_d2i_AutoPrivateKey"]
16725    pub fn d2i_AutoPrivateKey(
16726        out: *mut *mut EVP_PKEY,
16727        inp: *mut *const u8,
16728        len: ::std::os::raw::c_long,
16729    ) -> *mut EVP_PKEY;
16730}
16731extern "C" {
16732    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PublicKey"]
16733    pub fn d2i_PublicKey(
16734        type_: ::std::os::raw::c_int,
16735        out: *mut *mut EVP_PKEY,
16736        inp: *mut *const u8,
16737        len: ::std::os::raw::c_long,
16738    ) -> *mut EVP_PKEY;
16739}
16740extern "C" {
16741    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_ec_param_enc"]
16742    pub fn EVP_PKEY_CTX_set_ec_param_enc(
16743        ctx: *mut EVP_PKEY_CTX,
16744        encoding: ::std::os::raw::c_int,
16745    ) -> ::std::os::raw::c_int;
16746}
16747extern "C" {
16748    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_set1_tls_encodedpoint"]
16749    pub fn EVP_PKEY_set1_tls_encodedpoint(
16750        pkey: *mut EVP_PKEY,
16751        in_: *const u8,
16752        len: usize,
16753    ) -> ::std::os::raw::c_int;
16754}
16755extern "C" {
16756    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get1_tls_encodedpoint"]
16757    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
16758}
16759extern "C" {
16760    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_base_id"]
16761    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
16762}
16763extern "C" {
16764    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_pss_keygen_md"]
16765    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
16766        ctx: *mut EVP_PKEY_CTX,
16767        md: *const EVP_MD,
16768    ) -> ::std::os::raw::c_int;
16769}
16770extern "C" {
16771    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen"]
16772    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
16773        ctx: *mut EVP_PKEY_CTX,
16774        salt_len: ::std::os::raw::c_int,
16775    ) -> ::std::os::raw::c_int;
16776}
16777extern "C" {
16778    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md"]
16779    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
16780        ctx: *mut EVP_PKEY_CTX,
16781        md: *const EVP_MD,
16782    ) -> ::std::os::raw::c_int;
16783}
16784extern "C" {
16785    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PUBKEY"]
16786    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16787}
16788extern "C" {
16789    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PUBKEY"]
16790    pub fn d2i_PUBKEY(
16791        out: *mut *mut EVP_PKEY,
16792        inp: *mut *const u8,
16793        len: ::std::os::raw::c_long,
16794    ) -> *mut EVP_PKEY;
16795}
16796extern "C" {
16797    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSA_PUBKEY"]
16798    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16799}
16800extern "C" {
16801    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSA_PUBKEY"]
16802    pub fn d2i_RSA_PUBKEY(
16803        out: *mut *mut RSA,
16804        inp: *mut *const u8,
16805        len: ::std::os::raw::c_long,
16806    ) -> *mut RSA;
16807}
16808extern "C" {
16809    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSA_PUBKEY"]
16810    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16811}
16812extern "C" {
16813    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSA_PUBKEY"]
16814    pub fn d2i_DSA_PUBKEY(
16815        out: *mut *mut DSA,
16816        inp: *mut *const u8,
16817        len: ::std::os::raw::c_long,
16818    ) -> *mut DSA;
16819}
16820extern "C" {
16821    #[link_name = "\u{1}aws_lc_0_38_0_i2d_EC_PUBKEY"]
16822    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16823}
16824extern "C" {
16825    #[link_name = "\u{1}aws_lc_0_38_0_d2i_EC_PUBKEY"]
16826    pub fn d2i_EC_PUBKEY(
16827        out: *mut *mut EC_KEY,
16828        inp: *mut *const u8,
16829        len: ::std::os::raw::c_long,
16830    ) -> *mut EC_KEY;
16831}
16832extern "C" {
16833    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_assign"]
16834    pub fn EVP_PKEY_assign(
16835        pkey: *mut EVP_PKEY,
16836        type_: ::std::os::raw::c_int,
16837        key: *mut ::std::os::raw::c_void,
16838    ) -> ::std::os::raw::c_int;
16839}
16840extern "C" {
16841    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_type"]
16842    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
16843}
16844extern "C" {
16845    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_new_mac_key"]
16846    pub fn EVP_PKEY_new_mac_key(
16847        type_: ::std::os::raw::c_int,
16848        engine: *mut ENGINE,
16849        mac_key: *const u8,
16850        mac_key_len: usize,
16851    ) -> *mut EVP_PKEY;
16852}
16853extern "C" {
16854    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_get0"]
16855    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::std::os::raw::c_void;
16856}
16857extern "C" {
16858    #[link_name = "\u{1}aws_lc_0_38_0_OpenSSL_add_all_algorithms"]
16859    pub fn OpenSSL_add_all_algorithms();
16860}
16861extern "C" {
16862    #[link_name = "\u{1}aws_lc_0_38_0_OPENSSL_add_all_algorithms_conf"]
16863    pub fn OPENSSL_add_all_algorithms_conf();
16864}
16865extern "C" {
16866    #[link_name = "\u{1}aws_lc_0_38_0_OpenSSL_add_all_ciphers"]
16867    pub fn OpenSSL_add_all_ciphers();
16868}
16869extern "C" {
16870    #[link_name = "\u{1}aws_lc_0_38_0_OpenSSL_add_all_digests"]
16871    pub fn OpenSSL_add_all_digests();
16872}
16873extern "C" {
16874    #[link_name = "\u{1}aws_lc_0_38_0_EVP_cleanup"]
16875    pub fn EVP_cleanup();
16876}
16877extern "C" {
16878    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dsa_paramgen_bits"]
16879    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
16880        ctx: *mut EVP_PKEY_CTX,
16881        nbits: ::std::os::raw::c_int,
16882    ) -> ::std::os::raw::c_int;
16883}
16884extern "C" {
16885    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dsa_paramgen_md"]
16886    pub fn EVP_PKEY_CTX_set_dsa_paramgen_md(
16887        ctx: *mut EVP_PKEY_CTX,
16888        md: *const EVP_MD,
16889    ) -> ::std::os::raw::c_int;
16890}
16891extern "C" {
16892    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_dsa_paramgen_q_bits"]
16893    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
16894        ctx: *mut EVP_PKEY_CTX,
16895        qbits: ::std::os::raw::c_int,
16896    ) -> ::std::os::raw::c_int;
16897}
16898extern "C" {
16899    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_ctrl_str"]
16900    pub fn EVP_PKEY_CTX_ctrl_str(
16901        ctx: *mut EVP_PKEY_CTX,
16902        type_: *const ::std::os::raw::c_char,
16903        value: *const ::std::os::raw::c_char,
16904    ) -> ::std::os::raw::c_int;
16905}
16906extern "C" {
16907    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_tls1_prf"]
16908    pub fn CRYPTO_tls1_prf(
16909        digest: *const EVP_MD,
16910        out: *mut u8,
16911        out_len: usize,
16912        secret: *const u8,
16913        secret_len: usize,
16914        label: *const ::std::os::raw::c_char,
16915        label_len: usize,
16916        seed1: *const u8,
16917        seed1_len: usize,
16918        seed2: *const u8,
16919        seed2_len: usize,
16920    ) -> ::std::os::raw::c_int;
16921}
16922extern "C" {
16923    #[link_name = "\u{1}aws_lc_0_38_0_SSKDF_digest"]
16924    pub fn SSKDF_digest(
16925        out_key: *mut u8,
16926        out_len: usize,
16927        digest: *const EVP_MD,
16928        secret: *const u8,
16929        secret_len: usize,
16930        info: *const u8,
16931        info_len: usize,
16932    ) -> ::std::os::raw::c_int;
16933}
16934extern "C" {
16935    #[link_name = "\u{1}aws_lc_0_38_0_SSKDF_hmac"]
16936    pub fn SSKDF_hmac(
16937        out_key: *mut u8,
16938        out_len: usize,
16939        digest: *const EVP_MD,
16940        secret: *const u8,
16941        secret_len: usize,
16942        info: *const u8,
16943        info_len: usize,
16944        salt: *const u8,
16945        salt_len: usize,
16946    ) -> ::std::os::raw::c_int;
16947}
16948extern "C" {
16949    #[link_name = "\u{1}aws_lc_0_38_0_KBKDF_ctr_hmac"]
16950    pub fn KBKDF_ctr_hmac(
16951        out_key: *mut u8,
16952        out_len: usize,
16953        digest: *const EVP_MD,
16954        secret: *const u8,
16955        secret_len: usize,
16956        info: *const u8,
16957        info_len: usize,
16958    ) -> ::std::os::raw::c_int;
16959}
16960extern "C" {
16961    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_hkdf_mode"]
16962    pub fn EVP_PKEY_CTX_hkdf_mode(
16963        ctx: *mut EVP_PKEY_CTX,
16964        mode: ::std::os::raw::c_int,
16965    ) -> ::std::os::raw::c_int;
16966}
16967extern "C" {
16968    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set_hkdf_md"]
16969    pub fn EVP_PKEY_CTX_set_hkdf_md(
16970        ctx: *mut EVP_PKEY_CTX,
16971        md: *const EVP_MD,
16972    ) -> ::std::os::raw::c_int;
16973}
16974extern "C" {
16975    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set1_hkdf_key"]
16976    pub fn EVP_PKEY_CTX_set1_hkdf_key(
16977        ctx: *mut EVP_PKEY_CTX,
16978        key: *const u8,
16979        key_len: usize,
16980    ) -> ::std::os::raw::c_int;
16981}
16982extern "C" {
16983    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_set1_hkdf_salt"]
16984    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
16985        ctx: *mut EVP_PKEY_CTX,
16986        salt: *const u8,
16987        salt_len: usize,
16988    ) -> ::std::os::raw::c_int;
16989}
16990extern "C" {
16991    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_CTX_add1_hkdf_info"]
16992    pub fn EVP_PKEY_CTX_add1_hkdf_info(
16993        ctx: *mut EVP_PKEY_CTX,
16994        info: *const u8,
16995        info_len: usize,
16996    ) -> ::std::os::raw::c_int;
16997}
16998extern "C" {
16999    #[link_name = "\u{1}aws_lc_0_38_0_HKDF"]
17000    pub fn HKDF(
17001        out_key: *mut u8,
17002        out_len: usize,
17003        digest: *const EVP_MD,
17004        secret: *const u8,
17005        secret_len: usize,
17006        salt: *const u8,
17007        salt_len: usize,
17008        info: *const u8,
17009        info_len: usize,
17010    ) -> ::std::os::raw::c_int;
17011}
17012extern "C" {
17013    #[link_name = "\u{1}aws_lc_0_38_0_HKDF_extract"]
17014    pub fn HKDF_extract(
17015        out_key: *mut u8,
17016        out_len: *mut usize,
17017        digest: *const EVP_MD,
17018        secret: *const u8,
17019        secret_len: usize,
17020        salt: *const u8,
17021        salt_len: usize,
17022    ) -> ::std::os::raw::c_int;
17023}
17024extern "C" {
17025    #[link_name = "\u{1}aws_lc_0_38_0_HKDF_expand"]
17026    pub fn HKDF_expand(
17027        out_key: *mut u8,
17028        out_len: usize,
17029        digest: *const EVP_MD,
17030        prk: *const u8,
17031        prk_len: usize,
17032        info: *const u8,
17033        info_len: usize,
17034    ) -> ::std::os::raw::c_int;
17035}
17036extern "C" {
17037    #[link_name = "\u{1}aws_lc_0_38_0_EVP_hpke_x25519_hkdf_sha256"]
17038    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
17039}
17040extern "C" {
17041    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEM_id"]
17042    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
17043}
17044extern "C" {
17045    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEM_public_key_len"]
17046    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17047}
17048extern "C" {
17049    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEM_private_key_len"]
17050    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17051}
17052extern "C" {
17053    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEM_enc_len"]
17054    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
17055}
17056extern "C" {
17057    #[link_name = "\u{1}aws_lc_0_38_0_EVP_hpke_hkdf_sha256"]
17058    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
17059}
17060extern "C" {
17061    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KDF_id"]
17062    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
17063}
17064extern "C" {
17065    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KDF_hkdf_md"]
17066    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
17067}
17068extern "C" {
17069    #[link_name = "\u{1}aws_lc_0_38_0_EVP_hpke_aes_128_gcm"]
17070    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
17071}
17072extern "C" {
17073    #[link_name = "\u{1}aws_lc_0_38_0_EVP_hpke_aes_256_gcm"]
17074    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
17075}
17076extern "C" {
17077    #[link_name = "\u{1}aws_lc_0_38_0_EVP_hpke_chacha20_poly1305"]
17078    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
17079}
17080extern "C" {
17081    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_AEAD_id"]
17082    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
17083}
17084extern "C" {
17085    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_AEAD_aead"]
17086    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
17087}
17088extern "C" {
17089    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_zero"]
17090    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
17091}
17092extern "C" {
17093    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_cleanup"]
17094    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
17095}
17096extern "C" {
17097    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_new"]
17098    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
17099}
17100extern "C" {
17101    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_free"]
17102    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
17103}
17104extern "C" {
17105    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_copy"]
17106    pub fn EVP_HPKE_KEY_copy(
17107        dst: *mut EVP_HPKE_KEY,
17108        src: *const EVP_HPKE_KEY,
17109    ) -> ::std::os::raw::c_int;
17110}
17111extern "C" {
17112    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_move"]
17113    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
17114}
17115extern "C" {
17116    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_init"]
17117    pub fn EVP_HPKE_KEY_init(
17118        key: *mut EVP_HPKE_KEY,
17119        kem: *const EVP_HPKE_KEM,
17120        priv_key: *const u8,
17121        priv_key_len: usize,
17122    ) -> ::std::os::raw::c_int;
17123}
17124extern "C" {
17125    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_generate"]
17126    pub fn EVP_HPKE_KEY_generate(
17127        key: *mut EVP_HPKE_KEY,
17128        kem: *const EVP_HPKE_KEM,
17129    ) -> ::std::os::raw::c_int;
17130}
17131extern "C" {
17132    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_kem"]
17133    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
17134}
17135extern "C" {
17136    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_public_key"]
17137    pub fn EVP_HPKE_KEY_public_key(
17138        key: *const EVP_HPKE_KEY,
17139        out: *mut u8,
17140        out_len: *mut usize,
17141        max_out: usize,
17142    ) -> ::std::os::raw::c_int;
17143}
17144extern "C" {
17145    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_KEY_private_key"]
17146    pub fn EVP_HPKE_KEY_private_key(
17147        key: *const EVP_HPKE_KEY,
17148        out: *mut u8,
17149        out_len: *mut usize,
17150        max_out: usize,
17151    ) -> ::std::os::raw::c_int;
17152}
17153extern "C" {
17154    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_zero"]
17155    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
17156}
17157extern "C" {
17158    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_cleanup"]
17159    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
17160}
17161extern "C" {
17162    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_new"]
17163    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
17164}
17165extern "C" {
17166    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_free"]
17167    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
17168}
17169extern "C" {
17170    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_sender"]
17171    pub fn EVP_HPKE_CTX_setup_sender(
17172        ctx: *mut EVP_HPKE_CTX,
17173        out_enc: *mut u8,
17174        out_enc_len: *mut usize,
17175        max_enc: usize,
17176        kem: *const EVP_HPKE_KEM,
17177        kdf: *const EVP_HPKE_KDF,
17178        aead: *const EVP_HPKE_AEAD,
17179        peer_public_key: *const u8,
17180        peer_public_key_len: usize,
17181        info: *const u8,
17182        info_len: usize,
17183    ) -> ::std::os::raw::c_int;
17184}
17185extern "C" {
17186    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_sender_with_seed_for_testing"]
17187    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
17188        ctx: *mut EVP_HPKE_CTX,
17189        out_enc: *mut u8,
17190        out_enc_len: *mut usize,
17191        max_enc: usize,
17192        kem: *const EVP_HPKE_KEM,
17193        kdf: *const EVP_HPKE_KDF,
17194        aead: *const EVP_HPKE_AEAD,
17195        peer_public_key: *const u8,
17196        peer_public_key_len: usize,
17197        info: *const u8,
17198        info_len: usize,
17199        seed: *const u8,
17200        seed_len: usize,
17201    ) -> ::std::os::raw::c_int;
17202}
17203extern "C" {
17204    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_recipient"]
17205    pub fn EVP_HPKE_CTX_setup_recipient(
17206        ctx: *mut EVP_HPKE_CTX,
17207        key: *const EVP_HPKE_KEY,
17208        kdf: *const EVP_HPKE_KDF,
17209        aead: *const EVP_HPKE_AEAD,
17210        enc: *const u8,
17211        enc_len: usize,
17212        info: *const u8,
17213        info_len: usize,
17214    ) -> ::std::os::raw::c_int;
17215}
17216extern "C" {
17217    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_auth_sender"]
17218    pub fn EVP_HPKE_CTX_setup_auth_sender(
17219        ctx: *mut EVP_HPKE_CTX,
17220        out_enc: *mut u8,
17221        out_enc_len: *mut usize,
17222        max_enc: usize,
17223        key: *const EVP_HPKE_KEY,
17224        kdf: *const EVP_HPKE_KDF,
17225        aead: *const EVP_HPKE_AEAD,
17226        peer_public_key: *const u8,
17227        peer_public_key_len: usize,
17228        info: *const u8,
17229        info_len: usize,
17230    ) -> ::std::os::raw::c_int;
17231}
17232extern "C" {
17233    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing"]
17234    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
17235        ctx: *mut EVP_HPKE_CTX,
17236        out_enc: *mut u8,
17237        out_enc_len: *mut usize,
17238        max_enc: usize,
17239        key: *const EVP_HPKE_KEY,
17240        kdf: *const EVP_HPKE_KDF,
17241        aead: *const EVP_HPKE_AEAD,
17242        peer_public_key: *const u8,
17243        peer_public_key_len: usize,
17244        info: *const u8,
17245        info_len: usize,
17246        seed: *const u8,
17247        seed_len: usize,
17248    ) -> ::std::os::raw::c_int;
17249}
17250extern "C" {
17251    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_setup_auth_recipient"]
17252    pub fn EVP_HPKE_CTX_setup_auth_recipient(
17253        ctx: *mut EVP_HPKE_CTX,
17254        key: *const EVP_HPKE_KEY,
17255        kdf: *const EVP_HPKE_KDF,
17256        aead: *const EVP_HPKE_AEAD,
17257        enc: *const u8,
17258        enc_len: usize,
17259        info: *const u8,
17260        info_len: usize,
17261        peer_public_key: *const u8,
17262        peer_public_key_len: usize,
17263    ) -> ::std::os::raw::c_int;
17264}
17265extern "C" {
17266    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_open"]
17267    pub fn EVP_HPKE_CTX_open(
17268        ctx: *mut EVP_HPKE_CTX,
17269        out: *mut u8,
17270        out_len: *mut usize,
17271        max_out_len: usize,
17272        in_: *const u8,
17273        in_len: usize,
17274        ad: *const u8,
17275        ad_len: usize,
17276    ) -> ::std::os::raw::c_int;
17277}
17278extern "C" {
17279    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_seal"]
17280    pub fn EVP_HPKE_CTX_seal(
17281        ctx: *mut EVP_HPKE_CTX,
17282        out: *mut u8,
17283        out_len: *mut usize,
17284        max_out_len: usize,
17285        in_: *const u8,
17286        in_len: usize,
17287        ad: *const u8,
17288        ad_len: usize,
17289    ) -> ::std::os::raw::c_int;
17290}
17291extern "C" {
17292    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_export"]
17293    pub fn EVP_HPKE_CTX_export(
17294        ctx: *const EVP_HPKE_CTX,
17295        out: *mut u8,
17296        secret_len: usize,
17297        context: *const u8,
17298        context_len: usize,
17299    ) -> ::std::os::raw::c_int;
17300}
17301extern "C" {
17302    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_max_overhead"]
17303    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
17304}
17305extern "C" {
17306    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_kem"]
17307    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
17308}
17309extern "C" {
17310    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_aead"]
17311    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
17312}
17313extern "C" {
17314    #[link_name = "\u{1}aws_lc_0_38_0_EVP_HPKE_CTX_kdf"]
17315    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
17316}
17317#[repr(C)]
17318#[derive(Copy, Clone)]
17319pub struct evp_hpke_ctx_st {
17320    pub kem: *const EVP_HPKE_KEM,
17321    pub aead: *const EVP_HPKE_AEAD,
17322    pub kdf: *const EVP_HPKE_KDF,
17323    pub aead_ctx: EVP_AEAD_CTX,
17324    pub base_nonce: [u8; 24usize],
17325    pub exporter_secret: [u8; 64usize],
17326    pub seq: u64,
17327    pub is_sender: ::std::os::raw::c_int,
17328}
17329#[test]
17330fn bindgen_test_layout_evp_hpke_ctx_st() {
17331    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_ctx_st> = ::std::mem::MaybeUninit::uninit();
17332    let ptr = UNINIT.as_ptr();
17333    assert_eq!(
17334        ::std::mem::size_of::<evp_hpke_ctx_st>(),
17335        712usize,
17336        "Size of evp_hpke_ctx_st"
17337    );
17338    assert_eq!(
17339        ::std::mem::align_of::<evp_hpke_ctx_st>(),
17340        8usize,
17341        "Alignment of evp_hpke_ctx_st"
17342    );
17343    assert_eq!(
17344        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17345        0usize,
17346        "Offset of field: evp_hpke_ctx_st::kem"
17347    );
17348    assert_eq!(
17349        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
17350        8usize,
17351        "Offset of field: evp_hpke_ctx_st::aead"
17352    );
17353    assert_eq!(
17354        unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize },
17355        16usize,
17356        "Offset of field: evp_hpke_ctx_st::kdf"
17357    );
17358    assert_eq!(
17359        unsafe { ::std::ptr::addr_of!((*ptr).aead_ctx) as usize - ptr as usize },
17360        24usize,
17361        "Offset of field: evp_hpke_ctx_st::aead_ctx"
17362    );
17363    assert_eq!(
17364        unsafe { ::std::ptr::addr_of!((*ptr).base_nonce) as usize - ptr as usize },
17365        608usize,
17366        "Offset of field: evp_hpke_ctx_st::base_nonce"
17367    );
17368    assert_eq!(
17369        unsafe { ::std::ptr::addr_of!((*ptr).exporter_secret) as usize - ptr as usize },
17370        632usize,
17371        "Offset of field: evp_hpke_ctx_st::exporter_secret"
17372    );
17373    assert_eq!(
17374        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
17375        696usize,
17376        "Offset of field: evp_hpke_ctx_st::seq"
17377    );
17378    assert_eq!(
17379        unsafe { ::std::ptr::addr_of!((*ptr).is_sender) as usize - ptr as usize },
17380        704usize,
17381        "Offset of field: evp_hpke_ctx_st::is_sender"
17382    );
17383}
17384impl Default for evp_hpke_ctx_st {
17385    fn default() -> Self {
17386        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17387        unsafe {
17388            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17389            s.assume_init()
17390        }
17391    }
17392}
17393#[repr(C)]
17394#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17395pub struct evp_hpke_key_st {
17396    pub kem: *const EVP_HPKE_KEM,
17397    pub private_key: [u8; 32usize],
17398    pub public_key: [u8; 32usize],
17399}
17400#[test]
17401fn bindgen_test_layout_evp_hpke_key_st() {
17402    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_key_st> = ::std::mem::MaybeUninit::uninit();
17403    let ptr = UNINIT.as_ptr();
17404    assert_eq!(
17405        ::std::mem::size_of::<evp_hpke_key_st>(),
17406        72usize,
17407        "Size of evp_hpke_key_st"
17408    );
17409    assert_eq!(
17410        ::std::mem::align_of::<evp_hpke_key_st>(),
17411        8usize,
17412        "Alignment of evp_hpke_key_st"
17413    );
17414    assert_eq!(
17415        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17416        0usize,
17417        "Offset of field: evp_hpke_key_st::kem"
17418    );
17419    assert_eq!(
17420        unsafe { ::std::ptr::addr_of!((*ptr).private_key) as usize - ptr as usize },
17421        8usize,
17422        "Offset of field: evp_hpke_key_st::private_key"
17423    );
17424    assert_eq!(
17425        unsafe { ::std::ptr::addr_of!((*ptr).public_key) as usize - ptr as usize },
17426        40usize,
17427        "Offset of field: evp_hpke_key_st::public_key"
17428    );
17429}
17430impl Default for evp_hpke_key_st {
17431    fn default() -> Self {
17432        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17433        unsafe {
17434            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17435            s.assume_init()
17436        }
17437    }
17438}
17439#[repr(C)]
17440#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17441pub struct HRSS_private_key {
17442    pub opaque: [u8; 1808usize],
17443}
17444#[test]
17445fn bindgen_test_layout_HRSS_private_key() {
17446    const UNINIT: ::std::mem::MaybeUninit<HRSS_private_key> = ::std::mem::MaybeUninit::uninit();
17447    let ptr = UNINIT.as_ptr();
17448    assert_eq!(
17449        ::std::mem::size_of::<HRSS_private_key>(),
17450        1808usize,
17451        "Size of HRSS_private_key"
17452    );
17453    assert_eq!(
17454        ::std::mem::align_of::<HRSS_private_key>(),
17455        1usize,
17456        "Alignment of HRSS_private_key"
17457    );
17458    assert_eq!(
17459        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17460        0usize,
17461        "Offset of field: HRSS_private_key::opaque"
17462    );
17463}
17464impl Default for HRSS_private_key {
17465    fn default() -> Self {
17466        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17467        unsafe {
17468            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17469            s.assume_init()
17470        }
17471    }
17472}
17473#[repr(C)]
17474#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17475pub struct HRSS_public_key {
17476    pub opaque: [u8; 1424usize],
17477}
17478#[test]
17479fn bindgen_test_layout_HRSS_public_key() {
17480    const UNINIT: ::std::mem::MaybeUninit<HRSS_public_key> = ::std::mem::MaybeUninit::uninit();
17481    let ptr = UNINIT.as_ptr();
17482    assert_eq!(
17483        ::std::mem::size_of::<HRSS_public_key>(),
17484        1424usize,
17485        "Size of HRSS_public_key"
17486    );
17487    assert_eq!(
17488        ::std::mem::align_of::<HRSS_public_key>(),
17489        1usize,
17490        "Alignment of HRSS_public_key"
17491    );
17492    assert_eq!(
17493        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17494        0usize,
17495        "Offset of field: HRSS_public_key::opaque"
17496    );
17497}
17498impl Default for HRSS_public_key {
17499    fn default() -> Self {
17500        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17501        unsafe {
17502            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17503            s.assume_init()
17504        }
17505    }
17506}
17507extern "C" {
17508    #[link_name = "\u{1}aws_lc_0_38_0_HRSS_generate_key"]
17509    pub fn HRSS_generate_key(
17510        out_pub: *mut HRSS_public_key,
17511        out_priv: *mut HRSS_private_key,
17512        input: *const u8,
17513    ) -> ::std::os::raw::c_int;
17514}
17515extern "C" {
17516    #[link_name = "\u{1}aws_lc_0_38_0_HRSS_encap"]
17517    pub fn HRSS_encap(
17518        out_ciphertext: *mut u8,
17519        out_shared_key: *mut u8,
17520        in_pub: *const HRSS_public_key,
17521        in_: *const u8,
17522    ) -> ::std::os::raw::c_int;
17523}
17524extern "C" {
17525    #[link_name = "\u{1}aws_lc_0_38_0_HRSS_decap"]
17526    pub fn HRSS_decap(
17527        out_shared_key: *mut u8,
17528        in_priv: *const HRSS_private_key,
17529        ciphertext: *const u8,
17530        ciphertext_len: usize,
17531    ) -> ::std::os::raw::c_int;
17532}
17533extern "C" {
17534    #[link_name = "\u{1}aws_lc_0_38_0_HRSS_marshal_public_key"]
17535    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
17536}
17537extern "C" {
17538    #[link_name = "\u{1}aws_lc_0_38_0_HRSS_parse_public_key"]
17539    pub fn HRSS_parse_public_key(
17540        out: *mut HRSS_public_key,
17541        in_: *const u8,
17542    ) -> ::std::os::raw::c_int;
17543}
17544extern "C" {
17545    #[link_name = "\u{1}aws_lc_0_38_0_MD4_Init"]
17546    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17547}
17548extern "C" {
17549    #[link_name = "\u{1}aws_lc_0_38_0_MD4_Update"]
17550    pub fn MD4_Update(
17551        md4: *mut MD4_CTX,
17552        data: *const ::std::os::raw::c_void,
17553        len: usize,
17554    ) -> ::std::os::raw::c_int;
17555}
17556extern "C" {
17557    #[link_name = "\u{1}aws_lc_0_38_0_MD4_Final"]
17558    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17559}
17560extern "C" {
17561    #[link_name = "\u{1}aws_lc_0_38_0_MD4"]
17562    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
17563}
17564extern "C" {
17565    #[link_name = "\u{1}aws_lc_0_38_0_MD4_Transform"]
17566    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
17567}
17568#[repr(C)]
17569#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17570pub struct md4_state_st {
17571    pub h: [u32; 4usize],
17572    pub Nl: u32,
17573    pub Nh: u32,
17574    pub data: [u8; 64usize],
17575    pub num: ::std::os::raw::c_uint,
17576}
17577#[test]
17578fn bindgen_test_layout_md4_state_st() {
17579    const UNINIT: ::std::mem::MaybeUninit<md4_state_st> = ::std::mem::MaybeUninit::uninit();
17580    let ptr = UNINIT.as_ptr();
17581    assert_eq!(
17582        ::std::mem::size_of::<md4_state_st>(),
17583        92usize,
17584        "Size of md4_state_st"
17585    );
17586    assert_eq!(
17587        ::std::mem::align_of::<md4_state_st>(),
17588        4usize,
17589        "Alignment of md4_state_st"
17590    );
17591    assert_eq!(
17592        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
17593        0usize,
17594        "Offset of field: md4_state_st::h"
17595    );
17596    assert_eq!(
17597        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
17598        16usize,
17599        "Offset of field: md4_state_st::Nl"
17600    );
17601    assert_eq!(
17602        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
17603        20usize,
17604        "Offset of field: md4_state_st::Nh"
17605    );
17606    assert_eq!(
17607        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17608        24usize,
17609        "Offset of field: md4_state_st::data"
17610    );
17611    assert_eq!(
17612        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
17613        88usize,
17614        "Offset of field: md4_state_st::num"
17615    );
17616}
17617impl Default for md4_state_st {
17618    fn default() -> Self {
17619        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17620        unsafe {
17621            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17622            s.assume_init()
17623        }
17624    }
17625}
17626#[repr(C)]
17627#[derive(Debug, Copy, Clone)]
17628pub struct stack_st_CRYPTO_BUFFER {
17629    _unused: [u8; 0],
17630}
17631#[repr(C)]
17632#[derive(Debug, Copy, Clone)]
17633pub struct stack_st_X509 {
17634    _unused: [u8; 0],
17635}
17636#[repr(C)]
17637#[derive(Debug, Copy, Clone)]
17638pub struct stack_st_X509_CRL {
17639    _unused: [u8; 0],
17640}
17641extern "C" {
17642    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_raw_certificates"]
17643    pub fn PKCS7_get_raw_certificates(
17644        out_certs: *mut stack_st_CRYPTO_BUFFER,
17645        cbs: *mut CBS,
17646        pool: *mut CRYPTO_BUFFER_POOL,
17647    ) -> ::std::os::raw::c_int;
17648}
17649extern "C" {
17650    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_certificates"]
17651    pub fn PKCS7_get_certificates(
17652        out_certs: *mut stack_st_X509,
17653        cbs: *mut CBS,
17654    ) -> ::std::os::raw::c_int;
17655}
17656extern "C" {
17657    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_bundle_raw_certificates"]
17658    pub fn PKCS7_bundle_raw_certificates(
17659        out: *mut CBB,
17660        certs: *const stack_st_CRYPTO_BUFFER,
17661    ) -> ::std::os::raw::c_int;
17662}
17663extern "C" {
17664    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_bundle_certificates"]
17665    pub fn PKCS7_bundle_certificates(
17666        out: *mut CBB,
17667        certs: *const stack_st_X509,
17668    ) -> ::std::os::raw::c_int;
17669}
17670extern "C" {
17671    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_CRLs"]
17672    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS)
17673        -> ::std::os::raw::c_int;
17674}
17675extern "C" {
17676    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_bundle_CRLs"]
17677    pub fn PKCS7_bundle_CRLs(
17678        out: *mut CBB,
17679        crls: *const stack_st_X509_CRL,
17680    ) -> ::std::os::raw::c_int;
17681}
17682extern "C" {
17683    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_PEM_certificates"]
17684    pub fn PKCS7_get_PEM_certificates(
17685        out_certs: *mut stack_st_X509,
17686        pem_bio: *mut BIO,
17687    ) -> ::std::os::raw::c_int;
17688}
17689extern "C" {
17690    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_PEM_CRLs"]
17691    pub fn PKCS7_get_PEM_CRLs(
17692        out_crls: *mut stack_st_X509_CRL,
17693        pem_bio: *mut BIO,
17694    ) -> ::std::os::raw::c_int;
17695}
17696extern "C" {
17697    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS7_bio"]
17698    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
17699}
17700extern "C" {
17701    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS7_bio"]
17702    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::std::os::raw::c_int;
17703}
17704extern "C" {
17705    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_data"]
17706    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::std::os::raw::c_int;
17707}
17708extern "C" {
17709    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_digest"]
17710    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::std::os::raw::c_int;
17711}
17712extern "C" {
17713    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_encrypted"]
17714    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::std::os::raw::c_int;
17715}
17716extern "C" {
17717    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_enveloped"]
17718    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17719}
17720extern "C" {
17721    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_signed"]
17722    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::std::os::raw::c_int;
17723}
17724extern "C" {
17725    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_type_is_signedAndEnveloped"]
17726    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17727}
17728#[repr(C)]
17729#[derive(Copy, Clone)]
17730pub struct pkcs7_st {
17731    pub type_: *mut ASN1_OBJECT,
17732    pub d: pkcs7_st__bindgen_ty_1,
17733}
17734#[repr(C)]
17735#[derive(Copy, Clone)]
17736pub union pkcs7_st__bindgen_ty_1 {
17737    pub ptr: *mut ::std::os::raw::c_char,
17738    pub data: *mut ASN1_OCTET_STRING,
17739    pub sign: *mut PKCS7_SIGNED,
17740    pub enveloped: *mut PKCS7_ENVELOPE,
17741    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
17742    pub digest: *mut PKCS7_DIGEST,
17743    pub encrypted: *mut PKCS7_ENCRYPT,
17744    pub other: *mut ASN1_TYPE,
17745}
17746#[test]
17747fn bindgen_test_layout_pkcs7_st__bindgen_ty_1() {
17748    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st__bindgen_ty_1> =
17749        ::std::mem::MaybeUninit::uninit();
17750    let ptr = UNINIT.as_ptr();
17751    assert_eq!(
17752        ::std::mem::size_of::<pkcs7_st__bindgen_ty_1>(),
17753        8usize,
17754        "Size of pkcs7_st__bindgen_ty_1"
17755    );
17756    assert_eq!(
17757        ::std::mem::align_of::<pkcs7_st__bindgen_ty_1>(),
17758        8usize,
17759        "Alignment of pkcs7_st__bindgen_ty_1"
17760    );
17761    assert_eq!(
17762        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
17763        0usize,
17764        "Offset of field: pkcs7_st__bindgen_ty_1::ptr"
17765    );
17766    assert_eq!(
17767        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17768        0usize,
17769        "Offset of field: pkcs7_st__bindgen_ty_1::data"
17770    );
17771    assert_eq!(
17772        unsafe { ::std::ptr::addr_of!((*ptr).sign) as usize - ptr as usize },
17773        0usize,
17774        "Offset of field: pkcs7_st__bindgen_ty_1::sign"
17775    );
17776    assert_eq!(
17777        unsafe { ::std::ptr::addr_of!((*ptr).enveloped) as usize - ptr as usize },
17778        0usize,
17779        "Offset of field: pkcs7_st__bindgen_ty_1::enveloped"
17780    );
17781    assert_eq!(
17782        unsafe { ::std::ptr::addr_of!((*ptr).signed_and_enveloped) as usize - ptr as usize },
17783        0usize,
17784        "Offset of field: pkcs7_st__bindgen_ty_1::signed_and_enveloped"
17785    );
17786    assert_eq!(
17787        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
17788        0usize,
17789        "Offset of field: pkcs7_st__bindgen_ty_1::digest"
17790    );
17791    assert_eq!(
17792        unsafe { ::std::ptr::addr_of!((*ptr).encrypted) as usize - ptr as usize },
17793        0usize,
17794        "Offset of field: pkcs7_st__bindgen_ty_1::encrypted"
17795    );
17796    assert_eq!(
17797        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
17798        0usize,
17799        "Offset of field: pkcs7_st__bindgen_ty_1::other"
17800    );
17801}
17802impl Default for pkcs7_st__bindgen_ty_1 {
17803    fn default() -> Self {
17804        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17805        unsafe {
17806            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17807            s.assume_init()
17808        }
17809    }
17810}
17811#[test]
17812fn bindgen_test_layout_pkcs7_st() {
17813    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st> = ::std::mem::MaybeUninit::uninit();
17814    let ptr = UNINIT.as_ptr();
17815    assert_eq!(
17816        ::std::mem::size_of::<pkcs7_st>(),
17817        16usize,
17818        "Size of pkcs7_st"
17819    );
17820    assert_eq!(
17821        ::std::mem::align_of::<pkcs7_st>(),
17822        8usize,
17823        "Alignment of pkcs7_st"
17824    );
17825    assert_eq!(
17826        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
17827        0usize,
17828        "Offset of field: pkcs7_st::type_"
17829    );
17830    assert_eq!(
17831        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
17832        8usize,
17833        "Offset of field: pkcs7_st::d"
17834    );
17835}
17836impl Default for pkcs7_st {
17837    fn default() -> Self {
17838        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17839        unsafe {
17840            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17841            s.assume_init()
17842        }
17843    }
17844}
17845#[repr(C)]
17846#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17847pub struct pkcs7_signed_st {
17848    pub version: *mut ASN1_INTEGER,
17849    pub md_algs: *mut stack_st_X509_ALGOR,
17850    pub contents: *mut PKCS7,
17851    pub cert: *mut stack_st_X509,
17852    pub crl: *mut stack_st_X509_CRL,
17853    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17854}
17855#[test]
17856fn bindgen_test_layout_pkcs7_signed_st() {
17857    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signed_st> = ::std::mem::MaybeUninit::uninit();
17858    let ptr = UNINIT.as_ptr();
17859    assert_eq!(
17860        ::std::mem::size_of::<pkcs7_signed_st>(),
17861        48usize,
17862        "Size of pkcs7_signed_st"
17863    );
17864    assert_eq!(
17865        ::std::mem::align_of::<pkcs7_signed_st>(),
17866        8usize,
17867        "Alignment of pkcs7_signed_st"
17868    );
17869    assert_eq!(
17870        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17871        0usize,
17872        "Offset of field: pkcs7_signed_st::version"
17873    );
17874    assert_eq!(
17875        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
17876        8usize,
17877        "Offset of field: pkcs7_signed_st::md_algs"
17878    );
17879    assert_eq!(
17880        unsafe { ::std::ptr::addr_of!((*ptr).contents) as usize - ptr as usize },
17881        16usize,
17882        "Offset of field: pkcs7_signed_st::contents"
17883    );
17884    assert_eq!(
17885        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
17886        24usize,
17887        "Offset of field: pkcs7_signed_st::cert"
17888    );
17889    assert_eq!(
17890        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
17891        32usize,
17892        "Offset of field: pkcs7_signed_st::crl"
17893    );
17894    assert_eq!(
17895        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
17896        40usize,
17897        "Offset of field: pkcs7_signed_st::signer_info"
17898    );
17899}
17900impl Default for pkcs7_signed_st {
17901    fn default() -> Self {
17902        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17903        unsafe {
17904            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17905            s.assume_init()
17906        }
17907    }
17908}
17909#[repr(C)]
17910#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17911pub struct pkcs7_signer_info_st {
17912    pub version: *mut ASN1_INTEGER,
17913    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
17914    pub digest_alg: *mut X509_ALGOR,
17915    pub auth_attr: *mut stack_st_X509_ATTRIBUTE,
17916    pub digest_enc_alg: *mut X509_ALGOR,
17917    pub enc_digest: *mut ASN1_OCTET_STRING,
17918    pub unauth_attr: *mut stack_st_X509_ATTRIBUTE,
17919    pub pkey: *mut EVP_PKEY,
17920}
17921#[test]
17922fn bindgen_test_layout_pkcs7_signer_info_st() {
17923    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signer_info_st> = ::std::mem::MaybeUninit::uninit();
17924    let ptr = UNINIT.as_ptr();
17925    assert_eq!(
17926        ::std::mem::size_of::<pkcs7_signer_info_st>(),
17927        64usize,
17928        "Size of pkcs7_signer_info_st"
17929    );
17930    assert_eq!(
17931        ::std::mem::align_of::<pkcs7_signer_info_st>(),
17932        8usize,
17933        "Alignment of pkcs7_signer_info_st"
17934    );
17935    assert_eq!(
17936        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17937        0usize,
17938        "Offset of field: pkcs7_signer_info_st::version"
17939    );
17940    assert_eq!(
17941        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
17942        8usize,
17943        "Offset of field: pkcs7_signer_info_st::issuer_and_serial"
17944    );
17945    assert_eq!(
17946        unsafe { ::std::ptr::addr_of!((*ptr).digest_alg) as usize - ptr as usize },
17947        16usize,
17948        "Offset of field: pkcs7_signer_info_st::digest_alg"
17949    );
17950    assert_eq!(
17951        unsafe { ::std::ptr::addr_of!((*ptr).auth_attr) as usize - ptr as usize },
17952        24usize,
17953        "Offset of field: pkcs7_signer_info_st::auth_attr"
17954    );
17955    assert_eq!(
17956        unsafe { ::std::ptr::addr_of!((*ptr).digest_enc_alg) as usize - ptr as usize },
17957        32usize,
17958        "Offset of field: pkcs7_signer_info_st::digest_enc_alg"
17959    );
17960    assert_eq!(
17961        unsafe { ::std::ptr::addr_of!((*ptr).enc_digest) as usize - ptr as usize },
17962        40usize,
17963        "Offset of field: pkcs7_signer_info_st::enc_digest"
17964    );
17965    assert_eq!(
17966        unsafe { ::std::ptr::addr_of!((*ptr).unauth_attr) as usize - ptr as usize },
17967        48usize,
17968        "Offset of field: pkcs7_signer_info_st::unauth_attr"
17969    );
17970    assert_eq!(
17971        unsafe { ::std::ptr::addr_of!((*ptr).pkey) as usize - ptr as usize },
17972        56usize,
17973        "Offset of field: pkcs7_signer_info_st::pkey"
17974    );
17975}
17976impl Default for pkcs7_signer_info_st {
17977    fn default() -> Self {
17978        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17979        unsafe {
17980            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17981            s.assume_init()
17982        }
17983    }
17984}
17985#[repr(C)]
17986#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17987pub struct pkcs7_sign_envelope_st {
17988    pub version: *mut ASN1_INTEGER,
17989    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
17990    pub md_algs: *mut stack_st_X509_ALGOR,
17991    pub enc_data: *mut PKCS7_ENC_CONTENT,
17992    pub cert: *mut stack_st_X509,
17993    pub crl: *mut stack_st_X509_CRL,
17994    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17995}
17996#[test]
17997fn bindgen_test_layout_pkcs7_sign_envelope_st() {
17998    const UNINIT: ::std::mem::MaybeUninit<pkcs7_sign_envelope_st> =
17999        ::std::mem::MaybeUninit::uninit();
18000    let ptr = UNINIT.as_ptr();
18001    assert_eq!(
18002        ::std::mem::size_of::<pkcs7_sign_envelope_st>(),
18003        56usize,
18004        "Size of pkcs7_sign_envelope_st"
18005    );
18006    assert_eq!(
18007        ::std::mem::align_of::<pkcs7_sign_envelope_st>(),
18008        8usize,
18009        "Alignment of pkcs7_sign_envelope_st"
18010    );
18011    assert_eq!(
18012        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18013        0usize,
18014        "Offset of field: pkcs7_sign_envelope_st::version"
18015    );
18016    assert_eq!(
18017        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18018        8usize,
18019        "Offset of field: pkcs7_sign_envelope_st::recipientinfo"
18020    );
18021    assert_eq!(
18022        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
18023        16usize,
18024        "Offset of field: pkcs7_sign_envelope_st::md_algs"
18025    );
18026    assert_eq!(
18027        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18028        24usize,
18029        "Offset of field: pkcs7_sign_envelope_st::enc_data"
18030    );
18031    assert_eq!(
18032        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18033        32usize,
18034        "Offset of field: pkcs7_sign_envelope_st::cert"
18035    );
18036    assert_eq!(
18037        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
18038        40usize,
18039        "Offset of field: pkcs7_sign_envelope_st::crl"
18040    );
18041    assert_eq!(
18042        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
18043        48usize,
18044        "Offset of field: pkcs7_sign_envelope_st::signer_info"
18045    );
18046}
18047impl Default for pkcs7_sign_envelope_st {
18048    fn default() -> Self {
18049        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18050        unsafe {
18051            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18052            s.assume_init()
18053        }
18054    }
18055}
18056#[repr(C)]
18057#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18058pub struct pkcs7_envelope_st {
18059    pub version: *mut ASN1_INTEGER,
18060    pub enc_data: *mut PKCS7_ENC_CONTENT,
18061    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
18062}
18063#[test]
18064fn bindgen_test_layout_pkcs7_envelope_st() {
18065    const UNINIT: ::std::mem::MaybeUninit<pkcs7_envelope_st> = ::std::mem::MaybeUninit::uninit();
18066    let ptr = UNINIT.as_ptr();
18067    assert_eq!(
18068        ::std::mem::size_of::<pkcs7_envelope_st>(),
18069        24usize,
18070        "Size of pkcs7_envelope_st"
18071    );
18072    assert_eq!(
18073        ::std::mem::align_of::<pkcs7_envelope_st>(),
18074        8usize,
18075        "Alignment of pkcs7_envelope_st"
18076    );
18077    assert_eq!(
18078        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18079        0usize,
18080        "Offset of field: pkcs7_envelope_st::version"
18081    );
18082    assert_eq!(
18083        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18084        8usize,
18085        "Offset of field: pkcs7_envelope_st::enc_data"
18086    );
18087    assert_eq!(
18088        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18089        16usize,
18090        "Offset of field: pkcs7_envelope_st::recipientinfo"
18091    );
18092}
18093impl Default for pkcs7_envelope_st {
18094    fn default() -> Self {
18095        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18096        unsafe {
18097            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18098            s.assume_init()
18099        }
18100    }
18101}
18102#[repr(C)]
18103#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18104pub struct pkcs7_recip_info_st {
18105    pub version: *mut ASN1_INTEGER,
18106    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
18107    pub key_enc_algor: *mut X509_ALGOR,
18108    pub enc_key: *mut ASN1_OCTET_STRING,
18109    pub cert: *mut X509,
18110}
18111#[test]
18112fn bindgen_test_layout_pkcs7_recip_info_st() {
18113    const UNINIT: ::std::mem::MaybeUninit<pkcs7_recip_info_st> = ::std::mem::MaybeUninit::uninit();
18114    let ptr = UNINIT.as_ptr();
18115    assert_eq!(
18116        ::std::mem::size_of::<pkcs7_recip_info_st>(),
18117        40usize,
18118        "Size of pkcs7_recip_info_st"
18119    );
18120    assert_eq!(
18121        ::std::mem::align_of::<pkcs7_recip_info_st>(),
18122        8usize,
18123        "Alignment of pkcs7_recip_info_st"
18124    );
18125    assert_eq!(
18126        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18127        0usize,
18128        "Offset of field: pkcs7_recip_info_st::version"
18129    );
18130    assert_eq!(
18131        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
18132        8usize,
18133        "Offset of field: pkcs7_recip_info_st::issuer_and_serial"
18134    );
18135    assert_eq!(
18136        unsafe { ::std::ptr::addr_of!((*ptr).key_enc_algor) as usize - ptr as usize },
18137        16usize,
18138        "Offset of field: pkcs7_recip_info_st::key_enc_algor"
18139    );
18140    assert_eq!(
18141        unsafe { ::std::ptr::addr_of!((*ptr).enc_key) as usize - ptr as usize },
18142        24usize,
18143        "Offset of field: pkcs7_recip_info_st::enc_key"
18144    );
18145    assert_eq!(
18146        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18147        32usize,
18148        "Offset of field: pkcs7_recip_info_st::cert"
18149    );
18150}
18151impl Default for pkcs7_recip_info_st {
18152    fn default() -> Self {
18153        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18154        unsafe {
18155            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18156            s.assume_init()
18157        }
18158    }
18159}
18160#[repr(C)]
18161#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18162pub struct pkcs7_issuer_and_serial_st {
18163    pub issuer: *mut X509_NAME,
18164    pub serial: *mut ASN1_INTEGER,
18165}
18166#[test]
18167fn bindgen_test_layout_pkcs7_issuer_and_serial_st() {
18168    const UNINIT: ::std::mem::MaybeUninit<pkcs7_issuer_and_serial_st> =
18169        ::std::mem::MaybeUninit::uninit();
18170    let ptr = UNINIT.as_ptr();
18171    assert_eq!(
18172        ::std::mem::size_of::<pkcs7_issuer_and_serial_st>(),
18173        16usize,
18174        "Size of pkcs7_issuer_and_serial_st"
18175    );
18176    assert_eq!(
18177        ::std::mem::align_of::<pkcs7_issuer_and_serial_st>(),
18178        8usize,
18179        "Alignment of pkcs7_issuer_and_serial_st"
18180    );
18181    assert_eq!(
18182        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
18183        0usize,
18184        "Offset of field: pkcs7_issuer_and_serial_st::issuer"
18185    );
18186    assert_eq!(
18187        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
18188        8usize,
18189        "Offset of field: pkcs7_issuer_and_serial_st::serial"
18190    );
18191}
18192impl Default for pkcs7_issuer_and_serial_st {
18193    fn default() -> Self {
18194        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18195        unsafe {
18196            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18197            s.assume_init()
18198        }
18199    }
18200}
18201extern "C" {
18202    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_new"]
18203    pub fn PKCS7_new() -> *mut PKCS7;
18204}
18205extern "C" {
18206    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_free"]
18207    pub fn PKCS7_free(a: *mut PKCS7);
18208}
18209extern "C" {
18210    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS7"]
18211    pub fn d2i_PKCS7(
18212        a: *mut *mut PKCS7,
18213        in_: *mut *const ::std::os::raw::c_uchar,
18214        len: ::std::os::raw::c_long,
18215    ) -> *mut PKCS7;
18216}
18217extern "C" {
18218    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS7"]
18219    pub fn i2d_PKCS7(
18220        a: *mut PKCS7,
18221        out: *mut *mut ::std::os::raw::c_uchar,
18222    ) -> ::std::os::raw::c_int;
18223}
18224extern "C" {
18225    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_it"]
18226    pub static PKCS7_it: ASN1_ITEM;
18227}
18228extern "C" {
18229    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_RECIP_INFO_new"]
18230    pub fn PKCS7_RECIP_INFO_new() -> *mut PKCS7_RECIP_INFO;
18231}
18232extern "C" {
18233    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_RECIP_INFO_free"]
18234    pub fn PKCS7_RECIP_INFO_free(a: *mut PKCS7_RECIP_INFO);
18235}
18236extern "C" {
18237    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS7_RECIP_INFO"]
18238    pub fn d2i_PKCS7_RECIP_INFO(
18239        a: *mut *mut PKCS7_RECIP_INFO,
18240        in_: *mut *const ::std::os::raw::c_uchar,
18241        len: ::std::os::raw::c_long,
18242    ) -> *mut PKCS7_RECIP_INFO;
18243}
18244extern "C" {
18245    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS7_RECIP_INFO"]
18246    pub fn i2d_PKCS7_RECIP_INFO(
18247        a: *mut PKCS7_RECIP_INFO,
18248        out: *mut *mut ::std::os::raw::c_uchar,
18249    ) -> ::std::os::raw::c_int;
18250}
18251extern "C" {
18252    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_RECIP_INFO_it"]
18253    pub static PKCS7_RECIP_INFO_it: ASN1_ITEM;
18254}
18255extern "C" {
18256    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_SIGNER_INFO_new"]
18257    pub fn PKCS7_SIGNER_INFO_new() -> *mut PKCS7_SIGNER_INFO;
18258}
18259extern "C" {
18260    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_SIGNER_INFO_free"]
18261    pub fn PKCS7_SIGNER_INFO_free(a: *mut PKCS7_SIGNER_INFO);
18262}
18263extern "C" {
18264    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS7_SIGNER_INFO"]
18265    pub fn d2i_PKCS7_SIGNER_INFO(
18266        a: *mut *mut PKCS7_SIGNER_INFO,
18267        in_: *mut *const ::std::os::raw::c_uchar,
18268        len: ::std::os::raw::c_long,
18269    ) -> *mut PKCS7_SIGNER_INFO;
18270}
18271extern "C" {
18272    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS7_SIGNER_INFO"]
18273    pub fn i2d_PKCS7_SIGNER_INFO(
18274        a: *mut PKCS7_SIGNER_INFO,
18275        out: *mut *mut ::std::os::raw::c_uchar,
18276    ) -> ::std::os::raw::c_int;
18277}
18278extern "C" {
18279    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_SIGNER_INFO_it"]
18280    pub static PKCS7_SIGNER_INFO_it: ASN1_ITEM;
18281}
18282#[repr(C)]
18283#[derive(Debug, Copy, Clone)]
18284pub struct stack_st_PKCS7_RECIP_INFO {
18285    _unused: [u8; 0],
18286}
18287pub type sk_PKCS7_RECIP_INFO_free_func =
18288    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_RECIP_INFO)>;
18289pub type sk_PKCS7_RECIP_INFO_copy_func = ::std::option::Option<
18290    unsafe extern "C" fn(arg1: *const PKCS7_RECIP_INFO) -> *mut PKCS7_RECIP_INFO,
18291>;
18292pub type sk_PKCS7_RECIP_INFO_cmp_func = ::std::option::Option<
18293    unsafe extern "C" fn(
18294        arg1: *const *const PKCS7_RECIP_INFO,
18295        arg2: *const *const PKCS7_RECIP_INFO,
18296    ) -> ::std::os::raw::c_int,
18297>;
18298pub type sk_PKCS7_RECIP_INFO_delete_if_func = ::std::option::Option<
18299    unsafe extern "C" fn(
18300        arg1: *mut PKCS7_RECIP_INFO,
18301        arg2: *mut ::std::os::raw::c_void,
18302    ) -> ::std::os::raw::c_int,
18303>;
18304#[repr(C)]
18305#[derive(Debug, Copy, Clone)]
18306pub struct stack_st_PKCS7_SIGNER_INFO {
18307    _unused: [u8; 0],
18308}
18309pub type sk_PKCS7_SIGNER_INFO_free_func =
18310    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_SIGNER_INFO)>;
18311pub type sk_PKCS7_SIGNER_INFO_copy_func = ::std::option::Option<
18312    unsafe extern "C" fn(arg1: *const PKCS7_SIGNER_INFO) -> *mut PKCS7_SIGNER_INFO,
18313>;
18314pub type sk_PKCS7_SIGNER_INFO_cmp_func = ::std::option::Option<
18315    unsafe extern "C" fn(
18316        arg1: *const *const PKCS7_SIGNER_INFO,
18317        arg2: *const *const PKCS7_SIGNER_INFO,
18318    ) -> ::std::os::raw::c_int,
18319>;
18320pub type sk_PKCS7_SIGNER_INFO_delete_if_func = ::std::option::Option<
18321    unsafe extern "C" fn(
18322        arg1: *mut PKCS7_SIGNER_INFO,
18323        arg2: *mut ::std::os::raw::c_void,
18324    ) -> ::std::os::raw::c_int,
18325>;
18326extern "C" {
18327    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_dup"]
18328    pub fn PKCS7_dup(p7: *mut PKCS7) -> *mut PKCS7;
18329}
18330extern "C" {
18331    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_signed_attribute"]
18332    pub fn PKCS7_get_signed_attribute(
18333        si: *const PKCS7_SIGNER_INFO,
18334        nid: ::std::os::raw::c_int,
18335    ) -> *mut ASN1_TYPE;
18336}
18337extern "C" {
18338    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_signer_info"]
18339    pub fn PKCS7_get_signer_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_SIGNER_INFO;
18340}
18341extern "C" {
18342    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_RECIP_INFO_set"]
18343    pub fn PKCS7_RECIP_INFO_set(
18344        p7i: *mut PKCS7_RECIP_INFO,
18345        x509: *mut X509,
18346    ) -> ::std::os::raw::c_int;
18347}
18348extern "C" {
18349    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_SIGNER_INFO_set"]
18350    pub fn PKCS7_SIGNER_INFO_set(
18351        p7i: *mut PKCS7_SIGNER_INFO,
18352        x509: *mut X509,
18353        pkey: *mut EVP_PKEY,
18354        dgst: *const EVP_MD,
18355    ) -> ::std::os::raw::c_int;
18356}
18357extern "C" {
18358    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_add_certificate"]
18359    pub fn PKCS7_add_certificate(p7: *mut PKCS7, x509: *mut X509) -> ::std::os::raw::c_int;
18360}
18361extern "C" {
18362    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_add_crl"]
18363    pub fn PKCS7_add_crl(p7: *mut PKCS7, x509: *mut X509_CRL) -> ::std::os::raw::c_int;
18364}
18365extern "C" {
18366    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_add_recipient_info"]
18367    pub fn PKCS7_add_recipient_info(
18368        p7: *mut PKCS7,
18369        ri: *mut PKCS7_RECIP_INFO,
18370    ) -> ::std::os::raw::c_int;
18371}
18372extern "C" {
18373    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_add_signer"]
18374    pub fn PKCS7_add_signer(p7: *mut PKCS7, p7i: *mut PKCS7_SIGNER_INFO) -> ::std::os::raw::c_int;
18375}
18376extern "C" {
18377    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_content_new"]
18378    pub fn PKCS7_content_new(p7: *mut PKCS7, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18379}
18380extern "C" {
18381    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_set_content"]
18382    pub fn PKCS7_set_content(p7: *mut PKCS7, p7_data: *mut PKCS7) -> ::std::os::raw::c_int;
18383}
18384extern "C" {
18385    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_set_cipher"]
18386    pub fn PKCS7_set_cipher(p7: *mut PKCS7, cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
18387}
18388extern "C" {
18389    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_set_type"]
18390    pub fn PKCS7_set_type(p7: *mut PKCS7, type_: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18391}
18392extern "C" {
18393    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_RECIP_INFO_get0_alg"]
18394    pub fn PKCS7_RECIP_INFO_get0_alg(ri: *mut PKCS7_RECIP_INFO, penc: *mut *mut X509_ALGOR);
18395}
18396extern "C" {
18397    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_SIGNER_INFO_get0_algs"]
18398    pub fn PKCS7_SIGNER_INFO_get0_algs(
18399        si: *mut PKCS7_SIGNER_INFO,
18400        pk: *mut *mut EVP_PKEY,
18401        pdig: *mut *mut X509_ALGOR,
18402        psig: *mut *mut X509_ALGOR,
18403    );
18404}
18405extern "C" {
18406    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_sign"]
18407    pub fn PKCS7_sign(
18408        sign_cert: *mut X509,
18409        pkey: *mut EVP_PKEY,
18410        certs: *mut stack_st_X509,
18411        data: *mut BIO,
18412        flags: ::std::os::raw::c_int,
18413    ) -> *mut PKCS7;
18414}
18415extern "C" {
18416    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_verify"]
18417    pub fn PKCS7_verify(
18418        p7: *mut PKCS7,
18419        certs: *mut stack_st_X509,
18420        store: *mut X509_STORE,
18421        indata: *mut BIO,
18422        outdata: *mut BIO,
18423        flags: ::std::os::raw::c_int,
18424    ) -> ::std::os::raw::c_int;
18425}
18426extern "C" {
18427    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_is_detached"]
18428    pub fn PKCS7_is_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18429}
18430extern "C" {
18431    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_set_detached"]
18432    pub fn PKCS7_set_detached(
18433        p7: *mut PKCS7,
18434        detach: ::std::os::raw::c_int,
18435    ) -> ::std::os::raw::c_int;
18436}
18437extern "C" {
18438    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_detached"]
18439    pub fn PKCS7_get_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18440}
18441extern "C" {
18442    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_dataInit"]
18443    pub fn PKCS7_dataInit(p7: *mut PKCS7, bio: *mut BIO) -> *mut BIO;
18444}
18445extern "C" {
18446    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_dataFinal"]
18447    pub fn PKCS7_dataFinal(p7: *mut PKCS7, bio: *mut BIO) -> ::std::os::raw::c_int;
18448}
18449extern "C" {
18450    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_set_digest"]
18451    pub fn PKCS7_set_digest(p7: *mut PKCS7, md: *const EVP_MD) -> ::std::os::raw::c_int;
18452}
18453extern "C" {
18454    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get_recipient_info"]
18455    pub fn PKCS7_get_recipient_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_RECIP_INFO;
18456}
18457extern "C" {
18458    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_add_recipient"]
18459    pub fn PKCS7_add_recipient(p7: *mut PKCS7, x509: *mut X509) -> *mut PKCS7_RECIP_INFO;
18460}
18461extern "C" {
18462    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_get0_signers"]
18463    pub fn PKCS7_get0_signers(
18464        p7: *mut PKCS7,
18465        certs: *mut stack_st_X509,
18466        flags: ::std::os::raw::c_int,
18467    ) -> *mut stack_st_X509;
18468}
18469extern "C" {
18470    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_encrypt"]
18471    pub fn PKCS7_encrypt(
18472        certs: *mut stack_st_X509,
18473        in_: *mut BIO,
18474        cipher: *const EVP_CIPHER,
18475        flags: ::std::os::raw::c_int,
18476    ) -> *mut PKCS7;
18477}
18478extern "C" {
18479    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_decrypt"]
18480    pub fn PKCS7_decrypt(
18481        p7: *mut PKCS7,
18482        pkey: *mut EVP_PKEY,
18483        cert: *mut X509,
18484        data: *mut BIO,
18485        flags: ::std::os::raw::c_int,
18486    ) -> ::std::os::raw::c_int;
18487}
18488extern "C" {
18489    #[link_name = "\u{1}aws_lc_0_38_0_SMIME_read_PKCS7"]
18490    pub fn SMIME_read_PKCS7(in_: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7;
18491}
18492extern "C" {
18493    #[link_name = "\u{1}aws_lc_0_38_0_SMIME_write_PKCS7"]
18494    pub fn SMIME_write_PKCS7(
18495        out: *mut BIO,
18496        p7: *mut PKCS7,
18497        data: *mut BIO,
18498        flags: ::std::os::raw::c_int,
18499    ) -> ::std::os::raw::c_int;
18500}
18501extern "C" {
18502    #[link_name = "\u{1}aws_lc_0_38_0_PKCS7_print_ctx"]
18503    pub fn PKCS7_print_ctx(
18504        bio: *mut BIO,
18505        pkcs7: *mut PKCS7,
18506        indent: ::std::os::raw::c_int,
18507        pctx: *const ASN1_PCTX,
18508    ) -> ::std::os::raw::c_int;
18509}
18510pub type sk_CRYPTO_BUFFER_free_func =
18511    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
18512pub type sk_CRYPTO_BUFFER_copy_func =
18513    ::std::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
18514pub type sk_CRYPTO_BUFFER_cmp_func = ::std::option::Option<
18515    unsafe extern "C" fn(
18516        arg1: *const *const CRYPTO_BUFFER,
18517        arg2: *const *const CRYPTO_BUFFER,
18518    ) -> ::std::os::raw::c_int,
18519>;
18520pub type sk_CRYPTO_BUFFER_delete_if_func = ::std::option::Option<
18521    unsafe extern "C" fn(
18522        arg1: *mut CRYPTO_BUFFER,
18523        arg2: *mut ::std::os::raw::c_void,
18524    ) -> ::std::os::raw::c_int,
18525>;
18526extern "C" {
18527    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_POOL_new"]
18528    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
18529}
18530extern "C" {
18531    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_POOL_free"]
18532    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
18533}
18534extern "C" {
18535    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_new"]
18536    pub fn CRYPTO_BUFFER_new(
18537        data: *const u8,
18538        len: usize,
18539        pool: *mut CRYPTO_BUFFER_POOL,
18540    ) -> *mut CRYPTO_BUFFER;
18541}
18542extern "C" {
18543    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_alloc"]
18544    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
18545}
18546extern "C" {
18547    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_new_from_CBS"]
18548    pub fn CRYPTO_BUFFER_new_from_CBS(
18549        cbs: *const CBS,
18550        pool: *mut CRYPTO_BUFFER_POOL,
18551    ) -> *mut CRYPTO_BUFFER;
18552}
18553extern "C" {
18554    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_new_from_static_data_unsafe"]
18555    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
18556        data: *const u8,
18557        len: usize,
18558        pool: *mut CRYPTO_BUFFER_POOL,
18559    ) -> *mut CRYPTO_BUFFER;
18560}
18561extern "C" {
18562    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_free"]
18563    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
18564}
18565extern "C" {
18566    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_up_ref"]
18567    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
18568}
18569extern "C" {
18570    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_data"]
18571    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
18572}
18573extern "C" {
18574    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_len"]
18575    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
18576}
18577extern "C" {
18578    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_BUFFER_init_CBS"]
18579    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
18580}
18581extern "C" {
18582    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_public_key"]
18583    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
18584}
18585extern "C" {
18586    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_private_key"]
18587    pub fn RSA_new_private_key(
18588        n: *const BIGNUM,
18589        e: *const BIGNUM,
18590        d: *const BIGNUM,
18591        p: *const BIGNUM,
18592        q: *const BIGNUM,
18593        dmp1: *const BIGNUM,
18594        dmq1: *const BIGNUM,
18595        iqmp: *const BIGNUM,
18596    ) -> *mut RSA;
18597}
18598extern "C" {
18599    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new"]
18600    pub fn RSA_new() -> *mut RSA;
18601}
18602extern "C" {
18603    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_method"]
18604    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
18605}
18606extern "C" {
18607    #[link_name = "\u{1}aws_lc_0_38_0_RSA_free"]
18608    pub fn RSA_free(rsa: *mut RSA);
18609}
18610extern "C" {
18611    #[link_name = "\u{1}aws_lc_0_38_0_RSA_up_ref"]
18612    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
18613}
18614extern "C" {
18615    #[link_name = "\u{1}aws_lc_0_38_0_RSA_bits"]
18616    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
18617}
18618extern "C" {
18619    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_n"]
18620    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
18621}
18622extern "C" {
18623    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_e"]
18624    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
18625}
18626extern "C" {
18627    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_d"]
18628    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
18629}
18630extern "C" {
18631    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_p"]
18632    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
18633}
18634extern "C" {
18635    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_q"]
18636    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
18637}
18638extern "C" {
18639    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_dmp1"]
18640    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
18641}
18642extern "C" {
18643    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_dmq1"]
18644    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
18645}
18646extern "C" {
18647    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_iqmp"]
18648    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
18649}
18650extern "C" {
18651    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_key"]
18652    pub fn RSA_get0_key(
18653        rsa: *const RSA,
18654        out_n: *mut *const BIGNUM,
18655        out_e: *mut *const BIGNUM,
18656        out_d: *mut *const BIGNUM,
18657    );
18658}
18659extern "C" {
18660    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_factors"]
18661    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
18662}
18663extern "C" {
18664    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_crt_params"]
18665    pub fn RSA_get0_crt_params(
18666        rsa: *const RSA,
18667        out_dmp1: *mut *const BIGNUM,
18668        out_dmq1: *mut *const BIGNUM,
18669        out_iqmp: *mut *const BIGNUM,
18670    );
18671}
18672extern "C" {
18673    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set0_key"]
18674    pub fn RSA_set0_key(
18675        rsa: *mut RSA,
18676        n: *mut BIGNUM,
18677        e: *mut BIGNUM,
18678        d: *mut BIGNUM,
18679    ) -> ::std::os::raw::c_int;
18680}
18681extern "C" {
18682    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set0_factors"]
18683    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
18684        -> ::std::os::raw::c_int;
18685}
18686extern "C" {
18687    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set0_crt_params"]
18688    pub fn RSA_set0_crt_params(
18689        rsa: *mut RSA,
18690        dmp1: *mut BIGNUM,
18691        dmq1: *mut BIGNUM,
18692        iqmp: *mut BIGNUM,
18693    ) -> ::std::os::raw::c_int;
18694}
18695extern "C" {
18696    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get_default_method"]
18697    pub fn RSA_get_default_method() -> *const RSA_METHOD;
18698}
18699extern "C" {
18700    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_new"]
18701    pub fn RSA_meth_new(
18702        name: *const ::std::os::raw::c_char,
18703        flags: ::std::os::raw::c_int,
18704    ) -> *mut RSA_METHOD;
18705}
18706extern "C" {
18707    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set_method"]
18708    pub fn RSA_set_method(rsa: *mut RSA, meth: *const RSA_METHOD) -> ::std::os::raw::c_int;
18709}
18710extern "C" {
18711    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get_method"]
18712    pub fn RSA_get_method(rsa: *const RSA) -> *const RSA_METHOD;
18713}
18714extern "C" {
18715    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_free"]
18716    pub fn RSA_meth_free(meth: *mut RSA_METHOD);
18717}
18718extern "C" {
18719    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_init"]
18720    pub fn RSA_meth_set_init(
18721        meth: *mut RSA_METHOD,
18722        init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18723    ) -> ::std::os::raw::c_int;
18724}
18725extern "C" {
18726    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_finish"]
18727    pub fn RSA_meth_set_finish(
18728        meth: *mut RSA_METHOD,
18729        finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18730    ) -> ::std::os::raw::c_int;
18731}
18732extern "C" {
18733    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_priv_dec"]
18734    pub fn RSA_meth_set_priv_dec(
18735        meth: *mut RSA_METHOD,
18736        priv_dec: ::std::option::Option<
18737            unsafe extern "C" fn(
18738                max_out: ::std::os::raw::c_int,
18739                from: *const u8,
18740                to: *mut u8,
18741                rsa: *mut RSA,
18742                padding: ::std::os::raw::c_int,
18743            ) -> ::std::os::raw::c_int,
18744        >,
18745    ) -> ::std::os::raw::c_int;
18746}
18747extern "C" {
18748    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_priv_enc"]
18749    pub fn RSA_meth_set_priv_enc(
18750        meth: *mut RSA_METHOD,
18751        priv_enc: ::std::option::Option<
18752            unsafe extern "C" fn(
18753                max_out: ::std::os::raw::c_int,
18754                from: *const u8,
18755                to: *mut u8,
18756                rsa: *mut RSA,
18757                padding: ::std::os::raw::c_int,
18758            ) -> ::std::os::raw::c_int,
18759        >,
18760    ) -> ::std::os::raw::c_int;
18761}
18762extern "C" {
18763    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_pub_dec"]
18764    pub fn RSA_meth_set_pub_dec(
18765        meth: *mut RSA_METHOD,
18766        pub_dec: ::std::option::Option<
18767            unsafe extern "C" fn(
18768                max_out: ::std::os::raw::c_int,
18769                from: *const u8,
18770                to: *mut u8,
18771                rsa: *mut RSA,
18772                padding: ::std::os::raw::c_int,
18773            ) -> ::std::os::raw::c_int,
18774        >,
18775    ) -> ::std::os::raw::c_int;
18776}
18777extern "C" {
18778    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_pub_enc"]
18779    pub fn RSA_meth_set_pub_enc(
18780        meth: *mut RSA_METHOD,
18781        pub_enc: ::std::option::Option<
18782            unsafe extern "C" fn(
18783                max_out: ::std::os::raw::c_int,
18784                from: *const u8,
18785                to: *mut u8,
18786                rsa: *mut RSA,
18787                padding: ::std::os::raw::c_int,
18788            ) -> ::std::os::raw::c_int,
18789        >,
18790    ) -> ::std::os::raw::c_int;
18791}
18792extern "C" {
18793    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set0_app_data"]
18794    pub fn RSA_meth_set0_app_data(
18795        meth: *mut RSA_METHOD,
18796        app_data: *mut ::std::os::raw::c_void,
18797    ) -> ::std::os::raw::c_int;
18798}
18799extern "C" {
18800    #[link_name = "\u{1}aws_lc_0_38_0_RSA_meth_set_sign"]
18801    pub fn RSA_meth_set_sign(
18802        meth: *mut RSA_METHOD,
18803        sign: ::std::option::Option<
18804            unsafe extern "C" fn(
18805                type_: ::std::os::raw::c_int,
18806                m: *const ::std::os::raw::c_uchar,
18807                m_length: ::std::os::raw::c_uint,
18808                sigret: *mut ::std::os::raw::c_uchar,
18809                siglen: *mut ::std::os::raw::c_uint,
18810                rsa: *const RSA,
18811            ) -> ::std::os::raw::c_int,
18812        >,
18813    ) -> ::std::os::raw::c_int;
18814}
18815extern "C" {
18816    #[link_name = "\u{1}aws_lc_0_38_0_RSA_generate_key_ex"]
18817    pub fn RSA_generate_key_ex(
18818        rsa: *mut RSA,
18819        bits: ::std::os::raw::c_int,
18820        e: *const BIGNUM,
18821        cb: *mut BN_GENCB,
18822    ) -> ::std::os::raw::c_int;
18823}
18824extern "C" {
18825    #[link_name = "\u{1}aws_lc_0_38_0_RSA_generate_key_fips"]
18826    pub fn RSA_generate_key_fips(
18827        rsa: *mut RSA,
18828        bits: ::std::os::raw::c_int,
18829        cb: *mut BN_GENCB,
18830    ) -> ::std::os::raw::c_int;
18831}
18832extern "C" {
18833    #[link_name = "\u{1}aws_lc_0_38_0_RSA_encrypt"]
18834    pub fn RSA_encrypt(
18835        rsa: *mut RSA,
18836        out_len: *mut usize,
18837        out: *mut u8,
18838        max_out: usize,
18839        in_: *const u8,
18840        in_len: usize,
18841        padding: ::std::os::raw::c_int,
18842    ) -> ::std::os::raw::c_int;
18843}
18844extern "C" {
18845    #[link_name = "\u{1}aws_lc_0_38_0_RSA_decrypt"]
18846    pub fn RSA_decrypt(
18847        rsa: *mut RSA,
18848        out_len: *mut usize,
18849        out: *mut u8,
18850        max_out: usize,
18851        in_: *const u8,
18852        in_len: usize,
18853        padding: ::std::os::raw::c_int,
18854    ) -> ::std::os::raw::c_int;
18855}
18856extern "C" {
18857    #[link_name = "\u{1}aws_lc_0_38_0_RSA_public_encrypt"]
18858    pub fn RSA_public_encrypt(
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_38_0_RSA_private_decrypt"]
18868    pub fn RSA_private_decrypt(
18869        flen: usize,
18870        from: *const u8,
18871        to: *mut u8,
18872        rsa: *mut RSA,
18873        padding: ::std::os::raw::c_int,
18874    ) -> ::std::os::raw::c_int;
18875}
18876extern "C" {
18877    #[link_name = "\u{1}aws_lc_0_38_0_RSA_sign"]
18878    pub fn RSA_sign(
18879        hash_nid: ::std::os::raw::c_int,
18880        digest: *const u8,
18881        digest_len: usize,
18882        out: *mut u8,
18883        out_len: *mut ::std::os::raw::c_uint,
18884        rsa: *mut RSA,
18885    ) -> ::std::os::raw::c_int;
18886}
18887extern "C" {
18888    #[link_name = "\u{1}aws_lc_0_38_0_RSA_sign_pss_mgf1"]
18889    pub fn RSA_sign_pss_mgf1(
18890        rsa: *mut RSA,
18891        out_len: *mut usize,
18892        out: *mut u8,
18893        max_out: usize,
18894        digest: *const u8,
18895        digest_len: usize,
18896        md: *const EVP_MD,
18897        mgf1_md: *const EVP_MD,
18898        salt_len: ::std::os::raw::c_int,
18899    ) -> ::std::os::raw::c_int;
18900}
18901extern "C" {
18902    #[link_name = "\u{1}aws_lc_0_38_0_RSA_sign_raw"]
18903    pub fn RSA_sign_raw(
18904        rsa: *mut RSA,
18905        out_len: *mut usize,
18906        out: *mut u8,
18907        max_out: usize,
18908        in_: *const u8,
18909        in_len: usize,
18910        padding: ::std::os::raw::c_int,
18911    ) -> ::std::os::raw::c_int;
18912}
18913extern "C" {
18914    #[link_name = "\u{1}aws_lc_0_38_0_RSA_verify"]
18915    pub fn RSA_verify(
18916        hash_nid: ::std::os::raw::c_int,
18917        digest: *const u8,
18918        digest_len: usize,
18919        sig: *const u8,
18920        sig_len: usize,
18921        rsa: *mut RSA,
18922    ) -> ::std::os::raw::c_int;
18923}
18924extern "C" {
18925    #[link_name = "\u{1}aws_lc_0_38_0_RSA_verify_pss_mgf1"]
18926    pub fn RSA_verify_pss_mgf1(
18927        rsa: *mut RSA,
18928        digest: *const u8,
18929        digest_len: usize,
18930        md: *const EVP_MD,
18931        mgf1_md: *const EVP_MD,
18932        salt_len: ::std::os::raw::c_int,
18933        sig: *const u8,
18934        sig_len: usize,
18935    ) -> ::std::os::raw::c_int;
18936}
18937extern "C" {
18938    #[link_name = "\u{1}aws_lc_0_38_0_RSA_verify_raw"]
18939    pub fn RSA_verify_raw(
18940        rsa: *mut RSA,
18941        out_len: *mut usize,
18942        out: *mut u8,
18943        max_out: usize,
18944        in_: *const u8,
18945        in_len: usize,
18946        padding: ::std::os::raw::c_int,
18947    ) -> ::std::os::raw::c_int;
18948}
18949extern "C" {
18950    #[link_name = "\u{1}aws_lc_0_38_0_RSA_private_encrypt"]
18951    pub fn RSA_private_encrypt(
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_38_0_RSA_public_decrypt"]
18961    pub fn RSA_public_decrypt(
18962        flen: usize,
18963        from: *const u8,
18964        to: *mut u8,
18965        rsa: *mut RSA,
18966        padding: ::std::os::raw::c_int,
18967    ) -> ::std::os::raw::c_int;
18968}
18969extern "C" {
18970    #[link_name = "\u{1}aws_lc_0_38_0_RSA_size"]
18971    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
18972}
18973extern "C" {
18974    #[link_name = "\u{1}aws_lc_0_38_0_RSA_is_opaque"]
18975    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
18976}
18977extern "C" {
18978    #[link_name = "\u{1}aws_lc_0_38_0_RSAPublicKey_dup"]
18979    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
18980}
18981extern "C" {
18982    #[link_name = "\u{1}aws_lc_0_38_0_RSAPrivateKey_dup"]
18983    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
18984}
18985extern "C" {
18986    #[link_name = "\u{1}aws_lc_0_38_0_RSA_check_key"]
18987    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
18988}
18989extern "C" {
18990    #[link_name = "\u{1}aws_lc_0_38_0_RSA_check_fips"]
18991    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
18992}
18993extern "C" {
18994    #[link_name = "\u{1}aws_lc_0_38_0_RSA_verify_PKCS1_PSS_mgf1"]
18995    pub fn RSA_verify_PKCS1_PSS_mgf1(
18996        rsa: *const RSA,
18997        mHash: *const u8,
18998        Hash: *const EVP_MD,
18999        mgf1Hash: *const EVP_MD,
19000        EM: *const u8,
19001        sLen: ::std::os::raw::c_int,
19002    ) -> ::std::os::raw::c_int;
19003}
19004extern "C" {
19005    #[link_name = "\u{1}aws_lc_0_38_0_RSA_padding_add_PKCS1_PSS_mgf1"]
19006    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
19007        rsa: *const RSA,
19008        EM: *mut u8,
19009        mHash: *const u8,
19010        Hash: *const EVP_MD,
19011        mgf1Hash: *const EVP_MD,
19012        sLen: ::std::os::raw::c_int,
19013    ) -> ::std::os::raw::c_int;
19014}
19015extern "C" {
19016    #[link_name = "\u{1}aws_lc_0_38_0_RSA_padding_add_PKCS1_OAEP_mgf1"]
19017    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
19018        to: *mut u8,
19019        to_len: usize,
19020        from: *const u8,
19021        from_len: usize,
19022        param: *const u8,
19023        param_len: usize,
19024        md: *const EVP_MD,
19025        mgf1md: *const EVP_MD,
19026    ) -> ::std::os::raw::c_int;
19027}
19028extern "C" {
19029    #[link_name = "\u{1}aws_lc_0_38_0_PKCS1_MGF1"]
19030    pub fn PKCS1_MGF1(
19031        out: *mut u8,
19032        len: usize,
19033        seed: *const u8,
19034        seed_len: usize,
19035        md: *const EVP_MD,
19036    ) -> ::std::os::raw::c_int;
19037}
19038extern "C" {
19039    #[link_name = "\u{1}aws_lc_0_38_0_RSA_add_pkcs1_prefix"]
19040    pub fn RSA_add_pkcs1_prefix(
19041        out_msg: *mut *mut u8,
19042        out_msg_len: *mut usize,
19043        is_alloced: *mut ::std::os::raw::c_int,
19044        hash_nid: ::std::os::raw::c_int,
19045        digest: *const u8,
19046        digest_len: usize,
19047    ) -> ::std::os::raw::c_int;
19048}
19049extern "C" {
19050    #[link_name = "\u{1}aws_lc_0_38_0_RSA_parse_public_key"]
19051    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
19052}
19053extern "C" {
19054    #[link_name = "\u{1}aws_lc_0_38_0_RSA_public_key_from_bytes"]
19055    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19056}
19057extern "C" {
19058    #[link_name = "\u{1}aws_lc_0_38_0_RSA_marshal_public_key"]
19059    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19060}
19061extern "C" {
19062    #[link_name = "\u{1}aws_lc_0_38_0_RSA_public_key_to_bytes"]
19063    pub fn RSA_public_key_to_bytes(
19064        out_bytes: *mut *mut u8,
19065        out_len: *mut usize,
19066        rsa: *const RSA,
19067    ) -> ::std::os::raw::c_int;
19068}
19069extern "C" {
19070    #[link_name = "\u{1}aws_lc_0_38_0_RSA_parse_private_key"]
19071    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
19072}
19073extern "C" {
19074    #[link_name = "\u{1}aws_lc_0_38_0_RSA_private_key_from_bytes"]
19075    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19076}
19077extern "C" {
19078    #[link_name = "\u{1}aws_lc_0_38_0_RSA_marshal_private_key"]
19079    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19080}
19081extern "C" {
19082    #[link_name = "\u{1}aws_lc_0_38_0_RSA_private_key_to_bytes"]
19083    pub fn RSA_private_key_to_bytes(
19084        out_bytes: *mut *mut u8,
19085        out_len: *mut usize,
19086        rsa: *const RSA,
19087    ) -> ::std::os::raw::c_int;
19088}
19089extern "C" {
19090    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_private_key_no_crt"]
19091    pub fn RSA_new_private_key_no_crt(
19092        n: *const BIGNUM,
19093        e: *const BIGNUM,
19094        d: *const BIGNUM,
19095    ) -> *mut RSA;
19096}
19097extern "C" {
19098    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_private_key_no_e"]
19099    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
19100}
19101extern "C" {
19102    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_public_key_large_e"]
19103    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
19104}
19105extern "C" {
19106    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_private_key_large_e"]
19107    pub fn RSA_new_private_key_large_e(
19108        n: *const BIGNUM,
19109        e: *const BIGNUM,
19110        d: *const BIGNUM,
19111        p: *const BIGNUM,
19112        q: *const BIGNUM,
19113        dmp1: *const BIGNUM,
19114        dmq1: *const BIGNUM,
19115        iqmp: *const BIGNUM,
19116    ) -> *mut RSA;
19117}
19118extern "C" {
19119    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get_ex_new_index"]
19120    pub fn RSA_get_ex_new_index(
19121        argl: ::std::os::raw::c_long,
19122        argp: *mut ::std::os::raw::c_void,
19123        unused: *mut CRYPTO_EX_unused,
19124        dup_unused: CRYPTO_EX_dup,
19125        free_func: CRYPTO_EX_free,
19126    ) -> ::std::os::raw::c_int;
19127}
19128extern "C" {
19129    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set_ex_data"]
19130    pub fn RSA_set_ex_data(
19131        rsa: *mut RSA,
19132        idx: ::std::os::raw::c_int,
19133        arg: *mut ::std::os::raw::c_void,
19134    ) -> ::std::os::raw::c_int;
19135}
19136extern "C" {
19137    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get_ex_data"]
19138    pub fn RSA_get_ex_data(
19139        rsa: *const RSA,
19140        idx: ::std::os::raw::c_int,
19141    ) -> *mut ::std::os::raw::c_void;
19142}
19143extern "C" {
19144    #[link_name = "\u{1}aws_lc_0_38_0_RSA_flags"]
19145    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
19146}
19147extern "C" {
19148    #[link_name = "\u{1}aws_lc_0_38_0_RSA_set_flags"]
19149    pub fn RSA_set_flags(rsa: *mut RSA, flags: ::std::os::raw::c_int);
19150}
19151extern "C" {
19152    #[link_name = "\u{1}aws_lc_0_38_0_RSA_test_flags"]
19153    pub fn RSA_test_flags(rsa: *const RSA, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
19154}
19155extern "C" {
19156    #[link_name = "\u{1}aws_lc_0_38_0_RSA_blinding_on"]
19157    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
19158}
19159extern "C" {
19160    #[link_name = "\u{1}aws_lc_0_38_0_RSA_blinding_off_temp_for_accp_compatibility"]
19161    pub fn RSA_blinding_off_temp_for_accp_compatibility(rsa: *mut RSA);
19162}
19163extern "C" {
19164    #[link_name = "\u{1}aws_lc_0_38_0_RSA_pkey_ctx_ctrl"]
19165    pub fn RSA_pkey_ctx_ctrl(
19166        ctx: *mut EVP_PKEY_CTX,
19167        optype: ::std::os::raw::c_int,
19168        cmd: ::std::os::raw::c_int,
19169        p1: ::std::os::raw::c_int,
19170        p2: *mut ::std::os::raw::c_void,
19171    ) -> ::std::os::raw::c_int;
19172}
19173extern "C" {
19174    #[link_name = "\u{1}aws_lc_0_38_0_RSA_generate_key"]
19175    pub fn RSA_generate_key(
19176        bits: ::std::os::raw::c_int,
19177        e: u64,
19178        callback: *mut ::std::os::raw::c_void,
19179        cb_arg: *mut ::std::os::raw::c_void,
19180    ) -> *mut RSA;
19181}
19182extern "C" {
19183    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPublicKey"]
19184    pub fn d2i_RSAPublicKey(
19185        out: *mut *mut RSA,
19186        inp: *mut *const u8,
19187        len: ::std::os::raw::c_long,
19188    ) -> *mut RSA;
19189}
19190extern "C" {
19191    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPublicKey"]
19192    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19193}
19194extern "C" {
19195    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPrivateKey"]
19196    pub fn d2i_RSAPrivateKey(
19197        out: *mut *mut RSA,
19198        inp: *mut *const u8,
19199        len: ::std::os::raw::c_long,
19200    ) -> *mut RSA;
19201}
19202extern "C" {
19203    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPrivateKey"]
19204    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19205}
19206extern "C" {
19207    #[link_name = "\u{1}aws_lc_0_38_0_RSA_padding_add_PKCS1_PSS"]
19208    pub fn RSA_padding_add_PKCS1_PSS(
19209        rsa: *const RSA,
19210        EM: *mut u8,
19211        mHash: *const u8,
19212        Hash: *const EVP_MD,
19213        sLen: ::std::os::raw::c_int,
19214    ) -> ::std::os::raw::c_int;
19215}
19216extern "C" {
19217    #[link_name = "\u{1}aws_lc_0_38_0_RSA_verify_PKCS1_PSS"]
19218    pub fn RSA_verify_PKCS1_PSS(
19219        rsa: *const RSA,
19220        mHash: *const u8,
19221        Hash: *const EVP_MD,
19222        EM: *const u8,
19223        sLen: ::std::os::raw::c_int,
19224    ) -> ::std::os::raw::c_int;
19225}
19226extern "C" {
19227    #[link_name = "\u{1}aws_lc_0_38_0_RSA_padding_add_PKCS1_OAEP"]
19228    pub fn RSA_padding_add_PKCS1_OAEP(
19229        to: *mut u8,
19230        to_len: usize,
19231        from: *const u8,
19232        from_len: usize,
19233        param: *const u8,
19234        param_len: usize,
19235    ) -> ::std::os::raw::c_int;
19236}
19237extern "C" {
19238    #[link_name = "\u{1}aws_lc_0_38_0_RSA_print"]
19239    pub fn RSA_print(
19240        bio: *mut BIO,
19241        rsa: *const RSA,
19242        indent: ::std::os::raw::c_int,
19243    ) -> ::std::os::raw::c_int;
19244}
19245extern "C" {
19246    #[link_name = "\u{1}aws_lc_0_38_0_RSA_print_fp"]
19247    pub fn RSA_print_fp(
19248        fp: *mut FILE,
19249        rsa: *const RSA,
19250        indent: ::std::os::raw::c_int,
19251    ) -> ::std::os::raw::c_int;
19252}
19253extern "C" {
19254    #[link_name = "\u{1}aws_lc_0_38_0_RSA_get0_pss_params"]
19255    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
19256}
19257extern "C" {
19258    #[link_name = "\u{1}aws_lc_0_38_0_RSA_new_method_no_e"]
19259    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
19260}
19261pub type sk_X509_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
19262pub type sk_X509_copy_func =
19263    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
19264pub type sk_X509_cmp_func = ::std::option::Option<
19265    unsafe extern "C" fn(
19266        arg1: *const *const X509,
19267        arg2: *const *const X509,
19268    ) -> ::std::os::raw::c_int,
19269>;
19270pub type sk_X509_delete_if_func = ::std::option::Option<
19271    unsafe extern "C" fn(
19272        arg1: *mut X509,
19273        arg2: *mut ::std::os::raw::c_void,
19274    ) -> ::std::os::raw::c_int,
19275>;
19276extern "C" {
19277    #[link_name = "\u{1}aws_lc_0_38_0_X509_it"]
19278    pub static X509_it: ASN1_ITEM;
19279}
19280extern "C" {
19281    #[link_name = "\u{1}aws_lc_0_38_0_X509_up_ref"]
19282    pub fn X509_up_ref(x509: *mut X509) -> ::std::os::raw::c_int;
19283}
19284extern "C" {
19285    #[link_name = "\u{1}aws_lc_0_38_0_X509_chain_up_ref"]
19286    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
19287}
19288extern "C" {
19289    #[link_name = "\u{1}aws_lc_0_38_0_X509_dup"]
19290    pub fn X509_dup(x509: *mut X509) -> *mut X509;
19291}
19292extern "C" {
19293    #[link_name = "\u{1}aws_lc_0_38_0_X509_free"]
19294    pub fn X509_free(x509: *mut X509);
19295}
19296extern "C" {
19297    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509"]
19298    pub fn d2i_X509(
19299        out: *mut *mut X509,
19300        inp: *mut *const u8,
19301        len: ::std::os::raw::c_long,
19302    ) -> *mut X509;
19303}
19304extern "C" {
19305    #[link_name = "\u{1}aws_lc_0_38_0_X509_parse_from_buffer"]
19306    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
19307}
19308extern "C" {
19309    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509"]
19310    pub fn i2d_X509(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19311}
19312extern "C" {
19313    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_version"]
19314    pub fn X509_get_version(x509: *const X509) -> ::std::os::raw::c_long;
19315}
19316extern "C" {
19317    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_serialNumber"]
19318    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
19319}
19320extern "C" {
19321    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_notBefore"]
19322    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
19323}
19324extern "C" {
19325    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_notAfter"]
19326    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
19327}
19328extern "C" {
19329    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_issuer_name"]
19330    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
19331}
19332extern "C" {
19333    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_subject_name"]
19334    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
19335}
19336extern "C" {
19337    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_X509_PUBKEY"]
19338    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
19339}
19340extern "C" {
19341    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_pubkey"]
19342    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19343}
19344extern "C" {
19345    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_pubkey"]
19346    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19347}
19348extern "C" {
19349    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_pubkey_bitstr"]
19350    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
19351}
19352extern "C" {
19353    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_private_key"]
19354    pub fn X509_check_private_key(
19355        x509: *const X509,
19356        pkey: *const EVP_PKEY,
19357    ) -> ::std::os::raw::c_int;
19358}
19359extern "C" {
19360    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_uids"]
19361    pub fn X509_get0_uids(
19362        x509: *const X509,
19363        out_issuer_uid: *mut *const ASN1_BIT_STRING,
19364        out_subject_uid: *mut *const ASN1_BIT_STRING,
19365    );
19366}
19367extern "C" {
19368    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_extension_flags"]
19369    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
19370}
19371extern "C" {
19372    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_pathlen"]
19373    pub fn X509_get_pathlen(x509: *mut X509) -> ::std::os::raw::c_long;
19374}
19375extern "C" {
19376    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_key_usage"]
19377    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
19378}
19379extern "C" {
19380    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_extended_key_usage"]
19381    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
19382}
19383extern "C" {
19384    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_subject_key_id"]
19385    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19386}
19387extern "C" {
19388    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_authority_key_id"]
19389    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19390}
19391#[repr(C)]
19392#[derive(Debug, Copy, Clone)]
19393pub struct stack_st_GENERAL_NAME {
19394    _unused: [u8; 0],
19395}
19396pub type sk_GENERAL_NAME_free_func =
19397    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
19398pub type sk_GENERAL_NAME_copy_func =
19399    ::std::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
19400pub type sk_GENERAL_NAME_cmp_func = ::std::option::Option<
19401    unsafe extern "C" fn(
19402        arg1: *const *const GENERAL_NAME,
19403        arg2: *const *const GENERAL_NAME,
19404    ) -> ::std::os::raw::c_int,
19405>;
19406pub type sk_GENERAL_NAME_delete_if_func = ::std::option::Option<
19407    unsafe extern "C" fn(
19408        arg1: *mut GENERAL_NAME,
19409        arg2: *mut ::std::os::raw::c_void,
19410    ) -> ::std::os::raw::c_int,
19411>;
19412pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
19413extern "C" {
19414    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_authority_issuer"]
19415    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
19416}
19417extern "C" {
19418    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_authority_serial"]
19419    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
19420}
19421#[repr(C)]
19422#[derive(Debug, Copy, Clone)]
19423pub struct stack_st_X509_EXTENSION {
19424    _unused: [u8; 0],
19425}
19426extern "C" {
19427    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_extensions"]
19428    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
19429}
19430extern "C" {
19431    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext_count"]
19432    pub fn X509_get_ext_count(x: *const X509) -> ::std::os::raw::c_int;
19433}
19434extern "C" {
19435    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext_by_NID"]
19436    pub fn X509_get_ext_by_NID(
19437        x: *const X509,
19438        nid: ::std::os::raw::c_int,
19439        lastpos: ::std::os::raw::c_int,
19440    ) -> ::std::os::raw::c_int;
19441}
19442extern "C" {
19443    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext_by_OBJ"]
19444    pub fn X509_get_ext_by_OBJ(
19445        x: *const X509,
19446        obj: *const ASN1_OBJECT,
19447        lastpos: ::std::os::raw::c_int,
19448    ) -> ::std::os::raw::c_int;
19449}
19450extern "C" {
19451    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext_by_critical"]
19452    pub fn X509_get_ext_by_critical(
19453        x: *const X509,
19454        crit: ::std::os::raw::c_int,
19455        lastpos: ::std::os::raw::c_int,
19456    ) -> ::std::os::raw::c_int;
19457}
19458extern "C" {
19459    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext"]
19460    pub fn X509_get_ext(x: *const X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19461}
19462extern "C" {
19463    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ext_d2i"]
19464    pub fn X509_get_ext_d2i(
19465        x509: *const X509,
19466        nid: ::std::os::raw::c_int,
19467        out_critical: *mut ::std::os::raw::c_int,
19468        out_idx: *mut ::std::os::raw::c_int,
19469    ) -> *mut ::std::os::raw::c_void;
19470}
19471extern "C" {
19472    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_tbs_sigalg"]
19473    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
19474}
19475extern "C" {
19476    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_signature_info"]
19477    pub fn X509_get_signature_info(
19478        x509: *mut X509,
19479        digest_nid: *mut ::std::os::raw::c_int,
19480        pubkey_nid: *mut ::std::os::raw::c_int,
19481        sec_bits: *mut ::std::os::raw::c_int,
19482        flags: *mut u32,
19483    ) -> ::std::os::raw::c_int;
19484}
19485extern "C" {
19486    #[link_name = "\u{1}aws_lc_0_38_0_X509_get0_signature"]
19487    pub fn X509_get0_signature(
19488        out_sig: *mut *const ASN1_BIT_STRING,
19489        out_alg: *mut *const X509_ALGOR,
19490        x509: *const X509,
19491    );
19492}
19493extern "C" {
19494    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_signature_nid"]
19495    pub fn X509_get_signature_nid(x509: *const X509) -> ::std::os::raw::c_int;
19496}
19497extern "C" {
19498    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_tbs"]
19499    pub fn i2d_X509_tbs(
19500        x509: *mut X509,
19501        outp: *mut *mut ::std::os::raw::c_uchar,
19502    ) -> ::std::os::raw::c_int;
19503}
19504extern "C" {
19505    #[link_name = "\u{1}aws_lc_0_38_0_X509_verify"]
19506    pub fn X509_verify(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19507}
19508extern "C" {
19509    #[link_name = "\u{1}aws_lc_0_38_0_X509_get1_email"]
19510    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19511}
19512extern "C" {
19513    #[link_name = "\u{1}aws_lc_0_38_0_X509_get1_ocsp"]
19514    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19515}
19516extern "C" {
19517    #[link_name = "\u{1}aws_lc_0_38_0_X509_email_free"]
19518    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
19519}
19520extern "C" {
19521    #[link_name = "\u{1}aws_lc_0_38_0_X509_cmp"]
19522    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
19523}
19524extern "C" {
19525    #[link_name = "\u{1}aws_lc_0_38_0_X509_new"]
19526    pub fn X509_new() -> *mut X509;
19527}
19528extern "C" {
19529    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_version"]
19530    pub fn X509_set_version(
19531        x509: *mut X509,
19532        version: ::std::os::raw::c_long,
19533    ) -> ::std::os::raw::c_int;
19534}
19535extern "C" {
19536    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_serialNumber"]
19537    pub fn X509_set_serialNumber(
19538        x509: *mut X509,
19539        serial: *const ASN1_INTEGER,
19540    ) -> ::std::os::raw::c_int;
19541}
19542extern "C" {
19543    #[link_name = "\u{1}aws_lc_0_38_0_X509_set1_notBefore"]
19544    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19545}
19546extern "C" {
19547    #[link_name = "\u{1}aws_lc_0_38_0_X509_set1_notAfter"]
19548    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19549}
19550extern "C" {
19551    #[link_name = "\u{1}aws_lc_0_38_0_X509_getm_notBefore"]
19552    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
19553}
19554extern "C" {
19555    #[link_name = "\u{1}aws_lc_0_38_0_X509_getm_notAfter"]
19556    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
19557}
19558extern "C" {
19559    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_issuer_name"]
19560    pub fn X509_set_issuer_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19561}
19562extern "C" {
19563    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_subject_name"]
19564    pub fn X509_set_subject_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19565}
19566extern "C" {
19567    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_pubkey"]
19568    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19569}
19570extern "C" {
19571    #[link_name = "\u{1}aws_lc_0_38_0_X509_delete_ext"]
19572    pub fn X509_delete_ext(x: *mut X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19573}
19574extern "C" {
19575    #[link_name = "\u{1}aws_lc_0_38_0_X509_add_ext"]
19576    pub fn X509_add_ext(
19577        x: *mut X509,
19578        ex: *const X509_EXTENSION,
19579        loc: ::std::os::raw::c_int,
19580    ) -> ::std::os::raw::c_int;
19581}
19582extern "C" {
19583    #[link_name = "\u{1}aws_lc_0_38_0_X509_add1_ext_i2d"]
19584    pub fn X509_add1_ext_i2d(
19585        x: *mut X509,
19586        nid: ::std::os::raw::c_int,
19587        value: *mut ::std::os::raw::c_void,
19588        crit: ::std::os::raw::c_int,
19589        flags: ::std::os::raw::c_ulong,
19590    ) -> ::std::os::raw::c_int;
19591}
19592extern "C" {
19593    #[link_name = "\u{1}aws_lc_0_38_0_X509_sign"]
19594    pub fn X509_sign(
19595        x509: *mut X509,
19596        pkey: *mut EVP_PKEY,
19597        md: *const EVP_MD,
19598    ) -> ::std::os::raw::c_int;
19599}
19600extern "C" {
19601    #[link_name = "\u{1}aws_lc_0_38_0_X509_sign_ctx"]
19602    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19603}
19604extern "C" {
19605    #[link_name = "\u{1}aws_lc_0_38_0_i2d_re_X509_tbs"]
19606    pub fn i2d_re_X509_tbs(
19607        x509: *mut X509,
19608        outp: *mut *mut ::std::os::raw::c_uchar,
19609    ) -> ::std::os::raw::c_int;
19610}
19611extern "C" {
19612    #[link_name = "\u{1}aws_lc_0_38_0_X509_set1_signature_algo"]
19613    pub fn X509_set1_signature_algo(
19614        x509: *mut X509,
19615        algo: *const X509_ALGOR,
19616    ) -> ::std::os::raw::c_int;
19617}
19618extern "C" {
19619    #[link_name = "\u{1}aws_lc_0_38_0_X509_set1_signature_value"]
19620    pub fn X509_set1_signature_value(
19621        x509: *mut X509,
19622        sig: *const u8,
19623        sig_len: usize,
19624    ) -> ::std::os::raw::c_int;
19625}
19626extern "C" {
19627    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_AUX"]
19628    pub fn i2d_X509_AUX(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19629}
19630extern "C" {
19631    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_AUX"]
19632    pub fn d2i_X509_AUX(
19633        x509: *mut *mut X509,
19634        inp: *mut *const u8,
19635        length: ::std::os::raw::c_long,
19636    ) -> *mut X509;
19637}
19638extern "C" {
19639    #[link_name = "\u{1}aws_lc_0_38_0_X509_alias_set1"]
19640    pub fn X509_alias_set1(
19641        x509: *mut X509,
19642        name: *const u8,
19643        len: ossl_ssize_t,
19644    ) -> ::std::os::raw::c_int;
19645}
19646extern "C" {
19647    #[link_name = "\u{1}aws_lc_0_38_0_X509_keyid_set1"]
19648    pub fn X509_keyid_set1(
19649        x509: *mut X509,
19650        id: *const u8,
19651        len: ossl_ssize_t,
19652    ) -> ::std::os::raw::c_int;
19653}
19654extern "C" {
19655    #[link_name = "\u{1}aws_lc_0_38_0_X509_alias_get0"]
19656    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19657}
19658extern "C" {
19659    #[link_name = "\u{1}aws_lc_0_38_0_X509_keyid_get0"]
19660    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19661}
19662extern "C" {
19663    #[link_name = "\u{1}aws_lc_0_38_0_X509_add1_trust_object"]
19664    pub fn X509_add1_trust_object(
19665        x509: *mut X509,
19666        obj: *const ASN1_OBJECT,
19667    ) -> ::std::os::raw::c_int;
19668}
19669extern "C" {
19670    #[link_name = "\u{1}aws_lc_0_38_0_X509_add1_reject_object"]
19671    pub fn X509_add1_reject_object(
19672        x509: *mut X509,
19673        obj: *const ASN1_OBJECT,
19674    ) -> ::std::os::raw::c_int;
19675}
19676extern "C" {
19677    #[link_name = "\u{1}aws_lc_0_38_0_X509_trust_clear"]
19678    pub fn X509_trust_clear(x509: *mut X509);
19679}
19680extern "C" {
19681    #[link_name = "\u{1}aws_lc_0_38_0_X509_reject_clear"]
19682    pub fn X509_reject_clear(x509: *mut X509);
19683}
19684pub type sk_X509_CRL_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
19685pub type sk_X509_CRL_copy_func =
19686    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
19687pub type sk_X509_CRL_cmp_func = ::std::option::Option<
19688    unsafe extern "C" fn(
19689        arg1: *const *const X509_CRL,
19690        arg2: *const *const X509_CRL,
19691    ) -> ::std::os::raw::c_int,
19692>;
19693pub type sk_X509_CRL_delete_if_func = ::std::option::Option<
19694    unsafe extern "C" fn(
19695        arg1: *mut X509_CRL,
19696        arg2: *mut ::std::os::raw::c_void,
19697    ) -> ::std::os::raw::c_int,
19698>;
19699#[repr(C)]
19700#[derive(Debug, Copy, Clone)]
19701pub struct stack_st_X509_REVOKED {
19702    _unused: [u8; 0],
19703}
19704pub type sk_X509_REVOKED_free_func =
19705    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
19706pub type sk_X509_REVOKED_copy_func =
19707    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
19708pub type sk_X509_REVOKED_cmp_func = ::std::option::Option<
19709    unsafe extern "C" fn(
19710        arg1: *const *const X509_REVOKED,
19711        arg2: *const *const X509_REVOKED,
19712    ) -> ::std::os::raw::c_int,
19713>;
19714pub type sk_X509_REVOKED_delete_if_func = ::std::option::Option<
19715    unsafe extern "C" fn(
19716        arg1: *mut X509_REVOKED,
19717        arg2: *mut ::std::os::raw::c_void,
19718    ) -> ::std::os::raw::c_int,
19719>;
19720extern "C" {
19721    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_it"]
19722    pub static X509_CRL_it: ASN1_ITEM;
19723}
19724extern "C" {
19725    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_up_ref"]
19726    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19727}
19728extern "C" {
19729    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_dup"]
19730    pub fn X509_CRL_dup(crl: *mut X509_CRL) -> *mut X509_CRL;
19731}
19732extern "C" {
19733    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_free"]
19734    pub fn X509_CRL_free(crl: *mut X509_CRL);
19735}
19736extern "C" {
19737    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_CRL"]
19738    pub fn d2i_X509_CRL(
19739        out: *mut *mut X509_CRL,
19740        inp: *mut *const u8,
19741        len: ::std::os::raw::c_long,
19742    ) -> *mut X509_CRL;
19743}
19744extern "C" {
19745    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_CRL"]
19746    pub fn i2d_X509_CRL(crl: *mut X509_CRL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19747}
19748extern "C" {
19749    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_match"]
19750    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
19751}
19752extern "C" {
19753    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_version"]
19754    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::std::os::raw::c_long;
19755}
19756extern "C" {
19757    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_lastUpdate"]
19758    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19759}
19760extern "C" {
19761    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_nextUpdate"]
19762    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19763}
19764extern "C" {
19765    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_issuer"]
19766    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
19767}
19768extern "C" {
19769    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_by_serial"]
19770    pub fn X509_CRL_get0_by_serial(
19771        crl: *mut X509_CRL,
19772        out: *mut *mut X509_REVOKED,
19773        serial: *const ASN1_INTEGER,
19774    ) -> ::std::os::raw::c_int;
19775}
19776extern "C" {
19777    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_by_cert"]
19778    pub fn X509_CRL_get0_by_cert(
19779        crl: *mut X509_CRL,
19780        out: *mut *mut X509_REVOKED,
19781        x509: *mut X509,
19782    ) -> ::std::os::raw::c_int;
19783}
19784extern "C" {
19785    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_REVOKED"]
19786    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
19787}
19788extern "C" {
19789    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_extensions"]
19790    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
19791}
19792extern "C" {
19793    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext_count"]
19794    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::std::os::raw::c_int;
19795}
19796extern "C" {
19797    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext_by_NID"]
19798    pub fn X509_CRL_get_ext_by_NID(
19799        x: *const X509_CRL,
19800        nid: ::std::os::raw::c_int,
19801        lastpos: ::std::os::raw::c_int,
19802    ) -> ::std::os::raw::c_int;
19803}
19804extern "C" {
19805    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext_by_OBJ"]
19806    pub fn X509_CRL_get_ext_by_OBJ(
19807        x: *const X509_CRL,
19808        obj: *const ASN1_OBJECT,
19809        lastpos: ::std::os::raw::c_int,
19810    ) -> ::std::os::raw::c_int;
19811}
19812extern "C" {
19813    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext_by_critical"]
19814    pub fn X509_CRL_get_ext_by_critical(
19815        x: *const X509_CRL,
19816        crit: ::std::os::raw::c_int,
19817        lastpos: ::std::os::raw::c_int,
19818    ) -> ::std::os::raw::c_int;
19819}
19820extern "C" {
19821    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext"]
19822    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19823}
19824extern "C" {
19825    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_ext_d2i"]
19826    pub fn X509_CRL_get_ext_d2i(
19827        crl: *const X509_CRL,
19828        nid: ::std::os::raw::c_int,
19829        out_critical: *mut ::std::os::raw::c_int,
19830        out_idx: *mut ::std::os::raw::c_int,
19831    ) -> *mut ::std::os::raw::c_void;
19832}
19833extern "C" {
19834    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get0_signature"]
19835    pub fn X509_CRL_get0_signature(
19836        crl: *const X509_CRL,
19837        out_sig: *mut *const ASN1_BIT_STRING,
19838        out_alg: *mut *const X509_ALGOR,
19839    );
19840}
19841extern "C" {
19842    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_signature_nid"]
19843    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::std::os::raw::c_int;
19844}
19845extern "C" {
19846    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_CRL_tbs"]
19847    pub fn i2d_X509_CRL_tbs(
19848        crl: *mut X509_CRL,
19849        outp: *mut *mut ::std::os::raw::c_uchar,
19850    ) -> ::std::os::raw::c_int;
19851}
19852extern "C" {
19853    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_verify"]
19854    pub fn X509_CRL_verify(crl: *mut X509_CRL, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19855}
19856extern "C" {
19857    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_new"]
19858    pub fn X509_CRL_new() -> *mut X509_CRL;
19859}
19860extern "C" {
19861    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set_version"]
19862    pub fn X509_CRL_set_version(
19863        crl: *mut X509_CRL,
19864        version: ::std::os::raw::c_long,
19865    ) -> ::std::os::raw::c_int;
19866}
19867extern "C" {
19868    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set_issuer_name"]
19869    pub fn X509_CRL_set_issuer_name(
19870        crl: *mut X509_CRL,
19871        name: *mut X509_NAME,
19872    ) -> ::std::os::raw::c_int;
19873}
19874extern "C" {
19875    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set1_lastUpdate"]
19876    pub fn X509_CRL_set1_lastUpdate(
19877        crl: *mut X509_CRL,
19878        tm: *const ASN1_TIME,
19879    ) -> ::std::os::raw::c_int;
19880}
19881extern "C" {
19882    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set1_nextUpdate"]
19883    pub fn X509_CRL_set1_nextUpdate(
19884        crl: *mut X509_CRL,
19885        tm: *const ASN1_TIME,
19886    ) -> ::std::os::raw::c_int;
19887}
19888extern "C" {
19889    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_add0_revoked"]
19890    pub fn X509_CRL_add0_revoked(
19891        crl: *mut X509_CRL,
19892        rev: *mut X509_REVOKED,
19893    ) -> ::std::os::raw::c_int;
19894}
19895extern "C" {
19896    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_sort"]
19897    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19898}
19899extern "C" {
19900    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_delete_ext"]
19901    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::std::os::raw::c_int)
19902        -> *mut X509_EXTENSION;
19903}
19904extern "C" {
19905    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_add_ext"]
19906    pub fn X509_CRL_add_ext(
19907        x: *mut X509_CRL,
19908        ex: *const X509_EXTENSION,
19909        loc: ::std::os::raw::c_int,
19910    ) -> ::std::os::raw::c_int;
19911}
19912extern "C" {
19913    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_add1_ext_i2d"]
19914    pub fn X509_CRL_add1_ext_i2d(
19915        x: *mut X509_CRL,
19916        nid: ::std::os::raw::c_int,
19917        value: *mut ::std::os::raw::c_void,
19918        crit: ::std::os::raw::c_int,
19919        flags: ::std::os::raw::c_ulong,
19920    ) -> ::std::os::raw::c_int;
19921}
19922extern "C" {
19923    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_sign"]
19924    pub fn X509_CRL_sign(
19925        crl: *mut X509_CRL,
19926        pkey: *mut EVP_PKEY,
19927        md: *const EVP_MD,
19928    ) -> ::std::os::raw::c_int;
19929}
19930extern "C" {
19931    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_sign_ctx"]
19932    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19933}
19934extern "C" {
19935    #[link_name = "\u{1}aws_lc_0_38_0_i2d_re_X509_CRL_tbs"]
19936    pub fn i2d_re_X509_CRL_tbs(
19937        crl: *mut X509_CRL,
19938        outp: *mut *mut ::std::os::raw::c_uchar,
19939    ) -> ::std::os::raw::c_int;
19940}
19941extern "C" {
19942    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set1_signature_algo"]
19943    pub fn X509_CRL_set1_signature_algo(
19944        crl: *mut X509_CRL,
19945        algo: *const X509_ALGOR,
19946    ) -> ::std::os::raw::c_int;
19947}
19948extern "C" {
19949    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_set1_signature_value"]
19950    pub fn X509_CRL_set1_signature_value(
19951        crl: *mut X509_CRL,
19952        sig: *const u8,
19953        sig_len: usize,
19954    ) -> ::std::os::raw::c_int;
19955}
19956extern "C" {
19957    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_http_nbio"]
19958    pub fn X509_CRL_http_nbio(
19959        rctx: *mut OCSP_REQ_CTX,
19960        pcrl: *mut *mut X509_CRL,
19961    ) -> ::std::os::raw::c_int;
19962}
19963extern "C" {
19964    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_it"]
19965    pub static X509_REVOKED_it: ASN1_ITEM;
19966}
19967extern "C" {
19968    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_new"]
19969    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
19970}
19971extern "C" {
19972    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_free"]
19973    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
19974}
19975extern "C" {
19976    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_REVOKED"]
19977    pub fn d2i_X509_REVOKED(
19978        out: *mut *mut X509_REVOKED,
19979        inp: *mut *const u8,
19980        len: ::std::os::raw::c_long,
19981    ) -> *mut X509_REVOKED;
19982}
19983extern "C" {
19984    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_REVOKED"]
19985    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19986}
19987extern "C" {
19988    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_dup"]
19989    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
19990}
19991extern "C" {
19992    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get0_serialNumber"]
19993    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
19994}
19995extern "C" {
19996    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_set_serialNumber"]
19997    pub fn X509_REVOKED_set_serialNumber(
19998        revoked: *mut X509_REVOKED,
19999        serial: *const ASN1_INTEGER,
20000    ) -> ::std::os::raw::c_int;
20001}
20002extern "C" {
20003    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get0_revocationDate"]
20004    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
20005}
20006extern "C" {
20007    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_set_revocationDate"]
20008    pub fn X509_REVOKED_set_revocationDate(
20009        revoked: *mut X509_REVOKED,
20010        tm: *const ASN1_TIME,
20011    ) -> ::std::os::raw::c_int;
20012}
20013extern "C" {
20014    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get0_extensions"]
20015    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
20016}
20017extern "C" {
20018    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext_count"]
20019    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::std::os::raw::c_int;
20020}
20021extern "C" {
20022    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext_by_NID"]
20023    pub fn X509_REVOKED_get_ext_by_NID(
20024        x: *const X509_REVOKED,
20025        nid: ::std::os::raw::c_int,
20026        lastpos: ::std::os::raw::c_int,
20027    ) -> ::std::os::raw::c_int;
20028}
20029extern "C" {
20030    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext_by_OBJ"]
20031    pub fn X509_REVOKED_get_ext_by_OBJ(
20032        x: *const X509_REVOKED,
20033        obj: *const ASN1_OBJECT,
20034        lastpos: ::std::os::raw::c_int,
20035    ) -> ::std::os::raw::c_int;
20036}
20037extern "C" {
20038    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext_by_critical"]
20039    pub fn X509_REVOKED_get_ext_by_critical(
20040        x: *const X509_REVOKED,
20041        crit: ::std::os::raw::c_int,
20042        lastpos: ::std::os::raw::c_int,
20043    ) -> ::std::os::raw::c_int;
20044}
20045extern "C" {
20046    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext"]
20047    pub fn X509_REVOKED_get_ext(
20048        x: *const X509_REVOKED,
20049        loc: ::std::os::raw::c_int,
20050    ) -> *mut X509_EXTENSION;
20051}
20052extern "C" {
20053    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_delete_ext"]
20054    pub fn X509_REVOKED_delete_ext(
20055        x: *mut X509_REVOKED,
20056        loc: ::std::os::raw::c_int,
20057    ) -> *mut X509_EXTENSION;
20058}
20059extern "C" {
20060    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_add_ext"]
20061    pub fn X509_REVOKED_add_ext(
20062        x: *mut X509_REVOKED,
20063        ex: *const X509_EXTENSION,
20064        loc: ::std::os::raw::c_int,
20065    ) -> ::std::os::raw::c_int;
20066}
20067extern "C" {
20068    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_get_ext_d2i"]
20069    pub fn X509_REVOKED_get_ext_d2i(
20070        revoked: *const X509_REVOKED,
20071        nid: ::std::os::raw::c_int,
20072        out_critical: *mut ::std::os::raw::c_int,
20073        out_idx: *mut ::std::os::raw::c_int,
20074    ) -> *mut ::std::os::raw::c_void;
20075}
20076extern "C" {
20077    #[link_name = "\u{1}aws_lc_0_38_0_X509_REVOKED_add1_ext_i2d"]
20078    pub fn X509_REVOKED_add1_ext_i2d(
20079        x: *mut X509_REVOKED,
20080        nid: ::std::os::raw::c_int,
20081        value: *mut ::std::os::raw::c_void,
20082        crit: ::std::os::raw::c_int,
20083        flags: ::std::os::raw::c_ulong,
20084    ) -> ::std::os::raw::c_int;
20085}
20086extern "C" {
20087    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_it"]
20088    pub static X509_REQ_it: ASN1_ITEM;
20089}
20090extern "C" {
20091    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_dup"]
20092    pub fn X509_REQ_dup(req: *mut X509_REQ) -> *mut X509_REQ;
20093}
20094extern "C" {
20095    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_free"]
20096    pub fn X509_REQ_free(req: *mut X509_REQ);
20097}
20098extern "C" {
20099    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_REQ"]
20100    pub fn d2i_X509_REQ(
20101        out: *mut *mut X509_REQ,
20102        inp: *mut *const u8,
20103        len: ::std::os::raw::c_long,
20104    ) -> *mut X509_REQ;
20105}
20106extern "C" {
20107    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_REQ"]
20108    pub fn i2d_X509_REQ(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20109}
20110extern "C" {
20111    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_version"]
20112    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::std::os::raw::c_long;
20113}
20114extern "C" {
20115    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_subject_name"]
20116    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
20117}
20118extern "C" {
20119    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get0_pubkey"]
20120    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20121}
20122extern "C" {
20123    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_pubkey"]
20124    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20125}
20126extern "C" {
20127    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_check_private_key"]
20128    pub fn X509_REQ_check_private_key(
20129        req: *const X509_REQ,
20130        pkey: *const EVP_PKEY,
20131    ) -> ::std::os::raw::c_int;
20132}
20133extern "C" {
20134    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_attr_count"]
20135    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::std::os::raw::c_int;
20136}
20137extern "C" {
20138    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_attr"]
20139    pub fn X509_REQ_get_attr(
20140        req: *const X509_REQ,
20141        loc: ::std::os::raw::c_int,
20142    ) -> *mut X509_ATTRIBUTE;
20143}
20144extern "C" {
20145    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_attr_by_NID"]
20146    pub fn X509_REQ_get_attr_by_NID(
20147        req: *const X509_REQ,
20148        nid: ::std::os::raw::c_int,
20149        lastpos: ::std::os::raw::c_int,
20150    ) -> ::std::os::raw::c_int;
20151}
20152extern "C" {
20153    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_attr_by_OBJ"]
20154    pub fn X509_REQ_get_attr_by_OBJ(
20155        req: *const X509_REQ,
20156        obj: *const ASN1_OBJECT,
20157        lastpos: ::std::os::raw::c_int,
20158    ) -> ::std::os::raw::c_int;
20159}
20160extern "C" {
20161    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_extension_nid"]
20162    pub fn X509_REQ_extension_nid(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
20163}
20164extern "C" {
20165    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_extensions"]
20166    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
20167}
20168extern "C" {
20169    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get0_signature"]
20170    pub fn X509_REQ_get0_signature(
20171        req: *const X509_REQ,
20172        out_sig: *mut *const ASN1_BIT_STRING,
20173        out_alg: *mut *const X509_ALGOR,
20174    );
20175}
20176extern "C" {
20177    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get_signature_nid"]
20178    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::std::os::raw::c_int;
20179}
20180extern "C" {
20181    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_verify"]
20182    pub fn X509_REQ_verify(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20183}
20184extern "C" {
20185    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_get1_email"]
20186    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
20187}
20188extern "C" {
20189    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_new"]
20190    pub fn X509_REQ_new() -> *mut X509_REQ;
20191}
20192extern "C" {
20193    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_set_version"]
20194    pub fn X509_REQ_set_version(
20195        req: *mut X509_REQ,
20196        version: ::std::os::raw::c_long,
20197    ) -> ::std::os::raw::c_int;
20198}
20199extern "C" {
20200    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_set_subject_name"]
20201    pub fn X509_REQ_set_subject_name(
20202        req: *mut X509_REQ,
20203        name: *mut X509_NAME,
20204    ) -> ::std::os::raw::c_int;
20205}
20206extern "C" {
20207    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_set_pubkey"]
20208    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20209}
20210extern "C" {
20211    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_delete_attr"]
20212    pub fn X509_REQ_delete_attr(
20213        req: *mut X509_REQ,
20214        loc: ::std::os::raw::c_int,
20215    ) -> *mut X509_ATTRIBUTE;
20216}
20217extern "C" {
20218    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_add1_attr"]
20219    pub fn X509_REQ_add1_attr(
20220        req: *mut X509_REQ,
20221        attr: *const X509_ATTRIBUTE,
20222    ) -> ::std::os::raw::c_int;
20223}
20224extern "C" {
20225    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_add1_attr_by_OBJ"]
20226    pub fn X509_REQ_add1_attr_by_OBJ(
20227        req: *mut X509_REQ,
20228        obj: *const ASN1_OBJECT,
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_38_0_X509_REQ_add1_attr_by_NID"]
20236    pub fn X509_REQ_add1_attr_by_NID(
20237        req: *mut X509_REQ,
20238        nid: ::std::os::raw::c_int,
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_38_0_X509_REQ_add1_attr_by_txt"]
20246    pub fn X509_REQ_add1_attr_by_txt(
20247        req: *mut X509_REQ,
20248        attrname: *const ::std::os::raw::c_char,
20249        attrtype: ::std::os::raw::c_int,
20250        data: *const ::std::os::raw::c_uchar,
20251        len: ::std::os::raw::c_int,
20252    ) -> ::std::os::raw::c_int;
20253}
20254extern "C" {
20255    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_add_extensions_nid"]
20256    pub fn X509_REQ_add_extensions_nid(
20257        req: *mut X509_REQ,
20258        exts: *const stack_st_X509_EXTENSION,
20259        nid: ::std::os::raw::c_int,
20260    ) -> ::std::os::raw::c_int;
20261}
20262extern "C" {
20263    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_add_extensions"]
20264    pub fn X509_REQ_add_extensions(
20265        req: *mut X509_REQ,
20266        exts: *const stack_st_X509_EXTENSION,
20267    ) -> ::std::os::raw::c_int;
20268}
20269extern "C" {
20270    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_sign"]
20271    pub fn X509_REQ_sign(
20272        req: *mut X509_REQ,
20273        pkey: *mut EVP_PKEY,
20274        md: *const EVP_MD,
20275    ) -> ::std::os::raw::c_int;
20276}
20277extern "C" {
20278    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_sign_ctx"]
20279    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
20280}
20281extern "C" {
20282    #[link_name = "\u{1}aws_lc_0_38_0_i2d_re_X509_REQ_tbs"]
20283    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20284}
20285extern "C" {
20286    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_set1_signature_algo"]
20287    pub fn X509_REQ_set1_signature_algo(
20288        req: *mut X509_REQ,
20289        algo: *const X509_ALGOR,
20290    ) -> ::std::os::raw::c_int;
20291}
20292extern "C" {
20293    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_set1_signature_value"]
20294    pub fn X509_REQ_set1_signature_value(
20295        req: *mut X509_REQ,
20296        sig: *const u8,
20297        sig_len: usize,
20298    ) -> ::std::os::raw::c_int;
20299}
20300#[repr(C)]
20301#[derive(Debug, Copy, Clone)]
20302pub struct stack_st_X509_NAME_ENTRY {
20303    _unused: [u8; 0],
20304}
20305pub type sk_X509_NAME_ENTRY_free_func =
20306    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
20307pub type sk_X509_NAME_ENTRY_copy_func = ::std::option::Option<
20308    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
20309>;
20310pub type sk_X509_NAME_ENTRY_cmp_func = ::std::option::Option<
20311    unsafe extern "C" fn(
20312        arg1: *const *const X509_NAME_ENTRY,
20313        arg2: *const *const X509_NAME_ENTRY,
20314    ) -> ::std::os::raw::c_int,
20315>;
20316pub type sk_X509_NAME_ENTRY_delete_if_func = ::std::option::Option<
20317    unsafe extern "C" fn(
20318        arg1: *mut X509_NAME_ENTRY,
20319        arg2: *mut ::std::os::raw::c_void,
20320    ) -> ::std::os::raw::c_int,
20321>;
20322#[repr(C)]
20323#[derive(Debug, Copy, Clone)]
20324pub struct stack_st_X509_NAME {
20325    _unused: [u8; 0],
20326}
20327pub type sk_X509_NAME_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
20328pub type sk_X509_NAME_copy_func =
20329    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
20330pub type sk_X509_NAME_cmp_func = ::std::option::Option<
20331    unsafe extern "C" fn(
20332        arg1: *const *const X509_NAME,
20333        arg2: *const *const X509_NAME,
20334    ) -> ::std::os::raw::c_int,
20335>;
20336pub type sk_X509_NAME_delete_if_func = ::std::option::Option<
20337    unsafe extern "C" fn(
20338        arg1: *mut X509_NAME,
20339        arg2: *mut ::std::os::raw::c_void,
20340    ) -> ::std::os::raw::c_int,
20341>;
20342extern "C" {
20343    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_it"]
20344    pub static X509_NAME_it: ASN1_ITEM;
20345}
20346extern "C" {
20347    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_new"]
20348    pub fn X509_NAME_new() -> *mut X509_NAME;
20349}
20350extern "C" {
20351    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_free"]
20352    pub fn X509_NAME_free(name: *mut X509_NAME);
20353}
20354extern "C" {
20355    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_NAME"]
20356    pub fn d2i_X509_NAME(
20357        out: *mut *mut X509_NAME,
20358        inp: *mut *const u8,
20359        len: ::std::os::raw::c_long,
20360    ) -> *mut X509_NAME;
20361}
20362extern "C" {
20363    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_NAME"]
20364    pub fn i2d_X509_NAME(in_: *mut X509_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20365}
20366extern "C" {
20367    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_dup"]
20368    pub fn X509_NAME_dup(name: *mut X509_NAME) -> *mut X509_NAME;
20369}
20370extern "C" {
20371    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_cmp"]
20372    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::std::os::raw::c_int;
20373}
20374extern "C" {
20375    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get0_der"]
20376    pub fn X509_NAME_get0_der(
20377        name: *mut X509_NAME,
20378        out_der: *mut *const u8,
20379        out_der_len: *mut usize,
20380    ) -> ::std::os::raw::c_int;
20381}
20382extern "C" {
20383    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_set"]
20384    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *mut X509_NAME) -> ::std::os::raw::c_int;
20385}
20386extern "C" {
20387    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_entry_count"]
20388    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::std::os::raw::c_int;
20389}
20390extern "C" {
20391    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get_index_by_NID"]
20392    pub fn X509_NAME_get_index_by_NID(
20393        name: *const X509_NAME,
20394        nid: ::std::os::raw::c_int,
20395        lastpos: ::std::os::raw::c_int,
20396    ) -> ::std::os::raw::c_int;
20397}
20398extern "C" {
20399    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get_index_by_OBJ"]
20400    pub fn X509_NAME_get_index_by_OBJ(
20401        name: *const X509_NAME,
20402        obj: *const ASN1_OBJECT,
20403        lastpos: ::std::os::raw::c_int,
20404    ) -> ::std::os::raw::c_int;
20405}
20406extern "C" {
20407    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get_entry"]
20408    pub fn X509_NAME_get_entry(
20409        name: *const X509_NAME,
20410        loc: ::std::os::raw::c_int,
20411    ) -> *mut X509_NAME_ENTRY;
20412}
20413extern "C" {
20414    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_delete_entry"]
20415    pub fn X509_NAME_delete_entry(
20416        name: *mut X509_NAME,
20417        loc: ::std::os::raw::c_int,
20418    ) -> *mut X509_NAME_ENTRY;
20419}
20420extern "C" {
20421    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_add_entry"]
20422    pub fn X509_NAME_add_entry(
20423        name: *mut X509_NAME,
20424        entry: *const X509_NAME_ENTRY,
20425        loc: ::std::os::raw::c_int,
20426        set: ::std::os::raw::c_int,
20427    ) -> ::std::os::raw::c_int;
20428}
20429extern "C" {
20430    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_add_entry_by_OBJ"]
20431    pub fn X509_NAME_add_entry_by_OBJ(
20432        name: *mut X509_NAME,
20433        obj: *const ASN1_OBJECT,
20434        type_: ::std::os::raw::c_int,
20435        bytes: *const u8,
20436        len: ossl_ssize_t,
20437        loc: ::std::os::raw::c_int,
20438        set: ::std::os::raw::c_int,
20439    ) -> ::std::os::raw::c_int;
20440}
20441extern "C" {
20442    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_add_entry_by_NID"]
20443    pub fn X509_NAME_add_entry_by_NID(
20444        name: *mut X509_NAME,
20445        nid: ::std::os::raw::c_int,
20446        type_: ::std::os::raw::c_int,
20447        bytes: *const u8,
20448        len: ossl_ssize_t,
20449        loc: ::std::os::raw::c_int,
20450        set: ::std::os::raw::c_int,
20451    ) -> ::std::os::raw::c_int;
20452}
20453extern "C" {
20454    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_add_entry_by_txt"]
20455    pub fn X509_NAME_add_entry_by_txt(
20456        name: *mut X509_NAME,
20457        field: *const ::std::os::raw::c_char,
20458        type_: ::std::os::raw::c_int,
20459        bytes: *const u8,
20460        len: ossl_ssize_t,
20461        loc: ::std::os::raw::c_int,
20462        set: ::std::os::raw::c_int,
20463    ) -> ::std::os::raw::c_int;
20464}
20465extern "C" {
20466    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_it"]
20467    pub static X509_NAME_ENTRY_it: ASN1_ITEM;
20468}
20469extern "C" {
20470    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_new"]
20471    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
20472}
20473extern "C" {
20474    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_free"]
20475    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
20476}
20477extern "C" {
20478    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_NAME_ENTRY"]
20479    pub fn d2i_X509_NAME_ENTRY(
20480        out: *mut *mut X509_NAME_ENTRY,
20481        inp: *mut *const u8,
20482        len: ::std::os::raw::c_long,
20483    ) -> *mut X509_NAME_ENTRY;
20484}
20485extern "C" {
20486    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_NAME_ENTRY"]
20487    pub fn i2d_X509_NAME_ENTRY(
20488        in_: *const X509_NAME_ENTRY,
20489        outp: *mut *mut u8,
20490    ) -> ::std::os::raw::c_int;
20491}
20492extern "C" {
20493    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_dup"]
20494    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
20495}
20496extern "C" {
20497    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_get_object"]
20498    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
20499}
20500extern "C" {
20501    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_set_object"]
20502    pub fn X509_NAME_ENTRY_set_object(
20503        entry: *mut X509_NAME_ENTRY,
20504        obj: *const ASN1_OBJECT,
20505    ) -> ::std::os::raw::c_int;
20506}
20507extern "C" {
20508    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_get_data"]
20509    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
20510}
20511extern "C" {
20512    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_set_data"]
20513    pub fn X509_NAME_ENTRY_set_data(
20514        entry: *mut X509_NAME_ENTRY,
20515        type_: ::std::os::raw::c_int,
20516        bytes: *const u8,
20517        len: ossl_ssize_t,
20518    ) -> ::std::os::raw::c_int;
20519}
20520extern "C" {
20521    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_set"]
20522    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::std::os::raw::c_int;
20523}
20524extern "C" {
20525    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_ENTRY_create_by_OBJ"]
20526    pub fn X509_NAME_ENTRY_create_by_OBJ(
20527        out: *mut *mut X509_NAME_ENTRY,
20528        obj: *const ASN1_OBJECT,
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_38_0_X509_NAME_ENTRY_create_by_NID"]
20536    pub fn X509_NAME_ENTRY_create_by_NID(
20537        out: *mut *mut X509_NAME_ENTRY,
20538        nid: ::std::os::raw::c_int,
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_38_0_X509_NAME_ENTRY_create_by_txt"]
20546    pub fn X509_NAME_ENTRY_create_by_txt(
20547        out: *mut *mut X509_NAME_ENTRY,
20548        field: *const ::std::os::raw::c_char,
20549        type_: ::std::os::raw::c_int,
20550        bytes: *const u8,
20551        len: ossl_ssize_t,
20552    ) -> *mut X509_NAME_ENTRY;
20553}
20554extern "C" {
20555    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_it"]
20556    pub static X509_PUBKEY_it: ASN1_ITEM;
20557}
20558extern "C" {
20559    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_new"]
20560    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
20561}
20562extern "C" {
20563    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_free"]
20564    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
20565}
20566extern "C" {
20567    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_PUBKEY"]
20568    pub fn d2i_X509_PUBKEY(
20569        out: *mut *mut X509_PUBKEY,
20570        inp: *mut *const u8,
20571        len: ::std::os::raw::c_long,
20572    ) -> *mut X509_PUBKEY;
20573}
20574extern "C" {
20575    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_PUBKEY"]
20576    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20577}
20578extern "C" {
20579    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_set"]
20580    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20581}
20582extern "C" {
20583    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_get0"]
20584    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20585}
20586extern "C" {
20587    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_get"]
20588    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20589}
20590extern "C" {
20591    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_set0_param"]
20592    pub fn X509_PUBKEY_set0_param(
20593        pub_: *mut X509_PUBKEY,
20594        obj: *mut ASN1_OBJECT,
20595        param_type: ::std::os::raw::c_int,
20596        param_value: *mut ::std::os::raw::c_void,
20597        key: *mut u8,
20598        key_len: ::std::os::raw::c_int,
20599    ) -> ::std::os::raw::c_int;
20600}
20601extern "C" {
20602    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_get0_param"]
20603    pub fn X509_PUBKEY_get0_param(
20604        out_obj: *mut *mut ASN1_OBJECT,
20605        out_key: *mut *const u8,
20606        out_key_len: *mut ::std::os::raw::c_int,
20607        out_alg: *mut *mut X509_ALGOR,
20608        pub_: *mut X509_PUBKEY,
20609    ) -> ::std::os::raw::c_int;
20610}
20611extern "C" {
20612    #[link_name = "\u{1}aws_lc_0_38_0_X509_PUBKEY_get0_public_key"]
20613    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
20614}
20615extern "C" {
20616    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_it"]
20617    pub static X509_EXTENSION_it: ASN1_ITEM;
20618}
20619extern "C" {
20620    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_new"]
20621    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
20622}
20623extern "C" {
20624    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_free"]
20625    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
20626}
20627extern "C" {
20628    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_EXTENSION"]
20629    pub fn d2i_X509_EXTENSION(
20630        out: *mut *mut X509_EXTENSION,
20631        inp: *mut *const u8,
20632        len: ::std::os::raw::c_long,
20633    ) -> *mut X509_EXTENSION;
20634}
20635extern "C" {
20636    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_EXTENSION"]
20637    pub fn i2d_X509_EXTENSION(
20638        ex: *const X509_EXTENSION,
20639        outp: *mut *mut u8,
20640    ) -> ::std::os::raw::c_int;
20641}
20642extern "C" {
20643    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_dup"]
20644    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
20645}
20646extern "C" {
20647    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_create_by_NID"]
20648    pub fn X509_EXTENSION_create_by_NID(
20649        ex: *mut *mut X509_EXTENSION,
20650        nid: ::std::os::raw::c_int,
20651        crit: ::std::os::raw::c_int,
20652        data: *const ASN1_OCTET_STRING,
20653    ) -> *mut X509_EXTENSION;
20654}
20655extern "C" {
20656    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_create_by_OBJ"]
20657    pub fn X509_EXTENSION_create_by_OBJ(
20658        ex: *mut *mut X509_EXTENSION,
20659        obj: *const ASN1_OBJECT,
20660        crit: ::std::os::raw::c_int,
20661        data: *const ASN1_OCTET_STRING,
20662    ) -> *mut X509_EXTENSION;
20663}
20664extern "C" {
20665    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_get_object"]
20666    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
20667}
20668extern "C" {
20669    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_get_data"]
20670    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
20671}
20672extern "C" {
20673    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_get_critical"]
20674    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
20675}
20676extern "C" {
20677    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_set_object"]
20678    pub fn X509_EXTENSION_set_object(
20679        ex: *mut X509_EXTENSION,
20680        obj: *const ASN1_OBJECT,
20681    ) -> ::std::os::raw::c_int;
20682}
20683extern "C" {
20684    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_set_critical"]
20685    pub fn X509_EXTENSION_set_critical(
20686        ex: *mut X509_EXTENSION,
20687        crit: ::std::os::raw::c_int,
20688    ) -> ::std::os::raw::c_int;
20689}
20690extern "C" {
20691    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSION_set_data"]
20692    pub fn X509_EXTENSION_set_data(
20693        ex: *mut X509_EXTENSION,
20694        data: *const ASN1_OCTET_STRING,
20695    ) -> ::std::os::raw::c_int;
20696}
20697pub type sk_X509_EXTENSION_free_func =
20698    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
20699pub type sk_X509_EXTENSION_copy_func =
20700    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION>;
20701pub type sk_X509_EXTENSION_cmp_func = ::std::option::Option<
20702    unsafe extern "C" fn(
20703        arg1: *const *const X509_EXTENSION,
20704        arg2: *const *const X509_EXTENSION,
20705    ) -> ::std::os::raw::c_int,
20706>;
20707pub type sk_X509_EXTENSION_delete_if_func = ::std::option::Option<
20708    unsafe extern "C" fn(
20709        arg1: *mut X509_EXTENSION,
20710        arg2: *mut ::std::os::raw::c_void,
20711    ) -> ::std::os::raw::c_int,
20712>;
20713pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
20714extern "C" {
20715    #[link_name = "\u{1}aws_lc_0_38_0_X509_EXTENSIONS_it"]
20716    pub static X509_EXTENSIONS_it: ASN1_ITEM;
20717}
20718extern "C" {
20719    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_EXTENSIONS"]
20720    pub fn d2i_X509_EXTENSIONS(
20721        out: *mut *mut X509_EXTENSIONS,
20722        inp: *mut *const u8,
20723        len: ::std::os::raw::c_long,
20724    ) -> *mut X509_EXTENSIONS;
20725}
20726extern "C" {
20727    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_EXTENSIONS"]
20728    pub fn i2d_X509_EXTENSIONS(
20729        alg: *const X509_EXTENSIONS,
20730        outp: *mut *mut u8,
20731    ) -> ::std::os::raw::c_int;
20732}
20733extern "C" {
20734    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_get_ext_count"]
20735    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::std::os::raw::c_int;
20736}
20737extern "C" {
20738    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_get_ext_by_NID"]
20739    pub fn X509v3_get_ext_by_NID(
20740        x: *const stack_st_X509_EXTENSION,
20741        nid: ::std::os::raw::c_int,
20742        lastpos: ::std::os::raw::c_int,
20743    ) -> ::std::os::raw::c_int;
20744}
20745extern "C" {
20746    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_get_ext_by_OBJ"]
20747    pub fn X509v3_get_ext_by_OBJ(
20748        x: *const stack_st_X509_EXTENSION,
20749        obj: *const ASN1_OBJECT,
20750        lastpos: ::std::os::raw::c_int,
20751    ) -> ::std::os::raw::c_int;
20752}
20753extern "C" {
20754    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_get_ext_by_critical"]
20755    pub fn X509v3_get_ext_by_critical(
20756        x: *const stack_st_X509_EXTENSION,
20757        crit: ::std::os::raw::c_int,
20758        lastpos: ::std::os::raw::c_int,
20759    ) -> ::std::os::raw::c_int;
20760}
20761extern "C" {
20762    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_get_ext"]
20763    pub fn X509v3_get_ext(
20764        x: *const stack_st_X509_EXTENSION,
20765        loc: ::std::os::raw::c_int,
20766    ) -> *mut X509_EXTENSION;
20767}
20768extern "C" {
20769    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_delete_ext"]
20770    pub fn X509v3_delete_ext(
20771        x: *mut stack_st_X509_EXTENSION,
20772        loc: ::std::os::raw::c_int,
20773    ) -> *mut X509_EXTENSION;
20774}
20775extern "C" {
20776    #[link_name = "\u{1}aws_lc_0_38_0_X509v3_add_ext"]
20777    pub fn X509v3_add_ext(
20778        x: *mut *mut stack_st_X509_EXTENSION,
20779        ex: *const X509_EXTENSION,
20780        loc: ::std::os::raw::c_int,
20781    ) -> *mut stack_st_X509_EXTENSION;
20782}
20783extern "C" {
20784    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_d2i"]
20785    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::std::os::raw::c_void;
20786}
20787extern "C" {
20788    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_get_d2i"]
20789    pub fn X509V3_get_d2i(
20790        extensions: *const stack_st_X509_EXTENSION,
20791        nid: ::std::os::raw::c_int,
20792        out_critical: *mut ::std::os::raw::c_int,
20793        out_idx: *mut ::std::os::raw::c_int,
20794    ) -> *mut ::std::os::raw::c_void;
20795}
20796extern "C" {
20797    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_free"]
20798    pub fn X509V3_EXT_free(
20799        nid: ::std::os::raw::c_int,
20800        ext_data: *mut ::std::os::raw::c_void,
20801    ) -> ::std::os::raw::c_int;
20802}
20803extern "C" {
20804    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_i2d"]
20805    pub fn X509V3_EXT_i2d(
20806        ext_nid: ::std::os::raw::c_int,
20807        crit: ::std::os::raw::c_int,
20808        ext_struc: *mut ::std::os::raw::c_void,
20809    ) -> *mut X509_EXTENSION;
20810}
20811extern "C" {
20812    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_add1_i2d"]
20813    pub fn X509V3_add1_i2d(
20814        x: *mut *mut stack_st_X509_EXTENSION,
20815        nid: ::std::os::raw::c_int,
20816        value: *mut ::std::os::raw::c_void,
20817        crit: ::std::os::raw::c_int,
20818        flags: ::std::os::raw::c_ulong,
20819    ) -> ::std::os::raw::c_int;
20820}
20821#[repr(C)]
20822#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20823pub struct otherName_st {
20824    pub type_id: *mut ASN1_OBJECT,
20825    pub value: *mut ASN1_TYPE,
20826}
20827#[test]
20828fn bindgen_test_layout_otherName_st() {
20829    const UNINIT: ::std::mem::MaybeUninit<otherName_st> = ::std::mem::MaybeUninit::uninit();
20830    let ptr = UNINIT.as_ptr();
20831    assert_eq!(
20832        ::std::mem::size_of::<otherName_st>(),
20833        16usize,
20834        "Size of otherName_st"
20835    );
20836    assert_eq!(
20837        ::std::mem::align_of::<otherName_st>(),
20838        8usize,
20839        "Alignment of otherName_st"
20840    );
20841    assert_eq!(
20842        unsafe { ::std::ptr::addr_of!((*ptr).type_id) as usize - ptr as usize },
20843        0usize,
20844        "Offset of field: otherName_st::type_id"
20845    );
20846    assert_eq!(
20847        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
20848        8usize,
20849        "Offset of field: otherName_st::value"
20850    );
20851}
20852impl Default for otherName_st {
20853    fn default() -> Self {
20854        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20855        unsafe {
20856            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20857            s.assume_init()
20858        }
20859    }
20860}
20861pub type OTHERNAME = otherName_st;
20862#[repr(C)]
20863#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20864pub struct EDIPartyName_st {
20865    pub nameAssigner: *mut ASN1_STRING,
20866    pub partyName: *mut ASN1_STRING,
20867}
20868#[test]
20869fn bindgen_test_layout_EDIPartyName_st() {
20870    const UNINIT: ::std::mem::MaybeUninit<EDIPartyName_st> = ::std::mem::MaybeUninit::uninit();
20871    let ptr = UNINIT.as_ptr();
20872    assert_eq!(
20873        ::std::mem::size_of::<EDIPartyName_st>(),
20874        16usize,
20875        "Size of EDIPartyName_st"
20876    );
20877    assert_eq!(
20878        ::std::mem::align_of::<EDIPartyName_st>(),
20879        8usize,
20880        "Alignment of EDIPartyName_st"
20881    );
20882    assert_eq!(
20883        unsafe { ::std::ptr::addr_of!((*ptr).nameAssigner) as usize - ptr as usize },
20884        0usize,
20885        "Offset of field: EDIPartyName_st::nameAssigner"
20886    );
20887    assert_eq!(
20888        unsafe { ::std::ptr::addr_of!((*ptr).partyName) as usize - ptr as usize },
20889        8usize,
20890        "Offset of field: EDIPartyName_st::partyName"
20891    );
20892}
20893impl Default for EDIPartyName_st {
20894    fn default() -> Self {
20895        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20896        unsafe {
20897            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20898            s.assume_init()
20899        }
20900    }
20901}
20902pub type EDIPARTYNAME = EDIPartyName_st;
20903#[repr(C)]
20904#[derive(Copy, Clone)]
20905pub struct GENERAL_NAME_st {
20906    pub type_: ::std::os::raw::c_int,
20907    pub d: GENERAL_NAME_st__bindgen_ty_1,
20908}
20909#[repr(C)]
20910#[derive(Copy, Clone)]
20911pub union GENERAL_NAME_st__bindgen_ty_1 {
20912    pub ptr: *mut ::std::os::raw::c_char,
20913    pub otherName: *mut OTHERNAME,
20914    pub rfc822Name: *mut ASN1_IA5STRING,
20915    pub dNSName: *mut ASN1_IA5STRING,
20916    pub x400Address: *mut ASN1_STRING,
20917    pub directoryName: *mut X509_NAME,
20918    pub ediPartyName: *mut EDIPARTYNAME,
20919    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
20920    pub iPAddress: *mut ASN1_OCTET_STRING,
20921    pub registeredID: *mut ASN1_OBJECT,
20922    pub ip: *mut ASN1_OCTET_STRING,
20923    pub dirn: *mut X509_NAME,
20924    pub ia5: *mut ASN1_IA5STRING,
20925    pub rid: *mut ASN1_OBJECT,
20926}
20927#[test]
20928fn bindgen_test_layout_GENERAL_NAME_st__bindgen_ty_1() {
20929    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st__bindgen_ty_1> =
20930        ::std::mem::MaybeUninit::uninit();
20931    let ptr = UNINIT.as_ptr();
20932    assert_eq!(
20933        ::std::mem::size_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20934        8usize,
20935        "Size of GENERAL_NAME_st__bindgen_ty_1"
20936    );
20937    assert_eq!(
20938        ::std::mem::align_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20939        8usize,
20940        "Alignment of GENERAL_NAME_st__bindgen_ty_1"
20941    );
20942    assert_eq!(
20943        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
20944        0usize,
20945        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ptr"
20946    );
20947    assert_eq!(
20948        unsafe { ::std::ptr::addr_of!((*ptr).otherName) as usize - ptr as usize },
20949        0usize,
20950        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::otherName"
20951    );
20952    assert_eq!(
20953        unsafe { ::std::ptr::addr_of!((*ptr).rfc822Name) as usize - ptr as usize },
20954        0usize,
20955        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rfc822Name"
20956    );
20957    assert_eq!(
20958        unsafe { ::std::ptr::addr_of!((*ptr).dNSName) as usize - ptr as usize },
20959        0usize,
20960        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dNSName"
20961    );
20962    assert_eq!(
20963        unsafe { ::std::ptr::addr_of!((*ptr).x400Address) as usize - ptr as usize },
20964        0usize,
20965        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::x400Address"
20966    );
20967    assert_eq!(
20968        unsafe { ::std::ptr::addr_of!((*ptr).directoryName) as usize - ptr as usize },
20969        0usize,
20970        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::directoryName"
20971    );
20972    assert_eq!(
20973        unsafe { ::std::ptr::addr_of!((*ptr).ediPartyName) as usize - ptr as usize },
20974        0usize,
20975        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ediPartyName"
20976    );
20977    assert_eq!(
20978        unsafe { ::std::ptr::addr_of!((*ptr).uniformResourceIdentifier) as usize - ptr as usize },
20979        0usize,
20980        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::uniformResourceIdentifier"
20981    );
20982    assert_eq!(
20983        unsafe { ::std::ptr::addr_of!((*ptr).iPAddress) as usize - ptr as usize },
20984        0usize,
20985        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::iPAddress"
20986    );
20987    assert_eq!(
20988        unsafe { ::std::ptr::addr_of!((*ptr).registeredID) as usize - ptr as usize },
20989        0usize,
20990        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::registeredID"
20991    );
20992    assert_eq!(
20993        unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize },
20994        0usize,
20995        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ip"
20996    );
20997    assert_eq!(
20998        unsafe { ::std::ptr::addr_of!((*ptr).dirn) as usize - ptr as usize },
20999        0usize,
21000        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dirn"
21001    );
21002    assert_eq!(
21003        unsafe { ::std::ptr::addr_of!((*ptr).ia5) as usize - ptr as usize },
21004        0usize,
21005        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ia5"
21006    );
21007    assert_eq!(
21008        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
21009        0usize,
21010        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rid"
21011    );
21012}
21013impl Default for GENERAL_NAME_st__bindgen_ty_1 {
21014    fn default() -> Self {
21015        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21016        unsafe {
21017            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21018            s.assume_init()
21019        }
21020    }
21021}
21022#[test]
21023fn bindgen_test_layout_GENERAL_NAME_st() {
21024    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st> = ::std::mem::MaybeUninit::uninit();
21025    let ptr = UNINIT.as_ptr();
21026    assert_eq!(
21027        ::std::mem::size_of::<GENERAL_NAME_st>(),
21028        16usize,
21029        "Size of GENERAL_NAME_st"
21030    );
21031    assert_eq!(
21032        ::std::mem::align_of::<GENERAL_NAME_st>(),
21033        8usize,
21034        "Alignment of GENERAL_NAME_st"
21035    );
21036    assert_eq!(
21037        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
21038        0usize,
21039        "Offset of field: GENERAL_NAME_st::type_"
21040    );
21041    assert_eq!(
21042        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
21043        8usize,
21044        "Offset of field: GENERAL_NAME_st::d"
21045    );
21046}
21047impl Default for GENERAL_NAME_st {
21048    fn default() -> Self {
21049        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21050        unsafe {
21051            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21052            s.assume_init()
21053        }
21054    }
21055}
21056extern "C" {
21057    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_new"]
21058    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
21059}
21060extern "C" {
21061    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_free"]
21062    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
21063}
21064extern "C" {
21065    #[link_name = "\u{1}aws_lc_0_38_0_d2i_GENERAL_NAME"]
21066    pub fn d2i_GENERAL_NAME(
21067        out: *mut *mut GENERAL_NAME,
21068        inp: *mut *const u8,
21069        len: ::std::os::raw::c_long,
21070    ) -> *mut GENERAL_NAME;
21071}
21072extern "C" {
21073    #[link_name = "\u{1}aws_lc_0_38_0_i2d_GENERAL_NAME"]
21074    pub fn i2d_GENERAL_NAME(in_: *mut GENERAL_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21075}
21076extern "C" {
21077    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_dup"]
21078    pub fn GENERAL_NAME_dup(gen_: *mut GENERAL_NAME) -> *mut GENERAL_NAME;
21079}
21080extern "C" {
21081    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAMES_new"]
21082    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
21083}
21084extern "C" {
21085    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAMES_free"]
21086    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
21087}
21088extern "C" {
21089    #[link_name = "\u{1}aws_lc_0_38_0_d2i_GENERAL_NAMES"]
21090    pub fn d2i_GENERAL_NAMES(
21091        out: *mut *mut GENERAL_NAMES,
21092        inp: *mut *const u8,
21093        len: ::std::os::raw::c_long,
21094    ) -> *mut GENERAL_NAMES;
21095}
21096extern "C" {
21097    #[link_name = "\u{1}aws_lc_0_38_0_i2d_GENERAL_NAMES"]
21098    pub fn i2d_GENERAL_NAMES(in_: *mut GENERAL_NAMES, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21099}
21100extern "C" {
21101    #[link_name = "\u{1}aws_lc_0_38_0_OTHERNAME_new"]
21102    pub fn OTHERNAME_new() -> *mut OTHERNAME;
21103}
21104extern "C" {
21105    #[link_name = "\u{1}aws_lc_0_38_0_OTHERNAME_free"]
21106    pub fn OTHERNAME_free(name: *mut OTHERNAME);
21107}
21108extern "C" {
21109    #[link_name = "\u{1}aws_lc_0_38_0_EDIPARTYNAME_new"]
21110    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
21111}
21112extern "C" {
21113    #[link_name = "\u{1}aws_lc_0_38_0_EDIPARTYNAME_free"]
21114    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
21115}
21116extern "C" {
21117    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_set0_value"]
21118    pub fn GENERAL_NAME_set0_value(
21119        gen_: *mut GENERAL_NAME,
21120        type_: ::std::os::raw::c_int,
21121        value: *mut ::std::os::raw::c_void,
21122    );
21123}
21124extern "C" {
21125    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_get0_value"]
21126    pub fn GENERAL_NAME_get0_value(
21127        gen_: *const GENERAL_NAME,
21128        out_type: *mut ::std::os::raw::c_int,
21129    ) -> *mut ::std::os::raw::c_void;
21130}
21131extern "C" {
21132    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_set0_othername"]
21133    pub fn GENERAL_NAME_set0_othername(
21134        gen_: *mut GENERAL_NAME,
21135        oid: *mut ASN1_OBJECT,
21136        value: *mut ASN1_TYPE,
21137    ) -> ::std::os::raw::c_int;
21138}
21139extern "C" {
21140    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_get0_otherName"]
21141    pub fn GENERAL_NAME_get0_otherName(
21142        gen_: *const GENERAL_NAME,
21143        out_oid: *mut *mut ASN1_OBJECT,
21144        out_value: *mut *mut ASN1_TYPE,
21145    ) -> ::std::os::raw::c_int;
21146}
21147#[repr(C)]
21148#[derive(Debug, Copy, Clone)]
21149pub struct stack_st_X509_ALGOR {
21150    _unused: [u8; 0],
21151}
21152pub type sk_X509_ALGOR_free_func =
21153    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
21154pub type sk_X509_ALGOR_copy_func =
21155    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
21156pub type sk_X509_ALGOR_cmp_func = ::std::option::Option<
21157    unsafe extern "C" fn(
21158        arg1: *const *const X509_ALGOR,
21159        arg2: *const *const X509_ALGOR,
21160    ) -> ::std::os::raw::c_int,
21161>;
21162pub type sk_X509_ALGOR_delete_if_func = ::std::option::Option<
21163    unsafe extern "C" fn(
21164        arg1: *mut X509_ALGOR,
21165        arg2: *mut ::std::os::raw::c_void,
21166    ) -> ::std::os::raw::c_int,
21167>;
21168extern "C" {
21169    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_it"]
21170    pub static X509_ALGOR_it: ASN1_ITEM;
21171}
21172extern "C" {
21173    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_new"]
21174    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
21175}
21176extern "C" {
21177    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_dup"]
21178    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
21179}
21180extern "C" {
21181    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_free"]
21182    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
21183}
21184extern "C" {
21185    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_ALGOR"]
21186    pub fn d2i_X509_ALGOR(
21187        out: *mut *mut X509_ALGOR,
21188        inp: *mut *const u8,
21189        len: ::std::os::raw::c_long,
21190    ) -> *mut X509_ALGOR;
21191}
21192extern "C" {
21193    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_ALGOR"]
21194    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21195}
21196extern "C" {
21197    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_set0"]
21198    pub fn X509_ALGOR_set0(
21199        alg: *mut X509_ALGOR,
21200        obj: *mut ASN1_OBJECT,
21201        param_type: ::std::os::raw::c_int,
21202        param_value: *mut ::std::os::raw::c_void,
21203    ) -> ::std::os::raw::c_int;
21204}
21205extern "C" {
21206    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_get0"]
21207    pub fn X509_ALGOR_get0(
21208        out_obj: *mut *const ASN1_OBJECT,
21209        out_param_type: *mut ::std::os::raw::c_int,
21210        out_param_value: *mut *const ::std::os::raw::c_void,
21211        alg: *const X509_ALGOR,
21212    );
21213}
21214extern "C" {
21215    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_set_md"]
21216    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::std::os::raw::c_int;
21217}
21218extern "C" {
21219    #[link_name = "\u{1}aws_lc_0_38_0_X509_ALGOR_cmp"]
21220    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::std::os::raw::c_int;
21221}
21222#[repr(C)]
21223#[derive(Debug, Copy, Clone)]
21224pub struct stack_st_X509_ATTRIBUTE {
21225    _unused: [u8; 0],
21226}
21227pub type sk_X509_ATTRIBUTE_free_func =
21228    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
21229pub type sk_X509_ATTRIBUTE_copy_func =
21230    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE>;
21231pub type sk_X509_ATTRIBUTE_cmp_func = ::std::option::Option<
21232    unsafe extern "C" fn(
21233        arg1: *const *const X509_ATTRIBUTE,
21234        arg2: *const *const X509_ATTRIBUTE,
21235    ) -> ::std::os::raw::c_int,
21236>;
21237pub type sk_X509_ATTRIBUTE_delete_if_func = ::std::option::Option<
21238    unsafe extern "C" fn(
21239        arg1: *mut X509_ATTRIBUTE,
21240        arg2: *mut ::std::os::raw::c_void,
21241    ) -> ::std::os::raw::c_int,
21242>;
21243extern "C" {
21244    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_it"]
21245    pub static X509_ATTRIBUTE_it: ASN1_ITEM;
21246}
21247extern "C" {
21248    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_new"]
21249    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
21250}
21251extern "C" {
21252    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_dup"]
21253    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
21254}
21255extern "C" {
21256    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_free"]
21257    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
21258}
21259extern "C" {
21260    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_ATTRIBUTE"]
21261    pub fn d2i_X509_ATTRIBUTE(
21262        out: *mut *mut X509_ATTRIBUTE,
21263        inp: *mut *const u8,
21264        len: ::std::os::raw::c_long,
21265    ) -> *mut X509_ATTRIBUTE;
21266}
21267extern "C" {
21268    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_ATTRIBUTE"]
21269    pub fn i2d_X509_ATTRIBUTE(
21270        alg: *const X509_ATTRIBUTE,
21271        outp: *mut *mut u8,
21272    ) -> ::std::os::raw::c_int;
21273}
21274extern "C" {
21275    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_create"]
21276    pub fn X509_ATTRIBUTE_create(
21277        nid: ::std::os::raw::c_int,
21278        attrtype: ::std::os::raw::c_int,
21279        value: *mut ::std::os::raw::c_void,
21280    ) -> *mut X509_ATTRIBUTE;
21281}
21282extern "C" {
21283    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_create_by_NID"]
21284    pub fn X509_ATTRIBUTE_create_by_NID(
21285        attr: *mut *mut X509_ATTRIBUTE,
21286        nid: ::std::os::raw::c_int,
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_38_0_X509_ATTRIBUTE_create_by_OBJ"]
21294    pub fn X509_ATTRIBUTE_create_by_OBJ(
21295        attr: *mut *mut X509_ATTRIBUTE,
21296        obj: *const ASN1_OBJECT,
21297        attrtype: ::std::os::raw::c_int,
21298        data: *const ::std::os::raw::c_void,
21299        len: ::std::os::raw::c_int,
21300    ) -> *mut X509_ATTRIBUTE;
21301}
21302extern "C" {
21303    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_create_by_txt"]
21304    pub fn X509_ATTRIBUTE_create_by_txt(
21305        attr: *mut *mut X509_ATTRIBUTE,
21306        attrname: *const ::std::os::raw::c_char,
21307        type_: ::std::os::raw::c_int,
21308        bytes: *const ::std::os::raw::c_uchar,
21309        len: ::std::os::raw::c_int,
21310    ) -> *mut X509_ATTRIBUTE;
21311}
21312extern "C" {
21313    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_set1_object"]
21314    pub fn X509_ATTRIBUTE_set1_object(
21315        attr: *mut X509_ATTRIBUTE,
21316        obj: *const ASN1_OBJECT,
21317    ) -> ::std::os::raw::c_int;
21318}
21319extern "C" {
21320    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_set1_data"]
21321    pub fn X509_ATTRIBUTE_set1_data(
21322        attr: *mut X509_ATTRIBUTE,
21323        attrtype: ::std::os::raw::c_int,
21324        data: *const ::std::os::raw::c_void,
21325        len: ::std::os::raw::c_int,
21326    ) -> ::std::os::raw::c_int;
21327}
21328extern "C" {
21329    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_get0_data"]
21330    pub fn X509_ATTRIBUTE_get0_data(
21331        attr: *mut X509_ATTRIBUTE,
21332        idx: ::std::os::raw::c_int,
21333        attrtype: ::std::os::raw::c_int,
21334        unused: *mut ::std::os::raw::c_void,
21335    ) -> *mut ::std::os::raw::c_void;
21336}
21337extern "C" {
21338    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_count"]
21339    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::std::os::raw::c_int;
21340}
21341extern "C" {
21342    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_get0_object"]
21343    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
21344}
21345extern "C" {
21346    #[link_name = "\u{1}aws_lc_0_38_0_X509_ATTRIBUTE_get0_type"]
21347    pub fn X509_ATTRIBUTE_get0_type(
21348        attr: *mut X509_ATTRIBUTE,
21349        idx: ::std::os::raw::c_int,
21350    ) -> *mut ASN1_TYPE;
21351}
21352extern "C" {
21353    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_new"]
21354    pub fn X509_STORE_new() -> *mut X509_STORE;
21355}
21356extern "C" {
21357    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_up_ref"]
21358    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21359}
21360extern "C" {
21361    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_free"]
21362    pub fn X509_STORE_free(store: *mut X509_STORE);
21363}
21364extern "C" {
21365    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_add_cert"]
21366    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::std::os::raw::c_int;
21367}
21368extern "C" {
21369    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_add_crl"]
21370    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
21371}
21372extern "C" {
21373    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get0_param"]
21374    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
21375}
21376extern "C" {
21377    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set1_param"]
21378    pub fn X509_STORE_set1_param(
21379        store: *mut X509_STORE,
21380        param: *const X509_VERIFY_PARAM,
21381    ) -> ::std::os::raw::c_int;
21382}
21383extern "C" {
21384    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_flags"]
21385    pub fn X509_STORE_set_flags(
21386        store: *mut X509_STORE,
21387        flags: ::std::os::raw::c_ulong,
21388    ) -> ::std::os::raw::c_int;
21389}
21390extern "C" {
21391    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_depth"]
21392    pub fn X509_STORE_set_depth(
21393        store: *mut X509_STORE,
21394        depth: ::std::os::raw::c_int,
21395    ) -> ::std::os::raw::c_int;
21396}
21397extern "C" {
21398    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_purpose"]
21399    pub fn X509_STORE_set_purpose(
21400        store: *mut X509_STORE,
21401        purpose: ::std::os::raw::c_int,
21402    ) -> ::std::os::raw::c_int;
21403}
21404extern "C" {
21405    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_trust"]
21406    pub fn X509_STORE_set_trust(
21407        store: *mut X509_STORE,
21408        trust: ::std::os::raw::c_int,
21409    ) -> ::std::os::raw::c_int;
21410}
21411#[repr(C)]
21412#[derive(Debug, Copy, Clone)]
21413pub struct stack_st_X509_OBJECT {
21414    _unused: [u8; 0],
21415}
21416pub type sk_X509_OBJECT_free_func =
21417    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
21418pub type sk_X509_OBJECT_copy_func =
21419    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
21420pub type sk_X509_OBJECT_cmp_func = ::std::option::Option<
21421    unsafe extern "C" fn(
21422        arg1: *const *const X509_OBJECT,
21423        arg2: *const *const X509_OBJECT,
21424    ) -> ::std::os::raw::c_int,
21425>;
21426pub type sk_X509_OBJECT_delete_if_func = ::std::option::Option<
21427    unsafe extern "C" fn(
21428        arg1: *mut X509_OBJECT,
21429        arg2: *mut ::std::os::raw::c_void,
21430    ) -> ::std::os::raw::c_int,
21431>;
21432extern "C" {
21433    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_new"]
21434    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
21435}
21436extern "C" {
21437    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_free"]
21438    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
21439}
21440extern "C" {
21441    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_get_type"]
21442    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::std::os::raw::c_int;
21443}
21444extern "C" {
21445    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_get0_X509"]
21446    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
21447}
21448pub type X509_STORE_CTX_lookup_crls_fn = ::std::option::Option<
21449    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, nm: *mut X509_NAME) -> *mut stack_st_X509_CRL,
21450>;
21451extern "C" {
21452    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get_lookup_crls"]
21453    pub fn X509_STORE_get_lookup_crls(ctx: *mut X509_STORE) -> X509_STORE_CTX_lookup_crls_fn;
21454}
21455extern "C" {
21456    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_lookup_crls"]
21457    pub fn X509_STORE_set_lookup_crls(
21458        ctx: *mut X509_STORE,
21459        lookup_crls: X509_STORE_CTX_lookup_crls_fn,
21460    );
21461}
21462extern "C" {
21463    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_new"]
21464    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
21465}
21466extern "C" {
21467    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_free"]
21468    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
21469}
21470extern "C" {
21471    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_init"]
21472    pub fn X509_STORE_CTX_init(
21473        ctx: *mut X509_STORE_CTX,
21474        store: *mut X509_STORE,
21475        x509: *mut X509,
21476        chain: *mut stack_st_X509,
21477    ) -> ::std::os::raw::c_int;
21478}
21479extern "C" {
21480    #[link_name = "\u{1}aws_lc_0_38_0_X509_verify_cert"]
21481    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21482}
21483extern "C" {
21484    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_chain"]
21485    pub fn X509_STORE_CTX_get0_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21486}
21487extern "C" {
21488    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get1_chain"]
21489    pub fn X509_STORE_CTX_get1_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21490}
21491extern "C" {
21492    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_cert"]
21493    pub fn X509_STORE_CTX_set_cert(c: *mut X509_STORE_CTX, x: *mut X509);
21494}
21495extern "C" {
21496    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_error"]
21497    pub fn X509_STORE_CTX_get_error(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21498}
21499extern "C" {
21500    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_error"]
21501    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::std::os::raw::c_int);
21502}
21503extern "C" {
21504    #[link_name = "\u{1}aws_lc_0_38_0_X509_verify_cert_error_string"]
21505    pub fn X509_verify_cert_error_string(
21506        err: ::std::os::raw::c_long,
21507    ) -> *const ::std::os::raw::c_char;
21508}
21509extern "C" {
21510    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_error_depth"]
21511    pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21512}
21513extern "C" {
21514    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_current_cert"]
21515    pub fn X509_STORE_CTX_get_current_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21516}
21517extern "C" {
21518    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_current_issuer"]
21519    pub fn X509_STORE_CTX_get0_current_issuer(ctx: *mut X509_STORE_CTX) -> *mut X509;
21520}
21521extern "C" {
21522    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_current_crl"]
21523    pub fn X509_STORE_CTX_get0_current_crl(ctx: *mut X509_STORE_CTX) -> *mut X509_CRL;
21524}
21525extern "C" {
21526    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_store"]
21527    pub fn X509_STORE_CTX_get0_store(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE;
21528}
21529extern "C" {
21530    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_cert"]
21531    pub fn X509_STORE_CTX_get0_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21532}
21533extern "C" {
21534    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_untrusted"]
21535    pub fn X509_STORE_CTX_get0_untrusted(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21536}
21537extern "C" {
21538    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set0_trusted_stack"]
21539    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21540}
21541extern "C" {
21542    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set0_crls"]
21543    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21544}
21545extern "C" {
21546    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_default"]
21547    pub fn X509_STORE_CTX_set_default(
21548        ctx: *mut X509_STORE_CTX,
21549        name: *const ::std::os::raw::c_char,
21550    ) -> ::std::os::raw::c_int;
21551}
21552extern "C" {
21553    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_param"]
21554    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21555}
21556extern "C" {
21557    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set0_param"]
21558    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21559}
21560extern "C" {
21561    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_flags"]
21562    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::std::os::raw::c_ulong);
21563}
21564extern "C" {
21565    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_time"]
21566    pub fn X509_STORE_CTX_set_time(
21567        ctx: *mut X509_STORE_CTX,
21568        flags: ::std::os::raw::c_ulong,
21569        t: time_t,
21570    );
21571}
21572extern "C" {
21573    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_time_posix"]
21574    pub fn X509_STORE_CTX_set_time_posix(
21575        ctx: *mut X509_STORE_CTX,
21576        flags: ::std::os::raw::c_ulong,
21577        t: i64,
21578    );
21579}
21580extern "C" {
21581    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_depth"]
21582    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::std::os::raw::c_int);
21583}
21584extern "C" {
21585    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_purpose"]
21586    pub fn X509_STORE_CTX_set_purpose(
21587        ctx: *mut X509_STORE_CTX,
21588        purpose: ::std::os::raw::c_int,
21589    ) -> ::std::os::raw::c_int;
21590}
21591extern "C" {
21592    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_trust"]
21593    pub fn X509_STORE_CTX_set_trust(
21594        ctx: *mut X509_STORE_CTX,
21595        trust: ::std::os::raw::c_int,
21596    ) -> ::std::os::raw::c_int;
21597}
21598extern "C" {
21599    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_add_custom_crit_oid"]
21600    pub fn X509_STORE_CTX_add_custom_crit_oid(
21601        ctx: *mut X509_STORE_CTX,
21602        oid: *mut ASN1_OBJECT,
21603    ) -> ::std::os::raw::c_int;
21604}
21605pub type X509_STORE_CTX_verify_crit_oids_cb = ::std::option::Option<
21606    unsafe extern "C" fn(
21607        ctx: *mut X509_STORE_CTX,
21608        x509: *mut X509,
21609        oids: *mut stack_st_ASN1_OBJECT,
21610    ) -> ::std::os::raw::c_int,
21611>;
21612extern "C" {
21613    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_verify_crit_oids"]
21614    pub fn X509_STORE_CTX_set_verify_crit_oids(
21615        ctx: *mut X509_STORE_CTX,
21616        verify_custom_crit_oids: X509_STORE_CTX_verify_crit_oids_cb,
21617    );
21618}
21619extern "C" {
21620    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_new"]
21621    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21622}
21623extern "C" {
21624    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_free"]
21625    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21626}
21627extern "C" {
21628    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_inherit"]
21629    pub fn X509_VERIFY_PARAM_inherit(
21630        to: *mut X509_VERIFY_PARAM,
21631        from: *const X509_VERIFY_PARAM,
21632    ) -> ::std::os::raw::c_int;
21633}
21634extern "C" {
21635    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1"]
21636    pub fn X509_VERIFY_PARAM_set1(
21637        to: *mut X509_VERIFY_PARAM,
21638        from: *const X509_VERIFY_PARAM,
21639    ) -> ::std::os::raw::c_int;
21640}
21641extern "C" {
21642    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_flags"]
21643    pub fn X509_VERIFY_PARAM_set_flags(
21644        param: *mut X509_VERIFY_PARAM,
21645        flags: ::std::os::raw::c_ulong,
21646    ) -> ::std::os::raw::c_int;
21647}
21648extern "C" {
21649    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_clear_flags"]
21650    pub fn X509_VERIFY_PARAM_clear_flags(
21651        param: *mut X509_VERIFY_PARAM,
21652        flags: ::std::os::raw::c_ulong,
21653    ) -> ::std::os::raw::c_int;
21654}
21655extern "C" {
21656    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_get_flags"]
21657    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_ulong;
21658}
21659extern "C" {
21660    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_depth"]
21661    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::std::os::raw::c_int);
21662}
21663extern "C" {
21664    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_get_depth"]
21665    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_int;
21666}
21667extern "C" {
21668    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_time"]
21669    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21670}
21671extern "C" {
21672    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_time_posix"]
21673    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21674}
21675extern "C" {
21676    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_add0_policy"]
21677    pub fn X509_VERIFY_PARAM_add0_policy(
21678        param: *mut X509_VERIFY_PARAM,
21679        policy: *mut ASN1_OBJECT,
21680    ) -> ::std::os::raw::c_int;
21681}
21682extern "C" {
21683    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1_policies"]
21684    pub fn X509_VERIFY_PARAM_set1_policies(
21685        param: *mut X509_VERIFY_PARAM,
21686        policies: *const stack_st_ASN1_OBJECT,
21687    ) -> ::std::os::raw::c_int;
21688}
21689extern "C" {
21690    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1_host"]
21691    pub fn X509_VERIFY_PARAM_set1_host(
21692        param: *mut X509_VERIFY_PARAM,
21693        name: *const ::std::os::raw::c_char,
21694        name_len: usize,
21695    ) -> ::std::os::raw::c_int;
21696}
21697extern "C" {
21698    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_add1_host"]
21699    pub fn X509_VERIFY_PARAM_add1_host(
21700        param: *mut X509_VERIFY_PARAM,
21701        name: *const ::std::os::raw::c_char,
21702        name_len: usize,
21703    ) -> ::std::os::raw::c_int;
21704}
21705extern "C" {
21706    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_hostflags"]
21707    pub fn X509_VERIFY_PARAM_set_hostflags(
21708        param: *mut X509_VERIFY_PARAM,
21709        flags: ::std::os::raw::c_uint,
21710    );
21711}
21712extern "C" {
21713    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_get_hostflags"]
21714    pub fn X509_VERIFY_PARAM_get_hostflags(
21715        param: *const X509_VERIFY_PARAM,
21716    ) -> ::std::os::raw::c_uint;
21717}
21718extern "C" {
21719    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1_email"]
21720    pub fn X509_VERIFY_PARAM_set1_email(
21721        param: *mut X509_VERIFY_PARAM,
21722        email: *const ::std::os::raw::c_char,
21723        email_len: usize,
21724    ) -> ::std::os::raw::c_int;
21725}
21726extern "C" {
21727    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1_ip"]
21728    pub fn X509_VERIFY_PARAM_set1_ip(
21729        param: *mut X509_VERIFY_PARAM,
21730        ip: *const u8,
21731        ip_len: usize,
21732    ) -> ::std::os::raw::c_int;
21733}
21734extern "C" {
21735    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set1_ip_asc"]
21736    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21737        param: *mut X509_VERIFY_PARAM,
21738        ipasc: *const ::std::os::raw::c_char,
21739    ) -> ::std::os::raw::c_int;
21740}
21741extern "C" {
21742    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_purpose"]
21743    pub fn X509_VERIFY_PARAM_set_purpose(
21744        param: *mut X509_VERIFY_PARAM,
21745        purpose: ::std::os::raw::c_int,
21746    ) -> ::std::os::raw::c_int;
21747}
21748extern "C" {
21749    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_set_trust"]
21750    pub fn X509_VERIFY_PARAM_set_trust(
21751        param: *mut X509_VERIFY_PARAM,
21752        trust: ::std::os::raw::c_int,
21753    ) -> ::std::os::raw::c_int;
21754}
21755extern "C" {
21756    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_enable_ec_key_explicit_params"]
21757    pub fn X509_VERIFY_PARAM_enable_ec_key_explicit_params(
21758        param: *mut X509_VERIFY_PARAM,
21759    ) -> ::std::os::raw::c_int;
21760}
21761extern "C" {
21762    #[link_name = "\u{1}aws_lc_0_38_0_X509_VERIFY_PARAM_disable_ec_key_explicit_params"]
21763    pub fn X509_VERIFY_PARAM_disable_ec_key_explicit_params(
21764        param: *mut X509_VERIFY_PARAM,
21765    ) -> ::std::os::raw::c_int;
21766}
21767extern "C" {
21768    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_load_locations"]
21769    pub fn X509_STORE_load_locations(
21770        store: *mut X509_STORE,
21771        file: *const ::std::os::raw::c_char,
21772        dir: *const ::std::os::raw::c_char,
21773    ) -> ::std::os::raw::c_int;
21774}
21775extern "C" {
21776    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_add_lookup"]
21777    pub fn X509_STORE_add_lookup(
21778        store: *mut X509_STORE,
21779        method: *const X509_LOOKUP_METHOD,
21780    ) -> *mut X509_LOOKUP;
21781}
21782extern "C" {
21783    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_hash_dir"]
21784    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21785}
21786extern "C" {
21787    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_file"]
21788    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21789}
21790extern "C" {
21791    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_load_file"]
21792    pub fn X509_LOOKUP_load_file(
21793        lookup: *mut X509_LOOKUP,
21794        file: *const ::std::os::raw::c_char,
21795        type_: ::std::os::raw::c_int,
21796    ) -> ::std::os::raw::c_int;
21797}
21798extern "C" {
21799    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_add_dir"]
21800    pub fn X509_LOOKUP_add_dir(
21801        lookup: *mut X509_LOOKUP,
21802        path: *const ::std::os::raw::c_char,
21803        type_: ::std::os::raw::c_int,
21804    ) -> ::std::os::raw::c_int;
21805}
21806extern "C" {
21807    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_ctrl"]
21808    pub fn X509_LOOKUP_ctrl(
21809        lookup: *mut X509_LOOKUP,
21810        cmd: ::std::os::raw::c_int,
21811        argc: *const ::std::os::raw::c_char,
21812        argl: ::std::os::raw::c_long,
21813        ret: *mut *mut ::std::os::raw::c_char,
21814    ) -> ::std::os::raw::c_int;
21815}
21816extern "C" {
21817    #[link_name = "\u{1}aws_lc_0_38_0_X509_load_cert_file"]
21818    pub fn X509_load_cert_file(
21819        lookup: *mut X509_LOOKUP,
21820        file: *const ::std::os::raw::c_char,
21821        type_: ::std::os::raw::c_int,
21822    ) -> ::std::os::raw::c_int;
21823}
21824extern "C" {
21825    #[link_name = "\u{1}aws_lc_0_38_0_X509_load_crl_file"]
21826    pub fn X509_load_crl_file(
21827        lookup: *mut X509_LOOKUP,
21828        file: *const ::std::os::raw::c_char,
21829        type_: ::std::os::raw::c_int,
21830    ) -> ::std::os::raw::c_int;
21831}
21832extern "C" {
21833    #[link_name = "\u{1}aws_lc_0_38_0_X509_load_cert_crl_file"]
21834    pub fn X509_load_cert_crl_file(
21835        lookup: *mut X509_LOOKUP,
21836        file: *const ::std::os::raw::c_char,
21837        type_: ::std::os::raw::c_int,
21838    ) -> ::std::os::raw::c_int;
21839}
21840extern "C" {
21841    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_hash"]
21842    pub fn X509_NAME_hash(name: *mut X509_NAME) -> u32;
21843}
21844extern "C" {
21845    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_hash_old"]
21846    pub fn X509_NAME_hash_old(name: *mut X509_NAME) -> u32;
21847}
21848extern "C" {
21849    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_default_paths"]
21850    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21851}
21852extern "C" {
21853    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_cert_area"]
21854    pub fn X509_get_default_cert_area() -> *const ::std::os::raw::c_char;
21855}
21856extern "C" {
21857    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_cert_dir"]
21858    pub fn X509_get_default_cert_dir() -> *const ::std::os::raw::c_char;
21859}
21860extern "C" {
21861    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_cert_file"]
21862    pub fn X509_get_default_cert_file() -> *const ::std::os::raw::c_char;
21863}
21864extern "C" {
21865    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_private_dir"]
21866    pub fn X509_get_default_private_dir() -> *const ::std::os::raw::c_char;
21867}
21868extern "C" {
21869    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_cert_dir_env"]
21870    pub fn X509_get_default_cert_dir_env() -> *const ::std::os::raw::c_char;
21871}
21872extern "C" {
21873    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_default_cert_file_env"]
21874    pub fn X509_get_default_cert_file_env() -> *const ::std::os::raw::c_char;
21875}
21876#[repr(C)]
21877#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21878pub struct Netscape_spki_st {
21879    pub spkac: *mut NETSCAPE_SPKAC,
21880    pub sig_algor: *mut X509_ALGOR,
21881    pub signature: *mut ASN1_BIT_STRING,
21882}
21883#[test]
21884fn bindgen_test_layout_Netscape_spki_st() {
21885    const UNINIT: ::std::mem::MaybeUninit<Netscape_spki_st> = ::std::mem::MaybeUninit::uninit();
21886    let ptr = UNINIT.as_ptr();
21887    assert_eq!(
21888        ::std::mem::size_of::<Netscape_spki_st>(),
21889        24usize,
21890        "Size of Netscape_spki_st"
21891    );
21892    assert_eq!(
21893        ::std::mem::align_of::<Netscape_spki_st>(),
21894        8usize,
21895        "Alignment of Netscape_spki_st"
21896    );
21897    assert_eq!(
21898        unsafe { ::std::ptr::addr_of!((*ptr).spkac) as usize - ptr as usize },
21899        0usize,
21900        "Offset of field: Netscape_spki_st::spkac"
21901    );
21902    assert_eq!(
21903        unsafe { ::std::ptr::addr_of!((*ptr).sig_algor) as usize - ptr as usize },
21904        8usize,
21905        "Offset of field: Netscape_spki_st::sig_algor"
21906    );
21907    assert_eq!(
21908        unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize },
21909        16usize,
21910        "Offset of field: Netscape_spki_st::signature"
21911    );
21912}
21913impl Default for Netscape_spki_st {
21914    fn default() -> Self {
21915        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21916        unsafe {
21917            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21918            s.assume_init()
21919        }
21920    }
21921}
21922extern "C" {
21923    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_it"]
21924    pub static NETSCAPE_SPKI_it: ASN1_ITEM;
21925}
21926extern "C" {
21927    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_new"]
21928    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21929}
21930extern "C" {
21931    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_free"]
21932    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21933}
21934extern "C" {
21935    #[link_name = "\u{1}aws_lc_0_38_0_d2i_NETSCAPE_SPKI"]
21936    pub fn d2i_NETSCAPE_SPKI(
21937        out: *mut *mut NETSCAPE_SPKI,
21938        inp: *mut *const u8,
21939        len: ::std::os::raw::c_long,
21940    ) -> *mut NETSCAPE_SPKI;
21941}
21942extern "C" {
21943    #[link_name = "\u{1}aws_lc_0_38_0_i2d_NETSCAPE_SPKI"]
21944    pub fn i2d_NETSCAPE_SPKI(
21945        spki: *const NETSCAPE_SPKI,
21946        outp: *mut *mut u8,
21947    ) -> ::std::os::raw::c_int;
21948}
21949extern "C" {
21950    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_verify"]
21951    pub fn NETSCAPE_SPKI_verify(
21952        spki: *mut NETSCAPE_SPKI,
21953        pkey: *mut EVP_PKEY,
21954    ) -> ::std::os::raw::c_int;
21955}
21956extern "C" {
21957    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_b64_decode"]
21958    pub fn NETSCAPE_SPKI_b64_decode(
21959        str_: *const ::std::os::raw::c_char,
21960        len: ossl_ssize_t,
21961    ) -> *mut NETSCAPE_SPKI;
21962}
21963extern "C" {
21964    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_b64_encode"]
21965    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::std::os::raw::c_char;
21966}
21967extern "C" {
21968    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_get_pubkey"]
21969    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21970}
21971extern "C" {
21972    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_set_pubkey"]
21973    pub fn NETSCAPE_SPKI_set_pubkey(
21974        spki: *mut NETSCAPE_SPKI,
21975        pkey: *mut EVP_PKEY,
21976    ) -> ::std::os::raw::c_int;
21977}
21978extern "C" {
21979    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_sign"]
21980    pub fn NETSCAPE_SPKI_sign(
21981        spki: *mut NETSCAPE_SPKI,
21982        pkey: *mut EVP_PKEY,
21983        md: *const EVP_MD,
21984    ) -> ::std::os::raw::c_int;
21985}
21986#[repr(C)]
21987#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21988pub struct Netscape_spkac_st {
21989    pub pubkey: *mut X509_PUBKEY,
21990    pub challenge: *mut ASN1_IA5STRING,
21991}
21992#[test]
21993fn bindgen_test_layout_Netscape_spkac_st() {
21994    const UNINIT: ::std::mem::MaybeUninit<Netscape_spkac_st> = ::std::mem::MaybeUninit::uninit();
21995    let ptr = UNINIT.as_ptr();
21996    assert_eq!(
21997        ::std::mem::size_of::<Netscape_spkac_st>(),
21998        16usize,
21999        "Size of Netscape_spkac_st"
22000    );
22001    assert_eq!(
22002        ::std::mem::align_of::<Netscape_spkac_st>(),
22003        8usize,
22004        "Alignment of Netscape_spkac_st"
22005    );
22006    assert_eq!(
22007        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
22008        0usize,
22009        "Offset of field: Netscape_spkac_st::pubkey"
22010    );
22011    assert_eq!(
22012        unsafe { ::std::ptr::addr_of!((*ptr).challenge) as usize - ptr as usize },
22013        8usize,
22014        "Offset of field: Netscape_spkac_st::challenge"
22015    );
22016}
22017impl Default for Netscape_spkac_st {
22018    fn default() -> Self {
22019        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22020        unsafe {
22021            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22022            s.assume_init()
22023        }
22024    }
22025}
22026extern "C" {
22027    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKAC_it"]
22028    pub static NETSCAPE_SPKAC_it: ASN1_ITEM;
22029}
22030extern "C" {
22031    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKAC_new"]
22032    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
22033}
22034extern "C" {
22035    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKAC_free"]
22036    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
22037}
22038extern "C" {
22039    #[link_name = "\u{1}aws_lc_0_38_0_d2i_NETSCAPE_SPKAC"]
22040    pub fn d2i_NETSCAPE_SPKAC(
22041        out: *mut *mut NETSCAPE_SPKAC,
22042        inp: *mut *const u8,
22043        len: ::std::os::raw::c_long,
22044    ) -> *mut NETSCAPE_SPKAC;
22045}
22046extern "C" {
22047    #[link_name = "\u{1}aws_lc_0_38_0_i2d_NETSCAPE_SPKAC"]
22048    pub fn i2d_NETSCAPE_SPKAC(
22049        spkac: *const NETSCAPE_SPKAC,
22050        outp: *mut *mut u8,
22051    ) -> ::std::os::raw::c_int;
22052}
22053extern "C" {
22054    #[link_name = "\u{1}aws_lc_0_38_0_NETSCAPE_SPKI_print"]
22055    pub fn NETSCAPE_SPKI_print(out: *mut BIO, spki: *mut NETSCAPE_SPKI) -> ::std::os::raw::c_int;
22056}
22057#[repr(C)]
22058#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22059pub struct rsa_pss_params_st {
22060    pub hashAlgorithm: *mut X509_ALGOR,
22061    pub maskGenAlgorithm: *mut X509_ALGOR,
22062    pub saltLength: *mut ASN1_INTEGER,
22063    pub trailerField: *mut ASN1_INTEGER,
22064    pub maskHash: *mut X509_ALGOR,
22065}
22066#[test]
22067fn bindgen_test_layout_rsa_pss_params_st() {
22068    const UNINIT: ::std::mem::MaybeUninit<rsa_pss_params_st> = ::std::mem::MaybeUninit::uninit();
22069    let ptr = UNINIT.as_ptr();
22070    assert_eq!(
22071        ::std::mem::size_of::<rsa_pss_params_st>(),
22072        40usize,
22073        "Size of rsa_pss_params_st"
22074    );
22075    assert_eq!(
22076        ::std::mem::align_of::<rsa_pss_params_st>(),
22077        8usize,
22078        "Alignment of rsa_pss_params_st"
22079    );
22080    assert_eq!(
22081        unsafe { ::std::ptr::addr_of!((*ptr).hashAlgorithm) as usize - ptr as usize },
22082        0usize,
22083        "Offset of field: rsa_pss_params_st::hashAlgorithm"
22084    );
22085    assert_eq!(
22086        unsafe { ::std::ptr::addr_of!((*ptr).maskGenAlgorithm) as usize - ptr as usize },
22087        8usize,
22088        "Offset of field: rsa_pss_params_st::maskGenAlgorithm"
22089    );
22090    assert_eq!(
22091        unsafe { ::std::ptr::addr_of!((*ptr).saltLength) as usize - ptr as usize },
22092        16usize,
22093        "Offset of field: rsa_pss_params_st::saltLength"
22094    );
22095    assert_eq!(
22096        unsafe { ::std::ptr::addr_of!((*ptr).trailerField) as usize - ptr as usize },
22097        24usize,
22098        "Offset of field: rsa_pss_params_st::trailerField"
22099    );
22100    assert_eq!(
22101        unsafe { ::std::ptr::addr_of!((*ptr).maskHash) as usize - ptr as usize },
22102        32usize,
22103        "Offset of field: rsa_pss_params_st::maskHash"
22104    );
22105}
22106impl Default for rsa_pss_params_st {
22107    fn default() -> Self {
22108        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22109        unsafe {
22110            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22111            s.assume_init()
22112        }
22113    }
22114}
22115extern "C" {
22116    #[link_name = "\u{1}aws_lc_0_38_0_RSA_PSS_PARAMS_it"]
22117    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
22118}
22119extern "C" {
22120    #[link_name = "\u{1}aws_lc_0_38_0_RSA_PSS_PARAMS_new"]
22121    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
22122}
22123extern "C" {
22124    #[link_name = "\u{1}aws_lc_0_38_0_RSA_PSS_PARAMS_free"]
22125    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
22126}
22127extern "C" {
22128    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSA_PSS_PARAMS"]
22129    pub fn d2i_RSA_PSS_PARAMS(
22130        out: *mut *mut RSA_PSS_PARAMS,
22131        inp: *mut *const u8,
22132        len: ::std::os::raw::c_long,
22133    ) -> *mut RSA_PSS_PARAMS;
22134}
22135extern "C" {
22136    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSA_PSS_PARAMS"]
22137    pub fn i2d_RSA_PSS_PARAMS(
22138        in_: *const RSA_PSS_PARAMS,
22139        outp: *mut *mut u8,
22140    ) -> ::std::os::raw::c_int;
22141}
22142extern "C" {
22143    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_PRIV_KEY_INFO_it"]
22144    pub static PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM;
22145}
22146extern "C" {
22147    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_PRIV_KEY_INFO_new"]
22148    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
22149}
22150extern "C" {
22151    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_PRIV_KEY_INFO_free"]
22152    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
22153}
22154extern "C" {
22155    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8_PRIV_KEY_INFO"]
22156    pub fn d2i_PKCS8_PRIV_KEY_INFO(
22157        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22158        inp: *mut *const u8,
22159        len: ::std::os::raw::c_long,
22160    ) -> *mut PKCS8_PRIV_KEY_INFO;
22161}
22162extern "C" {
22163    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8_PRIV_KEY_INFO"]
22164    pub fn i2d_PKCS8_PRIV_KEY_INFO(
22165        key: *const PKCS8_PRIV_KEY_INFO,
22166        outp: *mut *mut u8,
22167    ) -> ::std::os::raw::c_int;
22168}
22169extern "C" {
22170    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKCS82PKEY"]
22171    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
22172}
22173extern "C" {
22174    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY2PKCS8"]
22175    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
22176}
22177extern "C" {
22178    #[link_name = "\u{1}aws_lc_0_38_0_X509_SIG_it"]
22179    pub static X509_SIG_it: ASN1_ITEM;
22180}
22181extern "C" {
22182    #[link_name = "\u{1}aws_lc_0_38_0_X509_SIG_new"]
22183    pub fn X509_SIG_new() -> *mut X509_SIG;
22184}
22185extern "C" {
22186    #[link_name = "\u{1}aws_lc_0_38_0_X509_SIG_free"]
22187    pub fn X509_SIG_free(key: *mut X509_SIG);
22188}
22189extern "C" {
22190    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_SIG"]
22191    pub fn d2i_X509_SIG(
22192        out: *mut *mut X509_SIG,
22193        inp: *mut *const u8,
22194        len: ::std::os::raw::c_long,
22195    ) -> *mut X509_SIG;
22196}
22197extern "C" {
22198    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_SIG"]
22199    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
22200}
22201extern "C" {
22202    #[link_name = "\u{1}aws_lc_0_38_0_X509_SIG_get0"]
22203    pub fn X509_SIG_get0(
22204        sig: *const X509_SIG,
22205        out_alg: *mut *const X509_ALGOR,
22206        out_digest: *mut *const ASN1_OCTET_STRING,
22207    );
22208}
22209extern "C" {
22210    #[link_name = "\u{1}aws_lc_0_38_0_X509_SIG_getm"]
22211    pub fn X509_SIG_getm(
22212        sig: *mut X509_SIG,
22213        out_alg: *mut *mut X509_ALGOR,
22214        out_digest: *mut *mut ASN1_OCTET_STRING,
22215    );
22216}
22217extern "C" {
22218    #[link_name = "\u{1}aws_lc_0_38_0_X509_print_ex"]
22219    pub fn X509_print_ex(
22220        bp: *mut BIO,
22221        x: *mut X509,
22222        nmflag: ::std::os::raw::c_ulong,
22223        cflag: ::std::os::raw::c_ulong,
22224    ) -> ::std::os::raw::c_int;
22225}
22226extern "C" {
22227    #[link_name = "\u{1}aws_lc_0_38_0_X509_print_ex_fp"]
22228    pub fn X509_print_ex_fp(
22229        fp: *mut FILE,
22230        x: *mut X509,
22231        nmflag: ::std::os::raw::c_ulong,
22232        cflag: ::std::os::raw::c_ulong,
22233    ) -> ::std::os::raw::c_int;
22234}
22235extern "C" {
22236    #[link_name = "\u{1}aws_lc_0_38_0_X509_print"]
22237    pub fn X509_print(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
22238}
22239extern "C" {
22240    #[link_name = "\u{1}aws_lc_0_38_0_X509_print_fp"]
22241    pub fn X509_print_fp(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
22242}
22243extern "C" {
22244    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_print"]
22245    pub fn X509_CRL_print(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22246}
22247extern "C" {
22248    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_print_fp"]
22249    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22250}
22251extern "C" {
22252    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_print_ex"]
22253    pub fn X509_REQ_print_ex(
22254        bp: *mut BIO,
22255        x: *mut X509_REQ,
22256        nmflag: ::std::os::raw::c_ulong,
22257        cflag: ::std::os::raw::c_ulong,
22258    ) -> ::std::os::raw::c_int;
22259}
22260extern "C" {
22261    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_print"]
22262    pub fn X509_REQ_print(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22263}
22264extern "C" {
22265    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_print_fp"]
22266    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22267}
22268extern "C" {
22269    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_print_ex"]
22270    pub fn X509_NAME_print_ex(
22271        out: *mut BIO,
22272        nm: *const X509_NAME,
22273        indent: ::std::os::raw::c_int,
22274        flags: ::std::os::raw::c_ulong,
22275    ) -> ::std::os::raw::c_int;
22276}
22277extern "C" {
22278    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_print"]
22279    pub fn X509_NAME_print(
22280        bp: *mut BIO,
22281        name: *const X509_NAME,
22282        obase: ::std::os::raw::c_int,
22283    ) -> ::std::os::raw::c_int;
22284}
22285extern "C" {
22286    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_oneline"]
22287    pub fn X509_NAME_oneline(
22288        name: *const X509_NAME,
22289        buf: *mut ::std::os::raw::c_char,
22290        size: ::std::os::raw::c_int,
22291    ) -> *mut ::std::os::raw::c_char;
22292}
22293extern "C" {
22294    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_print_ex_fp"]
22295    pub fn X509_NAME_print_ex_fp(
22296        fp: *mut FILE,
22297        nm: *const X509_NAME,
22298        indent: ::std::os::raw::c_int,
22299        flags: ::std::os::raw::c_ulong,
22300    ) -> ::std::os::raw::c_int;
22301}
22302extern "C" {
22303    #[link_name = "\u{1}aws_lc_0_38_0_X509_signature_dump"]
22304    pub fn X509_signature_dump(
22305        bio: *mut BIO,
22306        sig: *const ASN1_STRING,
22307        indent: ::std::os::raw::c_int,
22308    ) -> ::std::os::raw::c_int;
22309}
22310extern "C" {
22311    #[link_name = "\u{1}aws_lc_0_38_0_X509_signature_print"]
22312    pub fn X509_signature_print(
22313        bio: *mut BIO,
22314        alg: *const X509_ALGOR,
22315        sig: *const ASN1_STRING,
22316    ) -> ::std::os::raw::c_int;
22317}
22318extern "C" {
22319    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_print"]
22320    pub fn X509V3_EXT_print(
22321        out: *mut BIO,
22322        ext: *const X509_EXTENSION,
22323        flag: ::std::os::raw::c_ulong,
22324        indent: ::std::os::raw::c_int,
22325    ) -> ::std::os::raw::c_int;
22326}
22327extern "C" {
22328    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_print_fp"]
22329    pub fn X509V3_EXT_print_fp(
22330        out: *mut FILE,
22331        ext: *const X509_EXTENSION,
22332        flag: ::std::os::raw::c_int,
22333        indent: ::std::os::raw::c_int,
22334    ) -> ::std::os::raw::c_int;
22335}
22336extern "C" {
22337    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_extensions_print"]
22338    pub fn X509V3_extensions_print(
22339        out: *mut BIO,
22340        title: *const ::std::os::raw::c_char,
22341        exts: *const stack_st_X509_EXTENSION,
22342        flag: ::std::os::raw::c_ulong,
22343        indent: ::std::os::raw::c_int,
22344    ) -> ::std::os::raw::c_int;
22345}
22346extern "C" {
22347    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_NAME_print"]
22348    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::std::os::raw::c_int;
22349}
22350extern "C" {
22351    #[link_name = "\u{1}aws_lc_0_38_0_X509_pubkey_digest"]
22352    pub fn X509_pubkey_digest(
22353        x509: *const X509,
22354        md: *const EVP_MD,
22355        out: *mut u8,
22356        out_len: *mut ::std::os::raw::c_uint,
22357    ) -> ::std::os::raw::c_int;
22358}
22359extern "C" {
22360    #[link_name = "\u{1}aws_lc_0_38_0_X509_digest"]
22361    pub fn X509_digest(
22362        x509: *const X509,
22363        md: *const EVP_MD,
22364        out: *mut u8,
22365        out_len: *mut ::std::os::raw::c_uint,
22366    ) -> ::std::os::raw::c_int;
22367}
22368extern "C" {
22369    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_digest"]
22370    pub fn X509_CRL_digest(
22371        crl: *const X509_CRL,
22372        md: *const EVP_MD,
22373        out: *mut u8,
22374        out_len: *mut ::std::os::raw::c_uint,
22375    ) -> ::std::os::raw::c_int;
22376}
22377extern "C" {
22378    #[link_name = "\u{1}aws_lc_0_38_0_X509_REQ_digest"]
22379    pub fn X509_REQ_digest(
22380        req: *const X509_REQ,
22381        md: *const EVP_MD,
22382        out: *mut u8,
22383        out_len: *mut ::std::os::raw::c_uint,
22384    ) -> ::std::os::raw::c_int;
22385}
22386extern "C" {
22387    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_digest"]
22388    pub fn X509_NAME_digest(
22389        name: *const X509_NAME,
22390        md: *const EVP_MD,
22391        out: *mut u8,
22392        out_len: *mut ::std::os::raw::c_uint,
22393    ) -> ::std::os::raw::c_int;
22394}
22395extern "C" {
22396    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_bio"]
22397    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
22398}
22399extern "C" {
22400    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_CRL_bio"]
22401    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22402}
22403extern "C" {
22404    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_REQ_bio"]
22405    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22406}
22407extern "C" {
22408    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPrivateKey_bio"]
22409    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22410}
22411extern "C" {
22412    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPublicKey_bio"]
22413    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22414}
22415extern "C" {
22416    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSA_PUBKEY_bio"]
22417    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22418}
22419extern "C" {
22420    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSA_PUBKEY_bio"]
22421    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22422}
22423extern "C" {
22424    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSAPrivateKey_bio"]
22425    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22426}
22427extern "C" {
22428    #[link_name = "\u{1}aws_lc_0_38_0_d2i_EC_PUBKEY_bio"]
22429    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22430}
22431extern "C" {
22432    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECPrivateKey_bio"]
22433    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22434}
22435extern "C" {
22436    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8_bio"]
22437    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22438}
22439extern "C" {
22440    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8_PRIV_KEY_INFO_bio"]
22441    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
22442        bp: *mut BIO,
22443        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22444    ) -> *mut PKCS8_PRIV_KEY_INFO;
22445}
22446extern "C" {
22447    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PUBKEY_bio"]
22448    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22449}
22450extern "C" {
22451    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DHparams_bio"]
22452    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
22453}
22454extern "C" {
22455    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PrivateKey_bio"]
22456    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22457}
22458extern "C" {
22459    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_bio"]
22460    pub fn i2d_X509_bio(bp: *mut BIO, x509: *mut X509) -> ::std::os::raw::c_int;
22461}
22462extern "C" {
22463    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_CRL_bio"]
22464    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22465}
22466extern "C" {
22467    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_REQ_bio"]
22468    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22469}
22470extern "C" {
22471    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPrivateKey_bio"]
22472    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22473}
22474extern "C" {
22475    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPublicKey_bio"]
22476    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22477}
22478extern "C" {
22479    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSA_PUBKEY_bio"]
22480    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22481}
22482extern "C" {
22483    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSA_PUBKEY_bio"]
22484    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22485}
22486extern "C" {
22487    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSAPrivateKey_bio"]
22488    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22489}
22490extern "C" {
22491    #[link_name = "\u{1}aws_lc_0_38_0_i2d_EC_PUBKEY_bio"]
22492    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22493}
22494extern "C" {
22495    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECPrivateKey_bio"]
22496    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22497}
22498extern "C" {
22499    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8_bio"]
22500    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22501}
22502extern "C" {
22503    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8_PRIV_KEY_INFO_bio"]
22504    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
22505        bp: *mut BIO,
22506        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22507    ) -> ::std::os::raw::c_int;
22508}
22509extern "C" {
22510    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PrivateKey_bio"]
22511    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22512}
22513extern "C" {
22514    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PUBKEY_bio"]
22515    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22516}
22517extern "C" {
22518    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DHparams_bio"]
22519    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::std::os::raw::c_int;
22520}
22521extern "C" {
22522    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKeyInfo_bio"]
22523    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22524}
22525extern "C" {
22526    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_fp"]
22527    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
22528}
22529extern "C" {
22530    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_CRL_fp"]
22531    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22532}
22533extern "C" {
22534    #[link_name = "\u{1}aws_lc_0_38_0_d2i_X509_REQ_fp"]
22535    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22536}
22537extern "C" {
22538    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPrivateKey_fp"]
22539    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22540}
22541extern "C" {
22542    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSAPublicKey_fp"]
22543    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22544}
22545extern "C" {
22546    #[link_name = "\u{1}aws_lc_0_38_0_d2i_RSA_PUBKEY_fp"]
22547    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22548}
22549extern "C" {
22550    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSA_PUBKEY_fp"]
22551    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22552}
22553extern "C" {
22554    #[link_name = "\u{1}aws_lc_0_38_0_d2i_DSAPrivateKey_fp"]
22555    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22556}
22557extern "C" {
22558    #[link_name = "\u{1}aws_lc_0_38_0_d2i_EC_PUBKEY_fp"]
22559    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22560}
22561extern "C" {
22562    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ECPrivateKey_fp"]
22563    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22564}
22565extern "C" {
22566    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8_fp"]
22567    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22568}
22569extern "C" {
22570    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8_PRIV_KEY_INFO_fp"]
22571    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
22572        fp: *mut FILE,
22573        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22574    ) -> *mut PKCS8_PRIV_KEY_INFO;
22575}
22576extern "C" {
22577    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PrivateKey_fp"]
22578    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22579}
22580extern "C" {
22581    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PUBKEY_fp"]
22582    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22583}
22584extern "C" {
22585    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_fp"]
22586    pub fn i2d_X509_fp(fp: *mut FILE, x509: *mut X509) -> ::std::os::raw::c_int;
22587}
22588extern "C" {
22589    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_CRL_fp"]
22590    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22591}
22592extern "C" {
22593    #[link_name = "\u{1}aws_lc_0_38_0_i2d_X509_REQ_fp"]
22594    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22595}
22596extern "C" {
22597    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPrivateKey_fp"]
22598    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22599}
22600extern "C" {
22601    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSAPublicKey_fp"]
22602    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22603}
22604extern "C" {
22605    #[link_name = "\u{1}aws_lc_0_38_0_i2d_RSA_PUBKEY_fp"]
22606    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22607}
22608extern "C" {
22609    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSA_PUBKEY_fp"]
22610    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22611}
22612extern "C" {
22613    #[link_name = "\u{1}aws_lc_0_38_0_i2d_DSAPrivateKey_fp"]
22614    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22615}
22616extern "C" {
22617    #[link_name = "\u{1}aws_lc_0_38_0_i2d_EC_PUBKEY_fp"]
22618    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22619}
22620extern "C" {
22621    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ECPrivateKey_fp"]
22622    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22623}
22624extern "C" {
22625    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8_fp"]
22626    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22627}
22628extern "C" {
22629    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8_PRIV_KEY_INFO_fp"]
22630    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
22631        fp: *mut FILE,
22632        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22633    ) -> ::std::os::raw::c_int;
22634}
22635extern "C" {
22636    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKeyInfo_fp"]
22637    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22638}
22639extern "C" {
22640    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PrivateKey_fp"]
22641    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22642}
22643extern "C" {
22644    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PUBKEY_fp"]
22645    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22646}
22647extern "C" {
22648    #[link_name = "\u{1}aws_lc_0_38_0_X509_find_by_issuer_and_serial"]
22649    pub fn X509_find_by_issuer_and_serial(
22650        sk: *const stack_st_X509,
22651        name: *mut X509_NAME,
22652        serial: *const ASN1_INTEGER,
22653    ) -> *mut X509;
22654}
22655extern "C" {
22656    #[link_name = "\u{1}aws_lc_0_38_0_X509_find_by_subject"]
22657    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *mut X509_NAME) -> *mut X509;
22658}
22659extern "C" {
22660    #[link_name = "\u{1}aws_lc_0_38_0_X509_cmp_time"]
22661    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::std::os::raw::c_int;
22662}
22663extern "C" {
22664    #[link_name = "\u{1}aws_lc_0_38_0_X509_cmp_time_posix"]
22665    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::std::os::raw::c_int;
22666}
22667extern "C" {
22668    #[link_name = "\u{1}aws_lc_0_38_0_X509_cmp_current_time"]
22669    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::std::os::raw::c_int;
22670}
22671extern "C" {
22672    #[link_name = "\u{1}aws_lc_0_38_0_X509_time_adj"]
22673    pub fn X509_time_adj(
22674        s: *mut ASN1_TIME,
22675        offset_sec: ::std::os::raw::c_long,
22676        t: *const time_t,
22677    ) -> *mut ASN1_TIME;
22678}
22679extern "C" {
22680    #[link_name = "\u{1}aws_lc_0_38_0_X509_time_adj_ex"]
22681    pub fn X509_time_adj_ex(
22682        s: *mut ASN1_TIME,
22683        offset_day: ::std::os::raw::c_int,
22684        offset_sec: ::std::os::raw::c_long,
22685        t: *const time_t,
22686    ) -> *mut ASN1_TIME;
22687}
22688extern "C" {
22689    #[link_name = "\u{1}aws_lc_0_38_0_X509_gmtime_adj"]
22690    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::std::os::raw::c_long)
22691        -> *mut ASN1_TIME;
22692}
22693extern "C" {
22694    #[link_name = "\u{1}aws_lc_0_38_0_X509_issuer_name_cmp"]
22695    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22696}
22697extern "C" {
22698    #[link_name = "\u{1}aws_lc_0_38_0_X509_subject_name_cmp"]
22699    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22700}
22701extern "C" {
22702    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_cmp"]
22703    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
22704}
22705extern "C" {
22706    #[link_name = "\u{1}aws_lc_0_38_0_X509_issuer_name_hash"]
22707    pub fn X509_issuer_name_hash(x509: *mut X509) -> u32;
22708}
22709extern "C" {
22710    #[link_name = "\u{1}aws_lc_0_38_0_X509_subject_name_hash"]
22711    pub fn X509_subject_name_hash(x509: *mut X509) -> u32;
22712}
22713extern "C" {
22714    #[link_name = "\u{1}aws_lc_0_38_0_X509_issuer_name_hash_old"]
22715    pub fn X509_issuer_name_hash_old(x509: *mut X509) -> u32;
22716}
22717extern "C" {
22718    #[link_name = "\u{1}aws_lc_0_38_0_X509_subject_name_hash_old"]
22719    pub fn X509_subject_name_hash_old(x509: *mut X509) -> u32;
22720}
22721extern "C" {
22722    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ex_new_index"]
22723    pub fn X509_get_ex_new_index(
22724        argl: ::std::os::raw::c_long,
22725        argp: *mut ::std::os::raw::c_void,
22726        unused: *mut CRYPTO_EX_unused,
22727        dup_unused: CRYPTO_EX_dup,
22728        free_func: CRYPTO_EX_free,
22729    ) -> ::std::os::raw::c_int;
22730}
22731extern "C" {
22732    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_ex_data"]
22733    pub fn X509_set_ex_data(
22734        r: *mut X509,
22735        idx: ::std::os::raw::c_int,
22736        arg: *mut ::std::os::raw::c_void,
22737    ) -> ::std::os::raw::c_int;
22738}
22739extern "C" {
22740    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_ex_data"]
22741    pub fn X509_get_ex_data(
22742        r: *mut X509,
22743        idx: ::std::os::raw::c_int,
22744    ) -> *mut ::std::os::raw::c_void;
22745}
22746extern "C" {
22747    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_ex_new_index"]
22748    pub fn X509_STORE_CTX_get_ex_new_index(
22749        argl: ::std::os::raw::c_long,
22750        argp: *mut ::std::os::raw::c_void,
22751        unused: *mut CRYPTO_EX_unused,
22752        dup_unused: CRYPTO_EX_dup,
22753        free_func: CRYPTO_EX_free,
22754    ) -> ::std::os::raw::c_int;
22755}
22756extern "C" {
22757    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_ex_data"]
22758    pub fn X509_STORE_CTX_set_ex_data(
22759        ctx: *mut X509_STORE_CTX,
22760        idx: ::std::os::raw::c_int,
22761        data: *mut ::std::os::raw::c_void,
22762    ) -> ::std::os::raw::c_int;
22763}
22764extern "C" {
22765    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_ex_data"]
22766    pub fn X509_STORE_CTX_get_ex_data(
22767        ctx: *mut X509_STORE_CTX,
22768        idx: ::std::os::raw::c_int,
22769    ) -> *mut ::std::os::raw::c_void;
22770}
22771extern "C" {
22772    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get_ex_new_index"]
22773    pub fn X509_STORE_get_ex_new_index(
22774        argl: ::std::os::raw::c_long,
22775        argp: *mut ::std::os::raw::c_void,
22776        unused: *mut CRYPTO_EX_unused,
22777        dup_unused: CRYPTO_EX_dup,
22778        free_func: CRYPTO_EX_free,
22779    ) -> ::std::os::raw::c_int;
22780}
22781extern "C" {
22782    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_ex_data"]
22783    pub fn X509_STORE_set_ex_data(
22784        ctx: *mut X509_STORE,
22785        idx: ::std::os::raw::c_int,
22786        data: *mut ::std::os::raw::c_void,
22787    ) -> ::std::os::raw::c_int;
22788}
22789extern "C" {
22790    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get_ex_data"]
22791    pub fn X509_STORE_get_ex_data(
22792        ctx: *mut X509_STORE,
22793        idx: ::std::os::raw::c_int,
22794    ) -> *mut ::std::os::raw::c_void;
22795}
22796extern "C" {
22797    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_digest"]
22798    pub fn ASN1_digest(
22799        i2d: i2d_of_void,
22800        type_: *const EVP_MD,
22801        data: *mut ::std::os::raw::c_char,
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_38_0_ASN1_item_digest"]
22808    pub fn ASN1_item_digest(
22809        it: *const ASN1_ITEM,
22810        type_: *const EVP_MD,
22811        data: *mut ::std::os::raw::c_void,
22812        md: *mut ::std::os::raw::c_uchar,
22813        len: *mut ::std::os::raw::c_uint,
22814    ) -> ::std::os::raw::c_int;
22815}
22816extern "C" {
22817    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_verify"]
22818    pub fn ASN1_item_verify(
22819        it: *const ASN1_ITEM,
22820        algor1: *const X509_ALGOR,
22821        signature: *const ASN1_BIT_STRING,
22822        data: *mut ::std::os::raw::c_void,
22823        pkey: *mut EVP_PKEY,
22824    ) -> ::std::os::raw::c_int;
22825}
22826extern "C" {
22827    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_sign"]
22828    pub fn ASN1_item_sign(
22829        it: *const ASN1_ITEM,
22830        algor1: *mut X509_ALGOR,
22831        algor2: *mut X509_ALGOR,
22832        signature: *mut ASN1_BIT_STRING,
22833        data: *mut ::std::os::raw::c_void,
22834        pkey: *mut EVP_PKEY,
22835        type_: *const EVP_MD,
22836    ) -> ::std::os::raw::c_int;
22837}
22838extern "C" {
22839    #[link_name = "\u{1}aws_lc_0_38_0_ASN1_item_sign_ctx"]
22840    pub fn ASN1_item_sign_ctx(
22841        it: *const ASN1_ITEM,
22842        algor1: *mut X509_ALGOR,
22843        algor2: *mut X509_ALGOR,
22844        signature: *mut ASN1_BIT_STRING,
22845        asn: *mut ::std::os::raw::c_void,
22846        ctx: *mut EVP_MD_CTX,
22847    ) -> ::std::os::raw::c_int;
22848}
22849extern "C" {
22850    #[link_name = "\u{1}aws_lc_0_38_0_X509_supported_extension"]
22851    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
22852}
22853extern "C" {
22854    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_ca"]
22855    pub fn X509_check_ca(x509: *mut X509) -> ::std::os::raw::c_int;
22856}
22857extern "C" {
22858    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_issued"]
22859    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> ::std::os::raw::c_int;
22860}
22861extern "C" {
22862    #[link_name = "\u{1}aws_lc_0_38_0_NAME_CONSTRAINTS_check"]
22863    pub fn NAME_CONSTRAINTS_check(
22864        x509: *mut X509,
22865        nc: *mut NAME_CONSTRAINTS,
22866    ) -> ::std::os::raw::c_int;
22867}
22868extern "C" {
22869    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_host"]
22870    pub fn X509_check_host(
22871        x509: *const X509,
22872        chk: *const ::std::os::raw::c_char,
22873        chklen: usize,
22874        flags: ::std::os::raw::c_uint,
22875        out_peername: *mut *mut ::std::os::raw::c_char,
22876    ) -> ::std::os::raw::c_int;
22877}
22878extern "C" {
22879    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_email"]
22880    pub fn X509_check_email(
22881        x509: *const X509,
22882        chk: *const ::std::os::raw::c_char,
22883        chklen: usize,
22884        flags: ::std::os::raw::c_uint,
22885    ) -> ::std::os::raw::c_int;
22886}
22887extern "C" {
22888    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_ip"]
22889    pub fn X509_check_ip(
22890        x509: *const X509,
22891        chk: *const u8,
22892        chklen: usize,
22893        flags: ::std::os::raw::c_uint,
22894    ) -> ::std::os::raw::c_int;
22895}
22896extern "C" {
22897    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_ip_asc"]
22898    pub fn X509_check_ip_asc(
22899        x509: *const X509,
22900        ipasc: *const ::std::os::raw::c_char,
22901        flags: ::std::os::raw::c_uint,
22902    ) -> ::std::os::raw::c_int;
22903}
22904extern "C" {
22905    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get1_issuer"]
22906    pub fn X509_STORE_CTX_get1_issuer(
22907        out_issuer: *mut *mut X509,
22908        ctx: *mut X509_STORE_CTX,
22909        x509: *mut X509,
22910    ) -> ::std::os::raw::c_int;
22911}
22912extern "C" {
22913    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_purpose"]
22914    pub fn X509_check_purpose(
22915        x509: *mut X509,
22916        purpose: ::std::os::raw::c_int,
22917        ca: ::std::os::raw::c_int,
22918    ) -> ::std::os::raw::c_int;
22919}
22920extern "C" {
22921    #[link_name = "\u{1}aws_lc_0_38_0_X509_check_trust"]
22922    pub fn X509_check_trust(
22923        x509: *mut X509,
22924        id: ::std::os::raw::c_int,
22925        flags: ::std::os::raw::c_int,
22926    ) -> ::std::os::raw::c_int;
22927}
22928#[repr(C)]
22929#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22930pub struct private_key_st {
22931    pub dec_pkey: *mut EVP_PKEY,
22932}
22933#[test]
22934fn bindgen_test_layout_private_key_st() {
22935    const UNINIT: ::std::mem::MaybeUninit<private_key_st> = ::std::mem::MaybeUninit::uninit();
22936    let ptr = UNINIT.as_ptr();
22937    assert_eq!(
22938        ::std::mem::size_of::<private_key_st>(),
22939        8usize,
22940        "Size of private_key_st"
22941    );
22942    assert_eq!(
22943        ::std::mem::align_of::<private_key_st>(),
22944        8usize,
22945        "Alignment of private_key_st"
22946    );
22947    assert_eq!(
22948        unsafe { ::std::ptr::addr_of!((*ptr).dec_pkey) as usize - ptr as usize },
22949        0usize,
22950        "Offset of field: private_key_st::dec_pkey"
22951    );
22952}
22953impl Default for private_key_st {
22954    fn default() -> Self {
22955        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22956        unsafe {
22957            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22958            s.assume_init()
22959        }
22960    }
22961}
22962#[repr(C)]
22963#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22964pub struct X509_info_st {
22965    pub x509: *mut X509,
22966    pub crl: *mut X509_CRL,
22967    pub x_pkey: *mut X509_PKEY,
22968    pub enc_cipher: EVP_CIPHER_INFO,
22969    pub enc_len: ::std::os::raw::c_int,
22970    pub enc_data: *mut ::std::os::raw::c_char,
22971}
22972#[test]
22973fn bindgen_test_layout_X509_info_st() {
22974    const UNINIT: ::std::mem::MaybeUninit<X509_info_st> = ::std::mem::MaybeUninit::uninit();
22975    let ptr = UNINIT.as_ptr();
22976    assert_eq!(
22977        ::std::mem::size_of::<X509_info_st>(),
22978        64usize,
22979        "Size of X509_info_st"
22980    );
22981    assert_eq!(
22982        ::std::mem::align_of::<X509_info_st>(),
22983        8usize,
22984        "Alignment of X509_info_st"
22985    );
22986    assert_eq!(
22987        unsafe { ::std::ptr::addr_of!((*ptr).x509) as usize - ptr as usize },
22988        0usize,
22989        "Offset of field: X509_info_st::x509"
22990    );
22991    assert_eq!(
22992        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
22993        8usize,
22994        "Offset of field: X509_info_st::crl"
22995    );
22996    assert_eq!(
22997        unsafe { ::std::ptr::addr_of!((*ptr).x_pkey) as usize - ptr as usize },
22998        16usize,
22999        "Offset of field: X509_info_st::x_pkey"
23000    );
23001    assert_eq!(
23002        unsafe { ::std::ptr::addr_of!((*ptr).enc_cipher) as usize - ptr as usize },
23003        24usize,
23004        "Offset of field: X509_info_st::enc_cipher"
23005    );
23006    assert_eq!(
23007        unsafe { ::std::ptr::addr_of!((*ptr).enc_len) as usize - ptr as usize },
23008        48usize,
23009        "Offset of field: X509_info_st::enc_len"
23010    );
23011    assert_eq!(
23012        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
23013        56usize,
23014        "Offset of field: X509_info_st::enc_data"
23015    );
23016}
23017impl Default for X509_info_st {
23018    fn default() -> Self {
23019        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23020        unsafe {
23021            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23022            s.assume_init()
23023        }
23024    }
23025}
23026#[repr(C)]
23027#[derive(Debug, Copy, Clone)]
23028pub struct stack_st_X509_INFO {
23029    _unused: [u8; 0],
23030}
23031pub type sk_X509_INFO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
23032pub type sk_X509_INFO_copy_func =
23033    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
23034pub type sk_X509_INFO_cmp_func = ::std::option::Option<
23035    unsafe extern "C" fn(
23036        arg1: *const *const X509_INFO,
23037        arg2: *const *const X509_INFO,
23038    ) -> ::std::os::raw::c_int,
23039>;
23040pub type sk_X509_INFO_delete_if_func = ::std::option::Option<
23041    unsafe extern "C" fn(
23042        arg1: *mut X509_INFO,
23043        arg2: *mut ::std::os::raw::c_void,
23044    ) -> ::std::os::raw::c_int,
23045>;
23046extern "C" {
23047    #[link_name = "\u{1}aws_lc_0_38_0_X509_INFO_free"]
23048    pub fn X509_INFO_free(info: *mut X509_INFO);
23049}
23050pub type X509V3_EXT_NEW =
23051    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
23052pub type X509V3_EXT_FREE =
23053    ::std::option::Option<unsafe extern "C" fn(ext: *mut ::std::os::raw::c_void)>;
23054pub type X509V3_EXT_D2I = ::std::option::Option<
23055    unsafe extern "C" fn(
23056        ext: *mut ::std::os::raw::c_void,
23057        inp: *mut *const u8,
23058        len: ::std::os::raw::c_long,
23059    ) -> *mut ::std::os::raw::c_void,
23060>;
23061pub type X509V3_EXT_I2D = ::std::option::Option<
23062    unsafe extern "C" fn(
23063        ext: *mut ::std::os::raw::c_void,
23064        outp: *mut *mut u8,
23065    ) -> ::std::os::raw::c_int,
23066>;
23067pub type X509V3_EXT_I2V = ::std::option::Option<
23068    unsafe extern "C" fn(
23069        method: *const X509V3_EXT_METHOD,
23070        ext: *mut ::std::os::raw::c_void,
23071        extlist: *mut stack_st_CONF_VALUE,
23072    ) -> *mut stack_st_CONF_VALUE,
23073>;
23074pub type X509V3_EXT_V2I = ::std::option::Option<
23075    unsafe extern "C" fn(
23076        method: *const X509V3_EXT_METHOD,
23077        ctx: *const X509V3_CTX,
23078        values: *const stack_st_CONF_VALUE,
23079    ) -> *mut ::std::os::raw::c_void,
23080>;
23081pub type X509V3_EXT_I2S = ::std::option::Option<
23082    unsafe extern "C" fn(
23083        method: *const X509V3_EXT_METHOD,
23084        ext: *mut ::std::os::raw::c_void,
23085    ) -> *mut ::std::os::raw::c_char,
23086>;
23087pub type X509V3_EXT_S2I = ::std::option::Option<
23088    unsafe extern "C" fn(
23089        method: *const X509V3_EXT_METHOD,
23090        ctx: *const X509V3_CTX,
23091        str_: *const ::std::os::raw::c_char,
23092    ) -> *mut ::std::os::raw::c_void,
23093>;
23094pub type X509V3_EXT_I2R = ::std::option::Option<
23095    unsafe extern "C" fn(
23096        method: *const X509V3_EXT_METHOD,
23097        ext: *mut ::std::os::raw::c_void,
23098        out: *mut BIO,
23099        indent: ::std::os::raw::c_int,
23100    ) -> ::std::os::raw::c_int,
23101>;
23102pub type X509V3_EXT_R2I = ::std::option::Option<
23103    unsafe extern "C" fn(
23104        method: *const X509V3_EXT_METHOD,
23105        ctx: *const X509V3_CTX,
23106        str_: *const ::std::os::raw::c_char,
23107    ) -> *mut ::std::os::raw::c_void,
23108>;
23109#[repr(C)]
23110#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23111pub struct v3_ext_method {
23112    pub ext_nid: ::std::os::raw::c_int,
23113    pub ext_flags: ::std::os::raw::c_int,
23114    pub it: *const ASN1_ITEM_st,
23115    pub ext_new: X509V3_EXT_NEW,
23116    pub ext_free: X509V3_EXT_FREE,
23117    pub d2i: X509V3_EXT_D2I,
23118    pub i2d: X509V3_EXT_I2D,
23119    pub i2s: X509V3_EXT_I2S,
23120    pub s2i: X509V3_EXT_S2I,
23121    pub i2v: X509V3_EXT_I2V,
23122    pub v2i: X509V3_EXT_V2I,
23123    pub i2r: X509V3_EXT_I2R,
23124    pub r2i: X509V3_EXT_R2I,
23125    pub usr_data: *mut ::std::os::raw::c_void,
23126}
23127#[test]
23128fn bindgen_test_layout_v3_ext_method() {
23129    const UNINIT: ::std::mem::MaybeUninit<v3_ext_method> = ::std::mem::MaybeUninit::uninit();
23130    let ptr = UNINIT.as_ptr();
23131    assert_eq!(
23132        ::std::mem::size_of::<v3_ext_method>(),
23133        104usize,
23134        "Size of v3_ext_method"
23135    );
23136    assert_eq!(
23137        ::std::mem::align_of::<v3_ext_method>(),
23138        8usize,
23139        "Alignment of v3_ext_method"
23140    );
23141    assert_eq!(
23142        unsafe { ::std::ptr::addr_of!((*ptr).ext_nid) as usize - ptr as usize },
23143        0usize,
23144        "Offset of field: v3_ext_method::ext_nid"
23145    );
23146    assert_eq!(
23147        unsafe { ::std::ptr::addr_of!((*ptr).ext_flags) as usize - ptr as usize },
23148        4usize,
23149        "Offset of field: v3_ext_method::ext_flags"
23150    );
23151    assert_eq!(
23152        unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize },
23153        8usize,
23154        "Offset of field: v3_ext_method::it"
23155    );
23156    assert_eq!(
23157        unsafe { ::std::ptr::addr_of!((*ptr).ext_new) as usize - ptr as usize },
23158        16usize,
23159        "Offset of field: v3_ext_method::ext_new"
23160    );
23161    assert_eq!(
23162        unsafe { ::std::ptr::addr_of!((*ptr).ext_free) as usize - ptr as usize },
23163        24usize,
23164        "Offset of field: v3_ext_method::ext_free"
23165    );
23166    assert_eq!(
23167        unsafe { ::std::ptr::addr_of!((*ptr).d2i) as usize - ptr as usize },
23168        32usize,
23169        "Offset of field: v3_ext_method::d2i"
23170    );
23171    assert_eq!(
23172        unsafe { ::std::ptr::addr_of!((*ptr).i2d) as usize - ptr as usize },
23173        40usize,
23174        "Offset of field: v3_ext_method::i2d"
23175    );
23176    assert_eq!(
23177        unsafe { ::std::ptr::addr_of!((*ptr).i2s) as usize - ptr as usize },
23178        48usize,
23179        "Offset of field: v3_ext_method::i2s"
23180    );
23181    assert_eq!(
23182        unsafe { ::std::ptr::addr_of!((*ptr).s2i) as usize - ptr as usize },
23183        56usize,
23184        "Offset of field: v3_ext_method::s2i"
23185    );
23186    assert_eq!(
23187        unsafe { ::std::ptr::addr_of!((*ptr).i2v) as usize - ptr as usize },
23188        64usize,
23189        "Offset of field: v3_ext_method::i2v"
23190    );
23191    assert_eq!(
23192        unsafe { ::std::ptr::addr_of!((*ptr).v2i) as usize - ptr as usize },
23193        72usize,
23194        "Offset of field: v3_ext_method::v2i"
23195    );
23196    assert_eq!(
23197        unsafe { ::std::ptr::addr_of!((*ptr).i2r) as usize - ptr as usize },
23198        80usize,
23199        "Offset of field: v3_ext_method::i2r"
23200    );
23201    assert_eq!(
23202        unsafe { ::std::ptr::addr_of!((*ptr).r2i) as usize - ptr as usize },
23203        88usize,
23204        "Offset of field: v3_ext_method::r2i"
23205    );
23206    assert_eq!(
23207        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23208        96usize,
23209        "Offset of field: v3_ext_method::usr_data"
23210    );
23211}
23212impl Default for v3_ext_method {
23213    fn default() -> Self {
23214        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23215        unsafe {
23216            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23217            s.assume_init()
23218        }
23219    }
23220}
23221extern "C" {
23222    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_get"]
23223    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
23224}
23225extern "C" {
23226    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_get_nid"]
23227    pub fn X509V3_EXT_get_nid(nid: ::std::os::raw::c_int) -> *const X509V3_EXT_METHOD;
23228}
23229extern "C" {
23230    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_add"]
23231    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::std::os::raw::c_int;
23232}
23233extern "C" {
23234    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_add_alias"]
23235    pub fn X509V3_EXT_add_alias(
23236        nid_to: ::std::os::raw::c_int,
23237        nid_from: ::std::os::raw::c_int,
23238    ) -> ::std::os::raw::c_int;
23239}
23240#[repr(C)]
23241#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23242pub struct v3_ext_ctx {
23243    pub flags: ::std::os::raw::c_int,
23244    pub issuer_cert: *const X509,
23245    pub subject_cert: *const X509,
23246    pub subject_req: *const X509_REQ,
23247    pub crl: *const X509_CRL,
23248    pub db: *const CONF,
23249}
23250#[test]
23251fn bindgen_test_layout_v3_ext_ctx() {
23252    const UNINIT: ::std::mem::MaybeUninit<v3_ext_ctx> = ::std::mem::MaybeUninit::uninit();
23253    let ptr = UNINIT.as_ptr();
23254    assert_eq!(
23255        ::std::mem::size_of::<v3_ext_ctx>(),
23256        48usize,
23257        "Size of v3_ext_ctx"
23258    );
23259    assert_eq!(
23260        ::std::mem::align_of::<v3_ext_ctx>(),
23261        8usize,
23262        "Alignment of v3_ext_ctx"
23263    );
23264    assert_eq!(
23265        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23266        0usize,
23267        "Offset of field: v3_ext_ctx::flags"
23268    );
23269    assert_eq!(
23270        unsafe { ::std::ptr::addr_of!((*ptr).issuer_cert) as usize - ptr as usize },
23271        8usize,
23272        "Offset of field: v3_ext_ctx::issuer_cert"
23273    );
23274    assert_eq!(
23275        unsafe { ::std::ptr::addr_of!((*ptr).subject_cert) as usize - ptr as usize },
23276        16usize,
23277        "Offset of field: v3_ext_ctx::subject_cert"
23278    );
23279    assert_eq!(
23280        unsafe { ::std::ptr::addr_of!((*ptr).subject_req) as usize - ptr as usize },
23281        24usize,
23282        "Offset of field: v3_ext_ctx::subject_req"
23283    );
23284    assert_eq!(
23285        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
23286        32usize,
23287        "Offset of field: v3_ext_ctx::crl"
23288    );
23289    assert_eq!(
23290        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
23291        40usize,
23292        "Offset of field: v3_ext_ctx::db"
23293    );
23294}
23295impl Default for v3_ext_ctx {
23296    fn default() -> Self {
23297        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23298        unsafe {
23299            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23300            s.assume_init()
23301        }
23302    }
23303}
23304extern "C" {
23305    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_set_ctx"]
23306    pub fn X509V3_set_ctx(
23307        ctx: *mut X509V3_CTX,
23308        issuer: *const X509,
23309        subject: *const X509,
23310        req: *const X509_REQ,
23311        crl: *const X509_CRL,
23312        flags: ::std::os::raw::c_int,
23313    );
23314}
23315extern "C" {
23316    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_set_nconf"]
23317    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
23318}
23319extern "C" {
23320    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_nconf"]
23321    pub fn X509V3_EXT_nconf(
23322        conf: *const CONF,
23323        ctx: *const X509V3_CTX,
23324        name: *const ::std::os::raw::c_char,
23325        value: *const ::std::os::raw::c_char,
23326    ) -> *mut X509_EXTENSION;
23327}
23328extern "C" {
23329    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_nconf_nid"]
23330    pub fn X509V3_EXT_nconf_nid(
23331        conf: *const CONF,
23332        ctx: *const X509V3_CTX,
23333        ext_nid: ::std::os::raw::c_int,
23334        value: *const ::std::os::raw::c_char,
23335    ) -> *mut X509_EXTENSION;
23336}
23337extern "C" {
23338    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_conf_nid"]
23339    pub fn X509V3_EXT_conf_nid(
23340        conf: *mut lhash_st_CONF_VALUE,
23341        ctx: *const X509V3_CTX,
23342        ext_nid: ::std::os::raw::c_int,
23343        value: *const ::std::os::raw::c_char,
23344    ) -> *mut X509_EXTENSION;
23345}
23346extern "C" {
23347    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_add_nconf_sk"]
23348    pub fn X509V3_EXT_add_nconf_sk(
23349        conf: *const CONF,
23350        ctx: *const X509V3_CTX,
23351        section: *const ::std::os::raw::c_char,
23352        sk: *mut *mut stack_st_X509_EXTENSION,
23353    ) -> ::std::os::raw::c_int;
23354}
23355extern "C" {
23356    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_add_nconf"]
23357    pub fn X509V3_EXT_add_nconf(
23358        conf: *const CONF,
23359        ctx: *const X509V3_CTX,
23360        section: *const ::std::os::raw::c_char,
23361        cert: *mut X509,
23362    ) -> ::std::os::raw::c_int;
23363}
23364extern "C" {
23365    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_REQ_add_nconf"]
23366    pub fn X509V3_EXT_REQ_add_nconf(
23367        conf: *const CONF,
23368        ctx: *const X509V3_CTX,
23369        section: *const ::std::os::raw::c_char,
23370        req: *mut X509_REQ,
23371    ) -> ::std::os::raw::c_int;
23372}
23373extern "C" {
23374    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_CRL_add_nconf"]
23375    pub fn X509V3_EXT_CRL_add_nconf(
23376        conf: *const CONF,
23377        ctx: *const X509V3_CTX,
23378        section: *const ::std::os::raw::c_char,
23379        crl: *mut X509_CRL,
23380    ) -> ::std::os::raw::c_int;
23381}
23382extern "C" {
23383    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_EXT_conf"]
23384    pub fn X509V3_EXT_conf(
23385        conf: *mut lhash_st_CONF_VALUE,
23386        ctx: *mut X509V3_CTX,
23387        name: *const ::std::os::raw::c_char,
23388        value: *const ::std::os::raw::c_char,
23389    ) -> *mut X509_EXTENSION;
23390}
23391extern "C" {
23392    #[link_name = "\u{1}aws_lc_0_38_0_i2s_ASN1_OCTET_STRING"]
23393    pub fn i2s_ASN1_OCTET_STRING(
23394        method: *const X509V3_EXT_METHOD,
23395        oct: *const ASN1_OCTET_STRING,
23396    ) -> *mut ::std::os::raw::c_char;
23397}
23398extern "C" {
23399    #[link_name = "\u{1}aws_lc_0_38_0_s2i_ASN1_OCTET_STRING"]
23400    pub fn s2i_ASN1_OCTET_STRING(
23401        method: *const X509V3_EXT_METHOD,
23402        ctx: *const X509V3_CTX,
23403        str_: *const ::std::os::raw::c_char,
23404    ) -> *mut ASN1_OCTET_STRING;
23405}
23406extern "C" {
23407    #[link_name = "\u{1}aws_lc_0_38_0_i2s_ASN1_INTEGER"]
23408    pub fn i2s_ASN1_INTEGER(
23409        method: *const X509V3_EXT_METHOD,
23410        aint: *const ASN1_INTEGER,
23411    ) -> *mut ::std::os::raw::c_char;
23412}
23413extern "C" {
23414    #[link_name = "\u{1}aws_lc_0_38_0_s2i_ASN1_INTEGER"]
23415    pub fn s2i_ASN1_INTEGER(
23416        method: *const X509V3_EXT_METHOD,
23417        value: *const ::std::os::raw::c_char,
23418    ) -> *mut ASN1_INTEGER;
23419}
23420extern "C" {
23421    #[link_name = "\u{1}aws_lc_0_38_0_i2s_ASN1_ENUMERATED"]
23422    pub fn i2s_ASN1_ENUMERATED(
23423        method: *const X509V3_EXT_METHOD,
23424        aint: *const ASN1_ENUMERATED,
23425    ) -> *mut ::std::os::raw::c_char;
23426}
23427extern "C" {
23428    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_conf_free"]
23429    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
23430}
23431extern "C" {
23432    #[link_name = "\u{1}aws_lc_0_38_0_i2v_GENERAL_NAME"]
23433    pub fn i2v_GENERAL_NAME(
23434        method: *const X509V3_EXT_METHOD,
23435        gen_: *const GENERAL_NAME,
23436        ret: *mut stack_st_CONF_VALUE,
23437    ) -> *mut stack_st_CONF_VALUE;
23438}
23439extern "C" {
23440    #[link_name = "\u{1}aws_lc_0_38_0_i2v_GENERAL_NAMES"]
23441    pub fn i2v_GENERAL_NAMES(
23442        method: *const X509V3_EXT_METHOD,
23443        gen_: *const GENERAL_NAMES,
23444        extlist: *mut stack_st_CONF_VALUE,
23445    ) -> *mut stack_st_CONF_VALUE;
23446}
23447extern "C" {
23448    #[link_name = "\u{1}aws_lc_0_38_0_a2i_IPADDRESS"]
23449    pub fn a2i_IPADDRESS(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23450}
23451extern "C" {
23452    #[link_name = "\u{1}aws_lc_0_38_0_a2i_IPADDRESS_NC"]
23453    pub fn a2i_IPADDRESS_NC(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23454}
23455extern "C" {
23456    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_notBefore"]
23457    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
23458}
23459extern "C" {
23460    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_notAfter"]
23461    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
23462}
23463extern "C" {
23464    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_notBefore"]
23465    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23466}
23467extern "C" {
23468    #[link_name = "\u{1}aws_lc_0_38_0_X509_set_notAfter"]
23469    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23470}
23471extern "C" {
23472    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_lastUpdate"]
23473    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23474}
23475extern "C" {
23476    #[link_name = "\u{1}aws_lc_0_38_0_X509_CRL_get_nextUpdate"]
23477    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23478}
23479extern "C" {
23480    #[link_name = "\u{1}aws_lc_0_38_0_X509_get_serialNumber"]
23481    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
23482}
23483extern "C" {
23484    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get_text_by_OBJ"]
23485    pub fn X509_NAME_get_text_by_OBJ(
23486        name: *const X509_NAME,
23487        obj: *const ASN1_OBJECT,
23488        buf: *mut ::std::os::raw::c_char,
23489        len: ::std::os::raw::c_int,
23490    ) -> ::std::os::raw::c_int;
23491}
23492extern "C" {
23493    #[link_name = "\u{1}aws_lc_0_38_0_X509_NAME_get_text_by_NID"]
23494    pub fn X509_NAME_get_text_by_NID(
23495        name: *const X509_NAME,
23496        nid: ::std::os::raw::c_int,
23497        buf: *mut ::std::os::raw::c_char,
23498        len: ::std::os::raw::c_int,
23499    ) -> ::std::os::raw::c_int;
23500}
23501extern "C" {
23502    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get0_parent_ctx"]
23503    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE_CTX;
23504}
23505extern "C" {
23506    #[link_name = "\u{1}aws_lc_0_38_0_X509_LOOKUP_free"]
23507    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
23508}
23509extern "C" {
23510    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_cleanup"]
23511    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
23512}
23513extern "C" {
23514    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_add_standard_extensions"]
23515    pub fn X509V3_add_standard_extensions() -> ::std::os::raw::c_int;
23516}
23517extern "C" {
23518    #[link_name = "\u{1}aws_lc_0_38_0_X509V3_parse_list"]
23519    pub fn X509V3_parse_list(line: *const ::std::os::raw::c_char) -> *mut stack_st_CONF_VALUE;
23520}
23521extern "C" {
23522    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_chain"]
23523    pub fn X509_STORE_CTX_get_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
23524}
23525extern "C" {
23526    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_trusted_stack"]
23527    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23528}
23529pub type X509_STORE_CTX_verify_cb = ::std::option::Option<
23530    unsafe extern "C" fn(
23531        arg1: ::std::os::raw::c_int,
23532        arg2: *mut X509_STORE_CTX,
23533    ) -> ::std::os::raw::c_int,
23534>;
23535extern "C" {
23536    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_verify_cb"]
23537    pub fn X509_STORE_CTX_set_verify_cb(
23538        ctx: *mut X509_STORE_CTX,
23539        verify_cb: ::std::option::Option<
23540            unsafe extern "C" fn(
23541                ok: ::std::os::raw::c_int,
23542                ctx: *mut X509_STORE_CTX,
23543            ) -> ::std::os::raw::c_int,
23544        >,
23545    );
23546}
23547extern "C" {
23548    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get_verify_cb"]
23549    pub fn X509_STORE_get_verify_cb(ctx: *mut X509_STORE) -> X509_STORE_CTX_verify_cb;
23550}
23551extern "C" {
23552    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_verify_cb"]
23553    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
23554}
23555pub type X509_STORE_CTX_get_crl_fn = ::std::option::Option<
23556    unsafe extern "C" fn(
23557        ctx: *mut X509_STORE_CTX,
23558        crl: *mut *mut X509_CRL,
23559        x: *mut X509,
23560    ) -> ::std::os::raw::c_int,
23561>;
23562pub type X509_STORE_CTX_check_crl_fn = ::std::option::Option<
23563    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, crl: *mut X509_CRL) -> ::std::os::raw::c_int,
23564>;
23565extern "C" {
23566    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_get_crl"]
23567    pub fn X509_STORE_set_get_crl(store: *mut X509_STORE, get_crl: X509_STORE_CTX_get_crl_fn);
23568}
23569extern "C" {
23570    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_set_check_crl"]
23571    pub fn X509_STORE_set_check_crl(store: *mut X509_STORE, check_crl: X509_STORE_CTX_check_crl_fn);
23572}
23573extern "C" {
23574    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set_chain"]
23575    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23576}
23577extern "C" {
23578    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_set0_untrusted"]
23579    pub fn X509_STORE_CTX_set0_untrusted(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23580}
23581#[repr(C)]
23582#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23583pub struct x509_purpose_st {
23584    pub purpose: ::std::os::raw::c_int,
23585    pub trust: ::std::os::raw::c_int,
23586    pub flags: ::std::os::raw::c_int,
23587    pub check_purpose: ::std::option::Option<
23588        unsafe extern "C" fn(
23589            arg1: *const x509_purpose_st,
23590            arg2: *const X509,
23591            arg3: ::std::os::raw::c_int,
23592        ) -> ::std::os::raw::c_int,
23593    >,
23594    pub name: *mut ::std::os::raw::c_char,
23595    pub sname: *mut ::std::os::raw::c_char,
23596    pub usr_data: *mut ::std::os::raw::c_void,
23597}
23598#[test]
23599fn bindgen_test_layout_x509_purpose_st() {
23600    const UNINIT: ::std::mem::MaybeUninit<x509_purpose_st> = ::std::mem::MaybeUninit::uninit();
23601    let ptr = UNINIT.as_ptr();
23602    assert_eq!(
23603        ::std::mem::size_of::<x509_purpose_st>(),
23604        48usize,
23605        "Size of x509_purpose_st"
23606    );
23607    assert_eq!(
23608        ::std::mem::align_of::<x509_purpose_st>(),
23609        8usize,
23610        "Alignment of x509_purpose_st"
23611    );
23612    assert_eq!(
23613        unsafe { ::std::ptr::addr_of!((*ptr).purpose) as usize - ptr as usize },
23614        0usize,
23615        "Offset of field: x509_purpose_st::purpose"
23616    );
23617    assert_eq!(
23618        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23619        4usize,
23620        "Offset of field: x509_purpose_st::trust"
23621    );
23622    assert_eq!(
23623        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23624        8usize,
23625        "Offset of field: x509_purpose_st::flags"
23626    );
23627    assert_eq!(
23628        unsafe { ::std::ptr::addr_of!((*ptr).check_purpose) as usize - ptr as usize },
23629        16usize,
23630        "Offset of field: x509_purpose_st::check_purpose"
23631    );
23632    assert_eq!(
23633        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23634        24usize,
23635        "Offset of field: x509_purpose_st::name"
23636    );
23637    assert_eq!(
23638        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
23639        32usize,
23640        "Offset of field: x509_purpose_st::sname"
23641    );
23642    assert_eq!(
23643        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23644        40usize,
23645        "Offset of field: x509_purpose_st::usr_data"
23646    );
23647}
23648impl Default for x509_purpose_st {
23649    fn default() -> Self {
23650        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23651        unsafe {
23652            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23653            s.assume_init()
23654        }
23655    }
23656}
23657pub type X509_PURPOSE = x509_purpose_st;
23658#[repr(C)]
23659#[derive(Debug, Copy, Clone)]
23660pub struct stack_st_X509_PURPOSE {
23661    _unused: [u8; 0],
23662}
23663pub type sk_X509_PURPOSE_free_func =
23664    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_PURPOSE)>;
23665pub type sk_X509_PURPOSE_copy_func =
23666    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_PURPOSE) -> *mut X509_PURPOSE>;
23667pub type sk_X509_PURPOSE_cmp_func = ::std::option::Option<
23668    unsafe extern "C" fn(
23669        arg1: *const *const X509_PURPOSE,
23670        arg2: *const *const X509_PURPOSE,
23671    ) -> ::std::os::raw::c_int,
23672>;
23673pub type sk_X509_PURPOSE_delete_if_func = ::std::option::Option<
23674    unsafe extern "C" fn(
23675        arg1: *mut X509_PURPOSE,
23676        arg2: *mut ::std::os::raw::c_void,
23677    ) -> ::std::os::raw::c_int,
23678>;
23679extern "C" {
23680    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_get0_objects"]
23681    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
23682}
23683extern "C" {
23684    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get_by_sname"]
23685    pub fn X509_PURPOSE_get_by_sname(sname: *const ::std::os::raw::c_char)
23686        -> ::std::os::raw::c_int;
23687}
23688extern "C" {
23689    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get0"]
23690    pub fn X509_PURPOSE_get0(id: ::std::os::raw::c_int) -> *const X509_PURPOSE;
23691}
23692extern "C" {
23693    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get_id"]
23694    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::std::os::raw::c_int;
23695}
23696#[repr(C)]
23697#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23698pub struct X509_algor_st {
23699    pub algorithm: *mut ASN1_OBJECT,
23700    pub parameter: *mut ASN1_TYPE,
23701}
23702#[test]
23703fn bindgen_test_layout_X509_algor_st() {
23704    const UNINIT: ::std::mem::MaybeUninit<X509_algor_st> = ::std::mem::MaybeUninit::uninit();
23705    let ptr = UNINIT.as_ptr();
23706    assert_eq!(
23707        ::std::mem::size_of::<X509_algor_st>(),
23708        16usize,
23709        "Size of X509_algor_st"
23710    );
23711    assert_eq!(
23712        ::std::mem::align_of::<X509_algor_st>(),
23713        8usize,
23714        "Alignment of X509_algor_st"
23715    );
23716    assert_eq!(
23717        unsafe { ::std::ptr::addr_of!((*ptr).algorithm) as usize - ptr as usize },
23718        0usize,
23719        "Offset of field: X509_algor_st::algorithm"
23720    );
23721    assert_eq!(
23722        unsafe { ::std::ptr::addr_of!((*ptr).parameter) as usize - ptr as usize },
23723        8usize,
23724        "Offset of field: X509_algor_st::parameter"
23725    );
23726}
23727impl Default for X509_algor_st {
23728    fn default() -> Self {
23729        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23730        unsafe {
23731            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23732            s.assume_init()
23733        }
23734    }
23735}
23736#[repr(C)]
23737#[derive(Debug, Copy, Clone)]
23738pub struct stack_st_DIST_POINT {
23739    _unused: [u8; 0],
23740}
23741#[repr(C)]
23742#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23743pub struct x509_trust_st {
23744    pub trust: ::std::os::raw::c_int,
23745    pub flags: ::std::os::raw::c_int,
23746    pub check_trust: ::std::option::Option<
23747        unsafe extern "C" fn(arg1: *const X509_TRUST, arg2: *mut X509) -> ::std::os::raw::c_int,
23748    >,
23749    pub name: *mut ::std::os::raw::c_char,
23750    pub arg1: ::std::os::raw::c_int,
23751    pub arg2: *mut ::std::os::raw::c_void,
23752}
23753#[test]
23754fn bindgen_test_layout_x509_trust_st() {
23755    const UNINIT: ::std::mem::MaybeUninit<x509_trust_st> = ::std::mem::MaybeUninit::uninit();
23756    let ptr = UNINIT.as_ptr();
23757    assert_eq!(
23758        ::std::mem::size_of::<x509_trust_st>(),
23759        40usize,
23760        "Size of x509_trust_st"
23761    );
23762    assert_eq!(
23763        ::std::mem::align_of::<x509_trust_st>(),
23764        8usize,
23765        "Alignment of x509_trust_st"
23766    );
23767    assert_eq!(
23768        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23769        0usize,
23770        "Offset of field: x509_trust_st::trust"
23771    );
23772    assert_eq!(
23773        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23774        4usize,
23775        "Offset of field: x509_trust_st::flags"
23776    );
23777    assert_eq!(
23778        unsafe { ::std::ptr::addr_of!((*ptr).check_trust) as usize - ptr as usize },
23779        8usize,
23780        "Offset of field: x509_trust_st::check_trust"
23781    );
23782    assert_eq!(
23783        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23784        16usize,
23785        "Offset of field: x509_trust_st::name"
23786    );
23787    assert_eq!(
23788        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
23789        24usize,
23790        "Offset of field: x509_trust_st::arg1"
23791    );
23792    assert_eq!(
23793        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
23794        32usize,
23795        "Offset of field: x509_trust_st::arg2"
23796    );
23797}
23798impl Default for x509_trust_st {
23799    fn default() -> Self {
23800        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23801        unsafe {
23802            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23803            s.assume_init()
23804        }
23805    }
23806}
23807#[repr(C)]
23808#[derive(Debug, Copy, Clone)]
23809pub struct stack_st_X509_TRUST {
23810    _unused: [u8; 0],
23811}
23812pub type sk_X509_TRUST_free_func =
23813    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_TRUST)>;
23814pub type sk_X509_TRUST_copy_func =
23815    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_TRUST) -> *mut X509_TRUST>;
23816pub type sk_X509_TRUST_cmp_func = ::std::option::Option<
23817    unsafe extern "C" fn(
23818        arg1: *const *const X509_TRUST,
23819        arg2: *const *const X509_TRUST,
23820    ) -> ::std::os::raw::c_int,
23821>;
23822pub type sk_X509_TRUST_delete_if_func = ::std::option::Option<
23823    unsafe extern "C" fn(
23824        arg1: *mut X509_TRUST,
23825        arg2: *mut ::std::os::raw::c_void,
23826    ) -> ::std::os::raw::c_int,
23827>;
23828extern "C" {
23829    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_set"]
23830    pub fn X509_TRUST_set(
23831        t: *mut ::std::os::raw::c_int,
23832        trust: ::std::os::raw::c_int,
23833    ) -> ::std::os::raw::c_int;
23834}
23835extern "C" {
23836    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get_count"]
23837    pub fn X509_TRUST_get_count() -> ::std::os::raw::c_int;
23838}
23839extern "C" {
23840    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get0"]
23841    pub fn X509_TRUST_get0(idx: ::std::os::raw::c_int) -> *const X509_TRUST;
23842}
23843extern "C" {
23844    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get_by_id"]
23845    pub fn X509_TRUST_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
23846}
23847extern "C" {
23848    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get_flags"]
23849    pub fn X509_TRUST_get_flags(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23850}
23851extern "C" {
23852    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get0_name"]
23853    pub fn X509_TRUST_get0_name(xp: *const X509_TRUST) -> *mut ::std::os::raw::c_char;
23854}
23855extern "C" {
23856    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_get_trust"]
23857    pub fn X509_TRUST_get_trust(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23858}
23859extern "C" {
23860    #[link_name = "\u{1}aws_lc_0_38_0_X509_TRUST_cleanup"]
23861    pub fn X509_TRUST_cleanup();
23862}
23863extern "C" {
23864    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_get0_X509_CRL"]
23865    pub fn X509_OBJECT_get0_X509_CRL(a: *const X509_OBJECT) -> *mut X509_CRL;
23866}
23867extern "C" {
23868    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_set1_X509"]
23869    pub fn X509_OBJECT_set1_X509(a: *mut X509_OBJECT, obj: *mut X509) -> ::std::os::raw::c_int;
23870}
23871extern "C" {
23872    #[link_name = "\u{1}aws_lc_0_38_0_X509_OBJECT_set1_X509_CRL"]
23873    pub fn X509_OBJECT_set1_X509_CRL(
23874        a: *mut X509_OBJECT,
23875        obj: *mut X509_CRL,
23876    ) -> ::std::os::raw::c_int;
23877}
23878extern "C" {
23879    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_lock"]
23880    pub fn X509_STORE_lock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23881}
23882extern "C" {
23883    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_unlock"]
23884    pub fn X509_STORE_unlock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23885}
23886extern "C" {
23887    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get1_certs"]
23888    pub fn X509_STORE_CTX_get1_certs(
23889        st: *mut X509_STORE_CTX,
23890        nm: *mut X509_NAME,
23891    ) -> *mut stack_st_X509;
23892}
23893extern "C" {
23894    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get1_crls"]
23895    pub fn X509_STORE_CTX_get1_crls(
23896        st: *mut X509_STORE_CTX,
23897        nm: *mut X509_NAME,
23898    ) -> *mut stack_st_X509_CRL;
23899}
23900extern "C" {
23901    #[link_name = "\u{1}aws_lc_0_38_0_X509_STORE_CTX_get_by_subject"]
23902    pub fn X509_STORE_CTX_get_by_subject(
23903        vs: *mut X509_STORE_CTX,
23904        type_: ::std::os::raw::c_int,
23905        name: *mut X509_NAME,
23906        ret: *mut X509_OBJECT,
23907    ) -> ::std::os::raw::c_int;
23908}
23909#[repr(C)]
23910#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23911pub struct BASIC_CONSTRAINTS_st {
23912    pub ca: ASN1_BOOLEAN,
23913    pub pathlen: *mut ASN1_INTEGER,
23914}
23915#[test]
23916fn bindgen_test_layout_BASIC_CONSTRAINTS_st() {
23917    const UNINIT: ::std::mem::MaybeUninit<BASIC_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
23918    let ptr = UNINIT.as_ptr();
23919    assert_eq!(
23920        ::std::mem::size_of::<BASIC_CONSTRAINTS_st>(),
23921        16usize,
23922        "Size of BASIC_CONSTRAINTS_st"
23923    );
23924    assert_eq!(
23925        ::std::mem::align_of::<BASIC_CONSTRAINTS_st>(),
23926        8usize,
23927        "Alignment of BASIC_CONSTRAINTS_st"
23928    );
23929    assert_eq!(
23930        unsafe { ::std::ptr::addr_of!((*ptr).ca) as usize - ptr as usize },
23931        0usize,
23932        "Offset of field: BASIC_CONSTRAINTS_st::ca"
23933    );
23934    assert_eq!(
23935        unsafe { ::std::ptr::addr_of!((*ptr).pathlen) as usize - ptr as usize },
23936        8usize,
23937        "Offset of field: BASIC_CONSTRAINTS_st::pathlen"
23938    );
23939}
23940impl Default for BASIC_CONSTRAINTS_st {
23941    fn default() -> Self {
23942        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23943        unsafe {
23944            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23945            s.assume_init()
23946        }
23947    }
23948}
23949#[repr(C)]
23950#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23951pub struct ACCESS_DESCRIPTION_st {
23952    pub method: *mut ASN1_OBJECT,
23953    pub location: *mut GENERAL_NAME,
23954}
23955#[test]
23956fn bindgen_test_layout_ACCESS_DESCRIPTION_st() {
23957    const UNINIT: ::std::mem::MaybeUninit<ACCESS_DESCRIPTION_st> =
23958        ::std::mem::MaybeUninit::uninit();
23959    let ptr = UNINIT.as_ptr();
23960    assert_eq!(
23961        ::std::mem::size_of::<ACCESS_DESCRIPTION_st>(),
23962        16usize,
23963        "Size of ACCESS_DESCRIPTION_st"
23964    );
23965    assert_eq!(
23966        ::std::mem::align_of::<ACCESS_DESCRIPTION_st>(),
23967        8usize,
23968        "Alignment of ACCESS_DESCRIPTION_st"
23969    );
23970    assert_eq!(
23971        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
23972        0usize,
23973        "Offset of field: ACCESS_DESCRIPTION_st::method"
23974    );
23975    assert_eq!(
23976        unsafe { ::std::ptr::addr_of!((*ptr).location) as usize - ptr as usize },
23977        8usize,
23978        "Offset of field: ACCESS_DESCRIPTION_st::location"
23979    );
23980}
23981impl Default for ACCESS_DESCRIPTION_st {
23982    fn default() -> Self {
23983        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23984        unsafe {
23985            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23986            s.assume_init()
23987        }
23988    }
23989}
23990pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
23991#[repr(C)]
23992#[derive(Debug, Copy, Clone)]
23993pub struct stack_st_ACCESS_DESCRIPTION {
23994    _unused: [u8; 0],
23995}
23996pub type sk_ACCESS_DESCRIPTION_free_func =
23997    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
23998pub type sk_ACCESS_DESCRIPTION_copy_func = ::std::option::Option<
23999    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
24000>;
24001pub type sk_ACCESS_DESCRIPTION_cmp_func = ::std::option::Option<
24002    unsafe extern "C" fn(
24003        arg1: *const *const ACCESS_DESCRIPTION,
24004        arg2: *const *const ACCESS_DESCRIPTION,
24005    ) -> ::std::os::raw::c_int,
24006>;
24007pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::std::option::Option<
24008    unsafe extern "C" fn(
24009        arg1: *mut ACCESS_DESCRIPTION,
24010        arg2: *mut ::std::os::raw::c_void,
24011    ) -> ::std::os::raw::c_int,
24012>;
24013pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
24014pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
24015#[repr(C)]
24016#[derive(Copy, Clone)]
24017pub struct DIST_POINT_NAME_st {
24018    pub type_: ::std::os::raw::c_int,
24019    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
24020    pub dpname: *mut X509_NAME,
24021}
24022#[repr(C)]
24023#[derive(Copy, Clone)]
24024pub union DIST_POINT_NAME_st__bindgen_ty_1 {
24025    pub fullname: *mut GENERAL_NAMES,
24026    pub relativename: *mut stack_st_X509_NAME_ENTRY,
24027}
24028#[test]
24029fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
24030    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st__bindgen_ty_1> =
24031        ::std::mem::MaybeUninit::uninit();
24032    let ptr = UNINIT.as_ptr();
24033    assert_eq!(
24034        ::std::mem::size_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24035        8usize,
24036        "Size of DIST_POINT_NAME_st__bindgen_ty_1"
24037    );
24038    assert_eq!(
24039        ::std::mem::align_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24040        8usize,
24041        "Alignment of DIST_POINT_NAME_st__bindgen_ty_1"
24042    );
24043    assert_eq!(
24044        unsafe { ::std::ptr::addr_of!((*ptr).fullname) as usize - ptr as usize },
24045        0usize,
24046        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::fullname"
24047    );
24048    assert_eq!(
24049        unsafe { ::std::ptr::addr_of!((*ptr).relativename) as usize - ptr as usize },
24050        0usize,
24051        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::relativename"
24052    );
24053}
24054impl Default for DIST_POINT_NAME_st__bindgen_ty_1 {
24055    fn default() -> Self {
24056        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24057        unsafe {
24058            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24059            s.assume_init()
24060        }
24061    }
24062}
24063#[test]
24064fn bindgen_test_layout_DIST_POINT_NAME_st() {
24065    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st> = ::std::mem::MaybeUninit::uninit();
24066    let ptr = UNINIT.as_ptr();
24067    assert_eq!(
24068        ::std::mem::size_of::<DIST_POINT_NAME_st>(),
24069        24usize,
24070        "Size of DIST_POINT_NAME_st"
24071    );
24072    assert_eq!(
24073        ::std::mem::align_of::<DIST_POINT_NAME_st>(),
24074        8usize,
24075        "Alignment of DIST_POINT_NAME_st"
24076    );
24077    assert_eq!(
24078        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
24079        0usize,
24080        "Offset of field: DIST_POINT_NAME_st::type_"
24081    );
24082    assert_eq!(
24083        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
24084        8usize,
24085        "Offset of field: DIST_POINT_NAME_st::name"
24086    );
24087    assert_eq!(
24088        unsafe { ::std::ptr::addr_of!((*ptr).dpname) as usize - ptr as usize },
24089        16usize,
24090        "Offset of field: DIST_POINT_NAME_st::dpname"
24091    );
24092}
24093impl Default for DIST_POINT_NAME_st {
24094    fn default() -> Self {
24095        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24096        unsafe {
24097            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24098            s.assume_init()
24099        }
24100    }
24101}
24102pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
24103#[repr(C)]
24104#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24105pub struct DIST_POINT_st {
24106    pub distpoint: *mut DIST_POINT_NAME,
24107    pub reasons: *mut ASN1_BIT_STRING,
24108    pub CRLissuer: *mut GENERAL_NAMES,
24109}
24110#[test]
24111fn bindgen_test_layout_DIST_POINT_st() {
24112    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_st> = ::std::mem::MaybeUninit::uninit();
24113    let ptr = UNINIT.as_ptr();
24114    assert_eq!(
24115        ::std::mem::size_of::<DIST_POINT_st>(),
24116        24usize,
24117        "Size of DIST_POINT_st"
24118    );
24119    assert_eq!(
24120        ::std::mem::align_of::<DIST_POINT_st>(),
24121        8usize,
24122        "Alignment of DIST_POINT_st"
24123    );
24124    assert_eq!(
24125        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24126        0usize,
24127        "Offset of field: DIST_POINT_st::distpoint"
24128    );
24129    assert_eq!(
24130        unsafe { ::std::ptr::addr_of!((*ptr).reasons) as usize - ptr as usize },
24131        8usize,
24132        "Offset of field: DIST_POINT_st::reasons"
24133    );
24134    assert_eq!(
24135        unsafe { ::std::ptr::addr_of!((*ptr).CRLissuer) as usize - ptr as usize },
24136        16usize,
24137        "Offset of field: DIST_POINT_st::CRLissuer"
24138    );
24139}
24140impl Default for DIST_POINT_st {
24141    fn default() -> Self {
24142        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24143        unsafe {
24144            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24145            s.assume_init()
24146        }
24147    }
24148}
24149pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
24150pub type sk_DIST_POINT_free_func =
24151    ::std::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
24152pub type sk_DIST_POINT_copy_func =
24153    ::std::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
24154pub type sk_DIST_POINT_cmp_func = ::std::option::Option<
24155    unsafe extern "C" fn(
24156        arg1: *const *const DIST_POINT,
24157        arg2: *const *const DIST_POINT,
24158    ) -> ::std::os::raw::c_int,
24159>;
24160pub type sk_DIST_POINT_delete_if_func = ::std::option::Option<
24161    unsafe extern "C" fn(
24162        arg1: *mut DIST_POINT,
24163        arg2: *mut ::std::os::raw::c_void,
24164    ) -> ::std::os::raw::c_int,
24165>;
24166#[repr(C)]
24167#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24168pub struct AUTHORITY_KEYID_st {
24169    pub keyid: *mut ASN1_OCTET_STRING,
24170    pub issuer: *mut GENERAL_NAMES,
24171    pub serial: *mut ASN1_INTEGER,
24172}
24173#[test]
24174fn bindgen_test_layout_AUTHORITY_KEYID_st() {
24175    const UNINIT: ::std::mem::MaybeUninit<AUTHORITY_KEYID_st> = ::std::mem::MaybeUninit::uninit();
24176    let ptr = UNINIT.as_ptr();
24177    assert_eq!(
24178        ::std::mem::size_of::<AUTHORITY_KEYID_st>(),
24179        24usize,
24180        "Size of AUTHORITY_KEYID_st"
24181    );
24182    assert_eq!(
24183        ::std::mem::align_of::<AUTHORITY_KEYID_st>(),
24184        8usize,
24185        "Alignment of AUTHORITY_KEYID_st"
24186    );
24187    assert_eq!(
24188        unsafe { ::std::ptr::addr_of!((*ptr).keyid) as usize - ptr as usize },
24189        0usize,
24190        "Offset of field: AUTHORITY_KEYID_st::keyid"
24191    );
24192    assert_eq!(
24193        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
24194        8usize,
24195        "Offset of field: AUTHORITY_KEYID_st::issuer"
24196    );
24197    assert_eq!(
24198        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
24199        16usize,
24200        "Offset of field: AUTHORITY_KEYID_st::serial"
24201    );
24202}
24203impl Default for AUTHORITY_KEYID_st {
24204    fn default() -> Self {
24205        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24206        unsafe {
24207            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24208            s.assume_init()
24209        }
24210    }
24211}
24212#[repr(C)]
24213#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24214pub struct NOTICEREF_st {
24215    pub organization: *mut ASN1_STRING,
24216    pub noticenos: *mut stack_st_ASN1_INTEGER,
24217}
24218#[test]
24219fn bindgen_test_layout_NOTICEREF_st() {
24220    const UNINIT: ::std::mem::MaybeUninit<NOTICEREF_st> = ::std::mem::MaybeUninit::uninit();
24221    let ptr = UNINIT.as_ptr();
24222    assert_eq!(
24223        ::std::mem::size_of::<NOTICEREF_st>(),
24224        16usize,
24225        "Size of NOTICEREF_st"
24226    );
24227    assert_eq!(
24228        ::std::mem::align_of::<NOTICEREF_st>(),
24229        8usize,
24230        "Alignment of NOTICEREF_st"
24231    );
24232    assert_eq!(
24233        unsafe { ::std::ptr::addr_of!((*ptr).organization) as usize - ptr as usize },
24234        0usize,
24235        "Offset of field: NOTICEREF_st::organization"
24236    );
24237    assert_eq!(
24238        unsafe { ::std::ptr::addr_of!((*ptr).noticenos) as usize - ptr as usize },
24239        8usize,
24240        "Offset of field: NOTICEREF_st::noticenos"
24241    );
24242}
24243impl Default for NOTICEREF_st {
24244    fn default() -> Self {
24245        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24246        unsafe {
24247            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24248            s.assume_init()
24249        }
24250    }
24251}
24252pub type NOTICEREF = NOTICEREF_st;
24253#[repr(C)]
24254#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24255pub struct USERNOTICE_st {
24256    pub noticeref: *mut NOTICEREF,
24257    pub exptext: *mut ASN1_STRING,
24258}
24259#[test]
24260fn bindgen_test_layout_USERNOTICE_st() {
24261    const UNINIT: ::std::mem::MaybeUninit<USERNOTICE_st> = ::std::mem::MaybeUninit::uninit();
24262    let ptr = UNINIT.as_ptr();
24263    assert_eq!(
24264        ::std::mem::size_of::<USERNOTICE_st>(),
24265        16usize,
24266        "Size of USERNOTICE_st"
24267    );
24268    assert_eq!(
24269        ::std::mem::align_of::<USERNOTICE_st>(),
24270        8usize,
24271        "Alignment of USERNOTICE_st"
24272    );
24273    assert_eq!(
24274        unsafe { ::std::ptr::addr_of!((*ptr).noticeref) as usize - ptr as usize },
24275        0usize,
24276        "Offset of field: USERNOTICE_st::noticeref"
24277    );
24278    assert_eq!(
24279        unsafe { ::std::ptr::addr_of!((*ptr).exptext) as usize - ptr as usize },
24280        8usize,
24281        "Offset of field: USERNOTICE_st::exptext"
24282    );
24283}
24284impl Default for USERNOTICE_st {
24285    fn default() -> Self {
24286        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24287        unsafe {
24288            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24289            s.assume_init()
24290        }
24291    }
24292}
24293pub type USERNOTICE = USERNOTICE_st;
24294#[repr(C)]
24295#[derive(Copy, Clone)]
24296pub struct POLICYQUALINFO_st {
24297    pub pqualid: *mut ASN1_OBJECT,
24298    pub d: POLICYQUALINFO_st__bindgen_ty_1,
24299}
24300#[repr(C)]
24301#[derive(Copy, Clone)]
24302pub union POLICYQUALINFO_st__bindgen_ty_1 {
24303    pub cpsuri: *mut ASN1_IA5STRING,
24304    pub usernotice: *mut USERNOTICE,
24305    pub other: *mut ASN1_TYPE,
24306}
24307#[test]
24308fn bindgen_test_layout_POLICYQUALINFO_st__bindgen_ty_1() {
24309    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st__bindgen_ty_1> =
24310        ::std::mem::MaybeUninit::uninit();
24311    let ptr = UNINIT.as_ptr();
24312    assert_eq!(
24313        ::std::mem::size_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24314        8usize,
24315        "Size of POLICYQUALINFO_st__bindgen_ty_1"
24316    );
24317    assert_eq!(
24318        ::std::mem::align_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24319        8usize,
24320        "Alignment of POLICYQUALINFO_st__bindgen_ty_1"
24321    );
24322    assert_eq!(
24323        unsafe { ::std::ptr::addr_of!((*ptr).cpsuri) as usize - ptr as usize },
24324        0usize,
24325        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::cpsuri"
24326    );
24327    assert_eq!(
24328        unsafe { ::std::ptr::addr_of!((*ptr).usernotice) as usize - ptr as usize },
24329        0usize,
24330        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::usernotice"
24331    );
24332    assert_eq!(
24333        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
24334        0usize,
24335        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::other"
24336    );
24337}
24338impl Default for POLICYQUALINFO_st__bindgen_ty_1 {
24339    fn default() -> Self {
24340        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24341        unsafe {
24342            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24343            s.assume_init()
24344        }
24345    }
24346}
24347#[test]
24348fn bindgen_test_layout_POLICYQUALINFO_st() {
24349    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st> = ::std::mem::MaybeUninit::uninit();
24350    let ptr = UNINIT.as_ptr();
24351    assert_eq!(
24352        ::std::mem::size_of::<POLICYQUALINFO_st>(),
24353        16usize,
24354        "Size of POLICYQUALINFO_st"
24355    );
24356    assert_eq!(
24357        ::std::mem::align_of::<POLICYQUALINFO_st>(),
24358        8usize,
24359        "Alignment of POLICYQUALINFO_st"
24360    );
24361    assert_eq!(
24362        unsafe { ::std::ptr::addr_of!((*ptr).pqualid) as usize - ptr as usize },
24363        0usize,
24364        "Offset of field: POLICYQUALINFO_st::pqualid"
24365    );
24366    assert_eq!(
24367        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
24368        8usize,
24369        "Offset of field: POLICYQUALINFO_st::d"
24370    );
24371}
24372impl Default for POLICYQUALINFO_st {
24373    fn default() -> Self {
24374        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24375        unsafe {
24376            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24377            s.assume_init()
24378        }
24379    }
24380}
24381pub type POLICYQUALINFO = POLICYQUALINFO_st;
24382#[repr(C)]
24383#[derive(Debug, Copy, Clone)]
24384pub struct stack_st_POLICYQUALINFO {
24385    _unused: [u8; 0],
24386}
24387pub type sk_POLICYQUALINFO_free_func =
24388    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
24389pub type sk_POLICYQUALINFO_copy_func =
24390    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO>;
24391pub type sk_POLICYQUALINFO_cmp_func = ::std::option::Option<
24392    unsafe extern "C" fn(
24393        arg1: *const *const POLICYQUALINFO,
24394        arg2: *const *const POLICYQUALINFO,
24395    ) -> ::std::os::raw::c_int,
24396>;
24397pub type sk_POLICYQUALINFO_delete_if_func = ::std::option::Option<
24398    unsafe extern "C" fn(
24399        arg1: *mut POLICYQUALINFO,
24400        arg2: *mut ::std::os::raw::c_void,
24401    ) -> ::std::os::raw::c_int,
24402>;
24403#[repr(C)]
24404#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24405pub struct POLICYINFO_st {
24406    pub policyid: *mut ASN1_OBJECT,
24407    pub qualifiers: *mut stack_st_POLICYQUALINFO,
24408}
24409#[test]
24410fn bindgen_test_layout_POLICYINFO_st() {
24411    const UNINIT: ::std::mem::MaybeUninit<POLICYINFO_st> = ::std::mem::MaybeUninit::uninit();
24412    let ptr = UNINIT.as_ptr();
24413    assert_eq!(
24414        ::std::mem::size_of::<POLICYINFO_st>(),
24415        16usize,
24416        "Size of POLICYINFO_st"
24417    );
24418    assert_eq!(
24419        ::std::mem::align_of::<POLICYINFO_st>(),
24420        8usize,
24421        "Alignment of POLICYINFO_st"
24422    );
24423    assert_eq!(
24424        unsafe { ::std::ptr::addr_of!((*ptr).policyid) as usize - ptr as usize },
24425        0usize,
24426        "Offset of field: POLICYINFO_st::policyid"
24427    );
24428    assert_eq!(
24429        unsafe { ::std::ptr::addr_of!((*ptr).qualifiers) as usize - ptr as usize },
24430        8usize,
24431        "Offset of field: POLICYINFO_st::qualifiers"
24432    );
24433}
24434impl Default for POLICYINFO_st {
24435    fn default() -> Self {
24436        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24437        unsafe {
24438            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24439            s.assume_init()
24440        }
24441    }
24442}
24443pub type POLICYINFO = POLICYINFO_st;
24444#[repr(C)]
24445#[derive(Debug, Copy, Clone)]
24446pub struct stack_st_POLICYINFO {
24447    _unused: [u8; 0],
24448}
24449pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
24450pub type sk_POLICYINFO_free_func =
24451    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
24452pub type sk_POLICYINFO_copy_func =
24453    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
24454pub type sk_POLICYINFO_cmp_func = ::std::option::Option<
24455    unsafe extern "C" fn(
24456        arg1: *const *const POLICYINFO,
24457        arg2: *const *const POLICYINFO,
24458    ) -> ::std::os::raw::c_int,
24459>;
24460pub type sk_POLICYINFO_delete_if_func = ::std::option::Option<
24461    unsafe extern "C" fn(
24462        arg1: *mut POLICYINFO,
24463        arg2: *mut ::std::os::raw::c_void,
24464    ) -> ::std::os::raw::c_int,
24465>;
24466#[repr(C)]
24467#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24468pub struct POLICY_MAPPING_st {
24469    pub issuerDomainPolicy: *mut ASN1_OBJECT,
24470    pub subjectDomainPolicy: *mut ASN1_OBJECT,
24471}
24472#[test]
24473fn bindgen_test_layout_POLICY_MAPPING_st() {
24474    const UNINIT: ::std::mem::MaybeUninit<POLICY_MAPPING_st> = ::std::mem::MaybeUninit::uninit();
24475    let ptr = UNINIT.as_ptr();
24476    assert_eq!(
24477        ::std::mem::size_of::<POLICY_MAPPING_st>(),
24478        16usize,
24479        "Size of POLICY_MAPPING_st"
24480    );
24481    assert_eq!(
24482        ::std::mem::align_of::<POLICY_MAPPING_st>(),
24483        8usize,
24484        "Alignment of POLICY_MAPPING_st"
24485    );
24486    assert_eq!(
24487        unsafe { ::std::ptr::addr_of!((*ptr).issuerDomainPolicy) as usize - ptr as usize },
24488        0usize,
24489        "Offset of field: POLICY_MAPPING_st::issuerDomainPolicy"
24490    );
24491    assert_eq!(
24492        unsafe { ::std::ptr::addr_of!((*ptr).subjectDomainPolicy) as usize - ptr as usize },
24493        8usize,
24494        "Offset of field: POLICY_MAPPING_st::subjectDomainPolicy"
24495    );
24496}
24497impl Default for POLICY_MAPPING_st {
24498    fn default() -> Self {
24499        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24500        unsafe {
24501            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24502            s.assume_init()
24503        }
24504    }
24505}
24506pub type POLICY_MAPPING = POLICY_MAPPING_st;
24507#[repr(C)]
24508#[derive(Debug, Copy, Clone)]
24509pub struct stack_st_POLICY_MAPPING {
24510    _unused: [u8; 0],
24511}
24512pub type sk_POLICY_MAPPING_free_func =
24513    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
24514pub type sk_POLICY_MAPPING_copy_func =
24515    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING>;
24516pub type sk_POLICY_MAPPING_cmp_func = ::std::option::Option<
24517    unsafe extern "C" fn(
24518        arg1: *const *const POLICY_MAPPING,
24519        arg2: *const *const POLICY_MAPPING,
24520    ) -> ::std::os::raw::c_int,
24521>;
24522pub type sk_POLICY_MAPPING_delete_if_func = ::std::option::Option<
24523    unsafe extern "C" fn(
24524        arg1: *mut POLICY_MAPPING,
24525        arg2: *mut ::std::os::raw::c_void,
24526    ) -> ::std::os::raw::c_int,
24527>;
24528pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
24529#[repr(C)]
24530#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24531pub struct GENERAL_SUBTREE_st {
24532    pub base: *mut GENERAL_NAME,
24533    pub minimum: *mut ASN1_INTEGER,
24534    pub maximum: *mut ASN1_INTEGER,
24535}
24536#[test]
24537fn bindgen_test_layout_GENERAL_SUBTREE_st() {
24538    const UNINIT: ::std::mem::MaybeUninit<GENERAL_SUBTREE_st> = ::std::mem::MaybeUninit::uninit();
24539    let ptr = UNINIT.as_ptr();
24540    assert_eq!(
24541        ::std::mem::size_of::<GENERAL_SUBTREE_st>(),
24542        24usize,
24543        "Size of GENERAL_SUBTREE_st"
24544    );
24545    assert_eq!(
24546        ::std::mem::align_of::<GENERAL_SUBTREE_st>(),
24547        8usize,
24548        "Alignment of GENERAL_SUBTREE_st"
24549    );
24550    assert_eq!(
24551        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
24552        0usize,
24553        "Offset of field: GENERAL_SUBTREE_st::base"
24554    );
24555    assert_eq!(
24556        unsafe { ::std::ptr::addr_of!((*ptr).minimum) as usize - ptr as usize },
24557        8usize,
24558        "Offset of field: GENERAL_SUBTREE_st::minimum"
24559    );
24560    assert_eq!(
24561        unsafe { ::std::ptr::addr_of!((*ptr).maximum) as usize - ptr as usize },
24562        16usize,
24563        "Offset of field: GENERAL_SUBTREE_st::maximum"
24564    );
24565}
24566impl Default for GENERAL_SUBTREE_st {
24567    fn default() -> Self {
24568        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24569        unsafe {
24570            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24571            s.assume_init()
24572        }
24573    }
24574}
24575pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
24576#[repr(C)]
24577#[derive(Debug, Copy, Clone)]
24578pub struct stack_st_GENERAL_SUBTREE {
24579    _unused: [u8; 0],
24580}
24581pub type sk_GENERAL_SUBTREE_free_func =
24582    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
24583pub type sk_GENERAL_SUBTREE_copy_func = ::std::option::Option<
24584    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
24585>;
24586pub type sk_GENERAL_SUBTREE_cmp_func = ::std::option::Option<
24587    unsafe extern "C" fn(
24588        arg1: *const *const GENERAL_SUBTREE,
24589        arg2: *const *const GENERAL_SUBTREE,
24590    ) -> ::std::os::raw::c_int,
24591>;
24592pub type sk_GENERAL_SUBTREE_delete_if_func = ::std::option::Option<
24593    unsafe extern "C" fn(
24594        arg1: *mut GENERAL_SUBTREE,
24595        arg2: *mut ::std::os::raw::c_void,
24596    ) -> ::std::os::raw::c_int,
24597>;
24598#[repr(C)]
24599#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24600pub struct NAME_CONSTRAINTS_st {
24601    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24602    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24603}
24604#[test]
24605fn bindgen_test_layout_NAME_CONSTRAINTS_st() {
24606    const UNINIT: ::std::mem::MaybeUninit<NAME_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
24607    let ptr = UNINIT.as_ptr();
24608    assert_eq!(
24609        ::std::mem::size_of::<NAME_CONSTRAINTS_st>(),
24610        16usize,
24611        "Size of NAME_CONSTRAINTS_st"
24612    );
24613    assert_eq!(
24614        ::std::mem::align_of::<NAME_CONSTRAINTS_st>(),
24615        8usize,
24616        "Alignment of NAME_CONSTRAINTS_st"
24617    );
24618    assert_eq!(
24619        unsafe { ::std::ptr::addr_of!((*ptr).permittedSubtrees) as usize - ptr as usize },
24620        0usize,
24621        "Offset of field: NAME_CONSTRAINTS_st::permittedSubtrees"
24622    );
24623    assert_eq!(
24624        unsafe { ::std::ptr::addr_of!((*ptr).excludedSubtrees) as usize - ptr as usize },
24625        8usize,
24626        "Offset of field: NAME_CONSTRAINTS_st::excludedSubtrees"
24627    );
24628}
24629impl Default for NAME_CONSTRAINTS_st {
24630    fn default() -> Self {
24631        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24632        unsafe {
24633            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24634            s.assume_init()
24635        }
24636    }
24637}
24638#[repr(C)]
24639#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24640pub struct POLICY_CONSTRAINTS_st {
24641    pub requireExplicitPolicy: *mut ASN1_INTEGER,
24642    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
24643}
24644#[test]
24645fn bindgen_test_layout_POLICY_CONSTRAINTS_st() {
24646    const UNINIT: ::std::mem::MaybeUninit<POLICY_CONSTRAINTS_st> =
24647        ::std::mem::MaybeUninit::uninit();
24648    let ptr = UNINIT.as_ptr();
24649    assert_eq!(
24650        ::std::mem::size_of::<POLICY_CONSTRAINTS_st>(),
24651        16usize,
24652        "Size of POLICY_CONSTRAINTS_st"
24653    );
24654    assert_eq!(
24655        ::std::mem::align_of::<POLICY_CONSTRAINTS_st>(),
24656        8usize,
24657        "Alignment of POLICY_CONSTRAINTS_st"
24658    );
24659    assert_eq!(
24660        unsafe { ::std::ptr::addr_of!((*ptr).requireExplicitPolicy) as usize - ptr as usize },
24661        0usize,
24662        "Offset of field: POLICY_CONSTRAINTS_st::requireExplicitPolicy"
24663    );
24664    assert_eq!(
24665        unsafe { ::std::ptr::addr_of!((*ptr).inhibitPolicyMapping) as usize - ptr as usize },
24666        8usize,
24667        "Offset of field: POLICY_CONSTRAINTS_st::inhibitPolicyMapping"
24668    );
24669}
24670impl Default for POLICY_CONSTRAINTS_st {
24671    fn default() -> Self {
24672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24673        unsafe {
24674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24675            s.assume_init()
24676        }
24677    }
24678}
24679pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
24680#[repr(C)]
24681#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24682pub struct ISSUING_DIST_POINT_st {
24683    pub distpoint: *mut DIST_POINT_NAME,
24684    pub onlyuser: ASN1_BOOLEAN,
24685    pub onlyCA: ASN1_BOOLEAN,
24686    pub onlysomereasons: *mut ASN1_BIT_STRING,
24687    pub indirectCRL: ASN1_BOOLEAN,
24688    pub onlyattr: ASN1_BOOLEAN,
24689}
24690#[test]
24691fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
24692    const UNINIT: ::std::mem::MaybeUninit<ISSUING_DIST_POINT_st> =
24693        ::std::mem::MaybeUninit::uninit();
24694    let ptr = UNINIT.as_ptr();
24695    assert_eq!(
24696        ::std::mem::size_of::<ISSUING_DIST_POINT_st>(),
24697        32usize,
24698        "Size of ISSUING_DIST_POINT_st"
24699    );
24700    assert_eq!(
24701        ::std::mem::align_of::<ISSUING_DIST_POINT_st>(),
24702        8usize,
24703        "Alignment of ISSUING_DIST_POINT_st"
24704    );
24705    assert_eq!(
24706        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24707        0usize,
24708        "Offset of field: ISSUING_DIST_POINT_st::distpoint"
24709    );
24710    assert_eq!(
24711        unsafe { ::std::ptr::addr_of!((*ptr).onlyuser) as usize - ptr as usize },
24712        8usize,
24713        "Offset of field: ISSUING_DIST_POINT_st::onlyuser"
24714    );
24715    assert_eq!(
24716        unsafe { ::std::ptr::addr_of!((*ptr).onlyCA) as usize - ptr as usize },
24717        12usize,
24718        "Offset of field: ISSUING_DIST_POINT_st::onlyCA"
24719    );
24720    assert_eq!(
24721        unsafe { ::std::ptr::addr_of!((*ptr).onlysomereasons) as usize - ptr as usize },
24722        16usize,
24723        "Offset of field: ISSUING_DIST_POINT_st::onlysomereasons"
24724    );
24725    assert_eq!(
24726        unsafe { ::std::ptr::addr_of!((*ptr).indirectCRL) as usize - ptr as usize },
24727        24usize,
24728        "Offset of field: ISSUING_DIST_POINT_st::indirectCRL"
24729    );
24730    assert_eq!(
24731        unsafe { ::std::ptr::addr_of!((*ptr).onlyattr) as usize - ptr as usize },
24732        28usize,
24733        "Offset of field: ISSUING_DIST_POINT_st::onlyattr"
24734    );
24735}
24736impl Default for ISSUING_DIST_POINT_st {
24737    fn default() -> Self {
24738        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24739        unsafe {
24740            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24741            s.assume_init()
24742        }
24743    }
24744}
24745extern "C" {
24746    #[link_name = "\u{1}aws_lc_0_38_0_BASIC_CONSTRAINTS_it"]
24747    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
24748}
24749extern "C" {
24750    #[link_name = "\u{1}aws_lc_0_38_0_BASIC_CONSTRAINTS_new"]
24751    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
24752}
24753extern "C" {
24754    #[link_name = "\u{1}aws_lc_0_38_0_BASIC_CONSTRAINTS_free"]
24755    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
24756}
24757extern "C" {
24758    #[link_name = "\u{1}aws_lc_0_38_0_d2i_BASIC_CONSTRAINTS"]
24759    pub fn d2i_BASIC_CONSTRAINTS(
24760        out: *mut *mut BASIC_CONSTRAINTS,
24761        inp: *mut *const u8,
24762        len: ::std::os::raw::c_long,
24763    ) -> *mut BASIC_CONSTRAINTS;
24764}
24765extern "C" {
24766    #[link_name = "\u{1}aws_lc_0_38_0_i2d_BASIC_CONSTRAINTS"]
24767    pub fn i2d_BASIC_CONSTRAINTS(
24768        bcons: *const BASIC_CONSTRAINTS,
24769        outp: *mut *mut u8,
24770    ) -> ::std::os::raw::c_int;
24771}
24772extern "C" {
24773    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_KEYID_it"]
24774    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
24775}
24776extern "C" {
24777    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_KEYID_new"]
24778    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
24779}
24780extern "C" {
24781    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_KEYID_free"]
24782    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
24783}
24784extern "C" {
24785    #[link_name = "\u{1}aws_lc_0_38_0_d2i_AUTHORITY_KEYID"]
24786    pub fn d2i_AUTHORITY_KEYID(
24787        out: *mut *mut AUTHORITY_KEYID,
24788        inp: *mut *const u8,
24789        len: ::std::os::raw::c_long,
24790    ) -> *mut AUTHORITY_KEYID;
24791}
24792extern "C" {
24793    #[link_name = "\u{1}aws_lc_0_38_0_i2d_AUTHORITY_KEYID"]
24794    pub fn i2d_AUTHORITY_KEYID(
24795        akid: *mut AUTHORITY_KEYID,
24796        outp: *mut *mut u8,
24797    ) -> ::std::os::raw::c_int;
24798}
24799extern "C" {
24800    #[link_name = "\u{1}aws_lc_0_38_0_EXTENDED_KEY_USAGE_it"]
24801    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
24802}
24803extern "C" {
24804    #[link_name = "\u{1}aws_lc_0_38_0_EXTENDED_KEY_USAGE_new"]
24805    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
24806}
24807extern "C" {
24808    #[link_name = "\u{1}aws_lc_0_38_0_EXTENDED_KEY_USAGE_free"]
24809    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
24810}
24811extern "C" {
24812    #[link_name = "\u{1}aws_lc_0_38_0_d2i_EXTENDED_KEY_USAGE"]
24813    pub fn d2i_EXTENDED_KEY_USAGE(
24814        out: *mut *mut EXTENDED_KEY_USAGE,
24815        inp: *mut *const u8,
24816        len: ::std::os::raw::c_long,
24817    ) -> *mut EXTENDED_KEY_USAGE;
24818}
24819extern "C" {
24820    #[link_name = "\u{1}aws_lc_0_38_0_i2d_EXTENDED_KEY_USAGE"]
24821    pub fn i2d_EXTENDED_KEY_USAGE(
24822        eku: *const EXTENDED_KEY_USAGE,
24823        outp: *mut *mut u8,
24824    ) -> ::std::os::raw::c_int;
24825}
24826extern "C" {
24827    #[link_name = "\u{1}aws_lc_0_38_0_CERTIFICATEPOLICIES_it"]
24828    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
24829}
24830extern "C" {
24831    #[link_name = "\u{1}aws_lc_0_38_0_CERTIFICATEPOLICIES_new"]
24832    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
24833}
24834extern "C" {
24835    #[link_name = "\u{1}aws_lc_0_38_0_CERTIFICATEPOLICIES_free"]
24836    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
24837}
24838extern "C" {
24839    #[link_name = "\u{1}aws_lc_0_38_0_d2i_CERTIFICATEPOLICIES"]
24840    pub fn d2i_CERTIFICATEPOLICIES(
24841        out: *mut *mut CERTIFICATEPOLICIES,
24842        inp: *mut *const u8,
24843        len: ::std::os::raw::c_long,
24844    ) -> *mut CERTIFICATEPOLICIES;
24845}
24846extern "C" {
24847    #[link_name = "\u{1}aws_lc_0_38_0_i2d_CERTIFICATEPOLICIES"]
24848    pub fn i2d_CERTIFICATEPOLICIES(
24849        policies: *const CERTIFICATEPOLICIES,
24850        outp: *mut *mut u8,
24851    ) -> ::std::os::raw::c_int;
24852}
24853extern "C" {
24854    #[link_name = "\u{1}aws_lc_0_38_0_POLICYINFO_new"]
24855    pub fn POLICYINFO_new() -> *mut POLICYINFO;
24856}
24857extern "C" {
24858    #[link_name = "\u{1}aws_lc_0_38_0_POLICYINFO_free"]
24859    pub fn POLICYINFO_free(info: *mut POLICYINFO);
24860}
24861extern "C" {
24862    #[link_name = "\u{1}aws_lc_0_38_0_POLICYQUALINFO_new"]
24863    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
24864}
24865extern "C" {
24866    #[link_name = "\u{1}aws_lc_0_38_0_POLICYQUALINFO_free"]
24867    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
24868}
24869extern "C" {
24870    #[link_name = "\u{1}aws_lc_0_38_0_USERNOTICE_new"]
24871    pub fn USERNOTICE_new() -> *mut USERNOTICE;
24872}
24873extern "C" {
24874    #[link_name = "\u{1}aws_lc_0_38_0_USERNOTICE_free"]
24875    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
24876}
24877extern "C" {
24878    #[link_name = "\u{1}aws_lc_0_38_0_NOTICEREF_new"]
24879    pub fn NOTICEREF_new() -> *mut NOTICEREF;
24880}
24881extern "C" {
24882    #[link_name = "\u{1}aws_lc_0_38_0_NOTICEREF_free"]
24883    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
24884}
24885extern "C" {
24886    #[link_name = "\u{1}aws_lc_0_38_0_CRL_DIST_POINTS_it"]
24887    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
24888}
24889extern "C" {
24890    #[link_name = "\u{1}aws_lc_0_38_0_CRL_DIST_POINTS_new"]
24891    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
24892}
24893extern "C" {
24894    #[link_name = "\u{1}aws_lc_0_38_0_CRL_DIST_POINTS_free"]
24895    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
24896}
24897extern "C" {
24898    #[link_name = "\u{1}aws_lc_0_38_0_d2i_CRL_DIST_POINTS"]
24899    pub fn d2i_CRL_DIST_POINTS(
24900        out: *mut *mut CRL_DIST_POINTS,
24901        inp: *mut *const u8,
24902        len: ::std::os::raw::c_long,
24903    ) -> *mut CRL_DIST_POINTS;
24904}
24905extern "C" {
24906    #[link_name = "\u{1}aws_lc_0_38_0_i2d_CRL_DIST_POINTS"]
24907    pub fn i2d_CRL_DIST_POINTS(
24908        crldp: *mut CRL_DIST_POINTS,
24909        outp: *mut *mut u8,
24910    ) -> ::std::os::raw::c_int;
24911}
24912extern "C" {
24913    #[link_name = "\u{1}aws_lc_0_38_0_DIST_POINT_new"]
24914    pub fn DIST_POINT_new() -> *mut DIST_POINT;
24915}
24916extern "C" {
24917    #[link_name = "\u{1}aws_lc_0_38_0_DIST_POINT_free"]
24918    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
24919}
24920extern "C" {
24921    #[link_name = "\u{1}aws_lc_0_38_0_DIST_POINT_NAME_new"]
24922    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
24923}
24924extern "C" {
24925    #[link_name = "\u{1}aws_lc_0_38_0_DIST_POINT_NAME_free"]
24926    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
24927}
24928extern "C" {
24929    #[link_name = "\u{1}aws_lc_0_38_0_ISSUING_DIST_POINT_it"]
24930    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
24931}
24932extern "C" {
24933    #[link_name = "\u{1}aws_lc_0_38_0_ISSUING_DIST_POINT_new"]
24934    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
24935}
24936extern "C" {
24937    #[link_name = "\u{1}aws_lc_0_38_0_ISSUING_DIST_POINT_free"]
24938    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
24939}
24940extern "C" {
24941    #[link_name = "\u{1}aws_lc_0_38_0_d2i_ISSUING_DIST_POINT"]
24942    pub fn d2i_ISSUING_DIST_POINT(
24943        out: *mut *mut ISSUING_DIST_POINT,
24944        inp: *mut *const u8,
24945        len: ::std::os::raw::c_long,
24946    ) -> *mut ISSUING_DIST_POINT;
24947}
24948extern "C" {
24949    #[link_name = "\u{1}aws_lc_0_38_0_i2d_ISSUING_DIST_POINT"]
24950    pub fn i2d_ISSUING_DIST_POINT(
24951        idp: *mut ISSUING_DIST_POINT,
24952        outp: *mut *mut u8,
24953    ) -> ::std::os::raw::c_int;
24954}
24955extern "C" {
24956    #[link_name = "\u{1}aws_lc_0_38_0_ACCESS_DESCRIPTION_new"]
24957    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
24958}
24959extern "C" {
24960    #[link_name = "\u{1}aws_lc_0_38_0_ACCESS_DESCRIPTION_free"]
24961    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
24962}
24963extern "C" {
24964    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_INFO_ACCESS_it"]
24965    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
24966}
24967extern "C" {
24968    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_INFO_ACCESS_new"]
24969    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
24970}
24971extern "C" {
24972    #[link_name = "\u{1}aws_lc_0_38_0_AUTHORITY_INFO_ACCESS_free"]
24973    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
24974}
24975extern "C" {
24976    #[link_name = "\u{1}aws_lc_0_38_0_d2i_AUTHORITY_INFO_ACCESS"]
24977    pub fn d2i_AUTHORITY_INFO_ACCESS(
24978        out: *mut *mut AUTHORITY_INFO_ACCESS,
24979        inp: *mut *const u8,
24980        len: ::std::os::raw::c_long,
24981    ) -> *mut AUTHORITY_INFO_ACCESS;
24982}
24983extern "C" {
24984    #[link_name = "\u{1}aws_lc_0_38_0_i2d_AUTHORITY_INFO_ACCESS"]
24985    pub fn i2d_AUTHORITY_INFO_ACCESS(
24986        aia: *mut AUTHORITY_INFO_ACCESS,
24987        outp: *mut *mut u8,
24988    ) -> ::std::os::raw::c_int;
24989}
24990extern "C" {
24991    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_MAPPING_new"]
24992    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
24993}
24994extern "C" {
24995    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_MAPPING_free"]
24996    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
24997}
24998extern "C" {
24999    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_MAPPINGS_it"]
25000    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
25001}
25002extern "C" {
25003    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_SUBTREE_new"]
25004    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
25005}
25006extern "C" {
25007    #[link_name = "\u{1}aws_lc_0_38_0_GENERAL_SUBTREE_free"]
25008    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
25009}
25010extern "C" {
25011    #[link_name = "\u{1}aws_lc_0_38_0_NAME_CONSTRAINTS_it"]
25012    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
25013}
25014extern "C" {
25015    #[link_name = "\u{1}aws_lc_0_38_0_NAME_CONSTRAINTS_new"]
25016    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
25017}
25018extern "C" {
25019    #[link_name = "\u{1}aws_lc_0_38_0_NAME_CONSTRAINTS_free"]
25020    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
25021}
25022extern "C" {
25023    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_CONSTRAINTS_new"]
25024    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
25025}
25026extern "C" {
25027    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_CONSTRAINTS_free"]
25028    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
25029}
25030extern "C" {
25031    #[link_name = "\u{1}aws_lc_0_38_0_POLICY_CONSTRAINTS_it"]
25032    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
25033}
25034extern "C" {
25035    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_set"]
25036    pub fn X509_PURPOSE_set(
25037        p: *mut ::std::os::raw::c_int,
25038        purpose: ::std::os::raw::c_int,
25039    ) -> ::std::os::raw::c_int;
25040}
25041extern "C" {
25042    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get_count"]
25043    pub fn X509_PURPOSE_get_count() -> ::std::os::raw::c_int;
25044}
25045extern "C" {
25046    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get_by_id"]
25047    pub fn X509_PURPOSE_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25048}
25049extern "C" {
25050    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get0_name"]
25051    pub fn X509_PURPOSE_get0_name(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25052}
25053extern "C" {
25054    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get0_sname"]
25055    pub fn X509_PURPOSE_get0_sname(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25056}
25057extern "C" {
25058    #[link_name = "\u{1}aws_lc_0_38_0_X509_PURPOSE_get_trust"]
25059    pub fn X509_PURPOSE_get_trust(xp: *const X509_PURPOSE) -> ::std::os::raw::c_int;
25060}
25061#[repr(C)]
25062#[derive(Debug, Copy, Clone)]
25063pub struct ocsp_cert_id_st {
25064    _unused: [u8; 0],
25065}
25066pub type OCSP_CERTID = ocsp_cert_id_st;
25067#[repr(C)]
25068#[derive(Debug, Copy, Clone)]
25069pub struct ocsp_one_request_st {
25070    _unused: [u8; 0],
25071}
25072pub type OCSP_ONEREQ = ocsp_one_request_st;
25073#[repr(C)]
25074#[derive(Debug, Copy, Clone)]
25075pub struct ocsp_req_info_st {
25076    _unused: [u8; 0],
25077}
25078pub type OCSP_REQINFO = ocsp_req_info_st;
25079#[repr(C)]
25080#[derive(Debug, Copy, Clone)]
25081pub struct ocsp_signature_st {
25082    _unused: [u8; 0],
25083}
25084pub type OCSP_SIGNATURE = ocsp_signature_st;
25085#[repr(C)]
25086#[derive(Debug, Copy, Clone)]
25087pub struct ocsp_request_st {
25088    _unused: [u8; 0],
25089}
25090pub type OCSP_REQUEST = ocsp_request_st;
25091#[repr(C)]
25092#[derive(Debug, Copy, Clone)]
25093pub struct ocsp_resp_bytes_st {
25094    _unused: [u8; 0],
25095}
25096pub type OCSP_RESPBYTES = ocsp_resp_bytes_st;
25097#[repr(C)]
25098#[derive(Debug, Copy, Clone)]
25099pub struct ocsp_revoked_info_st {
25100    _unused: [u8; 0],
25101}
25102pub type OCSP_REVOKEDINFO = ocsp_revoked_info_st;
25103#[repr(C)]
25104#[derive(Debug, Copy, Clone)]
25105pub struct ocsp_cert_status_st {
25106    _unused: [u8; 0],
25107}
25108pub type OCSP_CERTSTATUS = ocsp_cert_status_st;
25109#[repr(C)]
25110#[derive(Debug, Copy, Clone)]
25111pub struct ocsp_single_response_st {
25112    _unused: [u8; 0],
25113}
25114pub type OCSP_SINGLERESP = ocsp_single_response_st;
25115#[repr(C)]
25116#[derive(Debug, Copy, Clone)]
25117pub struct ocsp_response_data_st {
25118    _unused: [u8; 0],
25119}
25120pub type OCSP_RESPDATA = ocsp_response_data_st;
25121#[repr(C)]
25122#[derive(Debug, Copy, Clone)]
25123pub struct ocsp_response_st {
25124    _unused: [u8; 0],
25125}
25126pub type OCSP_RESPONSE = ocsp_response_st;
25127#[repr(C)]
25128#[derive(Debug, Copy, Clone)]
25129pub struct ocsp_responder_id_st {
25130    _unused: [u8; 0],
25131}
25132pub type OCSP_RESPID = ocsp_responder_id_st;
25133#[repr(C)]
25134#[derive(Debug, Copy, Clone)]
25135pub struct ocsp_basic_response_st {
25136    _unused: [u8; 0],
25137}
25138pub type OCSP_BASICRESP = ocsp_basic_response_st;
25139#[repr(C)]
25140#[derive(Debug, Copy, Clone)]
25141pub struct stack_st_OCSP_CERTID {
25142    _unused: [u8; 0],
25143}
25144pub type sk_OCSP_CERTID_free_func =
25145    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_CERTID)>;
25146pub type sk_OCSP_CERTID_copy_func =
25147    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_CERTID) -> *mut OCSP_CERTID>;
25148pub type sk_OCSP_CERTID_cmp_func = ::std::option::Option<
25149    unsafe extern "C" fn(
25150        arg1: *const *const OCSP_CERTID,
25151        arg2: *const *const OCSP_CERTID,
25152    ) -> ::std::os::raw::c_int,
25153>;
25154pub type sk_OCSP_CERTID_delete_if_func = ::std::option::Option<
25155    unsafe extern "C" fn(
25156        arg1: *mut OCSP_CERTID,
25157        arg2: *mut ::std::os::raw::c_void,
25158    ) -> ::std::os::raw::c_int,
25159>;
25160#[repr(C)]
25161#[derive(Debug, Copy, Clone)]
25162pub struct stack_st_OCSP_ONEREQ {
25163    _unused: [u8; 0],
25164}
25165pub type sk_OCSP_ONEREQ_free_func =
25166    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_ONEREQ)>;
25167pub type sk_OCSP_ONEREQ_copy_func =
25168    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_ONEREQ) -> *mut OCSP_ONEREQ>;
25169pub type sk_OCSP_ONEREQ_cmp_func = ::std::option::Option<
25170    unsafe extern "C" fn(
25171        arg1: *const *const OCSP_ONEREQ,
25172        arg2: *const *const OCSP_ONEREQ,
25173    ) -> ::std::os::raw::c_int,
25174>;
25175pub type sk_OCSP_ONEREQ_delete_if_func = ::std::option::Option<
25176    unsafe extern "C" fn(
25177        arg1: *mut OCSP_ONEREQ,
25178        arg2: *mut ::std::os::raw::c_void,
25179    ) -> ::std::os::raw::c_int,
25180>;
25181#[repr(C)]
25182#[derive(Debug, Copy, Clone)]
25183pub struct stack_st_OCSP_RESPID {
25184    _unused: [u8; 0],
25185}
25186pub type sk_OCSP_RESPID_free_func =
25187    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_RESPID)>;
25188pub type sk_OCSP_RESPID_copy_func =
25189    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_RESPID) -> *mut OCSP_RESPID>;
25190pub type sk_OCSP_RESPID_cmp_func = ::std::option::Option<
25191    unsafe extern "C" fn(
25192        arg1: *const *const OCSP_RESPID,
25193        arg2: *const *const OCSP_RESPID,
25194    ) -> ::std::os::raw::c_int,
25195>;
25196pub type sk_OCSP_RESPID_delete_if_func = ::std::option::Option<
25197    unsafe extern "C" fn(
25198        arg1: *mut OCSP_RESPID,
25199        arg2: *mut ::std::os::raw::c_void,
25200    ) -> ::std::os::raw::c_int,
25201>;
25202#[repr(C)]
25203#[derive(Debug, Copy, Clone)]
25204pub struct stack_st_OCSP_SINGLERESP {
25205    _unused: [u8; 0],
25206}
25207pub type sk_OCSP_SINGLERESP_free_func =
25208    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_SINGLERESP)>;
25209pub type sk_OCSP_SINGLERESP_copy_func = ::std::option::Option<
25210    unsafe extern "C" fn(arg1: *const OCSP_SINGLERESP) -> *mut OCSP_SINGLERESP,
25211>;
25212pub type sk_OCSP_SINGLERESP_cmp_func = ::std::option::Option<
25213    unsafe extern "C" fn(
25214        arg1: *const *const OCSP_SINGLERESP,
25215        arg2: *const *const OCSP_SINGLERESP,
25216    ) -> ::std::os::raw::c_int,
25217>;
25218pub type sk_OCSP_SINGLERESP_delete_if_func = ::std::option::Option<
25219    unsafe extern "C" fn(
25220        arg1: *mut OCSP_SINGLERESP,
25221        arg2: *mut ::std::os::raw::c_void,
25222    ) -> ::std::os::raw::c_int,
25223>;
25224extern "C" {
25225    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_new"]
25226    pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP;
25227}
25228extern "C" {
25229    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_free"]
25230    pub fn OCSP_BASICRESP_free(a: *mut OCSP_BASICRESP);
25231}
25232extern "C" {
25233    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_BASICRESP"]
25234    pub fn d2i_OCSP_BASICRESP(
25235        a: *mut *mut OCSP_BASICRESP,
25236        in_: *mut *const ::std::os::raw::c_uchar,
25237        len: ::std::os::raw::c_long,
25238    ) -> *mut OCSP_BASICRESP;
25239}
25240extern "C" {
25241    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_BASICRESP"]
25242    pub fn i2d_OCSP_BASICRESP(
25243        a: *mut OCSP_BASICRESP,
25244        out: *mut *mut ::std::os::raw::c_uchar,
25245    ) -> ::std::os::raw::c_int;
25246}
25247extern "C" {
25248    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_it"]
25249    pub static OCSP_BASICRESP_it: ASN1_ITEM;
25250}
25251extern "C" {
25252    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_RESPONSE_new"]
25253    pub fn OCSP_RESPONSE_new() -> *mut OCSP_RESPONSE;
25254}
25255extern "C" {
25256    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_RESPONSE_free"]
25257    pub fn OCSP_RESPONSE_free(a: *mut OCSP_RESPONSE);
25258}
25259extern "C" {
25260    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_RESPONSE"]
25261    pub fn d2i_OCSP_RESPONSE(
25262        a: *mut *mut OCSP_RESPONSE,
25263        in_: *mut *const ::std::os::raw::c_uchar,
25264        len: ::std::os::raw::c_long,
25265    ) -> *mut OCSP_RESPONSE;
25266}
25267extern "C" {
25268    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_RESPONSE"]
25269    pub fn i2d_OCSP_RESPONSE(
25270        a: *mut OCSP_RESPONSE,
25271        out: *mut *mut ::std::os::raw::c_uchar,
25272    ) -> ::std::os::raw::c_int;
25273}
25274extern "C" {
25275    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_RESPONSE_it"]
25276    pub static OCSP_RESPONSE_it: ASN1_ITEM;
25277}
25278extern "C" {
25279    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_CERTID_new"]
25280    pub fn OCSP_CERTID_new() -> *mut OCSP_CERTID;
25281}
25282extern "C" {
25283    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_CERTID_free"]
25284    pub fn OCSP_CERTID_free(a: *mut OCSP_CERTID);
25285}
25286extern "C" {
25287    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_CERTID"]
25288    pub fn d2i_OCSP_CERTID(
25289        a: *mut *mut OCSP_CERTID,
25290        in_: *mut *const ::std::os::raw::c_uchar,
25291        len: ::std::os::raw::c_long,
25292    ) -> *mut OCSP_CERTID;
25293}
25294extern "C" {
25295    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_CERTID"]
25296    pub fn i2d_OCSP_CERTID(
25297        a: *mut OCSP_CERTID,
25298        out: *mut *mut ::std::os::raw::c_uchar,
25299    ) -> ::std::os::raw::c_int;
25300}
25301extern "C" {
25302    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_CERTID_it"]
25303    pub static OCSP_CERTID_it: ASN1_ITEM;
25304}
25305extern "C" {
25306    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQUEST_new"]
25307    pub fn OCSP_REQUEST_new() -> *mut OCSP_REQUEST;
25308}
25309extern "C" {
25310    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQUEST_free"]
25311    pub fn OCSP_REQUEST_free(a: *mut OCSP_REQUEST);
25312}
25313extern "C" {
25314    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_REQUEST"]
25315    pub fn d2i_OCSP_REQUEST(
25316        a: *mut *mut OCSP_REQUEST,
25317        in_: *mut *const ::std::os::raw::c_uchar,
25318        len: ::std::os::raw::c_long,
25319    ) -> *mut OCSP_REQUEST;
25320}
25321extern "C" {
25322    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_REQUEST"]
25323    pub fn i2d_OCSP_REQUEST(
25324        a: *mut OCSP_REQUEST,
25325        out: *mut *mut ::std::os::raw::c_uchar,
25326    ) -> ::std::os::raw::c_int;
25327}
25328extern "C" {
25329    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQUEST_it"]
25330    pub static OCSP_REQUEST_it: ASN1_ITEM;
25331}
25332extern "C" {
25333    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_new"]
25334    pub fn OCSP_SINGLERESP_new() -> *mut OCSP_SINGLERESP;
25335}
25336extern "C" {
25337    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_free"]
25338    pub fn OCSP_SINGLERESP_free(a: *mut OCSP_SINGLERESP);
25339}
25340extern "C" {
25341    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_SINGLERESP"]
25342    pub fn d2i_OCSP_SINGLERESP(
25343        a: *mut *mut OCSP_SINGLERESP,
25344        in_: *mut *const ::std::os::raw::c_uchar,
25345        len: ::std::os::raw::c_long,
25346    ) -> *mut OCSP_SINGLERESP;
25347}
25348extern "C" {
25349    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_SINGLERESP"]
25350    pub fn i2d_OCSP_SINGLERESP(
25351        a: *mut OCSP_SINGLERESP,
25352        out: *mut *mut ::std::os::raw::c_uchar,
25353    ) -> ::std::os::raw::c_int;
25354}
25355extern "C" {
25356    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_it"]
25357    pub static OCSP_SINGLERESP_it: ASN1_ITEM;
25358}
25359extern "C" {
25360    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_ONEREQ_new"]
25361    pub fn OCSP_ONEREQ_new() -> *mut OCSP_ONEREQ;
25362}
25363extern "C" {
25364    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_ONEREQ_free"]
25365    pub fn OCSP_ONEREQ_free(a: *mut OCSP_ONEREQ);
25366}
25367extern "C" {
25368    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_ONEREQ"]
25369    pub fn d2i_OCSP_ONEREQ(
25370        a: *mut *mut OCSP_ONEREQ,
25371        in_: *mut *const ::std::os::raw::c_uchar,
25372        len: ::std::os::raw::c_long,
25373    ) -> *mut OCSP_ONEREQ;
25374}
25375extern "C" {
25376    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_ONEREQ"]
25377    pub fn i2d_OCSP_ONEREQ(
25378        a: *mut OCSP_ONEREQ,
25379        out: *mut *mut ::std::os::raw::c_uchar,
25380    ) -> ::std::os::raw::c_int;
25381}
25382extern "C" {
25383    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_ONEREQ_it"]
25384    pub static OCSP_ONEREQ_it: ASN1_ITEM;
25385}
25386extern "C" {
25387    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_REQUEST_bio"]
25388    pub fn d2i_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut *mut OCSP_REQUEST) -> *mut OCSP_REQUEST;
25389}
25390extern "C" {
25391    #[link_name = "\u{1}aws_lc_0_38_0_d2i_OCSP_RESPONSE_bio"]
25392    pub fn d2i_OCSP_RESPONSE_bio(
25393        bp: *mut BIO,
25394        presp: *mut *mut OCSP_RESPONSE,
25395    ) -> *mut OCSP_RESPONSE;
25396}
25397extern "C" {
25398    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_RESPONSE_bio"]
25399    pub fn i2d_OCSP_RESPONSE_bio(bp: *mut BIO, presp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25400}
25401extern "C" {
25402    #[link_name = "\u{1}aws_lc_0_38_0_i2d_OCSP_REQUEST_bio"]
25403    pub fn i2d_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25404}
25405extern "C" {
25406    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_CERTID_dup"]
25407    pub fn OCSP_CERTID_dup(id: *mut OCSP_CERTID) -> *mut OCSP_CERTID;
25408}
25409extern "C" {
25410    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_sendreq_bio"]
25411    pub fn OCSP_sendreq_bio(
25412        b: *mut BIO,
25413        path: *const ::std::os::raw::c_char,
25414        req: *mut OCSP_REQUEST,
25415    ) -> *mut OCSP_RESPONSE;
25416}
25417extern "C" {
25418    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_sendreq_new"]
25419    pub fn OCSP_sendreq_new(
25420        io: *mut BIO,
25421        path: *const ::std::os::raw::c_char,
25422        req: *mut OCSP_REQUEST,
25423        maxline: ::std::os::raw::c_int,
25424    ) -> *mut OCSP_REQ_CTX;
25425}
25426extern "C" {
25427    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_sendreq_nbio"]
25428    pub fn OCSP_sendreq_nbio(
25429        presp: *mut *mut OCSP_RESPONSE,
25430        rctx: *mut OCSP_REQ_CTX,
25431    ) -> ::std::os::raw::c_int;
25432}
25433extern "C" {
25434    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_new"]
25435    pub fn OCSP_REQ_CTX_new(io: *mut BIO, maxline: ::std::os::raw::c_int) -> *mut OCSP_REQ_CTX;
25436}
25437extern "C" {
25438    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_free"]
25439    pub fn OCSP_REQ_CTX_free(rctx: *mut OCSP_REQ_CTX);
25440}
25441extern "C" {
25442    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_set_max_response_length"]
25443    pub fn OCSP_set_max_response_length(rctx: *mut OCSP_REQ_CTX, len: ::std::os::raw::c_ulong);
25444}
25445extern "C" {
25446    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_http"]
25447    pub fn OCSP_REQ_CTX_http(
25448        rctx: *mut OCSP_REQ_CTX,
25449        op: *const ::std::os::raw::c_char,
25450        path: *const ::std::os::raw::c_char,
25451    ) -> ::std::os::raw::c_int;
25452}
25453extern "C" {
25454    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_set1_req"]
25455    pub fn OCSP_REQ_CTX_set1_req(
25456        rctx: *mut OCSP_REQ_CTX,
25457        req: *mut OCSP_REQUEST,
25458    ) -> ::std::os::raw::c_int;
25459}
25460extern "C" {
25461    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_add1_header"]
25462    pub fn OCSP_REQ_CTX_add1_header(
25463        rctx: *mut OCSP_REQ_CTX,
25464        name: *const ::std::os::raw::c_char,
25465        value: *const ::std::os::raw::c_char,
25466    ) -> ::std::os::raw::c_int;
25467}
25468extern "C" {
25469    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQ_CTX_i2d"]
25470    pub fn OCSP_REQ_CTX_i2d(
25471        rctx: *mut OCSP_REQ_CTX,
25472        it: *const ASN1_ITEM,
25473        val: *mut ASN1_VALUE,
25474    ) -> ::std::os::raw::c_int;
25475}
25476extern "C" {
25477    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_add0_id"]
25478    pub fn OCSP_request_add0_id(req: *mut OCSP_REQUEST, cid: *mut OCSP_CERTID) -> *mut OCSP_ONEREQ;
25479}
25480extern "C" {
25481    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_onereq_get0_id"]
25482    pub fn OCSP_onereq_get0_id(one: *mut OCSP_ONEREQ) -> *mut OCSP_CERTID;
25483}
25484extern "C" {
25485    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_add1_nonce"]
25486    pub fn OCSP_request_add1_nonce(
25487        req: *mut OCSP_REQUEST,
25488        val: *mut ::std::os::raw::c_uchar,
25489        len: ::std::os::raw::c_int,
25490    ) -> ::std::os::raw::c_int;
25491}
25492extern "C" {
25493    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_basic_add1_nonce"]
25494    pub fn OCSP_basic_add1_nonce(
25495        resp: *mut OCSP_BASICRESP,
25496        val: *mut ::std::os::raw::c_uchar,
25497        len: ::std::os::raw::c_int,
25498    ) -> ::std::os::raw::c_int;
25499}
25500extern "C" {
25501    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_check_nonce"]
25502    pub fn OCSP_check_nonce(
25503        req: *mut OCSP_REQUEST,
25504        bs: *mut OCSP_BASICRESP,
25505    ) -> ::std::os::raw::c_int;
25506}
25507extern "C" {
25508    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_copy_nonce"]
25509    pub fn OCSP_copy_nonce(
25510        resp: *mut OCSP_BASICRESP,
25511        req: *mut OCSP_REQUEST,
25512    ) -> ::std::os::raw::c_int;
25513}
25514extern "C" {
25515    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_set1_name"]
25516    pub fn OCSP_request_set1_name(
25517        req: *mut OCSP_REQUEST,
25518        nm: *mut X509_NAME,
25519    ) -> ::std::os::raw::c_int;
25520}
25521extern "C" {
25522    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_add1_cert"]
25523    pub fn OCSP_request_add1_cert(req: *mut OCSP_REQUEST, cert: *mut X509)
25524        -> ::std::os::raw::c_int;
25525}
25526extern "C" {
25527    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_is_signed"]
25528    pub fn OCSP_request_is_signed(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25529}
25530extern "C" {
25531    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_onereq_count"]
25532    pub fn OCSP_request_onereq_count(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25533}
25534extern "C" {
25535    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_onereq_get0"]
25536    pub fn OCSP_request_onereq_get0(
25537        req: *mut OCSP_REQUEST,
25538        i: ::std::os::raw::c_int,
25539    ) -> *mut OCSP_ONEREQ;
25540}
25541extern "C" {
25542    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_sign"]
25543    pub fn OCSP_request_sign(
25544        req: *mut OCSP_REQUEST,
25545        signer: *mut X509,
25546        key: *mut EVP_PKEY,
25547        dgst: *const EVP_MD,
25548        certs: *mut stack_st_X509,
25549        flags: ::std::os::raw::c_ulong,
25550    ) -> ::std::os::raw::c_int;
25551}
25552extern "C" {
25553    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_response_status"]
25554    pub fn OCSP_response_status(resp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25555}
25556extern "C" {
25557    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_response_get1_basic"]
25558    pub fn OCSP_response_get1_basic(resp: *mut OCSP_RESPONSE) -> *mut OCSP_BASICRESP;
25559}
25560extern "C" {
25561    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_resp_count"]
25562    pub fn OCSP_resp_count(bs: *mut OCSP_BASICRESP) -> ::std::os::raw::c_int;
25563}
25564extern "C" {
25565    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_resp_get0"]
25566    pub fn OCSP_resp_get0(bs: *mut OCSP_BASICRESP, idx: usize) -> *mut OCSP_SINGLERESP;
25567}
25568extern "C" {
25569    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_single_get0_status"]
25570    pub fn OCSP_single_get0_status(
25571        single: *mut OCSP_SINGLERESP,
25572        reason: *mut ::std::os::raw::c_int,
25573        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25574        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25575        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25576    ) -> ::std::os::raw::c_int;
25577}
25578extern "C" {
25579    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_resp_find"]
25580    pub fn OCSP_resp_find(
25581        bs: *mut OCSP_BASICRESP,
25582        id: *mut OCSP_CERTID,
25583        last: ::std::os::raw::c_int,
25584    ) -> ::std::os::raw::c_int;
25585}
25586extern "C" {
25587    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_resp_find_status"]
25588    pub fn OCSP_resp_find_status(
25589        bs: *mut OCSP_BASICRESP,
25590        id: *mut OCSP_CERTID,
25591        status: *mut ::std::os::raw::c_int,
25592        reason: *mut ::std::os::raw::c_int,
25593        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25594        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25595        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25596    ) -> ::std::os::raw::c_int;
25597}
25598extern "C" {
25599    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_check_validity"]
25600    pub fn OCSP_check_validity(
25601        thisUpdate: *mut ASN1_GENERALIZEDTIME,
25602        nextUpdate: *mut ASN1_GENERALIZEDTIME,
25603        drift_num_seconds: ::std::os::raw::c_long,
25604        max_age_seconds: ::std::os::raw::c_long,
25605    ) -> ::std::os::raw::c_int;
25606}
25607extern "C" {
25608    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_basic_verify"]
25609    pub fn OCSP_basic_verify(
25610        bs: *mut OCSP_BASICRESP,
25611        certs: *mut stack_st_X509,
25612        st: *mut X509_STORE,
25613        flags: ::std::os::raw::c_ulong,
25614    ) -> ::std::os::raw::c_int;
25615}
25616extern "C" {
25617    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_request_verify"]
25618    pub fn OCSP_request_verify(
25619        req: *mut OCSP_REQUEST,
25620        certs: *mut stack_st_X509,
25621        st: *mut X509_STORE,
25622        flags: ::std::os::raw::c_ulong,
25623    ) -> ::std::os::raw::c_int;
25624}
25625extern "C" {
25626    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_cert_id_new"]
25627    pub fn OCSP_cert_id_new(
25628        dgst: *const EVP_MD,
25629        issuerName: *const X509_NAME,
25630        issuerKey: *const ASN1_BIT_STRING,
25631        serialNumber: *const ASN1_INTEGER,
25632    ) -> *mut OCSP_CERTID;
25633}
25634extern "C" {
25635    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_cert_to_id"]
25636    pub fn OCSP_cert_to_id(
25637        dgst: *const EVP_MD,
25638        subject: *const X509,
25639        issuer: *const X509,
25640    ) -> *mut OCSP_CERTID;
25641}
25642extern "C" {
25643    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_parse_url"]
25644    pub fn OCSP_parse_url(
25645        url: *const ::std::os::raw::c_char,
25646        phost: *mut *mut ::std::os::raw::c_char,
25647        pport: *mut *mut ::std::os::raw::c_char,
25648        ppath: *mut *mut ::std::os::raw::c_char,
25649        pssl: *mut ::std::os::raw::c_int,
25650    ) -> ::std::os::raw::c_int;
25651}
25652extern "C" {
25653    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_id_issuer_cmp"]
25654    pub fn OCSP_id_issuer_cmp(
25655        a: *const OCSP_CERTID,
25656        b: *const OCSP_CERTID,
25657    ) -> ::std::os::raw::c_int;
25658}
25659extern "C" {
25660    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_id_cmp"]
25661    pub fn OCSP_id_cmp(a: *const OCSP_CERTID, b: *const OCSP_CERTID) -> ::std::os::raw::c_int;
25662}
25663extern "C" {
25664    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_id_get0_info"]
25665    pub fn OCSP_id_get0_info(
25666        nameHash: *mut *mut ASN1_OCTET_STRING,
25667        algor: *mut *mut ASN1_OBJECT,
25668        keyHash: *mut *mut ASN1_OCTET_STRING,
25669        serial: *mut *mut ASN1_INTEGER,
25670        cid: *mut OCSP_CERTID,
25671    ) -> ::std::os::raw::c_int;
25672}
25673extern "C" {
25674    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_basic_add1_cert"]
25675    pub fn OCSP_basic_add1_cert(
25676        resp: *mut OCSP_BASICRESP,
25677        cert: *mut X509,
25678    ) -> ::std::os::raw::c_int;
25679}
25680extern "C" {
25681    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_basic_add1_status"]
25682    pub fn OCSP_basic_add1_status(
25683        resp: *mut OCSP_BASICRESP,
25684        cid: *mut OCSP_CERTID,
25685        status: ::std::os::raw::c_int,
25686        revoked_reason: ::std::os::raw::c_int,
25687        revoked_time: *mut ASN1_TIME,
25688        this_update: *mut ASN1_TIME,
25689        next_update: *mut ASN1_TIME,
25690    ) -> *mut OCSP_SINGLERESP;
25691}
25692extern "C" {
25693    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_basic_sign"]
25694    pub fn OCSP_basic_sign(
25695        resp: *mut OCSP_BASICRESP,
25696        signer: *mut X509,
25697        key: *mut EVP_PKEY,
25698        dgst: *const EVP_MD,
25699        certs: *mut stack_st_X509,
25700        flags: ::std::os::raw::c_ulong,
25701    ) -> ::std::os::raw::c_int;
25702}
25703extern "C" {
25704    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_response_create"]
25705    pub fn OCSP_response_create(
25706        status: ::std::os::raw::c_int,
25707        bs: *mut OCSP_BASICRESP,
25708    ) -> *mut OCSP_RESPONSE;
25709}
25710extern "C" {
25711    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_get0_id"]
25712    pub fn OCSP_SINGLERESP_get0_id(x: *const OCSP_SINGLERESP) -> *const OCSP_CERTID;
25713}
25714extern "C" {
25715    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_response_status_str"]
25716    pub fn OCSP_response_status_str(
25717        status_code: ::std::os::raw::c_long,
25718    ) -> *const ::std::os::raw::c_char;
25719}
25720extern "C" {
25721    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_cert_status_str"]
25722    pub fn OCSP_cert_status_str(
25723        status_code: ::std::os::raw::c_long,
25724    ) -> *const ::std::os::raw::c_char;
25725}
25726extern "C" {
25727    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_crl_reason_str"]
25728    pub fn OCSP_crl_reason_str(
25729        status_code: ::std::os::raw::c_long,
25730    ) -> *const ::std::os::raw::c_char;
25731}
25732extern "C" {
25733    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_REQUEST_print"]
25734    pub fn OCSP_REQUEST_print(
25735        bp: *mut BIO,
25736        req: *mut OCSP_REQUEST,
25737        flags: ::std::os::raw::c_ulong,
25738    ) -> ::std::os::raw::c_int;
25739}
25740extern "C" {
25741    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_RESPONSE_print"]
25742    pub fn OCSP_RESPONSE_print(
25743        bp: *mut BIO,
25744        resp: *mut OCSP_RESPONSE,
25745        flags: ::std::os::raw::c_ulong,
25746    ) -> ::std::os::raw::c_int;
25747}
25748extern "C" {
25749    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_get_ext_by_NID"]
25750    pub fn OCSP_BASICRESP_get_ext_by_NID(
25751        bs: *mut OCSP_BASICRESP,
25752        nid: ::std::os::raw::c_int,
25753        lastpos: ::std::os::raw::c_int,
25754    ) -> ::std::os::raw::c_int;
25755}
25756extern "C" {
25757    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_get_ext"]
25758    pub fn OCSP_BASICRESP_get_ext(
25759        bs: *mut OCSP_BASICRESP,
25760        loc: ::std::os::raw::c_int,
25761    ) -> *mut X509_EXTENSION;
25762}
25763extern "C" {
25764    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_BASICRESP_delete_ext"]
25765    pub fn OCSP_BASICRESP_delete_ext(
25766        x: *mut OCSP_BASICRESP,
25767        loc: ::std::os::raw::c_int,
25768    ) -> *mut X509_EXTENSION;
25769}
25770extern "C" {
25771    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_add_ext"]
25772    pub fn OCSP_SINGLERESP_add_ext(
25773        sresp: *mut OCSP_SINGLERESP,
25774        ex: *mut X509_EXTENSION,
25775        loc: ::std::os::raw::c_int,
25776    ) -> ::std::os::raw::c_int;
25777}
25778extern "C" {
25779    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_get_ext_count"]
25780    pub fn OCSP_SINGLERESP_get_ext_count(sresp: *mut OCSP_SINGLERESP) -> ::std::os::raw::c_int;
25781}
25782extern "C" {
25783    #[link_name = "\u{1}aws_lc_0_38_0_OCSP_SINGLERESP_get_ext"]
25784    pub fn OCSP_SINGLERESP_get_ext(
25785        sresp: *mut OCSP_SINGLERESP,
25786        loc: ::std::os::raw::c_int,
25787    ) -> *mut X509_EXTENSION;
25788}
25789pub type pem_password_cb = ::std::option::Option<
25790    unsafe extern "C" fn(
25791        buf: *mut ::std::os::raw::c_char,
25792        size: ::std::os::raw::c_int,
25793        rwflag: ::std::os::raw::c_int,
25794        userdata: *mut ::std::os::raw::c_void,
25795    ) -> ::std::os::raw::c_int,
25796>;
25797extern "C" {
25798    #[link_name = "\u{1}aws_lc_0_38_0_PEM_get_EVP_CIPHER_INFO"]
25799    pub fn PEM_get_EVP_CIPHER_INFO(
25800        header: *mut ::std::os::raw::c_char,
25801        cipher: *mut EVP_CIPHER_INFO,
25802    ) -> ::std::os::raw::c_int;
25803}
25804extern "C" {
25805    #[link_name = "\u{1}aws_lc_0_38_0_PEM_do_header"]
25806    pub fn PEM_do_header(
25807        cipher: *mut EVP_CIPHER_INFO,
25808        data: *mut ::std::os::raw::c_uchar,
25809        len: *mut ::std::os::raw::c_long,
25810        callback: pem_password_cb,
25811        u: *mut ::std::os::raw::c_void,
25812    ) -> ::std::os::raw::c_int;
25813}
25814extern "C" {
25815    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio"]
25816    pub fn PEM_read_bio(
25817        bp: *mut BIO,
25818        name: *mut *mut ::std::os::raw::c_char,
25819        header: *mut *mut ::std::os::raw::c_char,
25820        data: *mut *mut ::std::os::raw::c_uchar,
25821        len: *mut ::std::os::raw::c_long,
25822    ) -> ::std::os::raw::c_int;
25823}
25824extern "C" {
25825    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio"]
25826    pub fn PEM_write_bio(
25827        bp: *mut BIO,
25828        name: *const ::std::os::raw::c_char,
25829        hdr: *const ::std::os::raw::c_char,
25830        data: *const ::std::os::raw::c_uchar,
25831        len: ::std::os::raw::c_long,
25832    ) -> ::std::os::raw::c_int;
25833}
25834extern "C" {
25835    #[link_name = "\u{1}aws_lc_0_38_0_PEM_bytes_read_bio"]
25836    pub fn PEM_bytes_read_bio(
25837        pdata: *mut *mut ::std::os::raw::c_uchar,
25838        plen: *mut ::std::os::raw::c_long,
25839        pnm: *mut *mut ::std::os::raw::c_char,
25840        name: *const ::std::os::raw::c_char,
25841        bp: *mut BIO,
25842        cb: pem_password_cb,
25843        u: *mut ::std::os::raw::c_void,
25844    ) -> ::std::os::raw::c_int;
25845}
25846extern "C" {
25847    #[link_name = "\u{1}aws_lc_0_38_0_PEM_ASN1_read_bio"]
25848    pub fn PEM_ASN1_read_bio(
25849        d2i: d2i_of_void,
25850        name: *const ::std::os::raw::c_char,
25851        bp: *mut BIO,
25852        x: *mut *mut ::std::os::raw::c_void,
25853        cb: pem_password_cb,
25854        u: *mut ::std::os::raw::c_void,
25855    ) -> *mut ::std::os::raw::c_void;
25856}
25857extern "C" {
25858    #[link_name = "\u{1}aws_lc_0_38_0_PEM_ASN1_write_bio"]
25859    pub fn PEM_ASN1_write_bio(
25860        i2d: i2d_of_void,
25861        name: *const ::std::os::raw::c_char,
25862        bp: *mut BIO,
25863        x: *mut ::std::os::raw::c_void,
25864        enc: *const EVP_CIPHER,
25865        pass: *const ::std::os::raw::c_uchar,
25866        pass_len: ::std::os::raw::c_int,
25867        cb: pem_password_cb,
25868        u: *mut ::std::os::raw::c_void,
25869    ) -> ::std::os::raw::c_int;
25870}
25871extern "C" {
25872    #[link_name = "\u{1}aws_lc_0_38_0_PEM_X509_INFO_read_bio"]
25873    pub fn PEM_X509_INFO_read_bio(
25874        bp: *mut BIO,
25875        sk: *mut stack_st_X509_INFO,
25876        cb: pem_password_cb,
25877        u: *mut ::std::os::raw::c_void,
25878    ) -> *mut stack_st_X509_INFO;
25879}
25880extern "C" {
25881    #[link_name = "\u{1}aws_lc_0_38_0_PEM_X509_INFO_write_bio"]
25882    pub fn PEM_X509_INFO_write_bio(
25883        bp: *mut BIO,
25884        xi: *mut X509_INFO,
25885        enc: *mut EVP_CIPHER,
25886        kstr: *mut ::std::os::raw::c_uchar,
25887        klen: ::std::os::raw::c_int,
25888        cd: pem_password_cb,
25889        u: *mut ::std::os::raw::c_void,
25890    ) -> ::std::os::raw::c_int;
25891}
25892extern "C" {
25893    #[link_name = "\u{1}aws_lc_0_38_0_PEM_X509_INFO_read"]
25894    pub fn PEM_X509_INFO_read(
25895        fp: *mut FILE,
25896        sk: *mut stack_st_X509_INFO,
25897        cb: pem_password_cb,
25898        u: *mut ::std::os::raw::c_void,
25899    ) -> *mut stack_st_X509_INFO;
25900}
25901extern "C" {
25902    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read"]
25903    pub fn PEM_read(
25904        fp: *mut FILE,
25905        name: *mut *mut ::std::os::raw::c_char,
25906        header: *mut *mut ::std::os::raw::c_char,
25907        data: *mut *mut ::std::os::raw::c_uchar,
25908        len: *mut ::std::os::raw::c_long,
25909    ) -> ::std::os::raw::c_int;
25910}
25911extern "C" {
25912    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write"]
25913    pub fn PEM_write(
25914        fp: *mut FILE,
25915        name: *const ::std::os::raw::c_char,
25916        hdr: *const ::std::os::raw::c_char,
25917        data: *const ::std::os::raw::c_uchar,
25918        len: ::std::os::raw::c_long,
25919    ) -> ::std::os::raw::c_int;
25920}
25921extern "C" {
25922    #[link_name = "\u{1}aws_lc_0_38_0_PEM_ASN1_read"]
25923    pub fn PEM_ASN1_read(
25924        d2i: d2i_of_void,
25925        name: *const ::std::os::raw::c_char,
25926        fp: *mut FILE,
25927        x: *mut *mut ::std::os::raw::c_void,
25928        cb: pem_password_cb,
25929        u: *mut ::std::os::raw::c_void,
25930    ) -> *mut ::std::os::raw::c_void;
25931}
25932extern "C" {
25933    #[link_name = "\u{1}aws_lc_0_38_0_PEM_ASN1_write"]
25934    pub fn PEM_ASN1_write(
25935        i2d: i2d_of_void,
25936        name: *const ::std::os::raw::c_char,
25937        fp: *mut FILE,
25938        x: *mut ::std::os::raw::c_void,
25939        enc: *const EVP_CIPHER,
25940        pass: *const ::std::os::raw::c_uchar,
25941        pass_len: ::std::os::raw::c_int,
25942        callback: pem_password_cb,
25943        u: *mut ::std::os::raw::c_void,
25944    ) -> ::std::os::raw::c_int;
25945}
25946extern "C" {
25947    #[link_name = "\u{1}aws_lc_0_38_0_PEM_def_callback"]
25948    pub fn PEM_def_callback(
25949        buf: *mut ::std::os::raw::c_char,
25950        size: ::std::os::raw::c_int,
25951        rwflag: ::std::os::raw::c_int,
25952        userdata: *mut ::std::os::raw::c_void,
25953    ) -> ::std::os::raw::c_int;
25954}
25955extern "C" {
25956    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_X509"]
25957    pub fn PEM_read_bio_X509(
25958        bp: *mut BIO,
25959        x: *mut *mut X509,
25960        cb: pem_password_cb,
25961        u: *mut ::std::os::raw::c_void,
25962    ) -> *mut X509;
25963}
25964extern "C" {
25965    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_X509"]
25966    pub fn PEM_read_X509(
25967        fp: *mut FILE,
25968        x: *mut *mut X509,
25969        cb: pem_password_cb,
25970        u: *mut ::std::os::raw::c_void,
25971    ) -> *mut X509;
25972}
25973extern "C" {
25974    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_X509"]
25975    pub fn PEM_write_bio_X509(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25976}
25977extern "C" {
25978    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_X509"]
25979    pub fn PEM_write_X509(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25980}
25981extern "C" {
25982    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_X509_AUX"]
25983    pub fn PEM_read_bio_X509_AUX(
25984        bp: *mut BIO,
25985        x: *mut *mut X509,
25986        cb: pem_password_cb,
25987        u: *mut ::std::os::raw::c_void,
25988    ) -> *mut X509;
25989}
25990extern "C" {
25991    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_X509_AUX"]
25992    pub fn PEM_read_X509_AUX(
25993        fp: *mut FILE,
25994        x: *mut *mut X509,
25995        cb: pem_password_cb,
25996        u: *mut ::std::os::raw::c_void,
25997    ) -> *mut X509;
25998}
25999extern "C" {
26000    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_X509_AUX"]
26001    pub fn PEM_write_bio_X509_AUX(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
26002}
26003extern "C" {
26004    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_X509_AUX"]
26005    pub fn PEM_write_X509_AUX(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
26006}
26007extern "C" {
26008    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_X509_REQ"]
26009    pub fn PEM_read_bio_X509_REQ(
26010        bp: *mut BIO,
26011        x: *mut *mut X509_REQ,
26012        cb: pem_password_cb,
26013        u: *mut ::std::os::raw::c_void,
26014    ) -> *mut X509_REQ;
26015}
26016extern "C" {
26017    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_X509_REQ"]
26018    pub fn PEM_read_X509_REQ(
26019        fp: *mut FILE,
26020        x: *mut *mut X509_REQ,
26021        cb: pem_password_cb,
26022        u: *mut ::std::os::raw::c_void,
26023    ) -> *mut X509_REQ;
26024}
26025extern "C" {
26026    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_X509_REQ"]
26027    pub fn PEM_write_bio_X509_REQ(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26028}
26029extern "C" {
26030    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_X509_REQ"]
26031    pub fn PEM_write_X509_REQ(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26032}
26033extern "C" {
26034    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_X509_REQ_NEW"]
26035    pub fn PEM_write_bio_X509_REQ_NEW(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26036}
26037extern "C" {
26038    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_X509_REQ_NEW"]
26039    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26040}
26041extern "C" {
26042    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_X509_CRL"]
26043    pub fn PEM_read_bio_X509_CRL(
26044        bp: *mut BIO,
26045        x: *mut *mut X509_CRL,
26046        cb: pem_password_cb,
26047        u: *mut ::std::os::raw::c_void,
26048    ) -> *mut X509_CRL;
26049}
26050extern "C" {
26051    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_X509_CRL"]
26052    pub fn PEM_read_X509_CRL(
26053        fp: *mut FILE,
26054        x: *mut *mut X509_CRL,
26055        cb: pem_password_cb,
26056        u: *mut ::std::os::raw::c_void,
26057    ) -> *mut X509_CRL;
26058}
26059extern "C" {
26060    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_X509_CRL"]
26061    pub fn PEM_write_bio_X509_CRL(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26062}
26063extern "C" {
26064    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_X509_CRL"]
26065    pub fn PEM_write_X509_CRL(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26066}
26067extern "C" {
26068    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_PKCS7"]
26069    pub fn PEM_read_bio_PKCS7(
26070        bp: *mut BIO,
26071        x: *mut *mut PKCS7,
26072        cb: pem_password_cb,
26073        u: *mut ::std::os::raw::c_void,
26074    ) -> *mut PKCS7;
26075}
26076extern "C" {
26077    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_PKCS7"]
26078    pub fn PEM_read_PKCS7(
26079        fp: *mut FILE,
26080        x: *mut *mut PKCS7,
26081        cb: pem_password_cb,
26082        u: *mut ::std::os::raw::c_void,
26083    ) -> *mut PKCS7;
26084}
26085extern "C" {
26086    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PKCS7"]
26087    pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> ::std::os::raw::c_int;
26088}
26089extern "C" {
26090    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PKCS7"]
26091    pub fn PEM_write_PKCS7(fp: *mut FILE, x: *mut PKCS7) -> ::std::os::raw::c_int;
26092}
26093extern "C" {
26094    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_PKCS8"]
26095    pub fn PEM_read_bio_PKCS8(
26096        bp: *mut BIO,
26097        x: *mut *mut X509_SIG,
26098        cb: pem_password_cb,
26099        u: *mut ::std::os::raw::c_void,
26100    ) -> *mut X509_SIG;
26101}
26102extern "C" {
26103    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_PKCS8"]
26104    pub fn PEM_read_PKCS8(
26105        fp: *mut FILE,
26106        x: *mut *mut X509_SIG,
26107        cb: pem_password_cb,
26108        u: *mut ::std::os::raw::c_void,
26109    ) -> *mut X509_SIG;
26110}
26111extern "C" {
26112    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PKCS8"]
26113    pub fn PEM_write_bio_PKCS8(bp: *mut BIO, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26114}
26115extern "C" {
26116    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PKCS8"]
26117    pub fn PEM_write_PKCS8(fp: *mut FILE, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26118}
26119extern "C" {
26120    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_PKCS8_PRIV_KEY_INFO"]
26121    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
26122        bp: *mut BIO,
26123        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26124        cb: pem_password_cb,
26125        u: *mut ::std::os::raw::c_void,
26126    ) -> *mut PKCS8_PRIV_KEY_INFO;
26127}
26128extern "C" {
26129    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_PKCS8_PRIV_KEY_INFO"]
26130    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
26131        fp: *mut FILE,
26132        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26133        cb: pem_password_cb,
26134        u: *mut ::std::os::raw::c_void,
26135    ) -> *mut PKCS8_PRIV_KEY_INFO;
26136}
26137extern "C" {
26138    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PKCS8_PRIV_KEY_INFO"]
26139    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
26140        bp: *mut BIO,
26141        x: *mut PKCS8_PRIV_KEY_INFO,
26142    ) -> ::std::os::raw::c_int;
26143}
26144extern "C" {
26145    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PKCS8_PRIV_KEY_INFO"]
26146    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
26147        fp: *mut FILE,
26148        x: *mut PKCS8_PRIV_KEY_INFO,
26149    ) -> ::std::os::raw::c_int;
26150}
26151extern "C" {
26152    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_RSAPrivateKey"]
26153    pub fn PEM_read_bio_RSAPrivateKey(
26154        bp: *mut BIO,
26155        x: *mut *mut RSA,
26156        cb: pem_password_cb,
26157        u: *mut ::std::os::raw::c_void,
26158    ) -> *mut RSA;
26159}
26160extern "C" {
26161    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_RSAPrivateKey"]
26162    pub fn PEM_read_RSAPrivateKey(
26163        fp: *mut FILE,
26164        x: *mut *mut RSA,
26165        cb: pem_password_cb,
26166        u: *mut ::std::os::raw::c_void,
26167    ) -> *mut RSA;
26168}
26169extern "C" {
26170    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_RSAPrivateKey"]
26171    pub fn PEM_write_bio_RSAPrivateKey(
26172        bp: *mut BIO,
26173        x: *mut RSA,
26174        enc: *const EVP_CIPHER,
26175        pass: *const ::std::os::raw::c_uchar,
26176        pass_len: ::std::os::raw::c_int,
26177        cb: pem_password_cb,
26178        u: *mut ::std::os::raw::c_void,
26179    ) -> ::std::os::raw::c_int;
26180}
26181extern "C" {
26182    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_RSAPrivateKey"]
26183    pub fn PEM_write_RSAPrivateKey(
26184        fp: *mut FILE,
26185        x: *mut RSA,
26186        enc: *const EVP_CIPHER,
26187        pass: *const ::std::os::raw::c_uchar,
26188        pass_len: ::std::os::raw::c_int,
26189        cb: pem_password_cb,
26190        u: *mut ::std::os::raw::c_void,
26191    ) -> ::std::os::raw::c_int;
26192}
26193extern "C" {
26194    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_RSAPublicKey"]
26195    pub fn PEM_read_bio_RSAPublicKey(
26196        bp: *mut BIO,
26197        x: *mut *mut RSA,
26198        cb: pem_password_cb,
26199        u: *mut ::std::os::raw::c_void,
26200    ) -> *mut RSA;
26201}
26202extern "C" {
26203    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_RSAPublicKey"]
26204    pub fn PEM_read_RSAPublicKey(
26205        fp: *mut FILE,
26206        x: *mut *mut RSA,
26207        cb: pem_password_cb,
26208        u: *mut ::std::os::raw::c_void,
26209    ) -> *mut RSA;
26210}
26211extern "C" {
26212    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_RSAPublicKey"]
26213    pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, x: *const RSA) -> ::std::os::raw::c_int;
26214}
26215extern "C" {
26216    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_RSAPublicKey"]
26217    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, x: *const RSA) -> ::std::os::raw::c_int;
26218}
26219extern "C" {
26220    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_RSA_PUBKEY"]
26221    pub fn PEM_read_bio_RSA_PUBKEY(
26222        bp: *mut BIO,
26223        x: *mut *mut RSA,
26224        cb: pem_password_cb,
26225        u: *mut ::std::os::raw::c_void,
26226    ) -> *mut RSA;
26227}
26228extern "C" {
26229    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_RSA_PUBKEY"]
26230    pub fn PEM_read_RSA_PUBKEY(
26231        fp: *mut FILE,
26232        x: *mut *mut RSA,
26233        cb: pem_password_cb,
26234        u: *mut ::std::os::raw::c_void,
26235    ) -> *mut RSA;
26236}
26237extern "C" {
26238    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_RSA_PUBKEY"]
26239    pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, x: *mut RSA) -> ::std::os::raw::c_int;
26240}
26241extern "C" {
26242    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_RSA_PUBKEY"]
26243    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, x: *mut RSA) -> ::std::os::raw::c_int;
26244}
26245extern "C" {
26246    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_DSAPrivateKey"]
26247    pub fn PEM_read_bio_DSAPrivateKey(
26248        bp: *mut BIO,
26249        x: *mut *mut DSA,
26250        cb: pem_password_cb,
26251        u: *mut ::std::os::raw::c_void,
26252    ) -> *mut DSA;
26253}
26254extern "C" {
26255    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_DSAPrivateKey"]
26256    pub fn PEM_read_DSAPrivateKey(
26257        fp: *mut FILE,
26258        x: *mut *mut DSA,
26259        cb: pem_password_cb,
26260        u: *mut ::std::os::raw::c_void,
26261    ) -> *mut DSA;
26262}
26263extern "C" {
26264    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_DSAPrivateKey"]
26265    pub fn PEM_write_bio_DSAPrivateKey(
26266        bp: *mut BIO,
26267        x: *mut DSA,
26268        enc: *const EVP_CIPHER,
26269        pass: *const ::std::os::raw::c_uchar,
26270        pass_len: ::std::os::raw::c_int,
26271        cb: pem_password_cb,
26272        u: *mut ::std::os::raw::c_void,
26273    ) -> ::std::os::raw::c_int;
26274}
26275extern "C" {
26276    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_DSAPrivateKey"]
26277    pub fn PEM_write_DSAPrivateKey(
26278        fp: *mut FILE,
26279        x: *mut DSA,
26280        enc: *const EVP_CIPHER,
26281        pass: *const ::std::os::raw::c_uchar,
26282        pass_len: ::std::os::raw::c_int,
26283        cb: pem_password_cb,
26284        u: *mut ::std::os::raw::c_void,
26285    ) -> ::std::os::raw::c_int;
26286}
26287extern "C" {
26288    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_DSA_PUBKEY"]
26289    pub fn PEM_read_bio_DSA_PUBKEY(
26290        bp: *mut BIO,
26291        x: *mut *mut DSA,
26292        cb: pem_password_cb,
26293        u: *mut ::std::os::raw::c_void,
26294    ) -> *mut DSA;
26295}
26296extern "C" {
26297    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_DSA_PUBKEY"]
26298    pub fn PEM_read_DSA_PUBKEY(
26299        fp: *mut FILE,
26300        x: *mut *mut DSA,
26301        cb: pem_password_cb,
26302        u: *mut ::std::os::raw::c_void,
26303    ) -> *mut DSA;
26304}
26305extern "C" {
26306    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_DSA_PUBKEY"]
26307    pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, x: *mut DSA) -> ::std::os::raw::c_int;
26308}
26309extern "C" {
26310    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_DSA_PUBKEY"]
26311    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, x: *mut DSA) -> ::std::os::raw::c_int;
26312}
26313extern "C" {
26314    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_DSAparams"]
26315    pub fn PEM_read_bio_DSAparams(
26316        bp: *mut BIO,
26317        x: *mut *mut DSA,
26318        cb: pem_password_cb,
26319        u: *mut ::std::os::raw::c_void,
26320    ) -> *mut DSA;
26321}
26322extern "C" {
26323    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_DSAparams"]
26324    pub fn PEM_read_DSAparams(
26325        fp: *mut FILE,
26326        x: *mut *mut DSA,
26327        cb: pem_password_cb,
26328        u: *mut ::std::os::raw::c_void,
26329    ) -> *mut DSA;
26330}
26331extern "C" {
26332    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_DSAparams"]
26333    pub fn PEM_write_bio_DSAparams(bp: *mut BIO, x: *const DSA) -> ::std::os::raw::c_int;
26334}
26335extern "C" {
26336    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_DSAparams"]
26337    pub fn PEM_write_DSAparams(fp: *mut FILE, x: *const DSA) -> ::std::os::raw::c_int;
26338}
26339extern "C" {
26340    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_ECPrivateKey"]
26341    pub fn PEM_read_bio_ECPrivateKey(
26342        bp: *mut BIO,
26343        x: *mut *mut EC_KEY,
26344        cb: pem_password_cb,
26345        u: *mut ::std::os::raw::c_void,
26346    ) -> *mut EC_KEY;
26347}
26348extern "C" {
26349    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_ECPrivateKey"]
26350    pub fn PEM_read_ECPrivateKey(
26351        fp: *mut FILE,
26352        x: *mut *mut EC_KEY,
26353        cb: pem_password_cb,
26354        u: *mut ::std::os::raw::c_void,
26355    ) -> *mut EC_KEY;
26356}
26357extern "C" {
26358    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_ECPrivateKey"]
26359    pub fn PEM_write_bio_ECPrivateKey(
26360        bp: *mut BIO,
26361        x: *mut EC_KEY,
26362        enc: *const EVP_CIPHER,
26363        pass: *const ::std::os::raw::c_uchar,
26364        pass_len: ::std::os::raw::c_int,
26365        cb: pem_password_cb,
26366        u: *mut ::std::os::raw::c_void,
26367    ) -> ::std::os::raw::c_int;
26368}
26369extern "C" {
26370    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_ECPrivateKey"]
26371    pub fn PEM_write_ECPrivateKey(
26372        fp: *mut FILE,
26373        x: *mut EC_KEY,
26374        enc: *const EVP_CIPHER,
26375        pass: *const ::std::os::raw::c_uchar,
26376        pass_len: ::std::os::raw::c_int,
26377        cb: pem_password_cb,
26378        u: *mut ::std::os::raw::c_void,
26379    ) -> ::std::os::raw::c_int;
26380}
26381extern "C" {
26382    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_EC_PUBKEY"]
26383    pub fn PEM_read_bio_EC_PUBKEY(
26384        bp: *mut BIO,
26385        x: *mut *mut EC_KEY,
26386        cb: pem_password_cb,
26387        u: *mut ::std::os::raw::c_void,
26388    ) -> *mut EC_KEY;
26389}
26390extern "C" {
26391    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_EC_PUBKEY"]
26392    pub fn PEM_read_EC_PUBKEY(
26393        fp: *mut FILE,
26394        x: *mut *mut EC_KEY,
26395        cb: pem_password_cb,
26396        u: *mut ::std::os::raw::c_void,
26397    ) -> *mut EC_KEY;
26398}
26399extern "C" {
26400    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_EC_PUBKEY"]
26401    pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26402}
26403extern "C" {
26404    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_EC_PUBKEY"]
26405    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26406}
26407extern "C" {
26408    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_DHparams"]
26409    pub fn PEM_read_bio_DHparams(
26410        bp: *mut BIO,
26411        x: *mut *mut DH,
26412        cb: pem_password_cb,
26413        u: *mut ::std::os::raw::c_void,
26414    ) -> *mut DH;
26415}
26416extern "C" {
26417    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_DHparams"]
26418    pub fn PEM_read_DHparams(
26419        fp: *mut FILE,
26420        x: *mut *mut DH,
26421        cb: pem_password_cb,
26422        u: *mut ::std::os::raw::c_void,
26423    ) -> *mut DH;
26424}
26425extern "C" {
26426    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_DHparams"]
26427    pub fn PEM_write_bio_DHparams(bp: *mut BIO, x: *const DH) -> ::std::os::raw::c_int;
26428}
26429extern "C" {
26430    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_DHparams"]
26431    pub fn PEM_write_DHparams(fp: *mut FILE, x: *const DH) -> ::std::os::raw::c_int;
26432}
26433extern "C" {
26434    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_PrivateKey"]
26435    pub fn PEM_read_bio_PrivateKey(
26436        bp: *mut BIO,
26437        x: *mut *mut EVP_PKEY,
26438        cb: pem_password_cb,
26439        u: *mut ::std::os::raw::c_void,
26440    ) -> *mut EVP_PKEY;
26441}
26442extern "C" {
26443    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_PrivateKey"]
26444    pub fn PEM_read_PrivateKey(
26445        fp: *mut FILE,
26446        x: *mut *mut EVP_PKEY,
26447        cb: pem_password_cb,
26448        u: *mut ::std::os::raw::c_void,
26449    ) -> *mut EVP_PKEY;
26450}
26451extern "C" {
26452    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PrivateKey"]
26453    pub fn PEM_write_bio_PrivateKey(
26454        bp: *mut BIO,
26455        x: *mut EVP_PKEY,
26456        enc: *const EVP_CIPHER,
26457        pass: *const ::std::os::raw::c_uchar,
26458        pass_len: ::std::os::raw::c_int,
26459        cb: pem_password_cb,
26460        u: *mut ::std::os::raw::c_void,
26461    ) -> ::std::os::raw::c_int;
26462}
26463extern "C" {
26464    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PrivateKey"]
26465    pub fn PEM_write_PrivateKey(
26466        fp: *mut FILE,
26467        x: *mut EVP_PKEY,
26468        enc: *const EVP_CIPHER,
26469        pass: *const ::std::os::raw::c_uchar,
26470        pass_len: ::std::os::raw::c_int,
26471        cb: pem_password_cb,
26472        u: *mut ::std::os::raw::c_void,
26473    ) -> ::std::os::raw::c_int;
26474}
26475extern "C" {
26476    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_PUBKEY"]
26477    pub fn PEM_read_bio_PUBKEY(
26478        bp: *mut BIO,
26479        x: *mut *mut EVP_PKEY,
26480        cb: pem_password_cb,
26481        u: *mut ::std::os::raw::c_void,
26482    ) -> *mut EVP_PKEY;
26483}
26484extern "C" {
26485    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_PUBKEY"]
26486    pub fn PEM_read_PUBKEY(
26487        fp: *mut FILE,
26488        x: *mut *mut EVP_PKEY,
26489        cb: pem_password_cb,
26490        u: *mut ::std::os::raw::c_void,
26491    ) -> *mut EVP_PKEY;
26492}
26493extern "C" {
26494    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PUBKEY"]
26495    pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26496}
26497extern "C" {
26498    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PUBKEY"]
26499    pub fn PEM_write_PUBKEY(fp: *mut FILE, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26500}
26501extern "C" {
26502    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PKCS8PrivateKey_nid"]
26503    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
26504        bp: *mut BIO,
26505        x: *const EVP_PKEY,
26506        nid: ::std::os::raw::c_int,
26507        pass: *const ::std::os::raw::c_char,
26508        pass_len: ::std::os::raw::c_int,
26509        cb: pem_password_cb,
26510        u: *mut ::std::os::raw::c_void,
26511    ) -> ::std::os::raw::c_int;
26512}
26513extern "C" {
26514    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PKCS8PrivateKey"]
26515    pub fn PEM_write_bio_PKCS8PrivateKey(
26516        bp: *mut BIO,
26517        x: *const EVP_PKEY,
26518        enc: *const EVP_CIPHER,
26519        pass: *const ::std::os::raw::c_char,
26520        pass_len: ::std::os::raw::c_int,
26521        cb: pem_password_cb,
26522        u: *mut ::std::os::raw::c_void,
26523    ) -> ::std::os::raw::c_int;
26524}
26525extern "C" {
26526    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKey_bio"]
26527    pub fn i2d_PKCS8PrivateKey_bio(
26528        bp: *mut BIO,
26529        x: *const EVP_PKEY,
26530        enc: *const EVP_CIPHER,
26531        pass: *const ::std::os::raw::c_char,
26532        pass_len: ::std::os::raw::c_int,
26533        cb: pem_password_cb,
26534        u: *mut ::std::os::raw::c_void,
26535    ) -> ::std::os::raw::c_int;
26536}
26537extern "C" {
26538    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKey_nid_bio"]
26539    pub fn i2d_PKCS8PrivateKey_nid_bio(
26540        bp: *mut BIO,
26541        x: *const EVP_PKEY,
26542        nid: ::std::os::raw::c_int,
26543        pass: *const ::std::os::raw::c_char,
26544        pass_len: ::std::os::raw::c_int,
26545        cb: pem_password_cb,
26546        u: *mut ::std::os::raw::c_void,
26547    ) -> ::std::os::raw::c_int;
26548}
26549extern "C" {
26550    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8PrivateKey_bio"]
26551    pub fn d2i_PKCS8PrivateKey_bio(
26552        bp: *mut BIO,
26553        x: *mut *mut EVP_PKEY,
26554        cb: pem_password_cb,
26555        u: *mut ::std::os::raw::c_void,
26556    ) -> *mut EVP_PKEY;
26557}
26558extern "C" {
26559    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKey_fp"]
26560    pub fn i2d_PKCS8PrivateKey_fp(
26561        fp: *mut FILE,
26562        x: *const EVP_PKEY,
26563        enc: *const EVP_CIPHER,
26564        pass: *const ::std::os::raw::c_char,
26565        pass_len: ::std::os::raw::c_int,
26566        cb: pem_password_cb,
26567        u: *mut ::std::os::raw::c_void,
26568    ) -> ::std::os::raw::c_int;
26569}
26570extern "C" {
26571    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS8PrivateKey_nid_fp"]
26572    pub fn i2d_PKCS8PrivateKey_nid_fp(
26573        fp: *mut FILE,
26574        x: *const EVP_PKEY,
26575        nid: ::std::os::raw::c_int,
26576        pass: *const ::std::os::raw::c_char,
26577        pass_len: ::std::os::raw::c_int,
26578        cb: pem_password_cb,
26579        u: *mut ::std::os::raw::c_void,
26580    ) -> ::std::os::raw::c_int;
26581}
26582extern "C" {
26583    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PKCS8PrivateKey_nid"]
26584    pub fn PEM_write_PKCS8PrivateKey_nid(
26585        fp: *mut FILE,
26586        x: *const EVP_PKEY,
26587        nid: ::std::os::raw::c_int,
26588        pass: *const ::std::os::raw::c_char,
26589        pass_len: ::std::os::raw::c_int,
26590        cb: pem_password_cb,
26591        u: *mut ::std::os::raw::c_void,
26592    ) -> ::std::os::raw::c_int;
26593}
26594extern "C" {
26595    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS8PrivateKey_fp"]
26596    pub fn d2i_PKCS8PrivateKey_fp(
26597        fp: *mut FILE,
26598        x: *mut *mut EVP_PKEY,
26599        cb: pem_password_cb,
26600        u: *mut ::std::os::raw::c_void,
26601    ) -> *mut EVP_PKEY;
26602}
26603extern "C" {
26604    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_PKCS8PrivateKey"]
26605    pub fn PEM_write_PKCS8PrivateKey(
26606        fp: *mut FILE,
26607        x: *const EVP_PKEY,
26608        enc: *const EVP_CIPHER,
26609        pass: *const ::std::os::raw::c_char,
26610        pass_len: ::std::os::raw::c_int,
26611        cd: pem_password_cb,
26612        u: *mut ::std::os::raw::c_void,
26613    ) -> ::std::os::raw::c_int;
26614}
26615extern "C" {
26616    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_Parameters"]
26617    pub fn PEM_read_bio_Parameters(bio: *mut BIO, pkey: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
26618}
26619extern "C" {
26620    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_Parameters"]
26621    pub fn PEM_write_bio_Parameters(bio: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26622}
26623extern "C" {
26624    #[link_name = "\u{1}aws_lc_0_38_0_PEM_read_bio_ECPKParameters"]
26625    pub fn PEM_read_bio_ECPKParameters(
26626        bio: *mut BIO,
26627        out_group: *mut *mut EC_GROUP,
26628        cb: pem_password_cb,
26629        u: *mut ::std::os::raw::c_void,
26630    ) -> *mut EC_GROUP;
26631}
26632extern "C" {
26633    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_ECPKParameters"]
26634    pub fn PEM_write_bio_ECPKParameters(
26635        out: *mut BIO,
26636        group: *const EC_GROUP,
26637    ) -> ::std::os::raw::c_int;
26638}
26639extern "C" {
26640    #[link_name = "\u{1}aws_lc_0_38_0_PEM_write_bio_PrivateKey_traditional"]
26641    pub fn PEM_write_bio_PrivateKey_traditional(
26642        bp: *mut BIO,
26643        x: *mut EVP_PKEY,
26644        enc: *const EVP_CIPHER,
26645        kstr: *mut ::std::os::raw::c_uchar,
26646        klen: ::std::os::raw::c_int,
26647        cb: pem_password_cb,
26648        u: *mut ::std::os::raw::c_void,
26649    ) -> ::std::os::raw::c_int;
26650}
26651extern "C" {
26652    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_encrypt"]
26653    pub fn PKCS8_encrypt(
26654        pbe_nid: ::std::os::raw::c_int,
26655        cipher: *const EVP_CIPHER,
26656        pass: *const ::std::os::raw::c_char,
26657        pass_len: ::std::os::raw::c_int,
26658        salt: *const u8,
26659        salt_len: usize,
26660        iterations: ::std::os::raw::c_int,
26661        p8inf: *mut PKCS8_PRIV_KEY_INFO,
26662    ) -> *mut X509_SIG;
26663}
26664extern "C" {
26665    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_marshal_encrypted_private_key"]
26666    pub fn PKCS8_marshal_encrypted_private_key(
26667        out: *mut CBB,
26668        pbe_nid: ::std::os::raw::c_int,
26669        cipher: *const EVP_CIPHER,
26670        pass: *const ::std::os::raw::c_char,
26671        pass_len: usize,
26672        salt: *const u8,
26673        salt_len: usize,
26674        iterations: ::std::os::raw::c_int,
26675        pkey: *const EVP_PKEY,
26676    ) -> ::std::os::raw::c_int;
26677}
26678extern "C" {
26679    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_decrypt"]
26680    pub fn PKCS8_decrypt(
26681        pkcs8: *mut X509_SIG,
26682        pass: *const ::std::os::raw::c_char,
26683        pass_len: ::std::os::raw::c_int,
26684    ) -> *mut PKCS8_PRIV_KEY_INFO;
26685}
26686extern "C" {
26687    #[link_name = "\u{1}aws_lc_0_38_0_PKCS8_parse_encrypted_private_key"]
26688    pub fn PKCS8_parse_encrypted_private_key(
26689        cbs: *mut CBS,
26690        pass: *const ::std::os::raw::c_char,
26691        pass_len: usize,
26692    ) -> *mut EVP_PKEY;
26693}
26694extern "C" {
26695    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_get_key_and_certs"]
26696    pub fn PKCS12_get_key_and_certs(
26697        out_key: *mut *mut EVP_PKEY,
26698        out_certs: *mut stack_st_X509,
26699        in_: *mut CBS,
26700        password: *const ::std::os::raw::c_char,
26701    ) -> ::std::os::raw::c_int;
26702}
26703extern "C" {
26704    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_PBE_add"]
26705    pub fn PKCS12_PBE_add();
26706}
26707extern "C" {
26708    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS12"]
26709    pub fn d2i_PKCS12(
26710        out_p12: *mut *mut PKCS12,
26711        ber_bytes: *mut *const u8,
26712        ber_len: usize,
26713    ) -> *mut PKCS12;
26714}
26715extern "C" {
26716    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS12_bio"]
26717    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26718}
26719extern "C" {
26720    #[link_name = "\u{1}aws_lc_0_38_0_d2i_PKCS12_fp"]
26721    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26722}
26723extern "C" {
26724    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS12"]
26725    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::std::os::raw::c_int;
26726}
26727extern "C" {
26728    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS12_bio"]
26729    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::std::os::raw::c_int;
26730}
26731extern "C" {
26732    #[link_name = "\u{1}aws_lc_0_38_0_i2d_PKCS12_fp"]
26733    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::std::os::raw::c_int;
26734}
26735extern "C" {
26736    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_parse"]
26737    pub fn PKCS12_parse(
26738        p12: *const PKCS12,
26739        password: *const ::std::os::raw::c_char,
26740        out_pkey: *mut *mut EVP_PKEY,
26741        out_cert: *mut *mut X509,
26742        out_ca_certs: *mut *mut stack_st_X509,
26743    ) -> ::std::os::raw::c_int;
26744}
26745extern "C" {
26746    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_set_mac"]
26747    pub fn PKCS12_set_mac(
26748        p12: *mut PKCS12,
26749        password: *const ::std::os::raw::c_char,
26750        password_len: ::std::os::raw::c_int,
26751        salt: *mut ::std::os::raw::c_uchar,
26752        salt_len: ::std::os::raw::c_int,
26753        mac_iterations: ::std::os::raw::c_int,
26754        md: *const EVP_MD,
26755    ) -> ::std::os::raw::c_int;
26756}
26757extern "C" {
26758    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_verify_mac"]
26759    pub fn PKCS12_verify_mac(
26760        p12: *const PKCS12,
26761        password: *const ::std::os::raw::c_char,
26762        password_len: ::std::os::raw::c_int,
26763    ) -> ::std::os::raw::c_int;
26764}
26765extern "C" {
26766    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_create"]
26767    pub fn PKCS12_create(
26768        password: *const ::std::os::raw::c_char,
26769        name: *const ::std::os::raw::c_char,
26770        pkey: *const EVP_PKEY,
26771        cert: *mut X509,
26772        chain: *const stack_st_X509,
26773        key_nid: ::std::os::raw::c_int,
26774        cert_nid: ::std::os::raw::c_int,
26775        iterations: ::std::os::raw::c_int,
26776        mac_iterations: ::std::os::raw::c_int,
26777        key_type: ::std::os::raw::c_int,
26778    ) -> *mut PKCS12;
26779}
26780extern "C" {
26781    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_new"]
26782    pub fn PKCS12_new() -> *mut PKCS12;
26783}
26784extern "C" {
26785    #[link_name = "\u{1}aws_lc_0_38_0_PKCS12_free"]
26786    pub fn PKCS12_free(p12: *mut PKCS12);
26787}
26788pub type poly1305_state = [u8; 512usize];
26789extern "C" {
26790    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_poly1305_init"]
26791    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
26792}
26793extern "C" {
26794    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_poly1305_update"]
26795    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
26796}
26797extern "C" {
26798    #[link_name = "\u{1}aws_lc_0_38_0_CRYPTO_poly1305_finish"]
26799    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
26800}
26801extern "C" {
26802    #[link_name = "\u{1}aws_lc_0_38_0_RAND_bytes"]
26803    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26804}
26805extern "C" {
26806    #[link_name = "\u{1}aws_lc_0_38_0_RAND_priv_bytes"]
26807    pub fn RAND_priv_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26808}
26809extern "C" {
26810    #[link_name = "\u{1}aws_lc_0_38_0_RAND_public_bytes"]
26811    pub fn RAND_public_bytes(out: *mut u8, out_len: usize) -> ::std::os::raw::c_int;
26812}
26813extern "C" {
26814    #[link_name = "\u{1}aws_lc_0_38_0_RAND_bytes_with_user_prediction_resistance"]
26815    pub fn RAND_bytes_with_user_prediction_resistance(
26816        out: *mut u8,
26817        out_len: usize,
26818        user_pred_resistance: *const u8,
26819    ) -> ::std::os::raw::c_int;
26820}
26821extern "C" {
26822    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
26823}
26824extern "C" {
26825    #[link_name = "\u{1}aws_lc_0_38_0_RAND_pseudo_bytes"]
26826    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26827}
26828extern "C" {
26829    #[link_name = "\u{1}aws_lc_0_38_0_RAND_seed"]
26830    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
26831}
26832extern "C" {
26833    #[link_name = "\u{1}aws_lc_0_38_0_RAND_load_file"]
26834    pub fn RAND_load_file(
26835        path: *const ::std::os::raw::c_char,
26836        num: ::std::os::raw::c_long,
26837    ) -> ::std::os::raw::c_int;
26838}
26839extern "C" {
26840    #[link_name = "\u{1}aws_lc_0_38_0_RAND_write_file"]
26841    pub fn RAND_write_file(file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26842}
26843extern "C" {
26844    #[link_name = "\u{1}aws_lc_0_38_0_RAND_file_name"]
26845    pub fn RAND_file_name(
26846        buf: *mut ::std::os::raw::c_char,
26847        num: usize,
26848    ) -> *const ::std::os::raw::c_char;
26849}
26850extern "C" {
26851    #[link_name = "\u{1}aws_lc_0_38_0_RAND_add"]
26852    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
26853}
26854extern "C" {
26855    #[link_name = "\u{1}aws_lc_0_38_0_RAND_egd"]
26856    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26857}
26858extern "C" {
26859    #[link_name = "\u{1}aws_lc_0_38_0_RAND_egd_bytes"]
26860    pub fn RAND_egd_bytes(
26861        arg1: *const ::std::os::raw::c_char,
26862        bytes: ::std::os::raw::c_int,
26863    ) -> ::std::os::raw::c_int;
26864}
26865extern "C" {
26866    #[link_name = "\u{1}aws_lc_0_38_0_RAND_poll"]
26867    pub fn RAND_poll() -> ::std::os::raw::c_int;
26868}
26869extern "C" {
26870    #[link_name = "\u{1}aws_lc_0_38_0_RAND_status"]
26871    pub fn RAND_status() -> ::std::os::raw::c_int;
26872}
26873extern "C" {
26874    #[link_name = "\u{1}aws_lc_0_38_0_RAND_cleanup"]
26875    pub fn RAND_cleanup();
26876}
26877#[repr(C)]
26878#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
26879pub struct rand_meth_st {
26880    pub seed: ::std::option::Option<
26881        unsafe extern "C" fn(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int),
26882    >,
26883    pub bytes: ::std::option::Option<
26884        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26885    >,
26886    pub cleanup: ::std::option::Option<unsafe extern "C" fn()>,
26887    pub add: ::std::option::Option<
26888        unsafe extern "C" fn(
26889            buf: *const ::std::os::raw::c_void,
26890            num: ::std::os::raw::c_int,
26891            entropy: f64,
26892        ),
26893    >,
26894    pub pseudorand: ::std::option::Option<
26895        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26896    >,
26897    pub status: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
26898}
26899#[test]
26900fn bindgen_test_layout_rand_meth_st() {
26901    const UNINIT: ::std::mem::MaybeUninit<rand_meth_st> = ::std::mem::MaybeUninit::uninit();
26902    let ptr = UNINIT.as_ptr();
26903    assert_eq!(
26904        ::std::mem::size_of::<rand_meth_st>(),
26905        48usize,
26906        "Size of rand_meth_st"
26907    );
26908    assert_eq!(
26909        ::std::mem::align_of::<rand_meth_st>(),
26910        8usize,
26911        "Alignment of rand_meth_st"
26912    );
26913    assert_eq!(
26914        unsafe { ::std::ptr::addr_of!((*ptr).seed) as usize - ptr as usize },
26915        0usize,
26916        "Offset of field: rand_meth_st::seed"
26917    );
26918    assert_eq!(
26919        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
26920        8usize,
26921        "Offset of field: rand_meth_st::bytes"
26922    );
26923    assert_eq!(
26924        unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize },
26925        16usize,
26926        "Offset of field: rand_meth_st::cleanup"
26927    );
26928    assert_eq!(
26929        unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize },
26930        24usize,
26931        "Offset of field: rand_meth_st::add"
26932    );
26933    assert_eq!(
26934        unsafe { ::std::ptr::addr_of!((*ptr).pseudorand) as usize - ptr as usize },
26935        32usize,
26936        "Offset of field: rand_meth_st::pseudorand"
26937    );
26938    assert_eq!(
26939        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
26940        40usize,
26941        "Offset of field: rand_meth_st::status"
26942    );
26943}
26944extern "C" {
26945    #[link_name = "\u{1}aws_lc_0_38_0_RAND_SSLeay"]
26946    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
26947}
26948extern "C" {
26949    #[link_name = "\u{1}aws_lc_0_38_0_RAND_OpenSSL"]
26950    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
26951}
26952extern "C" {
26953    #[link_name = "\u{1}aws_lc_0_38_0_RAND_get_rand_method"]
26954    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
26955}
26956extern "C" {
26957    #[link_name = "\u{1}aws_lc_0_38_0_RAND_set_rand_method"]
26958    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::std::os::raw::c_int;
26959}
26960extern "C" {
26961    #[link_name = "\u{1}aws_lc_0_38_0_RAND_keep_random_devices_open"]
26962    pub fn RAND_keep_random_devices_open(a: ::std::os::raw::c_int);
26963}
26964#[repr(C)]
26965#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26966pub struct rc4_key_st {
26967    pub x: u32,
26968    pub y: u32,
26969    pub data: [u32; 256usize],
26970}
26971#[test]
26972fn bindgen_test_layout_rc4_key_st() {
26973    const UNINIT: ::std::mem::MaybeUninit<rc4_key_st> = ::std::mem::MaybeUninit::uninit();
26974    let ptr = UNINIT.as_ptr();
26975    assert_eq!(
26976        ::std::mem::size_of::<rc4_key_st>(),
26977        1032usize,
26978        "Size of rc4_key_st"
26979    );
26980    assert_eq!(
26981        ::std::mem::align_of::<rc4_key_st>(),
26982        4usize,
26983        "Alignment of rc4_key_st"
26984    );
26985    assert_eq!(
26986        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
26987        0usize,
26988        "Offset of field: rc4_key_st::x"
26989    );
26990    assert_eq!(
26991        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
26992        4usize,
26993        "Offset of field: rc4_key_st::y"
26994    );
26995    assert_eq!(
26996        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
26997        8usize,
26998        "Offset of field: rc4_key_st::data"
26999    );
27000}
27001impl Default for rc4_key_st {
27002    fn default() -> Self {
27003        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27004        unsafe {
27005            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27006            s.assume_init()
27007        }
27008    }
27009}
27010extern "C" {
27011    #[link_name = "\u{1}aws_lc_0_38_0_RC4_set_key"]
27012    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::std::os::raw::c_uint, key: *const u8);
27013}
27014extern "C" {
27015    #[link_name = "\u{1}aws_lc_0_38_0_RC4"]
27016    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
27017}
27018extern "C" {
27019    #[link_name = "\u{1}aws_lc_0_38_0_RC4_options"]
27020    pub fn RC4_options() -> *const ::std::os::raw::c_char;
27021}
27022#[repr(C)]
27023#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27024pub struct RIPEMD160state_st {
27025    pub h: [u32; 5usize],
27026    pub Nl: u32,
27027    pub Nh: u32,
27028    pub data: [u8; 64usize],
27029    pub num: ::std::os::raw::c_uint,
27030}
27031#[test]
27032fn bindgen_test_layout_RIPEMD160state_st() {
27033    const UNINIT: ::std::mem::MaybeUninit<RIPEMD160state_st> = ::std::mem::MaybeUninit::uninit();
27034    let ptr = UNINIT.as_ptr();
27035    assert_eq!(
27036        ::std::mem::size_of::<RIPEMD160state_st>(),
27037        96usize,
27038        "Size of RIPEMD160state_st"
27039    );
27040    assert_eq!(
27041        ::std::mem::align_of::<RIPEMD160state_st>(),
27042        4usize,
27043        "Alignment of RIPEMD160state_st"
27044    );
27045    assert_eq!(
27046        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
27047        0usize,
27048        "Offset of field: RIPEMD160state_st::h"
27049    );
27050    assert_eq!(
27051        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
27052        20usize,
27053        "Offset of field: RIPEMD160state_st::Nl"
27054    );
27055    assert_eq!(
27056        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
27057        24usize,
27058        "Offset of field: RIPEMD160state_st::Nh"
27059    );
27060    assert_eq!(
27061        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27062        28usize,
27063        "Offset of field: RIPEMD160state_st::data"
27064    );
27065    assert_eq!(
27066        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
27067        92usize,
27068        "Offset of field: RIPEMD160state_st::num"
27069    );
27070}
27071impl Default for RIPEMD160state_st {
27072    fn default() -> Self {
27073        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27074        unsafe {
27075            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27076            s.assume_init()
27077        }
27078    }
27079}
27080extern "C" {
27081    #[link_name = "\u{1}aws_lc_0_38_0_RIPEMD160_Init"]
27082    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27083}
27084extern "C" {
27085    #[link_name = "\u{1}aws_lc_0_38_0_RIPEMD160_Update"]
27086    pub fn RIPEMD160_Update(
27087        ctx: *mut RIPEMD160_CTX,
27088        data: *const ::std::os::raw::c_void,
27089        len: usize,
27090    ) -> ::std::os::raw::c_int;
27091}
27092extern "C" {
27093    #[link_name = "\u{1}aws_lc_0_38_0_RIPEMD160_Final"]
27094    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27095}
27096extern "C" {
27097    #[link_name = "\u{1}aws_lc_0_38_0_RIPEMD160"]
27098    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
27099}
27100extern "C" {
27101    #[link_name = "\u{1}aws_lc_0_38_0_SIPHASH_24"]
27102    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
27103}
27104extern "C" {
27105    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_experiment_v1"]
27106    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27107}
27108extern "C" {
27109    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_experiment_v2_voprf"]
27110    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27111}
27112extern "C" {
27113    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_experiment_v2_pmb"]
27114    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27115}
27116extern "C" {
27117    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_pst_v1_voprf"]
27118    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27119}
27120extern "C" {
27121    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_pst_v1_pmb"]
27122    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27123}
27124#[repr(C)]
27125#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27126pub struct trust_token_st {
27127    pub data: *mut u8,
27128    pub len: usize,
27129}
27130#[test]
27131fn bindgen_test_layout_trust_token_st() {
27132    const UNINIT: ::std::mem::MaybeUninit<trust_token_st> = ::std::mem::MaybeUninit::uninit();
27133    let ptr = UNINIT.as_ptr();
27134    assert_eq!(
27135        ::std::mem::size_of::<trust_token_st>(),
27136        16usize,
27137        "Size of trust_token_st"
27138    );
27139    assert_eq!(
27140        ::std::mem::align_of::<trust_token_st>(),
27141        8usize,
27142        "Alignment of trust_token_st"
27143    );
27144    assert_eq!(
27145        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27146        0usize,
27147        "Offset of field: trust_token_st::data"
27148    );
27149    assert_eq!(
27150        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
27151        8usize,
27152        "Offset of field: trust_token_st::len"
27153    );
27154}
27155impl Default for trust_token_st {
27156    fn default() -> Self {
27157        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27158        unsafe {
27159            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27160            s.assume_init()
27161        }
27162    }
27163}
27164#[repr(C)]
27165#[derive(Debug, Copy, Clone)]
27166pub struct stack_st_TRUST_TOKEN {
27167    _unused: [u8; 0],
27168}
27169pub type sk_TRUST_TOKEN_free_func =
27170    ::std::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27171pub type sk_TRUST_TOKEN_copy_func =
27172    ::std::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27173pub type sk_TRUST_TOKEN_cmp_func = ::std::option::Option<
27174    unsafe extern "C" fn(
27175        arg1: *const *const TRUST_TOKEN,
27176        arg2: *const *const TRUST_TOKEN,
27177    ) -> ::std::os::raw::c_int,
27178>;
27179pub type sk_TRUST_TOKEN_delete_if_func = ::std::option::Option<
27180    unsafe extern "C" fn(
27181        arg1: *mut TRUST_TOKEN,
27182        arg2: *mut ::std::os::raw::c_void,
27183    ) -> ::std::os::raw::c_int,
27184>;
27185extern "C" {
27186    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_new"]
27187    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27188}
27189extern "C" {
27190    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_free"]
27191    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27192}
27193extern "C" {
27194    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_generate_key"]
27195    pub fn TRUST_TOKEN_generate_key(
27196        method: *const TRUST_TOKEN_METHOD,
27197        out_priv_key: *mut u8,
27198        out_priv_key_len: *mut usize,
27199        max_priv_key_len: usize,
27200        out_pub_key: *mut u8,
27201        out_pub_key_len: *mut usize,
27202        max_pub_key_len: usize,
27203        id: u32,
27204    ) -> ::std::os::raw::c_int;
27205}
27206extern "C" {
27207    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_derive_key_from_secret"]
27208    pub fn TRUST_TOKEN_derive_key_from_secret(
27209        method: *const TRUST_TOKEN_METHOD,
27210        out_priv_key: *mut u8,
27211        out_priv_key_len: *mut usize,
27212        max_priv_key_len: usize,
27213        out_pub_key: *mut u8,
27214        out_pub_key_len: *mut usize,
27215        max_pub_key_len: usize,
27216        id: u32,
27217        secret: *const u8,
27218        secret_len: usize,
27219    ) -> ::std::os::raw::c_int;
27220}
27221extern "C" {
27222    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_new"]
27223    pub fn TRUST_TOKEN_CLIENT_new(
27224        method: *const TRUST_TOKEN_METHOD,
27225        max_batchsize: usize,
27226    ) -> *mut TRUST_TOKEN_CLIENT;
27227}
27228extern "C" {
27229    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_free"]
27230    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27231}
27232extern "C" {
27233    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_add_key"]
27234    pub fn TRUST_TOKEN_CLIENT_add_key(
27235        ctx: *mut TRUST_TOKEN_CLIENT,
27236        out_key_index: *mut usize,
27237        key: *const u8,
27238        key_len: usize,
27239    ) -> ::std::os::raw::c_int;
27240}
27241extern "C" {
27242    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_set_srr_key"]
27243    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27244        ctx: *mut TRUST_TOKEN_CLIENT,
27245        key: *mut EVP_PKEY,
27246    ) -> ::std::os::raw::c_int;
27247}
27248extern "C" {
27249    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_begin_issuance"]
27250    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27251        ctx: *mut TRUST_TOKEN_CLIENT,
27252        out: *mut *mut u8,
27253        out_len: *mut usize,
27254        count: usize,
27255    ) -> ::std::os::raw::c_int;
27256}
27257extern "C" {
27258    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_begin_issuance_over_message"]
27259    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27260        ctx: *mut TRUST_TOKEN_CLIENT,
27261        out: *mut *mut u8,
27262        out_len: *mut usize,
27263        count: usize,
27264        msg: *const u8,
27265        msg_len: usize,
27266    ) -> ::std::os::raw::c_int;
27267}
27268extern "C" {
27269    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_finish_issuance"]
27270    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27271        ctx: *mut TRUST_TOKEN_CLIENT,
27272        out_key_index: *mut usize,
27273        response: *const u8,
27274        response_len: usize,
27275    ) -> *mut stack_st_TRUST_TOKEN;
27276}
27277extern "C" {
27278    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_begin_redemption"]
27279    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27280        ctx: *mut TRUST_TOKEN_CLIENT,
27281        out: *mut *mut u8,
27282        out_len: *mut usize,
27283        token: *const TRUST_TOKEN,
27284        data: *const u8,
27285        data_len: usize,
27286        time: u64,
27287    ) -> ::std::os::raw::c_int;
27288}
27289extern "C" {
27290    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_CLIENT_finish_redemption"]
27291    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27292        ctx: *mut TRUST_TOKEN_CLIENT,
27293        out_rr: *mut *mut u8,
27294        out_rr_len: *mut usize,
27295        out_sig: *mut *mut u8,
27296        out_sig_len: *mut usize,
27297        response: *const u8,
27298        response_len: usize,
27299    ) -> ::std::os::raw::c_int;
27300}
27301extern "C" {
27302    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_new"]
27303    pub fn TRUST_TOKEN_ISSUER_new(
27304        method: *const TRUST_TOKEN_METHOD,
27305        max_batchsize: usize,
27306    ) -> *mut TRUST_TOKEN_ISSUER;
27307}
27308extern "C" {
27309    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_free"]
27310    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27311}
27312extern "C" {
27313    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_add_key"]
27314    pub fn TRUST_TOKEN_ISSUER_add_key(
27315        ctx: *mut TRUST_TOKEN_ISSUER,
27316        key: *const u8,
27317        key_len: usize,
27318    ) -> ::std::os::raw::c_int;
27319}
27320extern "C" {
27321    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_set_srr_key"]
27322    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27323        ctx: *mut TRUST_TOKEN_ISSUER,
27324        key: *mut EVP_PKEY,
27325    ) -> ::std::os::raw::c_int;
27326}
27327extern "C" {
27328    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_set_metadata_key"]
27329    pub fn TRUST_TOKEN_ISSUER_set_metadata_key(
27330        ctx: *mut TRUST_TOKEN_ISSUER,
27331        key: *const u8,
27332        len: usize,
27333    ) -> ::std::os::raw::c_int;
27334}
27335extern "C" {
27336    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_issue"]
27337    pub fn TRUST_TOKEN_ISSUER_issue(
27338        ctx: *const TRUST_TOKEN_ISSUER,
27339        out: *mut *mut u8,
27340        out_len: *mut usize,
27341        out_tokens_issued: *mut usize,
27342        request: *const u8,
27343        request_len: usize,
27344        public_metadata: u32,
27345        private_metadata: u8,
27346        max_issuance: usize,
27347    ) -> ::std::os::raw::c_int;
27348}
27349extern "C" {
27350    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_redeem"]
27351    pub fn TRUST_TOKEN_ISSUER_redeem(
27352        ctx: *const TRUST_TOKEN_ISSUER,
27353        out_public: *mut u32,
27354        out_private: *mut u8,
27355        out_token: *mut *mut TRUST_TOKEN,
27356        out_client_data: *mut *mut u8,
27357        out_client_data_len: *mut usize,
27358        request: *const u8,
27359        request_len: usize,
27360    ) -> ::std::os::raw::c_int;
27361}
27362extern "C" {
27363    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_ISSUER_redeem_over_message"]
27364    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27365        ctx: *const TRUST_TOKEN_ISSUER,
27366        out_public: *mut u32,
27367        out_private: *mut u8,
27368        out_token: *mut *mut TRUST_TOKEN,
27369        out_client_data: *mut *mut u8,
27370        out_client_data_len: *mut usize,
27371        request: *const u8,
27372        request_len: usize,
27373        msg: *const u8,
27374        msg_len: usize,
27375    ) -> ::std::os::raw::c_int;
27376}
27377extern "C" {
27378    #[link_name = "\u{1}aws_lc_0_38_0_TRUST_TOKEN_decode_private_metadata"]
27379    pub fn TRUST_TOKEN_decode_private_metadata(
27380        method: *const TRUST_TOKEN_METHOD,
27381        out_value: *mut u8,
27382        key: *const u8,
27383        key_len: usize,
27384        nonce: *const u8,
27385        nonce_len: usize,
27386        encrypted_bit: u8,
27387    ) -> ::std::os::raw::c_int;
27388}
27389extern "C" {
27390    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_keygen_deterministic"]
27391    pub fn EVP_PKEY_keygen_deterministic(
27392        ctx: *mut EVP_PKEY_CTX,
27393        out_pkey: *mut *mut EVP_PKEY,
27394        seed: *const u8,
27395        seed_len: *mut usize,
27396    ) -> ::std::os::raw::c_int;
27397}
27398extern "C" {
27399    #[link_name = "\u{1}aws_lc_0_38_0_EVP_PKEY_encapsulate_deterministic"]
27400    pub fn EVP_PKEY_encapsulate_deterministic(
27401        ctx: *mut EVP_PKEY_CTX,
27402        ciphertext: *mut u8,
27403        ciphertext_len: *mut usize,
27404        shared_secret: *mut u8,
27405        shared_secret_len: *mut usize,
27406        seed: *const u8,
27407        seed_len: *mut usize,
27408    ) -> ::std::os::raw::c_int;
27409}
27410extern "C" {
27411    #[link_name = "\u{1}aws_lc_0_38_0_ERR_GET_LIB_RUST"]
27412    pub fn ERR_GET_LIB_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27413}
27414extern "C" {
27415    #[link_name = "\u{1}aws_lc_0_38_0_ERR_GET_REASON_RUST"]
27416    pub fn ERR_GET_REASON_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27417}
27418extern "C" {
27419    #[link_name = "\u{1}aws_lc_0_38_0_ERR_GET_FUNC_RUST"]
27420    pub fn ERR_GET_FUNC_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27421}
27422pub type __builtin_va_list = [__va_list_tag; 1usize];
27423#[repr(C)]
27424#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27425pub struct __va_list_tag {
27426    pub gp_offset: ::std::os::raw::c_uint,
27427    pub fp_offset: ::std::os::raw::c_uint,
27428    pub overflow_arg_area: *mut ::std::os::raw::c_void,
27429    pub reg_save_area: *mut ::std::os::raw::c_void,
27430}
27431#[test]
27432fn bindgen_test_layout___va_list_tag() {
27433    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
27434    let ptr = UNINIT.as_ptr();
27435    assert_eq!(
27436        ::std::mem::size_of::<__va_list_tag>(),
27437        24usize,
27438        "Size of __va_list_tag"
27439    );
27440    assert_eq!(
27441        ::std::mem::align_of::<__va_list_tag>(),
27442        8usize,
27443        "Alignment of __va_list_tag"
27444    );
27445    assert_eq!(
27446        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
27447        0usize,
27448        "Offset of field: __va_list_tag::gp_offset"
27449    );
27450    assert_eq!(
27451        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
27452        4usize,
27453        "Offset of field: __va_list_tag::fp_offset"
27454    );
27455    assert_eq!(
27456        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
27457        8usize,
27458        "Offset of field: __va_list_tag::overflow_arg_area"
27459    );
27460    assert_eq!(
27461        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
27462        16usize,
27463        "Offset of field: __va_list_tag::reg_save_area"
27464    );
27465}
27466impl Default for __va_list_tag {
27467    fn default() -> Self {
27468        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27469        unsafe {
27470            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27471            s.assume_init()
27472        }
27473    }
27474}
27475#[repr(C)]
27476#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
27477pub struct CRYPTO_dynlock_value {
27478    pub _address: u8,
27479}