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::doc_markdown,
14    clippy::missing_safety_doc,
15    clippy::must_use_candidate,
16    clippy::not_unsafe_ptr_arg_deref,
17    clippy::ptr_as_ptr,
18    clippy::ptr_offset_with_cast,
19    clippy::pub_underscore_fields,
20    clippy::semicolon_if_nothing_returned,
21    clippy::too_many_lines,
22    clippy::unreadable_literal,
23    clippy::used_underscore_binding,
24    clippy::useless_transmute,
25    dead_code,
26    improper_ctypes,
27    non_camel_case_types,
28    non_snake_case,
29    non_upper_case_globals,
30    unpredictable_function_pointer_comparisons,
31    unused_imports
32)]
33
34
35#[repr(C)]
36#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
37pub struct __BindgenBitfieldUnit<Storage> {
38    storage: Storage,
39}
40impl<Storage> __BindgenBitfieldUnit<Storage> {
41    #[inline]
42    pub const fn new(storage: Storage) -> Self {
43        Self { storage }
44    }
45}
46impl<Storage> __BindgenBitfieldUnit<Storage>
47where
48    Storage: AsRef<[u8]> + AsMut<[u8]>,
49{
50    #[inline]
51    fn extract_bit(byte: u8, index: usize) -> bool {
52        let bit_index = if cfg!(target_endian = "big") {
53            7 - (index % 8)
54        } else {
55            index % 8
56        };
57        let mask = 1 << bit_index;
58        byte & mask == mask
59    }
60    #[inline]
61    pub fn get_bit(&self, index: usize) -> bool {
62        debug_assert!(index / 8 < self.storage.as_ref().len());
63        let byte_index = index / 8;
64        let byte = self.storage.as_ref()[byte_index];
65        Self::extract_bit(byte, index)
66    }
67    #[inline]
68    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
69        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
70        let byte_index = index / 8;
71        let byte = unsafe {
72            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
73        };
74        Self::extract_bit(byte, index)
75    }
76    #[inline]
77    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
78        let bit_index = if cfg!(target_endian = "big") {
79            7 - (index % 8)
80        } else {
81            index % 8
82        };
83        let mask = 1 << bit_index;
84        if val {
85            byte | mask
86        } else {
87            byte & !mask
88        }
89    }
90    #[inline]
91    pub fn set_bit(&mut self, index: usize, val: bool) {
92        debug_assert!(index / 8 < self.storage.as_ref().len());
93        let byte_index = index / 8;
94        let byte = &mut self.storage.as_mut()[byte_index];
95        *byte = Self::change_bit(*byte, index, val);
96    }
97    #[inline]
98    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
99        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
100        let byte_index = index / 8;
101        let byte = unsafe {
102            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
103        };
104        unsafe { *byte = Self::change_bit(*byte, index, val) };
105    }
106    #[inline]
107    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        let mut val = 0;
112        for i in 0..(bit_width as usize) {
113            if self.get_bit(i + bit_offset) {
114                let index = if cfg!(target_endian = "big") {
115                    bit_width as usize - 1 - i
116                } else {
117                    i
118                };
119                val |= 1 << index;
120            }
121        }
122        val
123    }
124    #[inline]
125    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
126        debug_assert!(bit_width <= 64);
127        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
128        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
129        let mut val = 0;
130        for i in 0..(bit_width as usize) {
131            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
132                let index = if cfg!(target_endian = "big") {
133                    bit_width as usize - 1 - i
134                } else {
135                    i
136                };
137                val |= 1 << index;
138            }
139        }
140        val
141    }
142    #[inline]
143    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
144        debug_assert!(bit_width <= 64);
145        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
146        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
147        for i in 0..(bit_width as usize) {
148            let mask = 1 << i;
149            let val_bit_is_set = val & mask == mask;
150            let index = if cfg!(target_endian = "big") {
151                bit_width as usize - 1 - i
152            } else {
153                i
154            };
155            self.set_bit(index + bit_offset, val_bit_is_set);
156        }
157    }
158    #[inline]
159    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
160        debug_assert!(bit_width <= 64);
161        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
162        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
163        for i in 0..(bit_width as usize) {
164            let mask = 1 << i;
165            let val_bit_is_set = val & mask == mask;
166            let index = if cfg!(target_endian = "big") {
167                bit_width as usize - 1 - i
168            } else {
169                i
170            };
171            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
172        }
173    }
174}
175pub const AWSLC_VERSION_NAME: &[u8; 7] = b"AWS-LC\0";
176pub const OPENSSL_VERSION_NUMBER: i32 = 269488255;
177pub const SSLEAY_VERSION_NUMBER: i32 = 269488255;
178pub const AWSLC_API_VERSION: i32 = 35;
179pub const AWSLC_VERSION_NUMBER_STRING: &[u8; 7] = b"1.72.0\0";
180pub const AES_ENCRYPT: i32 = 1;
181pub const AES_DECRYPT: i32 = 0;
182pub const AES_MAXNR: i32 = 14;
183pub const AES_BLOCK_SIZE: i32 = 16;
184pub const SHA_CBLOCK: i32 = 64;
185pub const SHA_DIGEST_LENGTH: i32 = 20;
186pub const SHA224_CBLOCK: i32 = 64;
187pub const SHA224_DIGEST_LENGTH: i32 = 28;
188pub const SHA256_CBLOCK: i32 = 64;
189pub const SHA256_DIGEST_LENGTH: i32 = 32;
190pub const SHA384_CBLOCK: i32 = 128;
191pub const SHA384_DIGEST_LENGTH: i32 = 48;
192pub const SHA512_CBLOCK: i32 = 128;
193pub const SHA512_DIGEST_LENGTH: i32 = 64;
194pub const SHA512_224_DIGEST_LENGTH: i32 = 28;
195pub const SHA512_256_DIGEST_LENGTH: i32 = 32;
196pub const CRYPTO_LOCK: i32 = 1;
197pub const CRYPTO_UNLOCK: i32 = 2;
198pub const CRYPTO_READ: i32 = 4;
199pub const CRYPTO_WRITE: i32 = 8;
200pub const OPENSSL_VERSION_TEXT: &[u8; 42] = b"OpenSSL 1.1.1 (compatible; AWS-LC 1.72.0)\0";
201pub const OPENSSL_VERSION: i32 = 0;
202pub const OPENSSL_CFLAGS: i32 = 1;
203pub const OPENSSL_BUILT_ON: i32 = 2;
204pub const OPENSSL_PLATFORM: i32 = 3;
205pub const OPENSSL_DIR: i32 = 4;
206pub const SSLEAY_VERSION: i32 = 0;
207pub const SSLEAY_CFLAGS: i32 = 1;
208pub const SSLEAY_BUILT_ON: i32 = 2;
209pub const SSLEAY_PLATFORM: i32 = 3;
210pub const SSLEAY_DIR: i32 = 4;
211pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: i32 = 0;
212pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: i32 = 0;
213pub const OPENSSL_INIT_ADD_ALL_CIPHERS: i32 = 0;
214pub const OPENSSL_INIT_ADD_ALL_DIGESTS: i32 = 0;
215pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: i32 = 0;
216pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: i32 = 0;
217pub const OPENSSL_INIT_LOAD_CONFIG: i32 = 0;
218pub const OPENSSL_INIT_NO_LOAD_CONFIG: i32 = 0;
219pub const OPENSSL_INIT_ENGINE_ALL_BUILTIN: i32 = 0;
220pub const OPENSSL_INIT_ATFORK: i32 = 0;
221pub const CRYPTO_MEM_CHECK_ON: i32 = 0;
222pub const ERR_FLAG_STRING: i32 = 1;
223pub const ERR_FLAG_MALLOCED: i32 = 2;
224pub const ERR_LIB_NONE: i32 = 1;
225pub const ERR_LIB_SYS: i32 = 2;
226pub const ERR_LIB_BN: i32 = 3;
227pub const ERR_LIB_RSA: i32 = 4;
228pub const ERR_LIB_DH: i32 = 5;
229pub const ERR_LIB_EVP: i32 = 6;
230pub const ERR_LIB_BUF: i32 = 7;
231pub const ERR_LIB_OBJ: i32 = 8;
232pub const ERR_LIB_PEM: i32 = 9;
233pub const ERR_LIB_DSA: i32 = 10;
234pub const ERR_LIB_X509: i32 = 11;
235pub const ERR_LIB_ASN1: i32 = 12;
236pub const ERR_LIB_CONF: i32 = 13;
237pub const ERR_LIB_CRYPTO: i32 = 14;
238pub const ERR_LIB_EC: i32 = 15;
239pub const ERR_LIB_SSL: i32 = 16;
240pub const ERR_LIB_BIO: i32 = 17;
241pub const ERR_LIB_PKCS7: i32 = 18;
242pub const ERR_LIB_PKCS8: i32 = 19;
243pub const ERR_LIB_X509V3: i32 = 20;
244pub const ERR_LIB_RAND: i32 = 21;
245pub const ERR_LIB_ENGINE: i32 = 22;
246pub const ERR_LIB_OCSP: i32 = 23;
247pub const ERR_LIB_UI: i32 = 24;
248pub const ERR_LIB_COMP: i32 = 25;
249pub const ERR_LIB_ECDSA: i32 = 26;
250pub const ERR_LIB_ECDH: i32 = 27;
251pub const ERR_LIB_HMAC: i32 = 28;
252pub const ERR_LIB_DIGEST: i32 = 29;
253pub const ERR_LIB_CIPHER: i32 = 30;
254pub const ERR_LIB_HKDF: i32 = 31;
255pub const ERR_LIB_TRUST_TOKEN: i32 = 32;
256pub const ERR_LIB_USER: i32 = 33;
257pub const ERR_NUM_LIBS: i32 = 34;
258pub const ERR_LIB_PKCS12: i32 = 35;
259pub const ERR_LIB_DSO: i32 = 36;
260pub const ERR_LIB_OSSL_STORE: i32 = 37;
261pub const ERR_LIB_FIPS: i32 = 38;
262pub const ERR_LIB_CMS: i32 = 39;
263pub const ERR_LIB_TS: i32 = 40;
264pub const ERR_LIB_CT: i32 = 41;
265pub const ERR_LIB_ASYNC: i32 = 42;
266pub const ERR_LIB_KDF: i32 = 43;
267pub const ERR_LIB_SM2: i32 = 44;
268pub const ERR_R_SYS_LIB: i32 = 2;
269pub const ERR_R_BN_LIB: i32 = 3;
270pub const ERR_R_RSA_LIB: i32 = 4;
271pub const ERR_R_DH_LIB: i32 = 5;
272pub const ERR_R_EVP_LIB: i32 = 6;
273pub const ERR_R_BUF_LIB: i32 = 7;
274pub const ERR_R_OBJ_LIB: i32 = 8;
275pub const ERR_R_PEM_LIB: i32 = 9;
276pub const ERR_R_DSA_LIB: i32 = 10;
277pub const ERR_R_X509_LIB: i32 = 11;
278pub const ERR_R_ASN1_LIB: i32 = 12;
279pub const ERR_R_CONF_LIB: i32 = 13;
280pub const ERR_R_CRYPTO_LIB: i32 = 14;
281pub const ERR_R_EC_LIB: i32 = 15;
282pub const ERR_R_SSL_LIB: i32 = 16;
283pub const ERR_R_BIO_LIB: i32 = 17;
284pub const ERR_R_PKCS7_LIB: i32 = 18;
285pub const ERR_R_PKCS8_LIB: i32 = 19;
286pub const ERR_R_X509V3_LIB: i32 = 20;
287pub const ERR_R_RAND_LIB: i32 = 21;
288pub const ERR_R_DSO_LIB: i32 = 36;
289pub const ERR_R_ENGINE_LIB: i32 = 22;
290pub const ERR_R_OCSP_LIB: i32 = 23;
291pub const ERR_R_UI_LIB: i32 = 24;
292pub const ERR_R_COMP_LIB: i32 = 25;
293pub const ERR_R_ECDSA_LIB: i32 = 26;
294pub const ERR_R_ECDH_LIB: i32 = 27;
295pub const ERR_R_FIPS_LIB: i32 = 38;
296pub const ERR_R_CMS_LIB: i32 = 39;
297pub const ERR_R_TS_LIB: i32 = 40;
298pub const ERR_R_HMAC_LIB: i32 = 28;
299pub const ERR_R_USER_LIB: i32 = 33;
300pub const ERR_R_DIGEST_LIB: i32 = 29;
301pub const ERR_R_CIPHER_LIB: i32 = 30;
302pub const ERR_R_HKDF_LIB: i32 = 31;
303pub const ERR_R_TRUST_TOKEN_LIB: i32 = 32;
304pub const ERR_R_FATAL: i32 = 64;
305pub const ERR_R_MALLOC_FAILURE: i32 = 65;
306pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: i32 = 66;
307pub const ERR_R_PASSED_NULL_PARAMETER: i32 = 67;
308pub const ERR_R_INTERNAL_ERROR: i32 = 68;
309pub const ERR_R_OVERFLOW: i32 = 69;
310pub const ERR_ERROR_STRING_BUF_LEN: i32 = 120;
311pub const ERR_TXT_STRING: i32 = 1;
312pub const ERR_TXT_MALLOCED: i32 = 2;
313pub const ERR_NUM_ERRORS: i32 = 16;
314pub const BIO_RR_CONNECT: i32 = 2;
315pub const BIO_RR_ACCEPT: i32 = 3;
316pub const BIO_CB_FREE: i32 = 1;
317pub const BIO_CB_READ: i32 = 2;
318pub const BIO_CB_WRITE: i32 = 3;
319pub const BIO_CB_PUTS: i32 = 4;
320pub const BIO_CB_GETS: i32 = 5;
321pub const BIO_CB_CTRL: i32 = 6;
322pub const BIO_CB_RETURN: i32 = 128;
323pub const BIO_NOCLOSE: i32 = 0;
324pub const BIO_CLOSE: i32 = 1;
325pub const BIO_FP_TEXT: i32 = 16;
326pub const BIO_CTRL_DGRAM_CONNECT: i32 = 31;
327pub const BIO_CTRL_DGRAM_SET_CONNECTED: i32 = 32;
328pub const BIO_CTRL_DGRAM_SET_RECV_TIMEOUT: i32 = 33;
329pub const BIO_CTRL_DGRAM_GET_RECV_TIMEOUT: i32 = 34;
330pub const BIO_CTRL_DGRAM_SET_SEND_TIMEOUT: i32 = 35;
331pub const BIO_CTRL_DGRAM_GET_SEND_TIMEOUT: i32 = 36;
332pub const BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP: i32 = 37;
333pub const BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP: i32 = 38;
334pub const BIO_CTRL_DGRAM_QUERY_MTU: i32 = 40;
335pub const BIO_CTRL_DGRAM_GET_MTU: i32 = 41;
336pub const BIO_CTRL_DGRAM_SET_MTU: i32 = 42;
337pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: i32 = 43;
338pub const BIO_CTRL_DGRAM_SET_PEER: i32 = 44;
339pub const BIO_CTRL_DGRAM_GET_PEER: i32 = 46;
340pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: i32 = 47;
341pub const BIO_CTRL_RESET: i32 = 1;
342pub const BIO_CTRL_EOF: i32 = 2;
343pub const BIO_CTRL_INFO: i32 = 3;
344pub const BIO_CTRL_GET_CLOSE: i32 = 8;
345pub const BIO_CTRL_SET_CLOSE: i32 = 9;
346pub const BIO_CTRL_PENDING: i32 = 10;
347pub const BIO_CTRL_FLUSH: i32 = 11;
348pub const BIO_CTRL_WPENDING: i32 = 13;
349pub const BIO_CTRL_SET_CALLBACK: i32 = 14;
350pub const BIO_CTRL_GET_CALLBACK: i32 = 15;
351pub const BIO_CTRL_SET: i32 = 4;
352pub const BIO_CTRL_GET: i32 = 5;
353pub const BIO_CTRL_PUSH: i32 = 6;
354pub const BIO_CTRL_POP: i32 = 7;
355pub const BIO_CTRL_DUP: i32 = 12;
356pub const BIO_CTRL_SET_FILENAME: i32 = 30;
357pub const BIO_FLAGS_READ: i32 = 1;
358pub const BIO_FLAGS_WRITE: i32 = 2;
359pub const BIO_FLAGS_IO_SPECIAL: i32 = 4;
360pub const BIO_FLAGS_RWS: i32 = 7;
361pub const BIO_FLAGS_SHOULD_RETRY: i32 = 8;
362pub const BIO_FLAGS_BASE64_NO_NL: i32 = 256;
363pub const BIO_FLAGS_MEM_RDONLY: i32 = 512;
364pub const BIO_TYPE_DESCRIPTOR: i32 = 256;
365pub const BIO_TYPE_FILTER: i32 = 512;
366pub const BIO_TYPE_SOURCE_SINK: i32 = 1024;
367pub const BIO_TYPE_NONE: i32 = 0;
368pub const BIO_TYPE_MEM: i32 = 1025;
369pub const BIO_TYPE_FILE: i32 = 1026;
370pub const BIO_TYPE_FD: i32 = 1284;
371pub const BIO_TYPE_SOCKET: i32 = 1285;
372pub const BIO_TYPE_NULL: i32 = 1030;
373pub const BIO_TYPE_SSL: i32 = 519;
374pub const BIO_TYPE_MD: i32 = 520;
375pub const BIO_TYPE_BUFFER: i32 = 521;
376pub const BIO_TYPE_CIPHER: i32 = 522;
377pub const BIO_TYPE_BASE64: i32 = 523;
378pub const BIO_TYPE_CONNECT: i32 = 1292;
379pub const BIO_TYPE_ACCEPT: i32 = 1293;
380pub const BIO_TYPE_PROXY_CLIENT: i32 = 526;
381pub const BIO_TYPE_PROXY_SERVER: i32 = 527;
382pub const BIO_TYPE_NBIO_TEST: i32 = 528;
383pub const BIO_TYPE_NULL_FILTER: i32 = 529;
384pub const BIO_TYPE_BER: i32 = 530;
385pub const BIO_TYPE_BIO: i32 = 1043;
386pub const BIO_TYPE_LINEBUFFER: i32 = 532;
387pub const BIO_TYPE_DGRAM: i32 = 1301;
388pub const BIO_TYPE_ASN1: i32 = 534;
389pub const BIO_TYPE_COMP: i32 = 535;
390pub const BIO_TYPE_START: i32 = 128;
391pub const BIO_C_SET_CONNECT: i32 = 100;
392pub const BIO_C_DO_STATE_MACHINE: i32 = 101;
393pub const BIO_C_SET_NBIO: i32 = 102;
394pub const BIO_C_SET_PROXY_PARAM: i32 = 103;
395pub const BIO_C_SET_FD: i32 = 104;
396pub const BIO_C_GET_FD: i32 = 105;
397pub const BIO_C_SET_FILE_PTR: i32 = 106;
398pub const BIO_C_GET_FILE_PTR: i32 = 107;
399pub const BIO_C_SET_FILENAME: i32 = 108;
400pub const BIO_C_SET_SSL: i32 = 109;
401pub const BIO_C_GET_SSL: i32 = 110;
402pub const BIO_C_SET_MD: i32 = 111;
403pub const BIO_C_GET_MD: i32 = 112;
404pub const BIO_C_GET_CIPHER_STATUS: i32 = 113;
405pub const BIO_C_SET_BUF_MEM: i32 = 114;
406pub const BIO_C_GET_BUF_MEM_PTR: i32 = 115;
407pub const BIO_C_GET_BUFF_NUM_LINES: i32 = 116;
408pub const BIO_C_SET_BUFF_SIZE: i32 = 117;
409pub const BIO_C_SET_ACCEPT: i32 = 118;
410pub const BIO_C_SSL_MODE: i32 = 119;
411pub const BIO_C_GET_MD_CTX: i32 = 120;
412pub const BIO_C_GET_PROXY_PARAM: i32 = 121;
413pub const BIO_C_SET_BUFF_READ_DATA: i32 = 122;
414pub const BIO_C_GET_ACCEPT: i32 = 124;
415pub const BIO_C_FILE_SEEK: i32 = 128;
416pub const BIO_C_GET_CIPHER_CTX: i32 = 129;
417pub const BIO_C_SET_BUF_MEM_EOF_RETURN: i32 = 130;
418pub const BIO_C_SET_BIND_MODE: i32 = 131;
419pub const BIO_C_GET_BIND_MODE: i32 = 132;
420pub const BIO_C_FILE_TELL: i32 = 133;
421pub const BIO_C_GET_SOCKS: i32 = 134;
422pub const BIO_C_SET_SOCKS: i32 = 135;
423pub const BIO_C_SET_WRITE_BUF_SIZE: i32 = 136;
424pub const BIO_C_GET_WRITE_BUF_SIZE: i32 = 137;
425pub const BIO_C_GET_WRITE_GUARANTEE: i32 = 140;
426pub const BIO_C_GET_READ_REQUEST: i32 = 141;
427pub const BIO_C_SHUTDOWN_WR: i32 = 142;
428pub const BIO_C_NREAD0: i32 = 143;
429pub const BIO_C_NREAD: i32 = 144;
430pub const BIO_C_NWRITE0: i32 = 145;
431pub const BIO_C_NWRITE: i32 = 146;
432pub const BIO_C_RESET_READ_REQUEST: i32 = 147;
433pub const BIO_C_SET_MD_CTX: i32 = 148;
434pub const BIO_C_SET_PREFIX: i32 = 149;
435pub const BIO_C_GET_PREFIX: i32 = 150;
436pub const BIO_C_SET_SUFFIX: i32 = 151;
437pub const BIO_C_GET_SUFFIX: i32 = 152;
438pub const BIO_C_SET_EX_ARG: i32 = 153;
439pub const BIO_C_GET_EX_ARG: i32 = 154;
440pub const BIO_R_BAD_FOPEN_MODE: i32 = 100;
441pub const BIO_R_BROKEN_PIPE: i32 = 101;
442pub const BIO_R_CONNECT_ERROR: i32 = 102;
443pub const BIO_R_ERROR_SETTING_NBIO: i32 = 103;
444pub const BIO_R_INVALID_ARGUMENT: i32 = 104;
445pub const BIO_R_IN_USE: i32 = 105;
446pub const BIO_R_KEEPALIVE: i32 = 106;
447pub const BIO_R_NBIO_CONNECT_ERROR: i32 = 107;
448pub const BIO_R_NO_HOSTNAME_SPECIFIED: i32 = 108;
449pub const BIO_R_NO_PORT_SPECIFIED: i32 = 109;
450pub const BIO_R_NO_SUCH_FILE: i32 = 110;
451pub const BIO_R_NULL_PARAMETER: i32 = 111;
452pub const BIO_R_SYS_LIB: i32 = 112;
453pub const BIO_R_UNABLE_TO_CREATE_SOCKET: i32 = 113;
454pub const BIO_R_UNINITIALIZED: i32 = 114;
455pub const BIO_R_UNSUPPORTED_METHOD: i32 = 115;
456pub const BIO_R_WRITE_TO_READ_ONLY_BIO: i32 = 116;
457pub const BN_BITS2: i32 = 64;
458pub const BN_DEC_FMT1: &[u8; 4] = b"%lu\0";
459pub const BN_HEX_FMT1: &[u8; 4] = b"%lx\0";
460pub const BN_HEX_FMT2: &[u8; 7] = b"%016lx\0";
461pub const BN_RAND_TOP_ANY: i32 = -1;
462pub const BN_RAND_TOP_ONE: i32 = 0;
463pub const BN_RAND_TOP_TWO: i32 = 1;
464pub const BN_RAND_BOTTOM_ANY: i32 = 0;
465pub const BN_RAND_BOTTOM_ODD: i32 = 1;
466pub const BN_GENCB_GENERATED: i32 = 0;
467pub const BN_GENCB_PRIME_TEST: i32 = 1;
468pub const BN_prime_checks_for_validation: i32 = 64;
469pub const BN_prime_checks_for_generation: i32 = 0;
470pub const BN_prime_checks: i32 = 64;
471pub const BN_FLG_MALLOCED: i32 = 1;
472pub const BN_FLG_STATIC_DATA: i32 = 2;
473pub const BN_R_ARG2_LT_ARG3: i32 = 100;
474pub const BN_R_BAD_RECIPROCAL: i32 = 101;
475pub const BN_R_BIGNUM_TOO_LONG: i32 = 102;
476pub const BN_R_BITS_TOO_SMALL: i32 = 103;
477pub const BN_R_CALLED_WITH_EVEN_MODULUS: i32 = 104;
478pub const BN_R_DIV_BY_ZERO: i32 = 105;
479pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: i32 = 106;
480pub const BN_R_INPUT_NOT_REDUCED: i32 = 107;
481pub const BN_R_INVALID_RANGE: i32 = 108;
482pub const BN_R_NEGATIVE_NUMBER: i32 = 109;
483pub const BN_R_NOT_A_SQUARE: i32 = 110;
484pub const BN_R_NOT_INITIALIZED: i32 = 111;
485pub const BN_R_NO_INVERSE: i32 = 112;
486pub const BN_R_PRIVATE_KEY_TOO_LARGE: i32 = 113;
487pub const BN_R_P_IS_NOT_PRIME: i32 = 114;
488pub const BN_R_TOO_MANY_ITERATIONS: i32 = 115;
489pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: i32 = 116;
490pub const BN_R_BAD_ENCODING: i32 = 117;
491pub const BN_R_ENCODE_ERROR: i32 = 118;
492pub const BN_R_INVALID_INPUT: i32 = 119;
493pub const BN_F_BN_GENERATE_PRIME_EX: i32 = 0;
494pub const V_ASN1_UNIVERSAL: i32 = 0;
495pub const V_ASN1_APPLICATION: i32 = 64;
496pub const V_ASN1_CONTEXT_SPECIFIC: i32 = 128;
497pub const V_ASN1_PRIVATE: i32 = 192;
498pub const V_ASN1_CONSTRUCTED: i32 = 32;
499pub const V_ASN1_PRIMITIVE_TAG: i32 = 31;
500pub const V_ASN1_MAX_UNIVERSAL: i32 = 255;
501pub const V_ASN1_UNDEF: i32 = -1;
502pub const V_ASN1_OTHER: i32 = -3;
503pub const V_ASN1_ANY: i32 = -4;
504pub const V_ASN1_EOC: i32 = 0;
505pub const V_ASN1_BOOLEAN: i32 = 1;
506pub const V_ASN1_INTEGER: i32 = 2;
507pub const V_ASN1_BIT_STRING: i32 = 3;
508pub const V_ASN1_OCTET_STRING: i32 = 4;
509pub const V_ASN1_NULL: i32 = 5;
510pub const V_ASN1_OBJECT: i32 = 6;
511pub const V_ASN1_OBJECT_DESCRIPTOR: i32 = 7;
512pub const V_ASN1_EXTERNAL: i32 = 8;
513pub const V_ASN1_REAL: i32 = 9;
514pub const V_ASN1_ENUMERATED: i32 = 10;
515pub const V_ASN1_UTF8STRING: i32 = 12;
516pub const V_ASN1_SEQUENCE: i32 = 16;
517pub const V_ASN1_SET: i32 = 17;
518pub const V_ASN1_NUMERICSTRING: i32 = 18;
519pub const V_ASN1_PRINTABLESTRING: i32 = 19;
520pub const V_ASN1_T61STRING: i32 = 20;
521pub const V_ASN1_TELETEXSTRING: i32 = 20;
522pub const V_ASN1_VIDEOTEXSTRING: i32 = 21;
523pub const V_ASN1_IA5STRING: i32 = 22;
524pub const V_ASN1_UTCTIME: i32 = 23;
525pub const V_ASN1_GENERALIZEDTIME: i32 = 24;
526pub const V_ASN1_GRAPHICSTRING: i32 = 25;
527pub const V_ASN1_ISO64STRING: i32 = 26;
528pub const V_ASN1_VISIBLESTRING: i32 = 26;
529pub const V_ASN1_GENERALSTRING: i32 = 27;
530pub const V_ASN1_UNIVERSALSTRING: i32 = 28;
531pub const V_ASN1_BMPSTRING: i32 = 30;
532pub const V_ASN1_NEG: i32 = 256;
533pub const V_ASN1_NEG_INTEGER: i32 = 258;
534pub const V_ASN1_NEG_ENUMERATED: i32 = 266;
535pub const B_ASN1_NUMERICSTRING: i32 = 1;
536pub const B_ASN1_PRINTABLESTRING: i32 = 2;
537pub const B_ASN1_T61STRING: i32 = 4;
538pub const B_ASN1_TELETEXSTRING: i32 = 4;
539pub const B_ASN1_VIDEOTEXSTRING: i32 = 8;
540pub const B_ASN1_IA5STRING: i32 = 16;
541pub const B_ASN1_GRAPHICSTRING: i32 = 32;
542pub const B_ASN1_ISO64STRING: i32 = 64;
543pub const B_ASN1_VISIBLESTRING: i32 = 64;
544pub const B_ASN1_GENERALSTRING: i32 = 128;
545pub const B_ASN1_UNIVERSALSTRING: i32 = 256;
546pub const B_ASN1_OCTET_STRING: i32 = 512;
547pub const B_ASN1_BIT_STRING: i32 = 1024;
548pub const B_ASN1_BMPSTRING: i32 = 2048;
549pub const B_ASN1_UNKNOWN: i32 = 4096;
550pub const B_ASN1_UTF8STRING: i32 = 8192;
551pub const B_ASN1_UTCTIME: i32 = 16384;
552pub const B_ASN1_GENERALIZEDTIME: i32 = 32768;
553pub const B_ASN1_SEQUENCE: i32 = 65536;
554pub const ASN1_BOOLEAN_FALSE: i32 = 0;
555pub const ASN1_BOOLEAN_TRUE: i32 = 255;
556pub const ASN1_BOOLEAN_NONE: i32 = -1;
557pub const ASN1_STRING_FLAG_BITS_LEFT: i32 = 8;
558pub const MBSTRING_FLAG: i32 = 4096;
559pub const MBSTRING_UTF8: i32 = 4096;
560pub const MBSTRING_ASC: i32 = 4097;
561pub const MBSTRING_BMP: i32 = 4098;
562pub const MBSTRING_UNIV: i32 = 4100;
563pub const DIRSTRING_TYPE: i32 = 10246;
564pub const PKCS9STRING_TYPE: i32 = 10262;
565pub const STABLE_NO_MASK: i32 = 2;
566pub const B_ASN1_DIRECTORYSTRING: i32 = 10502;
567pub const B_ASN1_DISPLAYTEXT: i32 = 10320;
568pub const B_ASN1_TIME: i32 = 49152;
569pub const ASN1_STRFLGS_ESC_2253: i32 = 1;
570pub const ASN1_STRFLGS_ESC_CTRL: i32 = 2;
571pub const ASN1_STRFLGS_ESC_MSB: i32 = 4;
572pub const ASN1_STRFLGS_ESC_QUOTE: i32 = 8;
573pub const ASN1_STRFLGS_UTF8_CONVERT: i32 = 16;
574pub const ASN1_STRFLGS_IGNORE_TYPE: i32 = 32;
575pub const ASN1_STRFLGS_SHOW_TYPE: i32 = 64;
576pub const ASN1_STRFLGS_DUMP_ALL: i32 = 128;
577pub const ASN1_STRFLGS_DUMP_UNKNOWN: i32 = 256;
578pub const ASN1_STRFLGS_DUMP_DER: i32 = 512;
579pub const ASN1_STRFLGS_RFC2253: i32 = 791;
580pub const B_ASN1_PRINTABLE: i32 = 81175;
581pub const ASN1_R_ASN1_LENGTH_MISMATCH: i32 = 100;
582pub const ASN1_R_AUX_ERROR: i32 = 101;
583pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: i32 = 102;
584pub const ASN1_R_BAD_OBJECT_HEADER: i32 = 103;
585pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: i32 = 104;
586pub const ASN1_R_BN_LIB: i32 = 105;
587pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: i32 = 106;
588pub const ASN1_R_BUFFER_TOO_SMALL: i32 = 107;
589pub const ASN1_R_CONTEXT_NOT_INITIALISED: i32 = 108;
590pub const ASN1_R_DECODE_ERROR: i32 = 109;
591pub const ASN1_R_DEPTH_EXCEEDED: i32 = 110;
592pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: i32 = 111;
593pub const ASN1_R_ENCODE_ERROR: i32 = 112;
594pub const ASN1_R_ERROR_GETTING_TIME: i32 = 113;
595pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: i32 = 114;
596pub const ASN1_R_EXPECTING_AN_INTEGER: i32 = 115;
597pub const ASN1_R_EXPECTING_AN_OBJECT: i32 = 116;
598pub const ASN1_R_EXPECTING_A_BOOLEAN: i32 = 117;
599pub const ASN1_R_EXPECTING_A_TIME: i32 = 118;
600pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: i32 = 119;
601pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: i32 = 120;
602pub const ASN1_R_FIELD_MISSING: i32 = 121;
603pub const ASN1_R_FIRST_NUM_TOO_LARGE: i32 = 122;
604pub const ASN1_R_HEADER_TOO_LONG: i32 = 123;
605pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: i32 = 124;
606pub const ASN1_R_ILLEGAL_BOOLEAN: i32 = 125;
607pub const ASN1_R_ILLEGAL_CHARACTERS: i32 = 126;
608pub const ASN1_R_ILLEGAL_FORMAT: i32 = 127;
609pub const ASN1_R_ILLEGAL_HEX: i32 = 128;
610pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: i32 = 129;
611pub const ASN1_R_ILLEGAL_INTEGER: i32 = 130;
612pub const ASN1_R_ILLEGAL_NESTED_TAGGING: i32 = 131;
613pub const ASN1_R_ILLEGAL_NULL: i32 = 132;
614pub const ASN1_R_ILLEGAL_NULL_VALUE: i32 = 133;
615pub const ASN1_R_ILLEGAL_OBJECT: i32 = 134;
616pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: i32 = 135;
617pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: i32 = 136;
618pub const ASN1_R_ILLEGAL_TAGGED_ANY: i32 = 137;
619pub const ASN1_R_ILLEGAL_TIME_VALUE: i32 = 138;
620pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: i32 = 139;
621pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: i32 = 140;
622pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 141;
623pub const ASN1_R_INVALID_BMPSTRING: i32 = 142;
624pub const ASN1_R_INVALID_DIGIT: i32 = 143;
625pub const ASN1_R_INVALID_MODIFIER: i32 = 144;
626pub const ASN1_R_INVALID_NUMBER: i32 = 145;
627pub const ASN1_R_INVALID_OBJECT_ENCODING: i32 = 146;
628pub const ASN1_R_INVALID_SEPARATOR: i32 = 147;
629pub const ASN1_R_INVALID_TIME_FORMAT: i32 = 148;
630pub const ASN1_R_INVALID_UNIVERSALSTRING: i32 = 149;
631pub const ASN1_R_INVALID_UTF8STRING: i32 = 150;
632pub const ASN1_R_LIST_ERROR: i32 = 151;
633pub const ASN1_R_MISSING_ASN1_EOS: i32 = 152;
634pub const ASN1_R_MISSING_EOC: i32 = 153;
635pub const ASN1_R_MISSING_SECOND_NUMBER: i32 = 154;
636pub const ASN1_R_MISSING_VALUE: i32 = 155;
637pub const ASN1_R_MSTRING_NOT_UNIVERSAL: i32 = 156;
638pub const ASN1_R_MSTRING_WRONG_TAG: i32 = 157;
639pub const ASN1_R_NESTED_ASN1_ERROR: i32 = 158;
640pub const ASN1_R_NESTED_ASN1_STRING: i32 = 159;
641pub const ASN1_R_NON_HEX_CHARACTERS: i32 = 160;
642pub const ASN1_R_NOT_ASCII_FORMAT: i32 = 161;
643pub const ASN1_R_NOT_ENOUGH_DATA: i32 = 162;
644pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: i32 = 163;
645pub const ASN1_R_NULL_IS_WRONG_LENGTH: i32 = 164;
646pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: i32 = 165;
647pub const ASN1_R_ODD_NUMBER_OF_CHARS: i32 = 166;
648pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: i32 = 167;
649pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: i32 = 168;
650pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: i32 = 169;
651pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: i32 = 170;
652pub const ASN1_R_SHORT_LINE: i32 = 171;
653pub const ASN1_R_STREAMING_NOT_SUPPORTED: i32 = 172;
654pub const ASN1_R_STRING_TOO_LONG: i32 = 173;
655pub const ASN1_R_STRING_TOO_SHORT: i32 = 174;
656pub const ASN1_R_TAG_VALUE_TOO_HIGH: i32 = 175;
657pub const ASN1_R_TIME_NOT_ASCII_FORMAT: i32 = 176;
658pub const ASN1_R_TOO_LONG: i32 = 177;
659pub const ASN1_R_TYPE_NOT_CONSTRUCTED: i32 = 178;
660pub const ASN1_R_TYPE_NOT_PRIMITIVE: i32 = 179;
661pub const ASN1_R_UNEXPECTED_EOC: i32 = 180;
662pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: i32 = 181;
663pub const ASN1_R_UNKNOWN_FORMAT: i32 = 182;
664pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: i32 = 183;
665pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: i32 = 184;
666pub const ASN1_R_UNKNOWN_TAG: i32 = 185;
667pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: i32 = 186;
668pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 187;
669pub const ASN1_R_UNSUPPORTED_TYPE: i32 = 188;
670pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: i32 = 189;
671pub const ASN1_R_WRONG_TAG: i32 = 190;
672pub const ASN1_R_WRONG_TYPE: i32 = 191;
673pub const ASN1_R_NESTED_TOO_DEEP: i32 = 192;
674pub const ASN1_R_BAD_TEMPLATE: i32 = 193;
675pub const ASN1_R_INVALID_BIT_STRING_PADDING: i32 = 194;
676pub const ASN1_R_WRONG_INTEGER_TYPE: i32 = 195;
677pub const ASN1_R_INVALID_INTEGER: i32 = 196;
678pub const ASN1_TFLG_OPTIONAL: i32 = 1;
679pub const ASN1_TFLG_SET_OF: i32 = 2;
680pub const ASN1_TFLG_SEQUENCE_OF: i32 = 4;
681pub const ASN1_TFLG_SK_MASK: i32 = 6;
682pub const ASN1_TFLG_IMPTAG: i32 = 8;
683pub const ASN1_TFLG_EXPTAG: i32 = 16;
684pub const ASN1_TFLG_TAG_MASK: i32 = 24;
685pub const ASN1_TFLG_UNIVERSAL: i32 = 0;
686pub const ASN1_TFLG_APPLICATION: i32 = 64;
687pub const ASN1_TFLG_CONTEXT: i32 = 128;
688pub const ASN1_TFLG_PRIVATE: i32 = 192;
689pub const ASN1_TFLG_TAG_CLASS: i32 = 192;
690pub const ASN1_TFLG_ADB_MASK: i32 = 768;
691pub const ASN1_TFLG_ADB_OID: i32 = 256;
692pub const ASN1_TFLG_COMBINE: i32 = 1024;
693pub const ASN1_ITYPE_PRIMITIVE: i32 = 0;
694pub const ASN1_ITYPE_SEQUENCE: i32 = 1;
695pub const ASN1_ITYPE_CHOICE: i32 = 2;
696pub const ASN1_ITYPE_EXTERN: i32 = 4;
697pub const ASN1_ITYPE_MSTRING: i32 = 5;
698pub const ASN1_AFLG_REFCOUNT: i32 = 1;
699pub const ASN1_AFLG_ENCODING: i32 = 2;
700pub const ASN1_OP_NEW_PRE: i32 = 0;
701pub const ASN1_OP_NEW_POST: i32 = 1;
702pub const ASN1_OP_FREE_PRE: i32 = 2;
703pub const ASN1_OP_FREE_POST: i32 = 3;
704pub const ASN1_OP_D2I_PRE: i32 = 4;
705pub const ASN1_OP_D2I_POST: i32 = 5;
706pub const ASN1_OP_PRINT_PRE: i32 = 8;
707pub const ASN1_OP_PRINT_POST: i32 = 9;
708pub const ASN1_OP_STREAM_PRE: i32 = 10;
709pub const ASN1_OP_STREAM_POST: i32 = 11;
710pub const ASN1_OP_DETACHED_PRE: i32 = 12;
711pub const ASN1_OP_DETACHED_POST: i32 = 13;
712pub const BLAKE2B256_DIGEST_LENGTH: i32 = 32;
713pub const BLAKE2B_CBLOCK: i32 = 128;
714pub const BF_ENCRYPT: i32 = 1;
715pub const BF_DECRYPT: i32 = 0;
716pub const BF_ROUNDS: i32 = 16;
717pub const BF_BLOCK: i32 = 8;
718pub const CBS_ASN1_TAG_SHIFT: i32 = 24;
719pub const CBS_ASN1_CONSTRUCTED: i32 = 536870912;
720pub const CBS_ASN1_UNIVERSAL: i32 = 0;
721pub const CBS_ASN1_APPLICATION: i32 = 1073741824;
722pub const CBS_ASN1_CONTEXT_SPECIFIC: i64 = 2147483648;
723pub const CBS_ASN1_PRIVATE: i64 = 3221225472;
724pub const CBS_ASN1_CLASS_MASK: i64 = 3221225472;
725pub const CBS_ASN1_TAG_NUMBER_MASK: i32 = 536870911;
726pub const CBS_ASN1_BOOLEAN: i32 = 1;
727pub const CBS_ASN1_INTEGER: i32 = 2;
728pub const CBS_ASN1_BITSTRING: i32 = 3;
729pub const CBS_ASN1_OCTETSTRING: i32 = 4;
730pub const CBS_ASN1_NULL: i32 = 5;
731pub const CBS_ASN1_OBJECT: i32 = 6;
732pub const CBS_ASN1_ENUMERATED: i32 = 10;
733pub const CBS_ASN1_UTF8STRING: i32 = 12;
734pub const CBS_ASN1_SEQUENCE: i32 = 536870928;
735pub const CBS_ASN1_SET: i32 = 536870929;
736pub const CBS_ASN1_NUMERICSTRING: i32 = 18;
737pub const CBS_ASN1_PRINTABLESTRING: i32 = 19;
738pub const CBS_ASN1_T61STRING: i32 = 20;
739pub const CBS_ASN1_VIDEOTEXSTRING: i32 = 21;
740pub const CBS_ASN1_IA5STRING: i32 = 22;
741pub const CBS_ASN1_UTCTIME: i32 = 23;
742pub const CBS_ASN1_GENERALIZEDTIME: i32 = 24;
743pub const CBS_ASN1_GRAPHICSTRING: i32 = 25;
744pub const CBS_ASN1_VISIBLESTRING: i32 = 26;
745pub const CBS_ASN1_GENERALSTRING: i32 = 27;
746pub const CBS_ASN1_UNIVERSALSTRING: i32 = 28;
747pub const CBS_ASN1_BMPSTRING: i32 = 30;
748pub const EVP_CIPH_STREAM_CIPHER: i32 = 0;
749pub const EVP_CIPH_ECB_MODE: i32 = 1;
750pub const EVP_CIPH_CBC_MODE: i32 = 2;
751pub const EVP_CIPH_CFB_MODE: i32 = 3;
752pub const EVP_CIPH_OFB_MODE: i32 = 4;
753pub const EVP_CIPH_CTR_MODE: i32 = 5;
754pub const EVP_CIPH_GCM_MODE: i32 = 6;
755pub const EVP_CIPH_XTS_MODE: i32 = 7;
756pub const EVP_CIPH_CCM_MODE: i32 = 8;
757pub const EVP_CIPH_FLAG_LENGTH_BITS: i32 = 8192;
758pub const EVP_CIPH_OCB_MODE: i32 = 9;
759pub const EVP_CIPH_WRAP_MODE: i32 = 10;
760pub const EVP_CIPH_VARIABLE_LENGTH: i32 = 64;
761pub const EVP_CIPH_ALWAYS_CALL_INIT: i32 = 128;
762pub const EVP_CIPH_CUSTOM_IV: i32 = 256;
763pub const EVP_CIPH_CTRL_INIT: i32 = 512;
764pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: i32 = 1024;
765pub const EVP_CIPH_FLAG_AEAD_CIPHER: i32 = 2048;
766pub const EVP_CIPH_CUSTOM_COPY: i32 = 4096;
767pub const EVP_CIPH_FLAG_NON_FIPS_ALLOW: i32 = 0;
768pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: i32 = 0;
769pub const EVP_CIPH_NO_PADDING: i32 = 2048;
770pub const EVP_CTRL_INIT: i32 = 0;
771pub const EVP_CTRL_SET_KEY_LENGTH: i32 = 1;
772pub const EVP_CTRL_GET_RC2_KEY_BITS: i32 = 2;
773pub const EVP_CTRL_SET_RC2_KEY_BITS: i32 = 3;
774pub const EVP_CTRL_GET_RC5_ROUNDS: i32 = 4;
775pub const EVP_CTRL_SET_RC5_ROUNDS: i32 = 5;
776pub const EVP_CTRL_RAND_KEY: i32 = 6;
777pub const EVP_CTRL_PBE_PRF_NID: i32 = 7;
778pub const EVP_CTRL_COPY: i32 = 8;
779pub const EVP_CTRL_AEAD_SET_IVLEN: i32 = 9;
780pub const EVP_CTRL_AEAD_GET_TAG: i32 = 16;
781pub const EVP_CTRL_AEAD_SET_TAG: i32 = 17;
782pub const EVP_CTRL_AEAD_SET_IV_FIXED: i32 = 18;
783pub const EVP_CTRL_GCM_IV_GEN: i32 = 19;
784pub const EVP_CTRL_CCM_SET_L: i32 = 20;
785pub const EVP_CTRL_AEAD_SET_MAC_KEY: i32 = 23;
786pub const EVP_CTRL_GCM_SET_IV_INV: i32 = 24;
787pub const EVP_CTRL_GET_IVLEN: i32 = 25;
788pub const EVP_GCM_TLS_FIXED_IV_LEN: i32 = 4;
789pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: i32 = 8;
790pub const EVP_GCM_TLS_TAG_LEN: i32 = 16;
791pub const EVP_CTRL_GCM_SET_IVLEN: i32 = 9;
792pub const EVP_CTRL_GCM_GET_TAG: i32 = 16;
793pub const EVP_CTRL_GCM_SET_TAG: i32 = 17;
794pub const EVP_CTRL_GCM_SET_IV_FIXED: i32 = 18;
795pub const EVP_MAX_KEY_LENGTH: i32 = 64;
796pub const EVP_MAX_IV_LENGTH: i32 = 16;
797pub const EVP_MAX_BLOCK_LENGTH: i32 = 32;
798pub const EVP_CTRL_AEAD_TLS1_AAD: i32 = 22;
799pub const EVP_AEAD_TLS1_AAD_LEN: i32 = 13;
800pub const CIPHER_R_AES_KEY_SETUP_FAILED: i32 = 100;
801pub const CIPHER_R_BAD_DECRYPT: i32 = 101;
802pub const CIPHER_R_BAD_KEY_LENGTH: i32 = 102;
803pub const CIPHER_R_BUFFER_TOO_SMALL: i32 = 103;
804pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: i32 = 104;
805pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: i32 = 105;
806pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: i32 = 106;
807pub const CIPHER_R_INITIALIZATION_ERROR: i32 = 107;
808pub const CIPHER_R_INPUT_NOT_INITIALIZED: i32 = 108;
809pub const CIPHER_R_INVALID_AD_SIZE: i32 = 109;
810pub const CIPHER_R_INVALID_KEY_LENGTH: i32 = 110;
811pub const CIPHER_R_INVALID_NONCE_SIZE: i32 = 111;
812pub const CIPHER_R_INVALID_OPERATION: i32 = 112;
813pub const CIPHER_R_IV_TOO_LARGE: i32 = 113;
814pub const CIPHER_R_NO_CIPHER_SET: i32 = 114;
815pub const CIPHER_R_OUTPUT_ALIASES_INPUT: i32 = 115;
816pub const CIPHER_R_TAG_TOO_LARGE: i32 = 116;
817pub const CIPHER_R_TOO_LARGE: i32 = 117;
818pub const CIPHER_R_UNSUPPORTED_AD_SIZE: i32 = 118;
819pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: i32 = 119;
820pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: i32 = 120;
821pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: i32 = 121;
822pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: i32 = 122;
823pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: i32 = 123;
824pub const CIPHER_R_NO_DIRECTION_SET: i32 = 124;
825pub const CIPHER_R_INVALID_NONCE: i32 = 125;
826pub const CIPHER_R_XTS_DUPLICATED_KEYS: i32 = 138;
827pub const CIPHER_R_XTS_DATA_UNIT_IS_TOO_LARGE: i32 = 139;
828pub const CIPHER_R_CTRL_OPERATION_NOT_PERFORMED: i32 = 140;
829pub const CIPHER_R_SERIALIZATION_INVALID_EVP_AEAD_CTX: i32 = 141;
830pub const CIPHER_R_ALIGNMENT_CHANGED: i32 = 142;
831pub const CIPHER_R_SERIALIZATION_INVALID_SERDE_VERSION: i32 = 143;
832pub const CIPHER_R_SERIALIZATION_INVALID_CIPHER_ID: i32 = 144;
833pub const CONF_MFLAGS_DEFAULT_SECTION: i32 = 0;
834pub const CONF_MFLAGS_IGNORE_MISSING_FILE: i32 = 0;
835pub const CONF_R_LIST_CANNOT_BE_NULL: i32 = 100;
836pub const CONF_R_MISSING_CLOSE_SQUARE_BRACKET: i32 = 101;
837pub const CONF_R_MISSING_EQUAL_SIGN: i32 = 102;
838pub const CONF_R_NO_CLOSE_BRACE: i32 = 103;
839pub const CONF_R_UNABLE_TO_CREATE_NEW_SECTION: i32 = 104;
840pub const CONF_R_VARIABLE_HAS_NO_VALUE: i32 = 105;
841pub const CONF_R_VARIABLE_EXPANSION_TOO_LONG: i32 = 106;
842pub const CONF_R_VARIABLE_EXPANSION_NOT_SUPPORTED: i32 = 107;
843pub const CONF_R_NO_CLOSE_QUOTE: i32 = 108;
844pub const CTR_DRBG_ENTROPY_LEN: i32 = 48;
845pub const CTR_DRBG_MAX_GENERATE_LENGTH: i32 = 65536;
846pub const X25519_PRIVATE_KEY_LEN: i32 = 32;
847pub const X25519_PUBLIC_VALUE_LEN: i32 = 32;
848pub const X25519_SHARED_KEY_LEN: i32 = 32;
849pub const ED25519_PRIVATE_KEY_LEN: i32 = 64;
850pub const ED25519_PRIVATE_KEY_SEED_LEN: i32 = 32;
851pub const ED25519_PUBLIC_KEY_LEN: i32 = 32;
852pub const ED25519_SIGNATURE_LEN: i32 = 64;
853pub const ED25519_SEED_LEN: i32 = 32;
854pub const SPAKE2_MAX_MSG_SIZE: i32 = 32;
855pub const SPAKE2_MAX_KEY_SIZE: i32 = 64;
856pub const DES_ENCRYPT: i32 = 1;
857pub const DES_DECRYPT: i32 = 0;
858pub const DES_CBC_MODE: i32 = 0;
859pub const DES_PCBC_MODE: i32 = 1;
860pub const DH_GENERATOR_2: i32 = 2;
861pub const DH_GENERATOR_5: i32 = 5;
862pub const DH_CHECK_P_NOT_PRIME: i32 = 1;
863pub const DH_CHECK_P_NOT_SAFE_PRIME: i32 = 2;
864pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
865pub const DH_CHECK_NOT_SUITABLE_GENERATOR: i32 = 8;
866pub const DH_CHECK_Q_NOT_PRIME: i32 = 16;
867pub const DH_CHECK_INVALID_Q_VALUE: i32 = 32;
868pub const DH_NOT_SUITABLE_GENERATOR: i32 = 8;
869pub const DH_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
870pub const DH_CHECK_PUBKEY_TOO_SMALL: i32 = 1;
871pub const DH_CHECK_PUBKEY_TOO_LARGE: i32 = 2;
872pub const DH_CHECK_PUBKEY_INVALID: i32 = 4;
873pub const DH_FLAG_CACHE_MONT_P: i32 = 0;
874pub const DH_R_BAD_GENERATOR: i32 = 100;
875pub const DH_R_INVALID_PUBKEY: i32 = 101;
876pub const DH_R_MODULUS_TOO_LARGE: i32 = 102;
877pub const DH_R_NO_PRIVATE_VALUE: i32 = 103;
878pub const DH_R_DECODE_ERROR: i32 = 104;
879pub const DH_R_ENCODE_ERROR: i32 = 105;
880pub const DH_R_INVALID_NID: i32 = 106;
881pub const DH_R_INVALID_PARAMETERS: i32 = 107;
882pub const DH_F_DH_BUILTIN_GENPARAMS: i32 = 0;
883pub const EVP_MAX_MD_SIZE: i32 = 64;
884pub const EVP_MAX_MD_CHAINING_LENGTH: i32 = 64;
885pub const EVP_MAX_MD_BLOCK_SIZE: i32 = 144;
886pub const EVP_MD_FLAG_DIGALGID_ABSENT: i32 = 2;
887pub const EVP_MD_FLAG_XOF: i32 = 4;
888pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW: i32 = 0;
889pub const DIGEST_R_INPUT_NOT_INITIALIZED: i32 = 100;
890pub const DIGEST_R_DECODE_ERROR: i32 = 101;
891pub const DIGEST_R_UNKNOWN_HASH: i32 = 102;
892pub const OPENSSL_DSA_MAX_MODULUS_BITS: i32 = 10000;
893pub const DSA_R_BAD_Q_VALUE: i32 = 100;
894pub const DSA_R_MISSING_PARAMETERS: i32 = 101;
895pub const DSA_R_MODULUS_TOO_LARGE: i32 = 102;
896pub const DSA_R_NEED_NEW_SETUP_VALUES: i32 = 103;
897pub const DSA_R_BAD_VERSION: i32 = 104;
898pub const DSA_R_DECODE_ERROR: i32 = 105;
899pub const DSA_R_ENCODE_ERROR: i32 = 106;
900pub const DSA_R_INVALID_PARAMETERS: i32 = 107;
901pub const DSA_R_TOO_MANY_ITERATIONS: i32 = 108;
902pub const OPENSSL_EC_EXPLICIT_CURVE: i32 = 0;
903pub const OPENSSL_EC_NAMED_CURVE: i32 = 1;
904pub const ENGINE_R_OPERATION_NOT_SUPPORTED: i32 = 100;
905pub const EC_PKEY_NO_PARAMETERS: i32 = 1;
906pub const EC_PKEY_NO_PUBKEY: i32 = 2;
907pub const ECDSA_FLAG_OPAQUE: i32 = 1;
908pub const EC_R_BUFFER_TOO_SMALL: i32 = 100;
909pub const EC_R_COORDINATES_OUT_OF_RANGE: i32 = 101;
910pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: i32 = 102;
911pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: i32 = 103;
912pub const EC_R_GROUP2PKPARAMETERS_FAILURE: i32 = 104;
913pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: i32 = 105;
914pub const EC_R_INCOMPATIBLE_OBJECTS: i32 = 106;
915pub const EC_R_INVALID_COMPRESSED_POINT: i32 = 107;
916pub const EC_R_INVALID_COMPRESSION_BIT: i32 = 108;
917pub const EC_R_INVALID_ENCODING: i32 = 109;
918pub const EC_R_INVALID_FIELD: i32 = 110;
919pub const EC_R_INVALID_FORM: i32 = 111;
920pub const EC_R_INVALID_GROUP_ORDER: i32 = 112;
921pub const EC_R_INVALID_PRIVATE_KEY: i32 = 113;
922pub const EC_R_MISSING_PARAMETERS: i32 = 114;
923pub const EC_R_MISSING_PRIVATE_KEY: i32 = 115;
924pub const EC_R_NON_NAMED_CURVE: i32 = 116;
925pub const EC_R_NOT_INITIALIZED: i32 = 117;
926pub const EC_R_PKPARAMETERS2GROUP_FAILURE: i32 = 118;
927pub const EC_R_POINT_AT_INFINITY: i32 = 119;
928pub const EC_R_POINT_IS_NOT_ON_CURVE: i32 = 120;
929pub const EC_R_SLOT_FULL: i32 = 121;
930pub const EC_R_UNDEFINED_GENERATOR: i32 = 122;
931pub const EC_R_UNKNOWN_GROUP: i32 = 123;
932pub const EC_R_UNKNOWN_ORDER: i32 = 124;
933pub const EC_R_WRONG_ORDER: i32 = 125;
934pub const EC_R_BIGNUM_OUT_OF_RANGE: i32 = 126;
935pub const EC_R_WRONG_CURVE_PARAMETERS: i32 = 127;
936pub const EC_R_DECODE_ERROR: i32 = 128;
937pub const EC_R_ENCODE_ERROR: i32 = 129;
938pub const EC_R_GROUP_MISMATCH: i32 = 130;
939pub const EC_R_INVALID_COFACTOR: i32 = 131;
940pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 132;
941pub const EC_R_INVALID_SCALAR: i32 = 133;
942pub const ECDH_R_KDF_FAILED: i32 = 100;
943pub const ECDH_R_NO_PRIVATE_VALUE: i32 = 101;
944pub const ECDH_R_POINT_ARITHMETIC_FAILURE: i32 = 102;
945pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: i32 = 103;
946pub const ECDSA_R_BAD_SIGNATURE: i32 = 100;
947pub const ECDSA_R_MISSING_PARAMETERS: i32 = 101;
948pub const ECDSA_R_NEED_NEW_SETUP_VALUES: i32 = 102;
949pub const ECDSA_R_NOT_IMPLEMENTED: i32 = 103;
950pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: i32 = 104;
951pub const ECDSA_R_ENCODE_ERROR: i32 = 105;
952pub const ECDSA_R_MISMATCHED_SIGNATURE: i32 = 205;
953pub const ECDSA_R_TOO_MANY_ITERATIONS: i32 = 106;
954pub const EVP_R_BUFFER_TOO_SMALL: i32 = 100;
955pub const EVP_R_COMMAND_NOT_SUPPORTED: i32 = 101;
956pub const EVP_R_DECODE_ERROR: i32 = 102;
957pub const EVP_R_DIFFERENT_KEY_TYPES: i32 = 103;
958pub const EVP_R_DIFFERENT_PARAMETERS: i32 = 104;
959pub const EVP_R_ENCODE_ERROR: i32 = 105;
960pub const EVP_R_EXPECTING_A_EC_KEY_KEY: i32 = 106;
961pub const EVP_R_EXPECTING_AN_RSA_KEY: i32 = 107;
962pub const EVP_R_EXPECTING_A_DSA_KEY: i32 = 108;
963pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: i32 = 109;
964pub const EVP_R_INVALID_DIGEST_LENGTH: i32 = 110;
965pub const EVP_R_INVALID_DIGEST_TYPE: i32 = 111;
966pub const EVP_R_INVALID_KEYBITS: i32 = 112;
967pub const EVP_R_INVALID_MGF1_MD: i32 = 113;
968pub const EVP_R_INVALID_OPERATION: i32 = 114;
969pub const EVP_R_INVALID_PADDING_MODE: i32 = 115;
970pub const EVP_R_INVALID_PSS_SALTLEN: i32 = 116;
971pub const EVP_R_KEYS_NOT_SET: i32 = 117;
972pub const EVP_R_MISSING_PARAMETERS: i32 = 118;
973pub const EVP_R_NO_DEFAULT_DIGEST: i32 = 119;
974pub const EVP_R_NO_KEY_SET: i32 = 120;
975pub const EVP_R_NO_MDC2_SUPPORT: i32 = 121;
976pub const EVP_R_NO_NID_FOR_CURVE: i32 = 122;
977pub const EVP_R_NO_OPERATION_SET: i32 = 123;
978pub const EVP_R_NO_PARAMETERS_SET: i32 = 124;
979pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: i32 = 125;
980pub const EVP_R_OPERATON_NOT_INITIALIZED: i32 = 126;
981pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: i32 = 127;
982pub const EVP_R_UNSUPPORTED_ALGORITHM: i32 = 128;
983pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 129;
984pub const EVP_R_NOT_A_PRIVATE_KEY: i32 = 130;
985pub const EVP_R_INVALID_SIGNATURE: i32 = 131;
986pub const EVP_R_MEMORY_LIMIT_EXCEEDED: i32 = 132;
987pub const EVP_R_INVALID_PARAMETERS: i32 = 133;
988pub const EVP_R_INVALID_PEER_KEY: i32 = 134;
989pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH: i32 = 135;
990pub const EVP_R_EMPTY_PSK: i32 = 136;
991pub const EVP_R_INVALID_BUFFER_SIZE: i32 = 137;
992pub const EVP_R_BAD_DECRYPT: i32 = 138;
993pub const EVP_R_EXPECTING_A_DH_KEY: i32 = 139;
994pub const EVP_R_EXPECTING_A_PQDSA_KEY: i32 = 140;
995pub const EVP_R_INVALID_PSS_MD: i32 = 500;
996pub const EVP_R_INVALID_PSS_SALT_LEN: i32 = 501;
997pub const EVP_R_INVALID_PSS_TRAILER_FIELD: i32 = 502;
998pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
999pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
1000pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
1001pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
1002pub const FIPS_AES_GCM_NONCE_LENGTH: i32 = 12;
1003pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1004pub const LN_undef: &[u8; 10] = b"undefined\0";
1005pub const NID_undef: i32 = 0;
1006pub const OBJ_undef: i32 = 0;
1007pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1008pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1009pub const NID_rsadsi: i32 = 1;
1010pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1011pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1012pub const NID_pkcs: i32 = 2;
1013pub const SN_md2: &[u8; 4] = b"MD2\0";
1014pub const LN_md2: &[u8; 4] = b"md2\0";
1015pub const NID_md2: i32 = 3;
1016pub const SN_md5: &[u8; 4] = b"MD5\0";
1017pub const LN_md5: &[u8; 4] = b"md5\0";
1018pub const NID_md5: i32 = 4;
1019pub const SN_rc4: &[u8; 4] = b"RC4\0";
1020pub const LN_rc4: &[u8; 4] = b"rc4\0";
1021pub const NID_rc4: i32 = 5;
1022pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1023pub const NID_rsaEncryption: i32 = 6;
1024pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1025pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1026pub const NID_md2WithRSAEncryption: i32 = 7;
1027pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1028pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1029pub const NID_md5WithRSAEncryption: i32 = 8;
1030pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1031pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1032pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1033pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1034pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1035pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1036pub const SN_X500: &[u8; 5] = b"X500\0";
1037pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1038pub const NID_X500: i32 = 11;
1039pub const SN_X509: &[u8; 5] = b"X509\0";
1040pub const NID_X509: i32 = 12;
1041pub const SN_commonName: &[u8; 3] = b"CN\0";
1042pub const LN_commonName: &[u8; 11] = b"commonName\0";
1043pub const NID_commonName: i32 = 13;
1044pub const SN_countryName: &[u8; 2] = b"C\0";
1045pub const LN_countryName: &[u8; 12] = b"countryName\0";
1046pub const NID_countryName: i32 = 14;
1047pub const SN_localityName: &[u8; 2] = b"L\0";
1048pub const LN_localityName: &[u8; 13] = b"localityName\0";
1049pub const NID_localityName: i32 = 15;
1050pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1051pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1052pub const NID_stateOrProvinceName: i32 = 16;
1053pub const SN_organizationName: &[u8; 2] = b"O\0";
1054pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1055pub const NID_organizationName: i32 = 17;
1056pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1057pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1058pub const NID_organizationalUnitName: i32 = 18;
1059pub const SN_rsa: &[u8; 4] = b"RSA\0";
1060pub const LN_rsa: &[u8; 4] = b"rsa\0";
1061pub const NID_rsa: i32 = 19;
1062pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1063pub const NID_pkcs7: i32 = 20;
1064pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1065pub const NID_pkcs7_data: i32 = 21;
1066pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1067pub const NID_pkcs7_signed: i32 = 22;
1068pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1069pub const NID_pkcs7_enveloped: i32 = 23;
1070pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1071pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1072pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1073pub const NID_pkcs7_digest: i32 = 25;
1074pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1075pub const NID_pkcs7_encrypted: i32 = 26;
1076pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1077pub const NID_pkcs3: i32 = 27;
1078pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1079pub const NID_dhKeyAgreement: i32 = 28;
1080pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1081pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1082pub const NID_des_ecb: i32 = 29;
1083pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1084pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1085pub const NID_des_cfb64: i32 = 30;
1086pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1087pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1088pub const NID_des_cbc: i32 = 31;
1089pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1090pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1091pub const NID_des_ede_ecb: i32 = 32;
1092pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1093pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1094pub const NID_des_ede3_ecb: i32 = 33;
1095pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1096pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1097pub const NID_idea_cbc: i32 = 34;
1098pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1099pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1100pub const NID_idea_cfb64: i32 = 35;
1101pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1102pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1103pub const NID_idea_ecb: i32 = 36;
1104pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1105pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1106pub const NID_rc2_cbc: i32 = 37;
1107pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1108pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1109pub const NID_rc2_ecb: i32 = 38;
1110pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1111pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1112pub const NID_rc2_cfb64: i32 = 39;
1113pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1114pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1115pub const NID_rc2_ofb64: i32 = 40;
1116pub const SN_sha: &[u8; 4] = b"SHA\0";
1117pub const LN_sha: &[u8; 4] = b"sha\0";
1118pub const NID_sha: i32 = 41;
1119pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1120pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1121pub const NID_shaWithRSAEncryption: i32 = 42;
1122pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1123pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1124pub const NID_des_ede_cbc: i32 = 43;
1125pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1126pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1127pub const NID_des_ede3_cbc: i32 = 44;
1128pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1129pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1130pub const NID_des_ofb64: i32 = 45;
1131pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1132pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1133pub const NID_idea_ofb64: i32 = 46;
1134pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1135pub const NID_pkcs9: i32 = 47;
1136pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1137pub const NID_pkcs9_emailAddress: i32 = 48;
1138pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1139pub const NID_pkcs9_unstructuredName: i32 = 49;
1140pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1141pub const NID_pkcs9_contentType: i32 = 50;
1142pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1143pub const NID_pkcs9_messageDigest: i32 = 51;
1144pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1145pub const NID_pkcs9_signingTime: i32 = 52;
1146pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1147pub const NID_pkcs9_countersignature: i32 = 53;
1148pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1149pub const NID_pkcs9_challengePassword: i32 = 54;
1150pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1151pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1152pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1153pub const NID_pkcs9_extCertAttributes: i32 = 56;
1154pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1155pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1156pub const NID_netscape: i32 = 57;
1157pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1158pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1159pub const NID_netscape_cert_extension: i32 = 58;
1160pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1161pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1162pub const NID_netscape_data_type: i32 = 59;
1163pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1164pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1165pub const NID_des_ede_cfb64: i32 = 60;
1166pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1167pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1168pub const NID_des_ede3_cfb64: i32 = 61;
1169pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1170pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1171pub const NID_des_ede_ofb64: i32 = 62;
1172pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1173pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1174pub const NID_des_ede3_ofb64: i32 = 63;
1175pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1176pub const LN_sha1: &[u8; 5] = b"sha1\0";
1177pub const NID_sha1: i32 = 64;
1178pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1179pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1180pub const NID_sha1WithRSAEncryption: i32 = 65;
1181pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1182pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1183pub const NID_dsaWithSHA: i32 = 66;
1184pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1185pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1186pub const NID_dsa_2: i32 = 67;
1187pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1188pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1189pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1190pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1191pub const NID_id_pbkdf2: i32 = 69;
1192pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1193pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1194pub const NID_dsaWithSHA1_2: i32 = 70;
1195pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1196pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1197pub const NID_netscape_cert_type: i32 = 71;
1198pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1199pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1200pub const NID_netscape_base_url: i32 = 72;
1201pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1202pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1203pub const NID_netscape_revocation_url: i32 = 73;
1204pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1205pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1206pub const NID_netscape_ca_revocation_url: i32 = 74;
1207pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1208pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1209pub const NID_netscape_renewal_url: i32 = 75;
1210pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1211pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1212pub const NID_netscape_ca_policy_url: i32 = 76;
1213pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1214pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1215pub const NID_netscape_ssl_server_name: i32 = 77;
1216pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1217pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1218pub const NID_netscape_comment: i32 = 78;
1219pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1220pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1221pub const NID_netscape_cert_sequence: i32 = 79;
1222pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1223pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1224pub const NID_desx_cbc: i32 = 80;
1225pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1226pub const NID_id_ce: i32 = 81;
1227pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1228pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1229pub const NID_subject_key_identifier: i32 = 82;
1230pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1231pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1232pub const NID_key_usage: i32 = 83;
1233pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1234pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1235pub const NID_private_key_usage_period: i32 = 84;
1236pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1237pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1238pub const NID_subject_alt_name: i32 = 85;
1239pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1240pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1241pub const NID_issuer_alt_name: i32 = 86;
1242pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1243pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1244pub const NID_basic_constraints: i32 = 87;
1245pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1246pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1247pub const NID_crl_number: i32 = 88;
1248pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1249pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1250pub const NID_certificate_policies: i32 = 89;
1251pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1252pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1253pub const NID_authority_key_identifier: i32 = 90;
1254pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1255pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1256pub const NID_bf_cbc: i32 = 91;
1257pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1258pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1259pub const NID_bf_ecb: i32 = 92;
1260pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1261pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1262pub const NID_bf_cfb64: i32 = 93;
1263pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1264pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1265pub const NID_bf_ofb64: i32 = 94;
1266pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1267pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1268pub const NID_mdc2: i32 = 95;
1269pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1270pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1271pub const NID_mdc2WithRSA: i32 = 96;
1272pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1273pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1274pub const NID_rc4_40: i32 = 97;
1275pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1276pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1277pub const NID_rc2_40_cbc: i32 = 98;
1278pub const SN_givenName: &[u8; 3] = b"GN\0";
1279pub const LN_givenName: &[u8; 10] = b"givenName\0";
1280pub const NID_givenName: i32 = 99;
1281pub const SN_surname: &[u8; 3] = b"SN\0";
1282pub const LN_surname: &[u8; 8] = b"surname\0";
1283pub const NID_surname: i32 = 100;
1284pub const SN_initials: &[u8; 9] = b"initials\0";
1285pub const LN_initials: &[u8; 9] = b"initials\0";
1286pub const NID_initials: i32 = 101;
1287pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1288pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1289pub const NID_crl_distribution_points: i32 = 103;
1290pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1291pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1292pub const NID_md5WithRSA: i32 = 104;
1293pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1294pub const NID_serialNumber: i32 = 105;
1295pub const SN_title: &[u8; 6] = b"title\0";
1296pub const LN_title: &[u8; 6] = b"title\0";
1297pub const NID_title: i32 = 106;
1298pub const LN_description: &[u8; 12] = b"description\0";
1299pub const NID_description: i32 = 107;
1300pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1301pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1302pub const NID_cast5_cbc: i32 = 108;
1303pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1304pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1305pub const NID_cast5_ecb: i32 = 109;
1306pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1307pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1308pub const NID_cast5_cfb64: i32 = 110;
1309pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1310pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1311pub const NID_cast5_ofb64: i32 = 111;
1312pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1313pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1314pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1315pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1316pub const NID_dsaWithSHA1: i32 = 113;
1317pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1318pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1319pub const NID_md5_sha1: i32 = 114;
1320pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1321pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1322pub const NID_sha1WithRSA: i32 = 115;
1323pub const SN_dsa: &[u8; 4] = b"DSA\0";
1324pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1325pub const NID_dsa: i32 = 116;
1326pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1327pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1328pub const NID_ripemd160: i32 = 117;
1329pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1330pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1331pub const NID_ripemd160WithRSA: i32 = 119;
1332pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1333pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1334pub const NID_rc5_cbc: i32 = 120;
1335pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1336pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1337pub const NID_rc5_ecb: i32 = 121;
1338pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1339pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1340pub const NID_rc5_cfb64: i32 = 122;
1341pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1342pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1343pub const NID_rc5_ofb64: i32 = 123;
1344pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1345pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1346pub const NID_zlib_compression: i32 = 125;
1347pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1348pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1349pub const NID_ext_key_usage: i32 = 126;
1350pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1351pub const NID_id_pkix: i32 = 127;
1352pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1353pub const NID_id_kp: i32 = 128;
1354pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1355pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1356pub const NID_server_auth: i32 = 129;
1357pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1358pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1359pub const NID_client_auth: i32 = 130;
1360pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1361pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1362pub const NID_code_sign: i32 = 131;
1363pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1364pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1365pub const NID_email_protect: i32 = 132;
1366pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1367pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1368pub const NID_time_stamp: i32 = 133;
1369pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1370pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1371pub const NID_ms_code_ind: i32 = 134;
1372pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1373pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1374pub const NID_ms_code_com: i32 = 135;
1375pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1376pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1377pub const NID_ms_ctl_sign: i32 = 136;
1378pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1379pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1380pub const NID_ms_sgc: i32 = 137;
1381pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1382pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1383pub const NID_ms_efs: i32 = 138;
1384pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1385pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1386pub const NID_ns_sgc: i32 = 139;
1387pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1388pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1389pub const NID_delta_crl: i32 = 140;
1390pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1391pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1392pub const NID_crl_reason: i32 = 141;
1393pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1394pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1395pub const NID_invalidity_date: i32 = 142;
1396pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1397pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1398pub const NID_sxnet: i32 = 143;
1399pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1400pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1401pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1402pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1403pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1404pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1405pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1406pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1407pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1408pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1409pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1410pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1411pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1412pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1413pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1414pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1415pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1416pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1417pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1418pub const NID_keyBag: i32 = 150;
1419pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1420pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1421pub const LN_certBag: &[u8; 8] = b"certBag\0";
1422pub const NID_certBag: i32 = 152;
1423pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1424pub const NID_crlBag: i32 = 153;
1425pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1426pub const NID_secretBag: i32 = 154;
1427pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1428pub const NID_safeContentsBag: i32 = 155;
1429pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1430pub const NID_friendlyName: i32 = 156;
1431pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1432pub const NID_localKeyID: i32 = 157;
1433pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1434pub const NID_x509Certificate: i32 = 158;
1435pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1436pub const NID_sdsiCertificate: i32 = 159;
1437pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1438pub const NID_x509Crl: i32 = 160;
1439pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1440pub const NID_pbes2: i32 = 161;
1441pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1442pub const NID_pbmac1: i32 = 162;
1443pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1444pub const NID_hmacWithSHA1: i32 = 163;
1445pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1446pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1447pub const NID_id_qt_cps: i32 = 164;
1448pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1449pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1450pub const NID_id_qt_unotice: i32 = 165;
1451pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1452pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1453pub const NID_rc2_64_cbc: i32 = 166;
1454pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1455pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1456pub const NID_SMIMECapabilities: i32 = 167;
1457pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1458pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1459pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1460pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1461pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1462pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1463pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1464pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1465pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1466pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1467pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1468pub const NID_ms_ext_req: i32 = 171;
1469pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1470pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1471pub const NID_ext_req: i32 = 172;
1472pub const SN_name: &[u8; 5] = b"name\0";
1473pub const LN_name: &[u8; 5] = b"name\0";
1474pub const NID_name: i32 = 173;
1475pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1476pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1477pub const NID_dnQualifier: i32 = 174;
1478pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1479pub const NID_id_pe: i32 = 175;
1480pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1481pub const NID_id_ad: i32 = 176;
1482pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1483pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1484pub const NID_info_access: i32 = 177;
1485pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1486pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1487pub const NID_ad_OCSP: i32 = 178;
1488pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1489pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1490pub const NID_ad_ca_issuers: i32 = 179;
1491pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1492pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1493pub const NID_OCSP_sign: i32 = 180;
1494pub const SN_iso: &[u8; 4] = b"ISO\0";
1495pub const LN_iso: &[u8; 4] = b"iso\0";
1496pub const NID_iso: i32 = 181;
1497pub const OBJ_iso: i32 = 1;
1498pub const SN_member_body: &[u8; 12] = b"member-body\0";
1499pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1500pub const NID_member_body: i32 = 182;
1501pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1502pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1503pub const NID_ISO_US: i32 = 183;
1504pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1505pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1506pub const NID_X9_57: i32 = 184;
1507pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1508pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1509pub const NID_X9cm: i32 = 185;
1510pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1511pub const NID_pkcs1: i32 = 186;
1512pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1513pub const NID_pkcs5: i32 = 187;
1514pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1515pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1516pub const NID_SMIME: i32 = 188;
1517pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1518pub const NID_id_smime_mod: i32 = 189;
1519pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1520pub const NID_id_smime_ct: i32 = 190;
1521pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1522pub const NID_id_smime_aa: i32 = 191;
1523pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1524pub const NID_id_smime_alg: i32 = 192;
1525pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1526pub const NID_id_smime_cd: i32 = 193;
1527pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1528pub const NID_id_smime_spq: i32 = 194;
1529pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1530pub const NID_id_smime_cti: i32 = 195;
1531pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1532pub const NID_id_smime_mod_cms: i32 = 196;
1533pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1534pub const NID_id_smime_mod_ess: i32 = 197;
1535pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1536pub const NID_id_smime_mod_oid: i32 = 198;
1537pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1538pub const NID_id_smime_mod_msg_v3: i32 = 199;
1539pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1540pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1541pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1542pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1543pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1544pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1545pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1546pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1547pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1548pub const NID_id_smime_ct_receipt: i32 = 204;
1549pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1550pub const NID_id_smime_ct_authData: i32 = 205;
1551pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1552pub const NID_id_smime_ct_publishCert: i32 = 206;
1553pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1554pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1555pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1556pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1557pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1558pub const NID_id_smime_ct_contentInfo: i32 = 209;
1559pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1560pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1561pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1562pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1563pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1564pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1565pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1566pub const NID_id_smime_aa_securityLabel: i32 = 213;
1567pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1568pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1569pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1570pub const NID_id_smime_aa_contentHint: i32 = 215;
1571pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1572pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1573pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1574pub const NID_id_smime_aa_encapContentType: i32 = 217;
1575pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1576pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1577pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1578pub const NID_id_smime_aa_macValue: i32 = 219;
1579pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1580pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1581pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1582pub const NID_id_smime_aa_contentReference: i32 = 221;
1583pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1584pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1585pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1586pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1587pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1588pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1589pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1590pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1591pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1592pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1593pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1594pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1595pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1596pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1597pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1598pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1599pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1600pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1601pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1602pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1603pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1604pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1605pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1606pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1607pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1608pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1609pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1610pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1611pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1612pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1613pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1614pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1615pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1616pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1617pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1618pub const NID_id_smime_aa_signatureType: i32 = 239;
1619pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1620pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1621pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1622pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1623pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1624pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1625pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1626pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1627pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1628pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1629pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1630pub const NID_id_smime_alg_ESDH: i32 = 245;
1631pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1632pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1633pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1634pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1635pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1636pub const NID_id_smime_cd_ldap: i32 = 248;
1637pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1638pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1639pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1640pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1641pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1642pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1643pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1644pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1645pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1646pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1647pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1648pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1649pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1650pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1651pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1652pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1653pub const SN_md4: &[u8; 4] = b"MD4\0";
1654pub const LN_md4: &[u8; 4] = b"md4\0";
1655pub const NID_md4: i32 = 257;
1656pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1657pub const NID_id_pkix_mod: i32 = 258;
1658pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1659pub const NID_id_qt: i32 = 259;
1660pub const SN_id_it: &[u8; 6] = b"id-it\0";
1661pub const NID_id_it: i32 = 260;
1662pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1663pub const NID_id_pkip: i32 = 261;
1664pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1665pub const NID_id_alg: i32 = 262;
1666pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1667pub const NID_id_cmc: i32 = 263;
1668pub const SN_id_on: &[u8; 6] = b"id-on\0";
1669pub const NID_id_on: i32 = 264;
1670pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1671pub const NID_id_pda: i32 = 265;
1672pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1673pub const NID_id_aca: i32 = 266;
1674pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1675pub const NID_id_qcs: i32 = 267;
1676pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1677pub const NID_id_cct: i32 = 268;
1678pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1679pub const NID_id_pkix1_explicit_88: i32 = 269;
1680pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1681pub const NID_id_pkix1_implicit_88: i32 = 270;
1682pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1683pub const NID_id_pkix1_explicit_93: i32 = 271;
1684pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1685pub const NID_id_pkix1_implicit_93: i32 = 272;
1686pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1687pub const NID_id_mod_crmf: i32 = 273;
1688pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1689pub const NID_id_mod_cmc: i32 = 274;
1690pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1691pub const NID_id_mod_kea_profile_88: i32 = 275;
1692pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1693pub const NID_id_mod_kea_profile_93: i32 = 276;
1694pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1695pub const NID_id_mod_cmp: i32 = 277;
1696pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1697pub const NID_id_mod_qualified_cert_88: i32 = 278;
1698pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1699pub const NID_id_mod_qualified_cert_93: i32 = 279;
1700pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1701pub const NID_id_mod_attribute_cert: i32 = 280;
1702pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1703pub const NID_id_mod_timestamp_protocol: i32 = 281;
1704pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1705pub const NID_id_mod_ocsp: i32 = 282;
1706pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1707pub const NID_id_mod_dvcs: i32 = 283;
1708pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1709pub const NID_id_mod_cmp2000: i32 = 284;
1710pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1711pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1712pub const NID_biometricInfo: i32 = 285;
1713pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1714pub const NID_qcStatements: i32 = 286;
1715pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1716pub const NID_ac_auditEntity: i32 = 287;
1717pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1718pub const NID_ac_targeting: i32 = 288;
1719pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1720pub const NID_aaControls: i32 = 289;
1721pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1722pub const NID_sbgp_ipAddrBlock: i32 = 290;
1723pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1724pub const NID_sbgp_autonomousSysNum: i32 = 291;
1725pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1726pub const NID_sbgp_routerIdentifier: i32 = 292;
1727pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1728pub const NID_textNotice: i32 = 293;
1729pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1730pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1731pub const NID_ipsecEndSystem: i32 = 294;
1732pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1733pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1734pub const NID_ipsecTunnel: i32 = 295;
1735pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1736pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1737pub const NID_ipsecUser: i32 = 296;
1738pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1739pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1740pub const NID_dvcs: i32 = 297;
1741pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1742pub const NID_id_it_caProtEncCert: i32 = 298;
1743pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1744pub const NID_id_it_signKeyPairTypes: i32 = 299;
1745pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1746pub const NID_id_it_encKeyPairTypes: i32 = 300;
1747pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1748pub const NID_id_it_preferredSymmAlg: i32 = 301;
1749pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1750pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1751pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1752pub const NID_id_it_currentCRL: i32 = 303;
1753pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1754pub const NID_id_it_unsupportedOIDs: i32 = 304;
1755pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1756pub const NID_id_it_subscriptionRequest: i32 = 305;
1757pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1758pub const NID_id_it_subscriptionResponse: i32 = 306;
1759pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1760pub const NID_id_it_keyPairParamReq: i32 = 307;
1761pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1762pub const NID_id_it_keyPairParamRep: i32 = 308;
1763pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1764pub const NID_id_it_revPassphrase: i32 = 309;
1765pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1766pub const NID_id_it_implicitConfirm: i32 = 310;
1767pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1768pub const NID_id_it_confirmWaitTime: i32 = 311;
1769pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1770pub const NID_id_it_origPKIMessage: i32 = 312;
1771pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1772pub const NID_id_regCtrl: i32 = 313;
1773pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1774pub const NID_id_regInfo: i32 = 314;
1775pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1776pub const NID_id_regCtrl_regToken: i32 = 315;
1777pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1778pub const NID_id_regCtrl_authenticator: i32 = 316;
1779pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1780pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1781pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
1782pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
1783pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
1784pub const NID_id_regCtrl_oldCertID: i32 = 319;
1785pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
1786pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
1787pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
1788pub const NID_id_regInfo_utf8Pairs: i32 = 321;
1789pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
1790pub const NID_id_regInfo_certReq: i32 = 322;
1791pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
1792pub const NID_id_alg_des40: i32 = 323;
1793pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
1794pub const NID_id_alg_noSignature: i32 = 324;
1795pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
1796pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
1797pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
1798pub const NID_id_alg_dh_pop: i32 = 326;
1799pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
1800pub const NID_id_cmc_statusInfo: i32 = 327;
1801pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
1802pub const NID_id_cmc_identification: i32 = 328;
1803pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
1804pub const NID_id_cmc_identityProof: i32 = 329;
1805pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
1806pub const NID_id_cmc_dataReturn: i32 = 330;
1807pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
1808pub const NID_id_cmc_transactionId: i32 = 331;
1809pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
1810pub const NID_id_cmc_senderNonce: i32 = 332;
1811pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
1812pub const NID_id_cmc_recipientNonce: i32 = 333;
1813pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
1814pub const NID_id_cmc_addExtensions: i32 = 334;
1815pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
1816pub const NID_id_cmc_encryptedPOP: i32 = 335;
1817pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
1818pub const NID_id_cmc_decryptedPOP: i32 = 336;
1819pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
1820pub const NID_id_cmc_lraPOPWitness: i32 = 337;
1821pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
1822pub const NID_id_cmc_getCert: i32 = 338;
1823pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
1824pub const NID_id_cmc_getCRL: i32 = 339;
1825pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
1826pub const NID_id_cmc_revokeRequest: i32 = 340;
1827pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
1828pub const NID_id_cmc_regInfo: i32 = 341;
1829pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
1830pub const NID_id_cmc_responseInfo: i32 = 342;
1831pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
1832pub const NID_id_cmc_queryPending: i32 = 343;
1833pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
1834pub const NID_id_cmc_popLinkRandom: i32 = 344;
1835pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
1836pub const NID_id_cmc_popLinkWitness: i32 = 345;
1837pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
1838pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
1839pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
1840pub const NID_id_on_personalData: i32 = 347;
1841pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
1842pub const NID_id_pda_dateOfBirth: i32 = 348;
1843pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
1844pub const NID_id_pda_placeOfBirth: i32 = 349;
1845pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
1846pub const NID_id_pda_gender: i32 = 351;
1847pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
1848pub const NID_id_pda_countryOfCitizenship: i32 = 352;
1849pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
1850pub const NID_id_pda_countryOfResidence: i32 = 353;
1851pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
1852pub const NID_id_aca_authenticationInfo: i32 = 354;
1853pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
1854pub const NID_id_aca_accessIdentity: i32 = 355;
1855pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
1856pub const NID_id_aca_chargingIdentity: i32 = 356;
1857pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
1858pub const NID_id_aca_group: i32 = 357;
1859pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
1860pub const NID_id_aca_role: i32 = 358;
1861pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
1862pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
1863pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
1864pub const NID_id_cct_crs: i32 = 360;
1865pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
1866pub const NID_id_cct_PKIData: i32 = 361;
1867pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
1868pub const NID_id_cct_PKIResponse: i32 = 362;
1869pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
1870pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
1871pub const NID_ad_timeStamping: i32 = 363;
1872pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
1873pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
1874pub const NID_ad_dvcs: i32 = 364;
1875pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
1876pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
1877pub const NID_id_pkix_OCSP_basic: i32 = 365;
1878pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
1879pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
1880pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
1881pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
1882pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
1883pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
1884pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
1885pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
1886pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
1887pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
1888pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
1889pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
1890pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
1891pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
1892pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
1893pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
1894pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
1895pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
1896pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
1897pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
1898pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
1899pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
1900pub const NID_id_pkix_OCSP_valid: i32 = 373;
1901pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
1902pub const NID_id_pkix_OCSP_path: i32 = 374;
1903pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
1904pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
1905pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
1906pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
1907pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
1908pub const NID_algorithm: i32 = 376;
1909pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
1910pub const NID_rsaSignature: i32 = 377;
1911pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
1912pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
1913pub const NID_X500algorithms: i32 = 378;
1914pub const SN_org: &[u8; 4] = b"ORG\0";
1915pub const LN_org: &[u8; 4] = b"org\0";
1916pub const NID_org: i32 = 379;
1917pub const SN_dod: &[u8; 4] = b"DOD\0";
1918pub const LN_dod: &[u8; 4] = b"dod\0";
1919pub const NID_dod: i32 = 380;
1920pub const SN_iana: &[u8; 5] = b"IANA\0";
1921pub const LN_iana: &[u8; 5] = b"iana\0";
1922pub const NID_iana: i32 = 381;
1923pub const SN_Directory: &[u8; 10] = b"directory\0";
1924pub const LN_Directory: &[u8; 10] = b"Directory\0";
1925pub const NID_Directory: i32 = 382;
1926pub const SN_Management: &[u8; 5] = b"mgmt\0";
1927pub const LN_Management: &[u8; 11] = b"Management\0";
1928pub const NID_Management: i32 = 383;
1929pub const SN_Experimental: &[u8; 13] = b"experimental\0";
1930pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
1931pub const NID_Experimental: i32 = 384;
1932pub const SN_Private: &[u8; 8] = b"private\0";
1933pub const LN_Private: &[u8; 8] = b"Private\0";
1934pub const NID_Private: i32 = 385;
1935pub const SN_Security: &[u8; 9] = b"security\0";
1936pub const LN_Security: &[u8; 9] = b"Security\0";
1937pub const NID_Security: i32 = 386;
1938pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
1939pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
1940pub const NID_SNMPv2: i32 = 387;
1941pub const LN_Mail: &[u8; 5] = b"Mail\0";
1942pub const NID_Mail: i32 = 388;
1943pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
1944pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
1945pub const NID_Enterprises: i32 = 389;
1946pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
1947pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
1948pub const NID_dcObject: i32 = 390;
1949pub const SN_domainComponent: &[u8; 3] = b"DC\0";
1950pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
1951pub const NID_domainComponent: i32 = 391;
1952pub const SN_Domain: &[u8; 7] = b"domain\0";
1953pub const LN_Domain: &[u8; 7] = b"Domain\0";
1954pub const NID_Domain: i32 = 392;
1955pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
1956pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
1957pub const NID_selected_attribute_types: i32 = 394;
1958pub const SN_clearance: &[u8; 10] = b"clearance\0";
1959pub const NID_clearance: i32 = 395;
1960pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
1961pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
1962pub const NID_md4WithRSAEncryption: i32 = 396;
1963pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
1964pub const NID_ac_proxying: i32 = 397;
1965pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
1966pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
1967pub const NID_sinfo_access: i32 = 398;
1968pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
1969pub const NID_id_aca_encAttrs: i32 = 399;
1970pub const SN_role: &[u8; 5] = b"role\0";
1971pub const LN_role: &[u8; 5] = b"role\0";
1972pub const NID_role: i32 = 400;
1973pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
1974pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
1975pub const NID_policy_constraints: i32 = 401;
1976pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
1977pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
1978pub const NID_target_information: i32 = 402;
1979pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
1980pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
1981pub const NID_no_rev_avail: i32 = 403;
1982pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
1983pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
1984pub const NID_ansi_X9_62: i32 = 405;
1985pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
1986pub const NID_X9_62_prime_field: i32 = 406;
1987pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
1988pub const NID_X9_62_characteristic_two_field: i32 = 407;
1989pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
1990pub const NID_X9_62_id_ecPublicKey: i32 = 408;
1991pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
1992pub const NID_X9_62_prime192v1: i32 = 409;
1993pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
1994pub const NID_X9_62_prime192v2: i32 = 410;
1995pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
1996pub const NID_X9_62_prime192v3: i32 = 411;
1997pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
1998pub const NID_X9_62_prime239v1: i32 = 412;
1999pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
2000pub const NID_X9_62_prime239v2: i32 = 413;
2001pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
2002pub const NID_X9_62_prime239v3: i32 = 414;
2003pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2004pub const NID_X9_62_prime256v1: i32 = 415;
2005pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2006pub const NID_ecdsa_with_SHA1: i32 = 416;
2007pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2008pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2009pub const NID_ms_csp_name: i32 = 417;
2010pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2011pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2012pub const NID_aes_128_ecb: i32 = 418;
2013pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2014pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2015pub const NID_aes_128_cbc: i32 = 419;
2016pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2017pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2018pub const NID_aes_128_ofb128: i32 = 420;
2019pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2020pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2021pub const NID_aes_128_cfb128: i32 = 421;
2022pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2023pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2024pub const NID_aes_192_ecb: i32 = 422;
2025pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2026pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2027pub const NID_aes_192_cbc: i32 = 423;
2028pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2029pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2030pub const NID_aes_192_ofb128: i32 = 424;
2031pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2032pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2033pub const NID_aes_192_cfb128: i32 = 425;
2034pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2035pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2036pub const NID_aes_256_ecb: i32 = 426;
2037pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2038pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2039pub const NID_aes_256_cbc: i32 = 427;
2040pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2041pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2042pub const NID_aes_256_ofb128: i32 = 428;
2043pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2044pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2045pub const NID_aes_256_cfb128: i32 = 429;
2046pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2047pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2048pub const NID_hold_instruction_code: i32 = 430;
2049pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2050pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2051pub const NID_hold_instruction_none: i32 = 431;
2052pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2053pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2054pub const NID_hold_instruction_call_issuer: i32 = 432;
2055pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2056pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2057pub const NID_hold_instruction_reject: i32 = 433;
2058pub const SN_data: &[u8; 5] = b"data\0";
2059pub const NID_data: i32 = 434;
2060pub const SN_pss: &[u8; 4] = b"pss\0";
2061pub const NID_pss: i32 = 435;
2062pub const SN_ucl: &[u8; 4] = b"ucl\0";
2063pub const NID_ucl: i32 = 436;
2064pub const SN_pilot: &[u8; 6] = b"pilot\0";
2065pub const NID_pilot: i32 = 437;
2066pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2067pub const NID_pilotAttributeType: i32 = 438;
2068pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2069pub const NID_pilotAttributeSyntax: i32 = 439;
2070pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2071pub const NID_pilotObjectClass: i32 = 440;
2072pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2073pub const NID_pilotGroups: i32 = 441;
2074pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2075pub const NID_iA5StringSyntax: i32 = 442;
2076pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2077pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2078pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2079pub const NID_pilotObject: i32 = 444;
2080pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2081pub const NID_pilotPerson: i32 = 445;
2082pub const SN_account: &[u8; 8] = b"account\0";
2083pub const NID_account: i32 = 446;
2084pub const SN_document: &[u8; 9] = b"document\0";
2085pub const NID_document: i32 = 447;
2086pub const SN_room: &[u8; 5] = b"room\0";
2087pub const NID_room: i32 = 448;
2088pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2089pub const NID_documentSeries: i32 = 449;
2090pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2091pub const NID_rFC822localPart: i32 = 450;
2092pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2093pub const NID_dNSDomain: i32 = 451;
2094pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2095pub const NID_domainRelatedObject: i32 = 452;
2096pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2097pub const NID_friendlyCountry: i32 = 453;
2098pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2099pub const NID_simpleSecurityObject: i32 = 454;
2100pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2101pub const NID_pilotOrganization: i32 = 455;
2102pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2103pub const NID_pilotDSA: i32 = 456;
2104pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2105pub const NID_qualityLabelledData: i32 = 457;
2106pub const SN_userId: &[u8; 4] = b"UID\0";
2107pub const LN_userId: &[u8; 7] = b"userId\0";
2108pub const NID_userId: i32 = 458;
2109pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2110pub const NID_textEncodedORAddress: i32 = 459;
2111pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2112pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2113pub const NID_rfc822Mailbox: i32 = 460;
2114pub const SN_info: &[u8; 5] = b"info\0";
2115pub const NID_info: i32 = 461;
2116pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2117pub const NID_favouriteDrink: i32 = 462;
2118pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2119pub const NID_roomNumber: i32 = 463;
2120pub const SN_photo: &[u8; 6] = b"photo\0";
2121pub const NID_photo: i32 = 464;
2122pub const LN_userClass: &[u8; 10] = b"userClass\0";
2123pub const NID_userClass: i32 = 465;
2124pub const SN_host: &[u8; 5] = b"host\0";
2125pub const NID_host: i32 = 466;
2126pub const SN_manager: &[u8; 8] = b"manager\0";
2127pub const NID_manager: i32 = 467;
2128pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2129pub const NID_documentIdentifier: i32 = 468;
2130pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2131pub const NID_documentTitle: i32 = 469;
2132pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2133pub const NID_documentVersion: i32 = 470;
2134pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2135pub const NID_documentAuthor: i32 = 471;
2136pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2137pub const NID_documentLocation: i32 = 472;
2138pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2139pub const NID_homeTelephoneNumber: i32 = 473;
2140pub const SN_secretary: &[u8; 10] = b"secretary\0";
2141pub const NID_secretary: i32 = 474;
2142pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2143pub const NID_otherMailbox: i32 = 475;
2144pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2145pub const NID_lastModifiedTime: i32 = 476;
2146pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2147pub const NID_lastModifiedBy: i32 = 477;
2148pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2149pub const NID_aRecord: i32 = 478;
2150pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2151pub const NID_pilotAttributeType27: i32 = 479;
2152pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2153pub const NID_mXRecord: i32 = 480;
2154pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2155pub const NID_nSRecord: i32 = 481;
2156pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2157pub const NID_sOARecord: i32 = 482;
2158pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2159pub const NID_cNAMERecord: i32 = 483;
2160pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2161pub const NID_associatedDomain: i32 = 484;
2162pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2163pub const NID_associatedName: i32 = 485;
2164pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2165pub const NID_homePostalAddress: i32 = 486;
2166pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2167pub const NID_personalTitle: i32 = 487;
2168pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2169pub const NID_mobileTelephoneNumber: i32 = 488;
2170pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2171pub const NID_pagerTelephoneNumber: i32 = 489;
2172pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2173pub const NID_friendlyCountryName: i32 = 490;
2174pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2175pub const NID_organizationalStatus: i32 = 491;
2176pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2177pub const NID_janetMailbox: i32 = 492;
2178pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2179pub const NID_mailPreferenceOption: i32 = 493;
2180pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2181pub const NID_buildingName: i32 = 494;
2182pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2183pub const NID_dSAQuality: i32 = 495;
2184pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2185pub const NID_singleLevelQuality: i32 = 496;
2186pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2187pub const NID_subtreeMinimumQuality: i32 = 497;
2188pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2189pub const NID_subtreeMaximumQuality: i32 = 498;
2190pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2191pub const NID_personalSignature: i32 = 499;
2192pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2193pub const NID_dITRedirect: i32 = 500;
2194pub const SN_audio: &[u8; 6] = b"audio\0";
2195pub const NID_audio: i32 = 501;
2196pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2197pub const NID_documentPublisher: i32 = 502;
2198pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2199pub const NID_x500UniqueIdentifier: i32 = 503;
2200pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2201pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2202pub const NID_mime_mhs: i32 = 504;
2203pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2204pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2205pub const NID_mime_mhs_headings: i32 = 505;
2206pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2207pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2208pub const NID_mime_mhs_bodies: i32 = 506;
2209pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2210pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2211pub const NID_id_hex_partial_message: i32 = 507;
2212pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2213pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2214pub const NID_id_hex_multipart_message: i32 = 508;
2215pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2216pub const NID_generationQualifier: i32 = 509;
2217pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2218pub const NID_pseudonym: i32 = 510;
2219pub const SN_id_set: &[u8; 7] = b"id-set\0";
2220pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2221pub const NID_id_set: i32 = 512;
2222pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2223pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2224pub const NID_set_ctype: i32 = 513;
2225pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2226pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2227pub const NID_set_msgExt: i32 = 514;
2228pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2229pub const NID_set_attr: i32 = 515;
2230pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2231pub const NID_set_policy: i32 = 516;
2232pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2233pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2234pub const NID_set_certExt: i32 = 517;
2235pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2236pub const NID_set_brand: i32 = 518;
2237pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2238pub const NID_setct_PANData: i32 = 519;
2239pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2240pub const NID_setct_PANToken: i32 = 520;
2241pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2242pub const NID_setct_PANOnly: i32 = 521;
2243pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2244pub const NID_setct_OIData: i32 = 522;
2245pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2246pub const NID_setct_PI: i32 = 523;
2247pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2248pub const NID_setct_PIData: i32 = 524;
2249pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2250pub const NID_setct_PIDataUnsigned: i32 = 525;
2251pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2252pub const NID_setct_HODInput: i32 = 526;
2253pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2254pub const NID_setct_AuthResBaggage: i32 = 527;
2255pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2256pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2257pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2258pub const NID_setct_AuthRevResBaggage: i32 = 529;
2259pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2260pub const NID_setct_CapTokenSeq: i32 = 530;
2261pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2262pub const NID_setct_PInitResData: i32 = 531;
2263pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2264pub const NID_setct_PI_TBS: i32 = 532;
2265pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2266pub const NID_setct_PResData: i32 = 533;
2267pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2268pub const NID_setct_AuthReqTBS: i32 = 534;
2269pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2270pub const NID_setct_AuthResTBS: i32 = 535;
2271pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2272pub const NID_setct_AuthResTBSX: i32 = 536;
2273pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2274pub const NID_setct_AuthTokenTBS: i32 = 537;
2275pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2276pub const NID_setct_CapTokenData: i32 = 538;
2277pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2278pub const NID_setct_CapTokenTBS: i32 = 539;
2279pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2280pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2281pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2282pub const NID_setct_AuthRevReqTBS: i32 = 541;
2283pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2284pub const NID_setct_AuthRevResData: i32 = 542;
2285pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2286pub const NID_setct_AuthRevResTBS: i32 = 543;
2287pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2288pub const NID_setct_CapReqTBS: i32 = 544;
2289pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2290pub const NID_setct_CapReqTBSX: i32 = 545;
2291pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2292pub const NID_setct_CapResData: i32 = 546;
2293pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2294pub const NID_setct_CapRevReqTBS: i32 = 547;
2295pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2296pub const NID_setct_CapRevReqTBSX: i32 = 548;
2297pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2298pub const NID_setct_CapRevResData: i32 = 549;
2299pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2300pub const NID_setct_CredReqTBS: i32 = 550;
2301pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2302pub const NID_setct_CredReqTBSX: i32 = 551;
2303pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2304pub const NID_setct_CredResData: i32 = 552;
2305pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2306pub const NID_setct_CredRevReqTBS: i32 = 553;
2307pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2308pub const NID_setct_CredRevReqTBSX: i32 = 554;
2309pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2310pub const NID_setct_CredRevResData: i32 = 555;
2311pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2312pub const NID_setct_PCertReqData: i32 = 556;
2313pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2314pub const NID_setct_PCertResTBS: i32 = 557;
2315pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2316pub const NID_setct_BatchAdminReqData: i32 = 558;
2317pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2318pub const NID_setct_BatchAdminResData: i32 = 559;
2319pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2320pub const NID_setct_CardCInitResTBS: i32 = 560;
2321pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2322pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2323pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2324pub const NID_setct_RegFormResTBS: i32 = 562;
2325pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2326pub const NID_setct_CertReqData: i32 = 563;
2327pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2328pub const NID_setct_CertReqTBS: i32 = 564;
2329pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2330pub const NID_setct_CertResData: i32 = 565;
2331pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2332pub const NID_setct_CertInqReqTBS: i32 = 566;
2333pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2334pub const NID_setct_ErrorTBS: i32 = 567;
2335pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2336pub const NID_setct_PIDualSignedTBE: i32 = 568;
2337pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2338pub const NID_setct_PIUnsignedTBE: i32 = 569;
2339pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2340pub const NID_setct_AuthReqTBE: i32 = 570;
2341pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2342pub const NID_setct_AuthResTBE: i32 = 571;
2343pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2344pub const NID_setct_AuthResTBEX: i32 = 572;
2345pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2346pub const NID_setct_AuthTokenTBE: i32 = 573;
2347pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2348pub const NID_setct_CapTokenTBE: i32 = 574;
2349pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2350pub const NID_setct_CapTokenTBEX: i32 = 575;
2351pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2352pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2353pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2354pub const NID_setct_AuthRevReqTBE: i32 = 577;
2355pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2356pub const NID_setct_AuthRevResTBE: i32 = 578;
2357pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2358pub const NID_setct_AuthRevResTBEB: i32 = 579;
2359pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2360pub const NID_setct_CapReqTBE: i32 = 580;
2361pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2362pub const NID_setct_CapReqTBEX: i32 = 581;
2363pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2364pub const NID_setct_CapResTBE: i32 = 582;
2365pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2366pub const NID_setct_CapRevReqTBE: i32 = 583;
2367pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2368pub const NID_setct_CapRevReqTBEX: i32 = 584;
2369pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2370pub const NID_setct_CapRevResTBE: i32 = 585;
2371pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2372pub const NID_setct_CredReqTBE: i32 = 586;
2373pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2374pub const NID_setct_CredReqTBEX: i32 = 587;
2375pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2376pub const NID_setct_CredResTBE: i32 = 588;
2377pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2378pub const NID_setct_CredRevReqTBE: i32 = 589;
2379pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2380pub const NID_setct_CredRevReqTBEX: i32 = 590;
2381pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2382pub const NID_setct_CredRevResTBE: i32 = 591;
2383pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2384pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2385pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2386pub const NID_setct_BatchAdminResTBE: i32 = 593;
2387pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2388pub const NID_setct_RegFormReqTBE: i32 = 594;
2389pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2390pub const NID_setct_CertReqTBE: i32 = 595;
2391pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2392pub const NID_setct_CertReqTBEX: i32 = 596;
2393pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2394pub const NID_setct_CertResTBE: i32 = 597;
2395pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2396pub const NID_setct_CRLNotificationTBS: i32 = 598;
2397pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2398pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2399pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2400pub const NID_setct_BCIDistributionTBS: i32 = 600;
2401pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2402pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2403pub const NID_setext_genCrypt: i32 = 601;
2404pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2405pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2406pub const NID_setext_miAuth: i32 = 602;
2407pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2408pub const NID_setext_pinSecure: i32 = 603;
2409pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2410pub const NID_setext_pinAny: i32 = 604;
2411pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2412pub const NID_setext_track2: i32 = 605;
2413pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2414pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2415pub const NID_setext_cv: i32 = 606;
2416pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2417pub const NID_set_policy_root: i32 = 607;
2418pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2419pub const NID_setCext_hashedRoot: i32 = 608;
2420pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2421pub const NID_setCext_certType: i32 = 609;
2422pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2423pub const NID_setCext_merchData: i32 = 610;
2424pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2425pub const NID_setCext_cCertRequired: i32 = 611;
2426pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2427pub const NID_setCext_tunneling: i32 = 612;
2428pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2429pub const NID_setCext_setExt: i32 = 613;
2430pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2431pub const NID_setCext_setQualf: i32 = 614;
2432pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2433pub const NID_setCext_PGWYcapabilities: i32 = 615;
2434pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2435pub const NID_setCext_TokenIdentifier: i32 = 616;
2436pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2437pub const NID_setCext_Track2Data: i32 = 617;
2438pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2439pub const NID_setCext_TokenType: i32 = 618;
2440pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2441pub const NID_setCext_IssuerCapabilities: i32 = 619;
2442pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2443pub const NID_setAttr_Cert: i32 = 620;
2444pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2445pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2446pub const NID_setAttr_PGWYcap: i32 = 621;
2447pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2448pub const NID_setAttr_TokenType: i32 = 622;
2449pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2450pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2451pub const NID_setAttr_IssCap: i32 = 623;
2452pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2453pub const NID_set_rootKeyThumb: i32 = 624;
2454pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2455pub const NID_set_addPolicy: i32 = 625;
2456pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2457pub const NID_setAttr_Token_EMV: i32 = 626;
2458pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2459pub const NID_setAttr_Token_B0Prime: i32 = 627;
2460pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2461pub const NID_setAttr_IssCap_CVM: i32 = 628;
2462pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2463pub const NID_setAttr_IssCap_T2: i32 = 629;
2464pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2465pub const NID_setAttr_IssCap_Sig: i32 = 630;
2466pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2467pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2468pub const NID_setAttr_GenCryptgrm: i32 = 631;
2469pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2470pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2471pub const NID_setAttr_T2Enc: i32 = 632;
2472pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2473pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2474pub const NID_setAttr_T2cleartxt: i32 = 633;
2475pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2476pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2477pub const NID_setAttr_TokICCsig: i32 = 634;
2478pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2479pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2480pub const NID_setAttr_SecDevSig: i32 = 635;
2481pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2482pub const NID_set_brand_IATA_ATA: i32 = 636;
2483pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2484pub const NID_set_brand_Diners: i32 = 637;
2485pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2486pub const NID_set_brand_AmericanExpress: i32 = 638;
2487pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2488pub const NID_set_brand_JCB: i32 = 639;
2489pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2490pub const NID_set_brand_Visa: i32 = 640;
2491pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2492pub const NID_set_brand_MasterCard: i32 = 641;
2493pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2494pub const NID_set_brand_Novus: i32 = 642;
2495pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2496pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2497pub const NID_des_cdmf: i32 = 643;
2498pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2499pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2500pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2501pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2502pub const NID_itu_t: i32 = 645;
2503pub const OBJ_itu_t: i32 = 0;
2504pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2505pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2506pub const NID_joint_iso_itu_t: i32 = 646;
2507pub const OBJ_joint_iso_itu_t: i32 = 2;
2508pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2509pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2510pub const NID_international_organizations: i32 = 647;
2511pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2512pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2513pub const NID_ms_smartcard_login: i32 = 648;
2514pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2515pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2516pub const NID_ms_upn: i32 = 649;
2517pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2518pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2519pub const NID_aes_128_cfb1: i32 = 650;
2520pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2521pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2522pub const NID_aes_192_cfb1: i32 = 651;
2523pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2524pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2525pub const NID_aes_256_cfb1: i32 = 652;
2526pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2527pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2528pub const NID_aes_128_cfb8: i32 = 653;
2529pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2530pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2531pub const NID_aes_192_cfb8: i32 = 654;
2532pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2533pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2534pub const NID_aes_256_cfb8: i32 = 655;
2535pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2536pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2537pub const NID_des_cfb1: i32 = 656;
2538pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2539pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2540pub const NID_des_cfb8: i32 = 657;
2541pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2542pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2543pub const NID_des_ede3_cfb1: i32 = 658;
2544pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2545pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2546pub const NID_des_ede3_cfb8: i32 = 659;
2547pub const SN_streetAddress: &[u8; 7] = b"street\0";
2548pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2549pub const NID_streetAddress: i32 = 660;
2550pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2551pub const NID_postalCode: i32 = 661;
2552pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2553pub const NID_id_ppl: i32 = 662;
2554pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2555pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2556pub const NID_proxyCertInfo: i32 = 663;
2557pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2558pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2559pub const NID_id_ppl_anyLanguage: i32 = 664;
2560pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2561pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2562pub const NID_id_ppl_inheritAll: i32 = 665;
2563pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2564pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2565pub const NID_name_constraints: i32 = 666;
2566pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2567pub const LN_Independent: &[u8; 12] = b"Independent\0";
2568pub const NID_Independent: i32 = 667;
2569pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2570pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2571pub const NID_sha256WithRSAEncryption: i32 = 668;
2572pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2573pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2574pub const NID_sha384WithRSAEncryption: i32 = 669;
2575pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2576pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2577pub const NID_sha512WithRSAEncryption: i32 = 670;
2578pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2579pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2580pub const NID_sha224WithRSAEncryption: i32 = 671;
2581pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2582pub const LN_sha256: &[u8; 7] = b"sha256\0";
2583pub const NID_sha256: i32 = 672;
2584pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2585pub const LN_sha384: &[u8; 7] = b"sha384\0";
2586pub const NID_sha384: i32 = 673;
2587pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2588pub const LN_sha512: &[u8; 7] = b"sha512\0";
2589pub const NID_sha512: i32 = 674;
2590pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2591pub const LN_sha224: &[u8; 7] = b"sha224\0";
2592pub const NID_sha224: i32 = 675;
2593pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2594pub const NID_identified_organization: i32 = 676;
2595pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2596pub const NID_certicom_arc: i32 = 677;
2597pub const SN_wap: &[u8; 4] = b"wap\0";
2598pub const NID_wap: i32 = 678;
2599pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2600pub const NID_wap_wsg: i32 = 679;
2601pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2602pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2603pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2604pub const NID_X9_62_onBasis: i32 = 681;
2605pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2606pub const NID_X9_62_tpBasis: i32 = 682;
2607pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2608pub const NID_X9_62_ppBasis: i32 = 683;
2609pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2610pub const NID_X9_62_c2pnb163v1: i32 = 684;
2611pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2612pub const NID_X9_62_c2pnb163v2: i32 = 685;
2613pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2614pub const NID_X9_62_c2pnb163v3: i32 = 686;
2615pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2616pub const NID_X9_62_c2pnb176v1: i32 = 687;
2617pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2618pub const NID_X9_62_c2tnb191v1: i32 = 688;
2619pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2620pub const NID_X9_62_c2tnb191v2: i32 = 689;
2621pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2622pub const NID_X9_62_c2tnb191v3: i32 = 690;
2623pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2624pub const NID_X9_62_c2onb191v4: i32 = 691;
2625pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2626pub const NID_X9_62_c2onb191v5: i32 = 692;
2627pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2628pub const NID_X9_62_c2pnb208w1: i32 = 693;
2629pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2630pub const NID_X9_62_c2tnb239v1: i32 = 694;
2631pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2632pub const NID_X9_62_c2tnb239v2: i32 = 695;
2633pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2634pub const NID_X9_62_c2tnb239v3: i32 = 696;
2635pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2636pub const NID_X9_62_c2onb239v4: i32 = 697;
2637pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2638pub const NID_X9_62_c2onb239v5: i32 = 698;
2639pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2640pub const NID_X9_62_c2pnb272w1: i32 = 699;
2641pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2642pub const NID_X9_62_c2pnb304w1: i32 = 700;
2643pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2644pub const NID_X9_62_c2tnb359v1: i32 = 701;
2645pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2646pub const NID_X9_62_c2pnb368w1: i32 = 702;
2647pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2648pub const NID_X9_62_c2tnb431r1: i32 = 703;
2649pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2650pub const NID_secp112r1: i32 = 704;
2651pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2652pub const NID_secp112r2: i32 = 705;
2653pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2654pub const NID_secp128r1: i32 = 706;
2655pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2656pub const NID_secp128r2: i32 = 707;
2657pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2658pub const NID_secp160k1: i32 = 708;
2659pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2660pub const NID_secp160r1: i32 = 709;
2661pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2662pub const NID_secp160r2: i32 = 710;
2663pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2664pub const NID_secp192k1: i32 = 711;
2665pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2666pub const NID_secp224k1: i32 = 712;
2667pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2668pub const NID_secp224r1: i32 = 713;
2669pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2670pub const NID_secp256k1: i32 = 714;
2671pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2672pub const NID_secp384r1: i32 = 715;
2673pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2674pub const NID_secp521r1: i32 = 716;
2675pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2676pub const NID_sect113r1: i32 = 717;
2677pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2678pub const NID_sect113r2: i32 = 718;
2679pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2680pub const NID_sect131r1: i32 = 719;
2681pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2682pub const NID_sect131r2: i32 = 720;
2683pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2684pub const NID_sect163k1: i32 = 721;
2685pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2686pub const NID_sect163r1: i32 = 722;
2687pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2688pub const NID_sect163r2: i32 = 723;
2689pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2690pub const NID_sect193r1: i32 = 724;
2691pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2692pub const NID_sect193r2: i32 = 725;
2693pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2694pub const NID_sect233k1: i32 = 726;
2695pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2696pub const NID_sect233r1: i32 = 727;
2697pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2698pub const NID_sect239k1: i32 = 728;
2699pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2700pub const NID_sect283k1: i32 = 729;
2701pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2702pub const NID_sect283r1: i32 = 730;
2703pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2704pub const NID_sect409k1: i32 = 731;
2705pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2706pub const NID_sect409r1: i32 = 732;
2707pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2708pub const NID_sect571k1: i32 = 733;
2709pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2710pub const NID_sect571r1: i32 = 734;
2711pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2712pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2713pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2714pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2715pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2716pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2717pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2718pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2719pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2720pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2721pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2722pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2723pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2724pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2725pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2726pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2727pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2728pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2729pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2730pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2731pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2732pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2733pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2734pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2735pub const NID_any_policy: i32 = 746;
2736pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2737pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2738pub const NID_policy_mappings: i32 = 747;
2739pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2740pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2741pub const NID_inhibit_any_policy: i32 = 748;
2742pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2743pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2744pub const NID_ipsec3: i32 = 749;
2745pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2746pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2747pub const NID_ipsec4: i32 = 750;
2748pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2749pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2750pub const NID_camellia_128_cbc: i32 = 751;
2751pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2752pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2753pub const NID_camellia_192_cbc: i32 = 752;
2754pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2755pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2756pub const NID_camellia_256_cbc: i32 = 753;
2757pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2758pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2759pub const NID_camellia_128_ecb: i32 = 754;
2760pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2761pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2762pub const NID_camellia_192_ecb: i32 = 755;
2763pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2764pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2765pub const NID_camellia_256_ecb: i32 = 756;
2766pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2767pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2768pub const NID_camellia_128_cfb128: i32 = 757;
2769pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2770pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2771pub const NID_camellia_192_cfb128: i32 = 758;
2772pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2773pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2774pub const NID_camellia_256_cfb128: i32 = 759;
2775pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2776pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2777pub const NID_camellia_128_cfb1: i32 = 760;
2778pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
2779pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
2780pub const NID_camellia_192_cfb1: i32 = 761;
2781pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
2782pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
2783pub const NID_camellia_256_cfb1: i32 = 762;
2784pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
2785pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
2786pub const NID_camellia_128_cfb8: i32 = 763;
2787pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
2788pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
2789pub const NID_camellia_192_cfb8: i32 = 764;
2790pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
2791pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
2792pub const NID_camellia_256_cfb8: i32 = 765;
2793pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
2794pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
2795pub const NID_camellia_128_ofb128: i32 = 766;
2796pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
2797pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
2798pub const NID_camellia_192_ofb128: i32 = 767;
2799pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
2800pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
2801pub const NID_camellia_256_ofb128: i32 = 768;
2802pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
2803pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
2804pub const NID_subject_directory_attributes: i32 = 769;
2805pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
2806pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
2807pub const NID_issuing_distribution_point: i32 = 770;
2808pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
2809pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
2810pub const NID_certificate_issuer: i32 = 771;
2811pub const SN_kisa: &[u8; 5] = b"KISA\0";
2812pub const LN_kisa: &[u8; 5] = b"kisa\0";
2813pub const NID_kisa: i32 = 773;
2814pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
2815pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
2816pub const NID_seed_ecb: i32 = 776;
2817pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
2818pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
2819pub const NID_seed_cbc: i32 = 777;
2820pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
2821pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
2822pub const NID_seed_ofb128: i32 = 778;
2823pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
2824pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
2825pub const NID_seed_cfb128: i32 = 779;
2826pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
2827pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
2828pub const NID_hmac_md5: i32 = 780;
2829pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
2830pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
2831pub const NID_hmac_sha1: i32 = 781;
2832pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
2833pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
2834pub const NID_id_PasswordBasedMAC: i32 = 782;
2835pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
2836pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
2837pub const NID_id_DHBasedMac: i32 = 783;
2838pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
2839pub const NID_id_it_suppLangTags: i32 = 784;
2840pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
2841pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
2842pub const NID_caRepository: i32 = 785;
2843pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
2844pub const NID_id_smime_ct_compressedData: i32 = 786;
2845pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
2846pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
2847pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
2848pub const NID_id_aes128_wrap: i32 = 788;
2849pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
2850pub const NID_id_aes192_wrap: i32 = 789;
2851pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
2852pub const NID_id_aes256_wrap: i32 = 790;
2853pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
2854pub const NID_ecdsa_with_Recommended: i32 = 791;
2855pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
2856pub const NID_ecdsa_with_Specified: i32 = 792;
2857pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
2858pub const NID_ecdsa_with_SHA224: i32 = 793;
2859pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
2860pub const NID_ecdsa_with_SHA256: i32 = 794;
2861pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
2862pub const NID_ecdsa_with_SHA384: i32 = 795;
2863pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
2864pub const NID_ecdsa_with_SHA512: i32 = 796;
2865pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
2866pub const NID_hmacWithMD5: i32 = 797;
2867pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
2868pub const NID_hmacWithSHA224: i32 = 798;
2869pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
2870pub const NID_hmacWithSHA256: i32 = 799;
2871pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
2872pub const NID_hmacWithSHA384: i32 = 800;
2873pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
2874pub const NID_hmacWithSHA512: i32 = 801;
2875pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
2876pub const NID_dsa_with_SHA224: i32 = 802;
2877pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
2878pub const NID_dsa_with_SHA256: i32 = 803;
2879pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
2880pub const NID_whirlpool: i32 = 804;
2881pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
2882pub const NID_cryptopro: i32 = 805;
2883pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
2884pub const NID_cryptocom: i32 = 806;
2885pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
2886    b"id-GostR3411-94-with-GostR3410-2001\0";
2887pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
2888    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
2889pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
2890pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
2891pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
2892    b"GOST R 34.11-94 with GOST R 34.10-94\0";
2893pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
2894pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
2895pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
2896pub const NID_id_GostR3411_94: i32 = 809;
2897pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
2898pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
2899pub const NID_id_HMACGostR3411_94: i32 = 810;
2900pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
2901pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
2902pub const NID_id_GostR3410_2001: i32 = 811;
2903pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
2904pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
2905pub const NID_id_GostR3410_94: i32 = 812;
2906pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
2907pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
2908pub const NID_id_Gost28147_89: i32 = 813;
2909pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
2910pub const NID_gost89_cnt: i32 = 814;
2911pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
2912pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
2913pub const NID_id_Gost28147_89_MAC: i32 = 815;
2914pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
2915pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
2916pub const NID_id_GostR3411_94_prf: i32 = 816;
2917pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
2918pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
2919pub const NID_id_GostR3410_2001DH: i32 = 817;
2920pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
2921pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
2922pub const NID_id_GostR3410_94DH: i32 = 818;
2923pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
2924    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
2925pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
2926pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
2927pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
2928pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
2929pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
2930pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
2931pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
2932pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
2933pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
2934pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
2935    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
2936pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
2937pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
2938    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
2939pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
2940pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
2941    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
2942pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
2943pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
2944    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
2945pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
2946pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
2947    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
2948pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
2949pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
2950    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
2951pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
2952pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
2953    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
2954pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
2955pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
2956pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
2957pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
2958    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
2959pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
2960pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
2961    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
2962pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
2963pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
2964    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
2965pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
2966pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
2967    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
2968pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
2969pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
2970    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
2971pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
2972pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
2973    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
2974pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
2975pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
2976    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
2977pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
2978pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
2979pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
2980pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
2981    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
2982pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
2983pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
2984    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
2985pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
2986pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
2987    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
2988pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
2989pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
2990    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
2991pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
2992pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
2993    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
2994pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
2995pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
2996pub const NID_id_GostR3410_94_a: i32 = 845;
2997pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
2998pub const NID_id_GostR3410_94_aBis: i32 = 846;
2999pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
3000pub const NID_id_GostR3410_94_b: i32 = 847;
3001pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
3002pub const NID_id_GostR3410_94_bBis: i32 = 848;
3003pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3004pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3005pub const NID_id_Gost28147_89_cc: i32 = 849;
3006pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3007pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3008pub const NID_id_GostR3410_94_cc: i32 = 850;
3009pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3010pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3011pub const NID_id_GostR3410_2001_cc: i32 = 851;
3012pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3013    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3014pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3015    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3016pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3017pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3018    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3019pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3020    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3021pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3022pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3023pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3024    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3025pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3026pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3027pub const LN_hmac: &[u8; 5] = b"hmac\0";
3028pub const NID_hmac: i32 = 855;
3029pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3030pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3031pub const NID_LocalKeySet: i32 = 856;
3032pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3033pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3034pub const NID_freshest_crl: i32 = 857;
3035pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3036pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3037pub const NID_id_on_permanentIdentifier: i32 = 858;
3038pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3039pub const NID_searchGuide: i32 = 859;
3040pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3041pub const NID_businessCategory: i32 = 860;
3042pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3043pub const NID_postalAddress: i32 = 861;
3044pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3045pub const NID_postOfficeBox: i32 = 862;
3046pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3047pub const NID_physicalDeliveryOfficeName: i32 = 863;
3048pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3049pub const NID_telephoneNumber: i32 = 864;
3050pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3051pub const NID_telexNumber: i32 = 865;
3052pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3053pub const NID_teletexTerminalIdentifier: i32 = 866;
3054pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3055pub const NID_facsimileTelephoneNumber: i32 = 867;
3056pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3057pub const NID_x121Address: i32 = 868;
3058pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3059pub const NID_internationaliSDNNumber: i32 = 869;
3060pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3061pub const NID_registeredAddress: i32 = 870;
3062pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3063pub const NID_destinationIndicator: i32 = 871;
3064pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3065pub const NID_preferredDeliveryMethod: i32 = 872;
3066pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3067pub const NID_presentationAddress: i32 = 873;
3068pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3069pub const NID_supportedApplicationContext: i32 = 874;
3070pub const SN_member: &[u8; 7] = b"member\0";
3071pub const NID_member: i32 = 875;
3072pub const SN_owner: &[u8; 6] = b"owner\0";
3073pub const NID_owner: i32 = 876;
3074pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3075pub const NID_roleOccupant: i32 = 877;
3076pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3077pub const NID_seeAlso: i32 = 878;
3078pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3079pub const NID_userPassword: i32 = 879;
3080pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3081pub const NID_userCertificate: i32 = 880;
3082pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3083pub const NID_cACertificate: i32 = 881;
3084pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3085pub const NID_authorityRevocationList: i32 = 882;
3086pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3087pub const NID_certificateRevocationList: i32 = 883;
3088pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3089pub const NID_crossCertificatePair: i32 = 884;
3090pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3091pub const NID_enhancedSearchGuide: i32 = 885;
3092pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3093pub const NID_protocolInformation: i32 = 886;
3094pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3095pub const NID_distinguishedName: i32 = 887;
3096pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3097pub const NID_uniqueMember: i32 = 888;
3098pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3099pub const NID_houseIdentifier: i32 = 889;
3100pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3101pub const NID_supportedAlgorithms: i32 = 890;
3102pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3103pub const NID_deltaRevocationList: i32 = 891;
3104pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3105pub const NID_dmdName: i32 = 892;
3106pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3107pub const NID_id_alg_PWRI_KEK: i32 = 893;
3108pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3109pub const LN_cmac: &[u8; 5] = b"cmac\0";
3110pub const NID_cmac: i32 = 894;
3111pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3112pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3113pub const NID_aes_128_gcm: i32 = 895;
3114pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3115pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3116pub const NID_aes_128_ccm: i32 = 896;
3117pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3118pub const NID_id_aes128_wrap_pad: i32 = 897;
3119pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3120pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3121pub const NID_aes_192_gcm: i32 = 898;
3122pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3123pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3124pub const NID_aes_192_ccm: i32 = 899;
3125pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3126pub const NID_id_aes192_wrap_pad: i32 = 900;
3127pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3128pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3129pub const NID_aes_256_gcm: i32 = 901;
3130pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3131pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3132pub const NID_aes_256_ccm: i32 = 902;
3133pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3134pub const NID_id_aes256_wrap_pad: i32 = 903;
3135pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3136pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3137pub const NID_aes_128_ctr: i32 = 904;
3138pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3139pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3140pub const NID_aes_192_ctr: i32 = 905;
3141pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3142pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3143pub const NID_aes_256_ctr: i32 = 906;
3144pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3145pub const NID_id_camellia128_wrap: i32 = 907;
3146pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3147pub const NID_id_camellia192_wrap: i32 = 908;
3148pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3149pub const NID_id_camellia256_wrap: i32 = 909;
3150pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3151pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3152pub const NID_anyExtendedKeyUsage: i32 = 910;
3153pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3154pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3155pub const NID_mgf1: i32 = 911;
3156pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3157pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3158pub const NID_rsassaPss: i32 = 912;
3159pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3160pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3161pub const NID_aes_128_xts: i32 = 913;
3162pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3163pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3164pub const NID_aes_256_xts: i32 = 914;
3165pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3166pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3167pub const NID_rc4_hmac_md5: i32 = 915;
3168pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3169pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3170pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3171pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3172pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3173pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3174pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3175pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3176pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3177pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3178pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3179pub const NID_rsaesOaep: i32 = 919;
3180pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3181pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3182pub const NID_dhpublicnumber: i32 = 920;
3183pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3184pub const NID_brainpoolP160r1: i32 = 921;
3185pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3186pub const NID_brainpoolP160t1: i32 = 922;
3187pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3188pub const NID_brainpoolP192r1: i32 = 923;
3189pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3190pub const NID_brainpoolP192t1: i32 = 924;
3191pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3192pub const NID_brainpoolP224r1: i32 = 925;
3193pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3194pub const NID_brainpoolP224t1: i32 = 926;
3195pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3196pub const NID_brainpoolP256r1: i32 = 927;
3197pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3198pub const NID_brainpoolP256t1: i32 = 928;
3199pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3200pub const NID_brainpoolP320r1: i32 = 929;
3201pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3202pub const NID_brainpoolP320t1: i32 = 930;
3203pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3204pub const NID_brainpoolP384r1: i32 = 931;
3205pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3206pub const NID_brainpoolP384t1: i32 = 932;
3207pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3208pub const NID_brainpoolP512r1: i32 = 933;
3209pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3210pub const NID_brainpoolP512t1: i32 = 934;
3211pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3212pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3213pub const NID_pSpecified: i32 = 935;
3214pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3215pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3216pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3217    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3218pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3219pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3220    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3221pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3222pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3223    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3224pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3225pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3226    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3227pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3228pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3229    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3230pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3231pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3232    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3233pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3234pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3235    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3236pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3237pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3238    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3239pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3240pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3241    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3242pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3243pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3244pub const NID_dh_std_kdf: i32 = 946;
3245pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3246pub const NID_dh_cofactor_kdf: i32 = 947;
3247pub const SN_X25519: &[u8; 7] = b"X25519\0";
3248pub const NID_X25519: i32 = 948;
3249pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3250pub const NID_ED25519: i32 = 949;
3251pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3252pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3253pub const NID_chacha20_poly1305: i32 = 950;
3254pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3255pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3256pub const NID_kx_rsa: i32 = 951;
3257pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3258pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3259pub const NID_kx_ecdhe: i32 = 952;
3260pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3261pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3262pub const NID_kx_psk: i32 = 953;
3263pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3264pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3265pub const NID_auth_rsa: i32 = 954;
3266pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3267pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3268pub const NID_auth_ecdsa: i32 = 955;
3269pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3270pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3271pub const NID_auth_psk: i32 = 956;
3272pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3273pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3274pub const NID_kx_any: i32 = 957;
3275pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3276pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3277pub const NID_auth_any: i32 = 958;
3278pub const SN_ED448: &[u8; 6] = b"ED448\0";
3279pub const NID_ED448: i32 = 960;
3280pub const SN_X448: &[u8; 5] = b"X448\0";
3281pub const NID_X448: i32 = 961;
3282pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3283pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3284pub const NID_sha512_256: i32 = 962;
3285pub const SN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"AES-128-CBC-HMAC-SHA256\0";
3286pub const LN_aes_128_cbc_hmac_sha256: &[u8; 24] = b"aes-128-cbc-hmac-sha256\0";
3287pub const NID_aes_128_cbc_hmac_sha256: i32 = 963;
3288pub const SN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"AES-256-CBC-HMAC-SHA256\0";
3289pub const LN_aes_256_cbc_hmac_sha256: &[u8; 24] = b"aes-256-cbc-hmac-sha256\0";
3290pub const NID_aes_256_cbc_hmac_sha256: i32 = 964;
3291pub const SN_sha3_224: &[u8; 9] = b"SHA3-224\0";
3292pub const LN_sha3_224: &[u8; 9] = b"sha3-224\0";
3293pub const NID_sha3_224: i32 = 965;
3294pub const SN_sha3_256: &[u8; 9] = b"SHA3-256\0";
3295pub const LN_sha3_256: &[u8; 9] = b"sha3-256\0";
3296pub const NID_sha3_256: i32 = 966;
3297pub const SN_sha3_384: &[u8; 9] = b"SHA3-384\0";
3298pub const LN_sha3_384: &[u8; 9] = b"sha3-384\0";
3299pub const NID_sha3_384: i32 = 967;
3300pub const SN_sha3_512: &[u8; 9] = b"SHA3-512\0";
3301pub const LN_sha3_512: &[u8; 9] = b"sha3-512\0";
3302pub const NID_sha3_512: i32 = 968;
3303pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3304pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3305pub const NID_hkdf: i32 = 969;
3306pub const SN_kem: &[u8; 4] = b"KEM\0";
3307pub const LN_kem: &[u8; 4] = b"kem\0";
3308pub const NID_kem: i32 = 970;
3309pub const SN_ffdhe2048: &[u8; 10] = b"ffdhe2048\0";
3310pub const NID_ffdhe2048: i32 = 976;
3311pub const SN_ffdhe4096: &[u8; 10] = b"ffdhe4096\0";
3312pub const NID_ffdhe4096: i32 = 977;
3313pub const SN_sha512_224: &[u8; 11] = b"SHA512-224\0";
3314pub const LN_sha512_224: &[u8; 11] = b"sha512-224\0";
3315pub const NID_sha512_224: i32 = 978;
3316pub const SN_shake128: &[u8; 9] = b"SHAKE128\0";
3317pub const LN_shake128: &[u8; 9] = b"shake128\0";
3318pub const NID_shake128: i32 = 979;
3319pub const SN_shake256: &[u8; 9] = b"SHAKE256\0";
3320pub const LN_shake256: &[u8; 9] = b"shake256\0";
3321pub const NID_shake256: i32 = 980;
3322pub const SN_ffdhe3072: &[u8; 10] = b"ffdhe3072\0";
3323pub const NID_ffdhe3072: i32 = 983;
3324pub const SN_ffdhe8192: &[u8; 10] = b"ffdhe8192\0";
3325pub const NID_ffdhe8192: i32 = 984;
3326pub const SN_MLKEM512IPD: &[u8; 12] = b"MLKEM512IPD\0";
3327pub const NID_MLKEM512IPD: i32 = 985;
3328pub const SN_MLKEM768IPD: &[u8; 12] = b"MLKEM768IPD\0";
3329pub const NID_MLKEM768IPD: i32 = 986;
3330pub const SN_MLKEM1024IPD: &[u8; 13] = b"MLKEM1024IPD\0";
3331pub const NID_MLKEM1024IPD: i32 = 987;
3332pub const SN_MLKEM512: &[u8; 9] = b"MLKEM512\0";
3333pub const NID_MLKEM512: i32 = 988;
3334pub const SN_MLKEM768: &[u8; 9] = b"MLKEM768\0";
3335pub const NID_MLKEM768: i32 = 989;
3336pub const SN_MLKEM1024: &[u8; 10] = b"MLKEM1024\0";
3337pub const NID_MLKEM1024: i32 = 990;
3338pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3339pub const NID_X25519MLKEM768: i32 = 991;
3340pub const SN_SecP256r1MLKEM768: &[u8; 18] = b"SecP256r1MLKEM768\0";
3341pub const NID_SecP256r1MLKEM768: i32 = 992;
3342pub const SN_PQDSA: &[u8; 6] = b"PQDSA\0";
3343pub const NID_PQDSA: i32 = 993;
3344pub const SN_MLDSA44: &[u8; 8] = b"MLDSA44\0";
3345pub const NID_MLDSA44: i32 = 994;
3346pub const SN_MLDSA65: &[u8; 8] = b"MLDSA65\0";
3347pub const NID_MLDSA65: i32 = 995;
3348pub const SN_MLDSA87: &[u8; 8] = b"MLDSA87\0";
3349pub const NID_MLDSA87: i32 = 996;
3350pub const SN_ED25519ph: &[u8; 10] = b"ED25519ph\0";
3351pub const NID_ED25519ph: i32 = 997;
3352pub const SN_SecP384r1MLKEM1024: &[u8; 19] = b"SecP384r1MLKEM1024\0";
3353pub const NID_SecP384r1MLKEM1024: i32 = 998;
3354pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3355pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3356pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3357pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3358pub const MD5_CBLOCK: i32 = 64;
3359pub const MD5_DIGEST_LENGTH: i32 = 16;
3360pub const HMAC_MD5_PRECOMPUTED_KEY_SIZE: i32 = 32;
3361pub const HMAC_SHA1_PRECOMPUTED_KEY_SIZE: i32 = 40;
3362pub const HMAC_SHA224_PRECOMPUTED_KEY_SIZE: i32 = 64;
3363pub const HMAC_SHA256_PRECOMPUTED_KEY_SIZE: i32 = 64;
3364pub const HMAC_SHA384_PRECOMPUTED_KEY_SIZE: i32 = 128;
3365pub const HMAC_SHA512_PRECOMPUTED_KEY_SIZE: i32 = 128;
3366pub const HMAC_SHA512_224_PRECOMPUTED_KEY_SIZE: i32 = 128;
3367pub const HMAC_SHA512_256_PRECOMPUTED_KEY_SIZE: i32 = 128;
3368pub const HMAC_MAX_PRECOMPUTED_KEY_SIZE: i32 = 128;
3369pub const HMAC_R_MISSING_PARAMETERS: i32 = 100;
3370pub const HMAC_R_BUFFER_TOO_SMALL: i32 = 102;
3371pub const HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED: i32 = 103;
3372pub const HMAC_R_NOT_CALLED_JUST_AFTER_INIT: i32 = 104;
3373pub const HMAC_R_PRECOMPUTED_KEY_NOT_SUPPORTED_FOR_DIGEST: i32 = 105;
3374pub const HMAC_R_UNSUPPORTED_DIGEST: i32 = 106;
3375pub const EVP_PKEY_NONE: i32 = 0;
3376pub const EVP_PKEY_RSA: i32 = 6;
3377pub const EVP_PKEY_RSA_PSS: i32 = 912;
3378pub const EVP_PKEY_EC: i32 = 408;
3379pub const EVP_PKEY_ED25519: i32 = 949;
3380pub const EVP_PKEY_ED25519PH: i32 = 997;
3381pub const EVP_PKEY_X25519: i32 = 948;
3382pub const EVP_PKEY_HKDF: i32 = 969;
3383pub const EVP_PKEY_HMAC: i32 = 855;
3384pub const EVP_PKEY_DH: i32 = 28;
3385pub const EVP_PKEY_PQDSA: i32 = 993;
3386pub const EVP_PKEY_KEM: i32 = 970;
3387pub const PKCS5_SALT_LEN: i32 = 8;
3388pub const EVP_PKEY_RSA2: i32 = 19;
3389pub const EVP_PKEY_X448: i32 = 961;
3390pub const EVP_PKEY_ED448: i32 = 960;
3391pub const EVP_PKEY_DSA: i32 = 116;
3392pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3393pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3394pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3395pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3396pub const HKDF_R_UNSUPPORTED_DIGEST: i32 = 101;
3397pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3398pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 32;
3399pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 32;
3400pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 32;
3401pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3402pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3403pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3404pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3405pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3406pub const HRSS_SAMPLE_BYTES: i32 = 700;
3407pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3408pub const HRSS_ENCAP_BYTES: i32 = 1400;
3409pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3410pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3411pub const HRSS_KEY_BYTES: i32 = 32;
3412pub const HRSS_POLY3_BYTES: i32 = 140;
3413pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3414pub const MD4_CBLOCK: i32 = 64;
3415pub const MD4_DIGEST_LENGTH: i32 = 16;
3416pub const PKCS7_DETACHED: i32 = 64;
3417pub const PKCS7_BINARY: i32 = 128;
3418pub const PKCS7_NOINTERN: i32 = 16;
3419pub const PKCS7_NOATTR: i32 = 256;
3420pub const PKCS7_NOCERTS: i32 = 2;
3421pub const PKCS7_NOVERIFY: i32 = 32;
3422pub const PKCS7_TEXT: i32 = 1;
3423pub const PKCS7_NOSIGS: i32 = 4;
3424pub const PKCS7_NOCHAIN: i32 = 8;
3425pub const PKCS7_NOSMIMECAP: i32 = 512;
3426pub const PKCS7_STREAM: i32 = 4096;
3427pub const PKCS7_PARTIAL: i32 = 16384;
3428pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3429pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3430pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3431pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3432pub const PKCS7_R_INVALID_NULL_POINTER: i32 = 104;
3433pub const PKCS7_R_NO_CONTENT: i32 = 105;
3434pub const PKCS7_R_CIPHER_NOT_INITIALIZED: i32 = 106;
3435pub const PKCS7_R_UNSUPPORTED_CONTENT_TYPE: i32 = 107;
3436pub const PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST: i32 = 108;
3437pub const PKCS7_R_UNABLE_TO_FIND_MEM_BIO: i32 = 109;
3438pub const PKCS7_R_WRONG_CONTENT_TYPE: i32 = 110;
3439pub const PKCS7_R_CONTENT_AND_DATA_PRESENT: i32 = 111;
3440pub const PKCS7_R_NO_SIGNATURES_ON_DATA: i32 = 112;
3441pub const PKCS7_R_CERTIFICATE_VERIFY_ERROR: i32 = 113;
3442pub const PKCS7_R_SMIME_TEXT_ERROR: i32 = 114;
3443pub const PKCS7_R_SIGNATURE_FAILURE: i32 = 115;
3444pub const PKCS7_R_NO_SIGNERS: i32 = 116;
3445pub const PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 117;
3446pub const PKCS7_R_ERROR_SETTING_CIPHER: i32 = 118;
3447pub const PKCS7_R_ERROR_ADDING_RECIPIENT: i32 = 119;
3448pub const PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 120;
3449pub const PKCS7_R_DECRYPT_ERROR: i32 = 121;
3450pub const PKCS7_R_PKCS7_DATASIGN: i32 = 122;
3451pub const PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 123;
3452pub const PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE: i32 = 124;
3453pub const PKCS7_R_UNKNOWN_DIGEST_TYPE: i32 = 125;
3454pub const PKCS7_R_INVALID_SIGNED_DATA_TYPE: i32 = 126;
3455pub const PKCS7_R_UNSUPPORTED_CIPHER_TYPE: i32 = 127;
3456pub const PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE: i32 = 128;
3457pub const PKCS7_R_DIGEST_FAILURE: i32 = 129;
3458pub const PKCS7_R_WRONG_PKCS7_TYPE: i32 = 130;
3459pub const PKCS7_R_PKCS7_ADD_SIGNER_ERROR: i32 = 131;
3460pub const PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR: i32 = 132;
3461pub const PKCS7_R_NO_DEFAULT_DIGEST: i32 = 133;
3462pub const PKCS7_R_CERT_MUST_BE_RSA: i32 = 134;
3463pub const PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE: i32 = 135;
3464pub const RSA_PKCS1_PADDING: i32 = 1;
3465pub const RSA_NO_PADDING: i32 = 3;
3466pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3467pub const RSA_X931_PADDING: i32 = 5;
3468pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3469pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3470pub const RSA_FLAG_OPAQUE: i32 = 1;
3471pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3472pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3473pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3474pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3475pub const RSA_3: i32 = 3;
3476pub const RSA_F4: i32 = 65537;
3477pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3478pub const RSA_R_BAD_ENCODING: i32 = 100;
3479pub const RSA_R_BAD_E_VALUE: i32 = 101;
3480pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3481pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3482pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3483pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3484pub const RSA_R_BAD_VERSION: i32 = 106;
3485pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3486pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3487pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3488pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3489pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3490pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3491pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3492pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3493pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3494pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3495pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3496pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3497pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3498pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3499pub const RSA_R_ENCODE_ERROR: i32 = 121;
3500pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3501pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3502pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3503pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3504pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3505pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3506pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3507pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3508pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3509pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3510pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3511pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3512pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3513pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3514pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3515pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3516pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3517pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3518pub const RSA_R_TOO_LONG: i32 = 140;
3519pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3520pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3521pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3522pub const RSA_R_VALUE_MISSING: i32 = 144;
3523pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3524pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3525pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3526pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3527pub const RSA_R_MISMATCHED_SIGNATURE: i32 = 248;
3528pub const RSA_F_RSA_OSSL_PRIVATE_ENCRYPT: i32 = 0;
3529pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3530pub const X509V3_R_BAD_OBJECT: i32 = 101;
3531pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3532pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3533pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3534pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3535pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3536pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3537pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3538pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3539pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3540pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3541pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3542pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3543pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3544pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3545pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3546pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3547pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3548pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3549pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3550pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3551pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3552pub const X509V3_R_INVALID_NAME: i32 = 123;
3553pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3554pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3555pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3556pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3557pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3558pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3559pub const X509V3_R_INVALID_OPTION: i32 = 130;
3560pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3561pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3562pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3563pub const X509V3_R_INVALID_SECTION: i32 = 134;
3564pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3565pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3566pub const X509V3_R_MISSING_VALUE: i32 = 137;
3567pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3568pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3569pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3570pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3571pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3572pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3573pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3574pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3575pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3576pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3577pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3578pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3579pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3580pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3581pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3582pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3583pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3584pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3585pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3586pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3587pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3588pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3589pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3590pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3591pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3592pub const X509V3_R_INVALID_VALUE: i32 = 163;
3593pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3594pub const X509_VERSION_1: i32 = 0;
3595pub const X509_VERSION_2: i32 = 1;
3596pub const X509_VERSION_3: i32 = 2;
3597pub const EXFLAG_BCONS: i32 = 1;
3598pub const EXFLAG_KUSAGE: i32 = 2;
3599pub const EXFLAG_XKUSAGE: i32 = 4;
3600pub const EXFLAG_NSCERT: i32 = 8;
3601pub const EXFLAG_CA: i32 = 16;
3602pub const EXFLAG_SI: i32 = 32;
3603pub const EXFLAG_V1: i32 = 64;
3604pub const EXFLAG_INVALID: i32 = 128;
3605pub const EXFLAG_SET: i32 = 256;
3606pub const EXFLAG_CRITICAL: i32 = 512;
3607pub const EXFLAG_SS: i32 = 8192;
3608pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3609pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3610pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3611pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3612pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3613pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3614pub const X509v3_KU_CRL_SIGN: i32 = 2;
3615pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3616pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3617pub const XKU_SSL_SERVER: i32 = 1;
3618pub const XKU_SSL_CLIENT: i32 = 2;
3619pub const XKU_SMIME: i32 = 4;
3620pub const XKU_CODE_SIGN: i32 = 8;
3621pub const XKU_SGC: i32 = 16;
3622pub const XKU_OCSP_SIGN: i32 = 32;
3623pub const XKU_TIMESTAMP: i32 = 64;
3624pub const XKU_DVCS: i32 = 128;
3625pub const XKU_ANYEKU: i32 = 256;
3626pub const X509_SIG_INFO_VALID: i32 = 1;
3627pub const X509_SIG_INFO_TLS: i32 = 2;
3628pub const X509_CRL_VERSION_1: i32 = 0;
3629pub const X509_CRL_VERSION_2: i32 = 1;
3630pub const X509_REQ_VERSION_1: i32 = 0;
3631pub const X509V3_ADD_OP_MASK: i32 = 15;
3632pub const X509V3_ADD_DEFAULT: i32 = 0;
3633pub const X509V3_ADD_APPEND: i32 = 1;
3634pub const X509V3_ADD_REPLACE: i32 = 2;
3635pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3636pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3637pub const X509V3_ADD_DELETE: i32 = 5;
3638pub const X509V3_ADD_SILENT: i32 = 16;
3639pub const GEN_OTHERNAME: i32 = 0;
3640pub const GEN_EMAIL: i32 = 1;
3641pub const GEN_DNS: i32 = 2;
3642pub const GEN_X400: i32 = 3;
3643pub const GEN_DIRNAME: i32 = 4;
3644pub const GEN_EDIPARTY: i32 = 5;
3645pub const GEN_URI: i32 = 6;
3646pub const GEN_IPADD: i32 = 7;
3647pub const GEN_RID: i32 = 8;
3648pub const X509_LU_NONE: i32 = 0;
3649pub const X509_LU_X509: i32 = 1;
3650pub const X509_LU_CRL: i32 = 2;
3651pub const X509_LU_PKEY: i32 = 3;
3652pub const X509_V_OK: i32 = 0;
3653pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3654pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3655pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3656pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3657pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3658pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3659pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3660pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3661pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3662pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3663pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3664pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3665pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3666pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3667pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3668pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3669pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3670pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3671pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3672pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3673pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3674pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3675pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3676pub const X509_V_ERR_INVALID_CA: i32 = 24;
3677pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3678pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3679pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3680pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3681pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3682pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3683pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3684pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3685pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3686pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3687pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3688pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3689pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3690pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3691pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3692pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3693pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3694pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3695pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3696pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3697pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3698pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3699pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3700pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3701pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3702pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3703pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3704pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3705pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3706pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3707pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3708pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3709pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3710pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3711pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3712pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3713pub const X509_V_ERR_EE_KEY_TOO_SMALL: i32 = 68;
3714pub const X509_V_ERR_CA_KEY_TOO_SMALL: i32 = 69;
3715pub const X509_V_ERR_CA_MD_TOO_WEAK: i32 = 70;
3716pub const X509_V_UNABLE_TO_GET_CERTS_PUBLIC_KEY: i32 = 71;
3717pub const X509_V_ERR_EC_KEY_EXPLICIT_PARAMS: i32 = 72;
3718pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3719pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3720pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3721pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3722pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3723pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3724pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3725pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3726pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3727pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3728pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3729pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3730pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3731pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3732pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3733pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 32768;
3734pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3735pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 1048576;
3736pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3737pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 1;
3738pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3739pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 16;
3740pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3741pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3742pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3743pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3744pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3745pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3746pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3747pub const X509_PURPOSE_ANY: i32 = 7;
3748pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3749pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3750pub const X509_TRUST_COMPAT: i32 = 1;
3751pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3752pub const X509_TRUST_SSL_SERVER: i32 = 3;
3753pub const X509_TRUST_EMAIL: i32 = 4;
3754pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3755pub const X509_TRUST_OCSP_SIGN: i32 = 6;
3756pub const X509_TRUST_OCSP_REQUEST: i32 = 7;
3757pub const X509_TRUST_TSA: i32 = 8;
3758pub const X509_FILETYPE_PEM: i32 = 1;
3759pub const X509_FILETYPE_ASN1: i32 = 2;
3760pub const X509_FILETYPE_DEFAULT: i32 = 3;
3761pub const X509_L_FILE_LOAD: i32 = 1;
3762pub const X509_L_ADD_DIR: i32 = 2;
3763pub const X509_FLAG_COMPAT: i32 = 0;
3764pub const X509_FLAG_NO_HEADER: i32 = 1;
3765pub const X509_FLAG_NO_VERSION: i32 = 2;
3766pub const X509_FLAG_NO_SERIAL: i32 = 4;
3767pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3768pub const X509_FLAG_NO_ISSUER: i32 = 16;
3769pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3770pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3771pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3772pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3773pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3774pub const X509_FLAG_NO_AUX: i32 = 1024;
3775pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3776pub const X509_FLAG_NO_IDS: i32 = 4096;
3777pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3778pub const X509V3_EXT_DEFAULT: i32 = 0;
3779pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3780pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3781pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3782pub const XN_FLAG_COMPAT: i32 = 0;
3783pub const XN_FLAG_SEP_MASK: i32 = 983040;
3784pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3785pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3786pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3787pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3788pub const XN_FLAG_DN_REV: i32 = 1048576;
3789pub const XN_FLAG_FN_MASK: i32 = 6291456;
3790pub const XN_FLAG_FN_SN: i32 = 0;
3791pub const XN_FLAG_FN_LN: i32 = 2097152;
3792pub const XN_FLAG_FN_OID: i32 = 4194304;
3793pub const XN_FLAG_FN_NONE: i32 = 6291456;
3794pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3795pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3796pub const XN_FLAG_FN_ALIGN: i32 = 33554432;
3797pub const XN_FLAG_RFC2253: i32 = 17892119;
3798pub const XN_FLAG_ONELINE: i32 = 8520479;
3799pub const XN_FLAG_MULTILINE: i32 = 44302342;
3800pub const X509_TRUST_TRUSTED: i32 = 1;
3801pub const X509_TRUST_REJECTED: i32 = 2;
3802pub const X509_TRUST_UNTRUSTED: i32 = 3;
3803pub const X509V3_EXT_MULTILINE: i32 = 4;
3804pub const X509V3_CTX_TEST: i32 = 1;
3805pub const X509V3_CTX_REPLACE: i32 = 2;
3806pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3807pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3808pub const NS_SSL_CLIENT: i32 = 128;
3809pub const NS_SSL_SERVER: i32 = 64;
3810pub const NS_SMIME: i32 = 32;
3811pub const NS_OBJSIGN: i32 = 16;
3812pub const NS_SSL_CA: i32 = 4;
3813pub const NS_SMIME_CA: i32 = 2;
3814pub const NS_OBJSIGN_CA: i32 = 1;
3815pub const NS_ANY_CA: i32 = 7;
3816pub const X509_V_FLAG_POLICY_MASK: i32 = 1920;
3817pub const X509_R_AKID_MISMATCH: i32 = 100;
3818pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3819pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3820pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3821pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3822pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3823pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3824pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3825pub const X509_R_IDP_MISMATCH: i32 = 108;
3826pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3827pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3828pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3829pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3830pub const X509_R_INVALID_TRUST: i32 = 113;
3831pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3832pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3833pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3834pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3835pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3836pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3837pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3838pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3839pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3840pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3841pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3842pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3843pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3844pub const X509_R_SHOULD_RETRY: i32 = 127;
3845pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3846pub const X509_R_UNKNOWN_NID: i32 = 129;
3847pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3848pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3849pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3850pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3851pub const X509_R_WRONG_TYPE: i32 = 134;
3852pub const X509_R_NAME_TOO_LONG: i32 = 135;
3853pub const X509_R_INVALID_PARAMETER: i32 = 136;
3854pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3855pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3856pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3857pub const X509_R_INVALID_VERSION: i32 = 140;
3858pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3859pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3860pub const X509_R_NO_CRL_FOUND: i32 = 143;
3861pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
3862pub const X509_R_UNKNOWN_SIGID_ALGS: i32 = 145;
3863pub const CRL_REASON_NONE: i32 = -1;
3864pub const CRL_REASON_UNSPECIFIED: i32 = 0;
3865pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
3866pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
3867pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
3868pub const CRL_REASON_SUPERSEDED: i32 = 4;
3869pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
3870pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
3871pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
3872pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
3873pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
3874pub const KU_DIGITAL_SIGNATURE: i32 = 128;
3875pub const KU_NON_REPUDIATION: i32 = 64;
3876pub const KU_KEY_ENCIPHERMENT: i32 = 32;
3877pub const KU_DATA_ENCIPHERMENT: i32 = 16;
3878pub const KU_KEY_AGREEMENT: i32 = 8;
3879pub const KU_KEY_CERT_SIGN: i32 = 4;
3880pub const KU_CRL_SIGN: i32 = 2;
3881pub const KU_ENCIPHER_ONLY: i32 = 1;
3882pub const KU_DECIPHER_ONLY: i32 = 32768;
3883pub const OCSP_REVOKED_STATUS_NOSTATUS: i32 = -1;
3884pub const OCSP_REVOKED_STATUS_UNSPECIFIED: i32 = 0;
3885pub const OCSP_REVOKED_STATUS_KEYCOMPROMISE: i32 = 1;
3886pub const OCSP_REVOKED_STATUS_CACOMPROMISE: i32 = 2;
3887pub const OCSP_REVOKED_STATUS_AFFILIATIONCHANGED: i32 = 3;
3888pub const OCSP_REVOKED_STATUS_SUPERSEDED: i32 = 4;
3889pub const OCSP_REVOKED_STATUS_CESSATIONOFOPERATION: i32 = 5;
3890pub const OCSP_REVOKED_STATUS_CERTIFICATEHOLD: i32 = 6;
3891pub const OCSP_REVOKED_STATUS_REMOVEFROMCRL: i32 = 8;
3892pub const OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN: i32 = 9;
3893pub const OCSP_REVOKED_STATUS_AACOMPROMISE: i32 = 10;
3894pub const OCSP_NOCERTS: i32 = 1;
3895pub const OCSP_NOINTERN: i32 = 2;
3896pub const OCSP_NOCHAIN: i32 = 8;
3897pub const OCSP_NOVERIFY: i32 = 16;
3898pub const OCSP_NOEXPLICIT: i32 = 32;
3899pub const OCSP_TRUSTOTHER: i32 = 512;
3900pub const OCSP_RESPID_KEY: i32 = 1024;
3901pub const OCSP_NOTIME: i32 = 2048;
3902pub const OCSP_NOSIGS: i32 = 0;
3903pub const OCSP_NOCASIGN: i32 = 0;
3904pub const OCSP_NODELEGATED: i32 = 0;
3905pub const OCSP_NOCHECKS: i32 = 0;
3906pub const OCSP_RESPONSE_STATUS_SUCCESSFUL: i32 = 0;
3907pub const OCSP_RESPONSE_STATUS_MALFORMEDREQUEST: i32 = 1;
3908pub const OCSP_RESPONSE_STATUS_INTERNALERROR: i32 = 2;
3909pub const OCSP_RESPONSE_STATUS_TRYLATER: i32 = 3;
3910pub const OCSP_RESPONSE_STATUS_SIGREQUIRED: i32 = 5;
3911pub const OCSP_RESPONSE_STATUS_UNAUTHORIZED: i32 = 6;
3912pub const V_OCSP_RESPID_NAME: i32 = 0;
3913pub const V_OCSP_RESPID_KEY: i32 = 1;
3914pub const V_OCSP_CERTSTATUS_GOOD: i32 = 0;
3915pub const V_OCSP_CERTSTATUS_REVOKED: i32 = 1;
3916pub const V_OCSP_CERTSTATUS_UNKNOWN: i32 = 2;
3917pub const OCSP_NONCE_EQUAL: i32 = 1;
3918pub const OCSP_NONCE_BOTH_ABSENT: i32 = 2;
3919pub const OCSP_NONCE_RESPONSE_ONLY: i32 = 3;
3920pub const OCSP_NONCE_NOT_EQUAL: i32 = 0;
3921pub const OCSP_NONCE_REQUEST_ONLY: i32 = -1;
3922pub const OCSP_R_CERTIFICATE_VERIFY_ERROR: i32 = 101;
3923pub const OCSP_R_DIGEST_ERR: i32 = 102;
3924pub const OCSP_R_MISSING_OCSPSIGNING_USAGE: i32 = 103;
3925pub const OCSP_R_NOT_BASIC_RESPONSE: i32 = 104;
3926pub const OCSP_R_NO_CERTIFICATES_IN_CHAIN: i32 = 105;
3927pub const OCSP_R_NO_RESPONSE_DATA: i32 = 108;
3928pub const OCSP_R_NO_REVOKED_TIME: i32 = 109;
3929pub const OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE: i32 = 110;
3930pub const OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA: i32 = 111;
3931pub const OCSP_R_ROOT_CA_NOT_TRUSTED: i32 = 112;
3932pub const OCSP_R_SERVER_RESPONSE_PARSE_ERROR: i32 = 115;
3933pub const OCSP_R_SIGNATURE_FAILURE: i32 = 117;
3934pub const OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND: i32 = 118;
3935pub const OCSP_R_UNKNOWN_MESSAGE_DIGEST: i32 = 119;
3936pub const OCSP_R_UNKNOWN_NID: i32 = 120;
3937pub const OCSP_R_ERROR_PARSING_URL: i32 = 121;
3938pub const OCSP_R_ERROR_IN_NEXTUPDATE_FIELD: i32 = 122;
3939pub const OCSP_R_ERROR_IN_THISUPDATE_FIELD: i32 = 123;
3940pub const OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE: i32 = 124;
3941pub const OCSP_R_STATUS_EXPIRED: i32 = 125;
3942pub const OCSP_R_STATUS_NOT_YET_VALID: i32 = 126;
3943pub const OCSP_R_STATUS_TOO_OLD: i32 = 127;
3944pub const OCSP_R_REQUEST_NOT_SIGNED: i32 = 128;
3945pub const OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE: i32 = 129;
3946pub const OCSP_R_NO_SIGNER_KEY: i32 = 130;
3947pub const OCSP_R_OCSP_REQUEST_DUPLICATE_SIGNATURE: i32 = 131;
3948pub const OCSP_R_UNKNOWN_FIELD_VALUE: i32 = 132;
3949pub const PEM_BUFSIZE: i32 = 1024;
3950pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
3951pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
3952pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
3953pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
3954pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
3955pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
3956pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
3957pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
3958pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
3959pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
3960pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
3961pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
3962pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
3963pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
3964pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
3965pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
3966pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
3967pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
3968pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
3969pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
3970pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
3971pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
3972pub const PEM_STRING_ECPARAMETERS: &[u8; 14] = b"EC PARAMETERS\0";
3973pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
3974pub const PEM_STRING_PARAMETERS: &[u8; 11] = b"PARAMETERS\0";
3975pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
3976pub const PEM_TYPE_ENCRYPTED: i32 = 10;
3977pub const PEM_TYPE_MIC_ONLY: i32 = 20;
3978pub const PEM_TYPE_MIC_CLEAR: i32 = 30;
3979pub const PEM_TYPE_CLEAR: i32 = 40;
3980pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
3981pub const PEM_R_BAD_DECRYPT: i32 = 101;
3982pub const PEM_R_BAD_END_LINE: i32 = 102;
3983pub const PEM_R_BAD_IV_CHARS: i32 = 103;
3984pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
3985pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
3986pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
3987pub const PEM_R_NOT_DEK_INFO: i32 = 107;
3988pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
3989pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
3990pub const PEM_R_NO_START_LINE: i32 = 110;
3991pub const PEM_R_READ_KEY: i32 = 111;
3992pub const PEM_R_SHORT_HEADER: i32 = 112;
3993pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
3994pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
3995pub const PEM_R_PROBLEMS_GETTING_PASSWORD: i32 = 115;
3996pub const PKCS12_DEFAULT_ITER: i32 = 2048;
3997pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
3998pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
3999pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
4000pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
4001pub const PKCS8_R_DECODE_ERROR: i32 = 104;
4002pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
4003pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4004pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4005pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4006pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4007pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4008pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4009pub const PKCS8_R_MISSING_MAC: i32 = 112;
4010pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4011pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4012pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4013pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4014pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4015pub const PKCS8_R_TOO_LONG: i32 = 118;
4016pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4017pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4018pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4019pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4020pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4021pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4022pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4023pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4024pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4025pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4026pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4027pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4028pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4029pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4030pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4031pub const PKCS12_R_MAC_VERIFY_FAILURE: i32 = 108;
4032pub const RAND_PRED_RESISTANCE_LEN: i32 = 32;
4033pub const RIPEMD160_CBLOCK: i32 = 64;
4034pub const RIPEMD160_LBLOCK: i32 = 16;
4035pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4036pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4037pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4038pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4039pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4040pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4041pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4042pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4043pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4044pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4045pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4046pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4047pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4048pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4049pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4050pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4051pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4052pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4053pub type __off_t = ::std::os::raw::c_long;
4054pub type __off64_t = ::std::os::raw::c_long;
4055pub type __time_t = ::std::os::raw::c_long;
4056pub type time_t = __time_t;
4057#[repr(C)]
4058#[repr(align(4))]
4059#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
4060pub struct static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4061    pub _bitfield_align_1: [u8; 0],
4062    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
4063    pub __bindgen_padding_0: [u8; 3usize],
4064}
4065#[test]
4066fn bindgen_test_layout_static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4067) {
4068    assert_eq!(
4069        ::std::mem::size_of::<
4070            static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit,
4071        >(),
4072        4usize,
4073        "Size of static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit"
4074    );
4075    assert_eq ! (:: std :: mem :: align_of :: < static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit > () , 4usize , "Alignment of static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit");
4076}
4077impl static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit {
4078    #[inline]
4079    pub fn static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4080        &self,
4081    ) -> ::std::os::raw::c_uint {
4082        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
4083    }
4084    #[inline]
4085    pub fn set_static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit(
4086        &mut self,
4087        val: ::std::os::raw::c_uint,
4088    ) {
4089        unsafe {
4090            let val: u32 = ::std::mem::transmute(val);
4091            self._bitfield_1.set(0usize, 1u8, val as u64)
4092        }
4093    }
4094    #[inline]
4095    pub unsafe fn static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4096        this: *const Self,
4097    ) -> ::std::os::raw::c_uint {
4098        unsafe {
4099            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4100                ::std::ptr::addr_of!((*this)._bitfield_1),
4101                0usize,
4102                1u8,
4103            ) as u32)
4104        }
4105    }
4106    #[inline]
4107    pub unsafe fn set_static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit_raw(
4108        this: *mut Self,
4109        val: ::std::os::raw::c_uint,
4110    ) {
4111        unsafe {
4112            let val: u32 = ::std::mem::transmute(val);
4113            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4114                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4115                0usize,
4116                1u8,
4117                val as u64,
4118            )
4119        }
4120    }
4121    #[inline]
4122    pub fn new_bitfield_1(
4123        static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit : :: std :: os :: raw :: c_uint,
4124    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
4125        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
4126        __bindgen_bitfield_unit . set (0usize , 1u8 , { let static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit : u32 = unsafe { :: std :: mem :: transmute (static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit) } ; static_assertion_at_line_219_error_is_pointer_size_must_be_8_bytes_for_64_bit as u64 }) ;
4127        __bindgen_bitfield_unit
4128    }
4129}
4130pub type ossl_ssize_t = isize;
4131pub type CBS_ASN1_TAG = u32;
4132pub type CRYPTO_THREADID = ::std::os::raw::c_int;
4133#[repr(C)]
4134#[derive(Debug, Copy, Clone)]
4135pub struct asn1_null_st {
4136    _unused: [u8; 0],
4137}
4138pub type ASN1_NULL = asn1_null_st;
4139pub type ASN1_BOOLEAN = ::std::os::raw::c_int;
4140pub type ASN1_ITEM = ASN1_ITEM_st;
4141#[repr(C)]
4142#[derive(Debug, Copy, Clone)]
4143pub struct asn1_object_st {
4144    _unused: [u8; 0],
4145}
4146pub type ASN1_OBJECT = asn1_object_st;
4147#[repr(C)]
4148#[derive(Debug, Copy, Clone)]
4149pub struct asn1_pctx_st {
4150    _unused: [u8; 0],
4151}
4152pub type ASN1_PCTX = asn1_pctx_st;
4153pub type ASN1_BIT_STRING = asn1_string_st;
4154pub type ASN1_BMPSTRING = asn1_string_st;
4155pub type ASN1_ENUMERATED = asn1_string_st;
4156pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4157pub type ASN1_GENERALSTRING = asn1_string_st;
4158pub type ASN1_IA5STRING = asn1_string_st;
4159pub type ASN1_INTEGER = asn1_string_st;
4160pub type ASN1_OCTET_STRING = asn1_string_st;
4161pub type ASN1_PRINTABLESTRING = asn1_string_st;
4162pub type ASN1_STRING = asn1_string_st;
4163pub type ASN1_T61STRING = asn1_string_st;
4164pub type ASN1_TIME = asn1_string_st;
4165pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4166pub type ASN1_UTCTIME = asn1_string_st;
4167pub type ASN1_UTF8STRING = asn1_string_st;
4168pub type ASN1_VISIBLESTRING = asn1_string_st;
4169pub type ASN1_TYPE = asn1_type_st;
4170pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4171pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4172pub type DIST_POINT = DIST_POINT_st;
4173pub type DSA_SIG = DSA_SIG_st;
4174pub type GENERAL_NAME = GENERAL_NAME_st;
4175pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4176pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4177pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4178pub type NETSCAPE_SPKI = Netscape_spki_st;
4179pub type RIPEMD160_CTX = RIPEMD160state_st;
4180#[repr(C)]
4181#[derive(Debug, Copy, Clone)]
4182pub struct X509_VERIFY_PARAM_st {
4183    _unused: [u8; 0],
4184}
4185pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4186pub type X509_ALGOR = X509_algor_st;
4187#[repr(C)]
4188#[derive(Debug, Copy, Clone)]
4189pub struct X509_crl_st {
4190    _unused: [u8; 0],
4191}
4192pub type X509_CRL = X509_crl_st;
4193#[repr(C)]
4194#[derive(Debug, Copy, Clone)]
4195pub struct X509_extension_st {
4196    _unused: [u8; 0],
4197}
4198pub type X509_EXTENSION = X509_extension_st;
4199pub type X509_INFO = X509_info_st;
4200#[repr(C)]
4201#[derive(Debug, Copy, Clone)]
4202pub struct X509_name_entry_st {
4203    _unused: [u8; 0],
4204}
4205pub type X509_NAME_ENTRY = X509_name_entry_st;
4206#[repr(C)]
4207#[derive(Debug, Copy, Clone)]
4208pub struct X509_name_st {
4209    _unused: [u8; 0],
4210}
4211pub type X509_NAME = X509_name_st;
4212#[repr(C)]
4213#[derive(Debug, Copy, Clone)]
4214pub struct X509_pubkey_st {
4215    _unused: [u8; 0],
4216}
4217pub type X509_PUBKEY = X509_pubkey_st;
4218#[repr(C)]
4219#[derive(Debug, Copy, Clone)]
4220pub struct X509_req_st {
4221    _unused: [u8; 0],
4222}
4223pub type X509_REQ = X509_req_st;
4224#[repr(C)]
4225#[derive(Debug, Copy, Clone)]
4226pub struct x509_sig_info_st {
4227    _unused: [u8; 0],
4228}
4229pub type X509_SIG_INFO = x509_sig_info_st;
4230#[repr(C)]
4231#[derive(Debug, Copy, Clone)]
4232pub struct X509_sig_st {
4233    _unused: [u8; 0],
4234}
4235pub type X509_SIG = X509_sig_st;
4236#[repr(C)]
4237#[derive(Debug, Copy, Clone)]
4238pub struct bignum_ctx {
4239    _unused: [u8; 0],
4240}
4241pub type BN_CTX = bignum_ctx;
4242pub type BIGNUM = bignum_st;
4243pub type BIO_METHOD = bio_method_st;
4244pub type BIO = bio_st;
4245pub type BLAKE2B_CTX = blake2b_state_st;
4246pub type BN_GENCB = bn_gencb_st;
4247pub type BN_MONT_CTX = bn_mont_ctx_st;
4248pub type BUF_MEM = buf_mem_st;
4249#[repr(C)]
4250#[derive(Debug, Copy, Clone)]
4251pub struct cast_key_st {
4252    _unused: [u8; 0],
4253}
4254pub type CAST_KEY = cast_key_st;
4255pub type CBB = cbb_st;
4256pub type CBS = cbs_st;
4257#[repr(C)]
4258#[derive(Debug, Copy, Clone)]
4259pub struct cmac_ctx_st {
4260    _unused: [u8; 0],
4261}
4262pub type CMAC_CTX = cmac_ctx_st;
4263pub type CONF = conf_st;
4264pub type CONF_VALUE = conf_value_st;
4265#[repr(C)]
4266#[derive(Debug, Copy, Clone)]
4267pub struct crypto_buffer_pool_st {
4268    _unused: [u8; 0],
4269}
4270pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
4271#[repr(C)]
4272#[derive(Debug, Copy, Clone)]
4273pub struct crypto_buffer_st {
4274    _unused: [u8; 0],
4275}
4276pub type CRYPTO_BUFFER = crypto_buffer_st;
4277#[repr(C)]
4278#[derive(Debug, Copy, Clone)]
4279pub struct ctr_drbg_state_st {
4280    _unused: [u8; 0],
4281}
4282pub type CTR_DRBG_STATE = ctr_drbg_state_st;
4283#[repr(C)]
4284#[derive(Debug, Copy, Clone)]
4285pub struct dh_st {
4286    _unused: [u8; 0],
4287}
4288pub type DH = dh_st;
4289#[repr(C)]
4290#[derive(Debug, Copy, Clone)]
4291pub struct dsa_st {
4292    _unused: [u8; 0],
4293}
4294pub type DSA = dsa_st;
4295#[repr(C)]
4296#[derive(Debug, Copy, Clone)]
4297pub struct ec_group_st {
4298    _unused: [u8; 0],
4299}
4300pub type EC_GROUP = ec_group_st;
4301#[repr(C)]
4302#[derive(Debug, Copy, Clone)]
4303pub struct ec_key_st {
4304    _unused: [u8; 0],
4305}
4306pub type EC_KEY = ec_key_st;
4307#[repr(C)]
4308#[derive(Debug, Copy, Clone)]
4309pub struct ec_point_st {
4310    _unused: [u8; 0],
4311}
4312pub type EC_POINT = ec_point_st;
4313#[repr(C)]
4314#[derive(Debug, Copy, Clone)]
4315pub struct ec_key_method_st {
4316    _unused: [u8; 0],
4317}
4318pub type EC_KEY_METHOD = ec_key_method_st;
4319pub type ECDSA_SIG = ecdsa_sig_st;
4320#[repr(C)]
4321#[derive(Debug, Copy, Clone)]
4322pub struct engine_st {
4323    _unused: [u8; 0],
4324}
4325pub type ENGINE = engine_st;
4326pub type EVP_MD_CTX = env_md_ctx_st;
4327#[repr(C)]
4328#[derive(Debug, Copy, Clone)]
4329pub struct env_md_st {
4330    _unused: [u8; 0],
4331}
4332pub type EVP_MD = env_md_st;
4333#[repr(C)]
4334#[derive(Debug, Copy, Clone)]
4335pub struct evp_aead_st {
4336    _unused: [u8; 0],
4337}
4338pub type EVP_AEAD = evp_aead_st;
4339pub type EVP_AEAD_CTX = evp_aead_ctx_st;
4340pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
4341#[repr(C)]
4342#[derive(Debug, Copy, Clone)]
4343pub struct evp_cipher_st {
4344    _unused: [u8; 0],
4345}
4346pub type EVP_CIPHER = evp_cipher_st;
4347#[doc = " @typedef EVP_ENCODE_CTX\n @copydoc evp_encode_ctx_st\n @see evp_encode_ctx_st"]
4348pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
4349#[repr(C)]
4350#[derive(Debug, Copy, Clone)]
4351pub struct evp_hpke_aead_st {
4352    _unused: [u8; 0],
4353}
4354pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
4355pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
4356#[repr(C)]
4357#[derive(Debug, Copy, Clone)]
4358pub struct evp_hpke_kdf_st {
4359    _unused: [u8; 0],
4360}
4361pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
4362#[repr(C)]
4363#[derive(Debug, Copy, Clone)]
4364pub struct evp_hpke_kem_st {
4365    _unused: [u8; 0],
4366}
4367pub type EVP_HPKE_KEM = evp_hpke_kem_st;
4368pub type EVP_HPKE_KEY = evp_hpke_key_st;
4369#[repr(C)]
4370#[derive(Debug, Copy, Clone)]
4371pub struct evp_kem_st {
4372    _unused: [u8; 0],
4373}
4374pub type EVP_KEM = evp_kem_st;
4375#[repr(C)]
4376#[derive(Debug, Copy, Clone)]
4377pub struct kem_key_st {
4378    _unused: [u8; 0],
4379}
4380pub type KEM_KEY = kem_key_st;
4381#[repr(C)]
4382#[derive(Debug, Copy, Clone)]
4383pub struct evp_pkey_ctx_st {
4384    _unused: [u8; 0],
4385}
4386pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
4387#[repr(C)]
4388#[derive(Debug, Copy, Clone)]
4389pub struct evp_pkey_asn1_method_st {
4390    _unused: [u8; 0],
4391}
4392pub type EVP_PKEY_ASN1_METHOD = evp_pkey_asn1_method_st;
4393#[repr(C)]
4394#[derive(Debug, Copy, Clone)]
4395pub struct evp_pkey_st {
4396    _unused: [u8; 0],
4397}
4398pub type EVP_PKEY = evp_pkey_st;
4399#[repr(C)]
4400#[derive(Debug, Copy, Clone)]
4401pub struct evp_pkey_ctx_signature_context_params_st {
4402    _unused: [u8; 0],
4403}
4404pub type EVP_PKEY_CTX_SIGNATURE_CONTEXT_PARAMS = evp_pkey_ctx_signature_context_params_st;
4405pub type HMAC_CTX = hmac_ctx_st;
4406pub type MD4_CTX = md4_state_st;
4407pub type MD5_CTX = md5_state_st;
4408#[repr(C)]
4409#[derive(Debug, Copy, Clone)]
4410pub struct pqdsa_key_st {
4411    _unused: [u8; 0],
4412}
4413pub type PQDSA_KEY = pqdsa_key_st;
4414#[repr(C)]
4415#[derive(Debug, Copy, Clone)]
4416pub struct ocsp_req_ctx_st {
4417    _unused: [u8; 0],
4418}
4419pub type OCSP_REQ_CTX = ocsp_req_ctx_st;
4420#[repr(C)]
4421#[derive(Debug, Copy, Clone)]
4422pub struct ossl_init_settings_st {
4423    _unused: [u8; 0],
4424}
4425pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
4426#[repr(C)]
4427#[derive(Debug, Copy, Clone)]
4428pub struct pkcs7_digest_st {
4429    _unused: [u8; 0],
4430}
4431pub type PKCS7_DIGEST = pkcs7_digest_st;
4432#[repr(C)]
4433#[derive(Debug, Copy, Clone)]
4434pub struct pkcs7_enc_content_st {
4435    _unused: [u8; 0],
4436}
4437pub type PKCS7_ENC_CONTENT = pkcs7_enc_content_st;
4438#[repr(C)]
4439#[derive(Debug, Copy, Clone)]
4440pub struct pkcs7_encrypt_st {
4441    _unused: [u8; 0],
4442}
4443pub type PKCS7_ENCRYPT = pkcs7_encrypt_st;
4444pub type PKCS7_ENVELOPE = pkcs7_envelope_st;
4445pub type PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st;
4446pub type PKCS7_RECIP_INFO = pkcs7_recip_info_st;
4447pub type PKCS7_SIGN_ENVELOPE = pkcs7_sign_envelope_st;
4448pub type PKCS7_SIGNED = pkcs7_signed_st;
4449pub type PKCS7_SIGNER_INFO = pkcs7_signer_info_st;
4450pub type PKCS7 = pkcs7_st;
4451#[repr(C)]
4452#[derive(Debug, Copy, Clone)]
4453pub struct pkcs12_st {
4454    _unused: [u8; 0],
4455}
4456pub type PKCS12 = pkcs12_st;
4457#[repr(C)]
4458#[derive(Debug, Copy, Clone)]
4459pub struct pkcs8_priv_key_info_st {
4460    _unused: [u8; 0],
4461}
4462pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
4463pub type X509_PKEY = private_key_st;
4464pub type RAND_METHOD = rand_meth_st;
4465pub type RC4_KEY = rc4_key_st;
4466#[repr(C)]
4467#[derive(Debug, Copy, Clone)]
4468pub struct rsa_meth_st {
4469    _unused: [u8; 0],
4470}
4471pub type RSA_METHOD = rsa_meth_st;
4472#[repr(C)]
4473#[derive(Debug, Copy, Clone)]
4474pub struct rsassa_pss_params_st {
4475    _unused: [u8; 0],
4476}
4477pub type RSASSA_PSS_PARAMS = rsassa_pss_params_st;
4478pub type RSA_PSS_PARAMS = rsa_pss_params_st;
4479#[repr(C)]
4480#[derive(Debug, Copy, Clone)]
4481pub struct rsa_st {
4482    _unused: [u8; 0],
4483}
4484pub type RSA = rsa_st;
4485pub type SHA256_CTX = sha256_state_st;
4486pub type SHA512_CTX = sha512_state_st;
4487pub type SHA_CTX = sha_state_st;
4488#[repr(C)]
4489#[derive(Debug, Copy, Clone)]
4490pub struct spake2_ctx_st {
4491    _unused: [u8; 0],
4492}
4493pub type SPAKE2_CTX = spake2_ctx_st;
4494#[repr(C)]
4495#[derive(Debug, Copy, Clone)]
4496pub struct srtp_protection_profile_st {
4497    _unused: [u8; 0],
4498}
4499pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
4500#[repr(C)]
4501#[derive(Debug, Copy, Clone)]
4502pub struct ssl_cipher_st {
4503    _unused: [u8; 0],
4504}
4505pub type SSL_CIPHER = ssl_cipher_st;
4506#[repr(C)]
4507#[derive(Debug, Copy, Clone)]
4508pub struct ssl_ctx_st {
4509    _unused: [u8; 0],
4510}
4511pub type SSL_CTX = ssl_ctx_st;
4512#[repr(C)]
4513#[derive(Debug, Copy, Clone)]
4514pub struct ssl_early_callback_ctx {
4515    _unused: [u8; 0],
4516}
4517pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
4518#[repr(C)]
4519#[derive(Debug, Copy, Clone)]
4520pub struct ssl_ech_keys_st {
4521    _unused: [u8; 0],
4522}
4523pub type SSL_ECH_KEYS = ssl_ech_keys_st;
4524#[repr(C)]
4525#[derive(Debug, Copy, Clone)]
4526pub struct ssl_method_st {
4527    _unused: [u8; 0],
4528}
4529pub type SSL_METHOD = ssl_method_st;
4530#[repr(C)]
4531#[derive(Debug, Copy, Clone)]
4532pub struct ssl_private_key_method_st {
4533    _unused: [u8; 0],
4534}
4535pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
4536#[repr(C)]
4537#[derive(Debug, Copy, Clone)]
4538pub struct ssl_quic_method_st {
4539    _unused: [u8; 0],
4540}
4541pub type SSL_QUIC_METHOD = ssl_quic_method_st;
4542#[repr(C)]
4543#[derive(Debug, Copy, Clone)]
4544pub struct ssl_session_st {
4545    _unused: [u8; 0],
4546}
4547pub type SSL_SESSION = ssl_session_st;
4548#[repr(C)]
4549#[derive(Debug, Copy, Clone)]
4550pub struct ssl_st {
4551    _unused: [u8; 0],
4552}
4553pub type SSL = ssl_st;
4554#[repr(C)]
4555#[derive(Debug, Copy, Clone)]
4556pub struct ssl_ticket_aead_method_st {
4557    _unused: [u8; 0],
4558}
4559pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
4560#[repr(C)]
4561#[derive(Debug, Copy, Clone)]
4562pub struct st_ERR_FNS {
4563    _unused: [u8; 0],
4564}
4565pub type ERR_FNS = st_ERR_FNS;
4566pub type TRUST_TOKEN = trust_token_st;
4567#[repr(C)]
4568#[derive(Debug, Copy, Clone)]
4569pub struct trust_token_client_st {
4570    _unused: [u8; 0],
4571}
4572pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
4573#[repr(C)]
4574#[derive(Debug, Copy, Clone)]
4575pub struct trust_token_issuer_st {
4576    _unused: [u8; 0],
4577}
4578pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
4579#[repr(C)]
4580#[derive(Debug, Copy, Clone)]
4581pub struct trust_token_method_st {
4582    _unused: [u8; 0],
4583}
4584pub type TRUST_TOKEN_METHOD = trust_token_method_st;
4585pub type X509V3_CTX = v3_ext_ctx;
4586pub type X509V3_EXT_METHOD = v3_ext_method;
4587#[repr(C)]
4588#[derive(Debug, Copy, Clone)]
4589pub struct x509_attributes_st {
4590    _unused: [u8; 0],
4591}
4592pub type X509_ATTRIBUTE = x509_attributes_st;
4593#[repr(C)]
4594#[derive(Debug, Copy, Clone)]
4595pub struct x509_lookup_st {
4596    _unused: [u8; 0],
4597}
4598pub type X509_LOOKUP = x509_lookup_st;
4599#[repr(C)]
4600#[derive(Debug, Copy, Clone)]
4601pub struct x509_lookup_method_st {
4602    _unused: [u8; 0],
4603}
4604pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
4605#[repr(C)]
4606#[derive(Debug, Copy, Clone)]
4607pub struct x509_object_st {
4608    _unused: [u8; 0],
4609}
4610pub type X509_OBJECT = x509_object_st;
4611#[repr(C)]
4612#[derive(Debug, Copy, Clone)]
4613pub struct x509_revoked_st {
4614    _unused: [u8; 0],
4615}
4616pub type X509_REVOKED = x509_revoked_st;
4617#[repr(C)]
4618#[derive(Debug, Copy, Clone)]
4619pub struct x509_st {
4620    _unused: [u8; 0],
4621}
4622pub type X509 = x509_st;
4623#[repr(C)]
4624#[derive(Debug, Copy, Clone)]
4625pub struct x509_store_ctx_st {
4626    _unused: [u8; 0],
4627}
4628pub type X509_STORE_CTX = x509_store_ctx_st;
4629#[repr(C)]
4630#[derive(Debug, Copy, Clone)]
4631pub struct x509_store_st {
4632    _unused: [u8; 0],
4633}
4634pub type X509_STORE = x509_store_st;
4635pub type X509_TRUST = x509_trust_st;
4636pub type OPENSSL_BLOCK = *mut ::std::os::raw::c_void;
4637#[repr(C)]
4638#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4639pub struct aes_key_st {
4640    pub rd_key: [u32; 60usize],
4641    pub rounds: ::std::os::raw::c_uint,
4642}
4643#[test]
4644fn bindgen_test_layout_aes_key_st() {
4645    const UNINIT: ::std::mem::MaybeUninit<aes_key_st> = ::std::mem::MaybeUninit::uninit();
4646    let ptr = UNINIT.as_ptr();
4647    assert_eq!(
4648        ::std::mem::size_of::<aes_key_st>(),
4649        244usize,
4650        "Size of aes_key_st"
4651    );
4652    assert_eq!(
4653        ::std::mem::align_of::<aes_key_st>(),
4654        4usize,
4655        "Alignment of aes_key_st"
4656    );
4657    assert_eq!(
4658        unsafe { ::std::ptr::addr_of!((*ptr).rd_key) as usize - ptr as usize },
4659        0usize,
4660        "Offset of field: aes_key_st::rd_key"
4661    );
4662    assert_eq!(
4663        unsafe { ::std::ptr::addr_of!((*ptr).rounds) as usize - ptr as usize },
4664        240usize,
4665        "Offset of field: aes_key_st::rounds"
4666    );
4667}
4668impl Default for aes_key_st {
4669    fn default() -> Self {
4670        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4671        unsafe {
4672            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4673            s.assume_init()
4674        }
4675    }
4676}
4677pub type AES_KEY = aes_key_st;
4678extern "C" {
4679    #[link_name = "\u{1}aws_lc_0_40_0_AES_set_encrypt_key"]
4680    pub fn AES_set_encrypt_key(
4681        key: *const u8,
4682        bits: ::std::os::raw::c_uint,
4683        aeskey: *mut AES_KEY,
4684    ) -> ::std::os::raw::c_int;
4685}
4686extern "C" {
4687    #[link_name = "\u{1}aws_lc_0_40_0_AES_set_decrypt_key"]
4688    pub fn AES_set_decrypt_key(
4689        key: *const u8,
4690        bits: ::std::os::raw::c_uint,
4691        aeskey: *mut AES_KEY,
4692    ) -> ::std::os::raw::c_int;
4693}
4694extern "C" {
4695    #[link_name = "\u{1}aws_lc_0_40_0_AES_encrypt"]
4696    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4697}
4698extern "C" {
4699    #[link_name = "\u{1}aws_lc_0_40_0_AES_decrypt"]
4700    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
4701}
4702extern "C" {
4703    #[link_name = "\u{1}aws_lc_0_40_0_AES_ctr128_encrypt"]
4704    pub fn AES_ctr128_encrypt(
4705        in_: *const u8,
4706        out: *mut u8,
4707        len: usize,
4708        key: *const AES_KEY,
4709        ivec: *mut u8,
4710        ecount_buf: *mut u8,
4711        num: *mut ::std::os::raw::c_uint,
4712    );
4713}
4714extern "C" {
4715    #[link_name = "\u{1}aws_lc_0_40_0_AES_ecb_encrypt"]
4716    pub fn AES_ecb_encrypt(
4717        in_: *const u8,
4718        out: *mut u8,
4719        key: *const AES_KEY,
4720        enc: ::std::os::raw::c_int,
4721    );
4722}
4723extern "C" {
4724    #[link_name = "\u{1}aws_lc_0_40_0_AES_cbc_encrypt"]
4725    pub fn AES_cbc_encrypt(
4726        in_: *const u8,
4727        out: *mut u8,
4728        len: usize,
4729        key: *const AES_KEY,
4730        ivec: *mut u8,
4731        enc: ::std::os::raw::c_int,
4732    );
4733}
4734extern "C" {
4735    #[link_name = "\u{1}aws_lc_0_40_0_AES_ofb128_encrypt"]
4736    pub fn AES_ofb128_encrypt(
4737        in_: *const u8,
4738        out: *mut u8,
4739        len: usize,
4740        key: *const AES_KEY,
4741        ivec: *mut u8,
4742        num: *mut ::std::os::raw::c_int,
4743    );
4744}
4745extern "C" {
4746    #[link_name = "\u{1}aws_lc_0_40_0_AES_cfb1_encrypt"]
4747    pub fn AES_cfb1_encrypt(
4748        in_: *const u8,
4749        out: *mut u8,
4750        bits: usize,
4751        key: *const AES_KEY,
4752        ivec: *mut u8,
4753        num: *mut ::std::os::raw::c_int,
4754        enc: ::std::os::raw::c_int,
4755    );
4756}
4757extern "C" {
4758    #[link_name = "\u{1}aws_lc_0_40_0_AES_cfb8_encrypt"]
4759    pub fn AES_cfb8_encrypt(
4760        in_: *const u8,
4761        out: *mut u8,
4762        len: usize,
4763        key: *const AES_KEY,
4764        ivec: *mut u8,
4765        num: *mut ::std::os::raw::c_int,
4766        enc: ::std::os::raw::c_int,
4767    );
4768}
4769extern "C" {
4770    #[link_name = "\u{1}aws_lc_0_40_0_AES_cfb128_encrypt"]
4771    pub fn AES_cfb128_encrypt(
4772        in_: *const u8,
4773        out: *mut u8,
4774        len: usize,
4775        key: *const AES_KEY,
4776        ivec: *mut u8,
4777        num: *mut ::std::os::raw::c_int,
4778        enc: ::std::os::raw::c_int,
4779    );
4780}
4781extern "C" {
4782    #[link_name = "\u{1}aws_lc_0_40_0_AES_wrap_key"]
4783    pub fn AES_wrap_key(
4784        key: *const AES_KEY,
4785        iv: *const u8,
4786        out: *mut u8,
4787        in_: *const u8,
4788        in_len: usize,
4789    ) -> ::std::os::raw::c_int;
4790}
4791extern "C" {
4792    #[link_name = "\u{1}aws_lc_0_40_0_AES_unwrap_key"]
4793    pub fn AES_unwrap_key(
4794        key: *const AES_KEY,
4795        iv: *const u8,
4796        out: *mut u8,
4797        in_: *const u8,
4798        in_len: usize,
4799    ) -> ::std::os::raw::c_int;
4800}
4801extern "C" {
4802    #[link_name = "\u{1}aws_lc_0_40_0_AES_wrap_key_padded"]
4803    pub fn AES_wrap_key_padded(
4804        key: *const AES_KEY,
4805        out: *mut u8,
4806        out_len: *mut usize,
4807        max_out: usize,
4808        in_: *const u8,
4809        in_len: usize,
4810    ) -> ::std::os::raw::c_int;
4811}
4812extern "C" {
4813    #[link_name = "\u{1}aws_lc_0_40_0_AES_unwrap_key_padded"]
4814    pub fn AES_unwrap_key_padded(
4815        key: *const AES_KEY,
4816        out: *mut u8,
4817        out_len: *mut usize,
4818        max_out: usize,
4819        in_: *const u8,
4820        in_len: usize,
4821    ) -> ::std::os::raw::c_int;
4822}
4823#[repr(C)]
4824#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4825pub struct tm {
4826    pub tm_sec: ::std::os::raw::c_int,
4827    pub tm_min: ::std::os::raw::c_int,
4828    pub tm_hour: ::std::os::raw::c_int,
4829    pub tm_mday: ::std::os::raw::c_int,
4830    pub tm_mon: ::std::os::raw::c_int,
4831    pub tm_year: ::std::os::raw::c_int,
4832    pub tm_wday: ::std::os::raw::c_int,
4833    pub tm_yday: ::std::os::raw::c_int,
4834    pub tm_isdst: ::std::os::raw::c_int,
4835    pub tm_gmtoff: ::std::os::raw::c_long,
4836    pub tm_zone: *const ::std::os::raw::c_char,
4837}
4838#[test]
4839fn bindgen_test_layout_tm() {
4840    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
4841    let ptr = UNINIT.as_ptr();
4842    assert_eq!(::std::mem::size_of::<tm>(), 56usize, "Size of tm");
4843    assert_eq!(::std::mem::align_of::<tm>(), 8usize, "Alignment of tm");
4844    assert_eq!(
4845        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
4846        0usize,
4847        "Offset of field: tm::tm_sec"
4848    );
4849    assert_eq!(
4850        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
4851        4usize,
4852        "Offset of field: tm::tm_min"
4853    );
4854    assert_eq!(
4855        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
4856        8usize,
4857        "Offset of field: tm::tm_hour"
4858    );
4859    assert_eq!(
4860        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
4861        12usize,
4862        "Offset of field: tm::tm_mday"
4863    );
4864    assert_eq!(
4865        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
4866        16usize,
4867        "Offset of field: tm::tm_mon"
4868    );
4869    assert_eq!(
4870        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
4871        20usize,
4872        "Offset of field: tm::tm_year"
4873    );
4874    assert_eq!(
4875        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
4876        24usize,
4877        "Offset of field: tm::tm_wday"
4878    );
4879    assert_eq!(
4880        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
4881        28usize,
4882        "Offset of field: tm::tm_yday"
4883    );
4884    assert_eq!(
4885        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
4886        32usize,
4887        "Offset of field: tm::tm_isdst"
4888    );
4889    assert_eq!(
4890        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
4891        40usize,
4892        "Offset of field: tm::tm_gmtoff"
4893    );
4894    assert_eq!(
4895        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
4896        48usize,
4897        "Offset of field: tm::tm_zone"
4898    );
4899}
4900impl Default for tm {
4901    fn default() -> Self {
4902        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4903        unsafe {
4904            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4905            s.assume_init()
4906        }
4907    }
4908}
4909pub type __gnuc_va_list = __builtin_va_list;
4910pub type FILE = _IO_FILE;
4911#[repr(C)]
4912#[derive(Debug, Copy, Clone)]
4913pub struct _IO_marker {
4914    _unused: [u8; 0],
4915}
4916#[repr(C)]
4917#[derive(Debug, Copy, Clone)]
4918pub struct _IO_codecvt {
4919    _unused: [u8; 0],
4920}
4921#[repr(C)]
4922#[derive(Debug, Copy, Clone)]
4923pub struct _IO_wide_data {
4924    _unused: [u8; 0],
4925}
4926pub type _IO_lock_t = ::std::os::raw::c_void;
4927#[repr(C)]
4928#[derive(Debug, Copy, Clone, PartialEq, Eq)]
4929pub struct _IO_FILE {
4930    pub _flags: ::std::os::raw::c_int,
4931    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
4932    pub _IO_read_end: *mut ::std::os::raw::c_char,
4933    pub _IO_read_base: *mut ::std::os::raw::c_char,
4934    pub _IO_write_base: *mut ::std::os::raw::c_char,
4935    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
4936    pub _IO_write_end: *mut ::std::os::raw::c_char,
4937    pub _IO_buf_base: *mut ::std::os::raw::c_char,
4938    pub _IO_buf_end: *mut ::std::os::raw::c_char,
4939    pub _IO_save_base: *mut ::std::os::raw::c_char,
4940    pub _IO_backup_base: *mut ::std::os::raw::c_char,
4941    pub _IO_save_end: *mut ::std::os::raw::c_char,
4942    pub _markers: *mut _IO_marker,
4943    pub _chain: *mut _IO_FILE,
4944    pub _fileno: ::std::os::raw::c_int,
4945    pub _flags2: ::std::os::raw::c_int,
4946    pub _old_offset: __off_t,
4947    pub _cur_column: ::std::os::raw::c_ushort,
4948    pub _vtable_offset: ::std::os::raw::c_schar,
4949    pub _shortbuf: [::std::os::raw::c_char; 1usize],
4950    pub _lock: *mut _IO_lock_t,
4951    pub _offset: __off64_t,
4952    pub _codecvt: *mut _IO_codecvt,
4953    pub _wide_data: *mut _IO_wide_data,
4954    pub _freeres_list: *mut _IO_FILE,
4955    pub _freeres_buf: *mut ::std::os::raw::c_void,
4956    pub __pad5: usize,
4957    pub _mode: ::std::os::raw::c_int,
4958    pub _unused2: [::std::os::raw::c_char; 20usize],
4959}
4960#[test]
4961fn bindgen_test_layout__IO_FILE() {
4962    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
4963    let ptr = UNINIT.as_ptr();
4964    assert_eq!(
4965        ::std::mem::size_of::<_IO_FILE>(),
4966        216usize,
4967        "Size of _IO_FILE"
4968    );
4969    assert_eq!(
4970        ::std::mem::align_of::<_IO_FILE>(),
4971        8usize,
4972        "Alignment of _IO_FILE"
4973    );
4974    assert_eq!(
4975        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
4976        0usize,
4977        "Offset of field: _IO_FILE::_flags"
4978    );
4979    assert_eq!(
4980        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
4981        8usize,
4982        "Offset of field: _IO_FILE::_IO_read_ptr"
4983    );
4984    assert_eq!(
4985        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
4986        16usize,
4987        "Offset of field: _IO_FILE::_IO_read_end"
4988    );
4989    assert_eq!(
4990        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
4991        24usize,
4992        "Offset of field: _IO_FILE::_IO_read_base"
4993    );
4994    assert_eq!(
4995        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
4996        32usize,
4997        "Offset of field: _IO_FILE::_IO_write_base"
4998    );
4999    assert_eq!(
5000        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
5001        40usize,
5002        "Offset of field: _IO_FILE::_IO_write_ptr"
5003    );
5004    assert_eq!(
5005        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
5006        48usize,
5007        "Offset of field: _IO_FILE::_IO_write_end"
5008    );
5009    assert_eq!(
5010        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
5011        56usize,
5012        "Offset of field: _IO_FILE::_IO_buf_base"
5013    );
5014    assert_eq!(
5015        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
5016        64usize,
5017        "Offset of field: _IO_FILE::_IO_buf_end"
5018    );
5019    assert_eq!(
5020        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
5021        72usize,
5022        "Offset of field: _IO_FILE::_IO_save_base"
5023    );
5024    assert_eq!(
5025        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
5026        80usize,
5027        "Offset of field: _IO_FILE::_IO_backup_base"
5028    );
5029    assert_eq!(
5030        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
5031        88usize,
5032        "Offset of field: _IO_FILE::_IO_save_end"
5033    );
5034    assert_eq!(
5035        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
5036        96usize,
5037        "Offset of field: _IO_FILE::_markers"
5038    );
5039    assert_eq!(
5040        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
5041        104usize,
5042        "Offset of field: _IO_FILE::_chain"
5043    );
5044    assert_eq!(
5045        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
5046        112usize,
5047        "Offset of field: _IO_FILE::_fileno"
5048    );
5049    assert_eq!(
5050        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
5051        116usize,
5052        "Offset of field: _IO_FILE::_flags2"
5053    );
5054    assert_eq!(
5055        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
5056        120usize,
5057        "Offset of field: _IO_FILE::_old_offset"
5058    );
5059    assert_eq!(
5060        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
5061        128usize,
5062        "Offset of field: _IO_FILE::_cur_column"
5063    );
5064    assert_eq!(
5065        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
5066        130usize,
5067        "Offset of field: _IO_FILE::_vtable_offset"
5068    );
5069    assert_eq!(
5070        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
5071        131usize,
5072        "Offset of field: _IO_FILE::_shortbuf"
5073    );
5074    assert_eq!(
5075        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
5076        136usize,
5077        "Offset of field: _IO_FILE::_lock"
5078    );
5079    assert_eq!(
5080        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
5081        144usize,
5082        "Offset of field: _IO_FILE::_offset"
5083    );
5084    assert_eq!(
5085        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
5086        152usize,
5087        "Offset of field: _IO_FILE::_codecvt"
5088    );
5089    assert_eq!(
5090        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
5091        160usize,
5092        "Offset of field: _IO_FILE::_wide_data"
5093    );
5094    assert_eq!(
5095        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
5096        168usize,
5097        "Offset of field: _IO_FILE::_freeres_list"
5098    );
5099    assert_eq!(
5100        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
5101        176usize,
5102        "Offset of field: _IO_FILE::_freeres_buf"
5103    );
5104    assert_eq!(
5105        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
5106        184usize,
5107        "Offset of field: _IO_FILE::__pad5"
5108    );
5109    assert_eq!(
5110        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
5111        192usize,
5112        "Offset of field: _IO_FILE::_mode"
5113    );
5114    assert_eq!(
5115        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
5116        196usize,
5117        "Offset of field: _IO_FILE::_unused2"
5118    );
5119}
5120impl Default for _IO_FILE {
5121    fn default() -> Self {
5122        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5123        unsafe {
5124            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5125            s.assume_init()
5126        }
5127    }
5128}
5129pub type va_list = __gnuc_va_list;
5130#[repr(C)]
5131#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5132pub struct buf_mem_st {
5133    pub length: usize,
5134    pub data: *mut ::std::os::raw::c_char,
5135    pub max: usize,
5136}
5137#[test]
5138fn bindgen_test_layout_buf_mem_st() {
5139    const UNINIT: ::std::mem::MaybeUninit<buf_mem_st> = ::std::mem::MaybeUninit::uninit();
5140    let ptr = UNINIT.as_ptr();
5141    assert_eq!(
5142        ::std::mem::size_of::<buf_mem_st>(),
5143        24usize,
5144        "Size of buf_mem_st"
5145    );
5146    assert_eq!(
5147        ::std::mem::align_of::<buf_mem_st>(),
5148        8usize,
5149        "Alignment of buf_mem_st"
5150    );
5151    assert_eq!(
5152        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
5153        0usize,
5154        "Offset of field: buf_mem_st::length"
5155    );
5156    assert_eq!(
5157        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5158        8usize,
5159        "Offset of field: buf_mem_st::data"
5160    );
5161    assert_eq!(
5162        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
5163        16usize,
5164        "Offset of field: buf_mem_st::max"
5165    );
5166}
5167impl Default for buf_mem_st {
5168    fn default() -> Self {
5169        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5170        unsafe {
5171            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5172            s.assume_init()
5173        }
5174    }
5175}
5176extern "C" {
5177    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_new"]
5178    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5179}
5180extern "C" {
5181    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_free"]
5182    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5183}
5184extern "C" {
5185    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_reserve"]
5186    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::std::os::raw::c_int;
5187}
5188extern "C" {
5189    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_grow"]
5190    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5191}
5192extern "C" {
5193    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_grow_clean"]
5194    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5195}
5196extern "C" {
5197    #[link_name = "\u{1}aws_lc_0_40_0_BUF_MEM_append"]
5198    pub fn BUF_MEM_append(
5199        buf: *mut BUF_MEM,
5200        in_: *const ::std::os::raw::c_void,
5201        len: usize,
5202    ) -> ::std::os::raw::c_int;
5203}
5204extern "C" {
5205    #[link_name = "\u{1}aws_lc_0_40_0_BUF_strdup"]
5206    pub fn BUF_strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5207}
5208extern "C" {
5209    #[link_name = "\u{1}aws_lc_0_40_0_BUF_strnlen"]
5210    pub fn BUF_strnlen(str_: *const ::std::os::raw::c_char, max_len: usize) -> usize;
5211}
5212extern "C" {
5213    #[link_name = "\u{1}aws_lc_0_40_0_BUF_strndup"]
5214    pub fn BUF_strndup(
5215        str_: *const ::std::os::raw::c_char,
5216        size: usize,
5217    ) -> *mut ::std::os::raw::c_char;
5218}
5219extern "C" {
5220    #[link_name = "\u{1}aws_lc_0_40_0_BUF_memdup"]
5221    pub fn BUF_memdup(
5222        data: *const ::std::os::raw::c_void,
5223        size: usize,
5224    ) -> *mut ::std::os::raw::c_void;
5225}
5226extern "C" {
5227    #[link_name = "\u{1}aws_lc_0_40_0_BUF_strlcpy"]
5228    pub fn BUF_strlcpy(
5229        dst: *mut ::std::os::raw::c_char,
5230        src: *const ::std::os::raw::c_char,
5231        dst_size: usize,
5232    ) -> usize;
5233}
5234extern "C" {
5235    #[link_name = "\u{1}aws_lc_0_40_0_BUF_strlcat"]
5236    pub fn BUF_strlcat(
5237        dst: *mut ::std::os::raw::c_char,
5238        src: *const ::std::os::raw::c_char,
5239        dst_size: usize,
5240    ) -> usize;
5241}
5242extern "C" {
5243    #[link_name = "\u{1}aws_lc_0_40_0_SHA1_Init"]
5244    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5245}
5246extern "C" {
5247    #[link_name = "\u{1}aws_lc_0_40_0_SHA1_Update"]
5248    pub fn SHA1_Update(
5249        sha: *mut SHA_CTX,
5250        data: *const ::std::os::raw::c_void,
5251        len: usize,
5252    ) -> ::std::os::raw::c_int;
5253}
5254extern "C" {
5255    #[link_name = "\u{1}aws_lc_0_40_0_SHA1_Final"]
5256    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::std::os::raw::c_int;
5257}
5258extern "C" {
5259    #[link_name = "\u{1}aws_lc_0_40_0_SHA1"]
5260    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5261}
5262extern "C" {
5263    #[link_name = "\u{1}aws_lc_0_40_0_SHA1_Transform"]
5264    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
5265}
5266#[repr(C)]
5267#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5268pub struct sha_state_st {
5269    pub h: [u32; 5usize],
5270    pub Nl: u32,
5271    pub Nh: u32,
5272    pub data: [u8; 64usize],
5273    pub num: ::std::os::raw::c_uint,
5274}
5275#[test]
5276fn bindgen_test_layout_sha_state_st() {
5277    const UNINIT: ::std::mem::MaybeUninit<sha_state_st> = ::std::mem::MaybeUninit::uninit();
5278    let ptr = UNINIT.as_ptr();
5279    assert_eq!(
5280        ::std::mem::size_of::<sha_state_st>(),
5281        96usize,
5282        "Size of sha_state_st"
5283    );
5284    assert_eq!(
5285        ::std::mem::align_of::<sha_state_st>(),
5286        4usize,
5287        "Alignment of sha_state_st"
5288    );
5289    assert_eq!(
5290        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5291        0usize,
5292        "Offset of field: sha_state_st::h"
5293    );
5294    assert_eq!(
5295        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5296        20usize,
5297        "Offset of field: sha_state_st::Nl"
5298    );
5299    assert_eq!(
5300        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5301        24usize,
5302        "Offset of field: sha_state_st::Nh"
5303    );
5304    assert_eq!(
5305        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5306        28usize,
5307        "Offset of field: sha_state_st::data"
5308    );
5309    assert_eq!(
5310        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5311        92usize,
5312        "Offset of field: sha_state_st::num"
5313    );
5314}
5315impl Default for sha_state_st {
5316    fn default() -> Self {
5317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5318        unsafe {
5319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5320            s.assume_init()
5321        }
5322    }
5323}
5324extern "C" {
5325    #[link_name = "\u{1}aws_lc_0_40_0_SHA224_Init"]
5326    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5327}
5328extern "C" {
5329    #[link_name = "\u{1}aws_lc_0_40_0_SHA224_Update"]
5330    pub fn SHA224_Update(
5331        sha: *mut SHA256_CTX,
5332        data: *const ::std::os::raw::c_void,
5333        len: usize,
5334    ) -> ::std::os::raw::c_int;
5335}
5336extern "C" {
5337    #[link_name = "\u{1}aws_lc_0_40_0_SHA224_Final"]
5338    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5339}
5340extern "C" {
5341    #[link_name = "\u{1}aws_lc_0_40_0_SHA224"]
5342    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5343}
5344extern "C" {
5345    #[link_name = "\u{1}aws_lc_0_40_0_SHA256_Init"]
5346    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5347}
5348extern "C" {
5349    #[link_name = "\u{1}aws_lc_0_40_0_SHA256_Update"]
5350    pub fn SHA256_Update(
5351        sha: *mut SHA256_CTX,
5352        data: *const ::std::os::raw::c_void,
5353        len: usize,
5354    ) -> ::std::os::raw::c_int;
5355}
5356extern "C" {
5357    #[link_name = "\u{1}aws_lc_0_40_0_SHA256_Final"]
5358    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::std::os::raw::c_int;
5359}
5360extern "C" {
5361    #[link_name = "\u{1}aws_lc_0_40_0_SHA256"]
5362    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5363}
5364extern "C" {
5365    #[link_name = "\u{1}aws_lc_0_40_0_SHA256_Transform"]
5366    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
5367}
5368extern "C" {
5369    #[link_name = "\u{1}aws_lc_0_40_0_SHA256_TransformBlocks"]
5370    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
5371}
5372#[repr(C)]
5373#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5374pub struct sha256_state_st {
5375    pub h: [u32; 8usize],
5376    pub Nl: u32,
5377    pub Nh: u32,
5378    pub data: [u8; 64usize],
5379    pub num: ::std::os::raw::c_uint,
5380    pub md_len: ::std::os::raw::c_uint,
5381}
5382#[test]
5383fn bindgen_test_layout_sha256_state_st() {
5384    const UNINIT: ::std::mem::MaybeUninit<sha256_state_st> = ::std::mem::MaybeUninit::uninit();
5385    let ptr = UNINIT.as_ptr();
5386    assert_eq!(
5387        ::std::mem::size_of::<sha256_state_st>(),
5388        112usize,
5389        "Size of sha256_state_st"
5390    );
5391    assert_eq!(
5392        ::std::mem::align_of::<sha256_state_st>(),
5393        4usize,
5394        "Alignment of sha256_state_st"
5395    );
5396    assert_eq!(
5397        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5398        0usize,
5399        "Offset of field: sha256_state_st::h"
5400    );
5401    assert_eq!(
5402        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5403        32usize,
5404        "Offset of field: sha256_state_st::Nl"
5405    );
5406    assert_eq!(
5407        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5408        36usize,
5409        "Offset of field: sha256_state_st::Nh"
5410    );
5411    assert_eq!(
5412        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5413        40usize,
5414        "Offset of field: sha256_state_st::data"
5415    );
5416    assert_eq!(
5417        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5418        104usize,
5419        "Offset of field: sha256_state_st::num"
5420    );
5421    assert_eq!(
5422        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5423        108usize,
5424        "Offset of field: sha256_state_st::md_len"
5425    );
5426}
5427impl Default for sha256_state_st {
5428    fn default() -> Self {
5429        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5430        unsafe {
5431            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5432            s.assume_init()
5433        }
5434    }
5435}
5436extern "C" {
5437    #[link_name = "\u{1}aws_lc_0_40_0_SHA384_Init"]
5438    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5439}
5440extern "C" {
5441    #[link_name = "\u{1}aws_lc_0_40_0_SHA384_Update"]
5442    pub fn SHA384_Update(
5443        sha: *mut SHA512_CTX,
5444        data: *const ::std::os::raw::c_void,
5445        len: usize,
5446    ) -> ::std::os::raw::c_int;
5447}
5448extern "C" {
5449    #[link_name = "\u{1}aws_lc_0_40_0_SHA384_Final"]
5450    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5451}
5452extern "C" {
5453    #[link_name = "\u{1}aws_lc_0_40_0_SHA384"]
5454    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5455}
5456extern "C" {
5457    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_Init"]
5458    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5459}
5460extern "C" {
5461    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_Update"]
5462    pub fn SHA512_Update(
5463        sha: *mut SHA512_CTX,
5464        data: *const ::std::os::raw::c_void,
5465        len: usize,
5466    ) -> ::std::os::raw::c_int;
5467}
5468extern "C" {
5469    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_Final"]
5470    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5471}
5472extern "C" {
5473    #[link_name = "\u{1}aws_lc_0_40_0_SHA512"]
5474    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5475}
5476extern "C" {
5477    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_Transform"]
5478    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
5479}
5480#[repr(C)]
5481#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5482pub struct sha512_state_st {
5483    pub h: [u64; 8usize],
5484    pub Nl: u64,
5485    pub Nh: u64,
5486    pub p: [u8; 128usize],
5487    pub num: ::std::os::raw::c_uint,
5488    pub md_len: ::std::os::raw::c_uint,
5489}
5490#[test]
5491fn bindgen_test_layout_sha512_state_st() {
5492    const UNINIT: ::std::mem::MaybeUninit<sha512_state_st> = ::std::mem::MaybeUninit::uninit();
5493    let ptr = UNINIT.as_ptr();
5494    assert_eq!(
5495        ::std::mem::size_of::<sha512_state_st>(),
5496        216usize,
5497        "Size of sha512_state_st"
5498    );
5499    assert_eq!(
5500        ::std::mem::align_of::<sha512_state_st>(),
5501        8usize,
5502        "Alignment of sha512_state_st"
5503    );
5504    assert_eq!(
5505        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
5506        0usize,
5507        "Offset of field: sha512_state_st::h"
5508    );
5509    assert_eq!(
5510        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
5511        64usize,
5512        "Offset of field: sha512_state_st::Nl"
5513    );
5514    assert_eq!(
5515        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
5516        72usize,
5517        "Offset of field: sha512_state_st::Nh"
5518    );
5519    assert_eq!(
5520        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
5521        80usize,
5522        "Offset of field: sha512_state_st::p"
5523    );
5524    assert_eq!(
5525        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
5526        208usize,
5527        "Offset of field: sha512_state_st::num"
5528    );
5529    assert_eq!(
5530        unsafe { ::std::ptr::addr_of!((*ptr).md_len) as usize - ptr as usize },
5531        212usize,
5532        "Offset of field: sha512_state_st::md_len"
5533    );
5534}
5535impl Default for sha512_state_st {
5536    fn default() -> Self {
5537        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5538        unsafe {
5539            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5540            s.assume_init()
5541        }
5542    }
5543}
5544extern "C" {
5545    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_224_Init"]
5546    pub fn SHA512_224_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5547}
5548extern "C" {
5549    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_224_Update"]
5550    pub fn SHA512_224_Update(
5551        sha: *mut SHA512_CTX,
5552        data: *const ::std::os::raw::c_void,
5553        len: usize,
5554    ) -> ::std::os::raw::c_int;
5555}
5556extern "C" {
5557    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_224_Final"]
5558    pub fn SHA512_224_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5559}
5560extern "C" {
5561    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_224"]
5562    pub fn SHA512_224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5563}
5564extern "C" {
5565    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_256_Init"]
5566    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5567}
5568extern "C" {
5569    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_256_Update"]
5570    pub fn SHA512_256_Update(
5571        sha: *mut SHA512_CTX,
5572        data: *const ::std::os::raw::c_void,
5573        len: usize,
5574    ) -> ::std::os::raw::c_int;
5575}
5576extern "C" {
5577    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_256_Final"]
5578    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::std::os::raw::c_int;
5579}
5580extern "C" {
5581    #[link_name = "\u{1}aws_lc_0_40_0_SHA512_256"]
5582    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
5583}
5584extern "C" {
5585    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_malloc"]
5586    pub fn OPENSSL_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5587}
5588extern "C" {
5589    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_zalloc"]
5590    pub fn OPENSSL_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5591}
5592extern "C" {
5593    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_calloc"]
5594    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
5595}
5596extern "C" {
5597    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_realloc"]
5598    pub fn OPENSSL_realloc(
5599        ptr: *mut ::std::os::raw::c_void,
5600        new_size: usize,
5601    ) -> *mut ::std::os::raw::c_void;
5602}
5603extern "C" {
5604    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_free"]
5605    pub fn OPENSSL_free(ptr: *mut ::std::os::raw::c_void);
5606}
5607extern "C" {
5608    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_cleanse"]
5609    pub fn OPENSSL_cleanse(ptr: *mut ::std::os::raw::c_void, len: usize);
5610}
5611extern "C" {
5612    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_memcmp"]
5613    pub fn CRYPTO_memcmp(
5614        a: *const ::std::os::raw::c_void,
5615        b: *const ::std::os::raw::c_void,
5616        len: usize,
5617    ) -> ::std::os::raw::c_int;
5618}
5619extern "C" {
5620    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_hash32"]
5621    pub fn OPENSSL_hash32(ptr: *const ::std::os::raw::c_void, len: usize) -> u32;
5622}
5623extern "C" {
5624    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strhash"]
5625    pub fn OPENSSL_strhash(s: *const ::std::os::raw::c_char) -> u32;
5626}
5627extern "C" {
5628    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strdup"]
5629    pub fn OPENSSL_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5630}
5631extern "C" {
5632    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strnlen"]
5633    pub fn OPENSSL_strnlen(s: *const ::std::os::raw::c_char, len: usize) -> usize;
5634}
5635extern "C" {
5636    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_isalpha"]
5637    pub fn OPENSSL_isalpha(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5638}
5639extern "C" {
5640    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_isdigit"]
5641    pub fn OPENSSL_isdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5642}
5643extern "C" {
5644    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_isxdigit"]
5645    pub fn OPENSSL_isxdigit(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5646}
5647extern "C" {
5648    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_fromxdigit"]
5649    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5650}
5651extern "C" {
5652    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_hexstr2buf"]
5653    pub fn OPENSSL_hexstr2buf(str_: *const ::std::os::raw::c_char, len: *mut usize) -> *mut u8;
5654}
5655extern "C" {
5656    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_isalnum"]
5657    pub fn OPENSSL_isalnum(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5658}
5659extern "C" {
5660    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_tolower"]
5661    pub fn OPENSSL_tolower(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5662}
5663extern "C" {
5664    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_isspace"]
5665    pub fn OPENSSL_isspace(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5666}
5667extern "C" {
5668    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strcasecmp"]
5669    pub fn OPENSSL_strcasecmp(
5670        a: *const ::std::os::raw::c_char,
5671        b: *const ::std::os::raw::c_char,
5672    ) -> ::std::os::raw::c_int;
5673}
5674extern "C" {
5675    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strncasecmp"]
5676    pub fn OPENSSL_strncasecmp(
5677        a: *const ::std::os::raw::c_char,
5678        b: *const ::std::os::raw::c_char,
5679        n: usize,
5680    ) -> ::std::os::raw::c_int;
5681}
5682extern "C" {
5683    #[link_name = "\u{1}aws_lc_0_40_0_BIO_snprintf"]
5684    pub fn BIO_snprintf(
5685        buf: *mut ::std::os::raw::c_char,
5686        n: usize,
5687        format: *const ::std::os::raw::c_char,
5688        ...
5689    ) -> ::std::os::raw::c_int;
5690}
5691extern "C" {
5692    #[link_name = "\u{1}aws_lc_0_40_0_BIO_vsnprintf"]
5693    pub fn BIO_vsnprintf(
5694        buf: *mut ::std::os::raw::c_char,
5695        n: usize,
5696        format: *const ::std::os::raw::c_char,
5697        args: *mut __va_list_tag,
5698    ) -> ::std::os::raw::c_int;
5699}
5700extern "C" {
5701    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_vasprintf"]
5702    pub fn OPENSSL_vasprintf(
5703        str_: *mut *mut ::std::os::raw::c_char,
5704        format: *const ::std::os::raw::c_char,
5705        args: *mut __va_list_tag,
5706    ) -> ::std::os::raw::c_int;
5707}
5708extern "C" {
5709    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_asprintf"]
5710    pub fn OPENSSL_asprintf(
5711        str_: *mut *mut ::std::os::raw::c_char,
5712        format: *const ::std::os::raw::c_char,
5713        ...
5714    ) -> ::std::os::raw::c_int;
5715}
5716extern "C" {
5717    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strndup"]
5718    pub fn OPENSSL_strndup(
5719        str_: *const ::std::os::raw::c_char,
5720        size: usize,
5721    ) -> *mut ::std::os::raw::c_char;
5722}
5723extern "C" {
5724    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_memdup"]
5725    pub fn OPENSSL_memdup(
5726        data: *const ::std::os::raw::c_void,
5727        size: usize,
5728    ) -> *mut ::std::os::raw::c_void;
5729}
5730extern "C" {
5731    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strlcpy"]
5732    pub fn OPENSSL_strlcpy(
5733        dst: *mut ::std::os::raw::c_char,
5734        src: *const ::std::os::raw::c_char,
5735        dst_size: usize,
5736    ) -> usize;
5737}
5738extern "C" {
5739    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_strlcat"]
5740    pub fn OPENSSL_strlcat(
5741        dst: *mut ::std::os::raw::c_char,
5742        src: *const ::std::os::raw::c_char,
5743        dst_size: usize,
5744    ) -> usize;
5745}
5746extern "C" {
5747    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_malloc"]
5748    pub fn CRYPTO_malloc(
5749        size: usize,
5750        file: *const ::std::os::raw::c_char,
5751        line: ::std::os::raw::c_int,
5752    ) -> *mut ::std::os::raw::c_void;
5753}
5754extern "C" {
5755    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_realloc"]
5756    pub fn CRYPTO_realloc(
5757        ptr: *mut ::std::os::raw::c_void,
5758        new_size: usize,
5759        file: *const ::std::os::raw::c_char,
5760        line: ::std::os::raw::c_int,
5761    ) -> *mut ::std::os::raw::c_void;
5762}
5763extern "C" {
5764    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_free"]
5765    pub fn CRYPTO_free(
5766        ptr: *mut ::std::os::raw::c_void,
5767        file: *const ::std::os::raw::c_char,
5768        line: ::std::os::raw::c_int,
5769    );
5770}
5771extern "C" {
5772    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_clear_free"]
5773    pub fn OPENSSL_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5774}
5775extern "C" {
5776    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_mem_functions"]
5777    pub fn CRYPTO_set_mem_functions(
5778        m: ::std::option::Option<
5779            unsafe extern "C" fn(
5780                arg1: usize,
5781                arg2: *const ::std::os::raw::c_char,
5782                arg3: ::std::os::raw::c_int,
5783            ) -> *mut ::std::os::raw::c_void,
5784        >,
5785        r: ::std::option::Option<
5786            unsafe extern "C" fn(
5787                arg1: *mut ::std::os::raw::c_void,
5788                arg2: usize,
5789                arg3: *const ::std::os::raw::c_char,
5790                arg4: ::std::os::raw::c_int,
5791            ) -> *mut ::std::os::raw::c_void,
5792        >,
5793        f: ::std::option::Option<
5794            unsafe extern "C" fn(
5795                arg1: *mut ::std::os::raw::c_void,
5796                arg2: *const ::std::os::raw::c_char,
5797                arg3: ::std::os::raw::c_int,
5798            ),
5799        >,
5800    ) -> ::std::os::raw::c_int;
5801}
5802extern "C" {
5803    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_secure_malloc_init"]
5804    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::std::os::raw::c_int;
5805}
5806extern "C" {
5807    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_secure_malloc_initialized"]
5808    pub fn CRYPTO_secure_malloc_initialized() -> ::std::os::raw::c_int;
5809}
5810extern "C" {
5811    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_secure_used"]
5812    pub fn CRYPTO_secure_used() -> usize;
5813}
5814extern "C" {
5815    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_secure_malloc"]
5816    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::std::os::raw::c_void;
5817}
5818extern "C" {
5819    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_secure_zalloc"]
5820    pub fn OPENSSL_secure_zalloc(size: usize) -> *mut ::std::os::raw::c_void;
5821}
5822extern "C" {
5823    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_secure_clear_free"]
5824    pub fn OPENSSL_secure_clear_free(ptr: *mut ::std::os::raw::c_void, len: usize);
5825}
5826#[repr(C)]
5827#[derive(Copy, Clone)]
5828pub union crypto_mutex_st {
5829    pub alignment: f64,
5830    pub padding: [u8; 56usize],
5831}
5832#[test]
5833fn bindgen_test_layout_crypto_mutex_st() {
5834    const UNINIT: ::std::mem::MaybeUninit<crypto_mutex_st> = ::std::mem::MaybeUninit::uninit();
5835    let ptr = UNINIT.as_ptr();
5836    assert_eq!(
5837        ::std::mem::size_of::<crypto_mutex_st>(),
5838        56usize,
5839        "Size of crypto_mutex_st"
5840    );
5841    assert_eq!(
5842        ::std::mem::align_of::<crypto_mutex_st>(),
5843        8usize,
5844        "Alignment of crypto_mutex_st"
5845    );
5846    assert_eq!(
5847        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
5848        0usize,
5849        "Offset of field: crypto_mutex_st::alignment"
5850    );
5851    assert_eq!(
5852        unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
5853        0usize,
5854        "Offset of field: crypto_mutex_st::padding"
5855    );
5856}
5857impl Default for crypto_mutex_st {
5858    fn default() -> Self {
5859        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5860        unsafe {
5861            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5862            s.assume_init()
5863        }
5864    }
5865}
5866pub type CRYPTO_MUTEX = crypto_mutex_st;
5867pub type CRYPTO_refcount_t = u32;
5868extern "C" {
5869    #[link_name = "\u{1}aws_lc_0_40_0_AWSLC_thread_local_clear"]
5870    pub fn AWSLC_thread_local_clear() -> ::std::os::raw::c_int;
5871}
5872extern "C" {
5873    #[link_name = "\u{1}aws_lc_0_40_0_AWSLC_thread_local_shutdown"]
5874    pub fn AWSLC_thread_local_shutdown() -> ::std::os::raw::c_int;
5875}
5876extern "C" {
5877    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_num_locks"]
5878    pub fn CRYPTO_num_locks() -> ::std::os::raw::c_int;
5879}
5880extern "C" {
5881    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_locking_callback"]
5882    pub fn CRYPTO_set_locking_callback(
5883        func: ::std::option::Option<
5884            unsafe extern "C" fn(
5885                mode: ::std::os::raw::c_int,
5886                lock_num: ::std::os::raw::c_int,
5887                file: *const ::std::os::raw::c_char,
5888                line: ::std::os::raw::c_int,
5889            ),
5890        >,
5891    );
5892}
5893extern "C" {
5894    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_add_lock_callback"]
5895    pub fn CRYPTO_set_add_lock_callback(
5896        func: ::std::option::Option<
5897            unsafe extern "C" fn(
5898                num: *mut ::std::os::raw::c_int,
5899                amount: ::std::os::raw::c_int,
5900                lock_num: ::std::os::raw::c_int,
5901                file: *const ::std::os::raw::c_char,
5902                line: ::std::os::raw::c_int,
5903            ) -> ::std::os::raw::c_int,
5904        >,
5905    );
5906}
5907extern "C" {
5908    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_get_locking_callback"]
5909    pub fn CRYPTO_get_locking_callback() -> ::std::option::Option<
5910        unsafe extern "C" fn(
5911            arg1: ::std::os::raw::c_int,
5912            arg2: ::std::os::raw::c_int,
5913            arg3: *const ::std::os::raw::c_char,
5914            arg4: ::std::os::raw::c_int,
5915        ),
5916    >;
5917}
5918extern "C" {
5919    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_get_lock_name"]
5920    pub fn CRYPTO_get_lock_name(lock_num: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
5921}
5922extern "C" {
5923    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_THREADID_set_callback"]
5924    pub fn CRYPTO_THREADID_set_callback(
5925        threadid_func: ::std::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
5926    ) -> ::std::os::raw::c_int;
5927}
5928extern "C" {
5929    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_THREADID_set_numeric"]
5930    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::std::os::raw::c_ulong);
5931}
5932extern "C" {
5933    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_THREADID_set_pointer"]
5934    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::std::os::raw::c_void);
5935}
5936extern "C" {
5937    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_THREADID_current"]
5938    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
5939}
5940extern "C" {
5941    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_id_callback"]
5942    pub fn CRYPTO_set_id_callback(
5943        func: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_ulong>,
5944    );
5945}
5946#[repr(C)]
5947#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5948pub struct CRYPTO_dynlock {
5949    pub references: ::std::os::raw::c_int,
5950    pub data: *mut CRYPTO_dynlock_value,
5951}
5952#[test]
5953fn bindgen_test_layout_CRYPTO_dynlock() {
5954    const UNINIT: ::std::mem::MaybeUninit<CRYPTO_dynlock> = ::std::mem::MaybeUninit::uninit();
5955    let ptr = UNINIT.as_ptr();
5956    assert_eq!(
5957        ::std::mem::size_of::<CRYPTO_dynlock>(),
5958        16usize,
5959        "Size of CRYPTO_dynlock"
5960    );
5961    assert_eq!(
5962        ::std::mem::align_of::<CRYPTO_dynlock>(),
5963        8usize,
5964        "Alignment of CRYPTO_dynlock"
5965    );
5966    assert_eq!(
5967        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
5968        0usize,
5969        "Offset of field: CRYPTO_dynlock::references"
5970    );
5971    assert_eq!(
5972        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
5973        8usize,
5974        "Offset of field: CRYPTO_dynlock::data"
5975    );
5976}
5977impl Default for CRYPTO_dynlock {
5978    fn default() -> Self {
5979        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5980        unsafe {
5981            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5982            s.assume_init()
5983        }
5984    }
5985}
5986extern "C" {
5987    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_dynlock_create_callback"]
5988    pub fn CRYPTO_set_dynlock_create_callback(
5989        dyn_create_function: ::std::option::Option<
5990            unsafe extern "C" fn(
5991                file: *const ::std::os::raw::c_char,
5992                line: ::std::os::raw::c_int,
5993            ) -> *mut CRYPTO_dynlock_value,
5994        >,
5995    );
5996}
5997extern "C" {
5998    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_dynlock_lock_callback"]
5999    pub fn CRYPTO_set_dynlock_lock_callback(
6000        dyn_lock_function: ::std::option::Option<
6001            unsafe extern "C" fn(
6002                mode: ::std::os::raw::c_int,
6003                l: *mut CRYPTO_dynlock_value,
6004                file: *const ::std::os::raw::c_char,
6005                line: ::std::os::raw::c_int,
6006            ),
6007        >,
6008    );
6009}
6010extern "C" {
6011    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_set_dynlock_destroy_callback"]
6012    pub fn CRYPTO_set_dynlock_destroy_callback(
6013        dyn_destroy_function: ::std::option::Option<
6014            unsafe extern "C" fn(
6015                l: *mut CRYPTO_dynlock_value,
6016                file: *const ::std::os::raw::c_char,
6017                line: ::std::os::raw::c_int,
6018            ),
6019        >,
6020    );
6021}
6022extern "C" {
6023    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_get_dynlock_create_callback"]
6024    pub fn CRYPTO_get_dynlock_create_callback() -> ::std::option::Option<
6025        unsafe extern "C" fn(
6026            arg1: *const ::std::os::raw::c_char,
6027            arg2: ::std::os::raw::c_int,
6028        ) -> *mut CRYPTO_dynlock_value,
6029    >;
6030}
6031extern "C" {
6032    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_get_dynlock_lock_callback"]
6033    pub fn CRYPTO_get_dynlock_lock_callback() -> ::std::option::Option<
6034        unsafe extern "C" fn(
6035            arg1: ::std::os::raw::c_int,
6036            arg2: *mut CRYPTO_dynlock_value,
6037            arg3: *const ::std::os::raw::c_char,
6038            arg4: ::std::os::raw::c_int,
6039        ),
6040    >;
6041}
6042extern "C" {
6043    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_get_dynlock_destroy_callback"]
6044    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::std::option::Option<
6045        unsafe extern "C" fn(
6046            arg1: *mut CRYPTO_dynlock_value,
6047            arg2: *const ::std::os::raw::c_char,
6048            arg3: ::std::os::raw::c_int,
6049        ),
6050    >;
6051}
6052extern "C" {
6053    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_library_init"]
6054    pub fn CRYPTO_library_init();
6055}
6056extern "C" {
6057    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_is_confidential_build"]
6058    pub fn CRYPTO_is_confidential_build() -> ::std::os::raw::c_int;
6059}
6060extern "C" {
6061    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_has_asm"]
6062    pub fn CRYPTO_has_asm() -> ::std::os::raw::c_int;
6063}
6064extern "C" {
6065    #[link_name = "\u{1}aws_lc_0_40_0_BORINGSSL_self_test"]
6066    pub fn BORINGSSL_self_test() -> ::std::os::raw::c_int;
6067}
6068extern "C" {
6069    pub fn BORINGSSL_integrity_test() -> ::std::os::raw::c_int;
6070}
6071extern "C" {
6072    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_pre_sandbox_init"]
6073    pub fn CRYPTO_pre_sandbox_init();
6074}
6075extern "C" {
6076    #[link_name = "\u{1}aws_lc_0_40_0_FIPS_mode"]
6077    pub fn FIPS_mode() -> ::std::os::raw::c_int;
6078}
6079extern "C" {
6080    #[link_name = "\u{1}aws_lc_0_40_0_FIPS_is_entropy_cpu_jitter"]
6081    pub fn FIPS_is_entropy_cpu_jitter() -> ::std::os::raw::c_int;
6082}
6083extern "C" {
6084    #[link_name = "\u{1}aws_lc_0_40_0_OpenSSL_version"]
6085    pub fn OpenSSL_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6086}
6087extern "C" {
6088    #[link_name = "\u{1}aws_lc_0_40_0_SSLeay_version"]
6089    pub fn SSLeay_version(which: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
6090}
6091extern "C" {
6092    #[link_name = "\u{1}aws_lc_0_40_0_SSLeay"]
6093    pub fn SSLeay() -> ::std::os::raw::c_ulong;
6094}
6095extern "C" {
6096    #[link_name = "\u{1}aws_lc_0_40_0_OpenSSL_version_num"]
6097    pub fn OpenSSL_version_num() -> ::std::os::raw::c_ulong;
6098}
6099extern "C" {
6100    #[link_name = "\u{1}aws_lc_0_40_0_awslc_api_version_num"]
6101    pub fn awslc_api_version_num() -> ::std::os::raw::c_ulong;
6102}
6103extern "C" {
6104    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_malloc_init"]
6105    pub fn CRYPTO_malloc_init() -> ::std::os::raw::c_int;
6106}
6107extern "C" {
6108    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_malloc_init"]
6109    pub fn OPENSSL_malloc_init() -> ::std::os::raw::c_int;
6110}
6111extern "C" {
6112    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_load_builtin_engines"]
6113    pub fn ENGINE_load_builtin_engines();
6114}
6115extern "C" {
6116    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_register_all_ciphers"]
6117    pub fn ENGINE_register_all_ciphers();
6118}
6119extern "C" {
6120    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_register_all_digests"]
6121    pub fn ENGINE_register_all_digests();
6122}
6123extern "C" {
6124    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_register_all_complete"]
6125    pub fn ENGINE_register_all_complete() -> ::std::os::raw::c_int;
6126}
6127extern "C" {
6128    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_load_builtin_modules"]
6129    pub fn OPENSSL_load_builtin_modules();
6130}
6131extern "C" {
6132    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_init_crypto"]
6133    pub fn OPENSSL_init_crypto(
6134        opts: u64,
6135        settings: *const OPENSSL_INIT_SETTINGS,
6136    ) -> ::std::os::raw::c_int;
6137}
6138extern "C" {
6139    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_init"]
6140    pub fn OPENSSL_init();
6141}
6142extern "C" {
6143    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_cleanup"]
6144    pub fn OPENSSL_cleanup();
6145}
6146extern "C" {
6147    #[link_name = "\u{1}aws_lc_0_40_0_FIPS_mode_set"]
6148    pub fn FIPS_mode_set(on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6149}
6150extern "C" {
6151    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_mem_ctrl"]
6152    pub fn CRYPTO_mem_ctrl(mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6153}
6154extern "C" {
6155    #[link_name = "\u{1}aws_lc_0_40_0_ERR_load_BIO_strings"]
6156    pub fn ERR_load_BIO_strings();
6157}
6158extern "C" {
6159    #[link_name = "\u{1}aws_lc_0_40_0_ERR_load_ERR_strings"]
6160    pub fn ERR_load_ERR_strings();
6161}
6162extern "C" {
6163    #[link_name = "\u{1}aws_lc_0_40_0_ERR_load_CRYPTO_strings"]
6164    pub fn ERR_load_CRYPTO_strings();
6165}
6166extern "C" {
6167    #[link_name = "\u{1}aws_lc_0_40_0_ERR_load_crypto_strings"]
6168    pub fn ERR_load_crypto_strings();
6169}
6170extern "C" {
6171    #[link_name = "\u{1}aws_lc_0_40_0_ERR_load_RAND_strings"]
6172    pub fn ERR_load_RAND_strings();
6173}
6174extern "C" {
6175    #[link_name = "\u{1}aws_lc_0_40_0_ERR_free_strings"]
6176    pub fn ERR_free_strings();
6177}
6178extern "C" {
6179    #[link_name = "\u{1}aws_lc_0_40_0_ERR_get_error"]
6180    pub fn ERR_get_error() -> u32;
6181}
6182extern "C" {
6183    #[link_name = "\u{1}aws_lc_0_40_0_ERR_get_error_line"]
6184    pub fn ERR_get_error_line(
6185        file: *mut *const ::std::os::raw::c_char,
6186        line: *mut ::std::os::raw::c_int,
6187    ) -> u32;
6188}
6189extern "C" {
6190    #[link_name = "\u{1}aws_lc_0_40_0_ERR_get_error_line_data"]
6191    pub fn ERR_get_error_line_data(
6192        file: *mut *const ::std::os::raw::c_char,
6193        line: *mut ::std::os::raw::c_int,
6194        data: *mut *const ::std::os::raw::c_char,
6195        flags: *mut ::std::os::raw::c_int,
6196    ) -> u32;
6197}
6198extern "C" {
6199    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_error"]
6200    pub fn ERR_peek_error() -> u32;
6201}
6202extern "C" {
6203    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_error_line"]
6204    pub fn ERR_peek_error_line(
6205        file: *mut *const ::std::os::raw::c_char,
6206        line: *mut ::std::os::raw::c_int,
6207    ) -> u32;
6208}
6209extern "C" {
6210    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_error_line_data"]
6211    pub fn ERR_peek_error_line_data(
6212        file: *mut *const ::std::os::raw::c_char,
6213        line: *mut ::std::os::raw::c_int,
6214        data: *mut *const ::std::os::raw::c_char,
6215        flags: *mut ::std::os::raw::c_int,
6216    ) -> u32;
6217}
6218extern "C" {
6219    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_last_error"]
6220    pub fn ERR_peek_last_error() -> u32;
6221}
6222extern "C" {
6223    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_last_error_line"]
6224    pub fn ERR_peek_last_error_line(
6225        file: *mut *const ::std::os::raw::c_char,
6226        line: *mut ::std::os::raw::c_int,
6227    ) -> u32;
6228}
6229extern "C" {
6230    #[link_name = "\u{1}aws_lc_0_40_0_ERR_peek_last_error_line_data"]
6231    pub fn ERR_peek_last_error_line_data(
6232        file: *mut *const ::std::os::raw::c_char,
6233        line: *mut ::std::os::raw::c_int,
6234        data: *mut *const ::std::os::raw::c_char,
6235        flags: *mut ::std::os::raw::c_int,
6236    ) -> u32;
6237}
6238extern "C" {
6239    #[link_name = "\u{1}aws_lc_0_40_0_ERR_error_string_n"]
6240    pub fn ERR_error_string_n(
6241        packed_error: u32,
6242        buf: *mut ::std::os::raw::c_char,
6243        len: usize,
6244    ) -> *mut ::std::os::raw::c_char;
6245}
6246extern "C" {
6247    #[link_name = "\u{1}aws_lc_0_40_0_ERR_lib_error_string"]
6248    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6249}
6250extern "C" {
6251    #[link_name = "\u{1}aws_lc_0_40_0_ERR_reason_error_string"]
6252    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6253}
6254pub type ERR_print_errors_callback_t = ::std::option::Option<
6255    unsafe extern "C" fn(
6256        str_: *const ::std::os::raw::c_char,
6257        len: usize,
6258        ctx: *mut ::std::os::raw::c_void,
6259    ) -> ::std::os::raw::c_int,
6260>;
6261extern "C" {
6262    #[link_name = "\u{1}aws_lc_0_40_0_ERR_print_errors_cb"]
6263    pub fn ERR_print_errors_cb(
6264        callback: ERR_print_errors_callback_t,
6265        ctx: *mut ::std::os::raw::c_void,
6266    );
6267}
6268extern "C" {
6269    #[link_name = "\u{1}aws_lc_0_40_0_ERR_print_errors_fp"]
6270    pub fn ERR_print_errors_fp(file: *mut FILE);
6271}
6272extern "C" {
6273    #[link_name = "\u{1}aws_lc_0_40_0_ERR_clear_error"]
6274    pub fn ERR_clear_error();
6275}
6276extern "C" {
6277    #[link_name = "\u{1}aws_lc_0_40_0_ERR_set_mark"]
6278    pub fn ERR_set_mark() -> ::std::os::raw::c_int;
6279}
6280extern "C" {
6281    #[link_name = "\u{1}aws_lc_0_40_0_ERR_pop_to_mark"]
6282    pub fn ERR_pop_to_mark() -> ::std::os::raw::c_int;
6283}
6284extern "C" {
6285    #[link_name = "\u{1}aws_lc_0_40_0_ERR_get_next_error_library"]
6286    pub fn ERR_get_next_error_library() -> ::std::os::raw::c_int;
6287}
6288extern "C" {
6289    #[link_name = "\u{1}aws_lc_0_40_0_ERR_remove_state"]
6290    pub fn ERR_remove_state(pid: ::std::os::raw::c_ulong);
6291}
6292extern "C" {
6293    #[link_name = "\u{1}aws_lc_0_40_0_ERR_remove_thread_state"]
6294    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
6295}
6296extern "C" {
6297    #[link_name = "\u{1}aws_lc_0_40_0_ERR_func_error_string"]
6298    pub fn ERR_func_error_string(packed_error: u32) -> *const ::std::os::raw::c_char;
6299}
6300extern "C" {
6301    #[link_name = "\u{1}aws_lc_0_40_0_ERR_error_string"]
6302    pub fn ERR_error_string(
6303        packed_error: u32,
6304        buf: *mut ::std::os::raw::c_char,
6305    ) -> *mut ::std::os::raw::c_char;
6306}
6307extern "C" {
6308    #[link_name = "\u{1}aws_lc_0_40_0_ERR_clear_system_error"]
6309    pub fn ERR_clear_system_error();
6310}
6311extern "C" {
6312    #[link_name = "\u{1}aws_lc_0_40_0_ERR_put_error"]
6313    pub fn ERR_put_error(
6314        library: ::std::os::raw::c_int,
6315        unused: ::std::os::raw::c_int,
6316        reason: ::std::os::raw::c_int,
6317        file: *const ::std::os::raw::c_char,
6318        line: ::std::os::raw::c_uint,
6319    );
6320}
6321extern "C" {
6322    #[link_name = "\u{1}aws_lc_0_40_0_ERR_add_error_data"]
6323    pub fn ERR_add_error_data(count: ::std::os::raw::c_uint, ...);
6324}
6325extern "C" {
6326    #[link_name = "\u{1}aws_lc_0_40_0_ERR_add_error_dataf"]
6327    pub fn ERR_add_error_dataf(format: *const ::std::os::raw::c_char, ...);
6328}
6329extern "C" {
6330    #[link_name = "\u{1}aws_lc_0_40_0_ERR_set_error_data"]
6331    pub fn ERR_set_error_data(data: *mut ::std::os::raw::c_char, flags: ::std::os::raw::c_int);
6332}
6333pub type OPENSSL_sk_free_func =
6334    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
6335pub type OPENSSL_sk_copy_func = ::std::option::Option<
6336    unsafe extern "C" fn(ptr: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6337>;
6338pub type OPENSSL_sk_cmp_func = ::std::option::Option<
6339    unsafe extern "C" fn(
6340        a: *const *const ::std::os::raw::c_void,
6341        b: *const *const ::std::os::raw::c_void,
6342    ) -> ::std::os::raw::c_int,
6343>;
6344pub type OPENSSL_sk_delete_if_func = ::std::option::Option<
6345    unsafe extern "C" fn(
6346        obj: *mut ::std::os::raw::c_void,
6347        data: *mut ::std::os::raw::c_void,
6348    ) -> ::std::os::raw::c_int,
6349>;
6350pub type OPENSSL_sk_call_free_func = ::std::option::Option<
6351    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::std::os::raw::c_void),
6352>;
6353pub type OPENSSL_sk_call_copy_func = ::std::option::Option<
6354    unsafe extern "C" fn(
6355        arg1: OPENSSL_sk_copy_func,
6356        arg2: *const ::std::os::raw::c_void,
6357    ) -> *mut ::std::os::raw::c_void,
6358>;
6359pub type OPENSSL_sk_call_cmp_func = ::std::option::Option<
6360    unsafe extern "C" fn(
6361        arg1: OPENSSL_sk_cmp_func,
6362        arg2: *const ::std::os::raw::c_void,
6363        arg3: *const ::std::os::raw::c_void,
6364    ) -> ::std::os::raw::c_int,
6365>;
6366pub type OPENSSL_sk_call_delete_if_func = ::std::option::Option<
6367    unsafe extern "C" fn(
6368        arg1: OPENSSL_sk_delete_if_func,
6369        arg2: *mut ::std::os::raw::c_void,
6370        arg3: *mut ::std::os::raw::c_void,
6371    ) -> ::std::os::raw::c_int,
6372>;
6373#[repr(C)]
6374#[derive(Debug, Copy, Clone)]
6375pub struct stack_st {
6376    _unused: [u8; 0],
6377}
6378pub type OPENSSL_STACK = stack_st;
6379extern "C" {
6380    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_new"]
6381    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
6382}
6383extern "C" {
6384    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_new_null"]
6385    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
6386}
6387extern "C" {
6388    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_num"]
6389    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
6390}
6391extern "C" {
6392    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_zero"]
6393    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
6394}
6395extern "C" {
6396    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_value"]
6397    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::std::os::raw::c_void;
6398}
6399extern "C" {
6400    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_set"]
6401    pub fn OPENSSL_sk_set(
6402        sk: *mut OPENSSL_STACK,
6403        i: usize,
6404        p: *mut ::std::os::raw::c_void,
6405    ) -> *mut ::std::os::raw::c_void;
6406}
6407extern "C" {
6408    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_free"]
6409    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
6410}
6411extern "C" {
6412    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_pop_free_ex"]
6413    pub fn OPENSSL_sk_pop_free_ex(
6414        sk: *mut OPENSSL_STACK,
6415        call_free_func: OPENSSL_sk_call_free_func,
6416        free_func: OPENSSL_sk_free_func,
6417    );
6418}
6419extern "C" {
6420    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_insert"]
6421    pub fn OPENSSL_sk_insert(
6422        sk: *mut OPENSSL_STACK,
6423        p: *mut ::std::os::raw::c_void,
6424        where_: usize,
6425    ) -> usize;
6426}
6427extern "C" {
6428    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_delete"]
6429    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::std::os::raw::c_void;
6430}
6431extern "C" {
6432    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_delete_ptr"]
6433    pub fn OPENSSL_sk_delete_ptr(
6434        sk: *mut OPENSSL_STACK,
6435        p: *const ::std::os::raw::c_void,
6436    ) -> *mut ::std::os::raw::c_void;
6437}
6438extern "C" {
6439    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_delete_if"]
6440    pub fn OPENSSL_sk_delete_if(
6441        sk: *mut OPENSSL_STACK,
6442        call_func: OPENSSL_sk_call_delete_if_func,
6443        func: OPENSSL_sk_delete_if_func,
6444        data: *mut ::std::os::raw::c_void,
6445    );
6446}
6447extern "C" {
6448    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_find"]
6449    pub fn OPENSSL_sk_find(
6450        sk: *const OPENSSL_STACK,
6451        out_index: *mut usize,
6452        p: *const ::std::os::raw::c_void,
6453        call_cmp_func: OPENSSL_sk_call_cmp_func,
6454    ) -> ::std::os::raw::c_int;
6455}
6456extern "C" {
6457    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_unshift"]
6458    pub fn OPENSSL_sk_unshift(
6459        sk: *mut OPENSSL_STACK,
6460        data: *mut ::std::os::raw::c_void,
6461    ) -> ::std::os::raw::c_int;
6462}
6463extern "C" {
6464    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_shift"]
6465    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6466}
6467extern "C" {
6468    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_push"]
6469    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::std::os::raw::c_void) -> usize;
6470}
6471extern "C" {
6472    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_pop"]
6473    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::std::os::raw::c_void;
6474}
6475extern "C" {
6476    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_dup"]
6477    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6478}
6479extern "C" {
6480    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_sort"]
6481    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6482}
6483extern "C" {
6484    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_is_sorted"]
6485    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::std::os::raw::c_int;
6486}
6487extern "C" {
6488    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_set_cmp_func"]
6489    pub fn OPENSSL_sk_set_cmp_func(
6490        sk: *mut OPENSSL_STACK,
6491        comp: OPENSSL_sk_cmp_func,
6492    ) -> OPENSSL_sk_cmp_func;
6493}
6494extern "C" {
6495    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_sk_deep_copy"]
6496    pub fn OPENSSL_sk_deep_copy(
6497        sk: *const OPENSSL_STACK,
6498        call_copy_func: OPENSSL_sk_call_copy_func,
6499        copy_func: OPENSSL_sk_copy_func,
6500        call_free_func: OPENSSL_sk_call_free_func,
6501        free_func: OPENSSL_sk_free_func,
6502    ) -> *mut OPENSSL_STACK;
6503}
6504pub type _STACK = OPENSSL_STACK;
6505extern "C" {
6506    #[link_name = "\u{1}aws_lc_0_40_0_sk_pop_free"]
6507    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6508}
6509pub type OPENSSL_STRING = *mut ::std::os::raw::c_char;
6510#[repr(C)]
6511#[derive(Debug, Copy, Clone)]
6512pub struct stack_st_void {
6513    _unused: [u8; 0],
6514}
6515pub type sk_void_free_func =
6516    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
6517pub type sk_void_copy_func = ::std::option::Option<
6518    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
6519>;
6520pub type sk_void_cmp_func = ::std::option::Option<
6521    unsafe extern "C" fn(
6522        arg1: *const *const ::std::os::raw::c_void,
6523        arg2: *const *const ::std::os::raw::c_void,
6524    ) -> ::std::os::raw::c_int,
6525>;
6526pub type sk_void_delete_if_func = ::std::option::Option<
6527    unsafe extern "C" fn(
6528        arg1: *mut ::std::os::raw::c_void,
6529        arg2: *mut ::std::os::raw::c_void,
6530    ) -> ::std::os::raw::c_int,
6531>;
6532#[repr(C)]
6533#[derive(Debug, Copy, Clone)]
6534pub struct stack_st_OPENSSL_STRING {
6535    _unused: [u8; 0],
6536}
6537pub type sk_OPENSSL_STRING_free_func =
6538    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_char)>;
6539pub type sk_OPENSSL_STRING_copy_func = ::std::option::Option<
6540    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
6541>;
6542pub type sk_OPENSSL_STRING_cmp_func = ::std::option::Option<
6543    unsafe extern "C" fn(
6544        arg1: *const *const ::std::os::raw::c_char,
6545        arg2: *const *const ::std::os::raw::c_char,
6546    ) -> ::std::os::raw::c_int,
6547>;
6548pub type sk_OPENSSL_STRING_delete_if_func = ::std::option::Option<
6549    unsafe extern "C" fn(
6550        arg1: *mut ::std::os::raw::c_char,
6551        arg2: *mut ::std::os::raw::c_void,
6552    ) -> ::std::os::raw::c_int,
6553>;
6554pub type CRYPTO_EX_DATA = crypto_ex_data_st;
6555pub type CRYPTO_EX_free = ::std::option::Option<
6556    unsafe extern "C" fn(
6557        parent: *mut ::std::os::raw::c_void,
6558        ptr: *mut ::std::os::raw::c_void,
6559        ad: *mut CRYPTO_EX_DATA,
6560        index: ::std::os::raw::c_int,
6561        argl: ::std::os::raw::c_long,
6562        argp: *mut ::std::os::raw::c_void,
6563    ),
6564>;
6565extern "C" {
6566    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_cleanup_all_ex_data"]
6567    pub fn CRYPTO_cleanup_all_ex_data();
6568}
6569pub type CRYPTO_EX_dup = ::std::option::Option<
6570    unsafe extern "C" fn(
6571        to: *mut CRYPTO_EX_DATA,
6572        from: *const CRYPTO_EX_DATA,
6573        from_d: *mut *mut ::std::os::raw::c_void,
6574        index: ::std::os::raw::c_int,
6575        argl: ::std::os::raw::c_long,
6576        argp: *mut ::std::os::raw::c_void,
6577    ) -> ::std::os::raw::c_int,
6578>;
6579pub type CRYPTO_EX_unused = ::std::os::raw::c_int;
6580#[repr(C)]
6581#[derive(Debug, Copy, Clone, PartialEq, Eq)]
6582pub struct crypto_ex_data_st {
6583    pub sk: *mut stack_st_void,
6584}
6585#[test]
6586fn bindgen_test_layout_crypto_ex_data_st() {
6587    const UNINIT: ::std::mem::MaybeUninit<crypto_ex_data_st> = ::std::mem::MaybeUninit::uninit();
6588    let ptr = UNINIT.as_ptr();
6589    assert_eq!(
6590        ::std::mem::size_of::<crypto_ex_data_st>(),
6591        8usize,
6592        "Size of crypto_ex_data_st"
6593    );
6594    assert_eq!(
6595        ::std::mem::align_of::<crypto_ex_data_st>(),
6596        8usize,
6597        "Alignment of crypto_ex_data_st"
6598    );
6599    assert_eq!(
6600        unsafe { ::std::ptr::addr_of!((*ptr).sk) as usize - ptr as usize },
6601        0usize,
6602        "Offset of field: crypto_ex_data_st::sk"
6603    );
6604}
6605impl Default for crypto_ex_data_st {
6606    fn default() -> Self {
6607        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6608        unsafe {
6609            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6610            s.assume_init()
6611        }
6612    }
6613}
6614#[repr(C)]
6615#[derive(Debug, Copy, Clone)]
6616pub struct stack_st_BIO {
6617    _unused: [u8; 0],
6618}
6619pub type sk_BIO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6620pub type sk_BIO_copy_func =
6621    ::std::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6622pub type sk_BIO_cmp_func = ::std::option::Option<
6623    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::std::os::raw::c_int,
6624>;
6625pub type sk_BIO_delete_if_func = ::std::option::Option<
6626    unsafe extern "C" fn(
6627        arg1: *mut BIO,
6628        arg2: *mut ::std::os::raw::c_void,
6629    ) -> ::std::os::raw::c_int,
6630>;
6631extern "C" {
6632    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new"]
6633    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6634}
6635extern "C" {
6636    #[link_name = "\u{1}aws_lc_0_40_0_BIO_free"]
6637    pub fn BIO_free(bio: *mut BIO) -> ::std::os::raw::c_int;
6638}
6639extern "C" {
6640    #[link_name = "\u{1}aws_lc_0_40_0_BIO_vfree"]
6641    pub fn BIO_vfree(bio: *mut BIO);
6642}
6643extern "C" {
6644    #[link_name = "\u{1}aws_lc_0_40_0_BIO_up_ref"]
6645    pub fn BIO_up_ref(bio: *mut BIO) -> ::std::os::raw::c_int;
6646}
6647extern "C" {
6648    #[link_name = "\u{1}aws_lc_0_40_0_BIO_read"]
6649    pub fn BIO_read(
6650        bio: *mut BIO,
6651        data: *mut ::std::os::raw::c_void,
6652        len: ::std::os::raw::c_int,
6653    ) -> ::std::os::raw::c_int;
6654}
6655extern "C" {
6656    #[link_name = "\u{1}aws_lc_0_40_0_BIO_read_ex"]
6657    pub fn BIO_read_ex(
6658        bio: *mut BIO,
6659        data: *mut ::std::os::raw::c_void,
6660        data_len: usize,
6661        read_bytes: *mut usize,
6662    ) -> ::std::os::raw::c_int;
6663}
6664extern "C" {
6665    #[link_name = "\u{1}aws_lc_0_40_0_BIO_gets"]
6666    pub fn BIO_gets(
6667        bio: *mut BIO,
6668        buf: *mut ::std::os::raw::c_char,
6669        size: ::std::os::raw::c_int,
6670    ) -> ::std::os::raw::c_int;
6671}
6672extern "C" {
6673    #[link_name = "\u{1}aws_lc_0_40_0_BIO_write"]
6674    pub fn BIO_write(
6675        bio: *mut BIO,
6676        data: *const ::std::os::raw::c_void,
6677        len: ::std::os::raw::c_int,
6678    ) -> ::std::os::raw::c_int;
6679}
6680extern "C" {
6681    #[link_name = "\u{1}aws_lc_0_40_0_BIO_write_ex"]
6682    pub fn BIO_write_ex(
6683        bio: *mut BIO,
6684        data: *const ::std::os::raw::c_void,
6685        data_len: usize,
6686        written_bytes: *mut usize,
6687    ) -> ::std::os::raw::c_int;
6688}
6689extern "C" {
6690    #[link_name = "\u{1}aws_lc_0_40_0_BIO_write_all"]
6691    pub fn BIO_write_all(
6692        bio: *mut BIO,
6693        data: *const ::std::os::raw::c_void,
6694        len: usize,
6695    ) -> ::std::os::raw::c_int;
6696}
6697extern "C" {
6698    #[link_name = "\u{1}aws_lc_0_40_0_BIO_puts"]
6699    pub fn BIO_puts(bio: *mut BIO, buf: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6700}
6701extern "C" {
6702    #[link_name = "\u{1}aws_lc_0_40_0_BIO_flush"]
6703    pub fn BIO_flush(bio: *mut BIO) -> ::std::os::raw::c_int;
6704}
6705extern "C" {
6706    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl"]
6707    pub fn BIO_ctrl(
6708        bio: *mut BIO,
6709        cmd: ::std::os::raw::c_int,
6710        larg: ::std::os::raw::c_long,
6711        parg: *mut ::std::os::raw::c_void,
6712    ) -> ::std::os::raw::c_long;
6713}
6714extern "C" {
6715    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ptr_ctrl"]
6716    pub fn BIO_ptr_ctrl(
6717        bp: *mut BIO,
6718        cmd: ::std::os::raw::c_int,
6719        larg: ::std::os::raw::c_long,
6720    ) -> *mut ::std::os::raw::c_char;
6721}
6722extern "C" {
6723    #[link_name = "\u{1}aws_lc_0_40_0_BIO_int_ctrl"]
6724    pub fn BIO_int_ctrl(
6725        bp: *mut BIO,
6726        cmd: ::std::os::raw::c_int,
6727        larg: ::std::os::raw::c_long,
6728        iarg: ::std::os::raw::c_int,
6729    ) -> ::std::os::raw::c_long;
6730}
6731extern "C" {
6732    #[link_name = "\u{1}aws_lc_0_40_0_BIO_reset"]
6733    pub fn BIO_reset(bio: *mut BIO) -> ::std::os::raw::c_int;
6734}
6735extern "C" {
6736    #[link_name = "\u{1}aws_lc_0_40_0_BIO_eof"]
6737    pub fn BIO_eof(bio: *mut BIO) -> ::std::os::raw::c_int;
6738}
6739extern "C" {
6740    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_flags"]
6741    pub fn BIO_set_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6742}
6743extern "C" {
6744    #[link_name = "\u{1}aws_lc_0_40_0_BIO_test_flags"]
6745    pub fn BIO_test_flags(bio: *const BIO, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6746}
6747extern "C" {
6748    #[link_name = "\u{1}aws_lc_0_40_0_BIO_should_read"]
6749    pub fn BIO_should_read(bio: *const BIO) -> ::std::os::raw::c_int;
6750}
6751extern "C" {
6752    #[link_name = "\u{1}aws_lc_0_40_0_BIO_should_write"]
6753    pub fn BIO_should_write(bio: *const BIO) -> ::std::os::raw::c_int;
6754}
6755extern "C" {
6756    #[link_name = "\u{1}aws_lc_0_40_0_BIO_should_retry"]
6757    pub fn BIO_should_retry(bio: *const BIO) -> ::std::os::raw::c_int;
6758}
6759extern "C" {
6760    #[link_name = "\u{1}aws_lc_0_40_0_BIO_should_io_special"]
6761    pub fn BIO_should_io_special(bio: *const BIO) -> ::std::os::raw::c_int;
6762}
6763extern "C" {
6764    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_retry_reason"]
6765    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::std::os::raw::c_int;
6766}
6767extern "C" {
6768    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_retry_reason"]
6769    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::std::os::raw::c_int);
6770}
6771extern "C" {
6772    #[link_name = "\u{1}aws_lc_0_40_0_BIO_clear_flags"]
6773    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::std::os::raw::c_int);
6774}
6775extern "C" {
6776    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_retry_read"]
6777    pub fn BIO_set_retry_read(bio: *mut BIO);
6778}
6779extern "C" {
6780    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_retry_write"]
6781    pub fn BIO_set_retry_write(bio: *mut BIO);
6782}
6783extern "C" {
6784    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_retry_flags"]
6785    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::std::os::raw::c_int;
6786}
6787extern "C" {
6788    #[link_name = "\u{1}aws_lc_0_40_0_BIO_clear_retry_flags"]
6789    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6790}
6791extern "C" {
6792    #[link_name = "\u{1}aws_lc_0_40_0_BIO_method_type"]
6793    pub fn BIO_method_type(bio: *const BIO) -> ::std::os::raw::c_int;
6794}
6795extern "C" {
6796    #[link_name = "\u{1}aws_lc_0_40_0_BIO_method_name"]
6797    pub fn BIO_method_name(b: *const BIO) -> *const ::std::os::raw::c_char;
6798}
6799pub type bio_info_cb = ::std::option::Option<
6800    unsafe extern "C" fn(
6801        b: *mut BIO,
6802        state: ::std::os::raw::c_int,
6803        res: ::std::os::raw::c_int,
6804    ) -> ::std::os::raw::c_long,
6805>;
6806pub type BIO_callback_fn_ex = ::std::option::Option<
6807    unsafe extern "C" fn(
6808        bio: *mut BIO,
6809        oper: ::std::os::raw::c_int,
6810        argp: *const ::std::os::raw::c_char,
6811        len: usize,
6812        argi: ::std::os::raw::c_int,
6813        argl: ::std::os::raw::c_long,
6814        bio_ret: ::std::os::raw::c_int,
6815        processed: *mut usize,
6816    ) -> ::std::os::raw::c_long,
6817>;
6818pub type BIO_callback_fn = ::std::option::Option<
6819    unsafe extern "C" fn(
6820        bio: *mut BIO,
6821        oper: ::std::os::raw::c_int,
6822        argp: *const ::std::os::raw::c_char,
6823        argi: ::std::os::raw::c_int,
6824        argl: ::std::os::raw::c_long,
6825        bio_ret: ::std::os::raw::c_long,
6826    ) -> ::std::os::raw::c_long,
6827>;
6828extern "C" {
6829    #[link_name = "\u{1}aws_lc_0_40_0_BIO_callback_ctrl"]
6830    pub fn BIO_callback_ctrl(
6831        bio: *mut BIO,
6832        cmd: ::std::os::raw::c_int,
6833        fp: bio_info_cb,
6834    ) -> ::std::os::raw::c_long;
6835}
6836extern "C" {
6837    #[link_name = "\u{1}aws_lc_0_40_0_BIO_pending"]
6838    pub fn BIO_pending(bio: *const BIO) -> usize;
6839}
6840extern "C" {
6841    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl_pending"]
6842    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6843}
6844extern "C" {
6845    #[link_name = "\u{1}aws_lc_0_40_0_BIO_wpending"]
6846    pub fn BIO_wpending(bio: *const BIO) -> usize;
6847}
6848extern "C" {
6849    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_close"]
6850    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::std::os::raw::c_int)
6851        -> ::std::os::raw::c_int;
6852}
6853extern "C" {
6854    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_close"]
6855    pub fn BIO_get_close(bio: *mut BIO) -> ::std::os::raw::c_int;
6856}
6857extern "C" {
6858    #[link_name = "\u{1}aws_lc_0_40_0_BIO_number_read"]
6859    pub fn BIO_number_read(bio: *const BIO) -> u64;
6860}
6861extern "C" {
6862    #[link_name = "\u{1}aws_lc_0_40_0_BIO_number_written"]
6863    pub fn BIO_number_written(bio: *const BIO) -> u64;
6864}
6865extern "C" {
6866    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_callback_ex"]
6867    pub fn BIO_set_callback_ex(bio: *mut BIO, callback_ex: BIO_callback_fn_ex);
6868}
6869extern "C" {
6870    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_callback"]
6871    pub fn BIO_set_callback(bio: *mut BIO, callback: BIO_callback_fn);
6872}
6873extern "C" {
6874    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_callback_arg"]
6875    pub fn BIO_set_callback_arg(bio: *mut BIO, arg: *mut ::std::os::raw::c_char);
6876}
6877extern "C" {
6878    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_callback_arg"]
6879    pub fn BIO_get_callback_arg(bio: *const BIO) -> *mut ::std::os::raw::c_char;
6880}
6881extern "C" {
6882    #[link_name = "\u{1}aws_lc_0_40_0_BIO_push"]
6883    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6884}
6885extern "C" {
6886    #[link_name = "\u{1}aws_lc_0_40_0_BIO_pop"]
6887    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6888}
6889extern "C" {
6890    #[link_name = "\u{1}aws_lc_0_40_0_BIO_next"]
6891    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6892}
6893extern "C" {
6894    #[link_name = "\u{1}aws_lc_0_40_0_BIO_free_all"]
6895    pub fn BIO_free_all(bio: *mut BIO);
6896}
6897extern "C" {
6898    #[link_name = "\u{1}aws_lc_0_40_0_BIO_find_type"]
6899    pub fn BIO_find_type(bio: *mut BIO, type_: ::std::os::raw::c_int) -> *mut BIO;
6900}
6901extern "C" {
6902    #[link_name = "\u{1}aws_lc_0_40_0_BIO_copy_next_retry"]
6903    pub fn BIO_copy_next_retry(bio: *mut BIO);
6904}
6905extern "C" {
6906    #[link_name = "\u{1}aws_lc_0_40_0_BIO_printf"]
6907    pub fn BIO_printf(
6908        bio: *mut BIO,
6909        format: *const ::std::os::raw::c_char,
6910        ...
6911    ) -> ::std::os::raw::c_int;
6912}
6913extern "C" {
6914    #[link_name = "\u{1}aws_lc_0_40_0_BIO_indent"]
6915    pub fn BIO_indent(
6916        bio: *mut BIO,
6917        indent: ::std::os::raw::c_uint,
6918        max_indent: ::std::os::raw::c_uint,
6919    ) -> ::std::os::raw::c_int;
6920}
6921extern "C" {
6922    #[link_name = "\u{1}aws_lc_0_40_0_BIO_hexdump"]
6923    pub fn BIO_hexdump(
6924        bio: *mut BIO,
6925        data: *const u8,
6926        len: usize,
6927        indent: ::std::os::raw::c_uint,
6928    ) -> ::std::os::raw::c_int;
6929}
6930extern "C" {
6931    #[link_name = "\u{1}aws_lc_0_40_0_BIO_dump"]
6932    pub fn BIO_dump(
6933        bio: *mut BIO,
6934        data: *const ::std::os::raw::c_void,
6935        len: ::std::os::raw::c_int,
6936    ) -> ::std::os::raw::c_int;
6937}
6938extern "C" {
6939    #[link_name = "\u{1}aws_lc_0_40_0_ERR_print_errors"]
6940    pub fn ERR_print_errors(bio: *mut BIO);
6941}
6942extern "C" {
6943    #[link_name = "\u{1}aws_lc_0_40_0_BIO_read_asn1"]
6944    pub fn BIO_read_asn1(
6945        bio: *mut BIO,
6946        out: *mut *mut u8,
6947        out_len: *mut usize,
6948        max_len: usize,
6949    ) -> ::std::os::raw::c_int;
6950}
6951extern "C" {
6952    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_mem"]
6953    pub fn BIO_s_mem() -> *const BIO_METHOD;
6954}
6955extern "C" {
6956    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_mem_buf"]
6957    pub fn BIO_new_mem_buf(buf: *const ::std::os::raw::c_void, len: ossl_ssize_t) -> *mut BIO;
6958}
6959extern "C" {
6960    #[link_name = "\u{1}aws_lc_0_40_0_BIO_mem_contents"]
6961    pub fn BIO_mem_contents(
6962        bio: *const BIO,
6963        out_contents: *mut *const u8,
6964        out_len: *mut usize,
6965    ) -> ::std::os::raw::c_int;
6966}
6967extern "C" {
6968    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_mem_ptr"]
6969    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::std::os::raw::c_int;
6970}
6971extern "C" {
6972    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_mem_buf"]
6973    pub fn BIO_set_mem_buf(
6974        bio: *mut BIO,
6975        b: *mut BUF_MEM,
6976        take_ownership: ::std::os::raw::c_int,
6977    ) -> ::std::os::raw::c_int;
6978}
6979extern "C" {
6980    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_mem_eof_return"]
6981    pub fn BIO_set_mem_eof_return(
6982        bio: *mut BIO,
6983        eof_value: ::std::os::raw::c_int,
6984    ) -> ::std::os::raw::c_int;
6985}
6986extern "C" {
6987    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_fd"]
6988    pub fn BIO_s_fd() -> *const BIO_METHOD;
6989}
6990extern "C" {
6991    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_fd"]
6992    pub fn BIO_new_fd(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
6993}
6994extern "C" {
6995    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_fd"]
6996    pub fn BIO_set_fd(
6997        bio: *mut BIO,
6998        fd: ::std::os::raw::c_int,
6999        close_flag: ::std::os::raw::c_int,
7000    ) -> ::std::os::raw::c_int;
7001}
7002extern "C" {
7003    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_fd"]
7004    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7005}
7006extern "C" {
7007    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_file"]
7008    pub fn BIO_s_file() -> *const BIO_METHOD;
7009}
7010extern "C" {
7011    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_file"]
7012    pub fn BIO_new_file(
7013        filename: *const ::std::os::raw::c_char,
7014        mode: *const ::std::os::raw::c_char,
7015    ) -> *mut BIO;
7016}
7017extern "C" {
7018    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_fp"]
7019    pub fn BIO_new_fp(stream: *mut FILE, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7020}
7021extern "C" {
7022    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_fp"]
7023    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::std::os::raw::c_int;
7024}
7025extern "C" {
7026    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_fp"]
7027    pub fn BIO_set_fp(
7028        bio: *mut BIO,
7029        file: *mut FILE,
7030        close_flag: ::std::os::raw::c_int,
7031    ) -> ::std::os::raw::c_int;
7032}
7033extern "C" {
7034    #[link_name = "\u{1}aws_lc_0_40_0_BIO_read_filename"]
7035    pub fn BIO_read_filename(
7036        bio: *mut BIO,
7037        filename: *const ::std::os::raw::c_char,
7038    ) -> ::std::os::raw::c_int;
7039}
7040extern "C" {
7041    #[link_name = "\u{1}aws_lc_0_40_0_BIO_write_filename"]
7042    pub fn BIO_write_filename(
7043        bio: *mut BIO,
7044        filename: *const ::std::os::raw::c_char,
7045    ) -> ::std::os::raw::c_int;
7046}
7047extern "C" {
7048    #[link_name = "\u{1}aws_lc_0_40_0_BIO_append_filename"]
7049    pub fn BIO_append_filename(
7050        bio: *mut BIO,
7051        filename: *const ::std::os::raw::c_char,
7052    ) -> ::std::os::raw::c_int;
7053}
7054extern "C" {
7055    #[link_name = "\u{1}aws_lc_0_40_0_BIO_rw_filename"]
7056    pub fn BIO_rw_filename(
7057        bio: *mut BIO,
7058        filename: *const ::std::os::raw::c_char,
7059    ) -> ::std::os::raw::c_int;
7060}
7061extern "C" {
7062    #[link_name = "\u{1}aws_lc_0_40_0_BIO_tell"]
7063    pub fn BIO_tell(bio: *mut BIO) -> ::std::os::raw::c_long;
7064}
7065extern "C" {
7066    #[link_name = "\u{1}aws_lc_0_40_0_BIO_seek"]
7067    pub fn BIO_seek(bio: *mut BIO, offset: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
7068}
7069extern "C" {
7070    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_socket"]
7071    pub fn BIO_s_socket() -> *const BIO_METHOD;
7072}
7073extern "C" {
7074    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_socket"]
7075    pub fn BIO_new_socket(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int)
7076        -> *mut BIO;
7077}
7078extern "C" {
7079    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_connect"]
7080    pub fn BIO_s_connect() -> *const BIO_METHOD;
7081}
7082extern "C" {
7083    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_connect"]
7084    pub fn BIO_new_connect(host_and_optional_port: *const ::std::os::raw::c_char) -> *mut BIO;
7085}
7086extern "C" {
7087    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_conn_hostname"]
7088    pub fn BIO_set_conn_hostname(
7089        bio: *mut BIO,
7090        host_and_optional_port: *const ::std::os::raw::c_char,
7091    ) -> ::std::os::raw::c_int;
7092}
7093extern "C" {
7094    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_conn_port"]
7095    pub fn BIO_set_conn_port(
7096        bio: *mut BIO,
7097        port_str: *const ::std::os::raw::c_char,
7098    ) -> ::std::os::raw::c_int;
7099}
7100extern "C" {
7101    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_conn_int_port"]
7102    pub fn BIO_set_conn_int_port(
7103        bio: *mut BIO,
7104        port: *const ::std::os::raw::c_int,
7105    ) -> ::std::os::raw::c_int;
7106}
7107extern "C" {
7108    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_nbio"]
7109    pub fn BIO_set_nbio(bio: *mut BIO, on: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7110}
7111extern "C" {
7112    #[link_name = "\u{1}aws_lc_0_40_0_BIO_do_connect"]
7113    pub fn BIO_do_connect(bio: *mut BIO) -> ::std::os::raw::c_int;
7114}
7115extern "C" {
7116    #[link_name = "\u{1}aws_lc_0_40_0_BIO_f_md"]
7117    pub fn BIO_f_md() -> *const BIO_METHOD;
7118}
7119extern "C" {
7120    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_md_ctx"]
7121    pub fn BIO_get_md_ctx(b: *mut BIO, ctx: *mut *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
7122}
7123extern "C" {
7124    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_md"]
7125    pub fn BIO_set_md(b: *mut BIO, md: *const EVP_MD) -> ::std::os::raw::c_int;
7126}
7127extern "C" {
7128    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_md"]
7129    pub fn BIO_get_md(b: *mut BIO, md: *mut *mut EVP_MD) -> ::std::os::raw::c_int;
7130}
7131#[repr(C)]
7132#[derive(Copy, Clone)]
7133pub struct bio_addr_st {
7134    _unused: [u8; 0],
7135}
7136pub type BIO_ADDR = bio_addr_st;
7137extern "C" {
7138    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_datagram"]
7139    pub fn BIO_s_datagram() -> *const BIO_METHOD;
7140}
7141extern "C" {
7142    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_dgram"]
7143    pub fn BIO_new_dgram(fd: ::std::os::raw::c_int, close_flag: ::std::os::raw::c_int) -> *mut BIO;
7144}
7145extern "C" {
7146    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl_dgram_connect"]
7147    pub fn BIO_ctrl_dgram_connect(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7148}
7149extern "C" {
7150    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl_set_connected"]
7151    pub fn BIO_ctrl_set_connected(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7152}
7153extern "C" {
7154    #[link_name = "\u{1}aws_lc_0_40_0_BIO_dgram_recv_timedout"]
7155    pub fn BIO_dgram_recv_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7156}
7157extern "C" {
7158    #[link_name = "\u{1}aws_lc_0_40_0_BIO_dgram_send_timedout"]
7159    pub fn BIO_dgram_send_timedout(bp: *mut BIO) -> ::std::os::raw::c_int;
7160}
7161extern "C" {
7162    #[link_name = "\u{1}aws_lc_0_40_0_BIO_dgram_get_peer"]
7163    pub fn BIO_dgram_get_peer(bp: *mut BIO, peer: *mut BIO_ADDR) -> ::std::os::raw::c_int;
7164}
7165extern "C" {
7166    #[link_name = "\u{1}aws_lc_0_40_0_BIO_dgram_set_peer"]
7167    pub fn BIO_dgram_set_peer(bp: *mut BIO, peer: *const BIO_ADDR) -> ::std::os::raw::c_int;
7168}
7169extern "C" {
7170    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_new"]
7171    pub fn BIO_ADDR_new() -> *mut BIO_ADDR;
7172}
7173extern "C" {
7174    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_copy"]
7175    pub fn BIO_ADDR_copy(dst: *mut BIO_ADDR, src: *const BIO_ADDR) -> ::std::os::raw::c_int;
7176}
7177extern "C" {
7178    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_dup"]
7179    pub fn BIO_ADDR_dup(ap: *const BIO_ADDR) -> *mut BIO_ADDR;
7180}
7181extern "C" {
7182    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_free"]
7183    pub fn BIO_ADDR_free(ap: *mut BIO_ADDR);
7184}
7185extern "C" {
7186    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_clear"]
7187    pub fn BIO_ADDR_clear(ap: *mut BIO_ADDR);
7188}
7189extern "C" {
7190    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_rawmake"]
7191    pub fn BIO_ADDR_rawmake(
7192        ap: *mut BIO_ADDR,
7193        family: ::std::os::raw::c_int,
7194        where_: *const ::std::os::raw::c_void,
7195        wherelen: usize,
7196        port: ::std::os::raw::c_ushort,
7197    ) -> ::std::os::raw::c_int;
7198}
7199extern "C" {
7200    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_family"]
7201    pub fn BIO_ADDR_family(ap: *const BIO_ADDR) -> ::std::os::raw::c_int;
7202}
7203extern "C" {
7204    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_rawaddress"]
7205    pub fn BIO_ADDR_rawaddress(
7206        ap: *const BIO_ADDR,
7207        p: *mut ::std::os::raw::c_void,
7208        l: *mut usize,
7209    ) -> ::std::os::raw::c_int;
7210}
7211extern "C" {
7212    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ADDR_rawport"]
7213    pub fn BIO_ADDR_rawport(ap: *const BIO_ADDR) -> ::std::os::raw::c_ushort;
7214}
7215extern "C" {
7216    #[link_name = "\u{1}aws_lc_0_40_0_BIO_new_bio_pair"]
7217    pub fn BIO_new_bio_pair(
7218        out1: *mut *mut BIO,
7219        writebuf1: usize,
7220        out2: *mut *mut BIO,
7221        writebuf2: usize,
7222    ) -> ::std::os::raw::c_int;
7223}
7224extern "C" {
7225    #[link_name = "\u{1}aws_lc_0_40_0_BIO_destroy_bio_pair"]
7226    pub fn BIO_destroy_bio_pair(b: *mut BIO) -> ::std::os::raw::c_int;
7227}
7228extern "C" {
7229    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl_get_read_request"]
7230    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
7231}
7232extern "C" {
7233    #[link_name = "\u{1}aws_lc_0_40_0_BIO_ctrl_get_write_guarantee"]
7234    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
7235}
7236extern "C" {
7237    #[link_name = "\u{1}aws_lc_0_40_0_BIO_shutdown_wr"]
7238    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::std::os::raw::c_int;
7239}
7240extern "C" {
7241    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_new_index"]
7242    pub fn BIO_get_new_index() -> ::std::os::raw::c_int;
7243}
7244extern "C" {
7245    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_new"]
7246    pub fn BIO_meth_new(
7247        type_: ::std::os::raw::c_int,
7248        name: *const ::std::os::raw::c_char,
7249    ) -> *mut BIO_METHOD;
7250}
7251extern "C" {
7252    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_free"]
7253    pub fn BIO_meth_free(method: *mut BIO_METHOD);
7254}
7255extern "C" {
7256    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_create"]
7257    pub fn BIO_meth_set_create(
7258        method: *mut BIO_METHOD,
7259        create: ::std::option::Option<
7260            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7261        >,
7262    ) -> ::std::os::raw::c_int;
7263}
7264extern "C" {
7265    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_create"]
7266    pub fn BIO_meth_get_create(
7267        method: *const BIO_METHOD,
7268    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7269}
7270extern "C" {
7271    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_destroy"]
7272    pub fn BIO_meth_set_destroy(
7273        method: *mut BIO_METHOD,
7274        destroy: ::std::option::Option<
7275            unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int,
7276        >,
7277    ) -> ::std::os::raw::c_int;
7278}
7279extern "C" {
7280    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_destroy"]
7281    pub fn BIO_meth_get_destroy(
7282        method: *const BIO_METHOD,
7283    ) -> ::std::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::std::os::raw::c_int>;
7284}
7285extern "C" {
7286    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_write"]
7287    pub fn BIO_meth_set_write(
7288        method: *mut BIO_METHOD,
7289        write: ::std::option::Option<
7290            unsafe extern "C" fn(
7291                arg1: *mut BIO,
7292                arg2: *const ::std::os::raw::c_char,
7293                arg3: ::std::os::raw::c_int,
7294            ) -> ::std::os::raw::c_int,
7295        >,
7296    ) -> ::std::os::raw::c_int;
7297}
7298extern "C" {
7299    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_read"]
7300    pub fn BIO_meth_set_read(
7301        method: *mut BIO_METHOD,
7302        read: ::std::option::Option<
7303            unsafe extern "C" fn(
7304                arg1: *mut BIO,
7305                arg2: *mut ::std::os::raw::c_char,
7306                arg3: ::std::os::raw::c_int,
7307            ) -> ::std::os::raw::c_int,
7308        >,
7309    ) -> ::std::os::raw::c_int;
7310}
7311extern "C" {
7312    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_gets"]
7313    pub fn BIO_meth_set_gets(
7314        method: *mut BIO_METHOD,
7315        gets: ::std::option::Option<
7316            unsafe extern "C" fn(
7317                arg1: *mut BIO,
7318                arg2: *mut ::std::os::raw::c_char,
7319                arg3: ::std::os::raw::c_int,
7320            ) -> ::std::os::raw::c_int,
7321        >,
7322    ) -> ::std::os::raw::c_int;
7323}
7324extern "C" {
7325    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_gets"]
7326    pub fn BIO_meth_get_gets(
7327        method: *const BIO_METHOD,
7328    ) -> ::std::option::Option<
7329        unsafe extern "C" fn(
7330            method: *mut BIO,
7331            arg1: *mut ::std::os::raw::c_char,
7332            arg2: ::std::os::raw::c_int,
7333        ) -> ::std::os::raw::c_int,
7334    >;
7335}
7336extern "C" {
7337    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_ctrl"]
7338    pub fn BIO_meth_set_ctrl(
7339        method: *mut BIO_METHOD,
7340        ctrl: ::std::option::Option<
7341            unsafe extern "C" fn(
7342                arg1: *mut BIO,
7343                arg2: ::std::os::raw::c_int,
7344                arg3: ::std::os::raw::c_long,
7345                arg4: *mut ::std::os::raw::c_void,
7346            ) -> ::std::os::raw::c_long,
7347        >,
7348    ) -> ::std::os::raw::c_int;
7349}
7350extern "C" {
7351    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_ctrl"]
7352    pub fn BIO_meth_get_ctrl(
7353        method: *const BIO_METHOD,
7354    ) -> ::std::option::Option<
7355        unsafe extern "C" fn(
7356            method: *mut BIO,
7357            arg1: ::std::os::raw::c_int,
7358            arg2: ::std::os::raw::c_long,
7359            arg3: *mut ::std::os::raw::c_void,
7360        ) -> ::std::os::raw::c_long,
7361    >;
7362}
7363extern "C" {
7364    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_callback_ctrl"]
7365    pub fn BIO_meth_set_callback_ctrl(
7366        method: *mut BIO_METHOD,
7367        callback_ctrl: ::std::option::Option<
7368            unsafe extern "C" fn(
7369                arg1: *mut BIO,
7370                arg2: ::std::os::raw::c_int,
7371                arg3: bio_info_cb,
7372            ) -> ::std::os::raw::c_long,
7373        >,
7374    ) -> ::std::os::raw::c_int;
7375}
7376extern "C" {
7377    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_callback_ctrl"]
7378    pub fn BIO_meth_get_callback_ctrl(
7379        method: *const BIO_METHOD,
7380    ) -> ::std::option::Option<
7381        unsafe extern "C" fn(
7382            method: *mut BIO,
7383            arg1: ::std::os::raw::c_int,
7384            arg2: bio_info_cb,
7385        ) -> ::std::os::raw::c_long,
7386    >;
7387}
7388extern "C" {
7389    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_data"]
7390    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::std::os::raw::c_void);
7391}
7392extern "C" {
7393    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_data"]
7394    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::std::os::raw::c_void;
7395}
7396extern "C" {
7397    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_init"]
7398    pub fn BIO_set_init(bio: *mut BIO, init: ::std::os::raw::c_int);
7399}
7400extern "C" {
7401    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_init"]
7402    pub fn BIO_get_init(bio: *mut BIO) -> ::std::os::raw::c_int;
7403}
7404extern "C" {
7405    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_ex_new_index"]
7406    pub fn BIO_get_ex_new_index(
7407        argl: ::std::os::raw::c_long,
7408        argp: *mut ::std::os::raw::c_void,
7409        unused: *mut CRYPTO_EX_unused,
7410        dup_unused: CRYPTO_EX_dup,
7411        free_func: CRYPTO_EX_free,
7412    ) -> ::std::os::raw::c_int;
7413}
7414extern "C" {
7415    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_ex_data"]
7416    pub fn BIO_set_ex_data(
7417        bio: *mut BIO,
7418        idx: ::std::os::raw::c_int,
7419        arg: *mut ::std::os::raw::c_void,
7420    ) -> ::std::os::raw::c_int;
7421}
7422extern "C" {
7423    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_ex_data"]
7424    pub fn BIO_get_ex_data(
7425        bio: *const BIO,
7426        idx: ::std::os::raw::c_int,
7427    ) -> *mut ::std::os::raw::c_void;
7428}
7429extern "C" {
7430    #[link_name = "\u{1}aws_lc_0_40_0_BIO_f_base64"]
7431    pub fn BIO_f_base64() -> *const BIO_METHOD;
7432}
7433extern "C" {
7434    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_retry_special"]
7435    pub fn BIO_set_retry_special(bio: *mut BIO);
7436}
7437extern "C" {
7438    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_shutdown"]
7439    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::std::os::raw::c_int);
7440}
7441extern "C" {
7442    #[link_name = "\u{1}aws_lc_0_40_0_BIO_get_shutdown"]
7443    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::std::os::raw::c_int;
7444}
7445extern "C" {
7446    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_set_puts"]
7447    pub fn BIO_meth_set_puts(
7448        method: *mut BIO_METHOD,
7449        puts: ::std::option::Option<
7450            unsafe extern "C" fn(
7451                arg1: *mut BIO,
7452                arg2: *const ::std::os::raw::c_char,
7453            ) -> ::std::os::raw::c_int,
7454        >,
7455    ) -> ::std::os::raw::c_int;
7456}
7457extern "C" {
7458    #[link_name = "\u{1}aws_lc_0_40_0_BIO_meth_get_puts"]
7459    pub fn BIO_meth_get_puts(
7460        method: *const BIO_METHOD,
7461    ) -> ::std::option::Option<
7462        unsafe extern "C" fn(
7463            method: *mut BIO,
7464            arg1: *const ::std::os::raw::c_char,
7465        ) -> ::std::os::raw::c_int,
7466    >;
7467}
7468extern "C" {
7469    #[link_name = "\u{1}aws_lc_0_40_0_BIO_s_secmem"]
7470    pub fn BIO_s_secmem() -> *const BIO_METHOD;
7471}
7472extern "C" {
7473    #[link_name = "\u{1}aws_lc_0_40_0_BIO_set_write_buffer_size"]
7474    pub fn BIO_set_write_buffer_size(
7475        bio: *mut BIO,
7476        buffer_size: ::std::os::raw::c_int,
7477    ) -> ::std::os::raw::c_int;
7478}
7479#[repr(C)]
7480#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7481pub struct bio_method_st {
7482    pub type_: ::std::os::raw::c_int,
7483    pub name: *const ::std::os::raw::c_char,
7484    pub bwrite: ::std::option::Option<
7485        unsafe extern "C" fn(
7486            arg1: *mut BIO,
7487            arg2: *const ::std::os::raw::c_char,
7488            arg3: ::std::os::raw::c_int,
7489        ) -> ::std::os::raw::c_int,
7490    >,
7491    pub bread: ::std::option::Option<
7492        unsafe extern "C" fn(
7493            arg1: *mut BIO,
7494            arg2: *mut ::std::os::raw::c_char,
7495            arg3: ::std::os::raw::c_int,
7496        ) -> ::std::os::raw::c_int,
7497    >,
7498    pub bputs: ::std::option::Option<
7499        unsafe extern "C" fn(
7500            arg1: *mut BIO,
7501            arg2: *const ::std::os::raw::c_char,
7502        ) -> ::std::os::raw::c_int,
7503    >,
7504    pub bgets: ::std::option::Option<
7505        unsafe extern "C" fn(
7506            arg1: *mut BIO,
7507            arg2: *mut ::std::os::raw::c_char,
7508            arg3: ::std::os::raw::c_int,
7509        ) -> ::std::os::raw::c_int,
7510    >,
7511    pub ctrl: ::std::option::Option<
7512        unsafe extern "C" fn(
7513            arg1: *mut BIO,
7514            arg2: ::std::os::raw::c_int,
7515            arg3: ::std::os::raw::c_long,
7516            arg4: *mut ::std::os::raw::c_void,
7517        ) -> ::std::os::raw::c_long,
7518    >,
7519    pub create:
7520        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7521    pub destroy:
7522        ::std::option::Option<unsafe extern "C" fn(arg1: *mut BIO) -> ::std::os::raw::c_int>,
7523    pub callback_ctrl: ::std::option::Option<
7524        unsafe extern "C" fn(
7525            arg1: *mut BIO,
7526            arg2: ::std::os::raw::c_int,
7527            arg3: bio_info_cb,
7528        ) -> ::std::os::raw::c_long,
7529    >,
7530}
7531#[test]
7532fn bindgen_test_layout_bio_method_st() {
7533    const UNINIT: ::std::mem::MaybeUninit<bio_method_st> = ::std::mem::MaybeUninit::uninit();
7534    let ptr = UNINIT.as_ptr();
7535    assert_eq!(
7536        ::std::mem::size_of::<bio_method_st>(),
7537        80usize,
7538        "Size of bio_method_st"
7539    );
7540    assert_eq!(
7541        ::std::mem::align_of::<bio_method_st>(),
7542        8usize,
7543        "Alignment of bio_method_st"
7544    );
7545    assert_eq!(
7546        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
7547        0usize,
7548        "Offset of field: bio_method_st::type_"
7549    );
7550    assert_eq!(
7551        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
7552        8usize,
7553        "Offset of field: bio_method_st::name"
7554    );
7555    assert_eq!(
7556        unsafe { ::std::ptr::addr_of!((*ptr).bwrite) as usize - ptr as usize },
7557        16usize,
7558        "Offset of field: bio_method_st::bwrite"
7559    );
7560    assert_eq!(
7561        unsafe { ::std::ptr::addr_of!((*ptr).bread) as usize - ptr as usize },
7562        24usize,
7563        "Offset of field: bio_method_st::bread"
7564    );
7565    assert_eq!(
7566        unsafe { ::std::ptr::addr_of!((*ptr).bputs) as usize - ptr as usize },
7567        32usize,
7568        "Offset of field: bio_method_st::bputs"
7569    );
7570    assert_eq!(
7571        unsafe { ::std::ptr::addr_of!((*ptr).bgets) as usize - ptr as usize },
7572        40usize,
7573        "Offset of field: bio_method_st::bgets"
7574    );
7575    assert_eq!(
7576        unsafe { ::std::ptr::addr_of!((*ptr).ctrl) as usize - ptr as usize },
7577        48usize,
7578        "Offset of field: bio_method_st::ctrl"
7579    );
7580    assert_eq!(
7581        unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize },
7582        56usize,
7583        "Offset of field: bio_method_st::create"
7584    );
7585    assert_eq!(
7586        unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize },
7587        64usize,
7588        "Offset of field: bio_method_st::destroy"
7589    );
7590    assert_eq!(
7591        unsafe { ::std::ptr::addr_of!((*ptr).callback_ctrl) as usize - ptr as usize },
7592        72usize,
7593        "Offset of field: bio_method_st::callback_ctrl"
7594    );
7595}
7596impl Default for bio_method_st {
7597    fn default() -> Self {
7598        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7599        unsafe {
7600            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7601            s.assume_init()
7602        }
7603    }
7604}
7605#[repr(C)]
7606#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7607pub struct bio_st {
7608    pub method: *const BIO_METHOD,
7609    pub ex_data: CRYPTO_EX_DATA,
7610    pub callback_ex: BIO_callback_fn_ex,
7611    pub callback: BIO_callback_fn,
7612    pub cb_arg: *mut ::std::os::raw::c_char,
7613    pub init: ::std::os::raw::c_int,
7614    pub shutdown: ::std::os::raw::c_int,
7615    pub flags: ::std::os::raw::c_int,
7616    pub retry_reason: ::std::os::raw::c_int,
7617    pub num: ::std::os::raw::c_int,
7618    pub references: CRYPTO_refcount_t,
7619    pub ptr: *mut ::std::os::raw::c_void,
7620    pub next_bio: *mut BIO,
7621    pub num_read: u64,
7622    pub num_write: u64,
7623}
7624#[test]
7625fn bindgen_test_layout_bio_st() {
7626    const UNINIT: ::std::mem::MaybeUninit<bio_st> = ::std::mem::MaybeUninit::uninit();
7627    let ptr = UNINIT.as_ptr();
7628    assert_eq!(::std::mem::size_of::<bio_st>(), 96usize, "Size of bio_st");
7629    assert_eq!(
7630        ::std::mem::align_of::<bio_st>(),
7631        8usize,
7632        "Alignment of bio_st"
7633    );
7634    assert_eq!(
7635        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
7636        0usize,
7637        "Offset of field: bio_st::method"
7638    );
7639    assert_eq!(
7640        unsafe { ::std::ptr::addr_of!((*ptr).ex_data) as usize - ptr as usize },
7641        8usize,
7642        "Offset of field: bio_st::ex_data"
7643    );
7644    assert_eq!(
7645        unsafe { ::std::ptr::addr_of!((*ptr).callback_ex) as usize - ptr as usize },
7646        16usize,
7647        "Offset of field: bio_st::callback_ex"
7648    );
7649    assert_eq!(
7650        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
7651        24usize,
7652        "Offset of field: bio_st::callback"
7653    );
7654    assert_eq!(
7655        unsafe { ::std::ptr::addr_of!((*ptr).cb_arg) as usize - ptr as usize },
7656        32usize,
7657        "Offset of field: bio_st::cb_arg"
7658    );
7659    assert_eq!(
7660        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
7661        40usize,
7662        "Offset of field: bio_st::init"
7663    );
7664    assert_eq!(
7665        unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize },
7666        44usize,
7667        "Offset of field: bio_st::shutdown"
7668    );
7669    assert_eq!(
7670        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
7671        48usize,
7672        "Offset of field: bio_st::flags"
7673    );
7674    assert_eq!(
7675        unsafe { ::std::ptr::addr_of!((*ptr).retry_reason) as usize - ptr as usize },
7676        52usize,
7677        "Offset of field: bio_st::retry_reason"
7678    );
7679    assert_eq!(
7680        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
7681        56usize,
7682        "Offset of field: bio_st::num"
7683    );
7684    assert_eq!(
7685        unsafe { ::std::ptr::addr_of!((*ptr).references) as usize - ptr as usize },
7686        60usize,
7687        "Offset of field: bio_st::references"
7688    );
7689    assert_eq!(
7690        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
7691        64usize,
7692        "Offset of field: bio_st::ptr"
7693    );
7694    assert_eq!(
7695        unsafe { ::std::ptr::addr_of!((*ptr).next_bio) as usize - ptr as usize },
7696        72usize,
7697        "Offset of field: bio_st::next_bio"
7698    );
7699    assert_eq!(
7700        unsafe { ::std::ptr::addr_of!((*ptr).num_read) as usize - ptr as usize },
7701        80usize,
7702        "Offset of field: bio_st::num_read"
7703    );
7704    assert_eq!(
7705        unsafe { ::std::ptr::addr_of!((*ptr).num_write) as usize - ptr as usize },
7706        88usize,
7707        "Offset of field: bio_st::num_write"
7708    );
7709}
7710impl Default for bio_st {
7711    fn default() -> Self {
7712        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7713        unsafe {
7714            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7715            s.assume_init()
7716        }
7717    }
7718}
7719pub type BN_ULONG = u64;
7720extern "C" {
7721    #[link_name = "\u{1}aws_lc_0_40_0_BN_new"]
7722    pub fn BN_new() -> *mut BIGNUM;
7723}
7724extern "C" {
7725    #[link_name = "\u{1}aws_lc_0_40_0_BN_init"]
7726    pub fn BN_init(bn: *mut BIGNUM);
7727}
7728extern "C" {
7729    #[link_name = "\u{1}aws_lc_0_40_0_BN_free"]
7730    pub fn BN_free(bn: *mut BIGNUM);
7731}
7732extern "C" {
7733    #[link_name = "\u{1}aws_lc_0_40_0_BN_clear_free"]
7734    pub fn BN_clear_free(bn: *mut BIGNUM);
7735}
7736extern "C" {
7737    #[link_name = "\u{1}aws_lc_0_40_0_BN_dup"]
7738    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7739}
7740extern "C" {
7741    #[link_name = "\u{1}aws_lc_0_40_0_BN_copy"]
7742    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7743}
7744extern "C" {
7745    #[link_name = "\u{1}aws_lc_0_40_0_BN_clear"]
7746    pub fn BN_clear(bn: *mut BIGNUM);
7747}
7748extern "C" {
7749    #[link_name = "\u{1}aws_lc_0_40_0_BN_value_one"]
7750    pub fn BN_value_one() -> *const BIGNUM;
7751}
7752extern "C" {
7753    #[link_name = "\u{1}aws_lc_0_40_0_BN_num_bits"]
7754    pub fn BN_num_bits(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7755}
7756extern "C" {
7757    #[link_name = "\u{1}aws_lc_0_40_0_BN_num_bytes"]
7758    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::std::os::raw::c_uint;
7759}
7760extern "C" {
7761    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_minimal_width"]
7762    pub fn BN_get_minimal_width(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7763}
7764extern "C" {
7765    #[link_name = "\u{1}aws_lc_0_40_0_BN_zero"]
7766    pub fn BN_zero(bn: *mut BIGNUM);
7767}
7768extern "C" {
7769    #[link_name = "\u{1}aws_lc_0_40_0_BN_one"]
7770    pub fn BN_one(bn: *mut BIGNUM) -> ::std::os::raw::c_int;
7771}
7772extern "C" {
7773    #[link_name = "\u{1}aws_lc_0_40_0_BN_set_word"]
7774    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::std::os::raw::c_int;
7775}
7776extern "C" {
7777    #[link_name = "\u{1}aws_lc_0_40_0_BN_set_u64"]
7778    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::std::os::raw::c_int;
7779}
7780extern "C" {
7781    #[link_name = "\u{1}aws_lc_0_40_0_BN_set_negative"]
7782    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::std::os::raw::c_int);
7783}
7784extern "C" {
7785    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_negative"]
7786    pub fn BN_is_negative(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7787}
7788extern "C" {
7789    #[link_name = "\u{1}aws_lc_0_40_0_BN_bin2bn"]
7790    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7791}
7792extern "C" {
7793    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2bin"]
7794    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7795}
7796extern "C" {
7797    #[link_name = "\u{1}aws_lc_0_40_0_BN_le2bn"]
7798    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7799}
7800extern "C" {
7801    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2le_padded"]
7802    pub fn BN_bn2le_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_40_0_BN_bn2bin_padded"]
7806    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::std::os::raw::c_int;
7807}
7808extern "C" {
7809    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2cbb_padded"]
7810    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM)
7811        -> ::std::os::raw::c_int;
7812}
7813extern "C" {
7814    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2hex"]
7815    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7816}
7817extern "C" {
7818    #[link_name = "\u{1}aws_lc_0_40_0_BN_hex2bn"]
7819    pub fn BN_hex2bn(
7820        outp: *mut *mut BIGNUM,
7821        in_: *const ::std::os::raw::c_char,
7822    ) -> ::std::os::raw::c_int;
7823}
7824extern "C" {
7825    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2dec"]
7826    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::std::os::raw::c_char;
7827}
7828extern "C" {
7829    #[link_name = "\u{1}aws_lc_0_40_0_BN_dec2bn"]
7830    pub fn BN_dec2bn(
7831        outp: *mut *mut BIGNUM,
7832        in_: *const ::std::os::raw::c_char,
7833    ) -> ::std::os::raw::c_int;
7834}
7835extern "C" {
7836    #[link_name = "\u{1}aws_lc_0_40_0_BN_asc2bn"]
7837    pub fn BN_asc2bn(
7838        outp: *mut *mut BIGNUM,
7839        in_: *const ::std::os::raw::c_char,
7840    ) -> ::std::os::raw::c_int;
7841}
7842extern "C" {
7843    #[link_name = "\u{1}aws_lc_0_40_0_BN_print"]
7844    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::std::os::raw::c_int;
7845}
7846extern "C" {
7847    #[link_name = "\u{1}aws_lc_0_40_0_BN_print_fp"]
7848    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::std::os::raw::c_int;
7849}
7850extern "C" {
7851    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_word"]
7852    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7853}
7854extern "C" {
7855    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_u64"]
7856    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::std::os::raw::c_int;
7857}
7858extern "C" {
7859    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_flags"]
7860    pub fn BN_get_flags(bn: *const BIGNUM, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7861}
7862extern "C" {
7863    #[link_name = "\u{1}aws_lc_0_40_0_BN_parse_asn1_unsigned"]
7864    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::std::os::raw::c_int;
7865}
7866extern "C" {
7867    #[link_name = "\u{1}aws_lc_0_40_0_BN_marshal_asn1"]
7868    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::std::os::raw::c_int;
7869}
7870extern "C" {
7871    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_new"]
7872    pub fn BN_CTX_new() -> *mut BN_CTX;
7873}
7874extern "C" {
7875    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_free"]
7876    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7877}
7878extern "C" {
7879    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_start"]
7880    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7881}
7882extern "C" {
7883    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_get"]
7884    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7885}
7886extern "C" {
7887    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_end"]
7888    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7889}
7890extern "C" {
7891    #[link_name = "\u{1}aws_lc_0_40_0_BN_add"]
7892    pub fn BN_add(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_40_0_BN_uadd"]
7896    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7897}
7898extern "C" {
7899    #[link_name = "\u{1}aws_lc_0_40_0_BN_add_word"]
7900    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7901}
7902extern "C" {
7903    #[link_name = "\u{1}aws_lc_0_40_0_BN_sub"]
7904    pub fn BN_sub(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_40_0_BN_usub"]
7908    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7909}
7910extern "C" {
7911    #[link_name = "\u{1}aws_lc_0_40_0_BN_sub_word"]
7912    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7913}
7914extern "C" {
7915    #[link_name = "\u{1}aws_lc_0_40_0_BN_mul"]
7916    pub fn BN_mul(
7917        r: *mut BIGNUM,
7918        a: *const BIGNUM,
7919        b: *const BIGNUM,
7920        ctx: *mut BN_CTX,
7921    ) -> ::std::os::raw::c_int;
7922}
7923extern "C" {
7924    #[link_name = "\u{1}aws_lc_0_40_0_BN_mul_word"]
7925    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7926}
7927extern "C" {
7928    #[link_name = "\u{1}aws_lc_0_40_0_BN_sqr"]
7929    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
7930}
7931extern "C" {
7932    #[link_name = "\u{1}aws_lc_0_40_0_BN_div"]
7933    pub fn BN_div(
7934        quotient: *mut BIGNUM,
7935        rem: *mut BIGNUM,
7936        numerator: *const BIGNUM,
7937        divisor: *const BIGNUM,
7938        ctx: *mut BN_CTX,
7939    ) -> ::std::os::raw::c_int;
7940}
7941extern "C" {
7942    #[link_name = "\u{1}aws_lc_0_40_0_BN_div_word"]
7943    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7944}
7945extern "C" {
7946    #[link_name = "\u{1}aws_lc_0_40_0_BN_sqrt"]
7947    pub fn BN_sqrt(
7948        out_sqrt: *mut BIGNUM,
7949        in_: *const BIGNUM,
7950        ctx: *mut BN_CTX,
7951    ) -> ::std::os::raw::c_int;
7952}
7953extern "C" {
7954    #[link_name = "\u{1}aws_lc_0_40_0_BN_cmp"]
7955    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7956}
7957extern "C" {
7958    #[link_name = "\u{1}aws_lc_0_40_0_BN_cmp_word"]
7959    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::std::os::raw::c_int;
7960}
7961extern "C" {
7962    #[link_name = "\u{1}aws_lc_0_40_0_BN_ucmp"]
7963    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7964}
7965extern "C" {
7966    #[link_name = "\u{1}aws_lc_0_40_0_BN_equal_consttime"]
7967    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::std::os::raw::c_int;
7968}
7969extern "C" {
7970    #[link_name = "\u{1}aws_lc_0_40_0_BN_abs_is_word"]
7971    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7972}
7973extern "C" {
7974    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_zero"]
7975    pub fn BN_is_zero(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7976}
7977extern "C" {
7978    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_one"]
7979    pub fn BN_is_one(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7980}
7981extern "C" {
7982    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_word"]
7983    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::std::os::raw::c_int;
7984}
7985extern "C" {
7986    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_odd"]
7987    pub fn BN_is_odd(bn: *const BIGNUM) -> ::std::os::raw::c_int;
7988}
7989extern "C" {
7990    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_pow2"]
7991    pub fn BN_is_pow2(a: *const BIGNUM) -> ::std::os::raw::c_int;
7992}
7993extern "C" {
7994    #[link_name = "\u{1}aws_lc_0_40_0_BN_lshift"]
7995    pub fn BN_lshift(
7996        r: *mut BIGNUM,
7997        a: *const BIGNUM,
7998        n: ::std::os::raw::c_int,
7999    ) -> ::std::os::raw::c_int;
8000}
8001extern "C" {
8002    #[link_name = "\u{1}aws_lc_0_40_0_BN_lshift1"]
8003    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8004}
8005extern "C" {
8006    #[link_name = "\u{1}aws_lc_0_40_0_BN_rshift"]
8007    pub fn BN_rshift(
8008        r: *mut BIGNUM,
8009        a: *const BIGNUM,
8010        n: ::std::os::raw::c_int,
8011    ) -> ::std::os::raw::c_int;
8012}
8013extern "C" {
8014    #[link_name = "\u{1}aws_lc_0_40_0_BN_rshift1"]
8015    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::std::os::raw::c_int;
8016}
8017extern "C" {
8018    #[link_name = "\u{1}aws_lc_0_40_0_BN_set_bit"]
8019    pub fn BN_set_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_40_0_BN_clear_bit"]
8023    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8024}
8025extern "C" {
8026    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_bit_set"]
8027    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8028}
8029extern "C" {
8030    #[link_name = "\u{1}aws_lc_0_40_0_BN_mask_bits"]
8031    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8032}
8033extern "C" {
8034    #[link_name = "\u{1}aws_lc_0_40_0_BN_count_low_zero_bits"]
8035    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::std::os::raw::c_int;
8036}
8037extern "C" {
8038    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_word"]
8039    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
8040}
8041extern "C" {
8042    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_pow2"]
8043    pub fn BN_mod_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_40_0_BN_nnmod_pow2"]
8047    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::std::os::raw::c_int;
8048}
8049extern "C" {
8050    #[link_name = "\u{1}aws_lc_0_40_0_BN_nnmod"]
8051    pub fn BN_nnmod(
8052        rem: *mut BIGNUM,
8053        numerator: *const BIGNUM,
8054        divisor: *const BIGNUM,
8055        ctx: *mut BN_CTX,
8056    ) -> ::std::os::raw::c_int;
8057}
8058extern "C" {
8059    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_add"]
8060    pub fn BN_mod_add(
8061        r: *mut BIGNUM,
8062        a: *const BIGNUM,
8063        b: *const BIGNUM,
8064        m: *const BIGNUM,
8065        ctx: *mut BN_CTX,
8066    ) -> ::std::os::raw::c_int;
8067}
8068extern "C" {
8069    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_add_quick"]
8070    pub fn BN_mod_add_quick(
8071        r: *mut BIGNUM,
8072        a: *const BIGNUM,
8073        b: *const BIGNUM,
8074        m: *const BIGNUM,
8075    ) -> ::std::os::raw::c_int;
8076}
8077extern "C" {
8078    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_sub"]
8079    pub fn BN_mod_sub(
8080        r: *mut BIGNUM,
8081        a: *const BIGNUM,
8082        b: *const BIGNUM,
8083        m: *const BIGNUM,
8084        ctx: *mut BN_CTX,
8085    ) -> ::std::os::raw::c_int;
8086}
8087extern "C" {
8088    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_sub_quick"]
8089    pub fn BN_mod_sub_quick(
8090        r: *mut BIGNUM,
8091        a: *const BIGNUM,
8092        b: *const BIGNUM,
8093        m: *const BIGNUM,
8094    ) -> ::std::os::raw::c_int;
8095}
8096extern "C" {
8097    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_mul"]
8098    pub fn BN_mod_mul(
8099        r: *mut BIGNUM,
8100        a: *const BIGNUM,
8101        b: *const BIGNUM,
8102        m: *const BIGNUM,
8103        ctx: *mut BN_CTX,
8104    ) -> ::std::os::raw::c_int;
8105}
8106extern "C" {
8107    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_sqr"]
8108    pub fn BN_mod_sqr(
8109        r: *mut BIGNUM,
8110        a: *const BIGNUM,
8111        m: *const BIGNUM,
8112        ctx: *mut BN_CTX,
8113    ) -> ::std::os::raw::c_int;
8114}
8115extern "C" {
8116    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_lshift"]
8117    pub fn BN_mod_lshift(
8118        r: *mut BIGNUM,
8119        a: *const BIGNUM,
8120        n: ::std::os::raw::c_int,
8121        m: *const BIGNUM,
8122        ctx: *mut BN_CTX,
8123    ) -> ::std::os::raw::c_int;
8124}
8125extern "C" {
8126    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_lshift_quick"]
8127    pub fn BN_mod_lshift_quick(
8128        r: *mut BIGNUM,
8129        a: *const BIGNUM,
8130        n: ::std::os::raw::c_int,
8131        m: *const BIGNUM,
8132    ) -> ::std::os::raw::c_int;
8133}
8134extern "C" {
8135    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_lshift1"]
8136    pub fn BN_mod_lshift1(
8137        r: *mut BIGNUM,
8138        a: *const BIGNUM,
8139        m: *const BIGNUM,
8140        ctx: *mut BN_CTX,
8141    ) -> ::std::os::raw::c_int;
8142}
8143extern "C" {
8144    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_lshift1_quick"]
8145    pub fn BN_mod_lshift1_quick(
8146        r: *mut BIGNUM,
8147        a: *const BIGNUM,
8148        m: *const BIGNUM,
8149    ) -> ::std::os::raw::c_int;
8150}
8151extern "C" {
8152    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_sqrt"]
8153    pub fn BN_mod_sqrt(
8154        in_: *mut BIGNUM,
8155        a: *const BIGNUM,
8156        p: *const BIGNUM,
8157        ctx: *mut BN_CTX,
8158    ) -> *mut BIGNUM;
8159}
8160extern "C" {
8161    #[link_name = "\u{1}aws_lc_0_40_0_BN_rand"]
8162    pub fn BN_rand(
8163        rnd: *mut BIGNUM,
8164        bits: ::std::os::raw::c_int,
8165        top: ::std::os::raw::c_int,
8166        bottom: ::std::os::raw::c_int,
8167    ) -> ::std::os::raw::c_int;
8168}
8169extern "C" {
8170    #[link_name = "\u{1}aws_lc_0_40_0_BN_pseudo_rand"]
8171    pub fn BN_pseudo_rand(
8172        rnd: *mut BIGNUM,
8173        bits: ::std::os::raw::c_int,
8174        top: ::std::os::raw::c_int,
8175        bottom: ::std::os::raw::c_int,
8176    ) -> ::std::os::raw::c_int;
8177}
8178extern "C" {
8179    #[link_name = "\u{1}aws_lc_0_40_0_BN_rand_range"]
8180    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8181}
8182extern "C" {
8183    #[link_name = "\u{1}aws_lc_0_40_0_BN_rand_range_ex"]
8184    pub fn BN_rand_range_ex(
8185        r: *mut BIGNUM,
8186        min_inclusive: BN_ULONG,
8187        max_exclusive: *const BIGNUM,
8188    ) -> ::std::os::raw::c_int;
8189}
8190extern "C" {
8191    #[link_name = "\u{1}aws_lc_0_40_0_BN_pseudo_rand_range"]
8192    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::std::os::raw::c_int;
8193}
8194#[repr(C)]
8195#[derive(Copy, Clone)]
8196pub struct bn_gencb_st {
8197    pub type_: u8,
8198    pub arg: *mut ::std::os::raw::c_void,
8199    pub callback: bn_gencb_st__bindgen_ty_1,
8200}
8201#[repr(C)]
8202#[derive(Copy, Clone)]
8203pub union bn_gencb_st__bindgen_ty_1 {
8204    pub new_style: ::std::option::Option<
8205        unsafe extern "C" fn(
8206            event: ::std::os::raw::c_int,
8207            n: ::std::os::raw::c_int,
8208            arg1: *mut bn_gencb_st,
8209        ) -> ::std::os::raw::c_int,
8210    >,
8211    pub old_style: ::std::option::Option<
8212        unsafe extern "C" fn(
8213            arg1: ::std::os::raw::c_int,
8214            arg2: ::std::os::raw::c_int,
8215            arg3: *mut ::std::os::raw::c_void,
8216        ),
8217    >,
8218}
8219#[test]
8220fn bindgen_test_layout_bn_gencb_st__bindgen_ty_1() {
8221    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st__bindgen_ty_1> =
8222        ::std::mem::MaybeUninit::uninit();
8223    let ptr = UNINIT.as_ptr();
8224    assert_eq!(
8225        ::std::mem::size_of::<bn_gencb_st__bindgen_ty_1>(),
8226        8usize,
8227        "Size of bn_gencb_st__bindgen_ty_1"
8228    );
8229    assert_eq!(
8230        ::std::mem::align_of::<bn_gencb_st__bindgen_ty_1>(),
8231        8usize,
8232        "Alignment of bn_gencb_st__bindgen_ty_1"
8233    );
8234    assert_eq!(
8235        unsafe { ::std::ptr::addr_of!((*ptr).new_style) as usize - ptr as usize },
8236        0usize,
8237        "Offset of field: bn_gencb_st__bindgen_ty_1::new_style"
8238    );
8239    assert_eq!(
8240        unsafe { ::std::ptr::addr_of!((*ptr).old_style) as usize - ptr as usize },
8241        0usize,
8242        "Offset of field: bn_gencb_st__bindgen_ty_1::old_style"
8243    );
8244}
8245impl Default for bn_gencb_st__bindgen_ty_1 {
8246    fn default() -> Self {
8247        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8248        unsafe {
8249            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8250            s.assume_init()
8251        }
8252    }
8253}
8254#[test]
8255fn bindgen_test_layout_bn_gencb_st() {
8256    const UNINIT: ::std::mem::MaybeUninit<bn_gencb_st> = ::std::mem::MaybeUninit::uninit();
8257    let ptr = UNINIT.as_ptr();
8258    assert_eq!(
8259        ::std::mem::size_of::<bn_gencb_st>(),
8260        24usize,
8261        "Size of bn_gencb_st"
8262    );
8263    assert_eq!(
8264        ::std::mem::align_of::<bn_gencb_st>(),
8265        8usize,
8266        "Alignment of bn_gencb_st"
8267    );
8268    assert_eq!(
8269        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8270        0usize,
8271        "Offset of field: bn_gencb_st::type_"
8272    );
8273    assert_eq!(
8274        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
8275        8usize,
8276        "Offset of field: bn_gencb_st::arg"
8277    );
8278    assert_eq!(
8279        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
8280        16usize,
8281        "Offset of field: bn_gencb_st::callback"
8282    );
8283}
8284impl Default for bn_gencb_st {
8285    fn default() -> Self {
8286        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8287        unsafe {
8288            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8289            s.assume_init()
8290        }
8291    }
8292}
8293extern "C" {
8294    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_new"]
8295    pub fn BN_GENCB_new() -> *mut BN_GENCB;
8296}
8297extern "C" {
8298    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_free"]
8299    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
8300}
8301extern "C" {
8302    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_set"]
8303    pub fn BN_GENCB_set(
8304        callback: *mut BN_GENCB,
8305        f: ::std::option::Option<
8306            unsafe extern "C" fn(
8307                event: ::std::os::raw::c_int,
8308                n: ::std::os::raw::c_int,
8309                arg1: *mut BN_GENCB,
8310            ) -> ::std::os::raw::c_int,
8311        >,
8312        arg: *mut ::std::os::raw::c_void,
8313    );
8314}
8315extern "C" {
8316    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_call"]
8317    pub fn BN_GENCB_call(
8318        callback: *mut BN_GENCB,
8319        event: ::std::os::raw::c_int,
8320        n: ::std::os::raw::c_int,
8321    ) -> ::std::os::raw::c_int;
8322}
8323extern "C" {
8324    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_get_arg"]
8325    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::std::os::raw::c_void;
8326}
8327extern "C" {
8328    #[link_name = "\u{1}aws_lc_0_40_0_BN_generate_prime_ex"]
8329    pub fn BN_generate_prime_ex(
8330        ret: *mut BIGNUM,
8331        bits: ::std::os::raw::c_int,
8332        safe: ::std::os::raw::c_int,
8333        add: *const BIGNUM,
8334        rem: *const BIGNUM,
8335        cb: *mut BN_GENCB,
8336    ) -> ::std::os::raw::c_int;
8337}
8338pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
8339pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
8340pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
8341pub type bn_primality_result_t = ::std::os::raw::c_uint;
8342extern "C" {
8343    #[link_name = "\u{1}aws_lc_0_40_0_BN_enhanced_miller_rabin_primality_test"]
8344    pub fn BN_enhanced_miller_rabin_primality_test(
8345        out_result: *mut bn_primality_result_t,
8346        w: *const BIGNUM,
8347        checks: ::std::os::raw::c_int,
8348        ctx: *mut BN_CTX,
8349        cb: *mut BN_GENCB,
8350    ) -> ::std::os::raw::c_int;
8351}
8352extern "C" {
8353    #[link_name = "\u{1}aws_lc_0_40_0_BN_primality_test"]
8354    pub fn BN_primality_test(
8355        is_probably_prime: *mut ::std::os::raw::c_int,
8356        candidate: *const BIGNUM,
8357        checks: ::std::os::raw::c_int,
8358        ctx: *mut BN_CTX,
8359        do_trial_division: ::std::os::raw::c_int,
8360        cb: *mut BN_GENCB,
8361    ) -> ::std::os::raw::c_int;
8362}
8363extern "C" {
8364    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_prime_fasttest_ex"]
8365    pub fn BN_is_prime_fasttest_ex(
8366        candidate: *const BIGNUM,
8367        checks: ::std::os::raw::c_int,
8368        ctx: *mut BN_CTX,
8369        do_trial_division: ::std::os::raw::c_int,
8370        cb: *mut BN_GENCB,
8371    ) -> ::std::os::raw::c_int;
8372}
8373extern "C" {
8374    #[link_name = "\u{1}aws_lc_0_40_0_BN_is_prime_ex"]
8375    pub fn BN_is_prime_ex(
8376        candidate: *const BIGNUM,
8377        checks: ::std::os::raw::c_int,
8378        ctx: *mut BN_CTX,
8379        cb: *mut BN_GENCB,
8380    ) -> ::std::os::raw::c_int;
8381}
8382extern "C" {
8383    #[link_name = "\u{1}aws_lc_0_40_0_BN_gcd"]
8384    pub fn BN_gcd(
8385        r: *mut BIGNUM,
8386        a: *const BIGNUM,
8387        b: *const BIGNUM,
8388        ctx: *mut BN_CTX,
8389    ) -> ::std::os::raw::c_int;
8390}
8391extern "C" {
8392    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_inverse"]
8393    pub fn BN_mod_inverse(
8394        out: *mut BIGNUM,
8395        a: *const BIGNUM,
8396        n: *const BIGNUM,
8397        ctx: *mut BN_CTX,
8398    ) -> *mut BIGNUM;
8399}
8400extern "C" {
8401    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_inverse_blinded"]
8402    pub fn BN_mod_inverse_blinded(
8403        out: *mut BIGNUM,
8404        out_no_inverse: *mut ::std::os::raw::c_int,
8405        a: *const BIGNUM,
8406        mont: *const BN_MONT_CTX,
8407        ctx: *mut BN_CTX,
8408    ) -> ::std::os::raw::c_int;
8409}
8410extern "C" {
8411    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_inverse_odd"]
8412    pub fn BN_mod_inverse_odd(
8413        out: *mut BIGNUM,
8414        out_no_inverse: *mut ::std::os::raw::c_int,
8415        a: *const BIGNUM,
8416        n: *const BIGNUM,
8417        ctx: *mut BN_CTX,
8418    ) -> ::std::os::raw::c_int;
8419}
8420extern "C" {
8421    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_new_for_modulus"]
8422    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8423}
8424extern "C" {
8425    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_new_consttime"]
8426    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
8427}
8428extern "C" {
8429    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_free"]
8430    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
8431}
8432extern "C" {
8433    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_copy"]
8434    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
8435}
8436extern "C" {
8437    #[link_name = "\u{1}aws_lc_0_40_0_BN_to_montgomery"]
8438    pub fn BN_to_montgomery(
8439        ret: *mut BIGNUM,
8440        a: *const BIGNUM,
8441        mont: *const BN_MONT_CTX,
8442        ctx: *mut BN_CTX,
8443    ) -> ::std::os::raw::c_int;
8444}
8445extern "C" {
8446    #[link_name = "\u{1}aws_lc_0_40_0_BN_from_montgomery"]
8447    pub fn BN_from_montgomery(
8448        ret: *mut BIGNUM,
8449        a: *const BIGNUM,
8450        mont: *const BN_MONT_CTX,
8451        ctx: *mut BN_CTX,
8452    ) -> ::std::os::raw::c_int;
8453}
8454extern "C" {
8455    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_mul_montgomery"]
8456    pub fn BN_mod_mul_montgomery(
8457        r: *mut BIGNUM,
8458        a: *const BIGNUM,
8459        b: *const BIGNUM,
8460        mont: *const BN_MONT_CTX,
8461        ctx: *mut BN_CTX,
8462    ) -> ::std::os::raw::c_int;
8463}
8464extern "C" {
8465    #[link_name = "\u{1}aws_lc_0_40_0_BN_exp"]
8466    pub fn BN_exp(
8467        r: *mut BIGNUM,
8468        a: *const BIGNUM,
8469        p: *const BIGNUM,
8470        ctx: *mut BN_CTX,
8471    ) -> ::std::os::raw::c_int;
8472}
8473extern "C" {
8474    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp"]
8475    pub fn BN_mod_exp(
8476        r: *mut BIGNUM,
8477        a: *const BIGNUM,
8478        p: *const BIGNUM,
8479        m: *const BIGNUM,
8480        ctx: *mut BN_CTX,
8481    ) -> ::std::os::raw::c_int;
8482}
8483extern "C" {
8484    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp_mont"]
8485    pub fn BN_mod_exp_mont(
8486        r: *mut BIGNUM,
8487        a: *const BIGNUM,
8488        p: *const BIGNUM,
8489        m: *const BIGNUM,
8490        ctx: *mut BN_CTX,
8491        mont: *const BN_MONT_CTX,
8492    ) -> ::std::os::raw::c_int;
8493}
8494extern "C" {
8495    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp_mont_consttime"]
8496    pub fn BN_mod_exp_mont_consttime(
8497        rr: *mut BIGNUM,
8498        a: *const BIGNUM,
8499        p: *const BIGNUM,
8500        m: *const BIGNUM,
8501        ctx: *mut BN_CTX,
8502        mont: *const BN_MONT_CTX,
8503    ) -> ::std::os::raw::c_int;
8504}
8505extern "C" {
8506    #[link_name = "\u{1}aws_lc_0_40_0_BN_GENCB_set_old"]
8507    pub fn BN_GENCB_set_old(
8508        callback: *mut BN_GENCB,
8509        f: ::std::option::Option<
8510            unsafe extern "C" fn(
8511                arg1: ::std::os::raw::c_int,
8512                arg2: ::std::os::raw::c_int,
8513                arg3: *mut ::std::os::raw::c_void,
8514            ),
8515        >,
8516        cb_arg: *mut ::std::os::raw::c_void,
8517    );
8518}
8519extern "C" {
8520    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2mpi"]
8521    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
8522}
8523extern "C" {
8524    #[link_name = "\u{1}aws_lc_0_40_0_BN_mpi2bn"]
8525    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
8526}
8527extern "C" {
8528    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp_mont_word"]
8529    pub fn BN_mod_exp_mont_word(
8530        r: *mut BIGNUM,
8531        a: BN_ULONG,
8532        p: *const BIGNUM,
8533        m: *const BIGNUM,
8534        ctx: *mut BN_CTX,
8535        mont: *const BN_MONT_CTX,
8536    ) -> ::std::os::raw::c_int;
8537}
8538extern "C" {
8539    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp2_mont"]
8540    pub fn BN_mod_exp2_mont(
8541        r: *mut BIGNUM,
8542        a1: *const BIGNUM,
8543        p1: *const BIGNUM,
8544        a2: *const BIGNUM,
8545        p2: *const BIGNUM,
8546        m: *const BIGNUM,
8547        ctx: *mut BN_CTX,
8548        mont: *const BN_MONT_CTX,
8549    ) -> ::std::os::raw::c_int;
8550}
8551extern "C" {
8552    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_new"]
8553    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
8554}
8555extern "C" {
8556    #[link_name = "\u{1}aws_lc_0_40_0_BN_MONT_CTX_set"]
8557    pub fn BN_MONT_CTX_set(
8558        mont: *mut BN_MONT_CTX,
8559        mod_: *const BIGNUM,
8560        ctx: *mut BN_CTX,
8561    ) -> ::std::os::raw::c_int;
8562}
8563extern "C" {
8564    #[link_name = "\u{1}aws_lc_0_40_0_BN_bn2binpad"]
8565    pub fn BN_bn2binpad(
8566        in_: *const BIGNUM,
8567        out: *mut u8,
8568        len: ::std::os::raw::c_int,
8569    ) -> ::std::os::raw::c_int;
8570}
8571extern "C" {
8572    #[link_name = "\u{1}aws_lc_0_40_0_BN_secure_new"]
8573    pub fn BN_secure_new() -> *mut BIGNUM;
8574}
8575extern "C" {
8576    #[link_name = "\u{1}aws_lc_0_40_0_BN_CTX_secure_new"]
8577    pub fn BN_CTX_secure_new() -> *mut BN_CTX;
8578}
8579extern "C" {
8580    #[link_name = "\u{1}aws_lc_0_40_0_BN_mod_exp_mont_consttime_x2"]
8581    pub fn BN_mod_exp_mont_consttime_x2(
8582        rr1: *mut BIGNUM,
8583        a1: *const BIGNUM,
8584        p1: *const BIGNUM,
8585        m1: *const BIGNUM,
8586        in_mont1: *const BN_MONT_CTX,
8587        rr2: *mut BIGNUM,
8588        a2: *const BIGNUM,
8589        p2: *const BIGNUM,
8590        m2: *const BIGNUM,
8591        in_mont2: *const BN_MONT_CTX,
8592        ctx: *mut BN_CTX,
8593    ) -> ::std::os::raw::c_int;
8594}
8595extern "C" {
8596    #[link_name = "\u{1}aws_lc_0_40_0_BN_set_flags"]
8597    pub fn BN_set_flags(b: *mut BIGNUM, n: ::std::os::raw::c_int);
8598}
8599#[repr(C)]
8600#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8601pub struct bignum_st {
8602    pub d: *mut BN_ULONG,
8603    pub width: ::std::os::raw::c_int,
8604    pub dmax: ::std::os::raw::c_int,
8605    pub neg: ::std::os::raw::c_int,
8606    pub flags: ::std::os::raw::c_int,
8607}
8608#[test]
8609fn bindgen_test_layout_bignum_st() {
8610    const UNINIT: ::std::mem::MaybeUninit<bignum_st> = ::std::mem::MaybeUninit::uninit();
8611    let ptr = UNINIT.as_ptr();
8612    assert_eq!(
8613        ::std::mem::size_of::<bignum_st>(),
8614        24usize,
8615        "Size of bignum_st"
8616    );
8617    assert_eq!(
8618        ::std::mem::align_of::<bignum_st>(),
8619        8usize,
8620        "Alignment of bignum_st"
8621    );
8622    assert_eq!(
8623        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
8624        0usize,
8625        "Offset of field: bignum_st::d"
8626    );
8627    assert_eq!(
8628        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
8629        8usize,
8630        "Offset of field: bignum_st::width"
8631    );
8632    assert_eq!(
8633        unsafe { ::std::ptr::addr_of!((*ptr).dmax) as usize - ptr as usize },
8634        12usize,
8635        "Offset of field: bignum_st::dmax"
8636    );
8637    assert_eq!(
8638        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
8639        16usize,
8640        "Offset of field: bignum_st::neg"
8641    );
8642    assert_eq!(
8643        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8644        20usize,
8645        "Offset of field: bignum_st::flags"
8646    );
8647}
8648impl Default for bignum_st {
8649    fn default() -> Self {
8650        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8651        unsafe {
8652            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8653            s.assume_init()
8654        }
8655    }
8656}
8657#[repr(C)]
8658#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8659pub struct bn_mont_ctx_st {
8660    pub RR: BIGNUM,
8661    pub N: BIGNUM,
8662    pub n0: [BN_ULONG; 2usize],
8663}
8664#[test]
8665fn bindgen_test_layout_bn_mont_ctx_st() {
8666    const UNINIT: ::std::mem::MaybeUninit<bn_mont_ctx_st> = ::std::mem::MaybeUninit::uninit();
8667    let ptr = UNINIT.as_ptr();
8668    assert_eq!(
8669        ::std::mem::size_of::<bn_mont_ctx_st>(),
8670        64usize,
8671        "Size of bn_mont_ctx_st"
8672    );
8673    assert_eq!(
8674        ::std::mem::align_of::<bn_mont_ctx_st>(),
8675        8usize,
8676        "Alignment of bn_mont_ctx_st"
8677    );
8678    assert_eq!(
8679        unsafe { ::std::ptr::addr_of!((*ptr).RR) as usize - ptr as usize },
8680        0usize,
8681        "Offset of field: bn_mont_ctx_st::RR"
8682    );
8683    assert_eq!(
8684        unsafe { ::std::ptr::addr_of!((*ptr).N) as usize - ptr as usize },
8685        24usize,
8686        "Offset of field: bn_mont_ctx_st::N"
8687    );
8688    assert_eq!(
8689        unsafe { ::std::ptr::addr_of!((*ptr).n0) as usize - ptr as usize },
8690        48usize,
8691        "Offset of field: bn_mont_ctx_st::n0"
8692    );
8693}
8694impl Default for bn_mont_ctx_st {
8695    fn default() -> Self {
8696        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8697        unsafe {
8698            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8699            s.assume_init()
8700        }
8701    }
8702}
8703extern "C" {
8704    #[link_name = "\u{1}aws_lc_0_40_0_BN_num_bits_word"]
8705    pub fn BN_num_bits_word(l: BN_ULONG) -> ::std::os::raw::c_uint;
8706}
8707extern "C" {
8708    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_tag2bit"]
8709    pub fn ASN1_tag2bit(tag: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
8710}
8711extern "C" {
8712    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_tag2str"]
8713    pub fn ASN1_tag2str(tag: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
8714}
8715pub type d2i_of_void = ::std::option::Option<
8716    unsafe extern "C" fn(
8717        arg1: *mut *mut ::std::os::raw::c_void,
8718        arg2: *mut *const ::std::os::raw::c_uchar,
8719        arg3: ::std::os::raw::c_long,
8720    ) -> *mut ::std::os::raw::c_void,
8721>;
8722pub type i2d_of_void = ::std::option::Option<
8723    unsafe extern "C" fn(
8724        arg1: *const ::std::os::raw::c_void,
8725        arg2: *mut *mut ::std::os::raw::c_uchar,
8726    ) -> ::std::os::raw::c_int,
8727>;
8728pub type ASN1_ITEM_EXP = ASN1_ITEM;
8729#[repr(C)]
8730#[derive(Debug, Copy, Clone)]
8731pub struct ASN1_VALUE_st {
8732    _unused: [u8; 0],
8733}
8734pub type ASN1_VALUE = ASN1_VALUE_st;
8735extern "C" {
8736    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_parse"]
8737    pub fn ASN1_parse(
8738        bp: *mut BIO,
8739        pp: *const ::std::os::raw::c_uchar,
8740        len: ::std::os::raw::c_long,
8741        indent: ::std::os::raw::c_int,
8742    ) -> ::std::os::raw::c_int;
8743}
8744extern "C" {
8745    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_new"]
8746    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
8747}
8748extern "C" {
8749    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_free"]
8750    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
8751}
8752extern "C" {
8753    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_d2i"]
8754    pub fn ASN1_item_d2i(
8755        out: *mut *mut ASN1_VALUE,
8756        inp: *mut *const ::std::os::raw::c_uchar,
8757        len: ::std::os::raw::c_long,
8758        it: *const ASN1_ITEM,
8759    ) -> *mut ASN1_VALUE;
8760}
8761extern "C" {
8762    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_i2d"]
8763    pub fn ASN1_item_i2d(
8764        val: *mut ASN1_VALUE,
8765        outp: *mut *mut ::std::os::raw::c_uchar,
8766        it: *const ASN1_ITEM,
8767    ) -> ::std::os::raw::c_int;
8768}
8769extern "C" {
8770    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_dup"]
8771    pub fn ASN1_dup(
8772        i2d: i2d_of_void,
8773        d2i: d2i_of_void,
8774        x: *mut ::std::os::raw::c_void,
8775    ) -> *mut ::std::os::raw::c_void;
8776}
8777extern "C" {
8778    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_dup"]
8779    pub fn ASN1_item_dup(
8780        it: *const ASN1_ITEM,
8781        x: *mut ::std::os::raw::c_void,
8782    ) -> *mut ::std::os::raw::c_void;
8783}
8784extern "C" {
8785    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_d2i_fp"]
8786    pub fn ASN1_item_d2i_fp(
8787        it: *const ASN1_ITEM,
8788        in_: *mut FILE,
8789        out: *mut ::std::os::raw::c_void,
8790    ) -> *mut ::std::os::raw::c_void;
8791}
8792extern "C" {
8793    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_d2i_bio"]
8794    pub fn ASN1_item_d2i_bio(
8795        it: *const ASN1_ITEM,
8796        in_: *mut BIO,
8797        out: *mut ::std::os::raw::c_void,
8798    ) -> *mut ::std::os::raw::c_void;
8799}
8800extern "C" {
8801    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_i2d_fp"]
8802    pub fn ASN1_item_i2d_fp(
8803        it: *const ASN1_ITEM,
8804        out: *mut FILE,
8805        in_: *mut ::std::os::raw::c_void,
8806    ) -> ::std::os::raw::c_int;
8807}
8808extern "C" {
8809    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_i2d_bio"]
8810    pub fn ASN1_item_i2d_bio(
8811        it: *const ASN1_ITEM,
8812        out: *mut BIO,
8813        in_: *mut ::std::os::raw::c_void,
8814    ) -> ::std::os::raw::c_int;
8815}
8816extern "C" {
8817    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_i2d_bio"]
8818    pub fn ASN1_i2d_bio(
8819        i2d: i2d_of_void,
8820        out: *mut BIO,
8821        in_: *mut ::std::os::raw::c_void,
8822    ) -> ::std::os::raw::c_int;
8823}
8824extern "C" {
8825    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_unpack"]
8826    pub fn ASN1_item_unpack(
8827        oct: *const ASN1_STRING,
8828        it: *const ASN1_ITEM,
8829    ) -> *mut ::std::os::raw::c_void;
8830}
8831extern "C" {
8832    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_pack"]
8833    pub fn ASN1_item_pack(
8834        obj: *mut ::std::os::raw::c_void,
8835        it: *const ASN1_ITEM,
8836        out: *mut *mut ASN1_STRING,
8837    ) -> *mut ASN1_STRING;
8838}
8839extern "C" {
8840    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_BOOLEAN"]
8841    pub fn d2i_ASN1_BOOLEAN(
8842        out: *mut ASN1_BOOLEAN,
8843        inp: *mut *const ::std::os::raw::c_uchar,
8844        len: ::std::os::raw::c_long,
8845    ) -> ASN1_BOOLEAN;
8846}
8847extern "C" {
8848    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_BOOLEAN"]
8849    pub fn i2d_ASN1_BOOLEAN(
8850        a: ASN1_BOOLEAN,
8851        outp: *mut *mut ::std::os::raw::c_uchar,
8852    ) -> ::std::os::raw::c_int;
8853}
8854extern "C" {
8855    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BOOLEAN_it"]
8856    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
8857}
8858extern "C" {
8859    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TBOOLEAN_it"]
8860    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
8861}
8862extern "C" {
8863    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_FBOOLEAN_it"]
8864    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
8865}
8866#[repr(C)]
8867#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8868pub struct asn1_string_st {
8869    pub length: ::std::os::raw::c_int,
8870    pub type_: ::std::os::raw::c_int,
8871    pub data: *mut ::std::os::raw::c_uchar,
8872    pub flags: ::std::os::raw::c_long,
8873}
8874#[test]
8875fn bindgen_test_layout_asn1_string_st() {
8876    const UNINIT: ::std::mem::MaybeUninit<asn1_string_st> = ::std::mem::MaybeUninit::uninit();
8877    let ptr = UNINIT.as_ptr();
8878    assert_eq!(
8879        ::std::mem::size_of::<asn1_string_st>(),
8880        24usize,
8881        "Size of asn1_string_st"
8882    );
8883    assert_eq!(
8884        ::std::mem::align_of::<asn1_string_st>(),
8885        8usize,
8886        "Alignment of asn1_string_st"
8887    );
8888    assert_eq!(
8889        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
8890        0usize,
8891        "Offset of field: asn1_string_st::length"
8892    );
8893    assert_eq!(
8894        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
8895        4usize,
8896        "Offset of field: asn1_string_st::type_"
8897    );
8898    assert_eq!(
8899        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
8900        8usize,
8901        "Offset of field: asn1_string_st::data"
8902    );
8903    assert_eq!(
8904        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8905        16usize,
8906        "Offset of field: asn1_string_st::flags"
8907    );
8908}
8909impl Default for asn1_string_st {
8910    fn default() -> Self {
8911        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8912        unsafe {
8913            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8914            s.assume_init()
8915        }
8916    }
8917}
8918extern "C" {
8919    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_type_new"]
8920    pub fn ASN1_STRING_type_new(type_: ::std::os::raw::c_int) -> *mut ASN1_STRING;
8921}
8922extern "C" {
8923    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_new"]
8924    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
8925}
8926extern "C" {
8927    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_free"]
8928    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
8929}
8930extern "C" {
8931    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_clear_free"]
8932    pub fn ASN1_STRING_clear_free(str_: *mut ASN1_STRING);
8933}
8934extern "C" {
8935    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_copy"]
8936    pub fn ASN1_STRING_copy(
8937        dst: *mut ASN1_STRING,
8938        str_: *const ASN1_STRING,
8939    ) -> ::std::os::raw::c_int;
8940}
8941extern "C" {
8942    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_dup"]
8943    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
8944}
8945extern "C" {
8946    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_type"]
8947    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8948}
8949extern "C" {
8950    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_get0_data"]
8951    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::std::os::raw::c_uchar;
8952}
8953extern "C" {
8954    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_data"]
8955    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::std::os::raw::c_uchar;
8956}
8957extern "C" {
8958    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_length"]
8959    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
8960}
8961extern "C" {
8962    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_cmp"]
8963    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::std::os::raw::c_int;
8964}
8965extern "C" {
8966    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_set"]
8967    pub fn ASN1_STRING_set(
8968        str_: *mut ASN1_STRING,
8969        data: *const ::std::os::raw::c_void,
8970        len: ossl_ssize_t,
8971    ) -> ::std::os::raw::c_int;
8972}
8973extern "C" {
8974    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_set0"]
8975    pub fn ASN1_STRING_set0(
8976        str_: *mut ASN1_STRING,
8977        data: *mut ::std::os::raw::c_void,
8978        len: ::std::os::raw::c_int,
8979    );
8980}
8981extern "C" {
8982    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BMPSTRING_new"]
8983    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
8984}
8985extern "C" {
8986    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALSTRING_new"]
8987    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
8988}
8989extern "C" {
8990    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_IA5STRING_new"]
8991    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
8992}
8993extern "C" {
8994    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_new"]
8995    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
8996}
8997extern "C" {
8998    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLESTRING_new"]
8999    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
9000}
9001extern "C" {
9002    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_T61STRING_new"]
9003    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
9004}
9005extern "C" {
9006    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UNIVERSALSTRING_new"]
9007    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
9008}
9009extern "C" {
9010    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTF8STRING_new"]
9011    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
9012}
9013extern "C" {
9014    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_VISIBLESTRING_new"]
9015    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
9016}
9017extern "C" {
9018    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BMPSTRING_free"]
9019    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
9020}
9021extern "C" {
9022    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALSTRING_free"]
9023    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
9024}
9025extern "C" {
9026    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_IA5STRING_free"]
9027    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
9028}
9029extern "C" {
9030    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_free"]
9031    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
9032}
9033extern "C" {
9034    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLESTRING_free"]
9035    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
9036}
9037extern "C" {
9038    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_T61STRING_free"]
9039    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
9040}
9041extern "C" {
9042    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UNIVERSALSTRING_free"]
9043    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
9044}
9045extern "C" {
9046    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTF8STRING_free"]
9047    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
9048}
9049extern "C" {
9050    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_VISIBLESTRING_free"]
9051    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
9052}
9053extern "C" {
9054    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_BMPSTRING"]
9055    pub fn d2i_ASN1_BMPSTRING(
9056        out: *mut *mut ASN1_BMPSTRING,
9057        inp: *mut *const u8,
9058        len: ::std::os::raw::c_long,
9059    ) -> *mut ASN1_BMPSTRING;
9060}
9061extern "C" {
9062    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_GENERALSTRING"]
9063    pub fn d2i_ASN1_GENERALSTRING(
9064        out: *mut *mut ASN1_GENERALSTRING,
9065        inp: *mut *const u8,
9066        len: ::std::os::raw::c_long,
9067    ) -> *mut ASN1_GENERALSTRING;
9068}
9069extern "C" {
9070    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_IA5STRING"]
9071    pub fn d2i_ASN1_IA5STRING(
9072        out: *mut *mut ASN1_IA5STRING,
9073        inp: *mut *const u8,
9074        len: ::std::os::raw::c_long,
9075    ) -> *mut ASN1_IA5STRING;
9076}
9077extern "C" {
9078    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_OCTET_STRING"]
9079    pub fn d2i_ASN1_OCTET_STRING(
9080        out: *mut *mut ASN1_OCTET_STRING,
9081        inp: *mut *const u8,
9082        len: ::std::os::raw::c_long,
9083    ) -> *mut ASN1_OCTET_STRING;
9084}
9085extern "C" {
9086    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_PRINTABLESTRING"]
9087    pub fn d2i_ASN1_PRINTABLESTRING(
9088        out: *mut *mut ASN1_PRINTABLESTRING,
9089        inp: *mut *const u8,
9090        len: ::std::os::raw::c_long,
9091    ) -> *mut ASN1_PRINTABLESTRING;
9092}
9093extern "C" {
9094    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_T61STRING"]
9095    pub fn d2i_ASN1_T61STRING(
9096        out: *mut *mut ASN1_T61STRING,
9097        inp: *mut *const u8,
9098        len: ::std::os::raw::c_long,
9099    ) -> *mut ASN1_T61STRING;
9100}
9101extern "C" {
9102    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_UNIVERSALSTRING"]
9103    pub fn d2i_ASN1_UNIVERSALSTRING(
9104        out: *mut *mut ASN1_UNIVERSALSTRING,
9105        inp: *mut *const u8,
9106        len: ::std::os::raw::c_long,
9107    ) -> *mut ASN1_UNIVERSALSTRING;
9108}
9109extern "C" {
9110    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_UTF8STRING"]
9111    pub fn d2i_ASN1_UTF8STRING(
9112        out: *mut *mut ASN1_UTF8STRING,
9113        inp: *mut *const u8,
9114        len: ::std::os::raw::c_long,
9115    ) -> *mut ASN1_UTF8STRING;
9116}
9117extern "C" {
9118    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_VISIBLESTRING"]
9119    pub fn d2i_ASN1_VISIBLESTRING(
9120        out: *mut *mut ASN1_VISIBLESTRING,
9121        inp: *mut *const u8,
9122        len: ::std::os::raw::c_long,
9123    ) -> *mut ASN1_VISIBLESTRING;
9124}
9125extern "C" {
9126    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_BMPSTRING"]
9127    pub fn i2d_ASN1_BMPSTRING(
9128        in_: *const ASN1_BMPSTRING,
9129        outp: *mut *mut u8,
9130    ) -> ::std::os::raw::c_int;
9131}
9132extern "C" {
9133    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_GENERALSTRING"]
9134    pub fn i2d_ASN1_GENERALSTRING(
9135        in_: *const ASN1_GENERALSTRING,
9136        outp: *mut *mut u8,
9137    ) -> ::std::os::raw::c_int;
9138}
9139extern "C" {
9140    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_IA5STRING"]
9141    pub fn i2d_ASN1_IA5STRING(
9142        in_: *const ASN1_IA5STRING,
9143        outp: *mut *mut u8,
9144    ) -> ::std::os::raw::c_int;
9145}
9146extern "C" {
9147    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_OCTET_STRING"]
9148    pub fn i2d_ASN1_OCTET_STRING(
9149        in_: *const ASN1_OCTET_STRING,
9150        outp: *mut *mut u8,
9151    ) -> ::std::os::raw::c_int;
9152}
9153extern "C" {
9154    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_PRINTABLESTRING"]
9155    pub fn i2d_ASN1_PRINTABLESTRING(
9156        in_: *const ASN1_PRINTABLESTRING,
9157        outp: *mut *mut u8,
9158    ) -> ::std::os::raw::c_int;
9159}
9160extern "C" {
9161    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_T61STRING"]
9162    pub fn i2d_ASN1_T61STRING(
9163        in_: *const ASN1_T61STRING,
9164        outp: *mut *mut u8,
9165    ) -> ::std::os::raw::c_int;
9166}
9167extern "C" {
9168    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_UNIVERSALSTRING"]
9169    pub fn i2d_ASN1_UNIVERSALSTRING(
9170        in_: *const ASN1_UNIVERSALSTRING,
9171        outp: *mut *mut u8,
9172    ) -> ::std::os::raw::c_int;
9173}
9174extern "C" {
9175    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_UTF8STRING"]
9176    pub fn i2d_ASN1_UTF8STRING(
9177        in_: *const ASN1_UTF8STRING,
9178        outp: *mut *mut u8,
9179    ) -> ::std::os::raw::c_int;
9180}
9181extern "C" {
9182    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_VISIBLESTRING"]
9183    pub fn i2d_ASN1_VISIBLESTRING(
9184        in_: *const ASN1_VISIBLESTRING,
9185        outp: *mut *mut u8,
9186    ) -> ::std::os::raw::c_int;
9187}
9188extern "C" {
9189    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BMPSTRING_it"]
9190    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
9191}
9192extern "C" {
9193    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALSTRING_it"]
9194    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
9195}
9196extern "C" {
9197    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_IA5STRING_it"]
9198    pub static ASN1_IA5STRING_it: ASN1_ITEM;
9199}
9200extern "C" {
9201    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_it"]
9202    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
9203}
9204extern "C" {
9205    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLESTRING_it"]
9206    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
9207}
9208extern "C" {
9209    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_T61STRING_it"]
9210    pub static ASN1_T61STRING_it: ASN1_ITEM;
9211}
9212extern "C" {
9213    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UNIVERSALSTRING_it"]
9214    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
9215}
9216extern "C" {
9217    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTF8STRING_it"]
9218    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
9219}
9220extern "C" {
9221    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_VISIBLESTRING_it"]
9222    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
9223}
9224extern "C" {
9225    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_dup"]
9226    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
9227}
9228extern "C" {
9229    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_cmp"]
9230    pub fn ASN1_OCTET_STRING_cmp(
9231        a: *const ASN1_OCTET_STRING,
9232        b: *const ASN1_OCTET_STRING,
9233    ) -> ::std::os::raw::c_int;
9234}
9235extern "C" {
9236    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OCTET_STRING_set"]
9237    pub fn ASN1_OCTET_STRING_set(
9238        str_: *mut ASN1_OCTET_STRING,
9239        data: *const ::std::os::raw::c_uchar,
9240        len: ::std::os::raw::c_int,
9241    ) -> ::std::os::raw::c_int;
9242}
9243extern "C" {
9244    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_to_UTF8"]
9245    pub fn ASN1_STRING_to_UTF8(
9246        out: *mut *mut ::std::os::raw::c_uchar,
9247        in_: *const ASN1_STRING,
9248    ) -> ::std::os::raw::c_int;
9249}
9250extern "C" {
9251    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_mbstring_copy"]
9252    pub fn ASN1_mbstring_copy(
9253        out: *mut *mut ASN1_STRING,
9254        in_: *const u8,
9255        len: ossl_ssize_t,
9256        inform: ::std::os::raw::c_int,
9257        mask: ::std::os::raw::c_ulong,
9258    ) -> ::std::os::raw::c_int;
9259}
9260extern "C" {
9261    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_mbstring_ncopy"]
9262    pub fn ASN1_mbstring_ncopy(
9263        out: *mut *mut ASN1_STRING,
9264        in_: *const u8,
9265        len: ossl_ssize_t,
9266        inform: ::std::os::raw::c_int,
9267        mask: ::std::os::raw::c_ulong,
9268        minsize: ossl_ssize_t,
9269        maxsize: ossl_ssize_t,
9270    ) -> ::std::os::raw::c_int;
9271}
9272extern "C" {
9273    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_set_by_NID"]
9274    pub fn ASN1_STRING_set_by_NID(
9275        out: *mut *mut ASN1_STRING,
9276        in_: *const ::std::os::raw::c_uchar,
9277        len: ossl_ssize_t,
9278        inform: ::std::os::raw::c_int,
9279        nid: ::std::os::raw::c_int,
9280    ) -> *mut ASN1_STRING;
9281}
9282extern "C" {
9283    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_TABLE_add"]
9284    pub fn ASN1_STRING_TABLE_add(
9285        nid: ::std::os::raw::c_int,
9286        minsize: ::std::os::raw::c_long,
9287        maxsize: ::std::os::raw::c_long,
9288        mask: ::std::os::raw::c_ulong,
9289        flags: ::std::os::raw::c_ulong,
9290    ) -> ::std::os::raw::c_int;
9291}
9292extern "C" {
9293    #[link_name = "\u{1}aws_lc_0_40_0_DIRECTORYSTRING_new"]
9294    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
9295}
9296extern "C" {
9297    #[link_name = "\u{1}aws_lc_0_40_0_DIRECTORYSTRING_free"]
9298    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
9299}
9300extern "C" {
9301    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DIRECTORYSTRING"]
9302    pub fn d2i_DIRECTORYSTRING(
9303        out: *mut *mut ASN1_STRING,
9304        inp: *mut *const u8,
9305        len: ::std::os::raw::c_long,
9306    ) -> *mut ASN1_STRING;
9307}
9308extern "C" {
9309    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DIRECTORYSTRING"]
9310    pub fn i2d_DIRECTORYSTRING(
9311        in_: *const ASN1_STRING,
9312        outp: *mut *mut u8,
9313    ) -> ::std::os::raw::c_int;
9314}
9315extern "C" {
9316    #[link_name = "\u{1}aws_lc_0_40_0_DIRECTORYSTRING_it"]
9317    pub static DIRECTORYSTRING_it: ASN1_ITEM;
9318}
9319extern "C" {
9320    #[link_name = "\u{1}aws_lc_0_40_0_DISPLAYTEXT_new"]
9321    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
9322}
9323extern "C" {
9324    #[link_name = "\u{1}aws_lc_0_40_0_DISPLAYTEXT_free"]
9325    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
9326}
9327extern "C" {
9328    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DISPLAYTEXT"]
9329    pub fn d2i_DISPLAYTEXT(
9330        out: *mut *mut ASN1_STRING,
9331        inp: *mut *const u8,
9332        len: ::std::os::raw::c_long,
9333    ) -> *mut ASN1_STRING;
9334}
9335extern "C" {
9336    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DISPLAYTEXT"]
9337    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9338}
9339extern "C" {
9340    #[link_name = "\u{1}aws_lc_0_40_0_DISPLAYTEXT_it"]
9341    pub static DISPLAYTEXT_it: ASN1_ITEM;
9342}
9343extern "C" {
9344    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_new"]
9345    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
9346}
9347extern "C" {
9348    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_free"]
9349    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
9350}
9351extern "C" {
9352    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_BIT_STRING"]
9353    pub fn d2i_ASN1_BIT_STRING(
9354        out: *mut *mut ASN1_BIT_STRING,
9355        inp: *mut *const u8,
9356        len: ::std::os::raw::c_long,
9357    ) -> *mut ASN1_BIT_STRING;
9358}
9359extern "C" {
9360    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_BIT_STRING"]
9361    pub fn i2d_ASN1_BIT_STRING(
9362        in_: *const ASN1_BIT_STRING,
9363        outp: *mut *mut u8,
9364    ) -> ::std::os::raw::c_int;
9365}
9366extern "C" {
9367    #[link_name = "\u{1}aws_lc_0_40_0_c2i_ASN1_BIT_STRING"]
9368    pub fn c2i_ASN1_BIT_STRING(
9369        out: *mut *mut ASN1_BIT_STRING,
9370        inp: *mut *const u8,
9371        len: ::std::os::raw::c_long,
9372    ) -> *mut ASN1_BIT_STRING;
9373}
9374extern "C" {
9375    #[link_name = "\u{1}aws_lc_0_40_0_i2c_ASN1_BIT_STRING"]
9376    pub fn i2c_ASN1_BIT_STRING(
9377        in_: *const ASN1_BIT_STRING,
9378        outp: *mut *mut u8,
9379    ) -> ::std::os::raw::c_int;
9380}
9381extern "C" {
9382    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_it"]
9383    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
9384}
9385extern "C" {
9386    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_num_bytes"]
9387    pub fn ASN1_BIT_STRING_num_bytes(
9388        str_: *const ASN1_BIT_STRING,
9389        out: *mut usize,
9390    ) -> ::std::os::raw::c_int;
9391}
9392extern "C" {
9393    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_set"]
9394    pub fn ASN1_BIT_STRING_set(
9395        str_: *mut ASN1_BIT_STRING,
9396        d: *const ::std::os::raw::c_uchar,
9397        length: ossl_ssize_t,
9398    ) -> ::std::os::raw::c_int;
9399}
9400extern "C" {
9401    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_set_bit"]
9402    pub fn ASN1_BIT_STRING_set_bit(
9403        str_: *mut ASN1_BIT_STRING,
9404        n: ::std::os::raw::c_int,
9405        value: ::std::os::raw::c_int,
9406    ) -> ::std::os::raw::c_int;
9407}
9408extern "C" {
9409    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_get_bit"]
9410    pub fn ASN1_BIT_STRING_get_bit(
9411        str_: *const ASN1_BIT_STRING,
9412        n: ::std::os::raw::c_int,
9413    ) -> ::std::os::raw::c_int;
9414}
9415extern "C" {
9416    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_BIT_STRING_check"]
9417    pub fn ASN1_BIT_STRING_check(
9418        str_: *const ASN1_BIT_STRING,
9419        flags: *const ::std::os::raw::c_uchar,
9420        flags_len: ::std::os::raw::c_int,
9421    ) -> ::std::os::raw::c_int;
9422}
9423#[repr(C)]
9424#[derive(Debug, Copy, Clone)]
9425pub struct stack_st_ASN1_INTEGER {
9426    _unused: [u8; 0],
9427}
9428pub type sk_ASN1_INTEGER_free_func =
9429    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
9430pub type sk_ASN1_INTEGER_copy_func =
9431    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
9432pub type sk_ASN1_INTEGER_cmp_func = ::std::option::Option<
9433    unsafe extern "C" fn(
9434        arg1: *const *const ASN1_INTEGER,
9435        arg2: *const *const ASN1_INTEGER,
9436    ) -> ::std::os::raw::c_int,
9437>;
9438pub type sk_ASN1_INTEGER_delete_if_func = ::std::option::Option<
9439    unsafe extern "C" fn(
9440        arg1: *mut ASN1_INTEGER,
9441        arg2: *mut ::std::os::raw::c_void,
9442    ) -> ::std::os::raw::c_int,
9443>;
9444extern "C" {
9445    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_new"]
9446    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
9447}
9448extern "C" {
9449    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_free"]
9450    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
9451}
9452extern "C" {
9453    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_dup"]
9454    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
9455}
9456extern "C" {
9457    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_INTEGER"]
9458    pub fn d2i_ASN1_INTEGER(
9459        out: *mut *mut ASN1_INTEGER,
9460        inp: *mut *const u8,
9461        len: ::std::os::raw::c_long,
9462    ) -> *mut ASN1_INTEGER;
9463}
9464extern "C" {
9465    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_INTEGER"]
9466    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9467}
9468extern "C" {
9469    #[link_name = "\u{1}aws_lc_0_40_0_c2i_ASN1_INTEGER"]
9470    pub fn c2i_ASN1_INTEGER(
9471        in_: *mut *mut ASN1_INTEGER,
9472        outp: *mut *const u8,
9473        len: ::std::os::raw::c_long,
9474    ) -> *mut ASN1_INTEGER;
9475}
9476extern "C" {
9477    #[link_name = "\u{1}aws_lc_0_40_0_i2c_ASN1_INTEGER"]
9478    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9479}
9480extern "C" {
9481    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_it"]
9482    pub static ASN1_INTEGER_it: ASN1_ITEM;
9483}
9484extern "C" {
9485    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_set_uint64"]
9486    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::std::os::raw::c_int;
9487}
9488extern "C" {
9489    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_set_int64"]
9490    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::std::os::raw::c_int;
9491}
9492extern "C" {
9493    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_get_uint64"]
9494    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9495}
9496extern "C" {
9497    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_get_int64"]
9498    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
9499}
9500extern "C" {
9501    #[link_name = "\u{1}aws_lc_0_40_0_BN_to_ASN1_INTEGER"]
9502    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
9503}
9504extern "C" {
9505    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_to_BN"]
9506    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
9507}
9508extern "C" {
9509    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_cmp"]
9510    pub fn ASN1_INTEGER_cmp(
9511        x: *const ASN1_INTEGER,
9512        y: *const ASN1_INTEGER,
9513    ) -> ::std::os::raw::c_int;
9514}
9515extern "C" {
9516    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_new"]
9517    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
9518}
9519extern "C" {
9520    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_free"]
9521    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
9522}
9523extern "C" {
9524    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_ENUMERATED"]
9525    pub fn d2i_ASN1_ENUMERATED(
9526        out: *mut *mut ASN1_ENUMERATED,
9527        inp: *mut *const u8,
9528        len: ::std::os::raw::c_long,
9529    ) -> *mut ASN1_ENUMERATED;
9530}
9531extern "C" {
9532    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_ENUMERATED"]
9533    pub fn i2d_ASN1_ENUMERATED(
9534        in_: *const ASN1_ENUMERATED,
9535        outp: *mut *mut u8,
9536    ) -> ::std::os::raw::c_int;
9537}
9538extern "C" {
9539    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_it"]
9540    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
9541}
9542extern "C" {
9543    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_set_uint64"]
9544    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::std::os::raw::c_int;
9545}
9546extern "C" {
9547    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_set_int64"]
9548    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::std::os::raw::c_int;
9549}
9550extern "C" {
9551    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_get_uint64"]
9552    pub fn ASN1_ENUMERATED_get_uint64(
9553        out: *mut u64,
9554        a: *const ASN1_ENUMERATED,
9555    ) -> ::std::os::raw::c_int;
9556}
9557extern "C" {
9558    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_get_int64"]
9559    pub fn ASN1_ENUMERATED_get_int64(
9560        out: *mut i64,
9561        a: *const ASN1_ENUMERATED,
9562    ) -> ::std::os::raw::c_int;
9563}
9564extern "C" {
9565    #[link_name = "\u{1}aws_lc_0_40_0_BN_to_ASN1_ENUMERATED"]
9566    pub fn BN_to_ASN1_ENUMERATED(
9567        bn: *const BIGNUM,
9568        ai: *mut ASN1_ENUMERATED,
9569    ) -> *mut ASN1_ENUMERATED;
9570}
9571extern "C" {
9572    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_to_BN"]
9573    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
9574}
9575extern "C" {
9576    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_new"]
9577    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
9578}
9579extern "C" {
9580    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_free"]
9581    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
9582}
9583extern "C" {
9584    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_UTCTIME"]
9585    pub fn d2i_ASN1_UTCTIME(
9586        out: *mut *mut ASN1_UTCTIME,
9587        inp: *mut *const u8,
9588        len: ::std::os::raw::c_long,
9589    ) -> *mut ASN1_UTCTIME;
9590}
9591extern "C" {
9592    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_UTCTIME"]
9593    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9594}
9595extern "C" {
9596    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_it"]
9597    pub static ASN1_UTCTIME_it: ASN1_ITEM;
9598}
9599extern "C" {
9600    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_check"]
9601    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
9602}
9603extern "C" {
9604    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_set"]
9605    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
9606}
9607extern "C" {
9608    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_adj"]
9609    pub fn ASN1_UTCTIME_adj(
9610        s: *mut ASN1_UTCTIME,
9611        posix_time: i64,
9612        offset_day: ::std::os::raw::c_int,
9613        offset_sec: ::std::os::raw::c_long,
9614    ) -> *mut ASN1_UTCTIME;
9615}
9616extern "C" {
9617    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_set_string"]
9618    pub fn ASN1_UTCTIME_set_string(
9619        s: *mut ASN1_UTCTIME,
9620        str_: *const ::std::os::raw::c_char,
9621    ) -> ::std::os::raw::c_int;
9622}
9623extern "C" {
9624    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_cmp_time_t"]
9625    pub fn ASN1_UTCTIME_cmp_time_t(s: *const ASN1_UTCTIME, t: time_t) -> ::std::os::raw::c_int;
9626}
9627extern "C" {
9628    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_new"]
9629    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
9630}
9631extern "C" {
9632    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_free"]
9633    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
9634}
9635extern "C" {
9636    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_GENERALIZEDTIME"]
9637    pub fn d2i_ASN1_GENERALIZEDTIME(
9638        out: *mut *mut ASN1_GENERALIZEDTIME,
9639        inp: *mut *const u8,
9640        len: ::std::os::raw::c_long,
9641    ) -> *mut ASN1_GENERALIZEDTIME;
9642}
9643extern "C" {
9644    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_GENERALIZEDTIME"]
9645    pub fn i2d_ASN1_GENERALIZEDTIME(
9646        in_: *const ASN1_GENERALIZEDTIME,
9647        outp: *mut *mut u8,
9648    ) -> ::std::os::raw::c_int;
9649}
9650extern "C" {
9651    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_it"]
9652    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
9653}
9654extern "C" {
9655    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_check"]
9656    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::std::os::raw::c_int;
9657}
9658extern "C" {
9659    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_set"]
9660    pub fn ASN1_GENERALIZEDTIME_set(
9661        s: *mut ASN1_GENERALIZEDTIME,
9662        posix_time: i64,
9663    ) -> *mut ASN1_GENERALIZEDTIME;
9664}
9665extern "C" {
9666    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_adj"]
9667    pub fn ASN1_GENERALIZEDTIME_adj(
9668        s: *mut ASN1_GENERALIZEDTIME,
9669        posix_time: i64,
9670        offset_day: ::std::os::raw::c_int,
9671        offset_sec: ::std::os::raw::c_long,
9672    ) -> *mut ASN1_GENERALIZEDTIME;
9673}
9674extern "C" {
9675    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_set_string"]
9676    pub fn ASN1_GENERALIZEDTIME_set_string(
9677        s: *mut ASN1_GENERALIZEDTIME,
9678        str_: *const ::std::os::raw::c_char,
9679    ) -> ::std::os::raw::c_int;
9680}
9681extern "C" {
9682    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_new"]
9683    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
9684}
9685extern "C" {
9686    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_free"]
9687    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
9688}
9689extern "C" {
9690    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_TIME"]
9691    pub fn d2i_ASN1_TIME(
9692        out: *mut *mut ASN1_TIME,
9693        inp: *mut *const u8,
9694        len: ::std::os::raw::c_long,
9695    ) -> *mut ASN1_TIME;
9696}
9697extern "C" {
9698    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_TIME"]
9699    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9700}
9701extern "C" {
9702    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_it"]
9703    pub static ASN1_TIME_it: ASN1_ITEM;
9704}
9705extern "C" {
9706    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_diff"]
9707    pub fn ASN1_TIME_diff(
9708        out_days: *mut ::std::os::raw::c_int,
9709        out_seconds: *mut ::std::os::raw::c_int,
9710        from: *const ASN1_TIME,
9711        to: *const ASN1_TIME,
9712    ) -> ::std::os::raw::c_int;
9713}
9714extern "C" {
9715    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_set_posix"]
9716    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
9717}
9718extern "C" {
9719    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_set"]
9720    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
9721}
9722extern "C" {
9723    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_adj"]
9724    pub fn ASN1_TIME_adj(
9725        s: *mut ASN1_TIME,
9726        posix_time: i64,
9727        offset_day: ::std::os::raw::c_int,
9728        offset_sec: ::std::os::raw::c_long,
9729    ) -> *mut ASN1_TIME;
9730}
9731extern "C" {
9732    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_check"]
9733    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::std::os::raw::c_int;
9734}
9735extern "C" {
9736    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_to_generalizedtime"]
9737    pub fn ASN1_TIME_to_generalizedtime(
9738        t: *const ASN1_TIME,
9739        out: *mut *mut ASN1_GENERALIZEDTIME,
9740    ) -> *mut ASN1_GENERALIZEDTIME;
9741}
9742extern "C" {
9743    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_set_string"]
9744    pub fn ASN1_TIME_set_string(
9745        s: *mut ASN1_TIME,
9746        str_: *const ::std::os::raw::c_char,
9747    ) -> ::std::os::raw::c_int;
9748}
9749extern "C" {
9750    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_to_tm"]
9751    pub fn ASN1_TIME_to_tm(t: *const ASN1_TIME, out: *mut tm) -> ::std::os::raw::c_int;
9752}
9753extern "C" {
9754    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_set_string_X509"]
9755    pub fn ASN1_TIME_set_string_X509(
9756        s: *mut ASN1_TIME,
9757        str_: *const ::std::os::raw::c_char,
9758    ) -> ::std::os::raw::c_int;
9759}
9760extern "C" {
9761    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_to_time_t"]
9762    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::std::os::raw::c_int;
9763}
9764extern "C" {
9765    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_to_posix"]
9766    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::std::os::raw::c_int;
9767}
9768extern "C" {
9769    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_NULL_new"]
9770    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
9771}
9772extern "C" {
9773    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_NULL_free"]
9774    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
9775}
9776extern "C" {
9777    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_NULL"]
9778    pub fn d2i_ASN1_NULL(
9779        out: *mut *mut ASN1_NULL,
9780        inp: *mut *const u8,
9781        len: ::std::os::raw::c_long,
9782    ) -> *mut ASN1_NULL;
9783}
9784extern "C" {
9785    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_NULL"]
9786    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9787}
9788extern "C" {
9789    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_NULL_it"]
9790    pub static ASN1_NULL_it: ASN1_ITEM;
9791}
9792#[repr(C)]
9793#[derive(Debug, Copy, Clone)]
9794pub struct stack_st_ASN1_OBJECT {
9795    _unused: [u8; 0],
9796}
9797pub type sk_ASN1_OBJECT_free_func =
9798    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
9799pub type sk_ASN1_OBJECT_copy_func =
9800    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
9801pub type sk_ASN1_OBJECT_cmp_func = ::std::option::Option<
9802    unsafe extern "C" fn(
9803        arg1: *const *const ASN1_OBJECT,
9804        arg2: *const *const ASN1_OBJECT,
9805    ) -> ::std::os::raw::c_int,
9806>;
9807pub type sk_ASN1_OBJECT_delete_if_func = ::std::option::Option<
9808    unsafe extern "C" fn(
9809        arg1: *mut ASN1_OBJECT,
9810        arg2: *mut ::std::os::raw::c_void,
9811    ) -> ::std::os::raw::c_int,
9812>;
9813extern "C" {
9814    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OBJECT_create"]
9815    pub fn ASN1_OBJECT_create(
9816        nid: ::std::os::raw::c_int,
9817        data: *const u8,
9818        len: usize,
9819        sn: *const ::std::os::raw::c_char,
9820        ln: *const ::std::os::raw::c_char,
9821    ) -> *mut ASN1_OBJECT;
9822}
9823extern "C" {
9824    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OBJECT_free"]
9825    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
9826}
9827extern "C" {
9828    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_OBJECT"]
9829    pub fn d2i_ASN1_OBJECT(
9830        out: *mut *mut ASN1_OBJECT,
9831        inp: *mut *const u8,
9832        len: ::std::os::raw::c_long,
9833    ) -> *mut ASN1_OBJECT;
9834}
9835extern "C" {
9836    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_OBJECT"]
9837    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::std::os::raw::c_int;
9838}
9839extern "C" {
9840    #[link_name = "\u{1}aws_lc_0_40_0_c2i_ASN1_OBJECT"]
9841    pub fn c2i_ASN1_OBJECT(
9842        out: *mut *mut ASN1_OBJECT,
9843        inp: *mut *const u8,
9844        len: ::std::os::raw::c_long,
9845    ) -> *mut ASN1_OBJECT;
9846}
9847extern "C" {
9848    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_OBJECT_it"]
9849    pub static ASN1_OBJECT_it: ASN1_ITEM;
9850}
9851#[repr(C)]
9852#[derive(Copy, Clone)]
9853pub struct asn1_type_st {
9854    pub type_: ::std::os::raw::c_int,
9855    pub value: asn1_type_st__bindgen_ty_1,
9856}
9857#[repr(C)]
9858#[derive(Copy, Clone)]
9859pub union asn1_type_st__bindgen_ty_1 {
9860    pub ptr: *mut ::std::os::raw::c_char,
9861    pub boolean: ASN1_BOOLEAN,
9862    pub asn1_string: *mut ASN1_STRING,
9863    pub object: *mut ASN1_OBJECT,
9864    pub integer: *mut ASN1_INTEGER,
9865    pub enumerated: *mut ASN1_ENUMERATED,
9866    pub bit_string: *mut ASN1_BIT_STRING,
9867    pub octet_string: *mut ASN1_OCTET_STRING,
9868    pub printablestring: *mut ASN1_PRINTABLESTRING,
9869    pub t61string: *mut ASN1_T61STRING,
9870    pub ia5string: *mut ASN1_IA5STRING,
9871    pub generalstring: *mut ASN1_GENERALSTRING,
9872    pub bmpstring: *mut ASN1_BMPSTRING,
9873    pub universalstring: *mut ASN1_UNIVERSALSTRING,
9874    pub utctime: *mut ASN1_UTCTIME,
9875    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
9876    pub visiblestring: *mut ASN1_VISIBLESTRING,
9877    pub utf8string: *mut ASN1_UTF8STRING,
9878    pub set: *mut ASN1_STRING,
9879    pub sequence: *mut ASN1_STRING,
9880    pub asn1_value: *mut ASN1_VALUE,
9881}
9882#[test]
9883fn bindgen_test_layout_asn1_type_st__bindgen_ty_1() {
9884    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st__bindgen_ty_1> =
9885        ::std::mem::MaybeUninit::uninit();
9886    let ptr = UNINIT.as_ptr();
9887    assert_eq!(
9888        ::std::mem::size_of::<asn1_type_st__bindgen_ty_1>(),
9889        8usize,
9890        "Size of asn1_type_st__bindgen_ty_1"
9891    );
9892    assert_eq!(
9893        ::std::mem::align_of::<asn1_type_st__bindgen_ty_1>(),
9894        8usize,
9895        "Alignment of asn1_type_st__bindgen_ty_1"
9896    );
9897    assert_eq!(
9898        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
9899        0usize,
9900        "Offset of field: asn1_type_st__bindgen_ty_1::ptr"
9901    );
9902    assert_eq!(
9903        unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize },
9904        0usize,
9905        "Offset of field: asn1_type_st__bindgen_ty_1::boolean"
9906    );
9907    assert_eq!(
9908        unsafe { ::std::ptr::addr_of!((*ptr).asn1_string) as usize - ptr as usize },
9909        0usize,
9910        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_string"
9911    );
9912    assert_eq!(
9913        unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize },
9914        0usize,
9915        "Offset of field: asn1_type_st__bindgen_ty_1::object"
9916    );
9917    assert_eq!(
9918        unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize },
9919        0usize,
9920        "Offset of field: asn1_type_st__bindgen_ty_1::integer"
9921    );
9922    assert_eq!(
9923        unsafe { ::std::ptr::addr_of!((*ptr).enumerated) as usize - ptr as usize },
9924        0usize,
9925        "Offset of field: asn1_type_st__bindgen_ty_1::enumerated"
9926    );
9927    assert_eq!(
9928        unsafe { ::std::ptr::addr_of!((*ptr).bit_string) as usize - ptr as usize },
9929        0usize,
9930        "Offset of field: asn1_type_st__bindgen_ty_1::bit_string"
9931    );
9932    assert_eq!(
9933        unsafe { ::std::ptr::addr_of!((*ptr).octet_string) as usize - ptr as usize },
9934        0usize,
9935        "Offset of field: asn1_type_st__bindgen_ty_1::octet_string"
9936    );
9937    assert_eq!(
9938        unsafe { ::std::ptr::addr_of!((*ptr).printablestring) as usize - ptr as usize },
9939        0usize,
9940        "Offset of field: asn1_type_st__bindgen_ty_1::printablestring"
9941    );
9942    assert_eq!(
9943        unsafe { ::std::ptr::addr_of!((*ptr).t61string) as usize - ptr as usize },
9944        0usize,
9945        "Offset of field: asn1_type_st__bindgen_ty_1::t61string"
9946    );
9947    assert_eq!(
9948        unsafe { ::std::ptr::addr_of!((*ptr).ia5string) as usize - ptr as usize },
9949        0usize,
9950        "Offset of field: asn1_type_st__bindgen_ty_1::ia5string"
9951    );
9952    assert_eq!(
9953        unsafe { ::std::ptr::addr_of!((*ptr).generalstring) as usize - ptr as usize },
9954        0usize,
9955        "Offset of field: asn1_type_st__bindgen_ty_1::generalstring"
9956    );
9957    assert_eq!(
9958        unsafe { ::std::ptr::addr_of!((*ptr).bmpstring) as usize - ptr as usize },
9959        0usize,
9960        "Offset of field: asn1_type_st__bindgen_ty_1::bmpstring"
9961    );
9962    assert_eq!(
9963        unsafe { ::std::ptr::addr_of!((*ptr).universalstring) as usize - ptr as usize },
9964        0usize,
9965        "Offset of field: asn1_type_st__bindgen_ty_1::universalstring"
9966    );
9967    assert_eq!(
9968        unsafe { ::std::ptr::addr_of!((*ptr).utctime) as usize - ptr as usize },
9969        0usize,
9970        "Offset of field: asn1_type_st__bindgen_ty_1::utctime"
9971    );
9972    assert_eq!(
9973        unsafe { ::std::ptr::addr_of!((*ptr).generalizedtime) as usize - ptr as usize },
9974        0usize,
9975        "Offset of field: asn1_type_st__bindgen_ty_1::generalizedtime"
9976    );
9977    assert_eq!(
9978        unsafe { ::std::ptr::addr_of!((*ptr).visiblestring) as usize - ptr as usize },
9979        0usize,
9980        "Offset of field: asn1_type_st__bindgen_ty_1::visiblestring"
9981    );
9982    assert_eq!(
9983        unsafe { ::std::ptr::addr_of!((*ptr).utf8string) as usize - ptr as usize },
9984        0usize,
9985        "Offset of field: asn1_type_st__bindgen_ty_1::utf8string"
9986    );
9987    assert_eq!(
9988        unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize },
9989        0usize,
9990        "Offset of field: asn1_type_st__bindgen_ty_1::set"
9991    );
9992    assert_eq!(
9993        unsafe { ::std::ptr::addr_of!((*ptr).sequence) as usize - ptr as usize },
9994        0usize,
9995        "Offset of field: asn1_type_st__bindgen_ty_1::sequence"
9996    );
9997    assert_eq!(
9998        unsafe { ::std::ptr::addr_of!((*ptr).asn1_value) as usize - ptr as usize },
9999        0usize,
10000        "Offset of field: asn1_type_st__bindgen_ty_1::asn1_value"
10001    );
10002}
10003impl Default for asn1_type_st__bindgen_ty_1 {
10004    fn default() -> Self {
10005        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10006        unsafe {
10007            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10008            s.assume_init()
10009        }
10010    }
10011}
10012#[test]
10013fn bindgen_test_layout_asn1_type_st() {
10014    const UNINIT: ::std::mem::MaybeUninit<asn1_type_st> = ::std::mem::MaybeUninit::uninit();
10015    let ptr = UNINIT.as_ptr();
10016    assert_eq!(
10017        ::std::mem::size_of::<asn1_type_st>(),
10018        16usize,
10019        "Size of asn1_type_st"
10020    );
10021    assert_eq!(
10022        ::std::mem::align_of::<asn1_type_st>(),
10023        8usize,
10024        "Alignment of asn1_type_st"
10025    );
10026    assert_eq!(
10027        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
10028        0usize,
10029        "Offset of field: asn1_type_st::type_"
10030    );
10031    assert_eq!(
10032        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10033        8usize,
10034        "Offset of field: asn1_type_st::value"
10035    );
10036}
10037impl Default for asn1_type_st {
10038    fn default() -> Self {
10039        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10040        unsafe {
10041            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10042            s.assume_init()
10043        }
10044    }
10045}
10046#[repr(C)]
10047#[derive(Debug, Copy, Clone)]
10048pub struct stack_st_ASN1_TYPE {
10049    _unused: [u8; 0],
10050}
10051pub type sk_ASN1_TYPE_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
10052pub type sk_ASN1_TYPE_copy_func =
10053    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
10054pub type sk_ASN1_TYPE_cmp_func = ::std::option::Option<
10055    unsafe extern "C" fn(
10056        arg1: *const *const ASN1_TYPE,
10057        arg2: *const *const ASN1_TYPE,
10058    ) -> ::std::os::raw::c_int,
10059>;
10060pub type sk_ASN1_TYPE_delete_if_func = ::std::option::Option<
10061    unsafe extern "C" fn(
10062        arg1: *mut ASN1_TYPE,
10063        arg2: *mut ::std::os::raw::c_void,
10064    ) -> ::std::os::raw::c_int,
10065>;
10066extern "C" {
10067    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_new"]
10068    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
10069}
10070extern "C" {
10071    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_free"]
10072    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
10073}
10074extern "C" {
10075    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_TYPE"]
10076    pub fn d2i_ASN1_TYPE(
10077        out: *mut *mut ASN1_TYPE,
10078        inp: *mut *const u8,
10079        len: ::std::os::raw::c_long,
10080    ) -> *mut ASN1_TYPE;
10081}
10082extern "C" {
10083    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_TYPE"]
10084    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::std::os::raw::c_int;
10085}
10086extern "C" {
10087    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ANY_it"]
10088    pub static ASN1_ANY_it: ASN1_ITEM;
10089}
10090extern "C" {
10091    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_get"]
10092    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10093}
10094extern "C" {
10095    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_set"]
10096    pub fn ASN1_TYPE_set(
10097        a: *mut ASN1_TYPE,
10098        type_: ::std::os::raw::c_int,
10099        value: *mut ::std::os::raw::c_void,
10100    );
10101}
10102extern "C" {
10103    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_set1"]
10104    pub fn ASN1_TYPE_set1(
10105        a: *mut ASN1_TYPE,
10106        type_: ::std::os::raw::c_int,
10107        value: *const ::std::os::raw::c_void,
10108    ) -> ::std::os::raw::c_int;
10109}
10110extern "C" {
10111    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TYPE_cmp"]
10112    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::std::os::raw::c_int;
10113}
10114pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
10115extern "C" {
10116    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_SEQUENCE_ANY"]
10117    pub fn d2i_ASN1_SEQUENCE_ANY(
10118        out: *mut *mut ASN1_SEQUENCE_ANY,
10119        inp: *mut *const u8,
10120        len: ::std::os::raw::c_long,
10121    ) -> *mut ASN1_SEQUENCE_ANY;
10122}
10123extern "C" {
10124    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_SEQUENCE_ANY"]
10125    pub fn i2d_ASN1_SEQUENCE_ANY(
10126        in_: *const ASN1_SEQUENCE_ANY,
10127        outp: *mut *mut u8,
10128    ) -> ::std::os::raw::c_int;
10129}
10130extern "C" {
10131    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_SET_ANY"]
10132    pub fn d2i_ASN1_SET_ANY(
10133        out: *mut *mut ASN1_SEQUENCE_ANY,
10134        inp: *mut *const u8,
10135        len: ::std::os::raw::c_long,
10136    ) -> *mut ASN1_SEQUENCE_ANY;
10137}
10138extern "C" {
10139    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_SET_ANY"]
10140    pub fn i2d_ASN1_SET_ANY(
10141        in_: *const ASN1_SEQUENCE_ANY,
10142        outp: *mut *mut u8,
10143    ) -> ::std::os::raw::c_int;
10144}
10145extern "C" {
10146    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_UTCTIME_print"]
10147    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::std::os::raw::c_int;
10148}
10149extern "C" {
10150    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_GENERALIZEDTIME_print"]
10151    pub fn ASN1_GENERALIZEDTIME_print(
10152        out: *mut BIO,
10153        a: *const ASN1_GENERALIZEDTIME,
10154    ) -> ::std::os::raw::c_int;
10155}
10156extern "C" {
10157    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_TIME_print"]
10158    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::std::os::raw::c_int;
10159}
10160extern "C" {
10161    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_print"]
10162    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::std::os::raw::c_int;
10163}
10164extern "C" {
10165    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_print_ex"]
10166    pub fn ASN1_STRING_print_ex(
10167        out: *mut BIO,
10168        str_: *const ASN1_STRING,
10169        flags: ::std::os::raw::c_ulong,
10170    ) -> ::std::os::raw::c_int;
10171}
10172extern "C" {
10173    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_print_ex_fp"]
10174    pub fn ASN1_STRING_print_ex_fp(
10175        fp: *mut FILE,
10176        str_: *const ASN1_STRING,
10177        flags: ::std::os::raw::c_ulong,
10178    ) -> ::std::os::raw::c_int;
10179}
10180extern "C" {
10181    #[link_name = "\u{1}aws_lc_0_40_0_a2i_ASN1_INTEGER"]
10182    pub fn a2i_ASN1_INTEGER(
10183        bp: *mut BIO,
10184        bs: *mut ASN1_INTEGER,
10185        buf: *mut ::std::os::raw::c_char,
10186        size: ::std::os::raw::c_int,
10187    ) -> ::std::os::raw::c_int;
10188}
10189extern "C" {
10190    #[link_name = "\u{1}aws_lc_0_40_0_i2a_ASN1_INTEGER"]
10191    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::std::os::raw::c_int;
10192}
10193extern "C" {
10194    #[link_name = "\u{1}aws_lc_0_40_0_i2a_ASN1_ENUMERATED"]
10195    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_int;
10196}
10197extern "C" {
10198    #[link_name = "\u{1}aws_lc_0_40_0_i2a_ASN1_OBJECT"]
10199    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
10200}
10201extern "C" {
10202    #[link_name = "\u{1}aws_lc_0_40_0_i2a_ASN1_STRING"]
10203    pub fn i2a_ASN1_STRING(
10204        bp: *mut BIO,
10205        a: *const ASN1_STRING,
10206        type_: ::std::os::raw::c_int,
10207    ) -> ::std::os::raw::c_int;
10208}
10209extern "C" {
10210    #[link_name = "\u{1}aws_lc_0_40_0_i2t_ASN1_OBJECT"]
10211    pub fn i2t_ASN1_OBJECT(
10212        buf: *mut ::std::os::raw::c_char,
10213        buf_len: ::std::os::raw::c_int,
10214        a: *const ASN1_OBJECT,
10215    ) -> ::std::os::raw::c_int;
10216}
10217extern "C" {
10218    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_get_object"]
10219    pub fn ASN1_get_object(
10220        inp: *mut *const ::std::os::raw::c_uchar,
10221        out_length: *mut ::std::os::raw::c_long,
10222        out_tag: *mut ::std::os::raw::c_int,
10223        out_class: *mut ::std::os::raw::c_int,
10224        max_len: ::std::os::raw::c_long,
10225    ) -> ::std::os::raw::c_int;
10226}
10227extern "C" {
10228    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_put_object"]
10229    pub fn ASN1_put_object(
10230        outp: *mut *mut ::std::os::raw::c_uchar,
10231        constructed: ::std::os::raw::c_int,
10232        length: ::std::os::raw::c_int,
10233        tag: ::std::os::raw::c_int,
10234        xclass: ::std::os::raw::c_int,
10235    );
10236}
10237extern "C" {
10238    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_put_eoc"]
10239    pub fn ASN1_put_eoc(outp: *mut *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
10240}
10241extern "C" {
10242    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_object_size"]
10243    pub fn ASN1_object_size(
10244        constructed: ::std::os::raw::c_int,
10245        length: ::std::os::raw::c_int,
10246        tag: ::std::os::raw::c_int,
10247    ) -> ::std::os::raw::c_int;
10248}
10249extern "C" {
10250    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLE_new"]
10251    pub fn ASN1_PRINTABLE_new() -> *mut ASN1_STRING;
10252}
10253extern "C" {
10254    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLE_free"]
10255    pub fn ASN1_PRINTABLE_free(str_: *mut ASN1_STRING);
10256}
10257extern "C" {
10258    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ASN1_PRINTABLE"]
10259    pub fn d2i_ASN1_PRINTABLE(
10260        out: *mut *mut ASN1_STRING,
10261        inp: *mut *const u8,
10262        len: ::std::os::raw::c_long,
10263    ) -> *mut ASN1_STRING;
10264}
10265extern "C" {
10266    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ASN1_PRINTABLE"]
10267    pub fn i2d_ASN1_PRINTABLE(in_: *const ASN1_STRING, outp: *mut *mut u8)
10268        -> ::std::os::raw::c_int;
10269}
10270extern "C" {
10271    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_PRINTABLE_it"]
10272    pub static ASN1_PRINTABLE_it: ASN1_ITEM;
10273}
10274extern "C" {
10275    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_set"]
10276    pub fn ASN1_INTEGER_set(
10277        a: *mut ASN1_INTEGER,
10278        v: ::std::os::raw::c_long,
10279    ) -> ::std::os::raw::c_int;
10280}
10281extern "C" {
10282    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_set"]
10283    pub fn ASN1_ENUMERATED_set(
10284        a: *mut ASN1_ENUMERATED,
10285        v: ::std::os::raw::c_long,
10286    ) -> ::std::os::raw::c_int;
10287}
10288extern "C" {
10289    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_INTEGER_get"]
10290    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::std::os::raw::c_long;
10291}
10292extern "C" {
10293    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_ENUMERATED_get"]
10294    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::std::os::raw::c_long;
10295}
10296extern "C" {
10297    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_set_default_mask"]
10298    pub fn ASN1_STRING_set_default_mask(mask: ::std::os::raw::c_ulong);
10299}
10300extern "C" {
10301    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_set_default_mask_asc"]
10302    pub fn ASN1_STRING_set_default_mask_asc(
10303        p: *const ::std::os::raw::c_char,
10304    ) -> ::std::os::raw::c_int;
10305}
10306extern "C" {
10307    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_get_default_mask"]
10308    pub fn ASN1_STRING_get_default_mask() -> ::std::os::raw::c_ulong;
10309}
10310extern "C" {
10311    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_STRING_TABLE_cleanup"]
10312    pub fn ASN1_STRING_TABLE_cleanup();
10313}
10314pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
10315#[repr(C)]
10316#[derive(Debug, Copy, Clone)]
10317pub struct ASN1_TLC_st {
10318    _unused: [u8; 0],
10319}
10320pub type ASN1_TLC = ASN1_TLC_st;
10321#[repr(C)]
10322#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10323pub struct ASN1_TEMPLATE_st {
10324    pub flags: u32,
10325    pub tag: ::std::os::raw::c_int,
10326    pub offset: ::std::os::raw::c_ulong,
10327    pub field_name: *const ::std::os::raw::c_char,
10328    pub item: *const ASN1_ITEM_st,
10329}
10330#[test]
10331fn bindgen_test_layout_ASN1_TEMPLATE_st() {
10332    const UNINIT: ::std::mem::MaybeUninit<ASN1_TEMPLATE_st> = ::std::mem::MaybeUninit::uninit();
10333    let ptr = UNINIT.as_ptr();
10334    assert_eq!(
10335        ::std::mem::size_of::<ASN1_TEMPLATE_st>(),
10336        32usize,
10337        "Size of ASN1_TEMPLATE_st"
10338    );
10339    assert_eq!(
10340        ::std::mem::align_of::<ASN1_TEMPLATE_st>(),
10341        8usize,
10342        "Alignment of ASN1_TEMPLATE_st"
10343    );
10344    assert_eq!(
10345        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10346        0usize,
10347        "Offset of field: ASN1_TEMPLATE_st::flags"
10348    );
10349    assert_eq!(
10350        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
10351        4usize,
10352        "Offset of field: ASN1_TEMPLATE_st::tag"
10353    );
10354    assert_eq!(
10355        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10356        8usize,
10357        "Offset of field: ASN1_TEMPLATE_st::offset"
10358    );
10359    assert_eq!(
10360        unsafe { ::std::ptr::addr_of!((*ptr).field_name) as usize - ptr as usize },
10361        16usize,
10362        "Offset of field: ASN1_TEMPLATE_st::field_name"
10363    );
10364    assert_eq!(
10365        unsafe { ::std::ptr::addr_of!((*ptr).item) as usize - ptr as usize },
10366        24usize,
10367        "Offset of field: ASN1_TEMPLATE_st::item"
10368    );
10369}
10370impl Default for ASN1_TEMPLATE_st {
10371    fn default() -> Self {
10372        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10373        unsafe {
10374            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10375            s.assume_init()
10376        }
10377    }
10378}
10379pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
10380pub type ASN1_ADB = ASN1_ADB_st;
10381#[repr(C)]
10382#[derive(Debug, Copy, Clone)]
10383pub struct asn1_must_be_null_st {
10384    _unused: [u8; 0],
10385}
10386pub type ASN1_MUST_BE_NULL = asn1_must_be_null_st;
10387#[repr(C)]
10388#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10389pub struct ASN1_ADB_st {
10390    pub flags: u32,
10391    pub offset: ::std::os::raw::c_ulong,
10392    pub unused: *mut ASN1_MUST_BE_NULL,
10393    pub tbl: *const ASN1_ADB_TABLE,
10394    pub tblcount: ::std::os::raw::c_long,
10395    pub default_tt: *const ASN1_TEMPLATE,
10396    pub null_tt: *const ASN1_TEMPLATE,
10397}
10398#[test]
10399fn bindgen_test_layout_ASN1_ADB_st() {
10400    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_st> = ::std::mem::MaybeUninit::uninit();
10401    let ptr = UNINIT.as_ptr();
10402    assert_eq!(
10403        ::std::mem::size_of::<ASN1_ADB_st>(),
10404        56usize,
10405        "Size of ASN1_ADB_st"
10406    );
10407    assert_eq!(
10408        ::std::mem::align_of::<ASN1_ADB_st>(),
10409        8usize,
10410        "Alignment of ASN1_ADB_st"
10411    );
10412    assert_eq!(
10413        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10414        0usize,
10415        "Offset of field: ASN1_ADB_st::flags"
10416    );
10417    assert_eq!(
10418        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
10419        8usize,
10420        "Offset of field: ASN1_ADB_st::offset"
10421    );
10422    assert_eq!(
10423        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
10424        16usize,
10425        "Offset of field: ASN1_ADB_st::unused"
10426    );
10427    assert_eq!(
10428        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
10429        24usize,
10430        "Offset of field: ASN1_ADB_st::tbl"
10431    );
10432    assert_eq!(
10433        unsafe { ::std::ptr::addr_of!((*ptr).tblcount) as usize - ptr as usize },
10434        32usize,
10435        "Offset of field: ASN1_ADB_st::tblcount"
10436    );
10437    assert_eq!(
10438        unsafe { ::std::ptr::addr_of!((*ptr).default_tt) as usize - ptr as usize },
10439        40usize,
10440        "Offset of field: ASN1_ADB_st::default_tt"
10441    );
10442    assert_eq!(
10443        unsafe { ::std::ptr::addr_of!((*ptr).null_tt) as usize - ptr as usize },
10444        48usize,
10445        "Offset of field: ASN1_ADB_st::null_tt"
10446    );
10447}
10448impl Default for ASN1_ADB_st {
10449    fn default() -> Self {
10450        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10451        unsafe {
10452            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10453            s.assume_init()
10454        }
10455    }
10456}
10457#[repr(C)]
10458#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10459pub struct ASN1_ADB_TABLE_st {
10460    pub value: ::std::os::raw::c_int,
10461    pub tt: ASN1_TEMPLATE,
10462}
10463#[test]
10464fn bindgen_test_layout_ASN1_ADB_TABLE_st() {
10465    const UNINIT: ::std::mem::MaybeUninit<ASN1_ADB_TABLE_st> = ::std::mem::MaybeUninit::uninit();
10466    let ptr = UNINIT.as_ptr();
10467    assert_eq!(
10468        ::std::mem::size_of::<ASN1_ADB_TABLE_st>(),
10469        40usize,
10470        "Size of ASN1_ADB_TABLE_st"
10471    );
10472    assert_eq!(
10473        ::std::mem::align_of::<ASN1_ADB_TABLE_st>(),
10474        8usize,
10475        "Alignment of ASN1_ADB_TABLE_st"
10476    );
10477    assert_eq!(
10478        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
10479        0usize,
10480        "Offset of field: ASN1_ADB_TABLE_st::value"
10481    );
10482    assert_eq!(
10483        unsafe { ::std::ptr::addr_of!((*ptr).tt) as usize - ptr as usize },
10484        8usize,
10485        "Offset of field: ASN1_ADB_TABLE_st::tt"
10486    );
10487}
10488impl Default for ASN1_ADB_TABLE_st {
10489    fn default() -> Self {
10490        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10491        unsafe {
10492            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10493            s.assume_init()
10494        }
10495    }
10496}
10497#[repr(C)]
10498#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10499pub struct ASN1_ITEM_st {
10500    pub itype: ::std::os::raw::c_char,
10501    pub utype: ::std::os::raw::c_int,
10502    pub templates: *const ASN1_TEMPLATE,
10503    pub tcount: ::std::os::raw::c_long,
10504    pub funcs: *const ::std::os::raw::c_void,
10505    pub size: ::std::os::raw::c_long,
10506    pub sname: *const ::std::os::raw::c_char,
10507}
10508#[test]
10509fn bindgen_test_layout_ASN1_ITEM_st() {
10510    const UNINIT: ::std::mem::MaybeUninit<ASN1_ITEM_st> = ::std::mem::MaybeUninit::uninit();
10511    let ptr = UNINIT.as_ptr();
10512    assert_eq!(
10513        ::std::mem::size_of::<ASN1_ITEM_st>(),
10514        48usize,
10515        "Size of ASN1_ITEM_st"
10516    );
10517    assert_eq!(
10518        ::std::mem::align_of::<ASN1_ITEM_st>(),
10519        8usize,
10520        "Alignment of ASN1_ITEM_st"
10521    );
10522    assert_eq!(
10523        unsafe { ::std::ptr::addr_of!((*ptr).itype) as usize - ptr as usize },
10524        0usize,
10525        "Offset of field: ASN1_ITEM_st::itype"
10526    );
10527    assert_eq!(
10528        unsafe { ::std::ptr::addr_of!((*ptr).utype) as usize - ptr as usize },
10529        4usize,
10530        "Offset of field: ASN1_ITEM_st::utype"
10531    );
10532    assert_eq!(
10533        unsafe { ::std::ptr::addr_of!((*ptr).templates) as usize - ptr as usize },
10534        8usize,
10535        "Offset of field: ASN1_ITEM_st::templates"
10536    );
10537    assert_eq!(
10538        unsafe { ::std::ptr::addr_of!((*ptr).tcount) as usize - ptr as usize },
10539        16usize,
10540        "Offset of field: ASN1_ITEM_st::tcount"
10541    );
10542    assert_eq!(
10543        unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize },
10544        24usize,
10545        "Offset of field: ASN1_ITEM_st::funcs"
10546    );
10547    assert_eq!(
10548        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
10549        32usize,
10550        "Offset of field: ASN1_ITEM_st::size"
10551    );
10552    assert_eq!(
10553        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
10554        40usize,
10555        "Offset of field: ASN1_ITEM_st::sname"
10556    );
10557}
10558impl Default for ASN1_ITEM_st {
10559    fn default() -> Self {
10560        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10561        unsafe {
10562            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10563            s.assume_init()
10564        }
10565    }
10566}
10567pub type ASN1_new_func = ::std::option::Option<unsafe extern "C" fn() -> *mut ASN1_VALUE>;
10568pub type ASN1_free_func = ::std::option::Option<unsafe extern "C" fn(a: *mut ASN1_VALUE)>;
10569pub type ASN1_d2i_func = ::std::option::Option<
10570    unsafe extern "C" fn(
10571        a: *mut *mut ASN1_VALUE,
10572        in_: *mut *const ::std::os::raw::c_uchar,
10573        length: ::std::os::raw::c_long,
10574    ) -> *mut ASN1_VALUE,
10575>;
10576pub type ASN1_i2d_func = ::std::option::Option<
10577    unsafe extern "C" fn(
10578        a: *mut ASN1_VALUE,
10579        in_: *mut *mut ::std::os::raw::c_uchar,
10580    ) -> ::std::os::raw::c_int,
10581>;
10582pub type ASN1_ex_d2i = ::std::option::Option<
10583    unsafe extern "C" fn(
10584        pval: *mut *mut ASN1_VALUE,
10585        in_: *mut *const ::std::os::raw::c_uchar,
10586        len: ::std::os::raw::c_long,
10587        it: *const ASN1_ITEM,
10588        tag: ::std::os::raw::c_int,
10589        aclass: ::std::os::raw::c_int,
10590        opt: ::std::os::raw::c_char,
10591        ctx: *mut ASN1_TLC,
10592    ) -> ::std::os::raw::c_int,
10593>;
10594pub type ASN1_ex_i2d = ::std::option::Option<
10595    unsafe extern "C" fn(
10596        pval: *mut *mut ASN1_VALUE,
10597        out: *mut *mut ::std::os::raw::c_uchar,
10598        it: *const ASN1_ITEM,
10599        tag: ::std::os::raw::c_int,
10600        aclass: ::std::os::raw::c_int,
10601    ) -> ::std::os::raw::c_int,
10602>;
10603pub type ASN1_ex_new_func = ::std::option::Option<
10604    unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM) -> ::std::os::raw::c_int,
10605>;
10606pub type ASN1_ex_free_func =
10607    ::std::option::Option<unsafe extern "C" fn(pval: *mut *mut ASN1_VALUE, it: *const ASN1_ITEM)>;
10608pub type ASN1_ex_print_func = ::std::option::Option<
10609    unsafe extern "C" fn(
10610        out: *mut BIO,
10611        pval: *mut *mut ASN1_VALUE,
10612        indent: ::std::os::raw::c_int,
10613        fname: *const ::std::os::raw::c_char,
10614        pctx: *const ASN1_PCTX,
10615    ) -> ::std::os::raw::c_int,
10616>;
10617#[repr(C)]
10618#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10619pub struct ASN1_EXTERN_FUNCS_st {
10620    pub app_data: *mut ::std::os::raw::c_void,
10621    pub asn1_ex_new: ASN1_ex_new_func,
10622    pub asn1_ex_free: ASN1_ex_free_func,
10623    pub asn1_ex_d2i: ASN1_ex_d2i,
10624    pub asn1_ex_i2d: ASN1_ex_i2d,
10625    pub asn1_ex_print: ASN1_ex_print_func,
10626}
10627#[test]
10628fn bindgen_test_layout_ASN1_EXTERN_FUNCS_st() {
10629    const UNINIT: ::std::mem::MaybeUninit<ASN1_EXTERN_FUNCS_st> = ::std::mem::MaybeUninit::uninit();
10630    let ptr = UNINIT.as_ptr();
10631    assert_eq!(
10632        ::std::mem::size_of::<ASN1_EXTERN_FUNCS_st>(),
10633        48usize,
10634        "Size of ASN1_EXTERN_FUNCS_st"
10635    );
10636    assert_eq!(
10637        ::std::mem::align_of::<ASN1_EXTERN_FUNCS_st>(),
10638        8usize,
10639        "Alignment of ASN1_EXTERN_FUNCS_st"
10640    );
10641    assert_eq!(
10642        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10643        0usize,
10644        "Offset of field: ASN1_EXTERN_FUNCS_st::app_data"
10645    );
10646    assert_eq!(
10647        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_new) as usize - ptr as usize },
10648        8usize,
10649        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_new"
10650    );
10651    assert_eq!(
10652        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_free) as usize - ptr as usize },
10653        16usize,
10654        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_free"
10655    );
10656    assert_eq!(
10657        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_d2i) as usize - ptr as usize },
10658        24usize,
10659        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_d2i"
10660    );
10661    assert_eq!(
10662        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_i2d) as usize - ptr as usize },
10663        32usize,
10664        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_i2d"
10665    );
10666    assert_eq!(
10667        unsafe { ::std::ptr::addr_of!((*ptr).asn1_ex_print) as usize - ptr as usize },
10668        40usize,
10669        "Offset of field: ASN1_EXTERN_FUNCS_st::asn1_ex_print"
10670    );
10671}
10672impl Default for ASN1_EXTERN_FUNCS_st {
10673    fn default() -> Self {
10674        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10675        unsafe {
10676            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10677            s.assume_init()
10678        }
10679    }
10680}
10681pub type ASN1_EXTERN_FUNCS = ASN1_EXTERN_FUNCS_st;
10682pub type ASN1_aux_cb = ::std::option::Option<
10683    unsafe extern "C" fn(
10684        operation: ::std::os::raw::c_int,
10685        in_: *mut *mut ASN1_VALUE,
10686        it: *const ASN1_ITEM,
10687        exarg: *mut ::std::os::raw::c_void,
10688    ) -> ::std::os::raw::c_int,
10689>;
10690#[repr(C)]
10691#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10692pub struct ASN1_AUX_st {
10693    pub app_data: *mut ::std::os::raw::c_void,
10694    pub flags: u32,
10695    pub ref_offset: ::std::os::raw::c_int,
10696    pub asn1_cb: ASN1_aux_cb,
10697    pub enc_offset: ::std::os::raw::c_int,
10698}
10699#[test]
10700fn bindgen_test_layout_ASN1_AUX_st() {
10701    const UNINIT: ::std::mem::MaybeUninit<ASN1_AUX_st> = ::std::mem::MaybeUninit::uninit();
10702    let ptr = UNINIT.as_ptr();
10703    assert_eq!(
10704        ::std::mem::size_of::<ASN1_AUX_st>(),
10705        32usize,
10706        "Size of ASN1_AUX_st"
10707    );
10708    assert_eq!(
10709        ::std::mem::align_of::<ASN1_AUX_st>(),
10710        8usize,
10711        "Alignment of ASN1_AUX_st"
10712    );
10713    assert_eq!(
10714        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
10715        0usize,
10716        "Offset of field: ASN1_AUX_st::app_data"
10717    );
10718    assert_eq!(
10719        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
10720        8usize,
10721        "Offset of field: ASN1_AUX_st::flags"
10722    );
10723    assert_eq!(
10724        unsafe { ::std::ptr::addr_of!((*ptr).ref_offset) as usize - ptr as usize },
10725        12usize,
10726        "Offset of field: ASN1_AUX_st::ref_offset"
10727    );
10728    assert_eq!(
10729        unsafe { ::std::ptr::addr_of!((*ptr).asn1_cb) as usize - ptr as usize },
10730        16usize,
10731        "Offset of field: ASN1_AUX_st::asn1_cb"
10732    );
10733    assert_eq!(
10734        unsafe { ::std::ptr::addr_of!((*ptr).enc_offset) as usize - ptr as usize },
10735        24usize,
10736        "Offset of field: ASN1_AUX_st::enc_offset"
10737    );
10738}
10739impl Default for ASN1_AUX_st {
10740    fn default() -> Self {
10741        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10742        unsafe {
10743            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10744            s.assume_init()
10745        }
10746    }
10747}
10748pub type ASN1_AUX = ASN1_AUX_st;
10749extern "C" {
10750    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_SEQUENCE_it"]
10751    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
10752}
10753#[repr(C)]
10754#[derive(Debug, Copy, Clone)]
10755pub struct stack_st_ASN1_VALUE {
10756    _unused: [u8; 0],
10757}
10758pub type sk_ASN1_VALUE_free_func =
10759    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
10760pub type sk_ASN1_VALUE_copy_func =
10761    ::std::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
10762pub type sk_ASN1_VALUE_cmp_func = ::std::option::Option<
10763    unsafe extern "C" fn(
10764        arg1: *const *const ASN1_VALUE,
10765        arg2: *const *const ASN1_VALUE,
10766    ) -> ::std::os::raw::c_int,
10767>;
10768pub type sk_ASN1_VALUE_delete_if_func = ::std::option::Option<
10769    unsafe extern "C" fn(
10770        arg1: *mut ASN1_VALUE,
10771        arg2: *mut ::std::os::raw::c_void,
10772    ) -> ::std::os::raw::c_int,
10773>;
10774extern "C" {
10775    #[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`"]
10776    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncodeBlock"]
10777    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
10778}
10779extern "C" {
10780    #[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"]
10781    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncodedLength"]
10782    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10783}
10784extern "C" {
10785    #[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"]
10786    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodedLength"]
10787    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::std::os::raw::c_int;
10788}
10789extern "C" {
10790    #[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"]
10791    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodeBase64"]
10792    pub fn EVP_DecodeBase64(
10793        out: *mut u8,
10794        out_len: *mut usize,
10795        max_out: usize,
10796        in_: *const u8,
10797        in_len: usize,
10798    ) -> ::std::os::raw::c_int;
10799}
10800extern "C" {
10801    #[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."]
10802    #[link_name = "\u{1}aws_lc_0_40_0_EVP_ENCODE_CTX_new"]
10803    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
10804}
10805extern "C" {
10806    #[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."]
10807    #[link_name = "\u{1}aws_lc_0_40_0_EVP_ENCODE_CTX_free"]
10808    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
10809}
10810extern "C" {
10811    #[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."]
10812    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncodeInit"]
10813    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
10814}
10815extern "C" {
10816    #[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."]
10817    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncodeUpdate"]
10818    pub fn EVP_EncodeUpdate(
10819        ctx: *mut EVP_ENCODE_CTX,
10820        out: *mut u8,
10821        out_len: *mut ::std::os::raw::c_int,
10822        in_: *const u8,
10823        in_len: usize,
10824    ) -> ::std::os::raw::c_int;
10825}
10826extern "C" {
10827    #[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."]
10828    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncodeFinal"]
10829    pub fn EVP_EncodeFinal(
10830        ctx: *mut EVP_ENCODE_CTX,
10831        out: *mut u8,
10832        out_len: *mut ::std::os::raw::c_int,
10833    );
10834}
10835extern "C" {
10836    #[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."]
10837    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodeInit"]
10838    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
10839}
10840extern "C" {
10841    #[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."]
10842    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodeUpdate"]
10843    pub fn EVP_DecodeUpdate(
10844        ctx: *mut EVP_ENCODE_CTX,
10845        out: *mut u8,
10846        out_len: *mut ::std::os::raw::c_int,
10847        in_: *const u8,
10848        in_len: usize,
10849    ) -> ::std::os::raw::c_int;
10850}
10851extern "C" {
10852    #[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."]
10853    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodeFinal"]
10854    pub fn EVP_DecodeFinal(
10855        ctx: *mut EVP_ENCODE_CTX,
10856        out: *mut u8,
10857        out_len: *mut ::std::os::raw::c_int,
10858    ) -> ::std::os::raw::c_int;
10859}
10860extern "C" {
10861    #[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."]
10862    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecodeBlock"]
10863    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::std::os::raw::c_int;
10864}
10865#[doc = " @struct evp_encode_ctx_st\n Encoding Context"]
10866#[repr(C)]
10867#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10868pub struct evp_encode_ctx_st {
10869    #[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."]
10870    pub data_used: ::std::os::raw::c_uint,
10871    #[doc = " @brief Encoded or decoded data."]
10872    pub data: [u8; 48usize],
10873    #[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."]
10874    pub eof_seen: ::std::os::raw::c_char,
10875    #[doc = " @brief indicates that invalid base64 data was found.\n\n @details\n This will gitcause all future calls to fail."]
10876    pub error_encountered: ::std::os::raw::c_char,
10877}
10878#[test]
10879fn bindgen_test_layout_evp_encode_ctx_st() {
10880    const UNINIT: ::std::mem::MaybeUninit<evp_encode_ctx_st> = ::std::mem::MaybeUninit::uninit();
10881    let ptr = UNINIT.as_ptr();
10882    assert_eq!(
10883        ::std::mem::size_of::<evp_encode_ctx_st>(),
10884        56usize,
10885        "Size of evp_encode_ctx_st"
10886    );
10887    assert_eq!(
10888        ::std::mem::align_of::<evp_encode_ctx_st>(),
10889        4usize,
10890        "Alignment of evp_encode_ctx_st"
10891    );
10892    assert_eq!(
10893        unsafe { ::std::ptr::addr_of!((*ptr).data_used) as usize - ptr as usize },
10894        0usize,
10895        "Offset of field: evp_encode_ctx_st::data_used"
10896    );
10897    assert_eq!(
10898        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
10899        4usize,
10900        "Offset of field: evp_encode_ctx_st::data"
10901    );
10902    assert_eq!(
10903        unsafe { ::std::ptr::addr_of!((*ptr).eof_seen) as usize - ptr as usize },
10904        52usize,
10905        "Offset of field: evp_encode_ctx_st::eof_seen"
10906    );
10907    assert_eq!(
10908        unsafe { ::std::ptr::addr_of!((*ptr).error_encountered) as usize - ptr as usize },
10909        53usize,
10910        "Offset of field: evp_encode_ctx_st::error_encountered"
10911    );
10912}
10913impl Default for evp_encode_ctx_st {
10914    fn default() -> Self {
10915        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10916        unsafe {
10917            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10918            s.assume_init()
10919        }
10920    }
10921}
10922#[repr(C)]
10923#[derive(Debug, Copy, Clone, PartialEq, Eq)]
10924pub struct blake2b_state_st {
10925    pub h: [u64; 8usize],
10926    pub t_low: u64,
10927    pub t_high: u64,
10928    pub block: [u8; 128usize],
10929    pub block_used: usize,
10930}
10931#[test]
10932fn bindgen_test_layout_blake2b_state_st() {
10933    const UNINIT: ::std::mem::MaybeUninit<blake2b_state_st> = ::std::mem::MaybeUninit::uninit();
10934    let ptr = UNINIT.as_ptr();
10935    assert_eq!(
10936        ::std::mem::size_of::<blake2b_state_st>(),
10937        216usize,
10938        "Size of blake2b_state_st"
10939    );
10940    assert_eq!(
10941        ::std::mem::align_of::<blake2b_state_st>(),
10942        8usize,
10943        "Alignment of blake2b_state_st"
10944    );
10945    assert_eq!(
10946        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
10947        0usize,
10948        "Offset of field: blake2b_state_st::h"
10949    );
10950    assert_eq!(
10951        unsafe { ::std::ptr::addr_of!((*ptr).t_low) as usize - ptr as usize },
10952        64usize,
10953        "Offset of field: blake2b_state_st::t_low"
10954    );
10955    assert_eq!(
10956        unsafe { ::std::ptr::addr_of!((*ptr).t_high) as usize - ptr as usize },
10957        72usize,
10958        "Offset of field: blake2b_state_st::t_high"
10959    );
10960    assert_eq!(
10961        unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize },
10962        80usize,
10963        "Offset of field: blake2b_state_st::block"
10964    );
10965    assert_eq!(
10966        unsafe { ::std::ptr::addr_of!((*ptr).block_used) as usize - ptr as usize },
10967        208usize,
10968        "Offset of field: blake2b_state_st::block_used"
10969    );
10970}
10971impl Default for blake2b_state_st {
10972    fn default() -> Self {
10973        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10974        unsafe {
10975            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10976            s.assume_init()
10977        }
10978    }
10979}
10980extern "C" {
10981    #[link_name = "\u{1}aws_lc_0_40_0_BLAKE2B256_Init"]
10982    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
10983}
10984extern "C" {
10985    #[link_name = "\u{1}aws_lc_0_40_0_BLAKE2B256_Update"]
10986    pub fn BLAKE2B256_Update(
10987        b2b: *mut BLAKE2B_CTX,
10988        data: *const ::std::os::raw::c_void,
10989        len: usize,
10990    );
10991}
10992extern "C" {
10993    #[link_name = "\u{1}aws_lc_0_40_0_BLAKE2B256_Final"]
10994    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
10995}
10996extern "C" {
10997    #[link_name = "\u{1}aws_lc_0_40_0_BLAKE2B256"]
10998    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
10999}
11000#[repr(C)]
11001#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11002pub struct bf_key_st {
11003    pub P: [u32; 18usize],
11004    pub S: [u32; 1024usize],
11005}
11006#[test]
11007fn bindgen_test_layout_bf_key_st() {
11008    const UNINIT: ::std::mem::MaybeUninit<bf_key_st> = ::std::mem::MaybeUninit::uninit();
11009    let ptr = UNINIT.as_ptr();
11010    assert_eq!(
11011        ::std::mem::size_of::<bf_key_st>(),
11012        4168usize,
11013        "Size of bf_key_st"
11014    );
11015    assert_eq!(
11016        ::std::mem::align_of::<bf_key_st>(),
11017        4usize,
11018        "Alignment of bf_key_st"
11019    );
11020    assert_eq!(
11021        unsafe { ::std::ptr::addr_of!((*ptr).P) as usize - ptr as usize },
11022        0usize,
11023        "Offset of field: bf_key_st::P"
11024    );
11025    assert_eq!(
11026        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
11027        72usize,
11028        "Offset of field: bf_key_st::S"
11029    );
11030}
11031impl Default for bf_key_st {
11032    fn default() -> Self {
11033        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11034        unsafe {
11035            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11036            s.assume_init()
11037        }
11038    }
11039}
11040pub type BF_KEY = bf_key_st;
11041extern "C" {
11042    #[link_name = "\u{1}aws_lc_0_40_0_BF_set_key"]
11043    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
11044}
11045extern "C" {
11046    #[link_name = "\u{1}aws_lc_0_40_0_BF_encrypt"]
11047    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
11048}
11049extern "C" {
11050    #[link_name = "\u{1}aws_lc_0_40_0_BF_decrypt"]
11051    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
11052}
11053extern "C" {
11054    #[link_name = "\u{1}aws_lc_0_40_0_BF_ecb_encrypt"]
11055    pub fn BF_ecb_encrypt(
11056        in_: *const u8,
11057        out: *mut u8,
11058        key: *const BF_KEY,
11059        enc: ::std::os::raw::c_int,
11060    );
11061}
11062extern "C" {
11063    #[link_name = "\u{1}aws_lc_0_40_0_BF_cbc_encrypt"]
11064    pub fn BF_cbc_encrypt(
11065        in_: *const u8,
11066        out: *mut u8,
11067        length: usize,
11068        schedule: *const BF_KEY,
11069        ivec: *mut u8,
11070        enc: ::std::os::raw::c_int,
11071    );
11072}
11073extern "C" {
11074    #[link_name = "\u{1}aws_lc_0_40_0_BF_cfb64_encrypt"]
11075    pub fn BF_cfb64_encrypt(
11076        in_: *const u8,
11077        out: *mut u8,
11078        length: usize,
11079        schedule: *const BF_KEY,
11080        ivec: *mut u8,
11081        num: *mut ::std::os::raw::c_int,
11082        encrypt: ::std::os::raw::c_int,
11083    );
11084}
11085extern "C" {
11086    #[link_name = "\u{1}aws_lc_0_40_0_BF_ofb64_encrypt"]
11087    pub fn BF_ofb64_encrypt(
11088        in_: *const u8,
11089        out: *mut u8,
11090        length: usize,
11091        schedule: *const BF_KEY,
11092        ivec: *mut u8,
11093        num: *mut ::std::os::raw::c_int,
11094    );
11095}
11096#[repr(C)]
11097#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11098pub struct cbs_st {
11099    pub data: *const u8,
11100    pub len: usize,
11101}
11102#[test]
11103fn bindgen_test_layout_cbs_st() {
11104    const UNINIT: ::std::mem::MaybeUninit<cbs_st> = ::std::mem::MaybeUninit::uninit();
11105    let ptr = UNINIT.as_ptr();
11106    assert_eq!(::std::mem::size_of::<cbs_st>(), 16usize, "Size of cbs_st");
11107    assert_eq!(
11108        ::std::mem::align_of::<cbs_st>(),
11109        8usize,
11110        "Alignment of cbs_st"
11111    );
11112    assert_eq!(
11113        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
11114        0usize,
11115        "Offset of field: cbs_st::data"
11116    );
11117    assert_eq!(
11118        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11119        8usize,
11120        "Offset of field: cbs_st::len"
11121    );
11122}
11123impl Default for cbs_st {
11124    fn default() -> Self {
11125        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11126        unsafe {
11127            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11128            s.assume_init()
11129        }
11130    }
11131}
11132extern "C" {
11133    #[link_name = "\u{1}aws_lc_0_40_0_CBS_init"]
11134    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
11135}
11136extern "C" {
11137    #[link_name = "\u{1}aws_lc_0_40_0_CBS_skip"]
11138    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11139}
11140extern "C" {
11141    #[link_name = "\u{1}aws_lc_0_40_0_CBS_data"]
11142    pub fn CBS_data(cbs: *const CBS) -> *const u8;
11143}
11144extern "C" {
11145    #[link_name = "\u{1}aws_lc_0_40_0_CBS_len"]
11146    pub fn CBS_len(cbs: *const CBS) -> usize;
11147}
11148extern "C" {
11149    #[link_name = "\u{1}aws_lc_0_40_0_CBS_stow"]
11150    pub fn CBS_stow(
11151        cbs: *const CBS,
11152        out_ptr: *mut *mut u8,
11153        out_len: *mut usize,
11154    ) -> ::std::os::raw::c_int;
11155}
11156extern "C" {
11157    #[link_name = "\u{1}aws_lc_0_40_0_CBS_strdup"]
11158    pub fn CBS_strdup(
11159        cbs: *const CBS,
11160        out_ptr: *mut *mut ::std::os::raw::c_char,
11161    ) -> ::std::os::raw::c_int;
11162}
11163extern "C" {
11164    #[link_name = "\u{1}aws_lc_0_40_0_CBS_contains_zero_byte"]
11165    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::std::os::raw::c_int;
11166}
11167extern "C" {
11168    #[link_name = "\u{1}aws_lc_0_40_0_CBS_mem_equal"]
11169    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11170}
11171extern "C" {
11172    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u8"]
11173    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11174}
11175extern "C" {
11176    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u16"]
11177    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11178}
11179extern "C" {
11180    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u16le"]
11181    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::std::os::raw::c_int;
11182}
11183extern "C" {
11184    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u24"]
11185    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11186}
11187extern "C" {
11188    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u32"]
11189    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11190}
11191extern "C" {
11192    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u32le"]
11193    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::std::os::raw::c_int;
11194}
11195extern "C" {
11196    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u64"]
11197    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11198}
11199extern "C" {
11200    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u64le"]
11201    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11202}
11203extern "C" {
11204    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_last_u8"]
11205    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::std::os::raw::c_int;
11206}
11207extern "C" {
11208    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_bytes"]
11209    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::std::os::raw::c_int;
11210}
11211extern "C" {
11212    #[link_name = "\u{1}aws_lc_0_40_0_CBS_copy_bytes"]
11213    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::std::os::raw::c_int;
11214}
11215extern "C" {
11216    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u8_length_prefixed"]
11217    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11218}
11219extern "C" {
11220    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u16_length_prefixed"]
11221    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11222}
11223extern "C" {
11224    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u24_length_prefixed"]
11225    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::std::os::raw::c_int;
11226}
11227extern "C" {
11228    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_until_first"]
11229    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::std::os::raw::c_int;
11230}
11231extern "C" {
11232    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_u64_decimal"]
11233    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11234}
11235extern "C" {
11236    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_asn1"]
11237    pub fn CBS_get_asn1(
11238        cbs: *mut CBS,
11239        out: *mut CBS,
11240        tag_value: CBS_ASN1_TAG,
11241    ) -> ::std::os::raw::c_int;
11242}
11243extern "C" {
11244    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_asn1_element"]
11245    pub fn CBS_get_asn1_element(
11246        cbs: *mut CBS,
11247        out: *mut CBS,
11248        tag_value: CBS_ASN1_TAG,
11249    ) -> ::std::os::raw::c_int;
11250}
11251extern "C" {
11252    #[link_name = "\u{1}aws_lc_0_40_0_CBS_peek_asn1_tag"]
11253    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::std::os::raw::c_int;
11254}
11255extern "C" {
11256    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_any_asn1"]
11257    pub fn CBS_get_any_asn1(
11258        cbs: *mut CBS,
11259        out: *mut CBS,
11260        out_tag: *mut CBS_ASN1_TAG,
11261    ) -> ::std::os::raw::c_int;
11262}
11263extern "C" {
11264    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_any_asn1_element"]
11265    pub fn CBS_get_any_asn1_element(
11266        cbs: *mut CBS,
11267        out: *mut CBS,
11268        out_tag: *mut CBS_ASN1_TAG,
11269        out_header_len: *mut usize,
11270    ) -> ::std::os::raw::c_int;
11271}
11272extern "C" {
11273    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_any_ber_asn1_element"]
11274    pub fn CBS_get_any_ber_asn1_element(
11275        cbs: *mut CBS,
11276        out: *mut CBS,
11277        out_tag: *mut CBS_ASN1_TAG,
11278        out_header_len: *mut usize,
11279        out_ber_found: *mut ::std::os::raw::c_int,
11280        out_indefinite: *mut ::std::os::raw::c_int,
11281    ) -> ::std::os::raw::c_int;
11282}
11283extern "C" {
11284    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_asn1_uint64"]
11285    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::std::os::raw::c_int;
11286}
11287extern "C" {
11288    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_asn1_int64"]
11289    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::std::os::raw::c_int;
11290}
11291extern "C" {
11292    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_asn1_bool"]
11293    pub fn CBS_get_asn1_bool(
11294        cbs: *mut CBS,
11295        out: *mut ::std::os::raw::c_int,
11296    ) -> ::std::os::raw::c_int;
11297}
11298extern "C" {
11299    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_optional_asn1"]
11300    pub fn CBS_get_optional_asn1(
11301        cbs: *mut CBS,
11302        out: *mut CBS,
11303        out_present: *mut ::std::os::raw::c_int,
11304        tag: CBS_ASN1_TAG,
11305    ) -> ::std::os::raw::c_int;
11306}
11307extern "C" {
11308    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_optional_asn1_octet_string"]
11309    pub fn CBS_get_optional_asn1_octet_string(
11310        cbs: *mut CBS,
11311        out: *mut CBS,
11312        out_present: *mut ::std::os::raw::c_int,
11313        tag: CBS_ASN1_TAG,
11314    ) -> ::std::os::raw::c_int;
11315}
11316extern "C" {
11317    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_optional_asn1_uint64"]
11318    pub fn CBS_get_optional_asn1_uint64(
11319        cbs: *mut CBS,
11320        out: *mut u64,
11321        tag: CBS_ASN1_TAG,
11322        default_value: u64,
11323    ) -> ::std::os::raw::c_int;
11324}
11325extern "C" {
11326    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_optional_asn1_bool"]
11327    pub fn CBS_get_optional_asn1_bool(
11328        cbs: *mut CBS,
11329        out: *mut ::std::os::raw::c_int,
11330        tag: CBS_ASN1_TAG,
11331        default_value: ::std::os::raw::c_int,
11332    ) -> ::std::os::raw::c_int;
11333}
11334extern "C" {
11335    #[link_name = "\u{1}aws_lc_0_40_0_CBS_is_valid_asn1_bitstring"]
11336    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::std::os::raw::c_int;
11337}
11338extern "C" {
11339    #[link_name = "\u{1}aws_lc_0_40_0_CBS_asn1_bitstring_has_bit"]
11340    pub fn CBS_asn1_bitstring_has_bit(
11341        cbs: *const CBS,
11342        bit: ::std::os::raw::c_uint,
11343    ) -> ::std::os::raw::c_int;
11344}
11345extern "C" {
11346    #[link_name = "\u{1}aws_lc_0_40_0_CBS_is_valid_asn1_integer"]
11347    pub fn CBS_is_valid_asn1_integer(
11348        cbs: *const CBS,
11349        out_is_negative: *mut ::std::os::raw::c_int,
11350    ) -> ::std::os::raw::c_int;
11351}
11352extern "C" {
11353    #[link_name = "\u{1}aws_lc_0_40_0_CBS_is_unsigned_asn1_integer"]
11354    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::std::os::raw::c_int;
11355}
11356extern "C" {
11357    #[link_name = "\u{1}aws_lc_0_40_0_CBS_is_valid_asn1_oid"]
11358    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::std::os::raw::c_int;
11359}
11360extern "C" {
11361    #[link_name = "\u{1}aws_lc_0_40_0_CBS_asn1_oid_to_text"]
11362    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::std::os::raw::c_char;
11363}
11364extern "C" {
11365    #[link_name = "\u{1}aws_lc_0_40_0_CBS_parse_generalized_time"]
11366    pub fn CBS_parse_generalized_time(
11367        cbs: *const CBS,
11368        out_tm: *mut tm,
11369        allow_timezone_offset: ::std::os::raw::c_int,
11370    ) -> ::std::os::raw::c_int;
11371}
11372extern "C" {
11373    #[link_name = "\u{1}aws_lc_0_40_0_CBS_parse_utc_time"]
11374    pub fn CBS_parse_utc_time(
11375        cbs: *const CBS,
11376        out_tm: *mut tm,
11377        allow_timezone_offset: ::std::os::raw::c_int,
11378    ) -> ::std::os::raw::c_int;
11379}
11380extern "C" {
11381    #[link_name = "\u{1}aws_lc_0_40_0_CBS_get_optional_asn1_int64"]
11382    pub fn CBS_get_optional_asn1_int64(
11383        cbs: *mut CBS,
11384        out: *mut i64,
11385        tag: CBS_ASN1_TAG,
11386        default_value: i64,
11387    ) -> ::std::os::raw::c_int;
11388}
11389#[repr(C)]
11390#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11391pub struct cbb_buffer_st {
11392    pub buf: *mut u8,
11393    pub len: usize,
11394    pub cap: usize,
11395    pub _bitfield_align_1: [u8; 0],
11396    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11397    pub __bindgen_padding_0: [u8; 7usize],
11398}
11399#[test]
11400fn bindgen_test_layout_cbb_buffer_st() {
11401    const UNINIT: ::std::mem::MaybeUninit<cbb_buffer_st> = ::std::mem::MaybeUninit::uninit();
11402    let ptr = UNINIT.as_ptr();
11403    assert_eq!(
11404        ::std::mem::size_of::<cbb_buffer_st>(),
11405        32usize,
11406        "Size of cbb_buffer_st"
11407    );
11408    assert_eq!(
11409        ::std::mem::align_of::<cbb_buffer_st>(),
11410        8usize,
11411        "Alignment of cbb_buffer_st"
11412    );
11413    assert_eq!(
11414        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
11415        0usize,
11416        "Offset of field: cbb_buffer_st::buf"
11417    );
11418    assert_eq!(
11419        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
11420        8usize,
11421        "Offset of field: cbb_buffer_st::len"
11422    );
11423    assert_eq!(
11424        unsafe { ::std::ptr::addr_of!((*ptr).cap) as usize - ptr as usize },
11425        16usize,
11426        "Offset of field: cbb_buffer_st::cap"
11427    );
11428}
11429impl Default for cbb_buffer_st {
11430    fn default() -> Self {
11431        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11432        unsafe {
11433            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11434            s.assume_init()
11435        }
11436    }
11437}
11438impl cbb_buffer_st {
11439    #[inline]
11440    pub fn can_resize(&self) -> ::std::os::raw::c_uint {
11441        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11442    }
11443    #[inline]
11444    pub fn set_can_resize(&mut self, val: ::std::os::raw::c_uint) {
11445        unsafe {
11446            let val: u32 = ::std::mem::transmute(val);
11447            self._bitfield_1.set(0usize, 1u8, val as u64)
11448        }
11449    }
11450    #[inline]
11451    pub unsafe fn can_resize_raw(this: *const Self) -> ::std::os::raw::c_uint {
11452        unsafe {
11453            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11454                ::std::ptr::addr_of!((*this)._bitfield_1),
11455                0usize,
11456                1u8,
11457            ) as u32)
11458        }
11459    }
11460    #[inline]
11461    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11462        unsafe {
11463            let val: u32 = ::std::mem::transmute(val);
11464            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11465                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11466                0usize,
11467                1u8,
11468                val as u64,
11469            )
11470        }
11471    }
11472    #[inline]
11473    pub fn error(&self) -> ::std::os::raw::c_uint {
11474        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11475    }
11476    #[inline]
11477    pub fn set_error(&mut self, val: ::std::os::raw::c_uint) {
11478        unsafe {
11479            let val: u32 = ::std::mem::transmute(val);
11480            self._bitfield_1.set(1usize, 1u8, val as u64)
11481        }
11482    }
11483    #[inline]
11484    pub unsafe fn error_raw(this: *const Self) -> ::std::os::raw::c_uint {
11485        unsafe {
11486            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11487                ::std::ptr::addr_of!((*this)._bitfield_1),
11488                1usize,
11489                1u8,
11490            ) as u32)
11491        }
11492    }
11493    #[inline]
11494    pub unsafe fn set_error_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11495        unsafe {
11496            let val: u32 = ::std::mem::transmute(val);
11497            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11498                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11499                1usize,
11500                1u8,
11501                val as u64,
11502            )
11503        }
11504    }
11505    #[inline]
11506    pub fn new_bitfield_1(
11507        can_resize: ::std::os::raw::c_uint,
11508        error: ::std::os::raw::c_uint,
11509    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11510        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11511        __bindgen_bitfield_unit.set(0usize, 1u8, {
11512            let can_resize: u32 = unsafe { ::std::mem::transmute(can_resize) };
11513            can_resize as u64
11514        });
11515        __bindgen_bitfield_unit.set(1usize, 1u8, {
11516            let error: u32 = unsafe { ::std::mem::transmute(error) };
11517            error as u64
11518        });
11519        __bindgen_bitfield_unit
11520    }
11521}
11522#[repr(C)]
11523#[derive(Debug, Copy, Clone, PartialEq, Eq)]
11524pub struct cbb_child_st {
11525    pub base: *mut cbb_buffer_st,
11526    pub offset: usize,
11527    pub pending_len_len: u8,
11528    pub _bitfield_align_1: [u8; 0],
11529    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
11530    pub __bindgen_padding_0: [u16; 3usize],
11531}
11532#[test]
11533fn bindgen_test_layout_cbb_child_st() {
11534    const UNINIT: ::std::mem::MaybeUninit<cbb_child_st> = ::std::mem::MaybeUninit::uninit();
11535    let ptr = UNINIT.as_ptr();
11536    assert_eq!(
11537        ::std::mem::size_of::<cbb_child_st>(),
11538        24usize,
11539        "Size of cbb_child_st"
11540    );
11541    assert_eq!(
11542        ::std::mem::align_of::<cbb_child_st>(),
11543        8usize,
11544        "Alignment of cbb_child_st"
11545    );
11546    assert_eq!(
11547        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11548        0usize,
11549        "Offset of field: cbb_child_st::base"
11550    );
11551    assert_eq!(
11552        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
11553        8usize,
11554        "Offset of field: cbb_child_st::offset"
11555    );
11556    assert_eq!(
11557        unsafe { ::std::ptr::addr_of!((*ptr).pending_len_len) as usize - ptr as usize },
11558        16usize,
11559        "Offset of field: cbb_child_st::pending_len_len"
11560    );
11561}
11562impl Default for cbb_child_st {
11563    fn default() -> Self {
11564        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11565        unsafe {
11566            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11567            s.assume_init()
11568        }
11569    }
11570}
11571impl cbb_child_st {
11572    #[inline]
11573    pub fn pending_is_asn1(&self) -> ::std::os::raw::c_uint {
11574        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11575    }
11576    #[inline]
11577    pub fn set_pending_is_asn1(&mut self, val: ::std::os::raw::c_uint) {
11578        unsafe {
11579            let val: u32 = ::std::mem::transmute(val);
11580            self._bitfield_1.set(0usize, 1u8, val as u64)
11581        }
11582    }
11583    #[inline]
11584    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::std::os::raw::c_uint {
11585        unsafe {
11586            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11587                ::std::ptr::addr_of!((*this)._bitfield_1),
11588                0usize,
11589                1u8,
11590            ) as u32)
11591        }
11592    }
11593    #[inline]
11594    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
11595        unsafe {
11596            let val: u32 = ::std::mem::transmute(val);
11597            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11598                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
11599                0usize,
11600                1u8,
11601                val as u64,
11602            )
11603        }
11604    }
11605    #[inline]
11606    pub fn new_bitfield_1(
11607        pending_is_asn1: ::std::os::raw::c_uint,
11608    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11609        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11610        __bindgen_bitfield_unit.set(0usize, 1u8, {
11611            let pending_is_asn1: u32 = unsafe { ::std::mem::transmute(pending_is_asn1) };
11612            pending_is_asn1 as u64
11613        });
11614        __bindgen_bitfield_unit
11615    }
11616}
11617#[repr(C)]
11618#[derive(Copy, Clone)]
11619pub struct cbb_st {
11620    pub child: *mut CBB,
11621    pub is_child: ::std::os::raw::c_char,
11622    pub u: cbb_st__bindgen_ty_1,
11623}
11624#[repr(C)]
11625#[derive(Copy, Clone)]
11626pub union cbb_st__bindgen_ty_1 {
11627    pub base: cbb_buffer_st,
11628    pub child: cbb_child_st,
11629}
11630#[test]
11631fn bindgen_test_layout_cbb_st__bindgen_ty_1() {
11632    const UNINIT: ::std::mem::MaybeUninit<cbb_st__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
11633    let ptr = UNINIT.as_ptr();
11634    assert_eq!(
11635        ::std::mem::size_of::<cbb_st__bindgen_ty_1>(),
11636        32usize,
11637        "Size of cbb_st__bindgen_ty_1"
11638    );
11639    assert_eq!(
11640        ::std::mem::align_of::<cbb_st__bindgen_ty_1>(),
11641        8usize,
11642        "Alignment of cbb_st__bindgen_ty_1"
11643    );
11644    assert_eq!(
11645        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
11646        0usize,
11647        "Offset of field: cbb_st__bindgen_ty_1::base"
11648    );
11649    assert_eq!(
11650        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11651        0usize,
11652        "Offset of field: cbb_st__bindgen_ty_1::child"
11653    );
11654}
11655impl Default for cbb_st__bindgen_ty_1 {
11656    fn default() -> Self {
11657        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11658        unsafe {
11659            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11660            s.assume_init()
11661        }
11662    }
11663}
11664#[test]
11665fn bindgen_test_layout_cbb_st() {
11666    const UNINIT: ::std::mem::MaybeUninit<cbb_st> = ::std::mem::MaybeUninit::uninit();
11667    let ptr = UNINIT.as_ptr();
11668    assert_eq!(::std::mem::size_of::<cbb_st>(), 48usize, "Size of cbb_st");
11669    assert_eq!(
11670        ::std::mem::align_of::<cbb_st>(),
11671        8usize,
11672        "Alignment of cbb_st"
11673    );
11674    assert_eq!(
11675        unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize },
11676        0usize,
11677        "Offset of field: cbb_st::child"
11678    );
11679    assert_eq!(
11680        unsafe { ::std::ptr::addr_of!((*ptr).is_child) as usize - ptr as usize },
11681        8usize,
11682        "Offset of field: cbb_st::is_child"
11683    );
11684    assert_eq!(
11685        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
11686        16usize,
11687        "Offset of field: cbb_st::u"
11688    );
11689}
11690impl Default for cbb_st {
11691    fn default() -> Self {
11692        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11693        unsafe {
11694            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11695            s.assume_init()
11696        }
11697    }
11698}
11699extern "C" {
11700    #[link_name = "\u{1}aws_lc_0_40_0_CBB_zero"]
11701    pub fn CBB_zero(cbb: *mut CBB);
11702}
11703extern "C" {
11704    #[link_name = "\u{1}aws_lc_0_40_0_CBB_init"]
11705    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::std::os::raw::c_int;
11706}
11707extern "C" {
11708    #[link_name = "\u{1}aws_lc_0_40_0_CBB_init_fixed"]
11709    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
11710}
11711extern "C" {
11712    #[link_name = "\u{1}aws_lc_0_40_0_CBB_cleanup"]
11713    pub fn CBB_cleanup(cbb: *mut CBB);
11714}
11715extern "C" {
11716    #[link_name = "\u{1}aws_lc_0_40_0_CBB_finish"]
11717    pub fn CBB_finish(
11718        cbb: *mut CBB,
11719        out_data: *mut *mut u8,
11720        out_len: *mut usize,
11721    ) -> ::std::os::raw::c_int;
11722}
11723extern "C" {
11724    #[link_name = "\u{1}aws_lc_0_40_0_CBB_flush"]
11725    pub fn CBB_flush(cbb: *mut CBB) -> ::std::os::raw::c_int;
11726}
11727extern "C" {
11728    #[link_name = "\u{1}aws_lc_0_40_0_CBB_data"]
11729    pub fn CBB_data(cbb: *const CBB) -> *const u8;
11730}
11731extern "C" {
11732    #[link_name = "\u{1}aws_lc_0_40_0_CBB_len"]
11733    pub fn CBB_len(cbb: *const CBB) -> usize;
11734}
11735extern "C" {
11736    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u8_length_prefixed"]
11737    pub fn CBB_add_u8_length_prefixed(
11738        cbb: *mut CBB,
11739        out_contents: *mut CBB,
11740    ) -> ::std::os::raw::c_int;
11741}
11742extern "C" {
11743    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u16_length_prefixed"]
11744    pub fn CBB_add_u16_length_prefixed(
11745        cbb: *mut CBB,
11746        out_contents: *mut CBB,
11747    ) -> ::std::os::raw::c_int;
11748}
11749extern "C" {
11750    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u24_length_prefixed"]
11751    pub fn CBB_add_u24_length_prefixed(
11752        cbb: *mut CBB,
11753        out_contents: *mut CBB,
11754    ) -> ::std::os::raw::c_int;
11755}
11756extern "C" {
11757    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1"]
11758    pub fn CBB_add_asn1(
11759        cbb: *mut CBB,
11760        out_contents: *mut CBB,
11761        tag: CBS_ASN1_TAG,
11762    ) -> ::std::os::raw::c_int;
11763}
11764extern "C" {
11765    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_bytes"]
11766    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::std::os::raw::c_int;
11767}
11768extern "C" {
11769    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_zeros"]
11770    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11771}
11772extern "C" {
11773    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_space"]
11774    pub fn CBB_add_space(
11775        cbb: *mut CBB,
11776        out_data: *mut *mut u8,
11777        len: usize,
11778    ) -> ::std::os::raw::c_int;
11779}
11780extern "C" {
11781    #[link_name = "\u{1}aws_lc_0_40_0_CBB_reserve"]
11782    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::std::os::raw::c_int;
11783}
11784extern "C" {
11785    #[link_name = "\u{1}aws_lc_0_40_0_CBB_did_write"]
11786    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::std::os::raw::c_int;
11787}
11788extern "C" {
11789    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u8"]
11790    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::std::os::raw::c_int;
11791}
11792extern "C" {
11793    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u16"]
11794    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11795}
11796extern "C" {
11797    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u16le"]
11798    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::std::os::raw::c_int;
11799}
11800extern "C" {
11801    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u24"]
11802    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11803}
11804extern "C" {
11805    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u32"]
11806    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11807}
11808extern "C" {
11809    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u32le"]
11810    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::std::os::raw::c_int;
11811}
11812extern "C" {
11813    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u64"]
11814    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11815}
11816extern "C" {
11817    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_u64le"]
11818    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11819}
11820extern "C" {
11821    #[link_name = "\u{1}aws_lc_0_40_0_CBB_discard_child"]
11822    pub fn CBB_discard_child(cbb: *mut CBB);
11823}
11824extern "C" {
11825    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_uint64"]
11826    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::std::os::raw::c_int;
11827}
11828extern "C" {
11829    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_uint64_with_tag"]
11830    pub fn CBB_add_asn1_uint64_with_tag(
11831        cbb: *mut CBB,
11832        value: u64,
11833        tag: CBS_ASN1_TAG,
11834    ) -> ::std::os::raw::c_int;
11835}
11836extern "C" {
11837    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_int64"]
11838    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::std::os::raw::c_int;
11839}
11840extern "C" {
11841    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_int64_with_tag"]
11842    pub fn CBB_add_asn1_int64_with_tag(
11843        cbb: *mut CBB,
11844        value: i64,
11845        tag: CBS_ASN1_TAG,
11846    ) -> ::std::os::raw::c_int;
11847}
11848extern "C" {
11849    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_octet_string"]
11850    pub fn CBB_add_asn1_octet_string(
11851        cbb: *mut CBB,
11852        data: *const u8,
11853        data_len: usize,
11854    ) -> ::std::os::raw::c_int;
11855}
11856extern "C" {
11857    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_bool"]
11858    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
11859}
11860extern "C" {
11861    #[link_name = "\u{1}aws_lc_0_40_0_CBB_add_asn1_oid_from_text"]
11862    pub fn CBB_add_asn1_oid_from_text(
11863        cbb: *mut CBB,
11864        text: *const ::std::os::raw::c_char,
11865        len: usize,
11866    ) -> ::std::os::raw::c_int;
11867}
11868extern "C" {
11869    #[link_name = "\u{1}aws_lc_0_40_0_CBB_flush_asn1_set_of"]
11870    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::std::os::raw::c_int;
11871}
11872extern "C" {
11873    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_chacha_20"]
11874    pub fn CRYPTO_chacha_20(
11875        out: *mut u8,
11876        in_: *const u8,
11877        in_len: usize,
11878        key: *const u8,
11879        nonce: *const u8,
11880        counter: u32,
11881    );
11882}
11883extern "C" {
11884    #[link_name = "\u{1}aws_lc_0_40_0_EVP_rc4"]
11885    pub fn EVP_rc4() -> *const EVP_CIPHER;
11886}
11887extern "C" {
11888    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_cbc"]
11889    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
11890}
11891extern "C" {
11892    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ecb"]
11893    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
11894}
11895extern "C" {
11896    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ede"]
11897    pub fn EVP_des_ede() -> *const EVP_CIPHER;
11898}
11899extern "C" {
11900    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ede3"]
11901    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
11902}
11903extern "C" {
11904    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ede_cbc"]
11905    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
11906}
11907extern "C" {
11908    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ede3_cbc"]
11909    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
11910}
11911extern "C" {
11912    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_ecb"]
11913    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
11914}
11915extern "C" {
11916    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cbc"]
11917    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
11918}
11919extern "C" {
11920    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_ctr"]
11921    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
11922}
11923extern "C" {
11924    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_ofb"]
11925    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
11926}
11927extern "C" {
11928    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_ecb"]
11929    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
11930}
11931extern "C" {
11932    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cbc"]
11933    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
11934}
11935extern "C" {
11936    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_ctr"]
11937    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
11938}
11939extern "C" {
11940    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_ofb"]
11941    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
11942}
11943extern "C" {
11944    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_xts"]
11945    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
11946}
11947extern "C" {
11948    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_wrap"]
11949    pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER;
11950}
11951extern "C" {
11952    #[link_name = "\u{1}aws_lc_0_40_0_EVP_enc_null"]
11953    pub fn EVP_enc_null() -> *const EVP_CIPHER;
11954}
11955extern "C" {
11956    #[link_name = "\u{1}aws_lc_0_40_0_EVP_rc2_cbc"]
11957    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
11958}
11959extern "C" {
11960    #[link_name = "\u{1}aws_lc_0_40_0_EVP_rc2_40_cbc"]
11961    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
11962}
11963extern "C" {
11964    #[link_name = "\u{1}aws_lc_0_40_0_EVP_chacha20_poly1305"]
11965    pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER;
11966}
11967extern "C" {
11968    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_cipherbynid"]
11969    pub fn EVP_get_cipherbynid(nid: ::std::os::raw::c_int) -> *const EVP_CIPHER;
11970}
11971extern "C" {
11972    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_init"]
11973    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
11974}
11975extern "C" {
11976    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_new"]
11977    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
11978}
11979extern "C" {
11980    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_cleanup"]
11981    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
11982}
11983extern "C" {
11984    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_free"]
11985    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
11986}
11987extern "C" {
11988    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_copy"]
11989    pub fn EVP_CIPHER_CTX_copy(
11990        out: *mut EVP_CIPHER_CTX,
11991        in_: *const EVP_CIPHER_CTX,
11992    ) -> ::std::os::raw::c_int;
11993}
11994extern "C" {
11995    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_reset"]
11996    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
11997}
11998extern "C" {
11999    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CipherInit_ex"]
12000    pub fn EVP_CipherInit_ex(
12001        ctx: *mut EVP_CIPHER_CTX,
12002        cipher: *const EVP_CIPHER,
12003        engine: *mut ENGINE,
12004        key: *const u8,
12005        iv: *const u8,
12006        enc: ::std::os::raw::c_int,
12007    ) -> ::std::os::raw::c_int;
12008}
12009extern "C" {
12010    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncryptInit_ex"]
12011    pub fn EVP_EncryptInit_ex(
12012        ctx: *mut EVP_CIPHER_CTX,
12013        cipher: *const EVP_CIPHER,
12014        impl_: *mut ENGINE,
12015        key: *const u8,
12016        iv: *const u8,
12017    ) -> ::std::os::raw::c_int;
12018}
12019extern "C" {
12020    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecryptInit_ex"]
12021    pub fn EVP_DecryptInit_ex(
12022        ctx: *mut EVP_CIPHER_CTX,
12023        cipher: *const EVP_CIPHER,
12024        impl_: *mut ENGINE,
12025        key: *const u8,
12026        iv: *const u8,
12027    ) -> ::std::os::raw::c_int;
12028}
12029extern "C" {
12030    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncryptUpdate"]
12031    pub fn EVP_EncryptUpdate(
12032        ctx: *mut EVP_CIPHER_CTX,
12033        out: *mut u8,
12034        out_len: *mut ::std::os::raw::c_int,
12035        in_: *const u8,
12036        in_len: ::std::os::raw::c_int,
12037    ) -> ::std::os::raw::c_int;
12038}
12039extern "C" {
12040    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncryptFinal_ex"]
12041    pub fn EVP_EncryptFinal_ex(
12042        ctx: *mut EVP_CIPHER_CTX,
12043        out: *mut u8,
12044        out_len: *mut ::std::os::raw::c_int,
12045    ) -> ::std::os::raw::c_int;
12046}
12047extern "C" {
12048    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecryptUpdate"]
12049    pub fn EVP_DecryptUpdate(
12050        ctx: *mut EVP_CIPHER_CTX,
12051        out: *mut u8,
12052        out_len: *mut ::std::os::raw::c_int,
12053        in_: *const u8,
12054        in_len: ::std::os::raw::c_int,
12055    ) -> ::std::os::raw::c_int;
12056}
12057extern "C" {
12058    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecryptFinal_ex"]
12059    pub fn EVP_DecryptFinal_ex(
12060        ctx: *mut EVP_CIPHER_CTX,
12061        out: *mut u8,
12062        out_len: *mut ::std::os::raw::c_int,
12063    ) -> ::std::os::raw::c_int;
12064}
12065extern "C" {
12066    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CipherUpdate"]
12067    pub fn EVP_CipherUpdate(
12068        ctx: *mut EVP_CIPHER_CTX,
12069        out: *mut u8,
12070        out_len: *mut ::std::os::raw::c_int,
12071        in_: *const u8,
12072        in_len: ::std::os::raw::c_int,
12073    ) -> ::std::os::raw::c_int;
12074}
12075extern "C" {
12076    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CipherFinal_ex"]
12077    pub fn EVP_CipherFinal_ex(
12078        ctx: *mut EVP_CIPHER_CTX,
12079        out: *mut u8,
12080        out_len: *mut ::std::os::raw::c_int,
12081    ) -> ::std::os::raw::c_int;
12082}
12083extern "C" {
12084    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_cipher"]
12085    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
12086}
12087extern "C" {
12088    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_nid"]
12089    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12090}
12091extern "C" {
12092    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_encrypting"]
12093    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_int;
12094}
12095extern "C" {
12096    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_block_size"]
12097    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12098}
12099extern "C" {
12100    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_key_length"]
12101    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12102}
12103extern "C" {
12104    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_iv_length"]
12105    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::std::os::raw::c_uint;
12106}
12107extern "C" {
12108    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_get_app_data"]
12109    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::std::os::raw::c_void;
12110}
12111extern "C" {
12112    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_set_app_data"]
12113    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::std::os::raw::c_void);
12114}
12115extern "C" {
12116    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_flags"]
12117    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
12118}
12119extern "C" {
12120    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_mode"]
12121    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
12122}
12123extern "C" {
12124    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_ctrl"]
12125    pub fn EVP_CIPHER_CTX_ctrl(
12126        ctx: *mut EVP_CIPHER_CTX,
12127        command: ::std::os::raw::c_int,
12128        arg: ::std::os::raw::c_int,
12129        ptr: *mut ::std::os::raw::c_void,
12130    ) -> ::std::os::raw::c_int;
12131}
12132extern "C" {
12133    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_set_padding"]
12134    pub fn EVP_CIPHER_CTX_set_padding(
12135        ctx: *mut EVP_CIPHER_CTX,
12136        pad: ::std::os::raw::c_int,
12137    ) -> ::std::os::raw::c_int;
12138}
12139extern "C" {
12140    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_set_key_length"]
12141    pub fn EVP_CIPHER_CTX_set_key_length(
12142        ctx: *mut EVP_CIPHER_CTX,
12143        key_len: ::std::os::raw::c_uint,
12144    ) -> ::std::os::raw::c_int;
12145}
12146extern "C" {
12147    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_nid"]
12148    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
12149}
12150extern "C" {
12151    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_name"]
12152    pub fn EVP_CIPHER_name(cipher: *const EVP_CIPHER) -> *const ::std::os::raw::c_char;
12153}
12154extern "C" {
12155    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_block_size"]
12156    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12157}
12158extern "C" {
12159    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_key_length"]
12160    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12161}
12162extern "C" {
12163    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_iv_length"]
12164    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::std::os::raw::c_uint;
12165}
12166extern "C" {
12167    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_flags"]
12168    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
12169}
12170extern "C" {
12171    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_mode"]
12172    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
12173}
12174extern "C" {
12175    #[link_name = "\u{1}aws_lc_0_40_0_EVP_BytesToKey"]
12176    pub fn EVP_BytesToKey(
12177        type_: *const EVP_CIPHER,
12178        md: *const EVP_MD,
12179        salt: *const u8,
12180        data: *const u8,
12181        data_len: usize,
12182        count: ::std::os::raw::c_uint,
12183        key: *mut u8,
12184        iv: *mut u8,
12185    ) -> ::std::os::raw::c_int;
12186}
12187extern "C" {
12188    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cbc_hmac_sha1"]
12189    pub fn EVP_aes_128_cbc_hmac_sha1() -> *const EVP_CIPHER;
12190}
12191extern "C" {
12192    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cbc_hmac_sha1"]
12193    pub fn EVP_aes_256_cbc_hmac_sha1() -> *const EVP_CIPHER;
12194}
12195extern "C" {
12196    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cbc_hmac_sha256"]
12197    pub fn EVP_aes_128_cbc_hmac_sha256() -> *const EVP_CIPHER;
12198}
12199extern "C" {
12200    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cbc_hmac_sha256"]
12201    pub fn EVP_aes_256_cbc_hmac_sha256() -> *const EVP_CIPHER;
12202}
12203extern "C" {
12204    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CipherInit"]
12205    pub fn EVP_CipherInit(
12206        ctx: *mut EVP_CIPHER_CTX,
12207        cipher: *const EVP_CIPHER,
12208        key: *const u8,
12209        iv: *const u8,
12210        enc: ::std::os::raw::c_int,
12211    ) -> ::std::os::raw::c_int;
12212}
12213extern "C" {
12214    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncryptInit"]
12215    pub fn EVP_EncryptInit(
12216        ctx: *mut EVP_CIPHER_CTX,
12217        cipher: *const EVP_CIPHER,
12218        key: *const u8,
12219        iv: *const u8,
12220    ) -> ::std::os::raw::c_int;
12221}
12222extern "C" {
12223    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecryptInit"]
12224    pub fn EVP_DecryptInit(
12225        ctx: *mut EVP_CIPHER_CTX,
12226        cipher: *const EVP_CIPHER,
12227        key: *const u8,
12228        iv: *const u8,
12229    ) -> ::std::os::raw::c_int;
12230}
12231extern "C" {
12232    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CipherFinal"]
12233    pub fn EVP_CipherFinal(
12234        ctx: *mut EVP_CIPHER_CTX,
12235        out: *mut u8,
12236        out_len: *mut ::std::os::raw::c_int,
12237    ) -> ::std::os::raw::c_int;
12238}
12239extern "C" {
12240    #[link_name = "\u{1}aws_lc_0_40_0_EVP_EncryptFinal"]
12241    pub fn EVP_EncryptFinal(
12242        ctx: *mut EVP_CIPHER_CTX,
12243        out: *mut u8,
12244        out_len: *mut ::std::os::raw::c_int,
12245    ) -> ::std::os::raw::c_int;
12246}
12247extern "C" {
12248    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DecryptFinal"]
12249    pub fn EVP_DecryptFinal(
12250        ctx: *mut EVP_CIPHER_CTX,
12251        out: *mut u8,
12252        out_len: *mut ::std::os::raw::c_int,
12253    ) -> ::std::os::raw::c_int;
12254}
12255extern "C" {
12256    #[link_name = "\u{1}aws_lc_0_40_0_EVP_Cipher"]
12257    pub fn EVP_Cipher(
12258        ctx: *mut EVP_CIPHER_CTX,
12259        out: *mut u8,
12260        in_: *const u8,
12261        in_len: usize,
12262    ) -> ::std::os::raw::c_int;
12263}
12264extern "C" {
12265    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_cipherbyname"]
12266    pub fn EVP_get_cipherbyname(name: *const ::std::os::raw::c_char) -> *const EVP_CIPHER;
12267}
12268extern "C" {
12269    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_gcm"]
12270    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
12271}
12272extern "C" {
12273    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_gcm"]
12274    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
12275}
12276extern "C" {
12277    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_ccm"]
12278    pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER;
12279}
12280extern "C" {
12281    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_ccm"]
12282    pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER;
12283}
12284extern "C" {
12285    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_ccm"]
12286    pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER;
12287}
12288extern "C" {
12289    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_ecb"]
12290    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
12291}
12292extern "C" {
12293    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_cbc"]
12294    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
12295}
12296extern "C" {
12297    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_ctr"]
12298    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
12299}
12300extern "C" {
12301    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_gcm"]
12302    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
12303}
12304extern "C" {
12305    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_ofb"]
12306    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
12307}
12308extern "C" {
12309    #[link_name = "\u{1}aws_lc_0_40_0_EVP_des_ede3_ecb"]
12310    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
12311}
12312extern "C" {
12313    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cfb128"]
12314    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
12315}
12316extern "C" {
12317    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cfb"]
12318    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
12319}
12320extern "C" {
12321    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cfb1"]
12322    pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
12323}
12324extern "C" {
12325    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_128_cfb8"]
12326    pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
12327}
12328extern "C" {
12329    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_cfb128"]
12330    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
12331}
12332extern "C" {
12333    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_cfb"]
12334    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
12335}
12336extern "C" {
12337    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_cfb1"]
12338    pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER;
12339}
12340extern "C" {
12341    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_192_cfb8"]
12342    pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER;
12343}
12344extern "C" {
12345    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cfb128"]
12346    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
12347}
12348extern "C" {
12349    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cfb"]
12350    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
12351}
12352extern "C" {
12353    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cfb1"]
12354    pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
12355}
12356extern "C" {
12357    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aes_256_cfb8"]
12358    pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
12359}
12360extern "C" {
12361    #[link_name = "\u{1}aws_lc_0_40_0_EVP_bf_ecb"]
12362    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
12363}
12364extern "C" {
12365    #[link_name = "\u{1}aws_lc_0_40_0_EVP_bf_cbc"]
12366    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
12367}
12368extern "C" {
12369    #[link_name = "\u{1}aws_lc_0_40_0_EVP_bf_cfb"]
12370    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
12371}
12372extern "C" {
12373    #[link_name = "\u{1}aws_lc_0_40_0_EVP_bf_cfb64"]
12374    pub fn EVP_bf_cfb64() -> *const EVP_CIPHER;
12375}
12376extern "C" {
12377    #[link_name = "\u{1}aws_lc_0_40_0_EVP_bf_ofb"]
12378    pub fn EVP_bf_ofb() -> *const EVP_CIPHER;
12379}
12380extern "C" {
12381    #[link_name = "\u{1}aws_lc_0_40_0_EVP_cast5_ecb"]
12382    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
12383}
12384extern "C" {
12385    #[link_name = "\u{1}aws_lc_0_40_0_EVP_cast5_cbc"]
12386    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
12387}
12388extern "C" {
12389    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_CTX_set_flags"]
12390    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
12391}
12392extern "C" {
12393    #[link_name = "\u{1}aws_lc_0_40_0_EVP_add_cipher_alias"]
12394    pub fn EVP_add_cipher_alias(
12395        a: *const ::std::os::raw::c_char,
12396        b: *const ::std::os::raw::c_char,
12397    ) -> ::std::os::raw::c_int;
12398}
12399#[repr(C)]
12400#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12401pub struct evp_cipher_ctx_st {
12402    pub cipher: *const EVP_CIPHER,
12403    pub app_data: *mut ::std::os::raw::c_void,
12404    pub cipher_data: *mut ::std::os::raw::c_void,
12405    pub key_len: ::std::os::raw::c_uint,
12406    pub encrypt: ::std::os::raw::c_int,
12407    pub flags: u32,
12408    pub oiv: [u8; 16usize],
12409    pub iv: [u8; 16usize],
12410    pub buf: [u8; 32usize],
12411    pub buf_len: ::std::os::raw::c_int,
12412    pub num: ::std::os::raw::c_uint,
12413    pub final_used: ::std::os::raw::c_int,
12414    pub final_: [u8; 32usize],
12415    pub poisoned: ::std::os::raw::c_int,
12416}
12417#[test]
12418fn bindgen_test_layout_evp_cipher_ctx_st() {
12419    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_ctx_st> = ::std::mem::MaybeUninit::uninit();
12420    let ptr = UNINIT.as_ptr();
12421    assert_eq!(
12422        ::std::mem::size_of::<evp_cipher_ctx_st>(),
12423        152usize,
12424        "Size of evp_cipher_ctx_st"
12425    );
12426    assert_eq!(
12427        ::std::mem::align_of::<evp_cipher_ctx_st>(),
12428        8usize,
12429        "Alignment of evp_cipher_ctx_st"
12430    );
12431    assert_eq!(
12432        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12433        0usize,
12434        "Offset of field: evp_cipher_ctx_st::cipher"
12435    );
12436    assert_eq!(
12437        unsafe { ::std::ptr::addr_of!((*ptr).app_data) as usize - ptr as usize },
12438        8usize,
12439        "Offset of field: evp_cipher_ctx_st::app_data"
12440    );
12441    assert_eq!(
12442        unsafe { ::std::ptr::addr_of!((*ptr).cipher_data) as usize - ptr as usize },
12443        16usize,
12444        "Offset of field: evp_cipher_ctx_st::cipher_data"
12445    );
12446    assert_eq!(
12447        unsafe { ::std::ptr::addr_of!((*ptr).key_len) as usize - ptr as usize },
12448        24usize,
12449        "Offset of field: evp_cipher_ctx_st::key_len"
12450    );
12451    assert_eq!(
12452        unsafe { ::std::ptr::addr_of!((*ptr).encrypt) as usize - ptr as usize },
12453        28usize,
12454        "Offset of field: evp_cipher_ctx_st::encrypt"
12455    );
12456    assert_eq!(
12457        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
12458        32usize,
12459        "Offset of field: evp_cipher_ctx_st::flags"
12460    );
12461    assert_eq!(
12462        unsafe { ::std::ptr::addr_of!((*ptr).oiv) as usize - ptr as usize },
12463        36usize,
12464        "Offset of field: evp_cipher_ctx_st::oiv"
12465    );
12466    assert_eq!(
12467        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12468        52usize,
12469        "Offset of field: evp_cipher_ctx_st::iv"
12470    );
12471    assert_eq!(
12472        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
12473        68usize,
12474        "Offset of field: evp_cipher_ctx_st::buf"
12475    );
12476    assert_eq!(
12477        unsafe { ::std::ptr::addr_of!((*ptr).buf_len) as usize - ptr as usize },
12478        100usize,
12479        "Offset of field: evp_cipher_ctx_st::buf_len"
12480    );
12481    assert_eq!(
12482        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
12483        104usize,
12484        "Offset of field: evp_cipher_ctx_st::num"
12485    );
12486    assert_eq!(
12487        unsafe { ::std::ptr::addr_of!((*ptr).final_used) as usize - ptr as usize },
12488        108usize,
12489        "Offset of field: evp_cipher_ctx_st::final_used"
12490    );
12491    assert_eq!(
12492        unsafe { ::std::ptr::addr_of!((*ptr).final_) as usize - ptr as usize },
12493        112usize,
12494        "Offset of field: evp_cipher_ctx_st::final_"
12495    );
12496    assert_eq!(
12497        unsafe { ::std::ptr::addr_of!((*ptr).poisoned) as usize - ptr as usize },
12498        144usize,
12499        "Offset of field: evp_cipher_ctx_st::poisoned"
12500    );
12501}
12502impl Default for evp_cipher_ctx_st {
12503    fn default() -> Self {
12504        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12505        unsafe {
12506            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12507            s.assume_init()
12508        }
12509    }
12510}
12511#[repr(C)]
12512#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12513pub struct evp_cipher_info_st {
12514    pub cipher: *const EVP_CIPHER,
12515    pub iv: [::std::os::raw::c_uchar; 16usize],
12516}
12517#[test]
12518fn bindgen_test_layout_evp_cipher_info_st() {
12519    const UNINIT: ::std::mem::MaybeUninit<evp_cipher_info_st> = ::std::mem::MaybeUninit::uninit();
12520    let ptr = UNINIT.as_ptr();
12521    assert_eq!(
12522        ::std::mem::size_of::<evp_cipher_info_st>(),
12523        24usize,
12524        "Size of evp_cipher_info_st"
12525    );
12526    assert_eq!(
12527        ::std::mem::align_of::<evp_cipher_info_st>(),
12528        8usize,
12529        "Alignment of evp_cipher_info_st"
12530    );
12531    assert_eq!(
12532        unsafe { ::std::ptr::addr_of!((*ptr).cipher) as usize - ptr as usize },
12533        0usize,
12534        "Offset of field: evp_cipher_info_st::cipher"
12535    );
12536    assert_eq!(
12537        unsafe { ::std::ptr::addr_of!((*ptr).iv) as usize - ptr as usize },
12538        8usize,
12539        "Offset of field: evp_cipher_info_st::iv"
12540    );
12541}
12542impl Default for evp_cipher_info_st {
12543    fn default() -> Self {
12544        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12545        unsafe {
12546            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12547            s.assume_init()
12548        }
12549    }
12550}
12551pub type EVP_CIPHER_INFO = evp_cipher_info_st;
12552extern "C" {
12553    #[link_name = "\u{1}aws_lc_0_40_0_AES_CMAC"]
12554    pub fn AES_CMAC(
12555        out: *mut u8,
12556        key: *const u8,
12557        key_len: usize,
12558        in_: *const u8,
12559        in_len: usize,
12560    ) -> ::std::os::raw::c_int;
12561}
12562extern "C" {
12563    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_CTX_new"]
12564    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
12565}
12566extern "C" {
12567    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_CTX_free"]
12568    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
12569}
12570extern "C" {
12571    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_CTX_copy"]
12572    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::std::os::raw::c_int;
12573}
12574extern "C" {
12575    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_Init"]
12576    pub fn CMAC_Init(
12577        ctx: *mut CMAC_CTX,
12578        key: *const ::std::os::raw::c_void,
12579        key_len: usize,
12580        cipher: *const EVP_CIPHER,
12581        engine: *mut ENGINE,
12582    ) -> ::std::os::raw::c_int;
12583}
12584extern "C" {
12585    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_Reset"]
12586    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::std::os::raw::c_int;
12587}
12588extern "C" {
12589    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_Update"]
12590    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::std::os::raw::c_int;
12591}
12592extern "C" {
12593    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_Final"]
12594    pub fn CMAC_Final(
12595        ctx: *mut CMAC_CTX,
12596        out: *mut u8,
12597        out_len: *mut usize,
12598    ) -> ::std::os::raw::c_int;
12599}
12600extern "C" {
12601    #[link_name = "\u{1}aws_lc_0_40_0_CMAC_CTX_get0_cipher_ctx"]
12602    pub fn CMAC_CTX_get0_cipher_ctx(ctx: *mut CMAC_CTX) -> *mut EVP_CIPHER_CTX;
12603}
12604#[repr(C)]
12605#[derive(Debug, Copy, Clone)]
12606pub struct lhash_st {
12607    _unused: [u8; 0],
12608}
12609pub type _LHASH = lhash_st;
12610extern "C" {
12611    #[link_name = "\u{1}aws_lc_0_40_0_lh_doall_arg"]
12612    pub fn lh_doall_arg(
12613        lh: *mut _LHASH,
12614        func: ::std::option::Option<
12615            unsafe extern "C" fn(
12616                arg1: *mut ::std::os::raw::c_void,
12617                arg2: *mut ::std::os::raw::c_void,
12618            ),
12619        >,
12620        arg: *mut ::std::os::raw::c_void,
12621    );
12622}
12623#[repr(C)]
12624#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12625pub struct conf_value_st {
12626    pub section: *mut ::std::os::raw::c_char,
12627    pub name: *mut ::std::os::raw::c_char,
12628    pub value: *mut ::std::os::raw::c_char,
12629}
12630#[test]
12631fn bindgen_test_layout_conf_value_st() {
12632    const UNINIT: ::std::mem::MaybeUninit<conf_value_st> = ::std::mem::MaybeUninit::uninit();
12633    let ptr = UNINIT.as_ptr();
12634    assert_eq!(
12635        ::std::mem::size_of::<conf_value_st>(),
12636        24usize,
12637        "Size of conf_value_st"
12638    );
12639    assert_eq!(
12640        ::std::mem::align_of::<conf_value_st>(),
12641        8usize,
12642        "Alignment of conf_value_st"
12643    );
12644    assert_eq!(
12645        unsafe { ::std::ptr::addr_of!((*ptr).section) as usize - ptr as usize },
12646        0usize,
12647        "Offset of field: conf_value_st::section"
12648    );
12649    assert_eq!(
12650        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
12651        8usize,
12652        "Offset of field: conf_value_st::name"
12653    );
12654    assert_eq!(
12655        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
12656        16usize,
12657        "Offset of field: conf_value_st::value"
12658    );
12659}
12660impl Default for conf_value_st {
12661    fn default() -> Self {
12662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12663        unsafe {
12664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12665            s.assume_init()
12666        }
12667    }
12668}
12669#[repr(C)]
12670#[derive(Debug, Copy, Clone)]
12671pub struct stack_st_CONF_VALUE {
12672    _unused: [u8; 0],
12673}
12674pub type sk_CONF_VALUE_free_func =
12675    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
12676pub type sk_CONF_VALUE_copy_func =
12677    ::std::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
12678pub type sk_CONF_VALUE_cmp_func = ::std::option::Option<
12679    unsafe extern "C" fn(
12680        arg1: *const *const CONF_VALUE,
12681        arg2: *const *const CONF_VALUE,
12682    ) -> ::std::os::raw::c_int,
12683>;
12684pub type sk_CONF_VALUE_delete_if_func = ::std::option::Option<
12685    unsafe extern "C" fn(
12686        arg1: *mut CONF_VALUE,
12687        arg2: *mut ::std::os::raw::c_void,
12688    ) -> ::std::os::raw::c_int,
12689>;
12690#[repr(C)]
12691#[derive(Debug, Copy, Clone)]
12692pub struct lhash_st_CONF_VALUE {
12693    _unused: [u8; 0],
12694}
12695#[repr(C)]
12696#[derive(Debug, Copy, Clone, PartialEq, Eq)]
12697pub struct conf_st {
12698    pub data: *mut lhash_st_CONF_VALUE,
12699}
12700#[test]
12701fn bindgen_test_layout_conf_st() {
12702    const UNINIT: ::std::mem::MaybeUninit<conf_st> = ::std::mem::MaybeUninit::uninit();
12703    let ptr = UNINIT.as_ptr();
12704    assert_eq!(::std::mem::size_of::<conf_st>(), 8usize, "Size of conf_st");
12705    assert_eq!(
12706        ::std::mem::align_of::<conf_st>(),
12707        8usize,
12708        "Alignment of conf_st"
12709    );
12710    assert_eq!(
12711        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
12712        0usize,
12713        "Offset of field: conf_st::data"
12714    );
12715}
12716impl Default for conf_st {
12717    fn default() -> Self {
12718        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12719        unsafe {
12720            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12721            s.assume_init()
12722        }
12723    }
12724}
12725extern "C" {
12726    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_new"]
12727    pub fn NCONF_new(method: *mut ::std::os::raw::c_void) -> *mut CONF;
12728}
12729extern "C" {
12730    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_free"]
12731    pub fn NCONF_free(conf: *mut CONF);
12732}
12733extern "C" {
12734    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_load"]
12735    pub fn NCONF_load(
12736        conf: *mut CONF,
12737        filename: *const ::std::os::raw::c_char,
12738        out_error_line: *mut ::std::os::raw::c_long,
12739    ) -> ::std::os::raw::c_int;
12740}
12741extern "C" {
12742    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_load_bio"]
12743    pub fn NCONF_load_bio(
12744        conf: *mut CONF,
12745        bio: *mut BIO,
12746        out_error_line: *mut ::std::os::raw::c_long,
12747    ) -> ::std::os::raw::c_int;
12748}
12749extern "C" {
12750    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_get_section"]
12751    pub fn NCONF_get_section(
12752        conf: *const CONF,
12753        section: *const ::std::os::raw::c_char,
12754    ) -> *const stack_st_CONF_VALUE;
12755}
12756extern "C" {
12757    #[link_name = "\u{1}aws_lc_0_40_0_NCONF_get_string"]
12758    pub fn NCONF_get_string(
12759        conf: *const CONF,
12760        section: *const ::std::os::raw::c_char,
12761        name: *const ::std::os::raw::c_char,
12762    ) -> *const ::std::os::raw::c_char;
12763}
12764extern "C" {
12765    #[link_name = "\u{1}aws_lc_0_40_0_CONF_modules_load_file"]
12766    pub fn CONF_modules_load_file(
12767        filename: *const ::std::os::raw::c_char,
12768        appname: *const ::std::os::raw::c_char,
12769        flags: ::std::os::raw::c_ulong,
12770    ) -> ::std::os::raw::c_int;
12771}
12772extern "C" {
12773    #[link_name = "\u{1}aws_lc_0_40_0_CONF_get1_default_config_file"]
12774    pub fn CONF_get1_default_config_file() -> *mut ::std::os::raw::c_char;
12775}
12776extern "C" {
12777    #[link_name = "\u{1}aws_lc_0_40_0_CONF_modules_free"]
12778    pub fn CONF_modules_free();
12779}
12780extern "C" {
12781    #[link_name = "\u{1}aws_lc_0_40_0_CONF_modules_unload"]
12782    pub fn CONF_modules_unload(all: ::std::os::raw::c_int);
12783}
12784extern "C" {
12785    #[link_name = "\u{1}aws_lc_0_40_0_CONF_modules_finish"]
12786    pub fn CONF_modules_finish();
12787}
12788extern "C" {
12789    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_config"]
12790    pub fn OPENSSL_config(config_name: *const ::std::os::raw::c_char);
12791}
12792extern "C" {
12793    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_no_config"]
12794    pub fn OPENSSL_no_config();
12795}
12796extern "C" {
12797    #[link_name = "\u{1}aws_lc_0_40_0_CTR_DRBG_new"]
12798    pub fn CTR_DRBG_new(
12799        entropy: *const u8,
12800        personalization: *const u8,
12801        personalization_len: usize,
12802    ) -> *mut CTR_DRBG_STATE;
12803}
12804extern "C" {
12805    #[link_name = "\u{1}aws_lc_0_40_0_CTR_DRBG_free"]
12806    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
12807}
12808extern "C" {
12809    #[link_name = "\u{1}aws_lc_0_40_0_CTR_DRBG_reseed"]
12810    pub fn CTR_DRBG_reseed(
12811        drbg: *mut CTR_DRBG_STATE,
12812        entropy: *const u8,
12813        additional_data: *const u8,
12814        additional_data_len: usize,
12815    ) -> ::std::os::raw::c_int;
12816}
12817extern "C" {
12818    #[link_name = "\u{1}aws_lc_0_40_0_CTR_DRBG_generate"]
12819    pub fn CTR_DRBG_generate(
12820        drbg: *mut CTR_DRBG_STATE,
12821        out: *mut u8,
12822        out_len: usize,
12823        additional_data: *const u8,
12824        additional_data_len: usize,
12825    ) -> ::std::os::raw::c_int;
12826}
12827extern "C" {
12828    #[link_name = "\u{1}aws_lc_0_40_0_CTR_DRBG_clear"]
12829    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
12830}
12831extern "C" {
12832    #[link_name = "\u{1}aws_lc_0_40_0_X25519_keypair"]
12833    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
12834}
12835extern "C" {
12836    #[link_name = "\u{1}aws_lc_0_40_0_X25519"]
12837    pub fn X25519(
12838        out_shared_key: *mut u8,
12839        private_key: *const u8,
12840        peer_public_value: *const u8,
12841    ) -> ::std::os::raw::c_int;
12842}
12843extern "C" {
12844    #[link_name = "\u{1}aws_lc_0_40_0_X25519_public_from_private"]
12845    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
12846}
12847extern "C" {
12848    #[link_name = "\u{1}aws_lc_0_40_0_ED25519_keypair"]
12849    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
12850}
12851extern "C" {
12852    #[link_name = "\u{1}aws_lc_0_40_0_ED25519_sign"]
12853    pub fn ED25519_sign(
12854        out_sig: *mut u8,
12855        message: *const u8,
12856        message_len: usize,
12857        private_key: *const u8,
12858    ) -> ::std::os::raw::c_int;
12859}
12860extern "C" {
12861    #[link_name = "\u{1}aws_lc_0_40_0_ED25519_verify"]
12862    pub fn ED25519_verify(
12863        message: *const u8,
12864        message_len: usize,
12865        signature: *const u8,
12866        public_key: *const u8,
12867    ) -> ::std::os::raw::c_int;
12868}
12869extern "C" {
12870    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ctx_sign"]
12871    pub fn ED25519ctx_sign(
12872        out_sig: *mut u8,
12873        message: *const u8,
12874        message_len: usize,
12875        private_key: *const u8,
12876        context: *const u8,
12877        context_len: usize,
12878    ) -> ::std::os::raw::c_int;
12879}
12880extern "C" {
12881    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ctx_verify"]
12882    pub fn ED25519ctx_verify(
12883        message: *const u8,
12884        message_len: usize,
12885        signature: *const u8,
12886        public_key: *const u8,
12887        context: *const u8,
12888        context_len: usize,
12889    ) -> ::std::os::raw::c_int;
12890}
12891extern "C" {
12892    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ph_sign"]
12893    pub fn ED25519ph_sign(
12894        out_sig: *mut u8,
12895        message: *const u8,
12896        message_len: usize,
12897        private_key: *const u8,
12898        context: *const u8,
12899        context_len: usize,
12900    ) -> ::std::os::raw::c_int;
12901}
12902extern "C" {
12903    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ph_verify"]
12904    pub fn ED25519ph_verify(
12905        message: *const u8,
12906        message_len: usize,
12907        signature: *const u8,
12908        public_key: *const u8,
12909        context: *const u8,
12910        context_len: usize,
12911    ) -> ::std::os::raw::c_int;
12912}
12913extern "C" {
12914    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ph_sign_digest"]
12915    pub fn ED25519ph_sign_digest(
12916        out_sig: *mut u8,
12917        digest: *const u8,
12918        private_key: *const u8,
12919        context: *const u8,
12920        context_len: usize,
12921    ) -> ::std::os::raw::c_int;
12922}
12923extern "C" {
12924    #[link_name = "\u{1}aws_lc_0_40_0_ED25519ph_verify_digest"]
12925    pub fn ED25519ph_verify_digest(
12926        digest: *const u8,
12927        signature: *const u8,
12928        public_key: *const u8,
12929        context: *const u8,
12930        context_len: usize,
12931    ) -> ::std::os::raw::c_int;
12932}
12933extern "C" {
12934    #[link_name = "\u{1}aws_lc_0_40_0_ED25519_keypair_from_seed"]
12935    pub fn ED25519_keypair_from_seed(
12936        out_public_key: *mut u8,
12937        out_private_key: *mut u8,
12938        seed: *const u8,
12939    );
12940}
12941pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
12942pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
12943pub type spake2_role_t = ::std::os::raw::c_uint;
12944extern "C" {
12945    #[link_name = "\u{1}aws_lc_0_40_0_SPAKE2_CTX_new"]
12946    pub fn SPAKE2_CTX_new(
12947        my_role: spake2_role_t,
12948        my_name: *const u8,
12949        my_name_len: usize,
12950        their_name: *const u8,
12951        their_name_len: usize,
12952    ) -> *mut SPAKE2_CTX;
12953}
12954extern "C" {
12955    #[link_name = "\u{1}aws_lc_0_40_0_SPAKE2_CTX_free"]
12956    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
12957}
12958extern "C" {
12959    #[link_name = "\u{1}aws_lc_0_40_0_SPAKE2_generate_msg"]
12960    pub fn SPAKE2_generate_msg(
12961        ctx: *mut SPAKE2_CTX,
12962        out: *mut u8,
12963        out_len: *mut usize,
12964        max_out_len: usize,
12965        password: *const u8,
12966        password_len: usize,
12967    ) -> ::std::os::raw::c_int;
12968}
12969extern "C" {
12970    #[link_name = "\u{1}aws_lc_0_40_0_SPAKE2_process_msg"]
12971    pub fn SPAKE2_process_msg(
12972        ctx: *mut SPAKE2_CTX,
12973        out_key: *mut u8,
12974        out_key_len: *mut usize,
12975        max_out_key_len: usize,
12976        their_msg: *const u8,
12977        their_msg_len: usize,
12978    ) -> ::std::os::raw::c_int;
12979}
12980#[repr(C)]
12981#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
12982pub struct DES_cblock_st {
12983    pub bytes: [u8; 8usize],
12984}
12985#[test]
12986fn bindgen_test_layout_DES_cblock_st() {
12987    const UNINIT: ::std::mem::MaybeUninit<DES_cblock_st> = ::std::mem::MaybeUninit::uninit();
12988    let ptr = UNINIT.as_ptr();
12989    assert_eq!(
12990        ::std::mem::size_of::<DES_cblock_st>(),
12991        8usize,
12992        "Size of DES_cblock_st"
12993    );
12994    assert_eq!(
12995        ::std::mem::align_of::<DES_cblock_st>(),
12996        1usize,
12997        "Alignment of DES_cblock_st"
12998    );
12999    assert_eq!(
13000        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
13001        0usize,
13002        "Offset of field: DES_cblock_st::bytes"
13003    );
13004}
13005pub type DES_cblock = DES_cblock_st;
13006pub type const_DES_cblock = DES_cblock_st;
13007#[repr(C)]
13008#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
13009pub struct DES_ks {
13010    pub subkeys: [[u32; 2usize]; 16usize],
13011}
13012#[test]
13013fn bindgen_test_layout_DES_ks() {
13014    const UNINIT: ::std::mem::MaybeUninit<DES_ks> = ::std::mem::MaybeUninit::uninit();
13015    let ptr = UNINIT.as_ptr();
13016    assert_eq!(::std::mem::size_of::<DES_ks>(), 128usize, "Size of DES_ks");
13017    assert_eq!(
13018        ::std::mem::align_of::<DES_ks>(),
13019        4usize,
13020        "Alignment of DES_ks"
13021    );
13022    assert_eq!(
13023        unsafe { ::std::ptr::addr_of!((*ptr).subkeys) as usize - ptr as usize },
13024        0usize,
13025        "Offset of field: DES_ks::subkeys"
13026    );
13027}
13028pub type DES_key_schedule = DES_ks;
13029extern "C" {
13030    #[link_name = "\u{1}aws_lc_0_40_0_DES_is_weak_key"]
13031    pub fn DES_is_weak_key(key: *const DES_cblock) -> ::std::os::raw::c_int;
13032}
13033extern "C" {
13034    #[link_name = "\u{1}aws_lc_0_40_0_DES_set_key"]
13035    pub fn DES_set_key(
13036        key: *const DES_cblock,
13037        schedule: *mut DES_key_schedule,
13038    ) -> ::std::os::raw::c_int;
13039}
13040extern "C" {
13041    #[link_name = "\u{1}aws_lc_0_40_0_DES_set_key_unchecked"]
13042    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
13043}
13044extern "C" {
13045    #[link_name = "\u{1}aws_lc_0_40_0_DES_key_sched"]
13046    pub fn DES_key_sched(
13047        key: *const DES_cblock,
13048        schedule: *mut DES_key_schedule,
13049    ) -> ::std::os::raw::c_int;
13050}
13051extern "C" {
13052    #[link_name = "\u{1}aws_lc_0_40_0_DES_set_odd_parity"]
13053    pub fn DES_set_odd_parity(key: *mut DES_cblock);
13054}
13055extern "C" {
13056    #[link_name = "\u{1}aws_lc_0_40_0_DES_ecb_encrypt"]
13057    pub fn DES_ecb_encrypt(
13058        in_: *const DES_cblock,
13059        out: *mut DES_cblock,
13060        schedule: *const DES_key_schedule,
13061        is_encrypt: ::std::os::raw::c_int,
13062    );
13063}
13064extern "C" {
13065    #[link_name = "\u{1}aws_lc_0_40_0_DES_ncbc_encrypt"]
13066    pub fn DES_ncbc_encrypt(
13067        in_: *const u8,
13068        out: *mut u8,
13069        len: usize,
13070        schedule: *const DES_key_schedule,
13071        ivec: *mut DES_cblock,
13072        enc: ::std::os::raw::c_int,
13073    );
13074}
13075extern "C" {
13076    #[link_name = "\u{1}aws_lc_0_40_0_DES_ecb3_encrypt"]
13077    pub fn DES_ecb3_encrypt(
13078        input: *const DES_cblock,
13079        output: *mut DES_cblock,
13080        ks1: *const DES_key_schedule,
13081        ks2: *const DES_key_schedule,
13082        ks3: *const DES_key_schedule,
13083        enc: ::std::os::raw::c_int,
13084    );
13085}
13086extern "C" {
13087    #[link_name = "\u{1}aws_lc_0_40_0_DES_ede3_cbc_encrypt"]
13088    pub fn DES_ede3_cbc_encrypt(
13089        in_: *const u8,
13090        out: *mut u8,
13091        len: usize,
13092        ks1: *const DES_key_schedule,
13093        ks2: *const DES_key_schedule,
13094        ks3: *const DES_key_schedule,
13095        ivec: *mut DES_cblock,
13096        enc: ::std::os::raw::c_int,
13097    );
13098}
13099extern "C" {
13100    #[link_name = "\u{1}aws_lc_0_40_0_DES_ede2_cbc_encrypt"]
13101    pub fn DES_ede2_cbc_encrypt(
13102        in_: *const u8,
13103        out: *mut u8,
13104        len: usize,
13105        ks1: *const DES_key_schedule,
13106        ks2: *const DES_key_schedule,
13107        ivec: *mut DES_cblock,
13108        enc: ::std::os::raw::c_int,
13109    );
13110}
13111extern "C" {
13112    #[link_name = "\u{1}aws_lc_0_40_0_DH_new"]
13113    pub fn DH_new() -> *mut DH;
13114}
13115extern "C" {
13116    #[link_name = "\u{1}aws_lc_0_40_0_DH_new_by_nid"]
13117    pub fn DH_new_by_nid(nid: ::std::os::raw::c_int) -> *mut DH;
13118}
13119extern "C" {
13120    #[link_name = "\u{1}aws_lc_0_40_0_DH_free"]
13121    pub fn DH_free(dh: *mut DH);
13122}
13123extern "C" {
13124    #[link_name = "\u{1}aws_lc_0_40_0_DH_up_ref"]
13125    pub fn DH_up_ref(dh: *mut DH) -> ::std::os::raw::c_int;
13126}
13127extern "C" {
13128    #[link_name = "\u{1}aws_lc_0_40_0_DH_bits"]
13129    pub fn DH_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13130}
13131extern "C" {
13132    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_pub_key"]
13133    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
13134}
13135extern "C" {
13136    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_priv_key"]
13137    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
13138}
13139extern "C" {
13140    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_p"]
13141    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
13142}
13143extern "C" {
13144    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_q"]
13145    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
13146}
13147extern "C" {
13148    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_g"]
13149    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
13150}
13151extern "C" {
13152    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_key"]
13153    pub fn DH_get0_key(
13154        dh: *const DH,
13155        out_pub_key: *mut *const BIGNUM,
13156        out_priv_key: *mut *const BIGNUM,
13157    );
13158}
13159extern "C" {
13160    #[link_name = "\u{1}aws_lc_0_40_0_DH_set0_key"]
13161    pub fn DH_set0_key(
13162        dh: *mut DH,
13163        pub_key: *mut BIGNUM,
13164        priv_key: *mut BIGNUM,
13165    ) -> ::std::os::raw::c_int;
13166}
13167extern "C" {
13168    #[link_name = "\u{1}aws_lc_0_40_0_DH_get0_pqg"]
13169    pub fn DH_get0_pqg(
13170        dh: *const DH,
13171        out_p: *mut *const BIGNUM,
13172        out_q: *mut *const BIGNUM,
13173        out_g: *mut *const BIGNUM,
13174    );
13175}
13176extern "C" {
13177    #[link_name = "\u{1}aws_lc_0_40_0_DH_set0_pqg"]
13178    pub fn DH_set0_pqg(
13179        dh: *mut DH,
13180        p: *mut BIGNUM,
13181        q: *mut BIGNUM,
13182        g: *mut BIGNUM,
13183    ) -> ::std::os::raw::c_int;
13184}
13185extern "C" {
13186    #[link_name = "\u{1}aws_lc_0_40_0_DH_set_length"]
13187    pub fn DH_set_length(dh: *mut DH, priv_length: ::std::os::raw::c_uint)
13188        -> ::std::os::raw::c_int;
13189}
13190extern "C" {
13191    #[link_name = "\u{1}aws_lc_0_40_0_DH_get_rfc7919_2048"]
13192    pub fn DH_get_rfc7919_2048() -> *mut DH;
13193}
13194extern "C" {
13195    #[link_name = "\u{1}aws_lc_0_40_0_DH_get_rfc7919_4096"]
13196    pub fn DH_get_rfc7919_4096() -> *mut DH;
13197}
13198extern "C" {
13199    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_1536"]
13200    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
13201}
13202extern "C" {
13203    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_2048"]
13204    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
13205}
13206extern "C" {
13207    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_3072"]
13208    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
13209}
13210extern "C" {
13211    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_4096"]
13212    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
13213}
13214extern "C" {
13215    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_6144"]
13216    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
13217}
13218extern "C" {
13219    #[link_name = "\u{1}aws_lc_0_40_0_BN_get_rfc3526_prime_8192"]
13220    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
13221}
13222extern "C" {
13223    #[link_name = "\u{1}aws_lc_0_40_0_DH_generate_parameters_ex"]
13224    pub fn DH_generate_parameters_ex(
13225        dh: *mut DH,
13226        prime_bits: ::std::os::raw::c_int,
13227        generator: ::std::os::raw::c_int,
13228        cb: *mut BN_GENCB,
13229    ) -> ::std::os::raw::c_int;
13230}
13231extern "C" {
13232    #[link_name = "\u{1}aws_lc_0_40_0_DH_generate_key"]
13233    pub fn DH_generate_key(dh: *mut DH) -> ::std::os::raw::c_int;
13234}
13235extern "C" {
13236    #[link_name = "\u{1}aws_lc_0_40_0_DH_compute_key_padded"]
13237    pub fn DH_compute_key_padded(
13238        out: *mut u8,
13239        peers_key: *const BIGNUM,
13240        dh: *mut DH,
13241    ) -> ::std::os::raw::c_int;
13242}
13243extern "C" {
13244    #[link_name = "\u{1}aws_lc_0_40_0_DH_compute_key_hashed"]
13245    pub fn DH_compute_key_hashed(
13246        dh: *mut DH,
13247        out: *mut u8,
13248        out_len: *mut usize,
13249        max_out_len: usize,
13250        peers_key: *const BIGNUM,
13251        digest: *const EVP_MD,
13252    ) -> ::std::os::raw::c_int;
13253}
13254extern "C" {
13255    #[link_name = "\u{1}aws_lc_0_40_0_DH_size"]
13256    pub fn DH_size(dh: *const DH) -> ::std::os::raw::c_int;
13257}
13258extern "C" {
13259    #[link_name = "\u{1}aws_lc_0_40_0_DH_num_bits"]
13260    pub fn DH_num_bits(dh: *const DH) -> ::std::os::raw::c_uint;
13261}
13262extern "C" {
13263    #[link_name = "\u{1}aws_lc_0_40_0_DH_check"]
13264    pub fn DH_check(dh: *const DH, out_flags: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13265}
13266extern "C" {
13267    #[link_name = "\u{1}aws_lc_0_40_0_DH_check_pub_key"]
13268    pub fn DH_check_pub_key(
13269        dh: *const DH,
13270        pub_key: *const BIGNUM,
13271        out_flags: *mut ::std::os::raw::c_int,
13272    ) -> ::std::os::raw::c_int;
13273}
13274extern "C" {
13275    #[link_name = "\u{1}aws_lc_0_40_0_DHparams_dup"]
13276    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
13277}
13278extern "C" {
13279    #[link_name = "\u{1}aws_lc_0_40_0_DH_parse_parameters"]
13280    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
13281}
13282extern "C" {
13283    #[link_name = "\u{1}aws_lc_0_40_0_DH_marshal_parameters"]
13284    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::std::os::raw::c_int;
13285}
13286extern "C" {
13287    #[link_name = "\u{1}aws_lc_0_40_0_DH_generate_parameters"]
13288    pub fn DH_generate_parameters(
13289        prime_len: ::std::os::raw::c_int,
13290        generator: ::std::os::raw::c_int,
13291        callback: ::std::option::Option<
13292            unsafe extern "C" fn(
13293                arg1: ::std::os::raw::c_int,
13294                arg2: ::std::os::raw::c_int,
13295                arg3: *mut ::std::os::raw::c_void,
13296            ),
13297        >,
13298        cb_arg: *mut ::std::os::raw::c_void,
13299    ) -> *mut DH;
13300}
13301extern "C" {
13302    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DHparams"]
13303    pub fn d2i_DHparams(
13304        ret: *mut *mut DH,
13305        inp: *mut *const ::std::os::raw::c_uchar,
13306        len: ::std::os::raw::c_long,
13307    ) -> *mut DH;
13308}
13309extern "C" {
13310    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DHparams"]
13311    pub fn i2d_DHparams(
13312        in_: *const DH,
13313        outp: *mut *mut ::std::os::raw::c_uchar,
13314    ) -> ::std::os::raw::c_int;
13315}
13316extern "C" {
13317    #[link_name = "\u{1}aws_lc_0_40_0_DH_compute_key"]
13318    pub fn DH_compute_key(
13319        out: *mut u8,
13320        peers_key: *const BIGNUM,
13321        dh: *mut DH,
13322    ) -> ::std::os::raw::c_int;
13323}
13324extern "C" {
13325    #[link_name = "\u{1}aws_lc_0_40_0_DH_get_2048_256"]
13326    pub fn DH_get_2048_256() -> *mut DH;
13327}
13328extern "C" {
13329    #[link_name = "\u{1}aws_lc_0_40_0_DH_clear_flags"]
13330    pub fn DH_clear_flags(dh: *mut DH, flags: ::std::os::raw::c_int);
13331}
13332extern "C" {
13333    #[link_name = "\u{1}aws_lc_0_40_0_EVP_md4"]
13334    pub fn EVP_md4() -> *const EVP_MD;
13335}
13336extern "C" {
13337    #[link_name = "\u{1}aws_lc_0_40_0_EVP_md5"]
13338    pub fn EVP_md5() -> *const EVP_MD;
13339}
13340extern "C" {
13341    #[link_name = "\u{1}aws_lc_0_40_0_EVP_ripemd160"]
13342    pub fn EVP_ripemd160() -> *const EVP_MD;
13343}
13344extern "C" {
13345    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha1"]
13346    pub fn EVP_sha1() -> *const EVP_MD;
13347}
13348extern "C" {
13349    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha224"]
13350    pub fn EVP_sha224() -> *const EVP_MD;
13351}
13352extern "C" {
13353    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha256"]
13354    pub fn EVP_sha256() -> *const EVP_MD;
13355}
13356extern "C" {
13357    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha384"]
13358    pub fn EVP_sha384() -> *const EVP_MD;
13359}
13360extern "C" {
13361    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha512"]
13362    pub fn EVP_sha512() -> *const EVP_MD;
13363}
13364extern "C" {
13365    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha512_224"]
13366    pub fn EVP_sha512_224() -> *const EVP_MD;
13367}
13368extern "C" {
13369    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha512_256"]
13370    pub fn EVP_sha512_256() -> *const EVP_MD;
13371}
13372extern "C" {
13373    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha3_224"]
13374    pub fn EVP_sha3_224() -> *const EVP_MD;
13375}
13376extern "C" {
13377    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha3_256"]
13378    pub fn EVP_sha3_256() -> *const EVP_MD;
13379}
13380extern "C" {
13381    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha3_384"]
13382    pub fn EVP_sha3_384() -> *const EVP_MD;
13383}
13384extern "C" {
13385    #[link_name = "\u{1}aws_lc_0_40_0_EVP_sha3_512"]
13386    pub fn EVP_sha3_512() -> *const EVP_MD;
13387}
13388extern "C" {
13389    #[link_name = "\u{1}aws_lc_0_40_0_EVP_shake128"]
13390    pub fn EVP_shake128() -> *const EVP_MD;
13391}
13392extern "C" {
13393    #[link_name = "\u{1}aws_lc_0_40_0_EVP_shake256"]
13394    pub fn EVP_shake256() -> *const EVP_MD;
13395}
13396extern "C" {
13397    #[link_name = "\u{1}aws_lc_0_40_0_EVP_blake2b256"]
13398    pub fn EVP_blake2b256() -> *const EVP_MD;
13399}
13400extern "C" {
13401    #[link_name = "\u{1}aws_lc_0_40_0_EVP_md5_sha1"]
13402    pub fn EVP_md5_sha1() -> *const EVP_MD;
13403}
13404extern "C" {
13405    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_digestbynid"]
13406    pub fn EVP_get_digestbynid(nid: ::std::os::raw::c_int) -> *const EVP_MD;
13407}
13408extern "C" {
13409    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_digestbyobj"]
13410    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
13411}
13412extern "C" {
13413    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_init"]
13414    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
13415}
13416extern "C" {
13417    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_new"]
13418    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
13419}
13420extern "C" {
13421    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_cleanup"]
13422    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13423}
13424extern "C" {
13425    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_cleanse"]
13426    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
13427}
13428extern "C" {
13429    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_free"]
13430    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
13431}
13432extern "C" {
13433    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_copy_ex"]
13434    pub fn EVP_MD_CTX_copy_ex(
13435        out: *mut EVP_MD_CTX,
13436        in_: *const EVP_MD_CTX,
13437    ) -> ::std::os::raw::c_int;
13438}
13439extern "C" {
13440    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_move"]
13441    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
13442}
13443extern "C" {
13444    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_reset"]
13445    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
13446}
13447extern "C" {
13448    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestInit_ex"]
13449    pub fn EVP_DigestInit_ex(
13450        ctx: *mut EVP_MD_CTX,
13451        type_: *const EVP_MD,
13452        engine: *mut ENGINE,
13453    ) -> ::std::os::raw::c_int;
13454}
13455extern "C" {
13456    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestInit"]
13457    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
13458}
13459extern "C" {
13460    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestUpdate"]
13461    pub fn EVP_DigestUpdate(
13462        ctx: *mut EVP_MD_CTX,
13463        data: *const ::std::os::raw::c_void,
13464        len: usize,
13465    ) -> ::std::os::raw::c_int;
13466}
13467extern "C" {
13468    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestFinal_ex"]
13469    pub fn EVP_DigestFinal_ex(
13470        ctx: *mut EVP_MD_CTX,
13471        md_out: *mut u8,
13472        out_size: *mut ::std::os::raw::c_uint,
13473    ) -> ::std::os::raw::c_int;
13474}
13475extern "C" {
13476    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestFinal"]
13477    pub fn EVP_DigestFinal(
13478        ctx: *mut EVP_MD_CTX,
13479        md_out: *mut u8,
13480        out_size: *mut ::std::os::raw::c_uint,
13481    ) -> ::std::os::raw::c_int;
13482}
13483extern "C" {
13484    #[link_name = "\u{1}aws_lc_0_40_0_EVP_Digest"]
13485    pub fn EVP_Digest(
13486        data: *const ::std::os::raw::c_void,
13487        len: usize,
13488        md_out: *mut u8,
13489        out_size: *mut ::std::os::raw::c_uint,
13490        type_: *const EVP_MD,
13491        impl_: *mut ENGINE,
13492    ) -> ::std::os::raw::c_int;
13493}
13494extern "C" {
13495    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_type"]
13496    pub fn EVP_MD_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
13497}
13498extern "C" {
13499    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_flags"]
13500    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
13501}
13502extern "C" {
13503    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_size"]
13504    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
13505}
13506extern "C" {
13507    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_block_size"]
13508    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
13509}
13510extern "C" {
13511    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_md"]
13512    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
13513}
13514extern "C" {
13515    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_size"]
13516    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
13517}
13518extern "C" {
13519    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_block_size"]
13520    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
13521}
13522extern "C" {
13523    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_type"]
13524    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13525}
13526extern "C" {
13527    #[link_name = "\u{1}aws_lc_0_40_0_EVP_parse_digest_algorithm"]
13528    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
13529}
13530extern "C" {
13531    #[link_name = "\u{1}aws_lc_0_40_0_EVP_marshal_digest_algorithm"]
13532    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::std::os::raw::c_int;
13533}
13534extern "C" {
13535    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_copy"]
13536    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::std::os::raw::c_int;
13537}
13538extern "C" {
13539    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_digestbyname"]
13540    pub fn EVP_get_digestbyname(arg1: *const ::std::os::raw::c_char) -> *const EVP_MD;
13541}
13542extern "C" {
13543    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_create"]
13544    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
13545}
13546extern "C" {
13547    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_destroy"]
13548    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
13549}
13550extern "C" {
13551    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestFinalXOF"]
13552    pub fn EVP_DigestFinalXOF(
13553        ctx: *mut EVP_MD_CTX,
13554        out: *mut u8,
13555        len: usize,
13556    ) -> ::std::os::raw::c_int;
13557}
13558extern "C" {
13559    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestSqueeze"]
13560    pub fn EVP_DigestSqueeze(
13561        ctx: *mut EVP_MD_CTX,
13562        out: *mut u8,
13563        len: usize,
13564    ) -> ::std::os::raw::c_int;
13565}
13566extern "C" {
13567    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_meth_get_flags"]
13568    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
13569}
13570extern "C" {
13571    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_nid"]
13572    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::std::os::raw::c_int;
13573}
13574extern "C" {
13575    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_set_pkey_ctx"]
13576    pub fn EVP_MD_CTX_set_pkey_ctx(ctx: *mut EVP_MD_CTX, pctx: *mut EVP_PKEY_CTX);
13577}
13578extern "C" {
13579    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_get_pkey_ctx"]
13580    pub fn EVP_MD_CTX_get_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13581}
13582extern "C" {
13583    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_pkey_ctx"]
13584    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
13585}
13586#[repr(C)]
13587#[derive(Debug, Copy, Clone)]
13588pub struct evp_md_pctx_ops {
13589    _unused: [u8; 0],
13590}
13591#[repr(C)]
13592#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13593pub struct env_md_ctx_st {
13594    pub digest: *const EVP_MD,
13595    pub md_data: *mut ::std::os::raw::c_void,
13596    pub update: ::std::option::Option<
13597        unsafe extern "C" fn(
13598            ctx: *mut EVP_MD_CTX,
13599            data: *const ::std::os::raw::c_void,
13600            count: usize,
13601        ) -> ::std::os::raw::c_int,
13602    >,
13603    pub pctx: *mut EVP_PKEY_CTX,
13604    pub pctx_ops: *const evp_md_pctx_ops,
13605    pub flags: ::std::os::raw::c_ulong,
13606}
13607#[test]
13608fn bindgen_test_layout_env_md_ctx_st() {
13609    const UNINIT: ::std::mem::MaybeUninit<env_md_ctx_st> = ::std::mem::MaybeUninit::uninit();
13610    let ptr = UNINIT.as_ptr();
13611    assert_eq!(
13612        ::std::mem::size_of::<env_md_ctx_st>(),
13613        48usize,
13614        "Size of env_md_ctx_st"
13615    );
13616    assert_eq!(
13617        ::std::mem::align_of::<env_md_ctx_st>(),
13618        8usize,
13619        "Alignment of env_md_ctx_st"
13620    );
13621    assert_eq!(
13622        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
13623        0usize,
13624        "Offset of field: env_md_ctx_st::digest"
13625    );
13626    assert_eq!(
13627        unsafe { ::std::ptr::addr_of!((*ptr).md_data) as usize - ptr as usize },
13628        8usize,
13629        "Offset of field: env_md_ctx_st::md_data"
13630    );
13631    assert_eq!(
13632        unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize },
13633        16usize,
13634        "Offset of field: env_md_ctx_st::update"
13635    );
13636    assert_eq!(
13637        unsafe { ::std::ptr::addr_of!((*ptr).pctx) as usize - ptr as usize },
13638        24usize,
13639        "Offset of field: env_md_ctx_st::pctx"
13640    );
13641    assert_eq!(
13642        unsafe { ::std::ptr::addr_of!((*ptr).pctx_ops) as usize - ptr as usize },
13643        32usize,
13644        "Offset of field: env_md_ctx_st::pctx_ops"
13645    );
13646    assert_eq!(
13647        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
13648        40usize,
13649        "Offset of field: env_md_ctx_st::flags"
13650    );
13651}
13652impl Default for env_md_ctx_st {
13653    fn default() -> Self {
13654        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13655        unsafe {
13656            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13657            s.assume_init()
13658        }
13659    }
13660}
13661extern "C" {
13662    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_unstable_sha3_enable"]
13663    pub fn EVP_MD_unstable_sha3_enable(enable: bool);
13664}
13665extern "C" {
13666    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_unstable_sha3_is_enabled"]
13667    pub fn EVP_MD_unstable_sha3_is_enabled() -> bool;
13668}
13669extern "C" {
13670    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_CTX_set_flags"]
13671    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::std::os::raw::c_int);
13672}
13673extern "C" {
13674    #[link_name = "\u{1}aws_lc_0_40_0_EVP_add_digest"]
13675    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::std::os::raw::c_int;
13676}
13677extern "C" {
13678    #[link_name = "\u{1}aws_lc_0_40_0_EVP_md_null"]
13679    pub fn EVP_md_null() -> *const EVP_MD;
13680}
13681extern "C" {
13682    #[link_name = "\u{1}aws_lc_0_40_0_DSA_new"]
13683    pub fn DSA_new() -> *mut DSA;
13684}
13685extern "C" {
13686    #[link_name = "\u{1}aws_lc_0_40_0_DSA_free"]
13687    pub fn DSA_free(dsa: *mut DSA);
13688}
13689extern "C" {
13690    #[link_name = "\u{1}aws_lc_0_40_0_DSA_up_ref"]
13691    pub fn DSA_up_ref(dsa: *mut DSA) -> ::std::os::raw::c_int;
13692}
13693extern "C" {
13694    #[link_name = "\u{1}aws_lc_0_40_0_DSA_print"]
13695    pub fn DSA_print(
13696        bio: *mut BIO,
13697        dsa: *const DSA,
13698        indent: ::std::os::raw::c_int,
13699    ) -> ::std::os::raw::c_int;
13700}
13701extern "C" {
13702    #[link_name = "\u{1}aws_lc_0_40_0_DSA_print_fp"]
13703    pub fn DSA_print_fp(
13704        fp: *mut FILE,
13705        dsa: *const DSA,
13706        indent: ::std::os::raw::c_int,
13707    ) -> ::std::os::raw::c_int;
13708}
13709extern "C" {
13710    #[link_name = "\u{1}aws_lc_0_40_0_DSA_bits"]
13711    pub fn DSA_bits(dsa: *const DSA) -> ::std::os::raw::c_uint;
13712}
13713extern "C" {
13714    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_pub_key"]
13715    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
13716}
13717extern "C" {
13718    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_priv_key"]
13719    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
13720}
13721extern "C" {
13722    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_p"]
13723    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
13724}
13725extern "C" {
13726    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_q"]
13727    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
13728}
13729extern "C" {
13730    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_g"]
13731    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
13732}
13733extern "C" {
13734    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_key"]
13735    pub fn DSA_get0_key(
13736        dsa: *const DSA,
13737        out_pub_key: *mut *const BIGNUM,
13738        out_priv_key: *mut *const BIGNUM,
13739    );
13740}
13741extern "C" {
13742    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get0_pqg"]
13743    pub fn DSA_get0_pqg(
13744        dsa: *const DSA,
13745        out_p: *mut *const BIGNUM,
13746        out_q: *mut *const BIGNUM,
13747        out_g: *mut *const BIGNUM,
13748    );
13749}
13750extern "C" {
13751    #[link_name = "\u{1}aws_lc_0_40_0_DSA_set0_key"]
13752    pub fn DSA_set0_key(
13753        dsa: *mut DSA,
13754        pub_key: *mut BIGNUM,
13755        priv_key: *mut BIGNUM,
13756    ) -> ::std::os::raw::c_int;
13757}
13758extern "C" {
13759    #[link_name = "\u{1}aws_lc_0_40_0_DSA_set0_pqg"]
13760    pub fn DSA_set0_pqg(
13761        dsa: *mut DSA,
13762        p: *mut BIGNUM,
13763        q: *mut BIGNUM,
13764        g: *mut BIGNUM,
13765    ) -> ::std::os::raw::c_int;
13766}
13767extern "C" {
13768    #[link_name = "\u{1}aws_lc_0_40_0_DSA_generate_parameters_ex"]
13769    pub fn DSA_generate_parameters_ex(
13770        dsa: *mut DSA,
13771        bits: ::std::os::raw::c_uint,
13772        seed: *const u8,
13773        seed_len: usize,
13774        out_counter: *mut ::std::os::raw::c_int,
13775        out_h: *mut ::std::os::raw::c_ulong,
13776        cb: *mut BN_GENCB,
13777    ) -> ::std::os::raw::c_int;
13778}
13779extern "C" {
13780    #[link_name = "\u{1}aws_lc_0_40_0_DSAparams_dup"]
13781    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
13782}
13783extern "C" {
13784    #[link_name = "\u{1}aws_lc_0_40_0_DSA_generate_key"]
13785    pub fn DSA_generate_key(dsa: *mut DSA) -> ::std::os::raw::c_int;
13786}
13787#[repr(C)]
13788#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13789pub struct DSA_SIG_st {
13790    pub r: *mut BIGNUM,
13791    pub s: *mut BIGNUM,
13792}
13793#[test]
13794fn bindgen_test_layout_DSA_SIG_st() {
13795    const UNINIT: ::std::mem::MaybeUninit<DSA_SIG_st> = ::std::mem::MaybeUninit::uninit();
13796    let ptr = UNINIT.as_ptr();
13797    assert_eq!(
13798        ::std::mem::size_of::<DSA_SIG_st>(),
13799        16usize,
13800        "Size of DSA_SIG_st"
13801    );
13802    assert_eq!(
13803        ::std::mem::align_of::<DSA_SIG_st>(),
13804        8usize,
13805        "Alignment of DSA_SIG_st"
13806    );
13807    assert_eq!(
13808        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
13809        0usize,
13810        "Offset of field: DSA_SIG_st::r"
13811    );
13812    assert_eq!(
13813        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
13814        8usize,
13815        "Offset of field: DSA_SIG_st::s"
13816    );
13817}
13818impl Default for DSA_SIG_st {
13819    fn default() -> Self {
13820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
13821        unsafe {
13822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
13823            s.assume_init()
13824        }
13825    }
13826}
13827extern "C" {
13828    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_new"]
13829    pub fn DSA_SIG_new() -> *mut DSA_SIG;
13830}
13831extern "C" {
13832    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_free"]
13833    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
13834}
13835extern "C" {
13836    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_get0"]
13837    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
13838}
13839extern "C" {
13840    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_set0"]
13841    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM)
13842        -> ::std::os::raw::c_int;
13843}
13844extern "C" {
13845    #[link_name = "\u{1}aws_lc_0_40_0_DSA_do_sign"]
13846    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
13847}
13848extern "C" {
13849    #[link_name = "\u{1}aws_lc_0_40_0_DSA_do_verify"]
13850    pub fn DSA_do_verify(
13851        digest: *const u8,
13852        digest_len: usize,
13853        sig: *const DSA_SIG,
13854        dsa: *const DSA,
13855    ) -> ::std::os::raw::c_int;
13856}
13857extern "C" {
13858    #[link_name = "\u{1}aws_lc_0_40_0_DSA_do_check_signature"]
13859    pub fn DSA_do_check_signature(
13860        out_valid: *mut ::std::os::raw::c_int,
13861        digest: *const u8,
13862        digest_len: usize,
13863        sig: *const DSA_SIG,
13864        dsa: *const DSA,
13865    ) -> ::std::os::raw::c_int;
13866}
13867extern "C" {
13868    #[link_name = "\u{1}aws_lc_0_40_0_DSA_sign"]
13869    pub fn DSA_sign(
13870        type_: ::std::os::raw::c_int,
13871        digest: *const u8,
13872        digest_len: usize,
13873        out_sig: *mut u8,
13874        out_siglen: *mut ::std::os::raw::c_uint,
13875        dsa: *const DSA,
13876    ) -> ::std::os::raw::c_int;
13877}
13878extern "C" {
13879    #[link_name = "\u{1}aws_lc_0_40_0_DSA_verify"]
13880    pub fn DSA_verify(
13881        type_: ::std::os::raw::c_int,
13882        digest: *const u8,
13883        digest_len: usize,
13884        sig: *const u8,
13885        sig_len: usize,
13886        dsa: *const DSA,
13887    ) -> ::std::os::raw::c_int;
13888}
13889extern "C" {
13890    #[link_name = "\u{1}aws_lc_0_40_0_DSA_check_signature"]
13891    pub fn DSA_check_signature(
13892        out_valid: *mut ::std::os::raw::c_int,
13893        digest: *const u8,
13894        digest_len: usize,
13895        sig: *const u8,
13896        sig_len: usize,
13897        dsa: *const DSA,
13898    ) -> ::std::os::raw::c_int;
13899}
13900extern "C" {
13901    #[link_name = "\u{1}aws_lc_0_40_0_DSA_size"]
13902    pub fn DSA_size(dsa: *const DSA) -> ::std::os::raw::c_int;
13903}
13904extern "C" {
13905    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_parse"]
13906    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
13907}
13908extern "C" {
13909    #[link_name = "\u{1}aws_lc_0_40_0_DSA_SIG_marshal"]
13910    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::std::os::raw::c_int;
13911}
13912extern "C" {
13913    #[link_name = "\u{1}aws_lc_0_40_0_DSA_parse_public_key"]
13914    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
13915}
13916extern "C" {
13917    #[link_name = "\u{1}aws_lc_0_40_0_DSA_marshal_public_key"]
13918    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13919}
13920extern "C" {
13921    #[link_name = "\u{1}aws_lc_0_40_0_DSA_parse_private_key"]
13922    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
13923}
13924extern "C" {
13925    #[link_name = "\u{1}aws_lc_0_40_0_DSA_marshal_private_key"]
13926    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13927}
13928extern "C" {
13929    #[link_name = "\u{1}aws_lc_0_40_0_DSA_parse_parameters"]
13930    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
13931}
13932extern "C" {
13933    #[link_name = "\u{1}aws_lc_0_40_0_DSA_marshal_parameters"]
13934    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::std::os::raw::c_int;
13935}
13936extern "C" {
13937    #[link_name = "\u{1}aws_lc_0_40_0_DSA_dup_DH"]
13938    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
13939}
13940extern "C" {
13941    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get_ex_new_index"]
13942    pub fn DSA_get_ex_new_index(
13943        argl: ::std::os::raw::c_long,
13944        argp: *mut ::std::os::raw::c_void,
13945        unused: *mut CRYPTO_EX_unused,
13946        dup_unused: CRYPTO_EX_dup,
13947        free_func: CRYPTO_EX_free,
13948    ) -> ::std::os::raw::c_int;
13949}
13950extern "C" {
13951    #[link_name = "\u{1}aws_lc_0_40_0_DSA_set_ex_data"]
13952    pub fn DSA_set_ex_data(
13953        dsa: *mut DSA,
13954        idx: ::std::os::raw::c_int,
13955        arg: *mut ::std::os::raw::c_void,
13956    ) -> ::std::os::raw::c_int;
13957}
13958extern "C" {
13959    #[link_name = "\u{1}aws_lc_0_40_0_DSA_get_ex_data"]
13960    pub fn DSA_get_ex_data(
13961        dsa: *const DSA,
13962        idx: ::std::os::raw::c_int,
13963    ) -> *mut ::std::os::raw::c_void;
13964}
13965extern "C" {
13966    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSA_SIG"]
13967    pub fn d2i_DSA_SIG(
13968        out_sig: *mut *mut DSA_SIG,
13969        inp: *mut *const u8,
13970        len: ::std::os::raw::c_long,
13971    ) -> *mut DSA_SIG;
13972}
13973extern "C" {
13974    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSA_SIG"]
13975    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13976}
13977extern "C" {
13978    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSAPublicKey"]
13979    pub fn d2i_DSAPublicKey(
13980        out: *mut *mut DSA,
13981        inp: *mut *const u8,
13982        len: ::std::os::raw::c_long,
13983    ) -> *mut DSA;
13984}
13985extern "C" {
13986    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSAPublicKey"]
13987    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
13988}
13989extern "C" {
13990    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSAPrivateKey"]
13991    pub fn d2i_DSAPrivateKey(
13992        out: *mut *mut DSA,
13993        inp: *mut *const u8,
13994        len: ::std::os::raw::c_long,
13995    ) -> *mut DSA;
13996}
13997extern "C" {
13998    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSAPrivateKey"]
13999    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14000}
14001extern "C" {
14002    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSAparams"]
14003    pub fn d2i_DSAparams(
14004        out: *mut *mut DSA,
14005        inp: *mut *const u8,
14006        len: ::std::os::raw::c_long,
14007    ) -> *mut DSA;
14008}
14009extern "C" {
14010    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSAparams"]
14011    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14012}
14013#[repr(u32)]
14014#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14015pub enum point_conversion_form_t {
14016    POINT_CONVERSION_COMPRESSED = 2,
14017    POINT_CONVERSION_UNCOMPRESSED = 4,
14018    POINT_CONVERSION_HYBRID = 6,
14019}
14020extern "C" {
14021    #[link_name = "\u{1}aws_lc_0_40_0_EC_group_p224"]
14022    pub fn EC_group_p224() -> *const EC_GROUP;
14023}
14024extern "C" {
14025    #[link_name = "\u{1}aws_lc_0_40_0_EC_group_p256"]
14026    pub fn EC_group_p256() -> *const EC_GROUP;
14027}
14028extern "C" {
14029    #[link_name = "\u{1}aws_lc_0_40_0_EC_group_p384"]
14030    pub fn EC_group_p384() -> *const EC_GROUP;
14031}
14032extern "C" {
14033    #[link_name = "\u{1}aws_lc_0_40_0_EC_group_p521"]
14034    pub fn EC_group_p521() -> *const EC_GROUP;
14035}
14036extern "C" {
14037    #[link_name = "\u{1}aws_lc_0_40_0_EC_group_secp256k1"]
14038    pub fn EC_group_secp256k1() -> *const EC_GROUP;
14039}
14040extern "C" {
14041    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_new_by_curve_name"]
14042    pub fn EC_GROUP_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14043}
14044extern "C" {
14045    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_new_by_curve_name_mutable"]
14046    pub fn EC_GROUP_new_by_curve_name_mutable(nid: ::std::os::raw::c_int) -> *mut EC_GROUP;
14047}
14048extern "C" {
14049    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_cmp"]
14050    pub fn EC_GROUP_cmp(
14051        a: *const EC_GROUP,
14052        b: *const EC_GROUP,
14053        ignored: *mut BN_CTX,
14054    ) -> ::std::os::raw::c_int;
14055}
14056extern "C" {
14057    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get0_generator"]
14058    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
14059}
14060extern "C" {
14061    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get0_order"]
14062    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
14063}
14064extern "C" {
14065    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_order_bits"]
14066    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14067}
14068extern "C" {
14069    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_cofactor"]
14070    pub fn EC_GROUP_get_cofactor(
14071        group: *const EC_GROUP,
14072        cofactor: *mut BIGNUM,
14073        ctx: *mut BN_CTX,
14074    ) -> ::std::os::raw::c_int;
14075}
14076extern "C" {
14077    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_curve_GFp"]
14078    pub fn EC_GROUP_get_curve_GFp(
14079        group: *const EC_GROUP,
14080        out_p: *mut BIGNUM,
14081        out_a: *mut BIGNUM,
14082        out_b: *mut BIGNUM,
14083        ctx: *mut BN_CTX,
14084    ) -> ::std::os::raw::c_int;
14085}
14086extern "C" {
14087    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_curve_name"]
14088    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14089}
14090extern "C" {
14091    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_degree"]
14092    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::std::os::raw::c_uint;
14093}
14094extern "C" {
14095    #[link_name = "\u{1}aws_lc_0_40_0_EC_curve_nid2nist"]
14096    pub fn EC_curve_nid2nist(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
14097}
14098extern "C" {
14099    #[link_name = "\u{1}aws_lc_0_40_0_EC_curve_nist2nid"]
14100    pub fn EC_curve_nist2nid(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
14101}
14102extern "C" {
14103    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_new"]
14104    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
14105}
14106extern "C" {
14107    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_free"]
14108    pub fn EC_POINT_free(point: *mut EC_POINT);
14109}
14110extern "C" {
14111    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_copy"]
14112    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::std::os::raw::c_int;
14113}
14114extern "C" {
14115    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_dup"]
14116    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
14117}
14118extern "C" {
14119    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_set_to_infinity"]
14120    pub fn EC_POINT_set_to_infinity(
14121        group: *const EC_GROUP,
14122        point: *mut EC_POINT,
14123    ) -> ::std::os::raw::c_int;
14124}
14125extern "C" {
14126    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_is_at_infinity"]
14127    pub fn EC_POINT_is_at_infinity(
14128        group: *const EC_GROUP,
14129        point: *const EC_POINT,
14130    ) -> ::std::os::raw::c_int;
14131}
14132extern "C" {
14133    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_is_on_curve"]
14134    pub fn EC_POINT_is_on_curve(
14135        group: *const EC_GROUP,
14136        point: *const EC_POINT,
14137        ctx: *mut BN_CTX,
14138    ) -> ::std::os::raw::c_int;
14139}
14140extern "C" {
14141    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_cmp"]
14142    pub fn EC_POINT_cmp(
14143        group: *const EC_GROUP,
14144        a: *const EC_POINT,
14145        b: *const EC_POINT,
14146        ctx: *mut BN_CTX,
14147    ) -> ::std::os::raw::c_int;
14148}
14149extern "C" {
14150    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_get_affine_coordinates_GFp"]
14151    pub fn EC_POINT_get_affine_coordinates_GFp(
14152        group: *const EC_GROUP,
14153        point: *const EC_POINT,
14154        x: *mut BIGNUM,
14155        y: *mut BIGNUM,
14156        ctx: *mut BN_CTX,
14157    ) -> ::std::os::raw::c_int;
14158}
14159extern "C" {
14160    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_get_affine_coordinates"]
14161    pub fn EC_POINT_get_affine_coordinates(
14162        group: *const EC_GROUP,
14163        point: *const EC_POINT,
14164        x: *mut BIGNUM,
14165        y: *mut BIGNUM,
14166        ctx: *mut BN_CTX,
14167    ) -> ::std::os::raw::c_int;
14168}
14169extern "C" {
14170    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_set_affine_coordinates_GFp"]
14171    pub fn EC_POINT_set_affine_coordinates_GFp(
14172        group: *const EC_GROUP,
14173        point: *mut EC_POINT,
14174        x: *const BIGNUM,
14175        y: *const BIGNUM,
14176        ctx: *mut BN_CTX,
14177    ) -> ::std::os::raw::c_int;
14178}
14179extern "C" {
14180    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_set_affine_coordinates"]
14181    pub fn EC_POINT_set_affine_coordinates(
14182        group: *const EC_GROUP,
14183        point: *mut EC_POINT,
14184        x: *const BIGNUM,
14185        y: *const BIGNUM,
14186        ctx: *mut BN_CTX,
14187    ) -> ::std::os::raw::c_int;
14188}
14189extern "C" {
14190    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_point2oct"]
14191    pub fn EC_POINT_point2oct(
14192        group: *const EC_GROUP,
14193        point: *const EC_POINT,
14194        form: point_conversion_form_t,
14195        buf: *mut u8,
14196        len: usize,
14197        ctx: *mut BN_CTX,
14198    ) -> usize;
14199}
14200extern "C" {
14201    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_point2cbb"]
14202    pub fn EC_POINT_point2cbb(
14203        out: *mut CBB,
14204        group: *const EC_GROUP,
14205        point: *const EC_POINT,
14206        form: point_conversion_form_t,
14207        ctx: *mut BN_CTX,
14208    ) -> ::std::os::raw::c_int;
14209}
14210extern "C" {
14211    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_oct2point"]
14212    pub fn EC_POINT_oct2point(
14213        group: *const EC_GROUP,
14214        point: *mut EC_POINT,
14215        buf: *const u8,
14216        len: usize,
14217        ctx: *mut BN_CTX,
14218    ) -> ::std::os::raw::c_int;
14219}
14220extern "C" {
14221    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_set_compressed_coordinates_GFp"]
14222    pub fn EC_POINT_set_compressed_coordinates_GFp(
14223        group: *const EC_GROUP,
14224        point: *mut EC_POINT,
14225        x: *const BIGNUM,
14226        y_bit: ::std::os::raw::c_int,
14227        ctx: *mut BN_CTX,
14228    ) -> ::std::os::raw::c_int;
14229}
14230extern "C" {
14231    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_add"]
14232    pub fn EC_POINT_add(
14233        group: *const EC_GROUP,
14234        r: *mut EC_POINT,
14235        a: *const EC_POINT,
14236        b: *const EC_POINT,
14237        ctx: *mut BN_CTX,
14238    ) -> ::std::os::raw::c_int;
14239}
14240extern "C" {
14241    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_dbl"]
14242    pub fn EC_POINT_dbl(
14243        group: *const EC_GROUP,
14244        r: *mut EC_POINT,
14245        a: *const EC_POINT,
14246        ctx: *mut BN_CTX,
14247    ) -> ::std::os::raw::c_int;
14248}
14249extern "C" {
14250    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_invert"]
14251    pub fn EC_POINT_invert(
14252        group: *const EC_GROUP,
14253        a: *mut EC_POINT,
14254        ctx: *mut BN_CTX,
14255    ) -> ::std::os::raw::c_int;
14256}
14257extern "C" {
14258    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_mul"]
14259    pub fn EC_POINT_mul(
14260        group: *const EC_GROUP,
14261        r: *mut EC_POINT,
14262        n: *const BIGNUM,
14263        q: *const EC_POINT,
14264        m: *const BIGNUM,
14265        ctx: *mut BN_CTX,
14266    ) -> ::std::os::raw::c_int;
14267}
14268extern "C" {
14269    #[link_name = "\u{1}aws_lc_0_40_0_EC_hash_to_curve_p256_xmd_sha256_sswu"]
14270    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
14271        group: *const EC_GROUP,
14272        out: *mut EC_POINT,
14273        dst: *const u8,
14274        dst_len: usize,
14275        msg: *const u8,
14276        msg_len: usize,
14277    ) -> ::std::os::raw::c_int;
14278}
14279extern "C" {
14280    #[link_name = "\u{1}aws_lc_0_40_0_EC_hash_to_curve_p384_xmd_sha384_sswu"]
14281    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
14282        group: *const EC_GROUP,
14283        out: *mut EC_POINT,
14284        dst: *const u8,
14285        dst_len: usize,
14286        msg: *const u8,
14287        msg_len: usize,
14288    ) -> ::std::os::raw::c_int;
14289}
14290extern "C" {
14291    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_free"]
14292    pub fn EC_GROUP_free(group: *mut EC_GROUP);
14293}
14294extern "C" {
14295    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_dup"]
14296    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
14297}
14298extern "C" {
14299    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_new_curve_GFp"]
14300    pub fn EC_GROUP_new_curve_GFp(
14301        p: *const BIGNUM,
14302        a: *const BIGNUM,
14303        b: *const BIGNUM,
14304        ctx: *mut BN_CTX,
14305    ) -> *mut EC_GROUP;
14306}
14307extern "C" {
14308    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_set_generator"]
14309    pub fn EC_GROUP_set_generator(
14310        group: *mut EC_GROUP,
14311        generator: *const EC_POINT,
14312        order: *const BIGNUM,
14313        cofactor: *const BIGNUM,
14314    ) -> ::std::os::raw::c_int;
14315}
14316extern "C" {
14317    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_point2bn"]
14318    pub fn EC_POINT_point2bn(
14319        group: *const EC_GROUP,
14320        point: *const EC_POINT,
14321        form: point_conversion_form_t,
14322        ret: *mut BIGNUM,
14323        ctx: *mut BN_CTX,
14324    ) -> *mut BIGNUM;
14325}
14326extern "C" {
14327    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_bn2point"]
14328    pub fn EC_POINT_bn2point(
14329        group: *const EC_GROUP,
14330        bn: *const BIGNUM,
14331        point: *mut EC_POINT,
14332        ctx: *mut BN_CTX,
14333    ) -> *mut EC_POINT;
14334}
14335extern "C" {
14336    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_order"]
14337    pub fn EC_GROUP_get_order(
14338        group: *const EC_GROUP,
14339        order: *mut BIGNUM,
14340        ctx: *mut BN_CTX,
14341    ) -> ::std::os::raw::c_int;
14342}
14343#[repr(C)]
14344#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14345pub struct EC_builtin_curve {
14346    pub nid: ::std::os::raw::c_int,
14347    pub comment: *const ::std::os::raw::c_char,
14348}
14349#[test]
14350fn bindgen_test_layout_EC_builtin_curve() {
14351    const UNINIT: ::std::mem::MaybeUninit<EC_builtin_curve> = ::std::mem::MaybeUninit::uninit();
14352    let ptr = UNINIT.as_ptr();
14353    assert_eq!(
14354        ::std::mem::size_of::<EC_builtin_curve>(),
14355        16usize,
14356        "Size of EC_builtin_curve"
14357    );
14358    assert_eq!(
14359        ::std::mem::align_of::<EC_builtin_curve>(),
14360        8usize,
14361        "Alignment of EC_builtin_curve"
14362    );
14363    assert_eq!(
14364        unsafe { ::std::ptr::addr_of!((*ptr).nid) as usize - ptr as usize },
14365        0usize,
14366        "Offset of field: EC_builtin_curve::nid"
14367    );
14368    assert_eq!(
14369        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
14370        8usize,
14371        "Offset of field: EC_builtin_curve::comment"
14372    );
14373}
14374impl Default for EC_builtin_curve {
14375    fn default() -> Self {
14376        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14377        unsafe {
14378            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14379            s.assume_init()
14380        }
14381    }
14382}
14383extern "C" {
14384    #[link_name = "\u{1}aws_lc_0_40_0_EC_get_builtin_curves"]
14385    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
14386        -> usize;
14387}
14388extern "C" {
14389    #[link_name = "\u{1}aws_lc_0_40_0_EC_POINT_clear_free"]
14390    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
14391}
14392extern "C" {
14393    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_set_seed"]
14394    pub fn EC_GROUP_set_seed(
14395        group: *mut EC_GROUP,
14396        p: *const ::std::os::raw::c_uchar,
14397        len: usize,
14398    ) -> usize;
14399}
14400extern "C" {
14401    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get0_seed"]
14402    pub fn EC_GROUP_get0_seed(group: *const EC_GROUP) -> *mut ::std::os::raw::c_uchar;
14403}
14404extern "C" {
14405    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_seed_len"]
14406    pub fn EC_GROUP_get_seed_len(group: *const EC_GROUP) -> usize;
14407}
14408extern "C" {
14409    #[link_name = "\u{1}aws_lc_0_40_0_ECPKParameters_print"]
14410    pub fn ECPKParameters_print(
14411        bio: *mut BIO,
14412        group: *const EC_GROUP,
14413        offset: ::std::os::raw::c_int,
14414    ) -> ::std::os::raw::c_int;
14415}
14416extern "C" {
14417    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_set_asn1_flag"]
14418    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::std::os::raw::c_int);
14419}
14420extern "C" {
14421    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_asn1_flag"]
14422    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::std::os::raw::c_int;
14423}
14424extern "C" {
14425    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_set_point_conversion_form"]
14426    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
14427}
14428extern "C" {
14429    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_get_point_conversion_form"]
14430    pub fn EC_GROUP_get_point_conversion_form(group: *const EC_GROUP) -> point_conversion_form_t;
14431}
14432extern "C" {
14433    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_decoded_from_explicit_params"]
14434    pub fn EC_KEY_decoded_from_explicit_params(key: *const EC_KEY) -> ::std::os::raw::c_int;
14435}
14436#[repr(C)]
14437#[derive(Debug, Copy, Clone)]
14438pub struct ec_method_st {
14439    _unused: [u8; 0],
14440}
14441pub type EC_METHOD = ec_method_st;
14442extern "C" {
14443    #[link_name = "\u{1}aws_lc_0_40_0_EC_GROUP_method_of"]
14444    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
14445}
14446extern "C" {
14447    #[link_name = "\u{1}aws_lc_0_40_0_EC_METHOD_get_field_type"]
14448    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::std::os::raw::c_int;
14449}
14450extern "C" {
14451    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_new"]
14452    pub fn ENGINE_new() -> *mut ENGINE;
14453}
14454extern "C" {
14455    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_free"]
14456    pub fn ENGINE_free(engine: *mut ENGINE) -> ::std::os::raw::c_int;
14457}
14458extern "C" {
14459    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_set_RSA"]
14460    pub fn ENGINE_set_RSA(engine: *mut ENGINE, method: *const RSA_METHOD) -> ::std::os::raw::c_int;
14461}
14462extern "C" {
14463    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_get_RSA"]
14464    pub fn ENGINE_get_RSA(engine: *const ENGINE) -> *const RSA_METHOD;
14465}
14466extern "C" {
14467    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_set_EC"]
14468    pub fn ENGINE_set_EC(
14469        engine: *mut ENGINE,
14470        method: *const EC_KEY_METHOD,
14471    ) -> ::std::os::raw::c_int;
14472}
14473extern "C" {
14474    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_get_EC"]
14475    pub fn ENGINE_get_EC(engine: *const ENGINE) -> *const EC_KEY_METHOD;
14476}
14477extern "C" {
14478    #[link_name = "\u{1}aws_lc_0_40_0_ENGINE_cleanup"]
14479    pub fn ENGINE_cleanup();
14480}
14481extern "C" {
14482    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_new"]
14483    pub fn EC_KEY_new() -> *mut EC_KEY;
14484}
14485extern "C" {
14486    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_new_method"]
14487    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
14488}
14489extern "C" {
14490    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_new_by_curve_name"]
14491    pub fn EC_KEY_new_by_curve_name(nid: ::std::os::raw::c_int) -> *mut EC_KEY;
14492}
14493extern "C" {
14494    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_free"]
14495    pub fn EC_KEY_free(key: *mut EC_KEY);
14496}
14497extern "C" {
14498    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_dup"]
14499    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
14500}
14501extern "C" {
14502    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_up_ref"]
14503    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14504}
14505extern "C" {
14506    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_is_opaque"]
14507    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::std::os::raw::c_int;
14508}
14509extern "C" {
14510    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get0_group"]
14511    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
14512}
14513extern "C" {
14514    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_group"]
14515    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14516}
14517extern "C" {
14518    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get0_private_key"]
14519    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
14520}
14521extern "C" {
14522    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_private_key"]
14523    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::std::os::raw::c_int;
14524}
14525extern "C" {
14526    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get0_public_key"]
14527    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
14528}
14529extern "C" {
14530    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_public_key"]
14531    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::std::os::raw::c_int;
14532}
14533extern "C" {
14534    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_enc_flags"]
14535    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::std::os::raw::c_uint;
14536}
14537extern "C" {
14538    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_enc_flags"]
14539    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::std::os::raw::c_uint);
14540}
14541extern "C" {
14542    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_conv_form"]
14543    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
14544}
14545extern "C" {
14546    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_conv_form"]
14547    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
14548}
14549extern "C" {
14550    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_check_key"]
14551    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::std::os::raw::c_int;
14552}
14553extern "C" {
14554    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_check_fips"]
14555    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::std::os::raw::c_int;
14556}
14557extern "C" {
14558    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_public_key_affine_coordinates"]
14559    pub fn EC_KEY_set_public_key_affine_coordinates(
14560        key: *mut EC_KEY,
14561        x: *const BIGNUM,
14562        y: *const BIGNUM,
14563    ) -> ::std::os::raw::c_int;
14564}
14565extern "C" {
14566    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_key2buf"]
14567    pub fn EC_KEY_key2buf(
14568        key: *const EC_KEY,
14569        form: point_conversion_form_t,
14570        out_buf: *mut *mut ::std::os::raw::c_uchar,
14571        ctx: *mut BN_CTX,
14572    ) -> usize;
14573}
14574extern "C" {
14575    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_generate_key"]
14576    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14577}
14578extern "C" {
14579    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_generate_key_fips"]
14580    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::std::os::raw::c_int;
14581}
14582extern "C" {
14583    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_derive_from_secret"]
14584    pub fn EC_KEY_derive_from_secret(
14585        group: *const EC_GROUP,
14586        secret: *const u8,
14587        secret_len: usize,
14588    ) -> *mut EC_KEY;
14589}
14590extern "C" {
14591    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_parse_private_key"]
14592    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
14593}
14594extern "C" {
14595    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_marshal_private_key"]
14596    pub fn EC_KEY_marshal_private_key(
14597        cbb: *mut CBB,
14598        key: *const EC_KEY,
14599        enc_flags: ::std::os::raw::c_uint,
14600    ) -> ::std::os::raw::c_int;
14601}
14602extern "C" {
14603    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_parse_curve_name"]
14604    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
14605}
14606extern "C" {
14607    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_marshal_curve_name"]
14608    pub fn EC_KEY_marshal_curve_name(
14609        cbb: *mut CBB,
14610        group: *const EC_GROUP,
14611    ) -> ::std::os::raw::c_int;
14612}
14613extern "C" {
14614    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_parse_parameters"]
14615    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
14616}
14617extern "C" {
14618    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_ex_new_index"]
14619    pub fn EC_KEY_get_ex_new_index(
14620        argl: ::std::os::raw::c_long,
14621        argp: *mut ::std::os::raw::c_void,
14622        unused: *mut CRYPTO_EX_unused,
14623        dup_unused: CRYPTO_EX_dup,
14624        free_func: CRYPTO_EX_free,
14625    ) -> ::std::os::raw::c_int;
14626}
14627extern "C" {
14628    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_ex_data"]
14629    pub fn EC_KEY_set_ex_data(
14630        r: *mut EC_KEY,
14631        idx: ::std::os::raw::c_int,
14632        arg: *mut ::std::os::raw::c_void,
14633    ) -> ::std::os::raw::c_int;
14634}
14635extern "C" {
14636    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_ex_data"]
14637    pub fn EC_KEY_get_ex_data(
14638        r: *const EC_KEY,
14639        idx: ::std::os::raw::c_int,
14640    ) -> *mut ::std::os::raw::c_void;
14641}
14642extern "C" {
14643    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECPrivateKey"]
14644    pub fn d2i_ECPrivateKey(
14645        out_key: *mut *mut EC_KEY,
14646        inp: *mut *const u8,
14647        len: ::std::os::raw::c_long,
14648    ) -> *mut EC_KEY;
14649}
14650extern "C" {
14651    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECPrivateKey"]
14652    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14653}
14654extern "C" {
14655    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECParameters"]
14656    pub fn d2i_ECParameters(
14657        out_key: *mut *mut EC_KEY,
14658        inp: *mut *const u8,
14659        len: ::std::os::raw::c_long,
14660    ) -> *mut EC_KEY;
14661}
14662extern "C" {
14663    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECParameters"]
14664    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14665}
14666extern "C" {
14667    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECPKParameters_bio"]
14668    pub fn d2i_ECPKParameters_bio(bio: *mut BIO, out_group: *mut *mut EC_GROUP) -> *mut EC_GROUP;
14669}
14670extern "C" {
14671    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECPKParameters_bio"]
14672    pub fn i2d_ECPKParameters_bio(bio: *mut BIO, group: *const EC_GROUP) -> ::std::os::raw::c_int;
14673}
14674extern "C" {
14675    #[link_name = "\u{1}aws_lc_0_40_0_o2i_ECPublicKey"]
14676    pub fn o2i_ECPublicKey(
14677        out_key: *mut *mut EC_KEY,
14678        inp: *mut *const u8,
14679        len: ::std::os::raw::c_long,
14680    ) -> *mut EC_KEY;
14681}
14682extern "C" {
14683    #[link_name = "\u{1}aws_lc_0_40_0_i2o_ECPublicKey"]
14684    pub fn i2o_ECPublicKey(
14685        key: *const EC_KEY,
14686        outp: *mut *mut ::std::os::raw::c_uchar,
14687    ) -> ::std::os::raw::c_int;
14688}
14689extern "C" {
14690    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_default_method"]
14691    pub fn EC_KEY_get_default_method() -> *const EC_KEY_METHOD;
14692}
14693extern "C" {
14694    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_OpenSSL"]
14695    pub fn EC_KEY_OpenSSL() -> *const EC_KEY_METHOD;
14696}
14697extern "C" {
14698    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_METHOD_new"]
14699    pub fn EC_KEY_METHOD_new(eckey_meth: *const EC_KEY_METHOD) -> *mut EC_KEY_METHOD;
14700}
14701extern "C" {
14702    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_METHOD_free"]
14703    pub fn EC_KEY_METHOD_free(eckey_meth: *mut EC_KEY_METHOD);
14704}
14705extern "C" {
14706    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_method"]
14707    pub fn EC_KEY_set_method(ec: *mut EC_KEY, meth: *const EC_KEY_METHOD) -> ::std::os::raw::c_int;
14708}
14709extern "C" {
14710    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_get_method"]
14711    pub fn EC_KEY_get_method(ec: *const EC_KEY) -> *const EC_KEY_METHOD;
14712}
14713extern "C" {
14714    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_METHOD_set_sign_awslc"]
14715    pub fn EC_KEY_METHOD_set_sign_awslc(
14716        meth: *mut EC_KEY_METHOD,
14717        sign: ::std::option::Option<
14718            unsafe extern "C" fn(
14719                type_: ::std::os::raw::c_int,
14720                digest: *const u8,
14721                digest_len: ::std::os::raw::c_int,
14722                sig: *mut u8,
14723                siglen: *mut ::std::os::raw::c_uint,
14724                k_inv: *const BIGNUM,
14725                r: *const BIGNUM,
14726                eckey: *mut EC_KEY,
14727            ) -> ::std::os::raw::c_int,
14728        >,
14729        sign_sig: ::std::option::Option<
14730            unsafe extern "C" fn(
14731                digest: *const u8,
14732                digest_len: ::std::os::raw::c_int,
14733                in_kinv: *const BIGNUM,
14734                in_r: *const BIGNUM,
14735                eckey: *mut EC_KEY,
14736            ) -> *mut ECDSA_SIG,
14737        >,
14738    );
14739}
14740extern "C" {
14741    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_METHOD_set_init_awslc"]
14742    pub fn EC_KEY_METHOD_set_init_awslc(
14743        meth: *mut EC_KEY_METHOD,
14744        init: ::std::option::Option<
14745            unsafe extern "C" fn(key: *mut EC_KEY) -> ::std::os::raw::c_int,
14746        >,
14747        finish: ::std::option::Option<unsafe extern "C" fn(key: *mut EC_KEY)>,
14748    );
14749}
14750extern "C" {
14751    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_METHOD_set_flags"]
14752    pub fn EC_KEY_METHOD_set_flags(
14753        meth: *mut EC_KEY_METHOD,
14754        flags: ::std::os::raw::c_int,
14755    ) -> ::std::os::raw::c_int;
14756}
14757extern "C" {
14758    #[link_name = "\u{1}aws_lc_0_40_0_EC_KEY_set_asn1_flag"]
14759    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::std::os::raw::c_int);
14760}
14761extern "C" {
14762    #[link_name = "\u{1}aws_lc_0_40_0_ECDH_compute_key"]
14763    pub fn ECDH_compute_key(
14764        out: *mut ::std::os::raw::c_void,
14765        outlen: usize,
14766        pub_key: *const EC_POINT,
14767        priv_key: *const EC_KEY,
14768        kdf: ::std::option::Option<
14769            unsafe extern "C" fn(
14770                in_: *const ::std::os::raw::c_void,
14771                inlen: usize,
14772                out: *mut ::std::os::raw::c_void,
14773                outlen: *mut usize,
14774            ) -> *mut ::std::os::raw::c_void,
14775        >,
14776    ) -> ::std::os::raw::c_int;
14777}
14778extern "C" {
14779    #[link_name = "\u{1}aws_lc_0_40_0_ECDH_compute_key_fips"]
14780    pub fn ECDH_compute_key_fips(
14781        out: *mut u8,
14782        out_len: usize,
14783        pub_key: *const EC_POINT,
14784        priv_key: *const EC_KEY,
14785    ) -> ::std::os::raw::c_int;
14786}
14787extern "C" {
14788    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_sign"]
14789    pub fn ECDSA_sign(
14790        type_: ::std::os::raw::c_int,
14791        digest: *const u8,
14792        digest_len: usize,
14793        sig: *mut u8,
14794        sig_len: *mut ::std::os::raw::c_uint,
14795        key: *const EC_KEY,
14796    ) -> ::std::os::raw::c_int;
14797}
14798extern "C" {
14799    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_verify"]
14800    pub fn ECDSA_verify(
14801        type_: ::std::os::raw::c_int,
14802        digest: *const u8,
14803        digest_len: usize,
14804        sig: *const u8,
14805        sig_len: usize,
14806        key: *const EC_KEY,
14807    ) -> ::std::os::raw::c_int;
14808}
14809extern "C" {
14810    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_size"]
14811    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
14812}
14813#[repr(C)]
14814#[derive(Debug, Copy, Clone, PartialEq, Eq)]
14815pub struct ecdsa_sig_st {
14816    pub r: *mut BIGNUM,
14817    pub s: *mut BIGNUM,
14818}
14819#[test]
14820fn bindgen_test_layout_ecdsa_sig_st() {
14821    const UNINIT: ::std::mem::MaybeUninit<ecdsa_sig_st> = ::std::mem::MaybeUninit::uninit();
14822    let ptr = UNINIT.as_ptr();
14823    assert_eq!(
14824        ::std::mem::size_of::<ecdsa_sig_st>(),
14825        16usize,
14826        "Size of ecdsa_sig_st"
14827    );
14828    assert_eq!(
14829        ::std::mem::align_of::<ecdsa_sig_st>(),
14830        8usize,
14831        "Alignment of ecdsa_sig_st"
14832    );
14833    assert_eq!(
14834        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
14835        0usize,
14836        "Offset of field: ecdsa_sig_st::r"
14837    );
14838    assert_eq!(
14839        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
14840        8usize,
14841        "Offset of field: ecdsa_sig_st::s"
14842    );
14843}
14844impl Default for ecdsa_sig_st {
14845    fn default() -> Self {
14846        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
14847        unsafe {
14848            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
14849            s.assume_init()
14850        }
14851    }
14852}
14853extern "C" {
14854    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_new"]
14855    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
14856}
14857extern "C" {
14858    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_free"]
14859    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
14860}
14861extern "C" {
14862    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_get0_r"]
14863    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
14864}
14865extern "C" {
14866    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_get0_s"]
14867    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
14868}
14869extern "C" {
14870    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_get0"]
14871    pub fn ECDSA_SIG_get0(
14872        sig: *const ECDSA_SIG,
14873        out_r: *mut *const BIGNUM,
14874        out_s: *mut *const BIGNUM,
14875    );
14876}
14877extern "C" {
14878    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_set0"]
14879    pub fn ECDSA_SIG_set0(
14880        sig: *mut ECDSA_SIG,
14881        r: *mut BIGNUM,
14882        s: *mut BIGNUM,
14883    ) -> ::std::os::raw::c_int;
14884}
14885extern "C" {
14886    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_do_sign"]
14887    pub fn ECDSA_do_sign(
14888        digest: *const u8,
14889        digest_len: usize,
14890        key: *const EC_KEY,
14891    ) -> *mut ECDSA_SIG;
14892}
14893extern "C" {
14894    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_do_verify"]
14895    pub fn ECDSA_do_verify(
14896        digest: *const u8,
14897        digest_len: usize,
14898        sig: *const ECDSA_SIG,
14899        key: *const EC_KEY,
14900    ) -> ::std::os::raw::c_int;
14901}
14902extern "C" {
14903    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_parse"]
14904    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
14905}
14906extern "C" {
14907    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_from_bytes"]
14908    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
14909}
14910extern "C" {
14911    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_marshal"]
14912    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::std::os::raw::c_int;
14913}
14914extern "C" {
14915    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_to_bytes"]
14916    pub fn ECDSA_SIG_to_bytes(
14917        out_bytes: *mut *mut u8,
14918        out_len: *mut usize,
14919        sig: *const ECDSA_SIG,
14920    ) -> ::std::os::raw::c_int;
14921}
14922extern "C" {
14923    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_SIG_max_len"]
14924    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
14925}
14926extern "C" {
14927    #[link_name = "\u{1}aws_lc_0_40_0_ECDSA_sign_with_nonce_and_leak_private_key_for_testing"]
14928    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
14929        digest: *const u8,
14930        digest_len: usize,
14931        eckey: *const EC_KEY,
14932        nonce: *const u8,
14933        nonce_len: usize,
14934    ) -> *mut ECDSA_SIG;
14935}
14936extern "C" {
14937    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECDSA_SIG"]
14938    pub fn d2i_ECDSA_SIG(
14939        out: *mut *mut ECDSA_SIG,
14940        inp: *mut *const u8,
14941        len: ::std::os::raw::c_long,
14942    ) -> *mut ECDSA_SIG;
14943}
14944extern "C" {
14945    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECDSA_SIG"]
14946    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
14947}
14948extern "C" {
14949    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_gcm"]
14950    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
14951}
14952extern "C" {
14953    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_192_gcm"]
14954    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
14955}
14956extern "C" {
14957    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_gcm"]
14958    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
14959}
14960extern "C" {
14961    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_chacha20_poly1305"]
14962    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
14963}
14964extern "C" {
14965    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_xchacha20_poly1305"]
14966    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
14967}
14968extern "C" {
14969    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_ctr_hmac_sha256"]
14970    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
14971}
14972extern "C" {
14973    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_ctr_hmac_sha256"]
14974    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
14975}
14976extern "C" {
14977    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_gcm_siv"]
14978    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
14979}
14980extern "C" {
14981    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_gcm_siv"]
14982    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
14983}
14984extern "C" {
14985    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_gcm_randnonce"]
14986    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
14987}
14988extern "C" {
14989    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_gcm_randnonce"]
14990    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
14991}
14992extern "C" {
14993    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_ccm_bluetooth"]
14994    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
14995}
14996extern "C" {
14997    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_ccm_bluetooth_8"]
14998    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
14999}
15000extern "C" {
15001    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_ccm_matter"]
15002    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
15003}
15004extern "C" {
15005    #[link_name = "\u{1}aws_lc_0_40_0_EVP_has_aes_hardware"]
15006    pub fn EVP_has_aes_hardware() -> ::std::os::raw::c_int;
15007}
15008extern "C" {
15009    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_key_length"]
15010    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
15011}
15012extern "C" {
15013    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_nonce_length"]
15014    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
15015}
15016extern "C" {
15017    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_max_overhead"]
15018    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
15019}
15020extern "C" {
15021    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_max_tag_len"]
15022    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
15023}
15024#[repr(C)]
15025#[derive(Copy, Clone)]
15026pub union evp_aead_ctx_st_state {
15027    pub opaque: [u8; 564usize],
15028    pub alignment: u64,
15029    pub ptr: *mut ::std::os::raw::c_void,
15030}
15031#[test]
15032fn bindgen_test_layout_evp_aead_ctx_st_state() {
15033    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st_state> =
15034        ::std::mem::MaybeUninit::uninit();
15035    let ptr = UNINIT.as_ptr();
15036    assert_eq!(
15037        ::std::mem::size_of::<evp_aead_ctx_st_state>(),
15038        568usize,
15039        "Size of evp_aead_ctx_st_state"
15040    );
15041    assert_eq!(
15042        ::std::mem::align_of::<evp_aead_ctx_st_state>(),
15043        8usize,
15044        "Alignment of evp_aead_ctx_st_state"
15045    );
15046    assert_eq!(
15047        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
15048        0usize,
15049        "Offset of field: evp_aead_ctx_st_state::opaque"
15050    );
15051    assert_eq!(
15052        unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize },
15053        0usize,
15054        "Offset of field: evp_aead_ctx_st_state::alignment"
15055    );
15056    assert_eq!(
15057        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
15058        0usize,
15059        "Offset of field: evp_aead_ctx_st_state::ptr"
15060    );
15061}
15062impl Default for evp_aead_ctx_st_state {
15063    fn default() -> Self {
15064        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15065        unsafe {
15066            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15067            s.assume_init()
15068        }
15069    }
15070}
15071#[repr(C)]
15072#[derive(Copy, Clone)]
15073pub struct evp_aead_ctx_st {
15074    pub aead: *const EVP_AEAD,
15075    pub state: evp_aead_ctx_st_state,
15076    pub state_offset: u8,
15077    pub tag_len: u8,
15078}
15079#[test]
15080fn bindgen_test_layout_evp_aead_ctx_st() {
15081    const UNINIT: ::std::mem::MaybeUninit<evp_aead_ctx_st> = ::std::mem::MaybeUninit::uninit();
15082    let ptr = UNINIT.as_ptr();
15083    assert_eq!(
15084        ::std::mem::size_of::<evp_aead_ctx_st>(),
15085        584usize,
15086        "Size of evp_aead_ctx_st"
15087    );
15088    assert_eq!(
15089        ::std::mem::align_of::<evp_aead_ctx_st>(),
15090        8usize,
15091        "Alignment of evp_aead_ctx_st"
15092    );
15093    assert_eq!(
15094        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
15095        0usize,
15096        "Offset of field: evp_aead_ctx_st::aead"
15097    );
15098    assert_eq!(
15099        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15100        8usize,
15101        "Offset of field: evp_aead_ctx_st::state"
15102    );
15103    assert_eq!(
15104        unsafe { ::std::ptr::addr_of!((*ptr).state_offset) as usize - ptr as usize },
15105        576usize,
15106        "Offset of field: evp_aead_ctx_st::state_offset"
15107    );
15108    assert_eq!(
15109        unsafe { ::std::ptr::addr_of!((*ptr).tag_len) as usize - ptr as usize },
15110        577usize,
15111        "Offset of field: evp_aead_ctx_st::tag_len"
15112    );
15113}
15114impl Default for evp_aead_ctx_st {
15115    fn default() -> Self {
15116        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15117        unsafe {
15118            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15119            s.assume_init()
15120        }
15121    }
15122}
15123extern "C" {
15124    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_zero"]
15125    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
15126}
15127extern "C" {
15128    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_new"]
15129    pub fn EVP_AEAD_CTX_new(
15130        aead: *const EVP_AEAD,
15131        key: *const u8,
15132        key_len: usize,
15133        tag_len: usize,
15134    ) -> *mut EVP_AEAD_CTX;
15135}
15136extern "C" {
15137    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_free"]
15138    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
15139}
15140extern "C" {
15141    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_init"]
15142    pub fn EVP_AEAD_CTX_init(
15143        ctx: *mut EVP_AEAD_CTX,
15144        aead: *const EVP_AEAD,
15145        key: *const u8,
15146        key_len: usize,
15147        tag_len: usize,
15148        impl_: *mut ENGINE,
15149    ) -> ::std::os::raw::c_int;
15150}
15151extern "C" {
15152    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_cleanup"]
15153    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
15154}
15155extern "C" {
15156    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_seal"]
15157    pub fn EVP_AEAD_CTX_seal(
15158        ctx: *const EVP_AEAD_CTX,
15159        out: *mut u8,
15160        out_len: *mut usize,
15161        max_out_len: usize,
15162        nonce: *const u8,
15163        nonce_len: usize,
15164        in_: *const u8,
15165        in_len: usize,
15166        ad: *const u8,
15167        ad_len: usize,
15168    ) -> ::std::os::raw::c_int;
15169}
15170extern "C" {
15171    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_open"]
15172    pub fn EVP_AEAD_CTX_open(
15173        ctx: *const EVP_AEAD_CTX,
15174        out: *mut u8,
15175        out_len: *mut usize,
15176        max_out_len: usize,
15177        nonce: *const u8,
15178        nonce_len: usize,
15179        in_: *const u8,
15180        in_len: usize,
15181        ad: *const u8,
15182        ad_len: usize,
15183    ) -> ::std::os::raw::c_int;
15184}
15185extern "C" {
15186    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_seal_scatter"]
15187    pub fn EVP_AEAD_CTX_seal_scatter(
15188        ctx: *const EVP_AEAD_CTX,
15189        out: *mut u8,
15190        out_tag: *mut u8,
15191        out_tag_len: *mut usize,
15192        max_out_tag_len: usize,
15193        nonce: *const u8,
15194        nonce_len: usize,
15195        in_: *const u8,
15196        in_len: usize,
15197        extra_in: *const u8,
15198        extra_in_len: usize,
15199        ad: *const u8,
15200        ad_len: usize,
15201    ) -> ::std::os::raw::c_int;
15202}
15203extern "C" {
15204    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_open_gather"]
15205    pub fn EVP_AEAD_CTX_open_gather(
15206        ctx: *const EVP_AEAD_CTX,
15207        out: *mut u8,
15208        nonce: *const u8,
15209        nonce_len: usize,
15210        in_: *const u8,
15211        in_len: usize,
15212        in_tag: *const u8,
15213        in_tag_len: usize,
15214        ad: *const u8,
15215        ad_len: usize,
15216    ) -> ::std::os::raw::c_int;
15217}
15218extern "C" {
15219    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_aead"]
15220    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
15221}
15222extern "C" {
15223    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_cbc_sha1_tls"]
15224    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
15225}
15226extern "C" {
15227    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_cbc_sha1_tls_implicit_iv"]
15228    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15229}
15230extern "C" {
15231    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_cbc_sha1_tls"]
15232    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
15233}
15234extern "C" {
15235    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_cbc_sha1_tls_implicit_iv"]
15236    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15237}
15238extern "C" {
15239    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_cbc_sha256_tls"]
15240    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
15241}
15242extern "C" {
15243    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_cbc_sha256_tls_implicit_iv"]
15244    pub fn EVP_aead_aes_128_cbc_sha256_tls_implicit_iv() -> *const EVP_AEAD;
15245}
15246extern "C" {
15247    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_cbc_sha384_tls"]
15248    pub fn EVP_aead_aes_256_cbc_sha384_tls() -> *const EVP_AEAD;
15249}
15250extern "C" {
15251    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_des_ede3_cbc_sha1_tls"]
15252    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
15253}
15254extern "C" {
15255    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv"]
15256    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
15257}
15258extern "C" {
15259    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_null_sha1_tls"]
15260    pub fn EVP_aead_null_sha1_tls() -> *const EVP_AEAD;
15261}
15262extern "C" {
15263    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_gcm_tls12"]
15264    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
15265}
15266extern "C" {
15267    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_gcm_tls12"]
15268    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
15269}
15270extern "C" {
15271    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_128_gcm_tls13"]
15272    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
15273}
15274extern "C" {
15275    #[link_name = "\u{1}aws_lc_0_40_0_EVP_aead_aes_256_gcm_tls13"]
15276    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
15277}
15278pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
15279pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
15280pub type evp_aead_direction_t = ::std::os::raw::c_uint;
15281extern "C" {
15282    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_init_with_direction"]
15283    pub fn EVP_AEAD_CTX_init_with_direction(
15284        ctx: *mut EVP_AEAD_CTX,
15285        aead: *const EVP_AEAD,
15286        key: *const u8,
15287        key_len: usize,
15288        tag_len: usize,
15289        dir: evp_aead_direction_t,
15290    ) -> ::std::os::raw::c_int;
15291}
15292extern "C" {
15293    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_get_iv"]
15294    pub fn EVP_AEAD_CTX_get_iv(
15295        ctx: *const EVP_AEAD_CTX,
15296        out_iv: *mut *const u8,
15297        out_len: *mut usize,
15298    ) -> ::std::os::raw::c_int;
15299}
15300extern "C" {
15301    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_CTX_tag_len"]
15302    pub fn EVP_AEAD_CTX_tag_len(
15303        ctx: *const EVP_AEAD_CTX,
15304        out_tag_len: *mut usize,
15305        in_len: usize,
15306        extra_in_len: usize,
15307    ) -> ::std::os::raw::c_int;
15308}
15309extern "C" {
15310    #[link_name = "\u{1}aws_lc_0_40_0_EVP_AEAD_get_iv_from_ipv4_nanosecs"]
15311    pub fn EVP_AEAD_get_iv_from_ipv4_nanosecs(
15312        ipv4_address: u32,
15313        nanosecs: u64,
15314        out_iv: *mut u8,
15315    ) -> ::std::os::raw::c_int;
15316}
15317extern "C" {
15318    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_dup"]
15319    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15320}
15321extern "C" {
15322    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_cmp"]
15323    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15324}
15325extern "C" {
15326    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_get0_data"]
15327    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15328}
15329extern "C" {
15330    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_length"]
15331    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15332}
15333extern "C" {
15334    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_obj2nid"]
15335    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::std::os::raw::c_int;
15336}
15337extern "C" {
15338    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_cbs2nid"]
15339    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::std::os::raw::c_int;
15340}
15341extern "C" {
15342    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_sn2nid"]
15343    pub fn OBJ_sn2nid(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15344}
15345extern "C" {
15346    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_ln2nid"]
15347    pub fn OBJ_ln2nid(long_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15348}
15349extern "C" {
15350    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_txt2nid"]
15351    pub fn OBJ_txt2nid(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
15352}
15353extern "C" {
15354    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_nid2obj"]
15355    pub fn OBJ_nid2obj(nid: ::std::os::raw::c_int) -> *mut ASN1_OBJECT;
15356}
15357extern "C" {
15358    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_get_undef"]
15359    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15360}
15361extern "C" {
15362    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_nid2sn"]
15363    pub fn OBJ_nid2sn(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15364}
15365extern "C" {
15366    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_nid2ln"]
15367    pub fn OBJ_nid2ln(nid: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
15368}
15369extern "C" {
15370    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_nid2cbb"]
15371    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
15372}
15373extern "C" {
15374    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_txt2obj"]
15375    pub fn OBJ_txt2obj(
15376        s: *const ::std::os::raw::c_char,
15377        dont_search_names: ::std::os::raw::c_int,
15378    ) -> *mut ASN1_OBJECT;
15379}
15380extern "C" {
15381    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_obj2txt"]
15382    pub fn OBJ_obj2txt(
15383        out: *mut ::std::os::raw::c_char,
15384        out_len: ::std::os::raw::c_int,
15385        obj: *const ASN1_OBJECT,
15386        always_return_oid: ::std::os::raw::c_int,
15387    ) -> ::std::os::raw::c_int;
15388}
15389extern "C" {
15390    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_create"]
15391    pub fn OBJ_create(
15392        oid: *const ::std::os::raw::c_char,
15393        short_name: *const ::std::os::raw::c_char,
15394        long_name: *const ::std::os::raw::c_char,
15395    ) -> ::std::os::raw::c_int;
15396}
15397extern "C" {
15398    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_find_sigid_algs"]
15399    pub fn OBJ_find_sigid_algs(
15400        sign_nid: ::std::os::raw::c_int,
15401        out_digest_nid: *mut ::std::os::raw::c_int,
15402        out_pkey_nid: *mut ::std::os::raw::c_int,
15403    ) -> ::std::os::raw::c_int;
15404}
15405extern "C" {
15406    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_find_sigid_by_algs"]
15407    pub fn OBJ_find_sigid_by_algs(
15408        out_sign_nid: *mut ::std::os::raw::c_int,
15409        digest_nid: ::std::os::raw::c_int,
15410        pkey_nid: ::std::os::raw::c_int,
15411    ) -> ::std::os::raw::c_int;
15412}
15413#[repr(C)]
15414#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15415pub struct obj_name_st {
15416    pub type_: ::std::os::raw::c_int,
15417    pub alias: ::std::os::raw::c_int,
15418    pub name: *const ::std::os::raw::c_char,
15419    pub data: *const ::std::os::raw::c_char,
15420}
15421#[test]
15422fn bindgen_test_layout_obj_name_st() {
15423    const UNINIT: ::std::mem::MaybeUninit<obj_name_st> = ::std::mem::MaybeUninit::uninit();
15424    let ptr = UNINIT.as_ptr();
15425    assert_eq!(
15426        ::std::mem::size_of::<obj_name_st>(),
15427        24usize,
15428        "Size of obj_name_st"
15429    );
15430    assert_eq!(
15431        ::std::mem::align_of::<obj_name_st>(),
15432        8usize,
15433        "Alignment of obj_name_st"
15434    );
15435    assert_eq!(
15436        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
15437        0usize,
15438        "Offset of field: obj_name_st::type_"
15439    );
15440    assert_eq!(
15441        unsafe { ::std::ptr::addr_of!((*ptr).alias) as usize - ptr as usize },
15442        4usize,
15443        "Offset of field: obj_name_st::alias"
15444    );
15445    assert_eq!(
15446        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
15447        8usize,
15448        "Offset of field: obj_name_st::name"
15449    );
15450    assert_eq!(
15451        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15452        16usize,
15453        "Offset of field: obj_name_st::data"
15454    );
15455}
15456impl Default for obj_name_st {
15457    fn default() -> Self {
15458        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15459        unsafe {
15460            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15461            s.assume_init()
15462        }
15463    }
15464}
15465pub type OBJ_NAME = obj_name_st;
15466extern "C" {
15467    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_NAME_do_all_sorted"]
15468    pub fn OBJ_NAME_do_all_sorted(
15469        type_: ::std::os::raw::c_int,
15470        callback: ::std::option::Option<
15471            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::std::os::raw::c_void),
15472        >,
15473        arg: *mut ::std::os::raw::c_void,
15474    );
15475}
15476extern "C" {
15477    #[link_name = "\u{1}aws_lc_0_40_0_OBJ_cleanup"]
15478    pub fn OBJ_cleanup();
15479}
15480extern "C" {
15481    #[link_name = "\u{1}aws_lc_0_40_0_MD5_Init"]
15482    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15483}
15484extern "C" {
15485    #[link_name = "\u{1}aws_lc_0_40_0_MD5_Update"]
15486    pub fn MD5_Update(
15487        md5: *mut MD5_CTX,
15488        data: *const ::std::os::raw::c_void,
15489        len: usize,
15490    ) -> ::std::os::raw::c_int;
15491}
15492extern "C" {
15493    #[link_name = "\u{1}aws_lc_0_40_0_MD5_Final"]
15494    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::std::os::raw::c_int;
15495}
15496extern "C" {
15497    #[link_name = "\u{1}aws_lc_0_40_0_MD5"]
15498    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15499}
15500extern "C" {
15501    #[link_name = "\u{1}aws_lc_0_40_0_MD5_Transform"]
15502    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
15503}
15504#[repr(C)]
15505#[derive(Debug, Copy, Clone, PartialEq, Eq)]
15506pub struct md5_state_st {
15507    pub h: [u32; 4usize],
15508    pub Nl: u32,
15509    pub Nh: u32,
15510    pub data: [u8; 64usize],
15511    pub num: ::std::os::raw::c_uint,
15512}
15513#[test]
15514fn bindgen_test_layout_md5_state_st() {
15515    const UNINIT: ::std::mem::MaybeUninit<md5_state_st> = ::std::mem::MaybeUninit::uninit();
15516    let ptr = UNINIT.as_ptr();
15517    assert_eq!(
15518        ::std::mem::size_of::<md5_state_st>(),
15519        92usize,
15520        "Size of md5_state_st"
15521    );
15522    assert_eq!(
15523        ::std::mem::align_of::<md5_state_st>(),
15524        4usize,
15525        "Alignment of md5_state_st"
15526    );
15527    assert_eq!(
15528        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
15529        0usize,
15530        "Offset of field: md5_state_st::h"
15531    );
15532    assert_eq!(
15533        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
15534        16usize,
15535        "Offset of field: md5_state_st::Nl"
15536    );
15537    assert_eq!(
15538        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
15539        20usize,
15540        "Offset of field: md5_state_st::Nh"
15541    );
15542    assert_eq!(
15543        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
15544        24usize,
15545        "Offset of field: md5_state_st::data"
15546    );
15547    assert_eq!(
15548        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
15549        88usize,
15550        "Offset of field: md5_state_st::num"
15551    );
15552}
15553impl Default for md5_state_st {
15554    fn default() -> Self {
15555        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15556        unsafe {
15557            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15558            s.assume_init()
15559        }
15560    }
15561}
15562extern "C" {
15563    #[link_name = "\u{1}aws_lc_0_40_0_HMAC"]
15564    pub fn HMAC(
15565        evp_md: *const EVP_MD,
15566        key: *const ::std::os::raw::c_void,
15567        key_len: usize,
15568        data: *const u8,
15569        data_len: usize,
15570        out: *mut u8,
15571        out_len: *mut ::std::os::raw::c_uint,
15572    ) -> *mut u8;
15573}
15574extern "C" {
15575    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_init"]
15576    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
15577}
15578extern "C" {
15579    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_new"]
15580    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
15581}
15582extern "C" {
15583    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_cleanup"]
15584    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
15585}
15586extern "C" {
15587    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_cleanse"]
15588    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
15589}
15590extern "C" {
15591    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_free"]
15592    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
15593}
15594extern "C" {
15595    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_Init_ex"]
15596    pub fn HMAC_Init_ex(
15597        ctx: *mut HMAC_CTX,
15598        key: *const ::std::os::raw::c_void,
15599        key_len: usize,
15600        md: *const EVP_MD,
15601        impl_: *mut ENGINE,
15602    ) -> ::std::os::raw::c_int;
15603}
15604extern "C" {
15605    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_Update"]
15606    pub fn HMAC_Update(
15607        ctx: *mut HMAC_CTX,
15608        data: *const u8,
15609        data_len: usize,
15610    ) -> ::std::os::raw::c_int;
15611}
15612extern "C" {
15613    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_Final"]
15614    pub fn HMAC_Final(
15615        ctx: *mut HMAC_CTX,
15616        out: *mut u8,
15617        out_len: *mut ::std::os::raw::c_uint,
15618    ) -> ::std::os::raw::c_int;
15619}
15620extern "C" {
15621    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_size"]
15622    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
15623}
15624extern "C" {
15625    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_get_md"]
15626    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
15627}
15628extern "C" {
15629    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_copy_ex"]
15630    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15631}
15632extern "C" {
15633    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_reset"]
15634    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
15635}
15636extern "C" {
15637    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_set_precomputed_key_export"]
15638    pub fn HMAC_set_precomputed_key_export(ctx: *mut HMAC_CTX) -> ::std::os::raw::c_int;
15639}
15640extern "C" {
15641    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_get_precomputed_key"]
15642    pub fn HMAC_get_precomputed_key(
15643        ctx: *mut HMAC_CTX,
15644        out: *mut u8,
15645        out_len: *mut usize,
15646    ) -> ::std::os::raw::c_int;
15647}
15648extern "C" {
15649    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_Init_from_precomputed_key"]
15650    pub fn HMAC_Init_from_precomputed_key(
15651        ctx: *mut HMAC_CTX,
15652        precomputed_key: *const u8,
15653        precompute_key_len: usize,
15654        md: *const EVP_MD,
15655    ) -> ::std::os::raw::c_int;
15656}
15657extern "C" {
15658    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_Init"]
15659    pub fn HMAC_Init(
15660        ctx: *mut HMAC_CTX,
15661        key: *const ::std::os::raw::c_void,
15662        key_len: ::std::os::raw::c_int,
15663        md: *const EVP_MD,
15664    ) -> ::std::os::raw::c_int;
15665}
15666extern "C" {
15667    #[link_name = "\u{1}aws_lc_0_40_0_HMAC_CTX_copy"]
15668    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::std::os::raw::c_int;
15669}
15670#[repr(C)]
15671#[derive(Debug, Copy, Clone)]
15672pub struct hmac_methods_st {
15673    _unused: [u8; 0],
15674}
15675pub type HmacMethods = hmac_methods_st;
15676#[repr(C)]
15677#[derive(Copy, Clone)]
15678pub union md_ctx_union {
15679    pub md5: MD5_CTX,
15680    pub sha1: SHA_CTX,
15681    pub sha256: SHA256_CTX,
15682    pub sha512: SHA512_CTX,
15683    pub sha3: [u8; 400usize],
15684}
15685#[test]
15686fn bindgen_test_layout_md_ctx_union() {
15687    const UNINIT: ::std::mem::MaybeUninit<md_ctx_union> = ::std::mem::MaybeUninit::uninit();
15688    let ptr = UNINIT.as_ptr();
15689    assert_eq!(
15690        ::std::mem::size_of::<md_ctx_union>(),
15691        400usize,
15692        "Size of md_ctx_union"
15693    );
15694    assert_eq!(
15695        ::std::mem::align_of::<md_ctx_union>(),
15696        8usize,
15697        "Alignment of md_ctx_union"
15698    );
15699    assert_eq!(
15700        unsafe { ::std::ptr::addr_of!((*ptr).md5) as usize - ptr as usize },
15701        0usize,
15702        "Offset of field: md_ctx_union::md5"
15703    );
15704    assert_eq!(
15705        unsafe { ::std::ptr::addr_of!((*ptr).sha1) as usize - ptr as usize },
15706        0usize,
15707        "Offset of field: md_ctx_union::sha1"
15708    );
15709    assert_eq!(
15710        unsafe { ::std::ptr::addr_of!((*ptr).sha256) as usize - ptr as usize },
15711        0usize,
15712        "Offset of field: md_ctx_union::sha256"
15713    );
15714    assert_eq!(
15715        unsafe { ::std::ptr::addr_of!((*ptr).sha512) as usize - ptr as usize },
15716        0usize,
15717        "Offset of field: md_ctx_union::sha512"
15718    );
15719    assert_eq!(
15720        unsafe { ::std::ptr::addr_of!((*ptr).sha3) as usize - ptr as usize },
15721        0usize,
15722        "Offset of field: md_ctx_union::sha3"
15723    );
15724}
15725impl Default for md_ctx_union {
15726    fn default() -> Self {
15727        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15728        unsafe {
15729            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15730            s.assume_init()
15731        }
15732    }
15733}
15734#[repr(C)]
15735#[derive(Copy, Clone)]
15736pub struct hmac_ctx_st {
15737    pub md: *const EVP_MD,
15738    pub methods: *const HmacMethods,
15739    pub md_ctx: md_ctx_union,
15740    pub i_ctx: md_ctx_union,
15741    pub o_ctx: md_ctx_union,
15742    pub state: i8,
15743}
15744#[test]
15745fn bindgen_test_layout_hmac_ctx_st() {
15746    const UNINIT: ::std::mem::MaybeUninit<hmac_ctx_st> = ::std::mem::MaybeUninit::uninit();
15747    let ptr = UNINIT.as_ptr();
15748    assert_eq!(
15749        ::std::mem::size_of::<hmac_ctx_st>(),
15750        1224usize,
15751        "Size of hmac_ctx_st"
15752    );
15753    assert_eq!(
15754        ::std::mem::align_of::<hmac_ctx_st>(),
15755        8usize,
15756        "Alignment of hmac_ctx_st"
15757    );
15758    assert_eq!(
15759        unsafe { ::std::ptr::addr_of!((*ptr).md) as usize - ptr as usize },
15760        0usize,
15761        "Offset of field: hmac_ctx_st::md"
15762    );
15763    assert_eq!(
15764        unsafe { ::std::ptr::addr_of!((*ptr).methods) as usize - ptr as usize },
15765        8usize,
15766        "Offset of field: hmac_ctx_st::methods"
15767    );
15768    assert_eq!(
15769        unsafe { ::std::ptr::addr_of!((*ptr).md_ctx) as usize - ptr as usize },
15770        16usize,
15771        "Offset of field: hmac_ctx_st::md_ctx"
15772    );
15773    assert_eq!(
15774        unsafe { ::std::ptr::addr_of!((*ptr).i_ctx) as usize - ptr as usize },
15775        416usize,
15776        "Offset of field: hmac_ctx_st::i_ctx"
15777    );
15778    assert_eq!(
15779        unsafe { ::std::ptr::addr_of!((*ptr).o_ctx) as usize - ptr as usize },
15780        816usize,
15781        "Offset of field: hmac_ctx_st::o_ctx"
15782    );
15783    assert_eq!(
15784        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
15785        1216usize,
15786        "Offset of field: hmac_ctx_st::state"
15787    );
15788}
15789impl Default for hmac_ctx_st {
15790    fn default() -> Self {
15791        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
15792        unsafe {
15793            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
15794            s.assume_init()
15795        }
15796    }
15797}
15798extern "C" {
15799    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_new"]
15800    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
15801}
15802extern "C" {
15803    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_free"]
15804    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
15805}
15806extern "C" {
15807    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_up_ref"]
15808    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
15809}
15810extern "C" {
15811    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_is_opaque"]
15812    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15813}
15814extern "C" {
15815    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_cmp"]
15816    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::std::os::raw::c_int;
15817}
15818extern "C" {
15819    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_copy_parameters"]
15820    pub fn EVP_PKEY_copy_parameters(
15821        to: *mut EVP_PKEY,
15822        from: *const EVP_PKEY,
15823    ) -> ::std::os::raw::c_int;
15824}
15825extern "C" {
15826    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_missing_parameters"]
15827    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15828}
15829extern "C" {
15830    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_size"]
15831    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15832}
15833extern "C" {
15834    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_bits"]
15835    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15836}
15837extern "C" {
15838    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_id"]
15839    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15840}
15841extern "C" {
15842    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_pqdsa_get_type"]
15843    pub fn EVP_PKEY_pqdsa_get_type(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
15844}
15845extern "C" {
15846    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_get0_name"]
15847    pub fn EVP_MD_get0_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15848}
15849extern "C" {
15850    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_name"]
15851    pub fn EVP_MD_name(md: *const EVP_MD) -> *const ::std::os::raw::c_char;
15852}
15853extern "C" {
15854    #[link_name = "\u{1}aws_lc_0_40_0_EVP_get_pw_prompt"]
15855    pub fn EVP_get_pw_prompt() -> *mut ::std::os::raw::c_char;
15856}
15857extern "C" {
15858    #[link_name = "\u{1}aws_lc_0_40_0_EVP_read_pw_string"]
15859    pub fn EVP_read_pw_string(
15860        buf: *mut ::std::os::raw::c_char,
15861        length: ::std::os::raw::c_int,
15862        prompt: *const ::std::os::raw::c_char,
15863        verify: ::std::os::raw::c_int,
15864    ) -> ::std::os::raw::c_int;
15865}
15866extern "C" {
15867    #[link_name = "\u{1}aws_lc_0_40_0_EVP_read_pw_string_min"]
15868    pub fn EVP_read_pw_string_min(
15869        buf: *mut ::std::os::raw::c_char,
15870        min_length: ::std::os::raw::c_int,
15871        length: ::std::os::raw::c_int,
15872        prompt: *const ::std::os::raw::c_char,
15873        verify: ::std::os::raw::c_int,
15874    ) -> ::std::os::raw::c_int;
15875}
15876extern "C" {
15877    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set1_RSA"]
15878    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15879}
15880extern "C" {
15881    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_assign_RSA"]
15882    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::std::os::raw::c_int;
15883}
15884extern "C" {
15885    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get0_RSA"]
15886    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15887}
15888extern "C" {
15889    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get1_RSA"]
15890    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
15891}
15892extern "C" {
15893    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set1_DSA"]
15894    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15895}
15896extern "C" {
15897    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_assign_DSA"]
15898    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::std::os::raw::c_int;
15899}
15900extern "C" {
15901    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get0_DSA"]
15902    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15903}
15904extern "C" {
15905    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get1_DSA"]
15906    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
15907}
15908extern "C" {
15909    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set1_EC_KEY"]
15910    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15911}
15912extern "C" {
15913    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_assign_EC_KEY"]
15914    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::std::os::raw::c_int;
15915}
15916extern "C" {
15917    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get0_EC_KEY"]
15918    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15919}
15920extern "C" {
15921    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get1_EC_KEY"]
15922    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
15923}
15924extern "C" {
15925    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set1_DH"]
15926    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15927}
15928extern "C" {
15929    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_assign_DH"]
15930    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::std::os::raw::c_int;
15931}
15932extern "C" {
15933    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get0_DH"]
15934    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
15935}
15936extern "C" {
15937    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get1_DH"]
15938    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
15939}
15940extern "C" {
15941    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dh_paramgen_prime_len"]
15942    pub fn EVP_PKEY_CTX_set_dh_paramgen_prime_len(
15943        ctx: *mut EVP_PKEY_CTX,
15944        pbits: ::std::os::raw::c_int,
15945    ) -> ::std::os::raw::c_int;
15946}
15947extern "C" {
15948    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dh_paramgen_generator"]
15949    pub fn EVP_PKEY_CTX_set_dh_paramgen_generator(
15950        ctx: *mut EVP_PKEY_CTX,
15951        gen_: ::std::os::raw::c_int,
15952    ) -> ::std::os::raw::c_int;
15953}
15954extern "C" {
15955    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set_type"]
15956    pub fn EVP_PKEY_set_type(
15957        pkey: *mut EVP_PKEY,
15958        type_: ::std::os::raw::c_int,
15959    ) -> ::std::os::raw::c_int;
15960}
15961extern "C" {
15962    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set_type_str"]
15963    pub fn EVP_PKEY_set_type_str(
15964        pkey: *mut EVP_PKEY,
15965        str_: *const ::std::os::raw::c_char,
15966        len: ::std::os::raw::c_int,
15967    ) -> ::std::os::raw::c_int;
15968}
15969extern "C" {
15970    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_cmp_parameters"]
15971    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY)
15972        -> ::std::os::raw::c_int;
15973}
15974extern "C" {
15975    #[link_name = "\u{1}aws_lc_0_40_0_EVP_parse_public_key"]
15976    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15977}
15978extern "C" {
15979    #[link_name = "\u{1}aws_lc_0_40_0_EVP_marshal_public_key"]
15980    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
15981}
15982extern "C" {
15983    #[link_name = "\u{1}aws_lc_0_40_0_EVP_parse_private_key"]
15984    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
15985}
15986extern "C" {
15987    #[link_name = "\u{1}aws_lc_0_40_0_EVP_marshal_private_key"]
15988    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::std::os::raw::c_int;
15989}
15990extern "C" {
15991    #[link_name = "\u{1}aws_lc_0_40_0_EVP_marshal_private_key_v2"]
15992    pub fn EVP_marshal_private_key_v2(cbb: *mut CBB, key: *const EVP_PKEY)
15993        -> ::std::os::raw::c_int;
15994}
15995extern "C" {
15996    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_new_raw_private_key"]
15997    pub fn EVP_PKEY_new_raw_private_key(
15998        type_: ::std::os::raw::c_int,
15999        unused: *mut ENGINE,
16000        in_: *const u8,
16001        len: usize,
16002    ) -> *mut EVP_PKEY;
16003}
16004extern "C" {
16005    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_new_raw_public_key"]
16006    pub fn EVP_PKEY_new_raw_public_key(
16007        type_: ::std::os::raw::c_int,
16008        unused: *mut ENGINE,
16009        in_: *const u8,
16010        len: usize,
16011    ) -> *mut EVP_PKEY;
16012}
16013extern "C" {
16014    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get_raw_private_key"]
16015    pub fn EVP_PKEY_get_raw_private_key(
16016        pkey: *const EVP_PKEY,
16017        out: *mut u8,
16018        out_len: *mut usize,
16019    ) -> ::std::os::raw::c_int;
16020}
16021extern "C" {
16022    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get_raw_public_key"]
16023    pub fn EVP_PKEY_get_raw_public_key(
16024        pkey: *const EVP_PKEY,
16025        out: *mut u8,
16026        out_len: *mut usize,
16027    ) -> ::std::os::raw::c_int;
16028}
16029extern "C" {
16030    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestSignInit"]
16031    pub fn EVP_DigestSignInit(
16032        ctx: *mut EVP_MD_CTX,
16033        pctx: *mut *mut EVP_PKEY_CTX,
16034        type_: *const EVP_MD,
16035        e: *mut ENGINE,
16036        pkey: *mut EVP_PKEY,
16037    ) -> ::std::os::raw::c_int;
16038}
16039extern "C" {
16040    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestSignUpdate"]
16041    pub fn EVP_DigestSignUpdate(
16042        ctx: *mut EVP_MD_CTX,
16043        data: *const ::std::os::raw::c_void,
16044        len: usize,
16045    ) -> ::std::os::raw::c_int;
16046}
16047extern "C" {
16048    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestSignFinal"]
16049    pub fn EVP_DigestSignFinal(
16050        ctx: *mut EVP_MD_CTX,
16051        out_sig: *mut u8,
16052        out_sig_len: *mut usize,
16053    ) -> ::std::os::raw::c_int;
16054}
16055extern "C" {
16056    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestSign"]
16057    pub fn EVP_DigestSign(
16058        ctx: *mut EVP_MD_CTX,
16059        out_sig: *mut u8,
16060        out_sig_len: *mut usize,
16061        data: *const u8,
16062        data_len: usize,
16063    ) -> ::std::os::raw::c_int;
16064}
16065extern "C" {
16066    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestVerifyInit"]
16067    pub fn EVP_DigestVerifyInit(
16068        ctx: *mut EVP_MD_CTX,
16069        pctx: *mut *mut EVP_PKEY_CTX,
16070        type_: *const EVP_MD,
16071        e: *mut ENGINE,
16072        pkey: *mut EVP_PKEY,
16073    ) -> ::std::os::raw::c_int;
16074}
16075extern "C" {
16076    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestVerifyUpdate"]
16077    pub fn EVP_DigestVerifyUpdate(
16078        ctx: *mut EVP_MD_CTX,
16079        data: *const ::std::os::raw::c_void,
16080        len: usize,
16081    ) -> ::std::os::raw::c_int;
16082}
16083extern "C" {
16084    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestVerifyFinal"]
16085    pub fn EVP_DigestVerifyFinal(
16086        ctx: *mut EVP_MD_CTX,
16087        sig: *const u8,
16088        sig_len: usize,
16089    ) -> ::std::os::raw::c_int;
16090}
16091extern "C" {
16092    #[link_name = "\u{1}aws_lc_0_40_0_EVP_DigestVerify"]
16093    pub fn EVP_DigestVerify(
16094        ctx: *mut EVP_MD_CTX,
16095        sig: *const u8,
16096        sig_len: usize,
16097        data: *const u8,
16098        len: usize,
16099    ) -> ::std::os::raw::c_int;
16100}
16101extern "C" {
16102    #[link_name = "\u{1}aws_lc_0_40_0_EVP_SignInit_ex"]
16103    pub fn EVP_SignInit_ex(
16104        ctx: *mut EVP_MD_CTX,
16105        type_: *const EVP_MD,
16106        impl_: *mut ENGINE,
16107    ) -> ::std::os::raw::c_int;
16108}
16109extern "C" {
16110    #[link_name = "\u{1}aws_lc_0_40_0_EVP_SignInit"]
16111    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16112}
16113extern "C" {
16114    #[link_name = "\u{1}aws_lc_0_40_0_EVP_SignUpdate"]
16115    pub fn EVP_SignUpdate(
16116        ctx: *mut EVP_MD_CTX,
16117        data: *const ::std::os::raw::c_void,
16118        len: usize,
16119    ) -> ::std::os::raw::c_int;
16120}
16121extern "C" {
16122    #[link_name = "\u{1}aws_lc_0_40_0_EVP_SignFinal"]
16123    pub fn EVP_SignFinal(
16124        ctx: *const EVP_MD_CTX,
16125        sig: *mut u8,
16126        out_sig_len: *mut ::std::os::raw::c_uint,
16127        pkey: *mut EVP_PKEY,
16128    ) -> ::std::os::raw::c_int;
16129}
16130extern "C" {
16131    #[link_name = "\u{1}aws_lc_0_40_0_EVP_VerifyInit_ex"]
16132    pub fn EVP_VerifyInit_ex(
16133        ctx: *mut EVP_MD_CTX,
16134        type_: *const EVP_MD,
16135        impl_: *mut ENGINE,
16136    ) -> ::std::os::raw::c_int;
16137}
16138extern "C" {
16139    #[link_name = "\u{1}aws_lc_0_40_0_EVP_VerifyInit"]
16140    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::std::os::raw::c_int;
16141}
16142extern "C" {
16143    #[link_name = "\u{1}aws_lc_0_40_0_EVP_VerifyUpdate"]
16144    pub fn EVP_VerifyUpdate(
16145        ctx: *mut EVP_MD_CTX,
16146        data: *const ::std::os::raw::c_void,
16147        len: usize,
16148    ) -> ::std::os::raw::c_int;
16149}
16150extern "C" {
16151    #[link_name = "\u{1}aws_lc_0_40_0_EVP_VerifyFinal"]
16152    pub fn EVP_VerifyFinal(
16153        ctx: *mut EVP_MD_CTX,
16154        sig: *const u8,
16155        sig_len: usize,
16156        pkey: *mut EVP_PKEY,
16157    ) -> ::std::os::raw::c_int;
16158}
16159extern "C" {
16160    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_print_public"]
16161    pub fn EVP_PKEY_print_public(
16162        out: *mut BIO,
16163        pkey: *const EVP_PKEY,
16164        indent: ::std::os::raw::c_int,
16165        pctx: *mut ASN1_PCTX,
16166    ) -> ::std::os::raw::c_int;
16167}
16168extern "C" {
16169    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_print_private"]
16170    pub fn EVP_PKEY_print_private(
16171        out: *mut BIO,
16172        pkey: *const EVP_PKEY,
16173        indent: ::std::os::raw::c_int,
16174        pctx: *mut ASN1_PCTX,
16175    ) -> ::std::os::raw::c_int;
16176}
16177extern "C" {
16178    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_print_params"]
16179    pub fn EVP_PKEY_print_params(
16180        out: *mut BIO,
16181        pkey: *const EVP_PKEY,
16182        indent: ::std::os::raw::c_int,
16183        pctx: *mut ASN1_PCTX,
16184    ) -> ::std::os::raw::c_int;
16185}
16186extern "C" {
16187    #[link_name = "\u{1}aws_lc_0_40_0_PKCS5_PBKDF2_HMAC"]
16188    pub fn PKCS5_PBKDF2_HMAC(
16189        password: *const ::std::os::raw::c_char,
16190        password_len: usize,
16191        salt: *const u8,
16192        salt_len: usize,
16193        iterations: u32,
16194        digest: *const EVP_MD,
16195        key_len: usize,
16196        out_key: *mut u8,
16197    ) -> ::std::os::raw::c_int;
16198}
16199extern "C" {
16200    #[link_name = "\u{1}aws_lc_0_40_0_PKCS5_PBKDF2_HMAC_SHA1"]
16201    pub fn PKCS5_PBKDF2_HMAC_SHA1(
16202        password: *const ::std::os::raw::c_char,
16203        password_len: usize,
16204        salt: *const u8,
16205        salt_len: usize,
16206        iterations: u32,
16207        key_len: usize,
16208        out_key: *mut u8,
16209    ) -> ::std::os::raw::c_int;
16210}
16211extern "C" {
16212    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PBE_scrypt"]
16213    pub fn EVP_PBE_scrypt(
16214        password: *const ::std::os::raw::c_char,
16215        password_len: usize,
16216        salt: *const u8,
16217        salt_len: usize,
16218        N: u64,
16219        r: u64,
16220        p: u64,
16221        max_mem: usize,
16222        out_key: *mut u8,
16223        key_len: usize,
16224    ) -> ::std::os::raw::c_int;
16225}
16226extern "C" {
16227    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_new"]
16228    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16229}
16230extern "C" {
16231    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_new_id"]
16232    pub fn EVP_PKEY_CTX_new_id(id: ::std::os::raw::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
16233}
16234extern "C" {
16235    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_free"]
16236    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
16237}
16238extern "C" {
16239    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_dup"]
16240    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
16241}
16242extern "C" {
16243    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get0_pkey"]
16244    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
16245}
16246extern "C" {
16247    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_sign_init"]
16248    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16249}
16250extern "C" {
16251    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_sign"]
16252    pub fn EVP_PKEY_sign(
16253        ctx: *mut EVP_PKEY_CTX,
16254        sig: *mut u8,
16255        sig_len: *mut usize,
16256        digest: *const u8,
16257        digest_len: usize,
16258    ) -> ::std::os::raw::c_int;
16259}
16260extern "C" {
16261    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_verify_init"]
16262    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16263}
16264extern "C" {
16265    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_verify"]
16266    pub fn EVP_PKEY_verify(
16267        ctx: *mut EVP_PKEY_CTX,
16268        sig: *const u8,
16269        sig_len: usize,
16270        digest: *const u8,
16271        digest_len: usize,
16272    ) -> ::std::os::raw::c_int;
16273}
16274extern "C" {
16275    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_encrypt_init"]
16276    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16277}
16278extern "C" {
16279    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_encrypt"]
16280    pub fn EVP_PKEY_encrypt(
16281        ctx: *mut EVP_PKEY_CTX,
16282        out: *mut u8,
16283        out_len: *mut usize,
16284        in_: *const u8,
16285        in_len: usize,
16286    ) -> ::std::os::raw::c_int;
16287}
16288extern "C" {
16289    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_decrypt_init"]
16290    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16291}
16292extern "C" {
16293    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_decrypt"]
16294    pub fn EVP_PKEY_decrypt(
16295        ctx: *mut EVP_PKEY_CTX,
16296        out: *mut u8,
16297        out_len: *mut usize,
16298        in_: *const u8,
16299        in_len: usize,
16300    ) -> ::std::os::raw::c_int;
16301}
16302extern "C" {
16303    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_verify_recover_init"]
16304    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16305}
16306extern "C" {
16307    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_verify_recover"]
16308    pub fn EVP_PKEY_verify_recover(
16309        ctx: *mut EVP_PKEY_CTX,
16310        out: *mut u8,
16311        out_len: *mut usize,
16312        sig: *const u8,
16313        siglen: usize,
16314    ) -> ::std::os::raw::c_int;
16315}
16316extern "C" {
16317    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_derive_init"]
16318    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16319}
16320extern "C" {
16321    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_derive_set_peer"]
16322    pub fn EVP_PKEY_derive_set_peer(
16323        ctx: *mut EVP_PKEY_CTX,
16324        peer: *mut EVP_PKEY,
16325    ) -> ::std::os::raw::c_int;
16326}
16327extern "C" {
16328    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_derive"]
16329    pub fn EVP_PKEY_derive(
16330        ctx: *mut EVP_PKEY_CTX,
16331        key: *mut u8,
16332        out_key_len: *mut usize,
16333    ) -> ::std::os::raw::c_int;
16334}
16335extern "C" {
16336    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_check"]
16337    pub fn EVP_PKEY_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16338}
16339extern "C" {
16340    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_public_check"]
16341    pub fn EVP_PKEY_public_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16342}
16343extern "C" {
16344    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_param_check"]
16345    pub fn EVP_PKEY_param_check(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16346}
16347extern "C" {
16348    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_keygen_init"]
16349    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16350}
16351extern "C" {
16352    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_keygen"]
16353    pub fn EVP_PKEY_keygen(
16354        ctx: *mut EVP_PKEY_CTX,
16355        out_pkey: *mut *mut EVP_PKEY,
16356    ) -> ::std::os::raw::c_int;
16357}
16358extern "C" {
16359    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_encapsulate"]
16360    pub fn EVP_PKEY_encapsulate(
16361        ctx: *mut EVP_PKEY_CTX,
16362        ciphertext: *mut u8,
16363        ciphertext_len: *mut usize,
16364        shared_secret: *mut u8,
16365        shared_secret_len: *mut usize,
16366    ) -> ::std::os::raw::c_int;
16367}
16368extern "C" {
16369    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_decapsulate"]
16370    pub fn EVP_PKEY_decapsulate(
16371        ctx: *mut EVP_PKEY_CTX,
16372        shared_secret: *mut u8,
16373        shared_secret_len: *mut usize,
16374        ciphertext: *const u8,
16375        ciphertext_len: usize,
16376    ) -> ::std::os::raw::c_int;
16377}
16378extern "C" {
16379    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_paramgen_init"]
16380    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int;
16381}
16382extern "C" {
16383    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_paramgen"]
16384    pub fn EVP_PKEY_paramgen(
16385        ctx: *mut EVP_PKEY_CTX,
16386        out_pkey: *mut *mut EVP_PKEY,
16387    ) -> ::std::os::raw::c_int;
16388}
16389extern "C" {
16390    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_signature_md"]
16391    pub fn EVP_PKEY_CTX_set_signature_md(
16392        ctx: *mut EVP_PKEY_CTX,
16393        md: *const EVP_MD,
16394    ) -> ::std::os::raw::c_int;
16395}
16396extern "C" {
16397    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_signature_md"]
16398    pub fn EVP_PKEY_CTX_get_signature_md(
16399        ctx: *mut EVP_PKEY_CTX,
16400        out_md: *mut *const EVP_MD,
16401    ) -> ::std::os::raw::c_int;
16402}
16403extern "C" {
16404    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_signature_context"]
16405    pub fn EVP_PKEY_CTX_set_signature_context(
16406        ctx: *mut EVP_PKEY_CTX,
16407        context: *const u8,
16408        context_len: usize,
16409    ) -> ::std::os::raw::c_int;
16410}
16411extern "C" {
16412    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get0_signature_context"]
16413    pub fn EVP_PKEY_CTX_get0_signature_context(
16414        ctx: *mut EVP_PKEY_CTX,
16415        context: *mut *const u8,
16416        context_len: *mut usize,
16417    ) -> ::std::os::raw::c_int;
16418}
16419extern "C" {
16420    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_padding"]
16421    pub fn EVP_PKEY_CTX_set_rsa_padding(
16422        ctx: *mut EVP_PKEY_CTX,
16423        padding: ::std::os::raw::c_int,
16424    ) -> ::std::os::raw::c_int;
16425}
16426extern "C" {
16427    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_rsa_padding"]
16428    pub fn EVP_PKEY_CTX_get_rsa_padding(
16429        ctx: *mut EVP_PKEY_CTX,
16430        out_padding: *mut ::std::os::raw::c_int,
16431    ) -> ::std::os::raw::c_int;
16432}
16433extern "C" {
16434    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_pss_saltlen"]
16435    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
16436        ctx: *mut EVP_PKEY_CTX,
16437        salt_len: ::std::os::raw::c_int,
16438    ) -> ::std::os::raw::c_int;
16439}
16440extern "C" {
16441    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_rsa_pss_saltlen"]
16442    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
16443        ctx: *mut EVP_PKEY_CTX,
16444        out_salt_len: *mut ::std::os::raw::c_int,
16445    ) -> ::std::os::raw::c_int;
16446}
16447extern "C" {
16448    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_keygen_bits"]
16449    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
16450        ctx: *mut EVP_PKEY_CTX,
16451        bits: ::std::os::raw::c_int,
16452    ) -> ::std::os::raw::c_int;
16453}
16454extern "C" {
16455    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_keygen_pubexp"]
16456    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
16457        ctx: *mut EVP_PKEY_CTX,
16458        e: *mut BIGNUM,
16459    ) -> ::std::os::raw::c_int;
16460}
16461extern "C" {
16462    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_oaep_md"]
16463    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
16464        ctx: *mut EVP_PKEY_CTX,
16465        md: *const EVP_MD,
16466    ) -> ::std::os::raw::c_int;
16467}
16468extern "C" {
16469    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_rsa_oaep_md"]
16470    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
16471        ctx: *mut EVP_PKEY_CTX,
16472        out_md: *mut *const EVP_MD,
16473    ) -> ::std::os::raw::c_int;
16474}
16475extern "C" {
16476    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_mgf1_md"]
16477    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
16478        ctx: *mut EVP_PKEY_CTX,
16479        md: *const EVP_MD,
16480    ) -> ::std::os::raw::c_int;
16481}
16482extern "C" {
16483    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_rsa_mgf1_md"]
16484    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
16485        ctx: *mut EVP_PKEY_CTX,
16486        out_md: *mut *const EVP_MD,
16487    ) -> ::std::os::raw::c_int;
16488}
16489extern "C" {
16490    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set0_rsa_oaep_label"]
16491    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
16492        ctx: *mut EVP_PKEY_CTX,
16493        label: *mut u8,
16494        label_len: usize,
16495    ) -> ::std::os::raw::c_int;
16496}
16497extern "C" {
16498    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get0_rsa_oaep_label"]
16499    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
16500        ctx: *mut EVP_PKEY_CTX,
16501        out_label: *mut *const u8,
16502    ) -> ::std::os::raw::c_int;
16503}
16504extern "C" {
16505    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_ec_paramgen_curve_nid"]
16506    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
16507        ctx: *mut EVP_PKEY_CTX,
16508        nid: ::std::os::raw::c_int,
16509    ) -> ::std::os::raw::c_int;
16510}
16511extern "C" {
16512    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_kem_set_params"]
16513    pub fn EVP_PKEY_CTX_kem_set_params(
16514        ctx: *mut EVP_PKEY_CTX,
16515        nid: ::std::os::raw::c_int,
16516    ) -> ::std::os::raw::c_int;
16517}
16518extern "C" {
16519    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_kem_new_raw_public_key"]
16520    pub fn EVP_PKEY_kem_new_raw_public_key(
16521        nid: ::std::os::raw::c_int,
16522        in_: *const u8,
16523        len: usize,
16524    ) -> *mut EVP_PKEY;
16525}
16526extern "C" {
16527    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_kem_new_raw_secret_key"]
16528    pub fn EVP_PKEY_kem_new_raw_secret_key(
16529        nid: ::std::os::raw::c_int,
16530        in_: *const u8,
16531        len: usize,
16532    ) -> *mut EVP_PKEY;
16533}
16534extern "C" {
16535    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_kem_new_raw_key"]
16536    pub fn EVP_PKEY_kem_new_raw_key(
16537        nid: ::std::os::raw::c_int,
16538        in_public: *const u8,
16539        len_public: usize,
16540        in_secret: *const u8,
16541        len_secret: usize,
16542    ) -> *mut EVP_PKEY;
16543}
16544extern "C" {
16545    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_kem_check_key"]
16546    pub fn EVP_PKEY_kem_check_key(key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
16547}
16548extern "C" {
16549    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_pqdsa_set_params"]
16550    pub fn EVP_PKEY_CTX_pqdsa_set_params(
16551        ctx: *mut EVP_PKEY_CTX,
16552        nid: ::std::os::raw::c_int,
16553    ) -> ::std::os::raw::c_int;
16554}
16555extern "C" {
16556    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_pqdsa_new_raw_public_key"]
16557    pub fn EVP_PKEY_pqdsa_new_raw_public_key(
16558        nid: ::std::os::raw::c_int,
16559        in_: *const u8,
16560        len: usize,
16561    ) -> *mut EVP_PKEY;
16562}
16563extern "C" {
16564    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_pqdsa_new_raw_private_key"]
16565    pub fn EVP_PKEY_pqdsa_new_raw_private_key(
16566        nid: ::std::os::raw::c_int,
16567        in_: *const u8,
16568        len: usize,
16569    ) -> *mut EVP_PKEY;
16570}
16571extern "C" {
16572    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dh_pad"]
16573    pub fn EVP_PKEY_CTX_set_dh_pad(
16574        ctx: *mut EVP_PKEY_CTX,
16575        pad: ::std::os::raw::c_int,
16576    ) -> ::std::os::raw::c_int;
16577}
16578extern "C" {
16579    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_asn1_get_count"]
16580    pub fn EVP_PKEY_asn1_get_count() -> ::std::os::raw::c_int;
16581}
16582extern "C" {
16583    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_asn1_get0"]
16584    pub fn EVP_PKEY_asn1_get0(idx: ::std::os::raw::c_int) -> *const EVP_PKEY_ASN1_METHOD;
16585}
16586extern "C" {
16587    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_asn1_find"]
16588    pub fn EVP_PKEY_asn1_find(
16589        _pe: *mut *mut ENGINE,
16590        type_: ::std::os::raw::c_int,
16591    ) -> *const EVP_PKEY_ASN1_METHOD;
16592}
16593extern "C" {
16594    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_asn1_find_str"]
16595    pub fn EVP_PKEY_asn1_find_str(
16596        _pe: *mut *mut ENGINE,
16597        name: *const ::std::os::raw::c_char,
16598        len: ::std::os::raw::c_int,
16599    ) -> *const EVP_PKEY_ASN1_METHOD;
16600}
16601extern "C" {
16602    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_asn1_get0_info"]
16603    pub fn EVP_PKEY_asn1_get0_info(
16604        ppkey_id: *mut ::std::os::raw::c_int,
16605        pkey_base_id: *mut ::std::os::raw::c_int,
16606        ppkey_flags: *mut ::std::os::raw::c_int,
16607        pinfo: *mut *const ::std::os::raw::c_char,
16608        ppem_str: *mut *const ::std::os::raw::c_char,
16609        ameth: *const EVP_PKEY_ASN1_METHOD,
16610    ) -> ::std::os::raw::c_int;
16611}
16612pub type EVP_PKEY_gen_cb =
16613    ::std::option::Option<unsafe extern "C" fn(ctx: *mut EVP_PKEY_CTX) -> ::std::os::raw::c_int>;
16614extern "C" {
16615    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_cb"]
16616    pub fn EVP_PKEY_CTX_set_cb(ctx: *mut EVP_PKEY_CTX, cb: EVP_PKEY_gen_cb);
16617}
16618extern "C" {
16619    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_keygen_info"]
16620    pub fn EVP_PKEY_CTX_get_keygen_info(
16621        ctx: *mut EVP_PKEY_CTX,
16622        idx: ::std::os::raw::c_int,
16623    ) -> ::std::os::raw::c_int;
16624}
16625extern "C" {
16626    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_app_data"]
16627    pub fn EVP_PKEY_CTX_set_app_data(ctx: *mut EVP_PKEY_CTX, data: *mut ::std::os::raw::c_void);
16628}
16629extern "C" {
16630    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_get_app_data"]
16631    pub fn EVP_PKEY_CTX_get_app_data(ctx: *mut EVP_PKEY_CTX) -> *mut ::std::os::raw::c_void;
16632}
16633extern "C" {
16634    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_get_pkey_type"]
16635    pub fn EVP_MD_get_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16636}
16637extern "C" {
16638    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_pkey_type"]
16639    pub fn EVP_MD_pkey_type(md: *const EVP_MD) -> ::std::os::raw::c_int;
16640}
16641extern "C" {
16642    #[link_name = "\u{1}aws_lc_0_40_0_EVP_CIPHER_do_all_sorted"]
16643    pub fn EVP_CIPHER_do_all_sorted(
16644        callback: ::std::option::Option<
16645            unsafe extern "C" fn(
16646                cipher: *const EVP_CIPHER,
16647                name: *const ::std::os::raw::c_char,
16648                unused: *const ::std::os::raw::c_char,
16649                arg: *mut ::std::os::raw::c_void,
16650            ),
16651        >,
16652        arg: *mut ::std::os::raw::c_void,
16653    );
16654}
16655extern "C" {
16656    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_do_all_sorted"]
16657    pub fn EVP_MD_do_all_sorted(
16658        callback: ::std::option::Option<
16659            unsafe extern "C" fn(
16660                cipher: *const EVP_MD,
16661                name: *const ::std::os::raw::c_char,
16662                unused: *const ::std::os::raw::c_char,
16663                arg: *mut ::std::os::raw::c_void,
16664            ),
16665        >,
16666        arg: *mut ::std::os::raw::c_void,
16667    );
16668}
16669extern "C" {
16670    #[link_name = "\u{1}aws_lc_0_40_0_EVP_MD_do_all"]
16671    pub fn EVP_MD_do_all(
16672        callback: ::std::option::Option<
16673            unsafe extern "C" fn(
16674                cipher: *const EVP_MD,
16675                name: *const ::std::os::raw::c_char,
16676                unused: *const ::std::os::raw::c_char,
16677                arg: *mut ::std::os::raw::c_void,
16678            ),
16679        >,
16680        arg: *mut ::std::os::raw::c_void,
16681    );
16682}
16683extern "C" {
16684    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PrivateKey"]
16685    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16686}
16687extern "C" {
16688    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PublicKey"]
16689    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16690}
16691extern "C" {
16692    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PrivateKey"]
16693    pub fn d2i_PrivateKey(
16694        type_: ::std::os::raw::c_int,
16695        out: *mut *mut EVP_PKEY,
16696        inp: *mut *const u8,
16697        len: ::std::os::raw::c_long,
16698    ) -> *mut EVP_PKEY;
16699}
16700extern "C" {
16701    #[link_name = "\u{1}aws_lc_0_40_0_d2i_AutoPrivateKey"]
16702    pub fn d2i_AutoPrivateKey(
16703        out: *mut *mut EVP_PKEY,
16704        inp: *mut *const u8,
16705        len: ::std::os::raw::c_long,
16706    ) -> *mut EVP_PKEY;
16707}
16708extern "C" {
16709    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PublicKey"]
16710    pub fn d2i_PublicKey(
16711        type_: ::std::os::raw::c_int,
16712        out: *mut *mut EVP_PKEY,
16713        inp: *mut *const u8,
16714        len: ::std::os::raw::c_long,
16715    ) -> *mut EVP_PKEY;
16716}
16717extern "C" {
16718    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_ec_param_enc"]
16719    pub fn EVP_PKEY_CTX_set_ec_param_enc(
16720        ctx: *mut EVP_PKEY_CTX,
16721        encoding: ::std::os::raw::c_int,
16722    ) -> ::std::os::raw::c_int;
16723}
16724extern "C" {
16725    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_set1_tls_encodedpoint"]
16726    pub fn EVP_PKEY_set1_tls_encodedpoint(
16727        pkey: *mut EVP_PKEY,
16728        in_: *const u8,
16729        len: usize,
16730    ) -> ::std::os::raw::c_int;
16731}
16732extern "C" {
16733    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get1_tls_encodedpoint"]
16734    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
16735}
16736extern "C" {
16737    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_base_id"]
16738    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::std::os::raw::c_int;
16739}
16740extern "C" {
16741    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_pss_keygen_md"]
16742    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
16743        ctx: *mut EVP_PKEY_CTX,
16744        md: *const EVP_MD,
16745    ) -> ::std::os::raw::c_int;
16746}
16747extern "C" {
16748    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen"]
16749    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
16750        ctx: *mut EVP_PKEY_CTX,
16751        salt_len: ::std::os::raw::c_int,
16752    ) -> ::std::os::raw::c_int;
16753}
16754extern "C" {
16755    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md"]
16756    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
16757        ctx: *mut EVP_PKEY_CTX,
16758        md: *const EVP_MD,
16759    ) -> ::std::os::raw::c_int;
16760}
16761extern "C" {
16762    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PUBKEY"]
16763    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16764}
16765extern "C" {
16766    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PUBKEY"]
16767    pub fn d2i_PUBKEY(
16768        out: *mut *mut EVP_PKEY,
16769        inp: *mut *const u8,
16770        len: ::std::os::raw::c_long,
16771    ) -> *mut EVP_PKEY;
16772}
16773extern "C" {
16774    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSA_PUBKEY"]
16775    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16776}
16777extern "C" {
16778    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSA_PUBKEY"]
16779    pub fn d2i_RSA_PUBKEY(
16780        out: *mut *mut RSA,
16781        inp: *mut *const u8,
16782        len: ::std::os::raw::c_long,
16783    ) -> *mut RSA;
16784}
16785extern "C" {
16786    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSA_PUBKEY"]
16787    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16788}
16789extern "C" {
16790    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSA_PUBKEY"]
16791    pub fn d2i_DSA_PUBKEY(
16792        out: *mut *mut DSA,
16793        inp: *mut *const u8,
16794        len: ::std::os::raw::c_long,
16795    ) -> *mut DSA;
16796}
16797extern "C" {
16798    #[link_name = "\u{1}aws_lc_0_40_0_i2d_EC_PUBKEY"]
16799    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
16800}
16801extern "C" {
16802    #[link_name = "\u{1}aws_lc_0_40_0_d2i_EC_PUBKEY"]
16803    pub fn d2i_EC_PUBKEY(
16804        out: *mut *mut EC_KEY,
16805        inp: *mut *const u8,
16806        len: ::std::os::raw::c_long,
16807    ) -> *mut EC_KEY;
16808}
16809extern "C" {
16810    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_assign"]
16811    pub fn EVP_PKEY_assign(
16812        pkey: *mut EVP_PKEY,
16813        type_: ::std::os::raw::c_int,
16814        key: *mut ::std::os::raw::c_void,
16815    ) -> ::std::os::raw::c_int;
16816}
16817extern "C" {
16818    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_type"]
16819    pub fn EVP_PKEY_type(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
16820}
16821extern "C" {
16822    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_new_mac_key"]
16823    pub fn EVP_PKEY_new_mac_key(
16824        type_: ::std::os::raw::c_int,
16825        engine: *mut ENGINE,
16826        mac_key: *const u8,
16827        mac_key_len: usize,
16828    ) -> *mut EVP_PKEY;
16829}
16830extern "C" {
16831    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_get0"]
16832    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::std::os::raw::c_void;
16833}
16834extern "C" {
16835    #[link_name = "\u{1}aws_lc_0_40_0_OpenSSL_add_all_algorithms"]
16836    pub fn OpenSSL_add_all_algorithms();
16837}
16838extern "C" {
16839    #[link_name = "\u{1}aws_lc_0_40_0_OPENSSL_add_all_algorithms_conf"]
16840    pub fn OPENSSL_add_all_algorithms_conf();
16841}
16842extern "C" {
16843    #[link_name = "\u{1}aws_lc_0_40_0_OpenSSL_add_all_ciphers"]
16844    pub fn OpenSSL_add_all_ciphers();
16845}
16846extern "C" {
16847    #[link_name = "\u{1}aws_lc_0_40_0_OpenSSL_add_all_digests"]
16848    pub fn OpenSSL_add_all_digests();
16849}
16850extern "C" {
16851    #[link_name = "\u{1}aws_lc_0_40_0_EVP_cleanup"]
16852    pub fn EVP_cleanup();
16853}
16854extern "C" {
16855    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dsa_paramgen_bits"]
16856    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
16857        ctx: *mut EVP_PKEY_CTX,
16858        nbits: ::std::os::raw::c_int,
16859    ) -> ::std::os::raw::c_int;
16860}
16861extern "C" {
16862    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dsa_paramgen_md"]
16863    pub fn EVP_PKEY_CTX_set_dsa_paramgen_md(
16864        ctx: *mut EVP_PKEY_CTX,
16865        md: *const EVP_MD,
16866    ) -> ::std::os::raw::c_int;
16867}
16868extern "C" {
16869    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_dsa_paramgen_q_bits"]
16870    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
16871        ctx: *mut EVP_PKEY_CTX,
16872        qbits: ::std::os::raw::c_int,
16873    ) -> ::std::os::raw::c_int;
16874}
16875extern "C" {
16876    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_ctrl_str"]
16877    pub fn EVP_PKEY_CTX_ctrl_str(
16878        ctx: *mut EVP_PKEY_CTX,
16879        type_: *const ::std::os::raw::c_char,
16880        value: *const ::std::os::raw::c_char,
16881    ) -> ::std::os::raw::c_int;
16882}
16883extern "C" {
16884    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_tls1_prf"]
16885    pub fn CRYPTO_tls1_prf(
16886        digest: *const EVP_MD,
16887        out: *mut u8,
16888        out_len: usize,
16889        secret: *const u8,
16890        secret_len: usize,
16891        label: *const ::std::os::raw::c_char,
16892        label_len: usize,
16893        seed1: *const u8,
16894        seed1_len: usize,
16895        seed2: *const u8,
16896        seed2_len: usize,
16897    ) -> ::std::os::raw::c_int;
16898}
16899extern "C" {
16900    #[link_name = "\u{1}aws_lc_0_40_0_SSKDF_digest"]
16901    pub fn SSKDF_digest(
16902        out_key: *mut u8,
16903        out_len: usize,
16904        digest: *const EVP_MD,
16905        secret: *const u8,
16906        secret_len: usize,
16907        info: *const u8,
16908        info_len: usize,
16909    ) -> ::std::os::raw::c_int;
16910}
16911extern "C" {
16912    #[link_name = "\u{1}aws_lc_0_40_0_SSKDF_hmac"]
16913    pub fn SSKDF_hmac(
16914        out_key: *mut u8,
16915        out_len: usize,
16916        digest: *const EVP_MD,
16917        secret: *const u8,
16918        secret_len: usize,
16919        info: *const u8,
16920        info_len: usize,
16921        salt: *const u8,
16922        salt_len: usize,
16923    ) -> ::std::os::raw::c_int;
16924}
16925extern "C" {
16926    #[link_name = "\u{1}aws_lc_0_40_0_KBKDF_ctr_hmac"]
16927    pub fn KBKDF_ctr_hmac(
16928        out_key: *mut u8,
16929        out_len: usize,
16930        digest: *const EVP_MD,
16931        secret: *const u8,
16932        secret_len: usize,
16933        info: *const u8,
16934        info_len: usize,
16935    ) -> ::std::os::raw::c_int;
16936}
16937extern "C" {
16938    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_hkdf_mode"]
16939    pub fn EVP_PKEY_CTX_hkdf_mode(
16940        ctx: *mut EVP_PKEY_CTX,
16941        mode: ::std::os::raw::c_int,
16942    ) -> ::std::os::raw::c_int;
16943}
16944extern "C" {
16945    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set_hkdf_md"]
16946    pub fn EVP_PKEY_CTX_set_hkdf_md(
16947        ctx: *mut EVP_PKEY_CTX,
16948        md: *const EVP_MD,
16949    ) -> ::std::os::raw::c_int;
16950}
16951extern "C" {
16952    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set1_hkdf_key"]
16953    pub fn EVP_PKEY_CTX_set1_hkdf_key(
16954        ctx: *mut EVP_PKEY_CTX,
16955        key: *const u8,
16956        key_len: usize,
16957    ) -> ::std::os::raw::c_int;
16958}
16959extern "C" {
16960    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_set1_hkdf_salt"]
16961    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
16962        ctx: *mut EVP_PKEY_CTX,
16963        salt: *const u8,
16964        salt_len: usize,
16965    ) -> ::std::os::raw::c_int;
16966}
16967extern "C" {
16968    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_CTX_add1_hkdf_info"]
16969    pub fn EVP_PKEY_CTX_add1_hkdf_info(
16970        ctx: *mut EVP_PKEY_CTX,
16971        info: *const u8,
16972        info_len: usize,
16973    ) -> ::std::os::raw::c_int;
16974}
16975extern "C" {
16976    #[link_name = "\u{1}aws_lc_0_40_0_HKDF"]
16977    pub fn HKDF(
16978        out_key: *mut u8,
16979        out_len: usize,
16980        digest: *const EVP_MD,
16981        secret: *const u8,
16982        secret_len: usize,
16983        salt: *const u8,
16984        salt_len: usize,
16985        info: *const u8,
16986        info_len: usize,
16987    ) -> ::std::os::raw::c_int;
16988}
16989extern "C" {
16990    #[link_name = "\u{1}aws_lc_0_40_0_HKDF_extract"]
16991    pub fn HKDF_extract(
16992        out_key: *mut u8,
16993        out_len: *mut usize,
16994        digest: *const EVP_MD,
16995        secret: *const u8,
16996        secret_len: usize,
16997        salt: *const u8,
16998        salt_len: usize,
16999    ) -> ::std::os::raw::c_int;
17000}
17001extern "C" {
17002    #[link_name = "\u{1}aws_lc_0_40_0_HKDF_expand"]
17003    pub fn HKDF_expand(
17004        out_key: *mut u8,
17005        out_len: usize,
17006        digest: *const EVP_MD,
17007        prk: *const u8,
17008        prk_len: usize,
17009        info: *const u8,
17010        info_len: usize,
17011    ) -> ::std::os::raw::c_int;
17012}
17013extern "C" {
17014    #[link_name = "\u{1}aws_lc_0_40_0_EVP_hpke_x25519_hkdf_sha256"]
17015    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
17016}
17017extern "C" {
17018    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEM_id"]
17019    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
17020}
17021extern "C" {
17022    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEM_public_key_len"]
17023    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17024}
17025extern "C" {
17026    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEM_private_key_len"]
17027    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
17028}
17029extern "C" {
17030    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEM_enc_len"]
17031    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
17032}
17033extern "C" {
17034    #[link_name = "\u{1}aws_lc_0_40_0_EVP_hpke_hkdf_sha256"]
17035    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
17036}
17037extern "C" {
17038    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KDF_id"]
17039    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
17040}
17041extern "C" {
17042    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KDF_hkdf_md"]
17043    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
17044}
17045extern "C" {
17046    #[link_name = "\u{1}aws_lc_0_40_0_EVP_hpke_aes_128_gcm"]
17047    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
17048}
17049extern "C" {
17050    #[link_name = "\u{1}aws_lc_0_40_0_EVP_hpke_aes_256_gcm"]
17051    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
17052}
17053extern "C" {
17054    #[link_name = "\u{1}aws_lc_0_40_0_EVP_hpke_chacha20_poly1305"]
17055    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
17056}
17057extern "C" {
17058    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_AEAD_id"]
17059    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
17060}
17061extern "C" {
17062    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_AEAD_aead"]
17063    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
17064}
17065extern "C" {
17066    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_zero"]
17067    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
17068}
17069extern "C" {
17070    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_cleanup"]
17071    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
17072}
17073extern "C" {
17074    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_new"]
17075    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
17076}
17077extern "C" {
17078    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_free"]
17079    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
17080}
17081extern "C" {
17082    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_copy"]
17083    pub fn EVP_HPKE_KEY_copy(
17084        dst: *mut EVP_HPKE_KEY,
17085        src: *const EVP_HPKE_KEY,
17086    ) -> ::std::os::raw::c_int;
17087}
17088extern "C" {
17089    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_move"]
17090    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
17091}
17092extern "C" {
17093    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_init"]
17094    pub fn EVP_HPKE_KEY_init(
17095        key: *mut EVP_HPKE_KEY,
17096        kem: *const EVP_HPKE_KEM,
17097        priv_key: *const u8,
17098        priv_key_len: usize,
17099    ) -> ::std::os::raw::c_int;
17100}
17101extern "C" {
17102    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_generate"]
17103    pub fn EVP_HPKE_KEY_generate(
17104        key: *mut EVP_HPKE_KEY,
17105        kem: *const EVP_HPKE_KEM,
17106    ) -> ::std::os::raw::c_int;
17107}
17108extern "C" {
17109    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_kem"]
17110    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
17111}
17112extern "C" {
17113    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_public_key"]
17114    pub fn EVP_HPKE_KEY_public_key(
17115        key: *const EVP_HPKE_KEY,
17116        out: *mut u8,
17117        out_len: *mut usize,
17118        max_out: usize,
17119    ) -> ::std::os::raw::c_int;
17120}
17121extern "C" {
17122    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_KEY_private_key"]
17123    pub fn EVP_HPKE_KEY_private_key(
17124        key: *const EVP_HPKE_KEY,
17125        out: *mut u8,
17126        out_len: *mut usize,
17127        max_out: usize,
17128    ) -> ::std::os::raw::c_int;
17129}
17130extern "C" {
17131    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_zero"]
17132    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
17133}
17134extern "C" {
17135    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_cleanup"]
17136    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
17137}
17138extern "C" {
17139    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_new"]
17140    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
17141}
17142extern "C" {
17143    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_free"]
17144    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
17145}
17146extern "C" {
17147    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_sender"]
17148    pub fn EVP_HPKE_CTX_setup_sender(
17149        ctx: *mut EVP_HPKE_CTX,
17150        out_enc: *mut u8,
17151        out_enc_len: *mut usize,
17152        max_enc: usize,
17153        kem: *const EVP_HPKE_KEM,
17154        kdf: *const EVP_HPKE_KDF,
17155        aead: *const EVP_HPKE_AEAD,
17156        peer_public_key: *const u8,
17157        peer_public_key_len: usize,
17158        info: *const u8,
17159        info_len: usize,
17160    ) -> ::std::os::raw::c_int;
17161}
17162extern "C" {
17163    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_sender_with_seed_for_testing"]
17164    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
17165        ctx: *mut EVP_HPKE_CTX,
17166        out_enc: *mut u8,
17167        out_enc_len: *mut usize,
17168        max_enc: usize,
17169        kem: *const EVP_HPKE_KEM,
17170        kdf: *const EVP_HPKE_KDF,
17171        aead: *const EVP_HPKE_AEAD,
17172        peer_public_key: *const u8,
17173        peer_public_key_len: usize,
17174        info: *const u8,
17175        info_len: usize,
17176        seed: *const u8,
17177        seed_len: usize,
17178    ) -> ::std::os::raw::c_int;
17179}
17180extern "C" {
17181    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_recipient"]
17182    pub fn EVP_HPKE_CTX_setup_recipient(
17183        ctx: *mut EVP_HPKE_CTX,
17184        key: *const EVP_HPKE_KEY,
17185        kdf: *const EVP_HPKE_KDF,
17186        aead: *const EVP_HPKE_AEAD,
17187        enc: *const u8,
17188        enc_len: usize,
17189        info: *const u8,
17190        info_len: usize,
17191    ) -> ::std::os::raw::c_int;
17192}
17193extern "C" {
17194    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_auth_sender"]
17195    pub fn EVP_HPKE_CTX_setup_auth_sender(
17196        ctx: *mut EVP_HPKE_CTX,
17197        out_enc: *mut u8,
17198        out_enc_len: *mut usize,
17199        max_enc: usize,
17200        key: *const EVP_HPKE_KEY,
17201        kdf: *const EVP_HPKE_KDF,
17202        aead: *const EVP_HPKE_AEAD,
17203        peer_public_key: *const u8,
17204        peer_public_key_len: usize,
17205        info: *const u8,
17206        info_len: usize,
17207    ) -> ::std::os::raw::c_int;
17208}
17209extern "C" {
17210    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing"]
17211    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
17212        ctx: *mut EVP_HPKE_CTX,
17213        out_enc: *mut u8,
17214        out_enc_len: *mut usize,
17215        max_enc: usize,
17216        key: *const EVP_HPKE_KEY,
17217        kdf: *const EVP_HPKE_KDF,
17218        aead: *const EVP_HPKE_AEAD,
17219        peer_public_key: *const u8,
17220        peer_public_key_len: usize,
17221        info: *const u8,
17222        info_len: usize,
17223        seed: *const u8,
17224        seed_len: usize,
17225    ) -> ::std::os::raw::c_int;
17226}
17227extern "C" {
17228    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_setup_auth_recipient"]
17229    pub fn EVP_HPKE_CTX_setup_auth_recipient(
17230        ctx: *mut EVP_HPKE_CTX,
17231        key: *const EVP_HPKE_KEY,
17232        kdf: *const EVP_HPKE_KDF,
17233        aead: *const EVP_HPKE_AEAD,
17234        enc: *const u8,
17235        enc_len: usize,
17236        info: *const u8,
17237        info_len: usize,
17238        peer_public_key: *const u8,
17239        peer_public_key_len: usize,
17240    ) -> ::std::os::raw::c_int;
17241}
17242extern "C" {
17243    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_open"]
17244    pub fn EVP_HPKE_CTX_open(
17245        ctx: *mut EVP_HPKE_CTX,
17246        out: *mut u8,
17247        out_len: *mut usize,
17248        max_out_len: usize,
17249        in_: *const u8,
17250        in_len: usize,
17251        ad: *const u8,
17252        ad_len: usize,
17253    ) -> ::std::os::raw::c_int;
17254}
17255extern "C" {
17256    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_seal"]
17257    pub fn EVP_HPKE_CTX_seal(
17258        ctx: *mut EVP_HPKE_CTX,
17259        out: *mut u8,
17260        out_len: *mut usize,
17261        max_out_len: usize,
17262        in_: *const u8,
17263        in_len: usize,
17264        ad: *const u8,
17265        ad_len: usize,
17266    ) -> ::std::os::raw::c_int;
17267}
17268extern "C" {
17269    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_export"]
17270    pub fn EVP_HPKE_CTX_export(
17271        ctx: *const EVP_HPKE_CTX,
17272        out: *mut u8,
17273        secret_len: usize,
17274        context: *const u8,
17275        context_len: usize,
17276    ) -> ::std::os::raw::c_int;
17277}
17278extern "C" {
17279    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_max_overhead"]
17280    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
17281}
17282extern "C" {
17283    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_kem"]
17284    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
17285}
17286extern "C" {
17287    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_aead"]
17288    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
17289}
17290extern "C" {
17291    #[link_name = "\u{1}aws_lc_0_40_0_EVP_HPKE_CTX_kdf"]
17292    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
17293}
17294#[repr(C)]
17295#[derive(Copy, Clone)]
17296pub struct evp_hpke_ctx_st {
17297    pub kem: *const EVP_HPKE_KEM,
17298    pub aead: *const EVP_HPKE_AEAD,
17299    pub kdf: *const EVP_HPKE_KDF,
17300    pub aead_ctx: EVP_AEAD_CTX,
17301    pub base_nonce: [u8; 24usize],
17302    pub exporter_secret: [u8; 64usize],
17303    pub seq: u64,
17304    pub is_sender: ::std::os::raw::c_int,
17305}
17306#[test]
17307fn bindgen_test_layout_evp_hpke_ctx_st() {
17308    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_ctx_st> = ::std::mem::MaybeUninit::uninit();
17309    let ptr = UNINIT.as_ptr();
17310    assert_eq!(
17311        ::std::mem::size_of::<evp_hpke_ctx_st>(),
17312        712usize,
17313        "Size of evp_hpke_ctx_st"
17314    );
17315    assert_eq!(
17316        ::std::mem::align_of::<evp_hpke_ctx_st>(),
17317        8usize,
17318        "Alignment of evp_hpke_ctx_st"
17319    );
17320    assert_eq!(
17321        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17322        0usize,
17323        "Offset of field: evp_hpke_ctx_st::kem"
17324    );
17325    assert_eq!(
17326        unsafe { ::std::ptr::addr_of!((*ptr).aead) as usize - ptr as usize },
17327        8usize,
17328        "Offset of field: evp_hpke_ctx_st::aead"
17329    );
17330    assert_eq!(
17331        unsafe { ::std::ptr::addr_of!((*ptr).kdf) as usize - ptr as usize },
17332        16usize,
17333        "Offset of field: evp_hpke_ctx_st::kdf"
17334    );
17335    assert_eq!(
17336        unsafe { ::std::ptr::addr_of!((*ptr).aead_ctx) as usize - ptr as usize },
17337        24usize,
17338        "Offset of field: evp_hpke_ctx_st::aead_ctx"
17339    );
17340    assert_eq!(
17341        unsafe { ::std::ptr::addr_of!((*ptr).base_nonce) as usize - ptr as usize },
17342        608usize,
17343        "Offset of field: evp_hpke_ctx_st::base_nonce"
17344    );
17345    assert_eq!(
17346        unsafe { ::std::ptr::addr_of!((*ptr).exporter_secret) as usize - ptr as usize },
17347        632usize,
17348        "Offset of field: evp_hpke_ctx_st::exporter_secret"
17349    );
17350    assert_eq!(
17351        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
17352        696usize,
17353        "Offset of field: evp_hpke_ctx_st::seq"
17354    );
17355    assert_eq!(
17356        unsafe { ::std::ptr::addr_of!((*ptr).is_sender) as usize - ptr as usize },
17357        704usize,
17358        "Offset of field: evp_hpke_ctx_st::is_sender"
17359    );
17360}
17361impl Default for evp_hpke_ctx_st {
17362    fn default() -> Self {
17363        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17364        unsafe {
17365            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17366            s.assume_init()
17367        }
17368    }
17369}
17370#[repr(C)]
17371#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17372pub struct evp_hpke_key_st {
17373    pub kem: *const EVP_HPKE_KEM,
17374    pub private_key: [u8; 32usize],
17375    pub public_key: [u8; 32usize],
17376}
17377#[test]
17378fn bindgen_test_layout_evp_hpke_key_st() {
17379    const UNINIT: ::std::mem::MaybeUninit<evp_hpke_key_st> = ::std::mem::MaybeUninit::uninit();
17380    let ptr = UNINIT.as_ptr();
17381    assert_eq!(
17382        ::std::mem::size_of::<evp_hpke_key_st>(),
17383        72usize,
17384        "Size of evp_hpke_key_st"
17385    );
17386    assert_eq!(
17387        ::std::mem::align_of::<evp_hpke_key_st>(),
17388        8usize,
17389        "Alignment of evp_hpke_key_st"
17390    );
17391    assert_eq!(
17392        unsafe { ::std::ptr::addr_of!((*ptr).kem) as usize - ptr as usize },
17393        0usize,
17394        "Offset of field: evp_hpke_key_st::kem"
17395    );
17396    assert_eq!(
17397        unsafe { ::std::ptr::addr_of!((*ptr).private_key) as usize - ptr as usize },
17398        8usize,
17399        "Offset of field: evp_hpke_key_st::private_key"
17400    );
17401    assert_eq!(
17402        unsafe { ::std::ptr::addr_of!((*ptr).public_key) as usize - ptr as usize },
17403        40usize,
17404        "Offset of field: evp_hpke_key_st::public_key"
17405    );
17406}
17407impl Default for evp_hpke_key_st {
17408    fn default() -> Self {
17409        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17410        unsafe {
17411            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17412            s.assume_init()
17413        }
17414    }
17415}
17416#[repr(C)]
17417#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17418pub struct HRSS_private_key {
17419    pub opaque: [u8; 1808usize],
17420}
17421#[test]
17422fn bindgen_test_layout_HRSS_private_key() {
17423    const UNINIT: ::std::mem::MaybeUninit<HRSS_private_key> = ::std::mem::MaybeUninit::uninit();
17424    let ptr = UNINIT.as_ptr();
17425    assert_eq!(
17426        ::std::mem::size_of::<HRSS_private_key>(),
17427        1808usize,
17428        "Size of HRSS_private_key"
17429    );
17430    assert_eq!(
17431        ::std::mem::align_of::<HRSS_private_key>(),
17432        1usize,
17433        "Alignment of HRSS_private_key"
17434    );
17435    assert_eq!(
17436        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17437        0usize,
17438        "Offset of field: HRSS_private_key::opaque"
17439    );
17440}
17441impl Default for HRSS_private_key {
17442    fn default() -> Self {
17443        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17444        unsafe {
17445            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17446            s.assume_init()
17447        }
17448    }
17449}
17450#[repr(C)]
17451#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17452pub struct HRSS_public_key {
17453    pub opaque: [u8; 1424usize],
17454}
17455#[test]
17456fn bindgen_test_layout_HRSS_public_key() {
17457    const UNINIT: ::std::mem::MaybeUninit<HRSS_public_key> = ::std::mem::MaybeUninit::uninit();
17458    let ptr = UNINIT.as_ptr();
17459    assert_eq!(
17460        ::std::mem::size_of::<HRSS_public_key>(),
17461        1424usize,
17462        "Size of HRSS_public_key"
17463    );
17464    assert_eq!(
17465        ::std::mem::align_of::<HRSS_public_key>(),
17466        1usize,
17467        "Alignment of HRSS_public_key"
17468    );
17469    assert_eq!(
17470        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
17471        0usize,
17472        "Offset of field: HRSS_public_key::opaque"
17473    );
17474}
17475impl Default for HRSS_public_key {
17476    fn default() -> Self {
17477        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17478        unsafe {
17479            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17480            s.assume_init()
17481        }
17482    }
17483}
17484extern "C" {
17485    #[link_name = "\u{1}aws_lc_0_40_0_HRSS_generate_key"]
17486    pub fn HRSS_generate_key(
17487        out_pub: *mut HRSS_public_key,
17488        out_priv: *mut HRSS_private_key,
17489        input: *const u8,
17490    ) -> ::std::os::raw::c_int;
17491}
17492extern "C" {
17493    #[link_name = "\u{1}aws_lc_0_40_0_HRSS_encap"]
17494    pub fn HRSS_encap(
17495        out_ciphertext: *mut u8,
17496        out_shared_key: *mut u8,
17497        in_pub: *const HRSS_public_key,
17498        in_: *const u8,
17499    ) -> ::std::os::raw::c_int;
17500}
17501extern "C" {
17502    #[link_name = "\u{1}aws_lc_0_40_0_HRSS_decap"]
17503    pub fn HRSS_decap(
17504        out_shared_key: *mut u8,
17505        in_priv: *const HRSS_private_key,
17506        ciphertext: *const u8,
17507        ciphertext_len: usize,
17508    ) -> ::std::os::raw::c_int;
17509}
17510extern "C" {
17511    #[link_name = "\u{1}aws_lc_0_40_0_HRSS_marshal_public_key"]
17512    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
17513}
17514extern "C" {
17515    #[link_name = "\u{1}aws_lc_0_40_0_HRSS_parse_public_key"]
17516    pub fn HRSS_parse_public_key(
17517        out: *mut HRSS_public_key,
17518        in_: *const u8,
17519    ) -> ::std::os::raw::c_int;
17520}
17521extern "C" {
17522    #[link_name = "\u{1}aws_lc_0_40_0_MD4_Init"]
17523    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17524}
17525extern "C" {
17526    #[link_name = "\u{1}aws_lc_0_40_0_MD4_Update"]
17527    pub fn MD4_Update(
17528        md4: *mut MD4_CTX,
17529        data: *const ::std::os::raw::c_void,
17530        len: usize,
17531    ) -> ::std::os::raw::c_int;
17532}
17533extern "C" {
17534    #[link_name = "\u{1}aws_lc_0_40_0_MD4_Final"]
17535    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::std::os::raw::c_int;
17536}
17537extern "C" {
17538    #[link_name = "\u{1}aws_lc_0_40_0_MD4"]
17539    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
17540}
17541extern "C" {
17542    #[link_name = "\u{1}aws_lc_0_40_0_MD4_Transform"]
17543    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
17544}
17545#[repr(C)]
17546#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17547pub struct md4_state_st {
17548    pub h: [u32; 4usize],
17549    pub Nl: u32,
17550    pub Nh: u32,
17551    pub data: [u8; 64usize],
17552    pub num: ::std::os::raw::c_uint,
17553}
17554#[test]
17555fn bindgen_test_layout_md4_state_st() {
17556    const UNINIT: ::std::mem::MaybeUninit<md4_state_st> = ::std::mem::MaybeUninit::uninit();
17557    let ptr = UNINIT.as_ptr();
17558    assert_eq!(
17559        ::std::mem::size_of::<md4_state_st>(),
17560        92usize,
17561        "Size of md4_state_st"
17562    );
17563    assert_eq!(
17564        ::std::mem::align_of::<md4_state_st>(),
17565        4usize,
17566        "Alignment of md4_state_st"
17567    );
17568    assert_eq!(
17569        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
17570        0usize,
17571        "Offset of field: md4_state_st::h"
17572    );
17573    assert_eq!(
17574        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
17575        16usize,
17576        "Offset of field: md4_state_st::Nl"
17577    );
17578    assert_eq!(
17579        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
17580        20usize,
17581        "Offset of field: md4_state_st::Nh"
17582    );
17583    assert_eq!(
17584        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17585        24usize,
17586        "Offset of field: md4_state_st::data"
17587    );
17588    assert_eq!(
17589        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
17590        88usize,
17591        "Offset of field: md4_state_st::num"
17592    );
17593}
17594impl Default for md4_state_st {
17595    fn default() -> Self {
17596        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17597        unsafe {
17598            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17599            s.assume_init()
17600        }
17601    }
17602}
17603#[repr(C)]
17604#[derive(Debug, Copy, Clone)]
17605pub struct stack_st_CRYPTO_BUFFER {
17606    _unused: [u8; 0],
17607}
17608#[repr(C)]
17609#[derive(Debug, Copy, Clone)]
17610pub struct stack_st_X509 {
17611    _unused: [u8; 0],
17612}
17613#[repr(C)]
17614#[derive(Debug, Copy, Clone)]
17615pub struct stack_st_X509_CRL {
17616    _unused: [u8; 0],
17617}
17618extern "C" {
17619    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_raw_certificates"]
17620    pub fn PKCS7_get_raw_certificates(
17621        out_certs: *mut stack_st_CRYPTO_BUFFER,
17622        cbs: *mut CBS,
17623        pool: *mut CRYPTO_BUFFER_POOL,
17624    ) -> ::std::os::raw::c_int;
17625}
17626extern "C" {
17627    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_certificates"]
17628    pub fn PKCS7_get_certificates(
17629        out_certs: *mut stack_st_X509,
17630        cbs: *mut CBS,
17631    ) -> ::std::os::raw::c_int;
17632}
17633extern "C" {
17634    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_bundle_raw_certificates"]
17635    pub fn PKCS7_bundle_raw_certificates(
17636        out: *mut CBB,
17637        certs: *const stack_st_CRYPTO_BUFFER,
17638    ) -> ::std::os::raw::c_int;
17639}
17640extern "C" {
17641    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_bundle_certificates"]
17642    pub fn PKCS7_bundle_certificates(
17643        out: *mut CBB,
17644        certs: *const stack_st_X509,
17645    ) -> ::std::os::raw::c_int;
17646}
17647extern "C" {
17648    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_CRLs"]
17649    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS)
17650        -> ::std::os::raw::c_int;
17651}
17652extern "C" {
17653    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_bundle_CRLs"]
17654    pub fn PKCS7_bundle_CRLs(
17655        out: *mut CBB,
17656        crls: *const stack_st_X509_CRL,
17657    ) -> ::std::os::raw::c_int;
17658}
17659extern "C" {
17660    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_PEM_certificates"]
17661    pub fn PKCS7_get_PEM_certificates(
17662        out_certs: *mut stack_st_X509,
17663        pem_bio: *mut BIO,
17664    ) -> ::std::os::raw::c_int;
17665}
17666extern "C" {
17667    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_PEM_CRLs"]
17668    pub fn PKCS7_get_PEM_CRLs(
17669        out_crls: *mut stack_st_X509_CRL,
17670        pem_bio: *mut BIO,
17671    ) -> ::std::os::raw::c_int;
17672}
17673extern "C" {
17674    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS7_bio"]
17675    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
17676}
17677extern "C" {
17678    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS7_bio"]
17679    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::std::os::raw::c_int;
17680}
17681extern "C" {
17682    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_data"]
17683    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::std::os::raw::c_int;
17684}
17685extern "C" {
17686    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_digest"]
17687    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::std::os::raw::c_int;
17688}
17689extern "C" {
17690    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_encrypted"]
17691    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::std::os::raw::c_int;
17692}
17693extern "C" {
17694    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_enveloped"]
17695    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17696}
17697extern "C" {
17698    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_signed"]
17699    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::std::os::raw::c_int;
17700}
17701extern "C" {
17702    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_type_is_signedAndEnveloped"]
17703    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::std::os::raw::c_int;
17704}
17705#[repr(C)]
17706#[derive(Copy, Clone)]
17707pub struct pkcs7_st {
17708    pub type_: *mut ASN1_OBJECT,
17709    pub d: pkcs7_st__bindgen_ty_1,
17710}
17711#[repr(C)]
17712#[derive(Copy, Clone)]
17713pub union pkcs7_st__bindgen_ty_1 {
17714    pub ptr: *mut ::std::os::raw::c_char,
17715    pub data: *mut ASN1_OCTET_STRING,
17716    pub sign: *mut PKCS7_SIGNED,
17717    pub enveloped: *mut PKCS7_ENVELOPE,
17718    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
17719    pub digest: *mut PKCS7_DIGEST,
17720    pub encrypted: *mut PKCS7_ENCRYPT,
17721    pub other: *mut ASN1_TYPE,
17722}
17723#[test]
17724fn bindgen_test_layout_pkcs7_st__bindgen_ty_1() {
17725    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st__bindgen_ty_1> =
17726        ::std::mem::MaybeUninit::uninit();
17727    let ptr = UNINIT.as_ptr();
17728    assert_eq!(
17729        ::std::mem::size_of::<pkcs7_st__bindgen_ty_1>(),
17730        8usize,
17731        "Size of pkcs7_st__bindgen_ty_1"
17732    );
17733    assert_eq!(
17734        ::std::mem::align_of::<pkcs7_st__bindgen_ty_1>(),
17735        8usize,
17736        "Alignment of pkcs7_st__bindgen_ty_1"
17737    );
17738    assert_eq!(
17739        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
17740        0usize,
17741        "Offset of field: pkcs7_st__bindgen_ty_1::ptr"
17742    );
17743    assert_eq!(
17744        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
17745        0usize,
17746        "Offset of field: pkcs7_st__bindgen_ty_1::data"
17747    );
17748    assert_eq!(
17749        unsafe { ::std::ptr::addr_of!((*ptr).sign) as usize - ptr as usize },
17750        0usize,
17751        "Offset of field: pkcs7_st__bindgen_ty_1::sign"
17752    );
17753    assert_eq!(
17754        unsafe { ::std::ptr::addr_of!((*ptr).enveloped) as usize - ptr as usize },
17755        0usize,
17756        "Offset of field: pkcs7_st__bindgen_ty_1::enveloped"
17757    );
17758    assert_eq!(
17759        unsafe { ::std::ptr::addr_of!((*ptr).signed_and_enveloped) as usize - ptr as usize },
17760        0usize,
17761        "Offset of field: pkcs7_st__bindgen_ty_1::signed_and_enveloped"
17762    );
17763    assert_eq!(
17764        unsafe { ::std::ptr::addr_of!((*ptr).digest) as usize - ptr as usize },
17765        0usize,
17766        "Offset of field: pkcs7_st__bindgen_ty_1::digest"
17767    );
17768    assert_eq!(
17769        unsafe { ::std::ptr::addr_of!((*ptr).encrypted) as usize - ptr as usize },
17770        0usize,
17771        "Offset of field: pkcs7_st__bindgen_ty_1::encrypted"
17772    );
17773    assert_eq!(
17774        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
17775        0usize,
17776        "Offset of field: pkcs7_st__bindgen_ty_1::other"
17777    );
17778}
17779impl Default for pkcs7_st__bindgen_ty_1 {
17780    fn default() -> Self {
17781        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17782        unsafe {
17783            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17784            s.assume_init()
17785        }
17786    }
17787}
17788#[test]
17789fn bindgen_test_layout_pkcs7_st() {
17790    const UNINIT: ::std::mem::MaybeUninit<pkcs7_st> = ::std::mem::MaybeUninit::uninit();
17791    let ptr = UNINIT.as_ptr();
17792    assert_eq!(
17793        ::std::mem::size_of::<pkcs7_st>(),
17794        16usize,
17795        "Size of pkcs7_st"
17796    );
17797    assert_eq!(
17798        ::std::mem::align_of::<pkcs7_st>(),
17799        8usize,
17800        "Alignment of pkcs7_st"
17801    );
17802    assert_eq!(
17803        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
17804        0usize,
17805        "Offset of field: pkcs7_st::type_"
17806    );
17807    assert_eq!(
17808        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
17809        8usize,
17810        "Offset of field: pkcs7_st::d"
17811    );
17812}
17813impl Default for pkcs7_st {
17814    fn default() -> Self {
17815        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17816        unsafe {
17817            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17818            s.assume_init()
17819        }
17820    }
17821}
17822#[repr(C)]
17823#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17824pub struct pkcs7_signed_st {
17825    pub version: *mut ASN1_INTEGER,
17826    pub md_algs: *mut stack_st_X509_ALGOR,
17827    pub contents: *mut PKCS7,
17828    pub cert: *mut stack_st_X509,
17829    pub crl: *mut stack_st_X509_CRL,
17830    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17831}
17832#[test]
17833fn bindgen_test_layout_pkcs7_signed_st() {
17834    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signed_st> = ::std::mem::MaybeUninit::uninit();
17835    let ptr = UNINIT.as_ptr();
17836    assert_eq!(
17837        ::std::mem::size_of::<pkcs7_signed_st>(),
17838        48usize,
17839        "Size of pkcs7_signed_st"
17840    );
17841    assert_eq!(
17842        ::std::mem::align_of::<pkcs7_signed_st>(),
17843        8usize,
17844        "Alignment of pkcs7_signed_st"
17845    );
17846    assert_eq!(
17847        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17848        0usize,
17849        "Offset of field: pkcs7_signed_st::version"
17850    );
17851    assert_eq!(
17852        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
17853        8usize,
17854        "Offset of field: pkcs7_signed_st::md_algs"
17855    );
17856    assert_eq!(
17857        unsafe { ::std::ptr::addr_of!((*ptr).contents) as usize - ptr as usize },
17858        16usize,
17859        "Offset of field: pkcs7_signed_st::contents"
17860    );
17861    assert_eq!(
17862        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
17863        24usize,
17864        "Offset of field: pkcs7_signed_st::cert"
17865    );
17866    assert_eq!(
17867        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
17868        32usize,
17869        "Offset of field: pkcs7_signed_st::crl"
17870    );
17871    assert_eq!(
17872        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
17873        40usize,
17874        "Offset of field: pkcs7_signed_st::signer_info"
17875    );
17876}
17877impl Default for pkcs7_signed_st {
17878    fn default() -> Self {
17879        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17880        unsafe {
17881            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17882            s.assume_init()
17883        }
17884    }
17885}
17886#[repr(C)]
17887#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17888pub struct pkcs7_signer_info_st {
17889    pub version: *mut ASN1_INTEGER,
17890    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
17891    pub digest_alg: *mut X509_ALGOR,
17892    pub auth_attr: *mut stack_st_X509_ATTRIBUTE,
17893    pub digest_enc_alg: *mut X509_ALGOR,
17894    pub enc_digest: *mut ASN1_OCTET_STRING,
17895    pub unauth_attr: *mut stack_st_X509_ATTRIBUTE,
17896    pub pkey: *mut EVP_PKEY,
17897}
17898#[test]
17899fn bindgen_test_layout_pkcs7_signer_info_st() {
17900    const UNINIT: ::std::mem::MaybeUninit<pkcs7_signer_info_st> = ::std::mem::MaybeUninit::uninit();
17901    let ptr = UNINIT.as_ptr();
17902    assert_eq!(
17903        ::std::mem::size_of::<pkcs7_signer_info_st>(),
17904        64usize,
17905        "Size of pkcs7_signer_info_st"
17906    );
17907    assert_eq!(
17908        ::std::mem::align_of::<pkcs7_signer_info_st>(),
17909        8usize,
17910        "Alignment of pkcs7_signer_info_st"
17911    );
17912    assert_eq!(
17913        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17914        0usize,
17915        "Offset of field: pkcs7_signer_info_st::version"
17916    );
17917    assert_eq!(
17918        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
17919        8usize,
17920        "Offset of field: pkcs7_signer_info_st::issuer_and_serial"
17921    );
17922    assert_eq!(
17923        unsafe { ::std::ptr::addr_of!((*ptr).digest_alg) as usize - ptr as usize },
17924        16usize,
17925        "Offset of field: pkcs7_signer_info_st::digest_alg"
17926    );
17927    assert_eq!(
17928        unsafe { ::std::ptr::addr_of!((*ptr).auth_attr) as usize - ptr as usize },
17929        24usize,
17930        "Offset of field: pkcs7_signer_info_st::auth_attr"
17931    );
17932    assert_eq!(
17933        unsafe { ::std::ptr::addr_of!((*ptr).digest_enc_alg) as usize - ptr as usize },
17934        32usize,
17935        "Offset of field: pkcs7_signer_info_st::digest_enc_alg"
17936    );
17937    assert_eq!(
17938        unsafe { ::std::ptr::addr_of!((*ptr).enc_digest) as usize - ptr as usize },
17939        40usize,
17940        "Offset of field: pkcs7_signer_info_st::enc_digest"
17941    );
17942    assert_eq!(
17943        unsafe { ::std::ptr::addr_of!((*ptr).unauth_attr) as usize - ptr as usize },
17944        48usize,
17945        "Offset of field: pkcs7_signer_info_st::unauth_attr"
17946    );
17947    assert_eq!(
17948        unsafe { ::std::ptr::addr_of!((*ptr).pkey) as usize - ptr as usize },
17949        56usize,
17950        "Offset of field: pkcs7_signer_info_st::pkey"
17951    );
17952}
17953impl Default for pkcs7_signer_info_st {
17954    fn default() -> Self {
17955        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
17956        unsafe {
17957            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
17958            s.assume_init()
17959        }
17960    }
17961}
17962#[repr(C)]
17963#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17964pub struct pkcs7_sign_envelope_st {
17965    pub version: *mut ASN1_INTEGER,
17966    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
17967    pub md_algs: *mut stack_st_X509_ALGOR,
17968    pub enc_data: *mut PKCS7_ENC_CONTENT,
17969    pub cert: *mut stack_st_X509,
17970    pub crl: *mut stack_st_X509_CRL,
17971    pub signer_info: *mut stack_st_PKCS7_SIGNER_INFO,
17972}
17973#[test]
17974fn bindgen_test_layout_pkcs7_sign_envelope_st() {
17975    const UNINIT: ::std::mem::MaybeUninit<pkcs7_sign_envelope_st> =
17976        ::std::mem::MaybeUninit::uninit();
17977    let ptr = UNINIT.as_ptr();
17978    assert_eq!(
17979        ::std::mem::size_of::<pkcs7_sign_envelope_st>(),
17980        56usize,
17981        "Size of pkcs7_sign_envelope_st"
17982    );
17983    assert_eq!(
17984        ::std::mem::align_of::<pkcs7_sign_envelope_st>(),
17985        8usize,
17986        "Alignment of pkcs7_sign_envelope_st"
17987    );
17988    assert_eq!(
17989        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
17990        0usize,
17991        "Offset of field: pkcs7_sign_envelope_st::version"
17992    );
17993    assert_eq!(
17994        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
17995        8usize,
17996        "Offset of field: pkcs7_sign_envelope_st::recipientinfo"
17997    );
17998    assert_eq!(
17999        unsafe { ::std::ptr::addr_of!((*ptr).md_algs) as usize - ptr as usize },
18000        16usize,
18001        "Offset of field: pkcs7_sign_envelope_st::md_algs"
18002    );
18003    assert_eq!(
18004        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18005        24usize,
18006        "Offset of field: pkcs7_sign_envelope_st::enc_data"
18007    );
18008    assert_eq!(
18009        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18010        32usize,
18011        "Offset of field: pkcs7_sign_envelope_st::cert"
18012    );
18013    assert_eq!(
18014        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
18015        40usize,
18016        "Offset of field: pkcs7_sign_envelope_st::crl"
18017    );
18018    assert_eq!(
18019        unsafe { ::std::ptr::addr_of!((*ptr).signer_info) as usize - ptr as usize },
18020        48usize,
18021        "Offset of field: pkcs7_sign_envelope_st::signer_info"
18022    );
18023}
18024impl Default for pkcs7_sign_envelope_st {
18025    fn default() -> Self {
18026        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18027        unsafe {
18028            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18029            s.assume_init()
18030        }
18031    }
18032}
18033#[repr(C)]
18034#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18035pub struct pkcs7_envelope_st {
18036    pub version: *mut ASN1_INTEGER,
18037    pub enc_data: *mut PKCS7_ENC_CONTENT,
18038    pub recipientinfo: *mut stack_st_PKCS7_RECIP_INFO,
18039}
18040#[test]
18041fn bindgen_test_layout_pkcs7_envelope_st() {
18042    const UNINIT: ::std::mem::MaybeUninit<pkcs7_envelope_st> = ::std::mem::MaybeUninit::uninit();
18043    let ptr = UNINIT.as_ptr();
18044    assert_eq!(
18045        ::std::mem::size_of::<pkcs7_envelope_st>(),
18046        24usize,
18047        "Size of pkcs7_envelope_st"
18048    );
18049    assert_eq!(
18050        ::std::mem::align_of::<pkcs7_envelope_st>(),
18051        8usize,
18052        "Alignment of pkcs7_envelope_st"
18053    );
18054    assert_eq!(
18055        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18056        0usize,
18057        "Offset of field: pkcs7_envelope_st::version"
18058    );
18059    assert_eq!(
18060        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
18061        8usize,
18062        "Offset of field: pkcs7_envelope_st::enc_data"
18063    );
18064    assert_eq!(
18065        unsafe { ::std::ptr::addr_of!((*ptr).recipientinfo) as usize - ptr as usize },
18066        16usize,
18067        "Offset of field: pkcs7_envelope_st::recipientinfo"
18068    );
18069}
18070impl Default for pkcs7_envelope_st {
18071    fn default() -> Self {
18072        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18073        unsafe {
18074            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18075            s.assume_init()
18076        }
18077    }
18078}
18079#[repr(C)]
18080#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18081pub struct pkcs7_recip_info_st {
18082    pub version: *mut ASN1_INTEGER,
18083    pub issuer_and_serial: *mut PKCS7_ISSUER_AND_SERIAL,
18084    pub key_enc_algor: *mut X509_ALGOR,
18085    pub enc_key: *mut ASN1_OCTET_STRING,
18086    pub cert: *mut X509,
18087}
18088#[test]
18089fn bindgen_test_layout_pkcs7_recip_info_st() {
18090    const UNINIT: ::std::mem::MaybeUninit<pkcs7_recip_info_st> = ::std::mem::MaybeUninit::uninit();
18091    let ptr = UNINIT.as_ptr();
18092    assert_eq!(
18093        ::std::mem::size_of::<pkcs7_recip_info_st>(),
18094        40usize,
18095        "Size of pkcs7_recip_info_st"
18096    );
18097    assert_eq!(
18098        ::std::mem::align_of::<pkcs7_recip_info_st>(),
18099        8usize,
18100        "Alignment of pkcs7_recip_info_st"
18101    );
18102    assert_eq!(
18103        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
18104        0usize,
18105        "Offset of field: pkcs7_recip_info_st::version"
18106    );
18107    assert_eq!(
18108        unsafe { ::std::ptr::addr_of!((*ptr).issuer_and_serial) as usize - ptr as usize },
18109        8usize,
18110        "Offset of field: pkcs7_recip_info_st::issuer_and_serial"
18111    );
18112    assert_eq!(
18113        unsafe { ::std::ptr::addr_of!((*ptr).key_enc_algor) as usize - ptr as usize },
18114        16usize,
18115        "Offset of field: pkcs7_recip_info_st::key_enc_algor"
18116    );
18117    assert_eq!(
18118        unsafe { ::std::ptr::addr_of!((*ptr).enc_key) as usize - ptr as usize },
18119        24usize,
18120        "Offset of field: pkcs7_recip_info_st::enc_key"
18121    );
18122    assert_eq!(
18123        unsafe { ::std::ptr::addr_of!((*ptr).cert) as usize - ptr as usize },
18124        32usize,
18125        "Offset of field: pkcs7_recip_info_st::cert"
18126    );
18127}
18128impl Default for pkcs7_recip_info_st {
18129    fn default() -> Self {
18130        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18131        unsafe {
18132            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18133            s.assume_init()
18134        }
18135    }
18136}
18137#[repr(C)]
18138#[derive(Debug, Copy, Clone, PartialEq, Eq)]
18139pub struct pkcs7_issuer_and_serial_st {
18140    pub issuer: *mut X509_NAME,
18141    pub serial: *mut ASN1_INTEGER,
18142}
18143#[test]
18144fn bindgen_test_layout_pkcs7_issuer_and_serial_st() {
18145    const UNINIT: ::std::mem::MaybeUninit<pkcs7_issuer_and_serial_st> =
18146        ::std::mem::MaybeUninit::uninit();
18147    let ptr = UNINIT.as_ptr();
18148    assert_eq!(
18149        ::std::mem::size_of::<pkcs7_issuer_and_serial_st>(),
18150        16usize,
18151        "Size of pkcs7_issuer_and_serial_st"
18152    );
18153    assert_eq!(
18154        ::std::mem::align_of::<pkcs7_issuer_and_serial_st>(),
18155        8usize,
18156        "Alignment of pkcs7_issuer_and_serial_st"
18157    );
18158    assert_eq!(
18159        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
18160        0usize,
18161        "Offset of field: pkcs7_issuer_and_serial_st::issuer"
18162    );
18163    assert_eq!(
18164        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
18165        8usize,
18166        "Offset of field: pkcs7_issuer_and_serial_st::serial"
18167    );
18168}
18169impl Default for pkcs7_issuer_and_serial_st {
18170    fn default() -> Self {
18171        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18172        unsafe {
18173            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18174            s.assume_init()
18175        }
18176    }
18177}
18178extern "C" {
18179    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_new"]
18180    pub fn PKCS7_new() -> *mut PKCS7;
18181}
18182extern "C" {
18183    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_free"]
18184    pub fn PKCS7_free(a: *mut PKCS7);
18185}
18186extern "C" {
18187    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS7"]
18188    pub fn d2i_PKCS7(
18189        a: *mut *mut PKCS7,
18190        in_: *mut *const ::std::os::raw::c_uchar,
18191        len: ::std::os::raw::c_long,
18192    ) -> *mut PKCS7;
18193}
18194extern "C" {
18195    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS7"]
18196    pub fn i2d_PKCS7(
18197        a: *mut PKCS7,
18198        out: *mut *mut ::std::os::raw::c_uchar,
18199    ) -> ::std::os::raw::c_int;
18200}
18201extern "C" {
18202    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_it"]
18203    pub static PKCS7_it: ASN1_ITEM;
18204}
18205extern "C" {
18206    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_RECIP_INFO_new"]
18207    pub fn PKCS7_RECIP_INFO_new() -> *mut PKCS7_RECIP_INFO;
18208}
18209extern "C" {
18210    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_RECIP_INFO_free"]
18211    pub fn PKCS7_RECIP_INFO_free(a: *mut PKCS7_RECIP_INFO);
18212}
18213extern "C" {
18214    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS7_RECIP_INFO"]
18215    pub fn d2i_PKCS7_RECIP_INFO(
18216        a: *mut *mut PKCS7_RECIP_INFO,
18217        in_: *mut *const ::std::os::raw::c_uchar,
18218        len: ::std::os::raw::c_long,
18219    ) -> *mut PKCS7_RECIP_INFO;
18220}
18221extern "C" {
18222    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS7_RECIP_INFO"]
18223    pub fn i2d_PKCS7_RECIP_INFO(
18224        a: *mut PKCS7_RECIP_INFO,
18225        out: *mut *mut ::std::os::raw::c_uchar,
18226    ) -> ::std::os::raw::c_int;
18227}
18228extern "C" {
18229    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_RECIP_INFO_it"]
18230    pub static PKCS7_RECIP_INFO_it: ASN1_ITEM;
18231}
18232extern "C" {
18233    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_SIGNER_INFO_new"]
18234    pub fn PKCS7_SIGNER_INFO_new() -> *mut PKCS7_SIGNER_INFO;
18235}
18236extern "C" {
18237    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_SIGNER_INFO_free"]
18238    pub fn PKCS7_SIGNER_INFO_free(a: *mut PKCS7_SIGNER_INFO);
18239}
18240extern "C" {
18241    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS7_SIGNER_INFO"]
18242    pub fn d2i_PKCS7_SIGNER_INFO(
18243        a: *mut *mut PKCS7_SIGNER_INFO,
18244        in_: *mut *const ::std::os::raw::c_uchar,
18245        len: ::std::os::raw::c_long,
18246    ) -> *mut PKCS7_SIGNER_INFO;
18247}
18248extern "C" {
18249    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS7_SIGNER_INFO"]
18250    pub fn i2d_PKCS7_SIGNER_INFO(
18251        a: *mut PKCS7_SIGNER_INFO,
18252        out: *mut *mut ::std::os::raw::c_uchar,
18253    ) -> ::std::os::raw::c_int;
18254}
18255extern "C" {
18256    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_SIGNER_INFO_it"]
18257    pub static PKCS7_SIGNER_INFO_it: ASN1_ITEM;
18258}
18259#[repr(C)]
18260#[derive(Debug, Copy, Clone)]
18261pub struct stack_st_PKCS7_RECIP_INFO {
18262    _unused: [u8; 0],
18263}
18264pub type sk_PKCS7_RECIP_INFO_free_func =
18265    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_RECIP_INFO)>;
18266pub type sk_PKCS7_RECIP_INFO_copy_func = ::std::option::Option<
18267    unsafe extern "C" fn(arg1: *const PKCS7_RECIP_INFO) -> *mut PKCS7_RECIP_INFO,
18268>;
18269pub type sk_PKCS7_RECIP_INFO_cmp_func = ::std::option::Option<
18270    unsafe extern "C" fn(
18271        arg1: *const *const PKCS7_RECIP_INFO,
18272        arg2: *const *const PKCS7_RECIP_INFO,
18273    ) -> ::std::os::raw::c_int,
18274>;
18275pub type sk_PKCS7_RECIP_INFO_delete_if_func = ::std::option::Option<
18276    unsafe extern "C" fn(
18277        arg1: *mut PKCS7_RECIP_INFO,
18278        arg2: *mut ::std::os::raw::c_void,
18279    ) -> ::std::os::raw::c_int,
18280>;
18281#[repr(C)]
18282#[derive(Debug, Copy, Clone)]
18283pub struct stack_st_PKCS7_SIGNER_INFO {
18284    _unused: [u8; 0],
18285}
18286pub type sk_PKCS7_SIGNER_INFO_free_func =
18287    ::std::option::Option<unsafe extern "C" fn(arg1: *mut PKCS7_SIGNER_INFO)>;
18288pub type sk_PKCS7_SIGNER_INFO_copy_func = ::std::option::Option<
18289    unsafe extern "C" fn(arg1: *const PKCS7_SIGNER_INFO) -> *mut PKCS7_SIGNER_INFO,
18290>;
18291pub type sk_PKCS7_SIGNER_INFO_cmp_func = ::std::option::Option<
18292    unsafe extern "C" fn(
18293        arg1: *const *const PKCS7_SIGNER_INFO,
18294        arg2: *const *const PKCS7_SIGNER_INFO,
18295    ) -> ::std::os::raw::c_int,
18296>;
18297pub type sk_PKCS7_SIGNER_INFO_delete_if_func = ::std::option::Option<
18298    unsafe extern "C" fn(
18299        arg1: *mut PKCS7_SIGNER_INFO,
18300        arg2: *mut ::std::os::raw::c_void,
18301    ) -> ::std::os::raw::c_int,
18302>;
18303extern "C" {
18304    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_dup"]
18305    pub fn PKCS7_dup(p7: *mut PKCS7) -> *mut PKCS7;
18306}
18307extern "C" {
18308    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_signed_attribute"]
18309    pub fn PKCS7_get_signed_attribute(
18310        si: *const PKCS7_SIGNER_INFO,
18311        nid: ::std::os::raw::c_int,
18312    ) -> *mut ASN1_TYPE;
18313}
18314extern "C" {
18315    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_signer_info"]
18316    pub fn PKCS7_get_signer_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_SIGNER_INFO;
18317}
18318extern "C" {
18319    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_RECIP_INFO_set"]
18320    pub fn PKCS7_RECIP_INFO_set(
18321        p7i: *mut PKCS7_RECIP_INFO,
18322        x509: *mut X509,
18323    ) -> ::std::os::raw::c_int;
18324}
18325extern "C" {
18326    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_SIGNER_INFO_set"]
18327    pub fn PKCS7_SIGNER_INFO_set(
18328        p7i: *mut PKCS7_SIGNER_INFO,
18329        x509: *mut X509,
18330        pkey: *mut EVP_PKEY,
18331        dgst: *const EVP_MD,
18332    ) -> ::std::os::raw::c_int;
18333}
18334extern "C" {
18335    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_add_certificate"]
18336    pub fn PKCS7_add_certificate(p7: *mut PKCS7, x509: *mut X509) -> ::std::os::raw::c_int;
18337}
18338extern "C" {
18339    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_add_crl"]
18340    pub fn PKCS7_add_crl(p7: *mut PKCS7, x509: *mut X509_CRL) -> ::std::os::raw::c_int;
18341}
18342extern "C" {
18343    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_add_recipient_info"]
18344    pub fn PKCS7_add_recipient_info(
18345        p7: *mut PKCS7,
18346        ri: *mut PKCS7_RECIP_INFO,
18347    ) -> ::std::os::raw::c_int;
18348}
18349extern "C" {
18350    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_add_signer"]
18351    pub fn PKCS7_add_signer(p7: *mut PKCS7, p7i: *mut PKCS7_SIGNER_INFO) -> ::std::os::raw::c_int;
18352}
18353extern "C" {
18354    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_content_new"]
18355    pub fn PKCS7_content_new(p7: *mut PKCS7, nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18356}
18357extern "C" {
18358    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_set_content"]
18359    pub fn PKCS7_set_content(p7: *mut PKCS7, p7_data: *mut PKCS7) -> ::std::os::raw::c_int;
18360}
18361extern "C" {
18362    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_set_cipher"]
18363    pub fn PKCS7_set_cipher(p7: *mut PKCS7, cipher: *const EVP_CIPHER) -> ::std::os::raw::c_int;
18364}
18365extern "C" {
18366    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_set_type"]
18367    pub fn PKCS7_set_type(p7: *mut PKCS7, type_: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
18368}
18369extern "C" {
18370    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_RECIP_INFO_get0_alg"]
18371    pub fn PKCS7_RECIP_INFO_get0_alg(ri: *mut PKCS7_RECIP_INFO, penc: *mut *mut X509_ALGOR);
18372}
18373extern "C" {
18374    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_SIGNER_INFO_get0_algs"]
18375    pub fn PKCS7_SIGNER_INFO_get0_algs(
18376        si: *mut PKCS7_SIGNER_INFO,
18377        pk: *mut *mut EVP_PKEY,
18378        pdig: *mut *mut X509_ALGOR,
18379        psig: *mut *mut X509_ALGOR,
18380    );
18381}
18382extern "C" {
18383    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_sign"]
18384    pub fn PKCS7_sign(
18385        sign_cert: *mut X509,
18386        pkey: *mut EVP_PKEY,
18387        certs: *mut stack_st_X509,
18388        data: *mut BIO,
18389        flags: ::std::os::raw::c_int,
18390    ) -> *mut PKCS7;
18391}
18392extern "C" {
18393    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_verify"]
18394    pub fn PKCS7_verify(
18395        p7: *mut PKCS7,
18396        certs: *mut stack_st_X509,
18397        store: *mut X509_STORE,
18398        indata: *mut BIO,
18399        outdata: *mut BIO,
18400        flags: ::std::os::raw::c_int,
18401    ) -> ::std::os::raw::c_int;
18402}
18403extern "C" {
18404    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_is_detached"]
18405    pub fn PKCS7_is_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18406}
18407extern "C" {
18408    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_set_detached"]
18409    pub fn PKCS7_set_detached(
18410        p7: *mut PKCS7,
18411        detach: ::std::os::raw::c_int,
18412    ) -> ::std::os::raw::c_int;
18413}
18414extern "C" {
18415    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_detached"]
18416    pub fn PKCS7_get_detached(p7: *mut PKCS7) -> ::std::os::raw::c_int;
18417}
18418extern "C" {
18419    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_dataInit"]
18420    pub fn PKCS7_dataInit(p7: *mut PKCS7, bio: *mut BIO) -> *mut BIO;
18421}
18422extern "C" {
18423    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_dataFinal"]
18424    pub fn PKCS7_dataFinal(p7: *mut PKCS7, bio: *mut BIO) -> ::std::os::raw::c_int;
18425}
18426extern "C" {
18427    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_set_digest"]
18428    pub fn PKCS7_set_digest(p7: *mut PKCS7, md: *const EVP_MD) -> ::std::os::raw::c_int;
18429}
18430extern "C" {
18431    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get_recipient_info"]
18432    pub fn PKCS7_get_recipient_info(p7: *mut PKCS7) -> *mut stack_st_PKCS7_RECIP_INFO;
18433}
18434extern "C" {
18435    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_add_recipient"]
18436    pub fn PKCS7_add_recipient(p7: *mut PKCS7, x509: *mut X509) -> *mut PKCS7_RECIP_INFO;
18437}
18438extern "C" {
18439    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_get0_signers"]
18440    pub fn PKCS7_get0_signers(
18441        p7: *mut PKCS7,
18442        certs: *mut stack_st_X509,
18443        flags: ::std::os::raw::c_int,
18444    ) -> *mut stack_st_X509;
18445}
18446extern "C" {
18447    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_encrypt"]
18448    pub fn PKCS7_encrypt(
18449        certs: *mut stack_st_X509,
18450        in_: *mut BIO,
18451        cipher: *const EVP_CIPHER,
18452        flags: ::std::os::raw::c_int,
18453    ) -> *mut PKCS7;
18454}
18455extern "C" {
18456    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_decrypt"]
18457    pub fn PKCS7_decrypt(
18458        p7: *mut PKCS7,
18459        pkey: *mut EVP_PKEY,
18460        cert: *mut X509,
18461        data: *mut BIO,
18462        flags: ::std::os::raw::c_int,
18463    ) -> ::std::os::raw::c_int;
18464}
18465extern "C" {
18466    #[link_name = "\u{1}aws_lc_0_40_0_SMIME_read_PKCS7"]
18467    pub fn SMIME_read_PKCS7(in_: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7;
18468}
18469extern "C" {
18470    #[link_name = "\u{1}aws_lc_0_40_0_SMIME_write_PKCS7"]
18471    pub fn SMIME_write_PKCS7(
18472        out: *mut BIO,
18473        p7: *mut PKCS7,
18474        data: *mut BIO,
18475        flags: ::std::os::raw::c_int,
18476    ) -> ::std::os::raw::c_int;
18477}
18478extern "C" {
18479    #[link_name = "\u{1}aws_lc_0_40_0_PKCS7_print_ctx"]
18480    pub fn PKCS7_print_ctx(
18481        bio: *mut BIO,
18482        pkcs7: *mut PKCS7,
18483        indent: ::std::os::raw::c_int,
18484        pctx: *const ASN1_PCTX,
18485    ) -> ::std::os::raw::c_int;
18486}
18487pub type sk_CRYPTO_BUFFER_free_func =
18488    ::std::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
18489pub type sk_CRYPTO_BUFFER_copy_func =
18490    ::std::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
18491pub type sk_CRYPTO_BUFFER_cmp_func = ::std::option::Option<
18492    unsafe extern "C" fn(
18493        arg1: *const *const CRYPTO_BUFFER,
18494        arg2: *const *const CRYPTO_BUFFER,
18495    ) -> ::std::os::raw::c_int,
18496>;
18497pub type sk_CRYPTO_BUFFER_delete_if_func = ::std::option::Option<
18498    unsafe extern "C" fn(
18499        arg1: *mut CRYPTO_BUFFER,
18500        arg2: *mut ::std::os::raw::c_void,
18501    ) -> ::std::os::raw::c_int,
18502>;
18503extern "C" {
18504    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_POOL_new"]
18505    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
18506}
18507extern "C" {
18508    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_POOL_free"]
18509    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
18510}
18511extern "C" {
18512    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_new"]
18513    pub fn CRYPTO_BUFFER_new(
18514        data: *const u8,
18515        len: usize,
18516        pool: *mut CRYPTO_BUFFER_POOL,
18517    ) -> *mut CRYPTO_BUFFER;
18518}
18519extern "C" {
18520    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_alloc"]
18521    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
18522}
18523extern "C" {
18524    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_new_from_CBS"]
18525    pub fn CRYPTO_BUFFER_new_from_CBS(
18526        cbs: *const CBS,
18527        pool: *mut CRYPTO_BUFFER_POOL,
18528    ) -> *mut CRYPTO_BUFFER;
18529}
18530extern "C" {
18531    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_new_from_static_data_unsafe"]
18532    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
18533        data: *const u8,
18534        len: usize,
18535        pool: *mut CRYPTO_BUFFER_POOL,
18536    ) -> *mut CRYPTO_BUFFER;
18537}
18538extern "C" {
18539    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_free"]
18540    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
18541}
18542extern "C" {
18543    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_up_ref"]
18544    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::std::os::raw::c_int;
18545}
18546extern "C" {
18547    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_data"]
18548    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
18549}
18550extern "C" {
18551    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_len"]
18552    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
18553}
18554extern "C" {
18555    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_BUFFER_init_CBS"]
18556    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
18557}
18558extern "C" {
18559    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_public_key"]
18560    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
18561}
18562extern "C" {
18563    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_private_key"]
18564    pub fn RSA_new_private_key(
18565        n: *const BIGNUM,
18566        e: *const BIGNUM,
18567        d: *const BIGNUM,
18568        p: *const BIGNUM,
18569        q: *const BIGNUM,
18570        dmp1: *const BIGNUM,
18571        dmq1: *const BIGNUM,
18572        iqmp: *const BIGNUM,
18573    ) -> *mut RSA;
18574}
18575extern "C" {
18576    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new"]
18577    pub fn RSA_new() -> *mut RSA;
18578}
18579extern "C" {
18580    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_method"]
18581    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
18582}
18583extern "C" {
18584    #[link_name = "\u{1}aws_lc_0_40_0_RSA_free"]
18585    pub fn RSA_free(rsa: *mut RSA);
18586}
18587extern "C" {
18588    #[link_name = "\u{1}aws_lc_0_40_0_RSA_up_ref"]
18589    pub fn RSA_up_ref(rsa: *mut RSA) -> ::std::os::raw::c_int;
18590}
18591extern "C" {
18592    #[link_name = "\u{1}aws_lc_0_40_0_RSA_bits"]
18593    pub fn RSA_bits(rsa: *const RSA) -> ::std::os::raw::c_uint;
18594}
18595extern "C" {
18596    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_n"]
18597    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
18598}
18599extern "C" {
18600    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_e"]
18601    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
18602}
18603extern "C" {
18604    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_d"]
18605    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
18606}
18607extern "C" {
18608    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_p"]
18609    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
18610}
18611extern "C" {
18612    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_q"]
18613    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
18614}
18615extern "C" {
18616    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_dmp1"]
18617    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
18618}
18619extern "C" {
18620    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_dmq1"]
18621    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
18622}
18623extern "C" {
18624    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_iqmp"]
18625    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
18626}
18627extern "C" {
18628    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_key"]
18629    pub fn RSA_get0_key(
18630        rsa: *const RSA,
18631        out_n: *mut *const BIGNUM,
18632        out_e: *mut *const BIGNUM,
18633        out_d: *mut *const BIGNUM,
18634    );
18635}
18636extern "C" {
18637    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_factors"]
18638    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
18639}
18640extern "C" {
18641    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_crt_params"]
18642    pub fn RSA_get0_crt_params(
18643        rsa: *const RSA,
18644        out_dmp1: *mut *const BIGNUM,
18645        out_dmq1: *mut *const BIGNUM,
18646        out_iqmp: *mut *const BIGNUM,
18647    );
18648}
18649extern "C" {
18650    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set0_key"]
18651    pub fn RSA_set0_key(
18652        rsa: *mut RSA,
18653        n: *mut BIGNUM,
18654        e: *mut BIGNUM,
18655        d: *mut BIGNUM,
18656    ) -> ::std::os::raw::c_int;
18657}
18658extern "C" {
18659    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set0_factors"]
18660    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM)
18661        -> ::std::os::raw::c_int;
18662}
18663extern "C" {
18664    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set0_crt_params"]
18665    pub fn RSA_set0_crt_params(
18666        rsa: *mut RSA,
18667        dmp1: *mut BIGNUM,
18668        dmq1: *mut BIGNUM,
18669        iqmp: *mut BIGNUM,
18670    ) -> ::std::os::raw::c_int;
18671}
18672extern "C" {
18673    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get_default_method"]
18674    pub fn RSA_get_default_method() -> *const RSA_METHOD;
18675}
18676extern "C" {
18677    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_new"]
18678    pub fn RSA_meth_new(
18679        name: *const ::std::os::raw::c_char,
18680        flags: ::std::os::raw::c_int,
18681    ) -> *mut RSA_METHOD;
18682}
18683extern "C" {
18684    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set_method"]
18685    pub fn RSA_set_method(rsa: *mut RSA, meth: *const RSA_METHOD) -> ::std::os::raw::c_int;
18686}
18687extern "C" {
18688    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get_method"]
18689    pub fn RSA_get_method(rsa: *const RSA) -> *const RSA_METHOD;
18690}
18691extern "C" {
18692    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_free"]
18693    pub fn RSA_meth_free(meth: *mut RSA_METHOD);
18694}
18695extern "C" {
18696    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_init"]
18697    pub fn RSA_meth_set_init(
18698        meth: *mut RSA_METHOD,
18699        init: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18700    ) -> ::std::os::raw::c_int;
18701}
18702extern "C" {
18703    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_finish"]
18704    pub fn RSA_meth_set_finish(
18705        meth: *mut RSA_METHOD,
18706        finish: ::std::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::std::os::raw::c_int>,
18707    ) -> ::std::os::raw::c_int;
18708}
18709extern "C" {
18710    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_priv_dec"]
18711    pub fn RSA_meth_set_priv_dec(
18712        meth: *mut RSA_METHOD,
18713        priv_dec: ::std::option::Option<
18714            unsafe extern "C" fn(
18715                max_out: ::std::os::raw::c_int,
18716                from: *const u8,
18717                to: *mut u8,
18718                rsa: *mut RSA,
18719                padding: ::std::os::raw::c_int,
18720            ) -> ::std::os::raw::c_int,
18721        >,
18722    ) -> ::std::os::raw::c_int;
18723}
18724extern "C" {
18725    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_priv_enc"]
18726    pub fn RSA_meth_set_priv_enc(
18727        meth: *mut RSA_METHOD,
18728        priv_enc: ::std::option::Option<
18729            unsafe extern "C" fn(
18730                max_out: ::std::os::raw::c_int,
18731                from: *const u8,
18732                to: *mut u8,
18733                rsa: *mut RSA,
18734                padding: ::std::os::raw::c_int,
18735            ) -> ::std::os::raw::c_int,
18736        >,
18737    ) -> ::std::os::raw::c_int;
18738}
18739extern "C" {
18740    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_pub_dec"]
18741    pub fn RSA_meth_set_pub_dec(
18742        meth: *mut RSA_METHOD,
18743        pub_dec: ::std::option::Option<
18744            unsafe extern "C" fn(
18745                max_out: ::std::os::raw::c_int,
18746                from: *const u8,
18747                to: *mut u8,
18748                rsa: *mut RSA,
18749                padding: ::std::os::raw::c_int,
18750            ) -> ::std::os::raw::c_int,
18751        >,
18752    ) -> ::std::os::raw::c_int;
18753}
18754extern "C" {
18755    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_pub_enc"]
18756    pub fn RSA_meth_set_pub_enc(
18757        meth: *mut RSA_METHOD,
18758        pub_enc: ::std::option::Option<
18759            unsafe extern "C" fn(
18760                max_out: ::std::os::raw::c_int,
18761                from: *const u8,
18762                to: *mut u8,
18763                rsa: *mut RSA,
18764                padding: ::std::os::raw::c_int,
18765            ) -> ::std::os::raw::c_int,
18766        >,
18767    ) -> ::std::os::raw::c_int;
18768}
18769extern "C" {
18770    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set0_app_data"]
18771    pub fn RSA_meth_set0_app_data(
18772        meth: *mut RSA_METHOD,
18773        app_data: *mut ::std::os::raw::c_void,
18774    ) -> ::std::os::raw::c_int;
18775}
18776extern "C" {
18777    #[link_name = "\u{1}aws_lc_0_40_0_RSA_meth_set_sign"]
18778    pub fn RSA_meth_set_sign(
18779        meth: *mut RSA_METHOD,
18780        sign: ::std::option::Option<
18781            unsafe extern "C" fn(
18782                type_: ::std::os::raw::c_int,
18783                m: *const ::std::os::raw::c_uchar,
18784                m_length: ::std::os::raw::c_uint,
18785                sigret: *mut ::std::os::raw::c_uchar,
18786                siglen: *mut ::std::os::raw::c_uint,
18787                rsa: *const RSA,
18788            ) -> ::std::os::raw::c_int,
18789        >,
18790    ) -> ::std::os::raw::c_int;
18791}
18792extern "C" {
18793    #[link_name = "\u{1}aws_lc_0_40_0_RSA_generate_key_ex"]
18794    pub fn RSA_generate_key_ex(
18795        rsa: *mut RSA,
18796        bits: ::std::os::raw::c_int,
18797        e: *const BIGNUM,
18798        cb: *mut BN_GENCB,
18799    ) -> ::std::os::raw::c_int;
18800}
18801extern "C" {
18802    #[link_name = "\u{1}aws_lc_0_40_0_RSA_generate_key_fips"]
18803    pub fn RSA_generate_key_fips(
18804        rsa: *mut RSA,
18805        bits: ::std::os::raw::c_int,
18806        cb: *mut BN_GENCB,
18807    ) -> ::std::os::raw::c_int;
18808}
18809extern "C" {
18810    #[link_name = "\u{1}aws_lc_0_40_0_RSA_encrypt"]
18811    pub fn RSA_encrypt(
18812        rsa: *mut RSA,
18813        out_len: *mut usize,
18814        out: *mut u8,
18815        max_out: usize,
18816        in_: *const u8,
18817        in_len: usize,
18818        padding: ::std::os::raw::c_int,
18819    ) -> ::std::os::raw::c_int;
18820}
18821extern "C" {
18822    #[link_name = "\u{1}aws_lc_0_40_0_RSA_decrypt"]
18823    pub fn RSA_decrypt(
18824        rsa: *mut RSA,
18825        out_len: *mut usize,
18826        out: *mut u8,
18827        max_out: usize,
18828        in_: *const u8,
18829        in_len: usize,
18830        padding: ::std::os::raw::c_int,
18831    ) -> ::std::os::raw::c_int;
18832}
18833extern "C" {
18834    #[link_name = "\u{1}aws_lc_0_40_0_RSA_public_encrypt"]
18835    pub fn RSA_public_encrypt(
18836        flen: usize,
18837        from: *const u8,
18838        to: *mut u8,
18839        rsa: *mut RSA,
18840        padding: ::std::os::raw::c_int,
18841    ) -> ::std::os::raw::c_int;
18842}
18843extern "C" {
18844    #[link_name = "\u{1}aws_lc_0_40_0_RSA_private_decrypt"]
18845    pub fn RSA_private_decrypt(
18846        flen: usize,
18847        from: *const u8,
18848        to: *mut u8,
18849        rsa: *mut RSA,
18850        padding: ::std::os::raw::c_int,
18851    ) -> ::std::os::raw::c_int;
18852}
18853extern "C" {
18854    #[link_name = "\u{1}aws_lc_0_40_0_RSA_sign"]
18855    pub fn RSA_sign(
18856        hash_nid: ::std::os::raw::c_int,
18857        digest: *const u8,
18858        digest_len: usize,
18859        out: *mut u8,
18860        out_len: *mut ::std::os::raw::c_uint,
18861        rsa: *mut RSA,
18862    ) -> ::std::os::raw::c_int;
18863}
18864extern "C" {
18865    #[link_name = "\u{1}aws_lc_0_40_0_RSA_sign_pss_mgf1"]
18866    pub fn RSA_sign_pss_mgf1(
18867        rsa: *mut RSA,
18868        out_len: *mut usize,
18869        out: *mut u8,
18870        max_out: usize,
18871        digest: *const u8,
18872        digest_len: usize,
18873        md: *const EVP_MD,
18874        mgf1_md: *const EVP_MD,
18875        salt_len: ::std::os::raw::c_int,
18876    ) -> ::std::os::raw::c_int;
18877}
18878extern "C" {
18879    #[link_name = "\u{1}aws_lc_0_40_0_RSA_sign_raw"]
18880    pub fn RSA_sign_raw(
18881        rsa: *mut RSA,
18882        out_len: *mut usize,
18883        out: *mut u8,
18884        max_out: usize,
18885        in_: *const u8,
18886        in_len: usize,
18887        padding: ::std::os::raw::c_int,
18888    ) -> ::std::os::raw::c_int;
18889}
18890extern "C" {
18891    #[link_name = "\u{1}aws_lc_0_40_0_RSA_verify"]
18892    pub fn RSA_verify(
18893        hash_nid: ::std::os::raw::c_int,
18894        digest: *const u8,
18895        digest_len: usize,
18896        sig: *const u8,
18897        sig_len: usize,
18898        rsa: *mut RSA,
18899    ) -> ::std::os::raw::c_int;
18900}
18901extern "C" {
18902    #[link_name = "\u{1}aws_lc_0_40_0_RSA_verify_pss_mgf1"]
18903    pub fn RSA_verify_pss_mgf1(
18904        rsa: *mut RSA,
18905        digest: *const u8,
18906        digest_len: usize,
18907        md: *const EVP_MD,
18908        mgf1_md: *const EVP_MD,
18909        salt_len: ::std::os::raw::c_int,
18910        sig: *const u8,
18911        sig_len: usize,
18912    ) -> ::std::os::raw::c_int;
18913}
18914extern "C" {
18915    #[link_name = "\u{1}aws_lc_0_40_0_RSA_verify_raw"]
18916    pub fn RSA_verify_raw(
18917        rsa: *mut RSA,
18918        out_len: *mut usize,
18919        out: *mut u8,
18920        max_out: usize,
18921        in_: *const u8,
18922        in_len: usize,
18923        padding: ::std::os::raw::c_int,
18924    ) -> ::std::os::raw::c_int;
18925}
18926extern "C" {
18927    #[link_name = "\u{1}aws_lc_0_40_0_RSA_private_encrypt"]
18928    pub fn RSA_private_encrypt(
18929        flen: usize,
18930        from: *const u8,
18931        to: *mut u8,
18932        rsa: *mut RSA,
18933        padding: ::std::os::raw::c_int,
18934    ) -> ::std::os::raw::c_int;
18935}
18936extern "C" {
18937    #[link_name = "\u{1}aws_lc_0_40_0_RSA_public_decrypt"]
18938    pub fn RSA_public_decrypt(
18939        flen: usize,
18940        from: *const u8,
18941        to: *mut u8,
18942        rsa: *mut RSA,
18943        padding: ::std::os::raw::c_int,
18944    ) -> ::std::os::raw::c_int;
18945}
18946extern "C" {
18947    #[link_name = "\u{1}aws_lc_0_40_0_RSA_size"]
18948    pub fn RSA_size(rsa: *const RSA) -> ::std::os::raw::c_uint;
18949}
18950extern "C" {
18951    #[link_name = "\u{1}aws_lc_0_40_0_RSA_is_opaque"]
18952    pub fn RSA_is_opaque(rsa: *const RSA) -> ::std::os::raw::c_int;
18953}
18954extern "C" {
18955    #[link_name = "\u{1}aws_lc_0_40_0_RSAPublicKey_dup"]
18956    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
18957}
18958extern "C" {
18959    #[link_name = "\u{1}aws_lc_0_40_0_RSAPrivateKey_dup"]
18960    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
18961}
18962extern "C" {
18963    #[link_name = "\u{1}aws_lc_0_40_0_RSA_check_key"]
18964    pub fn RSA_check_key(rsa: *const RSA) -> ::std::os::raw::c_int;
18965}
18966extern "C" {
18967    #[link_name = "\u{1}aws_lc_0_40_0_RSA_check_fips"]
18968    pub fn RSA_check_fips(key: *mut RSA) -> ::std::os::raw::c_int;
18969}
18970extern "C" {
18971    #[link_name = "\u{1}aws_lc_0_40_0_RSA_verify_PKCS1_PSS_mgf1"]
18972    pub fn RSA_verify_PKCS1_PSS_mgf1(
18973        rsa: *const RSA,
18974        mHash: *const u8,
18975        Hash: *const EVP_MD,
18976        mgf1Hash: *const EVP_MD,
18977        EM: *const u8,
18978        sLen: ::std::os::raw::c_int,
18979    ) -> ::std::os::raw::c_int;
18980}
18981extern "C" {
18982    #[link_name = "\u{1}aws_lc_0_40_0_RSA_padding_add_PKCS1_PSS_mgf1"]
18983    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
18984        rsa: *const RSA,
18985        EM: *mut u8,
18986        mHash: *const u8,
18987        Hash: *const EVP_MD,
18988        mgf1Hash: *const EVP_MD,
18989        sLen: ::std::os::raw::c_int,
18990    ) -> ::std::os::raw::c_int;
18991}
18992extern "C" {
18993    #[link_name = "\u{1}aws_lc_0_40_0_RSA_padding_add_PKCS1_OAEP_mgf1"]
18994    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
18995        to: *mut u8,
18996        to_len: usize,
18997        from: *const u8,
18998        from_len: usize,
18999        param: *const u8,
19000        param_len: usize,
19001        md: *const EVP_MD,
19002        mgf1md: *const EVP_MD,
19003    ) -> ::std::os::raw::c_int;
19004}
19005extern "C" {
19006    #[link_name = "\u{1}aws_lc_0_40_0_PKCS1_MGF1"]
19007    pub fn PKCS1_MGF1(
19008        out: *mut u8,
19009        len: usize,
19010        seed: *const u8,
19011        seed_len: usize,
19012        md: *const EVP_MD,
19013    ) -> ::std::os::raw::c_int;
19014}
19015extern "C" {
19016    #[link_name = "\u{1}aws_lc_0_40_0_RSA_add_pkcs1_prefix"]
19017    pub fn RSA_add_pkcs1_prefix(
19018        out_msg: *mut *mut u8,
19019        out_msg_len: *mut usize,
19020        is_alloced: *mut ::std::os::raw::c_int,
19021        hash_nid: ::std::os::raw::c_int,
19022        digest: *const u8,
19023        digest_len: usize,
19024    ) -> ::std::os::raw::c_int;
19025}
19026extern "C" {
19027    #[link_name = "\u{1}aws_lc_0_40_0_RSA_parse_public_key"]
19028    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
19029}
19030extern "C" {
19031    #[link_name = "\u{1}aws_lc_0_40_0_RSA_public_key_from_bytes"]
19032    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19033}
19034extern "C" {
19035    #[link_name = "\u{1}aws_lc_0_40_0_RSA_marshal_public_key"]
19036    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19037}
19038extern "C" {
19039    #[link_name = "\u{1}aws_lc_0_40_0_RSA_public_key_to_bytes"]
19040    pub fn RSA_public_key_to_bytes(
19041        out_bytes: *mut *mut u8,
19042        out_len: *mut usize,
19043        rsa: *const RSA,
19044    ) -> ::std::os::raw::c_int;
19045}
19046extern "C" {
19047    #[link_name = "\u{1}aws_lc_0_40_0_RSA_parse_private_key"]
19048    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
19049}
19050extern "C" {
19051    #[link_name = "\u{1}aws_lc_0_40_0_RSA_private_key_from_bytes"]
19052    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
19053}
19054extern "C" {
19055    #[link_name = "\u{1}aws_lc_0_40_0_RSA_marshal_private_key"]
19056    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::std::os::raw::c_int;
19057}
19058extern "C" {
19059    #[link_name = "\u{1}aws_lc_0_40_0_RSA_private_key_to_bytes"]
19060    pub fn RSA_private_key_to_bytes(
19061        out_bytes: *mut *mut u8,
19062        out_len: *mut usize,
19063        rsa: *const RSA,
19064    ) -> ::std::os::raw::c_int;
19065}
19066extern "C" {
19067    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_private_key_no_crt"]
19068    pub fn RSA_new_private_key_no_crt(
19069        n: *const BIGNUM,
19070        e: *const BIGNUM,
19071        d: *const BIGNUM,
19072    ) -> *mut RSA;
19073}
19074extern "C" {
19075    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_private_key_no_e"]
19076    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
19077}
19078extern "C" {
19079    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_public_key_large_e"]
19080    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
19081}
19082extern "C" {
19083    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_private_key_large_e"]
19084    pub fn RSA_new_private_key_large_e(
19085        n: *const BIGNUM,
19086        e: *const BIGNUM,
19087        d: *const BIGNUM,
19088        p: *const BIGNUM,
19089        q: *const BIGNUM,
19090        dmp1: *const BIGNUM,
19091        dmq1: *const BIGNUM,
19092        iqmp: *const BIGNUM,
19093    ) -> *mut RSA;
19094}
19095extern "C" {
19096    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get_ex_new_index"]
19097    pub fn RSA_get_ex_new_index(
19098        argl: ::std::os::raw::c_long,
19099        argp: *mut ::std::os::raw::c_void,
19100        unused: *mut CRYPTO_EX_unused,
19101        dup_unused: CRYPTO_EX_dup,
19102        free_func: CRYPTO_EX_free,
19103    ) -> ::std::os::raw::c_int;
19104}
19105extern "C" {
19106    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set_ex_data"]
19107    pub fn RSA_set_ex_data(
19108        rsa: *mut RSA,
19109        idx: ::std::os::raw::c_int,
19110        arg: *mut ::std::os::raw::c_void,
19111    ) -> ::std::os::raw::c_int;
19112}
19113extern "C" {
19114    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get_ex_data"]
19115    pub fn RSA_get_ex_data(
19116        rsa: *const RSA,
19117        idx: ::std::os::raw::c_int,
19118    ) -> *mut ::std::os::raw::c_void;
19119}
19120extern "C" {
19121    #[link_name = "\u{1}aws_lc_0_40_0_RSA_flags"]
19122    pub fn RSA_flags(rsa: *const RSA) -> ::std::os::raw::c_int;
19123}
19124extern "C" {
19125    #[link_name = "\u{1}aws_lc_0_40_0_RSA_set_flags"]
19126    pub fn RSA_set_flags(rsa: *mut RSA, flags: ::std::os::raw::c_int);
19127}
19128extern "C" {
19129    #[link_name = "\u{1}aws_lc_0_40_0_RSA_test_flags"]
19130    pub fn RSA_test_flags(rsa: *const RSA, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
19131}
19132extern "C" {
19133    #[link_name = "\u{1}aws_lc_0_40_0_RSA_blinding_on"]
19134    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::std::os::raw::c_int;
19135}
19136extern "C" {
19137    #[link_name = "\u{1}aws_lc_0_40_0_RSA_blinding_off_temp_for_accp_compatibility"]
19138    pub fn RSA_blinding_off_temp_for_accp_compatibility(rsa: *mut RSA);
19139}
19140extern "C" {
19141    #[link_name = "\u{1}aws_lc_0_40_0_RSA_pkey_ctx_ctrl"]
19142    pub fn RSA_pkey_ctx_ctrl(
19143        ctx: *mut EVP_PKEY_CTX,
19144        optype: ::std::os::raw::c_int,
19145        cmd: ::std::os::raw::c_int,
19146        p1: ::std::os::raw::c_int,
19147        p2: *mut ::std::os::raw::c_void,
19148    ) -> ::std::os::raw::c_int;
19149}
19150extern "C" {
19151    #[link_name = "\u{1}aws_lc_0_40_0_RSA_generate_key"]
19152    pub fn RSA_generate_key(
19153        bits: ::std::os::raw::c_int,
19154        e: u64,
19155        callback: *mut ::std::os::raw::c_void,
19156        cb_arg: *mut ::std::os::raw::c_void,
19157    ) -> *mut RSA;
19158}
19159extern "C" {
19160    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPublicKey"]
19161    pub fn d2i_RSAPublicKey(
19162        out: *mut *mut RSA,
19163        inp: *mut *const u8,
19164        len: ::std::os::raw::c_long,
19165    ) -> *mut RSA;
19166}
19167extern "C" {
19168    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPublicKey"]
19169    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19170}
19171extern "C" {
19172    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPrivateKey"]
19173    pub fn d2i_RSAPrivateKey(
19174        out: *mut *mut RSA,
19175        inp: *mut *const u8,
19176        len: ::std::os::raw::c_long,
19177    ) -> *mut RSA;
19178}
19179extern "C" {
19180    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPrivateKey"]
19181    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19182}
19183extern "C" {
19184    #[link_name = "\u{1}aws_lc_0_40_0_RSA_padding_add_PKCS1_PSS"]
19185    pub fn RSA_padding_add_PKCS1_PSS(
19186        rsa: *const RSA,
19187        EM: *mut u8,
19188        mHash: *const u8,
19189        Hash: *const EVP_MD,
19190        sLen: ::std::os::raw::c_int,
19191    ) -> ::std::os::raw::c_int;
19192}
19193extern "C" {
19194    #[link_name = "\u{1}aws_lc_0_40_0_RSA_verify_PKCS1_PSS"]
19195    pub fn RSA_verify_PKCS1_PSS(
19196        rsa: *const RSA,
19197        mHash: *const u8,
19198        Hash: *const EVP_MD,
19199        EM: *const u8,
19200        sLen: ::std::os::raw::c_int,
19201    ) -> ::std::os::raw::c_int;
19202}
19203extern "C" {
19204    #[link_name = "\u{1}aws_lc_0_40_0_RSA_padding_add_PKCS1_OAEP"]
19205    pub fn RSA_padding_add_PKCS1_OAEP(
19206        to: *mut u8,
19207        to_len: usize,
19208        from: *const u8,
19209        from_len: usize,
19210        param: *const u8,
19211        param_len: usize,
19212    ) -> ::std::os::raw::c_int;
19213}
19214extern "C" {
19215    #[link_name = "\u{1}aws_lc_0_40_0_RSA_print"]
19216    pub fn RSA_print(
19217        bio: *mut BIO,
19218        rsa: *const RSA,
19219        indent: ::std::os::raw::c_int,
19220    ) -> ::std::os::raw::c_int;
19221}
19222extern "C" {
19223    #[link_name = "\u{1}aws_lc_0_40_0_RSA_print_fp"]
19224    pub fn RSA_print_fp(
19225        fp: *mut FILE,
19226        rsa: *const RSA,
19227        indent: ::std::os::raw::c_int,
19228    ) -> ::std::os::raw::c_int;
19229}
19230extern "C" {
19231    #[link_name = "\u{1}aws_lc_0_40_0_RSA_get0_pss_params"]
19232    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
19233}
19234extern "C" {
19235    #[link_name = "\u{1}aws_lc_0_40_0_RSA_new_method_no_e"]
19236    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
19237}
19238pub type sk_X509_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
19239pub type sk_X509_copy_func =
19240    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
19241pub type sk_X509_cmp_func = ::std::option::Option<
19242    unsafe extern "C" fn(
19243        arg1: *const *const X509,
19244        arg2: *const *const X509,
19245    ) -> ::std::os::raw::c_int,
19246>;
19247pub type sk_X509_delete_if_func = ::std::option::Option<
19248    unsafe extern "C" fn(
19249        arg1: *mut X509,
19250        arg2: *mut ::std::os::raw::c_void,
19251    ) -> ::std::os::raw::c_int,
19252>;
19253extern "C" {
19254    #[link_name = "\u{1}aws_lc_0_40_0_X509_it"]
19255    pub static X509_it: ASN1_ITEM;
19256}
19257extern "C" {
19258    #[link_name = "\u{1}aws_lc_0_40_0_X509_up_ref"]
19259    pub fn X509_up_ref(x509: *mut X509) -> ::std::os::raw::c_int;
19260}
19261extern "C" {
19262    #[link_name = "\u{1}aws_lc_0_40_0_X509_chain_up_ref"]
19263    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
19264}
19265extern "C" {
19266    #[link_name = "\u{1}aws_lc_0_40_0_X509_dup"]
19267    pub fn X509_dup(x509: *mut X509) -> *mut X509;
19268}
19269extern "C" {
19270    #[link_name = "\u{1}aws_lc_0_40_0_X509_free"]
19271    pub fn X509_free(x509: *mut X509);
19272}
19273extern "C" {
19274    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509"]
19275    pub fn d2i_X509(
19276        out: *mut *mut X509,
19277        inp: *mut *const u8,
19278        len: ::std::os::raw::c_long,
19279    ) -> *mut X509;
19280}
19281extern "C" {
19282    #[link_name = "\u{1}aws_lc_0_40_0_X509_parse_from_buffer"]
19283    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
19284}
19285extern "C" {
19286    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509"]
19287    pub fn i2d_X509(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19288}
19289extern "C" {
19290    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_version"]
19291    pub fn X509_get_version(x509: *const X509) -> ::std::os::raw::c_long;
19292}
19293extern "C" {
19294    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_serialNumber"]
19295    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
19296}
19297extern "C" {
19298    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_notBefore"]
19299    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
19300}
19301extern "C" {
19302    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_notAfter"]
19303    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
19304}
19305extern "C" {
19306    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_issuer_name"]
19307    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
19308}
19309extern "C" {
19310    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_subject_name"]
19311    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
19312}
19313extern "C" {
19314    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_X509_PUBKEY"]
19315    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
19316}
19317extern "C" {
19318    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_pubkey"]
19319    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19320}
19321extern "C" {
19322    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_pubkey"]
19323    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
19324}
19325extern "C" {
19326    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_pubkey_bitstr"]
19327    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
19328}
19329extern "C" {
19330    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_private_key"]
19331    pub fn X509_check_private_key(
19332        x509: *const X509,
19333        pkey: *const EVP_PKEY,
19334    ) -> ::std::os::raw::c_int;
19335}
19336extern "C" {
19337    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_uids"]
19338    pub fn X509_get0_uids(
19339        x509: *const X509,
19340        out_issuer_uid: *mut *const ASN1_BIT_STRING,
19341        out_subject_uid: *mut *const ASN1_BIT_STRING,
19342    );
19343}
19344extern "C" {
19345    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_extension_flags"]
19346    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
19347}
19348extern "C" {
19349    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_pathlen"]
19350    pub fn X509_get_pathlen(x509: *mut X509) -> ::std::os::raw::c_long;
19351}
19352extern "C" {
19353    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_key_usage"]
19354    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
19355}
19356extern "C" {
19357    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_extended_key_usage"]
19358    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
19359}
19360extern "C" {
19361    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_subject_key_id"]
19362    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19363}
19364extern "C" {
19365    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_authority_key_id"]
19366    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
19367}
19368#[repr(C)]
19369#[derive(Debug, Copy, Clone)]
19370pub struct stack_st_GENERAL_NAME {
19371    _unused: [u8; 0],
19372}
19373pub type sk_GENERAL_NAME_free_func =
19374    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
19375pub type sk_GENERAL_NAME_copy_func =
19376    ::std::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
19377pub type sk_GENERAL_NAME_cmp_func = ::std::option::Option<
19378    unsafe extern "C" fn(
19379        arg1: *const *const GENERAL_NAME,
19380        arg2: *const *const GENERAL_NAME,
19381    ) -> ::std::os::raw::c_int,
19382>;
19383pub type sk_GENERAL_NAME_delete_if_func = ::std::option::Option<
19384    unsafe extern "C" fn(
19385        arg1: *mut GENERAL_NAME,
19386        arg2: *mut ::std::os::raw::c_void,
19387    ) -> ::std::os::raw::c_int,
19388>;
19389pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
19390extern "C" {
19391    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_authority_issuer"]
19392    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
19393}
19394extern "C" {
19395    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_authority_serial"]
19396    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
19397}
19398#[repr(C)]
19399#[derive(Debug, Copy, Clone)]
19400pub struct stack_st_X509_EXTENSION {
19401    _unused: [u8; 0],
19402}
19403extern "C" {
19404    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_extensions"]
19405    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
19406}
19407extern "C" {
19408    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext_count"]
19409    pub fn X509_get_ext_count(x: *const X509) -> ::std::os::raw::c_int;
19410}
19411extern "C" {
19412    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext_by_NID"]
19413    pub fn X509_get_ext_by_NID(
19414        x: *const X509,
19415        nid: ::std::os::raw::c_int,
19416        lastpos: ::std::os::raw::c_int,
19417    ) -> ::std::os::raw::c_int;
19418}
19419extern "C" {
19420    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext_by_OBJ"]
19421    pub fn X509_get_ext_by_OBJ(
19422        x: *const X509,
19423        obj: *const ASN1_OBJECT,
19424        lastpos: ::std::os::raw::c_int,
19425    ) -> ::std::os::raw::c_int;
19426}
19427extern "C" {
19428    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext_by_critical"]
19429    pub fn X509_get_ext_by_critical(
19430        x: *const X509,
19431        crit: ::std::os::raw::c_int,
19432        lastpos: ::std::os::raw::c_int,
19433    ) -> ::std::os::raw::c_int;
19434}
19435extern "C" {
19436    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext"]
19437    pub fn X509_get_ext(x: *const X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19438}
19439extern "C" {
19440    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ext_d2i"]
19441    pub fn X509_get_ext_d2i(
19442        x509: *const X509,
19443        nid: ::std::os::raw::c_int,
19444        out_critical: *mut ::std::os::raw::c_int,
19445        out_idx: *mut ::std::os::raw::c_int,
19446    ) -> *mut ::std::os::raw::c_void;
19447}
19448extern "C" {
19449    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_tbs_sigalg"]
19450    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
19451}
19452extern "C" {
19453    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_signature_info"]
19454    pub fn X509_get_signature_info(
19455        x509: *mut X509,
19456        digest_nid: *mut ::std::os::raw::c_int,
19457        pubkey_nid: *mut ::std::os::raw::c_int,
19458        sec_bits: *mut ::std::os::raw::c_int,
19459        flags: *mut u32,
19460    ) -> ::std::os::raw::c_int;
19461}
19462extern "C" {
19463    #[link_name = "\u{1}aws_lc_0_40_0_X509_get0_signature"]
19464    pub fn X509_get0_signature(
19465        out_sig: *mut *const ASN1_BIT_STRING,
19466        out_alg: *mut *const X509_ALGOR,
19467        x509: *const X509,
19468    );
19469}
19470extern "C" {
19471    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_signature_nid"]
19472    pub fn X509_get_signature_nid(x509: *const X509) -> ::std::os::raw::c_int;
19473}
19474extern "C" {
19475    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_tbs"]
19476    pub fn i2d_X509_tbs(
19477        x509: *mut X509,
19478        outp: *mut *mut ::std::os::raw::c_uchar,
19479    ) -> ::std::os::raw::c_int;
19480}
19481extern "C" {
19482    #[link_name = "\u{1}aws_lc_0_40_0_X509_verify"]
19483    pub fn X509_verify(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19484}
19485extern "C" {
19486    #[link_name = "\u{1}aws_lc_0_40_0_X509_get1_email"]
19487    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19488}
19489extern "C" {
19490    #[link_name = "\u{1}aws_lc_0_40_0_X509_get1_ocsp"]
19491    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
19492}
19493extern "C" {
19494    #[link_name = "\u{1}aws_lc_0_40_0_X509_email_free"]
19495    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
19496}
19497extern "C" {
19498    #[link_name = "\u{1}aws_lc_0_40_0_X509_cmp"]
19499    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
19500}
19501extern "C" {
19502    #[link_name = "\u{1}aws_lc_0_40_0_X509_new"]
19503    pub fn X509_new() -> *mut X509;
19504}
19505extern "C" {
19506    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_version"]
19507    pub fn X509_set_version(
19508        x509: *mut X509,
19509        version: ::std::os::raw::c_long,
19510    ) -> ::std::os::raw::c_int;
19511}
19512extern "C" {
19513    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_serialNumber"]
19514    pub fn X509_set_serialNumber(
19515        x509: *mut X509,
19516        serial: *const ASN1_INTEGER,
19517    ) -> ::std::os::raw::c_int;
19518}
19519extern "C" {
19520    #[link_name = "\u{1}aws_lc_0_40_0_X509_set1_notBefore"]
19521    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19522}
19523extern "C" {
19524    #[link_name = "\u{1}aws_lc_0_40_0_X509_set1_notAfter"]
19525    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
19526}
19527extern "C" {
19528    #[link_name = "\u{1}aws_lc_0_40_0_X509_getm_notBefore"]
19529    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
19530}
19531extern "C" {
19532    #[link_name = "\u{1}aws_lc_0_40_0_X509_getm_notAfter"]
19533    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
19534}
19535extern "C" {
19536    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_issuer_name"]
19537    pub fn X509_set_issuer_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19538}
19539extern "C" {
19540    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_subject_name"]
19541    pub fn X509_set_subject_name(x509: *mut X509, name: *mut X509_NAME) -> ::std::os::raw::c_int;
19542}
19543extern "C" {
19544    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_pubkey"]
19545    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19546}
19547extern "C" {
19548    #[link_name = "\u{1}aws_lc_0_40_0_X509_delete_ext"]
19549    pub fn X509_delete_ext(x: *mut X509, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19550}
19551extern "C" {
19552    #[link_name = "\u{1}aws_lc_0_40_0_X509_add_ext"]
19553    pub fn X509_add_ext(
19554        x: *mut X509,
19555        ex: *const X509_EXTENSION,
19556        loc: ::std::os::raw::c_int,
19557    ) -> ::std::os::raw::c_int;
19558}
19559extern "C" {
19560    #[link_name = "\u{1}aws_lc_0_40_0_X509_add1_ext_i2d"]
19561    pub fn X509_add1_ext_i2d(
19562        x: *mut X509,
19563        nid: ::std::os::raw::c_int,
19564        value: *mut ::std::os::raw::c_void,
19565        crit: ::std::os::raw::c_int,
19566        flags: ::std::os::raw::c_ulong,
19567    ) -> ::std::os::raw::c_int;
19568}
19569extern "C" {
19570    #[link_name = "\u{1}aws_lc_0_40_0_X509_sign"]
19571    pub fn X509_sign(
19572        x509: *mut X509,
19573        pkey: *mut EVP_PKEY,
19574        md: *const EVP_MD,
19575    ) -> ::std::os::raw::c_int;
19576}
19577extern "C" {
19578    #[link_name = "\u{1}aws_lc_0_40_0_X509_sign_ctx"]
19579    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19580}
19581extern "C" {
19582    #[link_name = "\u{1}aws_lc_0_40_0_i2d_re_X509_tbs"]
19583    pub fn i2d_re_X509_tbs(
19584        x509: *mut X509,
19585        outp: *mut *mut ::std::os::raw::c_uchar,
19586    ) -> ::std::os::raw::c_int;
19587}
19588extern "C" {
19589    #[link_name = "\u{1}aws_lc_0_40_0_X509_set1_signature_algo"]
19590    pub fn X509_set1_signature_algo(
19591        x509: *mut X509,
19592        algo: *const X509_ALGOR,
19593    ) -> ::std::os::raw::c_int;
19594}
19595extern "C" {
19596    #[link_name = "\u{1}aws_lc_0_40_0_X509_set1_signature_value"]
19597    pub fn X509_set1_signature_value(
19598        x509: *mut X509,
19599        sig: *const u8,
19600        sig_len: usize,
19601    ) -> ::std::os::raw::c_int;
19602}
19603extern "C" {
19604    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_AUX"]
19605    pub fn i2d_X509_AUX(x509: *mut X509, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19606}
19607extern "C" {
19608    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_AUX"]
19609    pub fn d2i_X509_AUX(
19610        x509: *mut *mut X509,
19611        inp: *mut *const u8,
19612        length: ::std::os::raw::c_long,
19613    ) -> *mut X509;
19614}
19615extern "C" {
19616    #[link_name = "\u{1}aws_lc_0_40_0_X509_alias_set1"]
19617    pub fn X509_alias_set1(
19618        x509: *mut X509,
19619        name: *const u8,
19620        len: ossl_ssize_t,
19621    ) -> ::std::os::raw::c_int;
19622}
19623extern "C" {
19624    #[link_name = "\u{1}aws_lc_0_40_0_X509_keyid_set1"]
19625    pub fn X509_keyid_set1(
19626        x509: *mut X509,
19627        id: *const u8,
19628        len: ossl_ssize_t,
19629    ) -> ::std::os::raw::c_int;
19630}
19631extern "C" {
19632    #[link_name = "\u{1}aws_lc_0_40_0_X509_alias_get0"]
19633    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19634}
19635extern "C" {
19636    #[link_name = "\u{1}aws_lc_0_40_0_X509_keyid_get0"]
19637    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::std::os::raw::c_int) -> *const u8;
19638}
19639extern "C" {
19640    #[link_name = "\u{1}aws_lc_0_40_0_X509_add1_trust_object"]
19641    pub fn X509_add1_trust_object(
19642        x509: *mut X509,
19643        obj: *const ASN1_OBJECT,
19644    ) -> ::std::os::raw::c_int;
19645}
19646extern "C" {
19647    #[link_name = "\u{1}aws_lc_0_40_0_X509_add1_reject_object"]
19648    pub fn X509_add1_reject_object(
19649        x509: *mut X509,
19650        obj: *const ASN1_OBJECT,
19651    ) -> ::std::os::raw::c_int;
19652}
19653extern "C" {
19654    #[link_name = "\u{1}aws_lc_0_40_0_X509_trust_clear"]
19655    pub fn X509_trust_clear(x509: *mut X509);
19656}
19657extern "C" {
19658    #[link_name = "\u{1}aws_lc_0_40_0_X509_reject_clear"]
19659    pub fn X509_reject_clear(x509: *mut X509);
19660}
19661pub type sk_X509_CRL_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
19662pub type sk_X509_CRL_copy_func =
19663    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
19664pub type sk_X509_CRL_cmp_func = ::std::option::Option<
19665    unsafe extern "C" fn(
19666        arg1: *const *const X509_CRL,
19667        arg2: *const *const X509_CRL,
19668    ) -> ::std::os::raw::c_int,
19669>;
19670pub type sk_X509_CRL_delete_if_func = ::std::option::Option<
19671    unsafe extern "C" fn(
19672        arg1: *mut X509_CRL,
19673        arg2: *mut ::std::os::raw::c_void,
19674    ) -> ::std::os::raw::c_int,
19675>;
19676#[repr(C)]
19677#[derive(Debug, Copy, Clone)]
19678pub struct stack_st_X509_REVOKED {
19679    _unused: [u8; 0],
19680}
19681pub type sk_X509_REVOKED_free_func =
19682    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
19683pub type sk_X509_REVOKED_copy_func =
19684    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
19685pub type sk_X509_REVOKED_cmp_func = ::std::option::Option<
19686    unsafe extern "C" fn(
19687        arg1: *const *const X509_REVOKED,
19688        arg2: *const *const X509_REVOKED,
19689    ) -> ::std::os::raw::c_int,
19690>;
19691pub type sk_X509_REVOKED_delete_if_func = ::std::option::Option<
19692    unsafe extern "C" fn(
19693        arg1: *mut X509_REVOKED,
19694        arg2: *mut ::std::os::raw::c_void,
19695    ) -> ::std::os::raw::c_int,
19696>;
19697extern "C" {
19698    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_it"]
19699    pub static X509_CRL_it: ASN1_ITEM;
19700}
19701extern "C" {
19702    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_up_ref"]
19703    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19704}
19705extern "C" {
19706    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_dup"]
19707    pub fn X509_CRL_dup(crl: *mut X509_CRL) -> *mut X509_CRL;
19708}
19709extern "C" {
19710    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_free"]
19711    pub fn X509_CRL_free(crl: *mut X509_CRL);
19712}
19713extern "C" {
19714    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_CRL"]
19715    pub fn d2i_X509_CRL(
19716        out: *mut *mut X509_CRL,
19717        inp: *mut *const u8,
19718        len: ::std::os::raw::c_long,
19719    ) -> *mut X509_CRL;
19720}
19721extern "C" {
19722    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_CRL"]
19723    pub fn i2d_X509_CRL(crl: *mut X509_CRL, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19724}
19725extern "C" {
19726    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_match"]
19727    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
19728}
19729extern "C" {
19730    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_version"]
19731    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::std::os::raw::c_long;
19732}
19733extern "C" {
19734    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_lastUpdate"]
19735    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19736}
19737extern "C" {
19738    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_nextUpdate"]
19739    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
19740}
19741extern "C" {
19742    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_issuer"]
19743    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
19744}
19745extern "C" {
19746    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_by_serial"]
19747    pub fn X509_CRL_get0_by_serial(
19748        crl: *mut X509_CRL,
19749        out: *mut *mut X509_REVOKED,
19750        serial: *const ASN1_INTEGER,
19751    ) -> ::std::os::raw::c_int;
19752}
19753extern "C" {
19754    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_by_cert"]
19755    pub fn X509_CRL_get0_by_cert(
19756        crl: *mut X509_CRL,
19757        out: *mut *mut X509_REVOKED,
19758        x509: *mut X509,
19759    ) -> ::std::os::raw::c_int;
19760}
19761extern "C" {
19762    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_REVOKED"]
19763    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
19764}
19765extern "C" {
19766    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_extensions"]
19767    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
19768}
19769extern "C" {
19770    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext_count"]
19771    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::std::os::raw::c_int;
19772}
19773extern "C" {
19774    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext_by_NID"]
19775    pub fn X509_CRL_get_ext_by_NID(
19776        x: *const X509_CRL,
19777        nid: ::std::os::raw::c_int,
19778        lastpos: ::std::os::raw::c_int,
19779    ) -> ::std::os::raw::c_int;
19780}
19781extern "C" {
19782    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext_by_OBJ"]
19783    pub fn X509_CRL_get_ext_by_OBJ(
19784        x: *const X509_CRL,
19785        obj: *const ASN1_OBJECT,
19786        lastpos: ::std::os::raw::c_int,
19787    ) -> ::std::os::raw::c_int;
19788}
19789extern "C" {
19790    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext_by_critical"]
19791    pub fn X509_CRL_get_ext_by_critical(
19792        x: *const X509_CRL,
19793        crit: ::std::os::raw::c_int,
19794        lastpos: ::std::os::raw::c_int,
19795    ) -> ::std::os::raw::c_int;
19796}
19797extern "C" {
19798    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext"]
19799    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::std::os::raw::c_int) -> *mut X509_EXTENSION;
19800}
19801extern "C" {
19802    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_ext_d2i"]
19803    pub fn X509_CRL_get_ext_d2i(
19804        crl: *const X509_CRL,
19805        nid: ::std::os::raw::c_int,
19806        out_critical: *mut ::std::os::raw::c_int,
19807        out_idx: *mut ::std::os::raw::c_int,
19808    ) -> *mut ::std::os::raw::c_void;
19809}
19810extern "C" {
19811    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get0_signature"]
19812    pub fn X509_CRL_get0_signature(
19813        crl: *const X509_CRL,
19814        out_sig: *mut *const ASN1_BIT_STRING,
19815        out_alg: *mut *const X509_ALGOR,
19816    );
19817}
19818extern "C" {
19819    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_signature_nid"]
19820    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::std::os::raw::c_int;
19821}
19822extern "C" {
19823    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_CRL_tbs"]
19824    pub fn i2d_X509_CRL_tbs(
19825        crl: *mut X509_CRL,
19826        outp: *mut *mut ::std::os::raw::c_uchar,
19827    ) -> ::std::os::raw::c_int;
19828}
19829extern "C" {
19830    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_verify"]
19831    pub fn X509_CRL_verify(crl: *mut X509_CRL, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
19832}
19833extern "C" {
19834    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_new"]
19835    pub fn X509_CRL_new() -> *mut X509_CRL;
19836}
19837extern "C" {
19838    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set_version"]
19839    pub fn X509_CRL_set_version(
19840        crl: *mut X509_CRL,
19841        version: ::std::os::raw::c_long,
19842    ) -> ::std::os::raw::c_int;
19843}
19844extern "C" {
19845    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set_issuer_name"]
19846    pub fn X509_CRL_set_issuer_name(
19847        crl: *mut X509_CRL,
19848        name: *mut X509_NAME,
19849    ) -> ::std::os::raw::c_int;
19850}
19851extern "C" {
19852    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set1_lastUpdate"]
19853    pub fn X509_CRL_set1_lastUpdate(
19854        crl: *mut X509_CRL,
19855        tm: *const ASN1_TIME,
19856    ) -> ::std::os::raw::c_int;
19857}
19858extern "C" {
19859    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set1_nextUpdate"]
19860    pub fn X509_CRL_set1_nextUpdate(
19861        crl: *mut X509_CRL,
19862        tm: *const ASN1_TIME,
19863    ) -> ::std::os::raw::c_int;
19864}
19865extern "C" {
19866    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_add0_revoked"]
19867    pub fn X509_CRL_add0_revoked(
19868        crl: *mut X509_CRL,
19869        rev: *mut X509_REVOKED,
19870    ) -> ::std::os::raw::c_int;
19871}
19872extern "C" {
19873    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_sort"]
19874    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::std::os::raw::c_int;
19875}
19876extern "C" {
19877    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_delete_ext"]
19878    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::std::os::raw::c_int)
19879        -> *mut X509_EXTENSION;
19880}
19881extern "C" {
19882    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_add_ext"]
19883    pub fn X509_CRL_add_ext(
19884        x: *mut X509_CRL,
19885        ex: *const X509_EXTENSION,
19886        loc: ::std::os::raw::c_int,
19887    ) -> ::std::os::raw::c_int;
19888}
19889extern "C" {
19890    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_add1_ext_i2d"]
19891    pub fn X509_CRL_add1_ext_i2d(
19892        x: *mut X509_CRL,
19893        nid: ::std::os::raw::c_int,
19894        value: *mut ::std::os::raw::c_void,
19895        crit: ::std::os::raw::c_int,
19896        flags: ::std::os::raw::c_ulong,
19897    ) -> ::std::os::raw::c_int;
19898}
19899extern "C" {
19900    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_sign"]
19901    pub fn X509_CRL_sign(
19902        crl: *mut X509_CRL,
19903        pkey: *mut EVP_PKEY,
19904        md: *const EVP_MD,
19905    ) -> ::std::os::raw::c_int;
19906}
19907extern "C" {
19908    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_sign_ctx"]
19909    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
19910}
19911extern "C" {
19912    #[link_name = "\u{1}aws_lc_0_40_0_i2d_re_X509_CRL_tbs"]
19913    pub fn i2d_re_X509_CRL_tbs(
19914        crl: *mut X509_CRL,
19915        outp: *mut *mut ::std::os::raw::c_uchar,
19916    ) -> ::std::os::raw::c_int;
19917}
19918extern "C" {
19919    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set1_signature_algo"]
19920    pub fn X509_CRL_set1_signature_algo(
19921        crl: *mut X509_CRL,
19922        algo: *const X509_ALGOR,
19923    ) -> ::std::os::raw::c_int;
19924}
19925extern "C" {
19926    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_set1_signature_value"]
19927    pub fn X509_CRL_set1_signature_value(
19928        crl: *mut X509_CRL,
19929        sig: *const u8,
19930        sig_len: usize,
19931    ) -> ::std::os::raw::c_int;
19932}
19933extern "C" {
19934    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_http_nbio"]
19935    pub fn X509_CRL_http_nbio(
19936        rctx: *mut OCSP_REQ_CTX,
19937        pcrl: *mut *mut X509_CRL,
19938    ) -> ::std::os::raw::c_int;
19939}
19940extern "C" {
19941    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_it"]
19942    pub static X509_REVOKED_it: ASN1_ITEM;
19943}
19944extern "C" {
19945    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_new"]
19946    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
19947}
19948extern "C" {
19949    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_free"]
19950    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
19951}
19952extern "C" {
19953    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_REVOKED"]
19954    pub fn d2i_X509_REVOKED(
19955        out: *mut *mut X509_REVOKED,
19956        inp: *mut *const u8,
19957        len: ::std::os::raw::c_long,
19958    ) -> *mut X509_REVOKED;
19959}
19960extern "C" {
19961    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_REVOKED"]
19962    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::std::os::raw::c_int;
19963}
19964extern "C" {
19965    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_dup"]
19966    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
19967}
19968extern "C" {
19969    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get0_serialNumber"]
19970    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
19971}
19972extern "C" {
19973    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_set_serialNumber"]
19974    pub fn X509_REVOKED_set_serialNumber(
19975        revoked: *mut X509_REVOKED,
19976        serial: *const ASN1_INTEGER,
19977    ) -> ::std::os::raw::c_int;
19978}
19979extern "C" {
19980    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get0_revocationDate"]
19981    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
19982}
19983extern "C" {
19984    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_set_revocationDate"]
19985    pub fn X509_REVOKED_set_revocationDate(
19986        revoked: *mut X509_REVOKED,
19987        tm: *const ASN1_TIME,
19988    ) -> ::std::os::raw::c_int;
19989}
19990extern "C" {
19991    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get0_extensions"]
19992    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
19993}
19994extern "C" {
19995    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext_count"]
19996    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::std::os::raw::c_int;
19997}
19998extern "C" {
19999    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext_by_NID"]
20000    pub fn X509_REVOKED_get_ext_by_NID(
20001        x: *const X509_REVOKED,
20002        nid: ::std::os::raw::c_int,
20003        lastpos: ::std::os::raw::c_int,
20004    ) -> ::std::os::raw::c_int;
20005}
20006extern "C" {
20007    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext_by_OBJ"]
20008    pub fn X509_REVOKED_get_ext_by_OBJ(
20009        x: *const X509_REVOKED,
20010        obj: *const ASN1_OBJECT,
20011        lastpos: ::std::os::raw::c_int,
20012    ) -> ::std::os::raw::c_int;
20013}
20014extern "C" {
20015    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext_by_critical"]
20016    pub fn X509_REVOKED_get_ext_by_critical(
20017        x: *const X509_REVOKED,
20018        crit: ::std::os::raw::c_int,
20019        lastpos: ::std::os::raw::c_int,
20020    ) -> ::std::os::raw::c_int;
20021}
20022extern "C" {
20023    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext"]
20024    pub fn X509_REVOKED_get_ext(
20025        x: *const X509_REVOKED,
20026        loc: ::std::os::raw::c_int,
20027    ) -> *mut X509_EXTENSION;
20028}
20029extern "C" {
20030    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_delete_ext"]
20031    pub fn X509_REVOKED_delete_ext(
20032        x: *mut X509_REVOKED,
20033        loc: ::std::os::raw::c_int,
20034    ) -> *mut X509_EXTENSION;
20035}
20036extern "C" {
20037    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_add_ext"]
20038    pub fn X509_REVOKED_add_ext(
20039        x: *mut X509_REVOKED,
20040        ex: *const X509_EXTENSION,
20041        loc: ::std::os::raw::c_int,
20042    ) -> ::std::os::raw::c_int;
20043}
20044extern "C" {
20045    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_get_ext_d2i"]
20046    pub fn X509_REVOKED_get_ext_d2i(
20047        revoked: *const X509_REVOKED,
20048        nid: ::std::os::raw::c_int,
20049        out_critical: *mut ::std::os::raw::c_int,
20050        out_idx: *mut ::std::os::raw::c_int,
20051    ) -> *mut ::std::os::raw::c_void;
20052}
20053extern "C" {
20054    #[link_name = "\u{1}aws_lc_0_40_0_X509_REVOKED_add1_ext_i2d"]
20055    pub fn X509_REVOKED_add1_ext_i2d(
20056        x: *mut X509_REVOKED,
20057        nid: ::std::os::raw::c_int,
20058        value: *mut ::std::os::raw::c_void,
20059        crit: ::std::os::raw::c_int,
20060        flags: ::std::os::raw::c_ulong,
20061    ) -> ::std::os::raw::c_int;
20062}
20063extern "C" {
20064    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_it"]
20065    pub static X509_REQ_it: ASN1_ITEM;
20066}
20067extern "C" {
20068    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_dup"]
20069    pub fn X509_REQ_dup(req: *mut X509_REQ) -> *mut X509_REQ;
20070}
20071extern "C" {
20072    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_free"]
20073    pub fn X509_REQ_free(req: *mut X509_REQ);
20074}
20075extern "C" {
20076    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_REQ"]
20077    pub fn d2i_X509_REQ(
20078        out: *mut *mut X509_REQ,
20079        inp: *mut *const u8,
20080        len: ::std::os::raw::c_long,
20081    ) -> *mut X509_REQ;
20082}
20083extern "C" {
20084    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_REQ"]
20085    pub fn i2d_X509_REQ(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20086}
20087extern "C" {
20088    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_version"]
20089    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::std::os::raw::c_long;
20090}
20091extern "C" {
20092    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_subject_name"]
20093    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
20094}
20095extern "C" {
20096    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get0_pubkey"]
20097    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20098}
20099extern "C" {
20100    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_pubkey"]
20101    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
20102}
20103extern "C" {
20104    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_check_private_key"]
20105    pub fn X509_REQ_check_private_key(
20106        req: *const X509_REQ,
20107        pkey: *const EVP_PKEY,
20108    ) -> ::std::os::raw::c_int;
20109}
20110extern "C" {
20111    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_attr_count"]
20112    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::std::os::raw::c_int;
20113}
20114extern "C" {
20115    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_attr"]
20116    pub fn X509_REQ_get_attr(
20117        req: *const X509_REQ,
20118        loc: ::std::os::raw::c_int,
20119    ) -> *mut X509_ATTRIBUTE;
20120}
20121extern "C" {
20122    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_attr_by_NID"]
20123    pub fn X509_REQ_get_attr_by_NID(
20124        req: *const X509_REQ,
20125        nid: ::std::os::raw::c_int,
20126        lastpos: ::std::os::raw::c_int,
20127    ) -> ::std::os::raw::c_int;
20128}
20129extern "C" {
20130    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_attr_by_OBJ"]
20131    pub fn X509_REQ_get_attr_by_OBJ(
20132        req: *const X509_REQ,
20133        obj: *const ASN1_OBJECT,
20134        lastpos: ::std::os::raw::c_int,
20135    ) -> ::std::os::raw::c_int;
20136}
20137extern "C" {
20138    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_extension_nid"]
20139    pub fn X509_REQ_extension_nid(nid: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
20140}
20141extern "C" {
20142    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_extensions"]
20143    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
20144}
20145extern "C" {
20146    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get0_signature"]
20147    pub fn X509_REQ_get0_signature(
20148        req: *const X509_REQ,
20149        out_sig: *mut *const ASN1_BIT_STRING,
20150        out_alg: *mut *const X509_ALGOR,
20151    );
20152}
20153extern "C" {
20154    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get_signature_nid"]
20155    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::std::os::raw::c_int;
20156}
20157extern "C" {
20158    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_verify"]
20159    pub fn X509_REQ_verify(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20160}
20161extern "C" {
20162    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_get1_email"]
20163    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
20164}
20165extern "C" {
20166    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_new"]
20167    pub fn X509_REQ_new() -> *mut X509_REQ;
20168}
20169extern "C" {
20170    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_set_version"]
20171    pub fn X509_REQ_set_version(
20172        req: *mut X509_REQ,
20173        version: ::std::os::raw::c_long,
20174    ) -> ::std::os::raw::c_int;
20175}
20176extern "C" {
20177    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_set_subject_name"]
20178    pub fn X509_REQ_set_subject_name(
20179        req: *mut X509_REQ,
20180        name: *mut X509_NAME,
20181    ) -> ::std::os::raw::c_int;
20182}
20183extern "C" {
20184    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_set_pubkey"]
20185    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20186}
20187extern "C" {
20188    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_delete_attr"]
20189    pub fn X509_REQ_delete_attr(
20190        req: *mut X509_REQ,
20191        loc: ::std::os::raw::c_int,
20192    ) -> *mut X509_ATTRIBUTE;
20193}
20194extern "C" {
20195    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add1_attr"]
20196    pub fn X509_REQ_add1_attr(
20197        req: *mut X509_REQ,
20198        attr: *const X509_ATTRIBUTE,
20199    ) -> ::std::os::raw::c_int;
20200}
20201extern "C" {
20202    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add1_attr_by_OBJ"]
20203    pub fn X509_REQ_add1_attr_by_OBJ(
20204        req: *mut X509_REQ,
20205        obj: *const ASN1_OBJECT,
20206        attrtype: ::std::os::raw::c_int,
20207        data: *const ::std::os::raw::c_uchar,
20208        len: ::std::os::raw::c_int,
20209    ) -> ::std::os::raw::c_int;
20210}
20211extern "C" {
20212    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add1_attr_by_NID"]
20213    pub fn X509_REQ_add1_attr_by_NID(
20214        req: *mut X509_REQ,
20215        nid: ::std::os::raw::c_int,
20216        attrtype: ::std::os::raw::c_int,
20217        data: *const ::std::os::raw::c_uchar,
20218        len: ::std::os::raw::c_int,
20219    ) -> ::std::os::raw::c_int;
20220}
20221extern "C" {
20222    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add1_attr_by_txt"]
20223    pub fn X509_REQ_add1_attr_by_txt(
20224        req: *mut X509_REQ,
20225        attrname: *const ::std::os::raw::c_char,
20226        attrtype: ::std::os::raw::c_int,
20227        data: *const ::std::os::raw::c_uchar,
20228        len: ::std::os::raw::c_int,
20229    ) -> ::std::os::raw::c_int;
20230}
20231extern "C" {
20232    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add_extensions_nid"]
20233    pub fn X509_REQ_add_extensions_nid(
20234        req: *mut X509_REQ,
20235        exts: *const stack_st_X509_EXTENSION,
20236        nid: ::std::os::raw::c_int,
20237    ) -> ::std::os::raw::c_int;
20238}
20239extern "C" {
20240    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_add_extensions"]
20241    pub fn X509_REQ_add_extensions(
20242        req: *mut X509_REQ,
20243        exts: *const stack_st_X509_EXTENSION,
20244    ) -> ::std::os::raw::c_int;
20245}
20246extern "C" {
20247    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_sign"]
20248    pub fn X509_REQ_sign(
20249        req: *mut X509_REQ,
20250        pkey: *mut EVP_PKEY,
20251        md: *const EVP_MD,
20252    ) -> ::std::os::raw::c_int;
20253}
20254extern "C" {
20255    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_sign_ctx"]
20256    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::std::os::raw::c_int;
20257}
20258extern "C" {
20259    #[link_name = "\u{1}aws_lc_0_40_0_i2d_re_X509_REQ_tbs"]
20260    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20261}
20262extern "C" {
20263    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_set1_signature_algo"]
20264    pub fn X509_REQ_set1_signature_algo(
20265        req: *mut X509_REQ,
20266        algo: *const X509_ALGOR,
20267    ) -> ::std::os::raw::c_int;
20268}
20269extern "C" {
20270    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_set1_signature_value"]
20271    pub fn X509_REQ_set1_signature_value(
20272        req: *mut X509_REQ,
20273        sig: *const u8,
20274        sig_len: usize,
20275    ) -> ::std::os::raw::c_int;
20276}
20277#[repr(C)]
20278#[derive(Debug, Copy, Clone)]
20279pub struct stack_st_X509_NAME_ENTRY {
20280    _unused: [u8; 0],
20281}
20282pub type sk_X509_NAME_ENTRY_free_func =
20283    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
20284pub type sk_X509_NAME_ENTRY_copy_func = ::std::option::Option<
20285    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
20286>;
20287pub type sk_X509_NAME_ENTRY_cmp_func = ::std::option::Option<
20288    unsafe extern "C" fn(
20289        arg1: *const *const X509_NAME_ENTRY,
20290        arg2: *const *const X509_NAME_ENTRY,
20291    ) -> ::std::os::raw::c_int,
20292>;
20293pub type sk_X509_NAME_ENTRY_delete_if_func = ::std::option::Option<
20294    unsafe extern "C" fn(
20295        arg1: *mut X509_NAME_ENTRY,
20296        arg2: *mut ::std::os::raw::c_void,
20297    ) -> ::std::os::raw::c_int,
20298>;
20299#[repr(C)]
20300#[derive(Debug, Copy, Clone)]
20301pub struct stack_st_X509_NAME {
20302    _unused: [u8; 0],
20303}
20304pub type sk_X509_NAME_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
20305pub type sk_X509_NAME_copy_func =
20306    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
20307pub type sk_X509_NAME_cmp_func = ::std::option::Option<
20308    unsafe extern "C" fn(
20309        arg1: *const *const X509_NAME,
20310        arg2: *const *const X509_NAME,
20311    ) -> ::std::os::raw::c_int,
20312>;
20313pub type sk_X509_NAME_delete_if_func = ::std::option::Option<
20314    unsafe extern "C" fn(
20315        arg1: *mut X509_NAME,
20316        arg2: *mut ::std::os::raw::c_void,
20317    ) -> ::std::os::raw::c_int,
20318>;
20319extern "C" {
20320    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_it"]
20321    pub static X509_NAME_it: ASN1_ITEM;
20322}
20323extern "C" {
20324    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_new"]
20325    pub fn X509_NAME_new() -> *mut X509_NAME;
20326}
20327extern "C" {
20328    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_free"]
20329    pub fn X509_NAME_free(name: *mut X509_NAME);
20330}
20331extern "C" {
20332    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_NAME"]
20333    pub fn d2i_X509_NAME(
20334        out: *mut *mut X509_NAME,
20335        inp: *mut *const u8,
20336        len: ::std::os::raw::c_long,
20337    ) -> *mut X509_NAME;
20338}
20339extern "C" {
20340    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_NAME"]
20341    pub fn i2d_X509_NAME(in_: *mut X509_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20342}
20343extern "C" {
20344    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_dup"]
20345    pub fn X509_NAME_dup(name: *mut X509_NAME) -> *mut X509_NAME;
20346}
20347extern "C" {
20348    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_cmp"]
20349    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::std::os::raw::c_int;
20350}
20351extern "C" {
20352    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get0_der"]
20353    pub fn X509_NAME_get0_der(
20354        name: *mut X509_NAME,
20355        out_der: *mut *const u8,
20356        out_der_len: *mut usize,
20357    ) -> ::std::os::raw::c_int;
20358}
20359extern "C" {
20360    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_set"]
20361    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *mut X509_NAME) -> ::std::os::raw::c_int;
20362}
20363extern "C" {
20364    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_entry_count"]
20365    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::std::os::raw::c_int;
20366}
20367extern "C" {
20368    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get_index_by_NID"]
20369    pub fn X509_NAME_get_index_by_NID(
20370        name: *const X509_NAME,
20371        nid: ::std::os::raw::c_int,
20372        lastpos: ::std::os::raw::c_int,
20373    ) -> ::std::os::raw::c_int;
20374}
20375extern "C" {
20376    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get_index_by_OBJ"]
20377    pub fn X509_NAME_get_index_by_OBJ(
20378        name: *const X509_NAME,
20379        obj: *const ASN1_OBJECT,
20380        lastpos: ::std::os::raw::c_int,
20381    ) -> ::std::os::raw::c_int;
20382}
20383extern "C" {
20384    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get_entry"]
20385    pub fn X509_NAME_get_entry(
20386        name: *const X509_NAME,
20387        loc: ::std::os::raw::c_int,
20388    ) -> *mut X509_NAME_ENTRY;
20389}
20390extern "C" {
20391    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_delete_entry"]
20392    pub fn X509_NAME_delete_entry(
20393        name: *mut X509_NAME,
20394        loc: ::std::os::raw::c_int,
20395    ) -> *mut X509_NAME_ENTRY;
20396}
20397extern "C" {
20398    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_add_entry"]
20399    pub fn X509_NAME_add_entry(
20400        name: *mut X509_NAME,
20401        entry: *const X509_NAME_ENTRY,
20402        loc: ::std::os::raw::c_int,
20403        set: ::std::os::raw::c_int,
20404    ) -> ::std::os::raw::c_int;
20405}
20406extern "C" {
20407    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_add_entry_by_OBJ"]
20408    pub fn X509_NAME_add_entry_by_OBJ(
20409        name: *mut X509_NAME,
20410        obj: *const ASN1_OBJECT,
20411        type_: ::std::os::raw::c_int,
20412        bytes: *const u8,
20413        len: ossl_ssize_t,
20414        loc: ::std::os::raw::c_int,
20415        set: ::std::os::raw::c_int,
20416    ) -> ::std::os::raw::c_int;
20417}
20418extern "C" {
20419    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_add_entry_by_NID"]
20420    pub fn X509_NAME_add_entry_by_NID(
20421        name: *mut X509_NAME,
20422        nid: ::std::os::raw::c_int,
20423        type_: ::std::os::raw::c_int,
20424        bytes: *const u8,
20425        len: ossl_ssize_t,
20426        loc: ::std::os::raw::c_int,
20427        set: ::std::os::raw::c_int,
20428    ) -> ::std::os::raw::c_int;
20429}
20430extern "C" {
20431    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_add_entry_by_txt"]
20432    pub fn X509_NAME_add_entry_by_txt(
20433        name: *mut X509_NAME,
20434        field: *const ::std::os::raw::c_char,
20435        type_: ::std::os::raw::c_int,
20436        bytes: *const u8,
20437        len: ossl_ssize_t,
20438        loc: ::std::os::raw::c_int,
20439        set: ::std::os::raw::c_int,
20440    ) -> ::std::os::raw::c_int;
20441}
20442extern "C" {
20443    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_it"]
20444    pub static X509_NAME_ENTRY_it: ASN1_ITEM;
20445}
20446extern "C" {
20447    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_new"]
20448    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
20449}
20450extern "C" {
20451    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_free"]
20452    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
20453}
20454extern "C" {
20455    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_NAME_ENTRY"]
20456    pub fn d2i_X509_NAME_ENTRY(
20457        out: *mut *mut X509_NAME_ENTRY,
20458        inp: *mut *const u8,
20459        len: ::std::os::raw::c_long,
20460    ) -> *mut X509_NAME_ENTRY;
20461}
20462extern "C" {
20463    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_NAME_ENTRY"]
20464    pub fn i2d_X509_NAME_ENTRY(
20465        in_: *const X509_NAME_ENTRY,
20466        outp: *mut *mut u8,
20467    ) -> ::std::os::raw::c_int;
20468}
20469extern "C" {
20470    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_dup"]
20471    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
20472}
20473extern "C" {
20474    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_get_object"]
20475    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
20476}
20477extern "C" {
20478    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_set_object"]
20479    pub fn X509_NAME_ENTRY_set_object(
20480        entry: *mut X509_NAME_ENTRY,
20481        obj: *const ASN1_OBJECT,
20482    ) -> ::std::os::raw::c_int;
20483}
20484extern "C" {
20485    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_get_data"]
20486    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
20487}
20488extern "C" {
20489    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_set_data"]
20490    pub fn X509_NAME_ENTRY_set_data(
20491        entry: *mut X509_NAME_ENTRY,
20492        type_: ::std::os::raw::c_int,
20493        bytes: *const u8,
20494        len: ossl_ssize_t,
20495    ) -> ::std::os::raw::c_int;
20496}
20497extern "C" {
20498    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_set"]
20499    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::std::os::raw::c_int;
20500}
20501extern "C" {
20502    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_create_by_OBJ"]
20503    pub fn X509_NAME_ENTRY_create_by_OBJ(
20504        out: *mut *mut X509_NAME_ENTRY,
20505        obj: *const ASN1_OBJECT,
20506        type_: ::std::os::raw::c_int,
20507        bytes: *const u8,
20508        len: ossl_ssize_t,
20509    ) -> *mut X509_NAME_ENTRY;
20510}
20511extern "C" {
20512    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_create_by_NID"]
20513    pub fn X509_NAME_ENTRY_create_by_NID(
20514        out: *mut *mut X509_NAME_ENTRY,
20515        nid: ::std::os::raw::c_int,
20516        type_: ::std::os::raw::c_int,
20517        bytes: *const u8,
20518        len: ossl_ssize_t,
20519    ) -> *mut X509_NAME_ENTRY;
20520}
20521extern "C" {
20522    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_ENTRY_create_by_txt"]
20523    pub fn X509_NAME_ENTRY_create_by_txt(
20524        out: *mut *mut X509_NAME_ENTRY,
20525        field: *const ::std::os::raw::c_char,
20526        type_: ::std::os::raw::c_int,
20527        bytes: *const u8,
20528        len: ossl_ssize_t,
20529    ) -> *mut X509_NAME_ENTRY;
20530}
20531extern "C" {
20532    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_it"]
20533    pub static X509_PUBKEY_it: ASN1_ITEM;
20534}
20535extern "C" {
20536    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_new"]
20537    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
20538}
20539extern "C" {
20540    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_free"]
20541    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
20542}
20543extern "C" {
20544    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_PUBKEY"]
20545    pub fn d2i_X509_PUBKEY(
20546        out: *mut *mut X509_PUBKEY,
20547        inp: *mut *const u8,
20548        len: ::std::os::raw::c_long,
20549    ) -> *mut X509_PUBKEY;
20550}
20551extern "C" {
20552    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_PUBKEY"]
20553    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::std::os::raw::c_int;
20554}
20555extern "C" {
20556    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_set"]
20557    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
20558}
20559extern "C" {
20560    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_get0"]
20561    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20562}
20563extern "C" {
20564    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_get"]
20565    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
20566}
20567extern "C" {
20568    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_set0_param"]
20569    pub fn X509_PUBKEY_set0_param(
20570        pub_: *mut X509_PUBKEY,
20571        obj: *mut ASN1_OBJECT,
20572        param_type: ::std::os::raw::c_int,
20573        param_value: *mut ::std::os::raw::c_void,
20574        key: *mut u8,
20575        key_len: ::std::os::raw::c_int,
20576    ) -> ::std::os::raw::c_int;
20577}
20578extern "C" {
20579    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_get0_param"]
20580    pub fn X509_PUBKEY_get0_param(
20581        out_obj: *mut *mut ASN1_OBJECT,
20582        out_key: *mut *const u8,
20583        out_key_len: *mut ::std::os::raw::c_int,
20584        out_alg: *mut *mut X509_ALGOR,
20585        pub_: *mut X509_PUBKEY,
20586    ) -> ::std::os::raw::c_int;
20587}
20588extern "C" {
20589    #[link_name = "\u{1}aws_lc_0_40_0_X509_PUBKEY_get0_public_key"]
20590    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
20591}
20592extern "C" {
20593    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_it"]
20594    pub static X509_EXTENSION_it: ASN1_ITEM;
20595}
20596extern "C" {
20597    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_new"]
20598    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
20599}
20600extern "C" {
20601    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_free"]
20602    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
20603}
20604extern "C" {
20605    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_EXTENSION"]
20606    pub fn d2i_X509_EXTENSION(
20607        out: *mut *mut X509_EXTENSION,
20608        inp: *mut *const u8,
20609        len: ::std::os::raw::c_long,
20610    ) -> *mut X509_EXTENSION;
20611}
20612extern "C" {
20613    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_EXTENSION"]
20614    pub fn i2d_X509_EXTENSION(
20615        ex: *const X509_EXTENSION,
20616        outp: *mut *mut u8,
20617    ) -> ::std::os::raw::c_int;
20618}
20619extern "C" {
20620    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_dup"]
20621    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
20622}
20623extern "C" {
20624    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_create_by_NID"]
20625    pub fn X509_EXTENSION_create_by_NID(
20626        ex: *mut *mut X509_EXTENSION,
20627        nid: ::std::os::raw::c_int,
20628        crit: ::std::os::raw::c_int,
20629        data: *const ASN1_OCTET_STRING,
20630    ) -> *mut X509_EXTENSION;
20631}
20632extern "C" {
20633    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_create_by_OBJ"]
20634    pub fn X509_EXTENSION_create_by_OBJ(
20635        ex: *mut *mut X509_EXTENSION,
20636        obj: *const ASN1_OBJECT,
20637        crit: ::std::os::raw::c_int,
20638        data: *const ASN1_OCTET_STRING,
20639    ) -> *mut X509_EXTENSION;
20640}
20641extern "C" {
20642    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_get_object"]
20643    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
20644}
20645extern "C" {
20646    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_get_data"]
20647    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
20648}
20649extern "C" {
20650    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_get_critical"]
20651    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
20652}
20653extern "C" {
20654    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_set_object"]
20655    pub fn X509_EXTENSION_set_object(
20656        ex: *mut X509_EXTENSION,
20657        obj: *const ASN1_OBJECT,
20658    ) -> ::std::os::raw::c_int;
20659}
20660extern "C" {
20661    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_set_critical"]
20662    pub fn X509_EXTENSION_set_critical(
20663        ex: *mut X509_EXTENSION,
20664        crit: ::std::os::raw::c_int,
20665    ) -> ::std::os::raw::c_int;
20666}
20667extern "C" {
20668    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSION_set_data"]
20669    pub fn X509_EXTENSION_set_data(
20670        ex: *mut X509_EXTENSION,
20671        data: *const ASN1_OCTET_STRING,
20672    ) -> ::std::os::raw::c_int;
20673}
20674pub type sk_X509_EXTENSION_free_func =
20675    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
20676pub type sk_X509_EXTENSION_copy_func =
20677    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION>;
20678pub type sk_X509_EXTENSION_cmp_func = ::std::option::Option<
20679    unsafe extern "C" fn(
20680        arg1: *const *const X509_EXTENSION,
20681        arg2: *const *const X509_EXTENSION,
20682    ) -> ::std::os::raw::c_int,
20683>;
20684pub type sk_X509_EXTENSION_delete_if_func = ::std::option::Option<
20685    unsafe extern "C" fn(
20686        arg1: *mut X509_EXTENSION,
20687        arg2: *mut ::std::os::raw::c_void,
20688    ) -> ::std::os::raw::c_int,
20689>;
20690pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
20691extern "C" {
20692    #[link_name = "\u{1}aws_lc_0_40_0_X509_EXTENSIONS_it"]
20693    pub static X509_EXTENSIONS_it: ASN1_ITEM;
20694}
20695extern "C" {
20696    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_EXTENSIONS"]
20697    pub fn d2i_X509_EXTENSIONS(
20698        out: *mut *mut X509_EXTENSIONS,
20699        inp: *mut *const u8,
20700        len: ::std::os::raw::c_long,
20701    ) -> *mut X509_EXTENSIONS;
20702}
20703extern "C" {
20704    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_EXTENSIONS"]
20705    pub fn i2d_X509_EXTENSIONS(
20706        alg: *const X509_EXTENSIONS,
20707        outp: *mut *mut u8,
20708    ) -> ::std::os::raw::c_int;
20709}
20710extern "C" {
20711    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_get_ext_count"]
20712    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::std::os::raw::c_int;
20713}
20714extern "C" {
20715    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_get_ext_by_NID"]
20716    pub fn X509v3_get_ext_by_NID(
20717        x: *const stack_st_X509_EXTENSION,
20718        nid: ::std::os::raw::c_int,
20719        lastpos: ::std::os::raw::c_int,
20720    ) -> ::std::os::raw::c_int;
20721}
20722extern "C" {
20723    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_get_ext_by_OBJ"]
20724    pub fn X509v3_get_ext_by_OBJ(
20725        x: *const stack_st_X509_EXTENSION,
20726        obj: *const ASN1_OBJECT,
20727        lastpos: ::std::os::raw::c_int,
20728    ) -> ::std::os::raw::c_int;
20729}
20730extern "C" {
20731    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_get_ext_by_critical"]
20732    pub fn X509v3_get_ext_by_critical(
20733        x: *const stack_st_X509_EXTENSION,
20734        crit: ::std::os::raw::c_int,
20735        lastpos: ::std::os::raw::c_int,
20736    ) -> ::std::os::raw::c_int;
20737}
20738extern "C" {
20739    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_get_ext"]
20740    pub fn X509v3_get_ext(
20741        x: *const stack_st_X509_EXTENSION,
20742        loc: ::std::os::raw::c_int,
20743    ) -> *mut X509_EXTENSION;
20744}
20745extern "C" {
20746    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_delete_ext"]
20747    pub fn X509v3_delete_ext(
20748        x: *mut stack_st_X509_EXTENSION,
20749        loc: ::std::os::raw::c_int,
20750    ) -> *mut X509_EXTENSION;
20751}
20752extern "C" {
20753    #[link_name = "\u{1}aws_lc_0_40_0_X509v3_add_ext"]
20754    pub fn X509v3_add_ext(
20755        x: *mut *mut stack_st_X509_EXTENSION,
20756        ex: *const X509_EXTENSION,
20757        loc: ::std::os::raw::c_int,
20758    ) -> *mut stack_st_X509_EXTENSION;
20759}
20760extern "C" {
20761    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_d2i"]
20762    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::std::os::raw::c_void;
20763}
20764extern "C" {
20765    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_get_d2i"]
20766    pub fn X509V3_get_d2i(
20767        extensions: *const stack_st_X509_EXTENSION,
20768        nid: ::std::os::raw::c_int,
20769        out_critical: *mut ::std::os::raw::c_int,
20770        out_idx: *mut ::std::os::raw::c_int,
20771    ) -> *mut ::std::os::raw::c_void;
20772}
20773extern "C" {
20774    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_free"]
20775    pub fn X509V3_EXT_free(
20776        nid: ::std::os::raw::c_int,
20777        ext_data: *mut ::std::os::raw::c_void,
20778    ) -> ::std::os::raw::c_int;
20779}
20780extern "C" {
20781    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_i2d"]
20782    pub fn X509V3_EXT_i2d(
20783        ext_nid: ::std::os::raw::c_int,
20784        crit: ::std::os::raw::c_int,
20785        ext_struc: *mut ::std::os::raw::c_void,
20786    ) -> *mut X509_EXTENSION;
20787}
20788extern "C" {
20789    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_add1_i2d"]
20790    pub fn X509V3_add1_i2d(
20791        x: *mut *mut stack_st_X509_EXTENSION,
20792        nid: ::std::os::raw::c_int,
20793        value: *mut ::std::os::raw::c_void,
20794        crit: ::std::os::raw::c_int,
20795        flags: ::std::os::raw::c_ulong,
20796    ) -> ::std::os::raw::c_int;
20797}
20798#[repr(C)]
20799#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20800pub struct otherName_st {
20801    pub type_id: *mut ASN1_OBJECT,
20802    pub value: *mut ASN1_TYPE,
20803}
20804#[test]
20805fn bindgen_test_layout_otherName_st() {
20806    const UNINIT: ::std::mem::MaybeUninit<otherName_st> = ::std::mem::MaybeUninit::uninit();
20807    let ptr = UNINIT.as_ptr();
20808    assert_eq!(
20809        ::std::mem::size_of::<otherName_st>(),
20810        16usize,
20811        "Size of otherName_st"
20812    );
20813    assert_eq!(
20814        ::std::mem::align_of::<otherName_st>(),
20815        8usize,
20816        "Alignment of otherName_st"
20817    );
20818    assert_eq!(
20819        unsafe { ::std::ptr::addr_of!((*ptr).type_id) as usize - ptr as usize },
20820        0usize,
20821        "Offset of field: otherName_st::type_id"
20822    );
20823    assert_eq!(
20824        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
20825        8usize,
20826        "Offset of field: otherName_st::value"
20827    );
20828}
20829impl Default for otherName_st {
20830    fn default() -> Self {
20831        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20832        unsafe {
20833            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20834            s.assume_init()
20835        }
20836    }
20837}
20838pub type OTHERNAME = otherName_st;
20839#[repr(C)]
20840#[derive(Debug, Copy, Clone, PartialEq, Eq)]
20841pub struct EDIPartyName_st {
20842    pub nameAssigner: *mut ASN1_STRING,
20843    pub partyName: *mut ASN1_STRING,
20844}
20845#[test]
20846fn bindgen_test_layout_EDIPartyName_st() {
20847    const UNINIT: ::std::mem::MaybeUninit<EDIPartyName_st> = ::std::mem::MaybeUninit::uninit();
20848    let ptr = UNINIT.as_ptr();
20849    assert_eq!(
20850        ::std::mem::size_of::<EDIPartyName_st>(),
20851        16usize,
20852        "Size of EDIPartyName_st"
20853    );
20854    assert_eq!(
20855        ::std::mem::align_of::<EDIPartyName_st>(),
20856        8usize,
20857        "Alignment of EDIPartyName_st"
20858    );
20859    assert_eq!(
20860        unsafe { ::std::ptr::addr_of!((*ptr).nameAssigner) as usize - ptr as usize },
20861        0usize,
20862        "Offset of field: EDIPartyName_st::nameAssigner"
20863    );
20864    assert_eq!(
20865        unsafe { ::std::ptr::addr_of!((*ptr).partyName) as usize - ptr as usize },
20866        8usize,
20867        "Offset of field: EDIPartyName_st::partyName"
20868    );
20869}
20870impl Default for EDIPartyName_st {
20871    fn default() -> Self {
20872        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20873        unsafe {
20874            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20875            s.assume_init()
20876        }
20877    }
20878}
20879pub type EDIPARTYNAME = EDIPartyName_st;
20880#[repr(C)]
20881#[derive(Copy, Clone)]
20882pub struct GENERAL_NAME_st {
20883    pub type_: ::std::os::raw::c_int,
20884    pub d: GENERAL_NAME_st__bindgen_ty_1,
20885}
20886#[repr(C)]
20887#[derive(Copy, Clone)]
20888pub union GENERAL_NAME_st__bindgen_ty_1 {
20889    pub ptr: *mut ::std::os::raw::c_char,
20890    pub otherName: *mut OTHERNAME,
20891    pub rfc822Name: *mut ASN1_IA5STRING,
20892    pub dNSName: *mut ASN1_IA5STRING,
20893    pub x400Address: *mut ASN1_STRING,
20894    pub directoryName: *mut X509_NAME,
20895    pub ediPartyName: *mut EDIPARTYNAME,
20896    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
20897    pub iPAddress: *mut ASN1_OCTET_STRING,
20898    pub registeredID: *mut ASN1_OBJECT,
20899    pub ip: *mut ASN1_OCTET_STRING,
20900    pub dirn: *mut X509_NAME,
20901    pub ia5: *mut ASN1_IA5STRING,
20902    pub rid: *mut ASN1_OBJECT,
20903}
20904#[test]
20905fn bindgen_test_layout_GENERAL_NAME_st__bindgen_ty_1() {
20906    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st__bindgen_ty_1> =
20907        ::std::mem::MaybeUninit::uninit();
20908    let ptr = UNINIT.as_ptr();
20909    assert_eq!(
20910        ::std::mem::size_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20911        8usize,
20912        "Size of GENERAL_NAME_st__bindgen_ty_1"
20913    );
20914    assert_eq!(
20915        ::std::mem::align_of::<GENERAL_NAME_st__bindgen_ty_1>(),
20916        8usize,
20917        "Alignment of GENERAL_NAME_st__bindgen_ty_1"
20918    );
20919    assert_eq!(
20920        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
20921        0usize,
20922        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ptr"
20923    );
20924    assert_eq!(
20925        unsafe { ::std::ptr::addr_of!((*ptr).otherName) as usize - ptr as usize },
20926        0usize,
20927        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::otherName"
20928    );
20929    assert_eq!(
20930        unsafe { ::std::ptr::addr_of!((*ptr).rfc822Name) as usize - ptr as usize },
20931        0usize,
20932        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rfc822Name"
20933    );
20934    assert_eq!(
20935        unsafe { ::std::ptr::addr_of!((*ptr).dNSName) as usize - ptr as usize },
20936        0usize,
20937        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dNSName"
20938    );
20939    assert_eq!(
20940        unsafe { ::std::ptr::addr_of!((*ptr).x400Address) as usize - ptr as usize },
20941        0usize,
20942        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::x400Address"
20943    );
20944    assert_eq!(
20945        unsafe { ::std::ptr::addr_of!((*ptr).directoryName) as usize - ptr as usize },
20946        0usize,
20947        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::directoryName"
20948    );
20949    assert_eq!(
20950        unsafe { ::std::ptr::addr_of!((*ptr).ediPartyName) as usize - ptr as usize },
20951        0usize,
20952        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ediPartyName"
20953    );
20954    assert_eq!(
20955        unsafe { ::std::ptr::addr_of!((*ptr).uniformResourceIdentifier) as usize - ptr as usize },
20956        0usize,
20957        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::uniformResourceIdentifier"
20958    );
20959    assert_eq!(
20960        unsafe { ::std::ptr::addr_of!((*ptr).iPAddress) as usize - ptr as usize },
20961        0usize,
20962        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::iPAddress"
20963    );
20964    assert_eq!(
20965        unsafe { ::std::ptr::addr_of!((*ptr).registeredID) as usize - ptr as usize },
20966        0usize,
20967        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::registeredID"
20968    );
20969    assert_eq!(
20970        unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize },
20971        0usize,
20972        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ip"
20973    );
20974    assert_eq!(
20975        unsafe { ::std::ptr::addr_of!((*ptr).dirn) as usize - ptr as usize },
20976        0usize,
20977        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::dirn"
20978    );
20979    assert_eq!(
20980        unsafe { ::std::ptr::addr_of!((*ptr).ia5) as usize - ptr as usize },
20981        0usize,
20982        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::ia5"
20983    );
20984    assert_eq!(
20985        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
20986        0usize,
20987        "Offset of field: GENERAL_NAME_st__bindgen_ty_1::rid"
20988    );
20989}
20990impl Default for GENERAL_NAME_st__bindgen_ty_1 {
20991    fn default() -> Self {
20992        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
20993        unsafe {
20994            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
20995            s.assume_init()
20996        }
20997    }
20998}
20999#[test]
21000fn bindgen_test_layout_GENERAL_NAME_st() {
21001    const UNINIT: ::std::mem::MaybeUninit<GENERAL_NAME_st> = ::std::mem::MaybeUninit::uninit();
21002    let ptr = UNINIT.as_ptr();
21003    assert_eq!(
21004        ::std::mem::size_of::<GENERAL_NAME_st>(),
21005        16usize,
21006        "Size of GENERAL_NAME_st"
21007    );
21008    assert_eq!(
21009        ::std::mem::align_of::<GENERAL_NAME_st>(),
21010        8usize,
21011        "Alignment of GENERAL_NAME_st"
21012    );
21013    assert_eq!(
21014        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
21015        0usize,
21016        "Offset of field: GENERAL_NAME_st::type_"
21017    );
21018    assert_eq!(
21019        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
21020        8usize,
21021        "Offset of field: GENERAL_NAME_st::d"
21022    );
21023}
21024impl Default for GENERAL_NAME_st {
21025    fn default() -> Self {
21026        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21027        unsafe {
21028            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21029            s.assume_init()
21030        }
21031    }
21032}
21033extern "C" {
21034    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_new"]
21035    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
21036}
21037extern "C" {
21038    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_free"]
21039    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
21040}
21041extern "C" {
21042    #[link_name = "\u{1}aws_lc_0_40_0_d2i_GENERAL_NAME"]
21043    pub fn d2i_GENERAL_NAME(
21044        out: *mut *mut GENERAL_NAME,
21045        inp: *mut *const u8,
21046        len: ::std::os::raw::c_long,
21047    ) -> *mut GENERAL_NAME;
21048}
21049extern "C" {
21050    #[link_name = "\u{1}aws_lc_0_40_0_i2d_GENERAL_NAME"]
21051    pub fn i2d_GENERAL_NAME(in_: *mut GENERAL_NAME, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21052}
21053extern "C" {
21054    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_dup"]
21055    pub fn GENERAL_NAME_dup(gen_: *mut GENERAL_NAME) -> *mut GENERAL_NAME;
21056}
21057extern "C" {
21058    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAMES_new"]
21059    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
21060}
21061extern "C" {
21062    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAMES_free"]
21063    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
21064}
21065extern "C" {
21066    #[link_name = "\u{1}aws_lc_0_40_0_d2i_GENERAL_NAMES"]
21067    pub fn d2i_GENERAL_NAMES(
21068        out: *mut *mut GENERAL_NAMES,
21069        inp: *mut *const u8,
21070        len: ::std::os::raw::c_long,
21071    ) -> *mut GENERAL_NAMES;
21072}
21073extern "C" {
21074    #[link_name = "\u{1}aws_lc_0_40_0_i2d_GENERAL_NAMES"]
21075    pub fn i2d_GENERAL_NAMES(in_: *mut GENERAL_NAMES, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21076}
21077extern "C" {
21078    #[link_name = "\u{1}aws_lc_0_40_0_OTHERNAME_new"]
21079    pub fn OTHERNAME_new() -> *mut OTHERNAME;
21080}
21081extern "C" {
21082    #[link_name = "\u{1}aws_lc_0_40_0_OTHERNAME_free"]
21083    pub fn OTHERNAME_free(name: *mut OTHERNAME);
21084}
21085extern "C" {
21086    #[link_name = "\u{1}aws_lc_0_40_0_EDIPARTYNAME_new"]
21087    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
21088}
21089extern "C" {
21090    #[link_name = "\u{1}aws_lc_0_40_0_EDIPARTYNAME_free"]
21091    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
21092}
21093extern "C" {
21094    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_set0_value"]
21095    pub fn GENERAL_NAME_set0_value(
21096        gen_: *mut GENERAL_NAME,
21097        type_: ::std::os::raw::c_int,
21098        value: *mut ::std::os::raw::c_void,
21099    );
21100}
21101extern "C" {
21102    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_get0_value"]
21103    pub fn GENERAL_NAME_get0_value(
21104        gen_: *const GENERAL_NAME,
21105        out_type: *mut ::std::os::raw::c_int,
21106    ) -> *mut ::std::os::raw::c_void;
21107}
21108extern "C" {
21109    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_set0_othername"]
21110    pub fn GENERAL_NAME_set0_othername(
21111        gen_: *mut GENERAL_NAME,
21112        oid: *mut ASN1_OBJECT,
21113        value: *mut ASN1_TYPE,
21114    ) -> ::std::os::raw::c_int;
21115}
21116extern "C" {
21117    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_get0_otherName"]
21118    pub fn GENERAL_NAME_get0_otherName(
21119        gen_: *const GENERAL_NAME,
21120        out_oid: *mut *mut ASN1_OBJECT,
21121        out_value: *mut *mut ASN1_TYPE,
21122    ) -> ::std::os::raw::c_int;
21123}
21124#[repr(C)]
21125#[derive(Debug, Copy, Clone)]
21126pub struct stack_st_X509_ALGOR {
21127    _unused: [u8; 0],
21128}
21129pub type sk_X509_ALGOR_free_func =
21130    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
21131pub type sk_X509_ALGOR_copy_func =
21132    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
21133pub type sk_X509_ALGOR_cmp_func = ::std::option::Option<
21134    unsafe extern "C" fn(
21135        arg1: *const *const X509_ALGOR,
21136        arg2: *const *const X509_ALGOR,
21137    ) -> ::std::os::raw::c_int,
21138>;
21139pub type sk_X509_ALGOR_delete_if_func = ::std::option::Option<
21140    unsafe extern "C" fn(
21141        arg1: *mut X509_ALGOR,
21142        arg2: *mut ::std::os::raw::c_void,
21143    ) -> ::std::os::raw::c_int,
21144>;
21145extern "C" {
21146    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_it"]
21147    pub static X509_ALGOR_it: ASN1_ITEM;
21148}
21149extern "C" {
21150    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_new"]
21151    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
21152}
21153extern "C" {
21154    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_dup"]
21155    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
21156}
21157extern "C" {
21158    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_free"]
21159    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
21160}
21161extern "C" {
21162    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_ALGOR"]
21163    pub fn d2i_X509_ALGOR(
21164        out: *mut *mut X509_ALGOR,
21165        inp: *mut *const u8,
21166        len: ::std::os::raw::c_long,
21167    ) -> *mut X509_ALGOR;
21168}
21169extern "C" {
21170    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_ALGOR"]
21171    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::std::os::raw::c_int;
21172}
21173extern "C" {
21174    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_set0"]
21175    pub fn X509_ALGOR_set0(
21176        alg: *mut X509_ALGOR,
21177        obj: *mut ASN1_OBJECT,
21178        param_type: ::std::os::raw::c_int,
21179        param_value: *mut ::std::os::raw::c_void,
21180    ) -> ::std::os::raw::c_int;
21181}
21182extern "C" {
21183    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_get0"]
21184    pub fn X509_ALGOR_get0(
21185        out_obj: *mut *const ASN1_OBJECT,
21186        out_param_type: *mut ::std::os::raw::c_int,
21187        out_param_value: *mut *const ::std::os::raw::c_void,
21188        alg: *const X509_ALGOR,
21189    );
21190}
21191extern "C" {
21192    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_set_md"]
21193    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::std::os::raw::c_int;
21194}
21195extern "C" {
21196    #[link_name = "\u{1}aws_lc_0_40_0_X509_ALGOR_cmp"]
21197    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::std::os::raw::c_int;
21198}
21199#[repr(C)]
21200#[derive(Debug, Copy, Clone)]
21201pub struct stack_st_X509_ATTRIBUTE {
21202    _unused: [u8; 0],
21203}
21204pub type sk_X509_ATTRIBUTE_free_func =
21205    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
21206pub type sk_X509_ATTRIBUTE_copy_func =
21207    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE>;
21208pub type sk_X509_ATTRIBUTE_cmp_func = ::std::option::Option<
21209    unsafe extern "C" fn(
21210        arg1: *const *const X509_ATTRIBUTE,
21211        arg2: *const *const X509_ATTRIBUTE,
21212    ) -> ::std::os::raw::c_int,
21213>;
21214pub type sk_X509_ATTRIBUTE_delete_if_func = ::std::option::Option<
21215    unsafe extern "C" fn(
21216        arg1: *mut X509_ATTRIBUTE,
21217        arg2: *mut ::std::os::raw::c_void,
21218    ) -> ::std::os::raw::c_int,
21219>;
21220extern "C" {
21221    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_it"]
21222    pub static X509_ATTRIBUTE_it: ASN1_ITEM;
21223}
21224extern "C" {
21225    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_new"]
21226    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
21227}
21228extern "C" {
21229    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_dup"]
21230    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
21231}
21232extern "C" {
21233    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_free"]
21234    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
21235}
21236extern "C" {
21237    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_ATTRIBUTE"]
21238    pub fn d2i_X509_ATTRIBUTE(
21239        out: *mut *mut X509_ATTRIBUTE,
21240        inp: *mut *const u8,
21241        len: ::std::os::raw::c_long,
21242    ) -> *mut X509_ATTRIBUTE;
21243}
21244extern "C" {
21245    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_ATTRIBUTE"]
21246    pub fn i2d_X509_ATTRIBUTE(
21247        alg: *const X509_ATTRIBUTE,
21248        outp: *mut *mut u8,
21249    ) -> ::std::os::raw::c_int;
21250}
21251extern "C" {
21252    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_create"]
21253    pub fn X509_ATTRIBUTE_create(
21254        nid: ::std::os::raw::c_int,
21255        attrtype: ::std::os::raw::c_int,
21256        value: *mut ::std::os::raw::c_void,
21257    ) -> *mut X509_ATTRIBUTE;
21258}
21259extern "C" {
21260    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_create_by_NID"]
21261    pub fn X509_ATTRIBUTE_create_by_NID(
21262        attr: *mut *mut X509_ATTRIBUTE,
21263        nid: ::std::os::raw::c_int,
21264        attrtype: ::std::os::raw::c_int,
21265        data: *const ::std::os::raw::c_void,
21266        len: ::std::os::raw::c_int,
21267    ) -> *mut X509_ATTRIBUTE;
21268}
21269extern "C" {
21270    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_create_by_OBJ"]
21271    pub fn X509_ATTRIBUTE_create_by_OBJ(
21272        attr: *mut *mut X509_ATTRIBUTE,
21273        obj: *const ASN1_OBJECT,
21274        attrtype: ::std::os::raw::c_int,
21275        data: *const ::std::os::raw::c_void,
21276        len: ::std::os::raw::c_int,
21277    ) -> *mut X509_ATTRIBUTE;
21278}
21279extern "C" {
21280    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_create_by_txt"]
21281    pub fn X509_ATTRIBUTE_create_by_txt(
21282        attr: *mut *mut X509_ATTRIBUTE,
21283        attrname: *const ::std::os::raw::c_char,
21284        type_: ::std::os::raw::c_int,
21285        bytes: *const ::std::os::raw::c_uchar,
21286        len: ::std::os::raw::c_int,
21287    ) -> *mut X509_ATTRIBUTE;
21288}
21289extern "C" {
21290    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_set1_object"]
21291    pub fn X509_ATTRIBUTE_set1_object(
21292        attr: *mut X509_ATTRIBUTE,
21293        obj: *const ASN1_OBJECT,
21294    ) -> ::std::os::raw::c_int;
21295}
21296extern "C" {
21297    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_set1_data"]
21298    pub fn X509_ATTRIBUTE_set1_data(
21299        attr: *mut X509_ATTRIBUTE,
21300        attrtype: ::std::os::raw::c_int,
21301        data: *const ::std::os::raw::c_void,
21302        len: ::std::os::raw::c_int,
21303    ) -> ::std::os::raw::c_int;
21304}
21305extern "C" {
21306    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_get0_data"]
21307    pub fn X509_ATTRIBUTE_get0_data(
21308        attr: *mut X509_ATTRIBUTE,
21309        idx: ::std::os::raw::c_int,
21310        attrtype: ::std::os::raw::c_int,
21311        unused: *mut ::std::os::raw::c_void,
21312    ) -> *mut ::std::os::raw::c_void;
21313}
21314extern "C" {
21315    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_count"]
21316    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::std::os::raw::c_int;
21317}
21318extern "C" {
21319    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_get0_object"]
21320    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
21321}
21322extern "C" {
21323    #[link_name = "\u{1}aws_lc_0_40_0_X509_ATTRIBUTE_get0_type"]
21324    pub fn X509_ATTRIBUTE_get0_type(
21325        attr: *mut X509_ATTRIBUTE,
21326        idx: ::std::os::raw::c_int,
21327    ) -> *mut ASN1_TYPE;
21328}
21329extern "C" {
21330    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_new"]
21331    pub fn X509_STORE_new() -> *mut X509_STORE;
21332}
21333extern "C" {
21334    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_up_ref"]
21335    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21336}
21337extern "C" {
21338    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_free"]
21339    pub fn X509_STORE_free(store: *mut X509_STORE);
21340}
21341extern "C" {
21342    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_add_cert"]
21343    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::std::os::raw::c_int;
21344}
21345extern "C" {
21346    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_add_crl"]
21347    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
21348}
21349extern "C" {
21350    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get0_param"]
21351    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
21352}
21353extern "C" {
21354    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set1_param"]
21355    pub fn X509_STORE_set1_param(
21356        store: *mut X509_STORE,
21357        param: *const X509_VERIFY_PARAM,
21358    ) -> ::std::os::raw::c_int;
21359}
21360extern "C" {
21361    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_flags"]
21362    pub fn X509_STORE_set_flags(
21363        store: *mut X509_STORE,
21364        flags: ::std::os::raw::c_ulong,
21365    ) -> ::std::os::raw::c_int;
21366}
21367extern "C" {
21368    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_depth"]
21369    pub fn X509_STORE_set_depth(
21370        store: *mut X509_STORE,
21371        depth: ::std::os::raw::c_int,
21372    ) -> ::std::os::raw::c_int;
21373}
21374extern "C" {
21375    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_purpose"]
21376    pub fn X509_STORE_set_purpose(
21377        store: *mut X509_STORE,
21378        purpose: ::std::os::raw::c_int,
21379    ) -> ::std::os::raw::c_int;
21380}
21381extern "C" {
21382    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_trust"]
21383    pub fn X509_STORE_set_trust(
21384        store: *mut X509_STORE,
21385        trust: ::std::os::raw::c_int,
21386    ) -> ::std::os::raw::c_int;
21387}
21388#[repr(C)]
21389#[derive(Debug, Copy, Clone)]
21390pub struct stack_st_X509_OBJECT {
21391    _unused: [u8; 0],
21392}
21393pub type sk_X509_OBJECT_free_func =
21394    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
21395pub type sk_X509_OBJECT_copy_func =
21396    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
21397pub type sk_X509_OBJECT_cmp_func = ::std::option::Option<
21398    unsafe extern "C" fn(
21399        arg1: *const *const X509_OBJECT,
21400        arg2: *const *const X509_OBJECT,
21401    ) -> ::std::os::raw::c_int,
21402>;
21403pub type sk_X509_OBJECT_delete_if_func = ::std::option::Option<
21404    unsafe extern "C" fn(
21405        arg1: *mut X509_OBJECT,
21406        arg2: *mut ::std::os::raw::c_void,
21407    ) -> ::std::os::raw::c_int,
21408>;
21409extern "C" {
21410    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_new"]
21411    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
21412}
21413extern "C" {
21414    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_free"]
21415    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
21416}
21417extern "C" {
21418    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_get_type"]
21419    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::std::os::raw::c_int;
21420}
21421extern "C" {
21422    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_get0_X509"]
21423    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
21424}
21425pub type X509_STORE_CTX_lookup_crls_fn = ::std::option::Option<
21426    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, nm: *mut X509_NAME) -> *mut stack_st_X509_CRL,
21427>;
21428extern "C" {
21429    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get_lookup_crls"]
21430    pub fn X509_STORE_get_lookup_crls(ctx: *mut X509_STORE) -> X509_STORE_CTX_lookup_crls_fn;
21431}
21432extern "C" {
21433    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_lookup_crls"]
21434    pub fn X509_STORE_set_lookup_crls(
21435        ctx: *mut X509_STORE,
21436        lookup_crls: X509_STORE_CTX_lookup_crls_fn,
21437    );
21438}
21439extern "C" {
21440    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_new"]
21441    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
21442}
21443extern "C" {
21444    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_free"]
21445    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
21446}
21447extern "C" {
21448    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_init"]
21449    pub fn X509_STORE_CTX_init(
21450        ctx: *mut X509_STORE_CTX,
21451        store: *mut X509_STORE,
21452        x509: *mut X509,
21453        chain: *mut stack_st_X509,
21454    ) -> ::std::os::raw::c_int;
21455}
21456extern "C" {
21457    #[link_name = "\u{1}aws_lc_0_40_0_X509_verify_cert"]
21458    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21459}
21460extern "C" {
21461    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_chain"]
21462    pub fn X509_STORE_CTX_get0_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21463}
21464extern "C" {
21465    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get1_chain"]
21466    pub fn X509_STORE_CTX_get1_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21467}
21468extern "C" {
21469    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_cert"]
21470    pub fn X509_STORE_CTX_set_cert(c: *mut X509_STORE_CTX, x: *mut X509);
21471}
21472extern "C" {
21473    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_error"]
21474    pub fn X509_STORE_CTX_get_error(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21475}
21476extern "C" {
21477    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_error"]
21478    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::std::os::raw::c_int);
21479}
21480extern "C" {
21481    #[link_name = "\u{1}aws_lc_0_40_0_X509_verify_cert_error_string"]
21482    pub fn X509_verify_cert_error_string(
21483        err: ::std::os::raw::c_long,
21484    ) -> *const ::std::os::raw::c_char;
21485}
21486extern "C" {
21487    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_error_depth"]
21488    pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> ::std::os::raw::c_int;
21489}
21490extern "C" {
21491    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_current_cert"]
21492    pub fn X509_STORE_CTX_get_current_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21493}
21494extern "C" {
21495    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_current_issuer"]
21496    pub fn X509_STORE_CTX_get0_current_issuer(ctx: *mut X509_STORE_CTX) -> *mut X509;
21497}
21498extern "C" {
21499    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_current_crl"]
21500    pub fn X509_STORE_CTX_get0_current_crl(ctx: *mut X509_STORE_CTX) -> *mut X509_CRL;
21501}
21502extern "C" {
21503    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_store"]
21504    pub fn X509_STORE_CTX_get0_store(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE;
21505}
21506extern "C" {
21507    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_cert"]
21508    pub fn X509_STORE_CTX_get0_cert(ctx: *mut X509_STORE_CTX) -> *mut X509;
21509}
21510extern "C" {
21511    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_untrusted"]
21512    pub fn X509_STORE_CTX_get0_untrusted(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
21513}
21514extern "C" {
21515    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set0_trusted_stack"]
21516    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21517}
21518extern "C" {
21519    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set0_crls"]
21520    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21521}
21522extern "C" {
21523    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_default"]
21524    pub fn X509_STORE_CTX_set_default(
21525        ctx: *mut X509_STORE_CTX,
21526        name: *const ::std::os::raw::c_char,
21527    ) -> ::std::os::raw::c_int;
21528}
21529extern "C" {
21530    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_param"]
21531    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21532}
21533extern "C" {
21534    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set0_param"]
21535    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21536}
21537extern "C" {
21538    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_flags"]
21539    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::std::os::raw::c_ulong);
21540}
21541extern "C" {
21542    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_time"]
21543    pub fn X509_STORE_CTX_set_time(
21544        ctx: *mut X509_STORE_CTX,
21545        flags: ::std::os::raw::c_ulong,
21546        t: time_t,
21547    );
21548}
21549extern "C" {
21550    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_time_posix"]
21551    pub fn X509_STORE_CTX_set_time_posix(
21552        ctx: *mut X509_STORE_CTX,
21553        flags: ::std::os::raw::c_ulong,
21554        t: i64,
21555    );
21556}
21557extern "C" {
21558    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_depth"]
21559    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::std::os::raw::c_int);
21560}
21561extern "C" {
21562    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_purpose"]
21563    pub fn X509_STORE_CTX_set_purpose(
21564        ctx: *mut X509_STORE_CTX,
21565        purpose: ::std::os::raw::c_int,
21566    ) -> ::std::os::raw::c_int;
21567}
21568extern "C" {
21569    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_trust"]
21570    pub fn X509_STORE_CTX_set_trust(
21571        ctx: *mut X509_STORE_CTX,
21572        trust: ::std::os::raw::c_int,
21573    ) -> ::std::os::raw::c_int;
21574}
21575extern "C" {
21576    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_add_custom_crit_oid"]
21577    pub fn X509_STORE_CTX_add_custom_crit_oid(
21578        ctx: *mut X509_STORE_CTX,
21579        oid: *mut ASN1_OBJECT,
21580    ) -> ::std::os::raw::c_int;
21581}
21582pub type X509_STORE_CTX_verify_crit_oids_cb = ::std::option::Option<
21583    unsafe extern "C" fn(
21584        ctx: *mut X509_STORE_CTX,
21585        x509: *mut X509,
21586        oids: *mut stack_st_ASN1_OBJECT,
21587    ) -> ::std::os::raw::c_int,
21588>;
21589extern "C" {
21590    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_verify_crit_oids"]
21591    pub fn X509_STORE_CTX_set_verify_crit_oids(
21592        ctx: *mut X509_STORE_CTX,
21593        verify_custom_crit_oids: X509_STORE_CTX_verify_crit_oids_cb,
21594    );
21595}
21596extern "C" {
21597    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_new"]
21598    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21599}
21600extern "C" {
21601    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_free"]
21602    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21603}
21604extern "C" {
21605    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_inherit"]
21606    pub fn X509_VERIFY_PARAM_inherit(
21607        to: *mut X509_VERIFY_PARAM,
21608        from: *const X509_VERIFY_PARAM,
21609    ) -> ::std::os::raw::c_int;
21610}
21611extern "C" {
21612    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1"]
21613    pub fn X509_VERIFY_PARAM_set1(
21614        to: *mut X509_VERIFY_PARAM,
21615        from: *const X509_VERIFY_PARAM,
21616    ) -> ::std::os::raw::c_int;
21617}
21618extern "C" {
21619    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_flags"]
21620    pub fn X509_VERIFY_PARAM_set_flags(
21621        param: *mut X509_VERIFY_PARAM,
21622        flags: ::std::os::raw::c_ulong,
21623    ) -> ::std::os::raw::c_int;
21624}
21625extern "C" {
21626    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_clear_flags"]
21627    pub fn X509_VERIFY_PARAM_clear_flags(
21628        param: *mut X509_VERIFY_PARAM,
21629        flags: ::std::os::raw::c_ulong,
21630    ) -> ::std::os::raw::c_int;
21631}
21632extern "C" {
21633    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_get_flags"]
21634    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_ulong;
21635}
21636extern "C" {
21637    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_depth"]
21638    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::std::os::raw::c_int);
21639}
21640extern "C" {
21641    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_get_depth"]
21642    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::std::os::raw::c_int;
21643}
21644extern "C" {
21645    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_time"]
21646    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21647}
21648extern "C" {
21649    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_time_posix"]
21650    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21651}
21652extern "C" {
21653    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_add0_policy"]
21654    pub fn X509_VERIFY_PARAM_add0_policy(
21655        param: *mut X509_VERIFY_PARAM,
21656        policy: *mut ASN1_OBJECT,
21657    ) -> ::std::os::raw::c_int;
21658}
21659extern "C" {
21660    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1_policies"]
21661    pub fn X509_VERIFY_PARAM_set1_policies(
21662        param: *mut X509_VERIFY_PARAM,
21663        policies: *const stack_st_ASN1_OBJECT,
21664    ) -> ::std::os::raw::c_int;
21665}
21666extern "C" {
21667    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1_host"]
21668    pub fn X509_VERIFY_PARAM_set1_host(
21669        param: *mut X509_VERIFY_PARAM,
21670        name: *const ::std::os::raw::c_char,
21671        name_len: usize,
21672    ) -> ::std::os::raw::c_int;
21673}
21674extern "C" {
21675    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_add1_host"]
21676    pub fn X509_VERIFY_PARAM_add1_host(
21677        param: *mut X509_VERIFY_PARAM,
21678        name: *const ::std::os::raw::c_char,
21679        name_len: usize,
21680    ) -> ::std::os::raw::c_int;
21681}
21682extern "C" {
21683    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_hostflags"]
21684    pub fn X509_VERIFY_PARAM_set_hostflags(
21685        param: *mut X509_VERIFY_PARAM,
21686        flags: ::std::os::raw::c_uint,
21687    );
21688}
21689extern "C" {
21690    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_get_hostflags"]
21691    pub fn X509_VERIFY_PARAM_get_hostflags(
21692        param: *const X509_VERIFY_PARAM,
21693    ) -> ::std::os::raw::c_uint;
21694}
21695extern "C" {
21696    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1_email"]
21697    pub fn X509_VERIFY_PARAM_set1_email(
21698        param: *mut X509_VERIFY_PARAM,
21699        email: *const ::std::os::raw::c_char,
21700        email_len: usize,
21701    ) -> ::std::os::raw::c_int;
21702}
21703extern "C" {
21704    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1_ip"]
21705    pub fn X509_VERIFY_PARAM_set1_ip(
21706        param: *mut X509_VERIFY_PARAM,
21707        ip: *const u8,
21708        ip_len: usize,
21709    ) -> ::std::os::raw::c_int;
21710}
21711extern "C" {
21712    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set1_ip_asc"]
21713    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21714        param: *mut X509_VERIFY_PARAM,
21715        ipasc: *const ::std::os::raw::c_char,
21716    ) -> ::std::os::raw::c_int;
21717}
21718extern "C" {
21719    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_purpose"]
21720    pub fn X509_VERIFY_PARAM_set_purpose(
21721        param: *mut X509_VERIFY_PARAM,
21722        purpose: ::std::os::raw::c_int,
21723    ) -> ::std::os::raw::c_int;
21724}
21725extern "C" {
21726    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_set_trust"]
21727    pub fn X509_VERIFY_PARAM_set_trust(
21728        param: *mut X509_VERIFY_PARAM,
21729        trust: ::std::os::raw::c_int,
21730    ) -> ::std::os::raw::c_int;
21731}
21732extern "C" {
21733    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_enable_ec_key_explicit_params"]
21734    pub fn X509_VERIFY_PARAM_enable_ec_key_explicit_params(
21735        param: *mut X509_VERIFY_PARAM,
21736    ) -> ::std::os::raw::c_int;
21737}
21738extern "C" {
21739    #[link_name = "\u{1}aws_lc_0_40_0_X509_VERIFY_PARAM_disable_ec_key_explicit_params"]
21740    pub fn X509_VERIFY_PARAM_disable_ec_key_explicit_params(
21741        param: *mut X509_VERIFY_PARAM,
21742    ) -> ::std::os::raw::c_int;
21743}
21744extern "C" {
21745    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_load_locations"]
21746    pub fn X509_STORE_load_locations(
21747        store: *mut X509_STORE,
21748        file: *const ::std::os::raw::c_char,
21749        dir: *const ::std::os::raw::c_char,
21750    ) -> ::std::os::raw::c_int;
21751}
21752extern "C" {
21753    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_add_lookup"]
21754    pub fn X509_STORE_add_lookup(
21755        store: *mut X509_STORE,
21756        method: *const X509_LOOKUP_METHOD,
21757    ) -> *mut X509_LOOKUP;
21758}
21759extern "C" {
21760    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_hash_dir"]
21761    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21762}
21763extern "C" {
21764    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_file"]
21765    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21766}
21767extern "C" {
21768    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_load_file"]
21769    pub fn X509_LOOKUP_load_file(
21770        lookup: *mut X509_LOOKUP,
21771        file: *const ::std::os::raw::c_char,
21772        type_: ::std::os::raw::c_int,
21773    ) -> ::std::os::raw::c_int;
21774}
21775extern "C" {
21776    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_add_dir"]
21777    pub fn X509_LOOKUP_add_dir(
21778        lookup: *mut X509_LOOKUP,
21779        path: *const ::std::os::raw::c_char,
21780        type_: ::std::os::raw::c_int,
21781    ) -> ::std::os::raw::c_int;
21782}
21783extern "C" {
21784    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_ctrl"]
21785    pub fn X509_LOOKUP_ctrl(
21786        lookup: *mut X509_LOOKUP,
21787        cmd: ::std::os::raw::c_int,
21788        argc: *const ::std::os::raw::c_char,
21789        argl: ::std::os::raw::c_long,
21790        ret: *mut *mut ::std::os::raw::c_char,
21791    ) -> ::std::os::raw::c_int;
21792}
21793extern "C" {
21794    #[link_name = "\u{1}aws_lc_0_40_0_X509_load_cert_file"]
21795    pub fn X509_load_cert_file(
21796        lookup: *mut X509_LOOKUP,
21797        file: *const ::std::os::raw::c_char,
21798        type_: ::std::os::raw::c_int,
21799    ) -> ::std::os::raw::c_int;
21800}
21801extern "C" {
21802    #[link_name = "\u{1}aws_lc_0_40_0_X509_load_crl_file"]
21803    pub fn X509_load_crl_file(
21804        lookup: *mut X509_LOOKUP,
21805        file: *const ::std::os::raw::c_char,
21806        type_: ::std::os::raw::c_int,
21807    ) -> ::std::os::raw::c_int;
21808}
21809extern "C" {
21810    #[link_name = "\u{1}aws_lc_0_40_0_X509_load_cert_crl_file"]
21811    pub fn X509_load_cert_crl_file(
21812        lookup: *mut X509_LOOKUP,
21813        file: *const ::std::os::raw::c_char,
21814        type_: ::std::os::raw::c_int,
21815    ) -> ::std::os::raw::c_int;
21816}
21817extern "C" {
21818    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_hash"]
21819    pub fn X509_NAME_hash(name: *mut X509_NAME) -> u32;
21820}
21821extern "C" {
21822    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_hash_old"]
21823    pub fn X509_NAME_hash_old(name: *mut X509_NAME) -> u32;
21824}
21825extern "C" {
21826    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_default_paths"]
21827    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::std::os::raw::c_int;
21828}
21829extern "C" {
21830    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_cert_area"]
21831    pub fn X509_get_default_cert_area() -> *const ::std::os::raw::c_char;
21832}
21833extern "C" {
21834    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_cert_dir"]
21835    pub fn X509_get_default_cert_dir() -> *const ::std::os::raw::c_char;
21836}
21837extern "C" {
21838    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_cert_file"]
21839    pub fn X509_get_default_cert_file() -> *const ::std::os::raw::c_char;
21840}
21841extern "C" {
21842    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_private_dir"]
21843    pub fn X509_get_default_private_dir() -> *const ::std::os::raw::c_char;
21844}
21845extern "C" {
21846    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_cert_dir_env"]
21847    pub fn X509_get_default_cert_dir_env() -> *const ::std::os::raw::c_char;
21848}
21849extern "C" {
21850    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_default_cert_file_env"]
21851    pub fn X509_get_default_cert_file_env() -> *const ::std::os::raw::c_char;
21852}
21853#[repr(C)]
21854#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21855pub struct Netscape_spki_st {
21856    pub spkac: *mut NETSCAPE_SPKAC,
21857    pub sig_algor: *mut X509_ALGOR,
21858    pub signature: *mut ASN1_BIT_STRING,
21859}
21860#[test]
21861fn bindgen_test_layout_Netscape_spki_st() {
21862    const UNINIT: ::std::mem::MaybeUninit<Netscape_spki_st> = ::std::mem::MaybeUninit::uninit();
21863    let ptr = UNINIT.as_ptr();
21864    assert_eq!(
21865        ::std::mem::size_of::<Netscape_spki_st>(),
21866        24usize,
21867        "Size of Netscape_spki_st"
21868    );
21869    assert_eq!(
21870        ::std::mem::align_of::<Netscape_spki_st>(),
21871        8usize,
21872        "Alignment of Netscape_spki_st"
21873    );
21874    assert_eq!(
21875        unsafe { ::std::ptr::addr_of!((*ptr).spkac) as usize - ptr as usize },
21876        0usize,
21877        "Offset of field: Netscape_spki_st::spkac"
21878    );
21879    assert_eq!(
21880        unsafe { ::std::ptr::addr_of!((*ptr).sig_algor) as usize - ptr as usize },
21881        8usize,
21882        "Offset of field: Netscape_spki_st::sig_algor"
21883    );
21884    assert_eq!(
21885        unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize },
21886        16usize,
21887        "Offset of field: Netscape_spki_st::signature"
21888    );
21889}
21890impl Default for Netscape_spki_st {
21891    fn default() -> Self {
21892        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21893        unsafe {
21894            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21895            s.assume_init()
21896        }
21897    }
21898}
21899extern "C" {
21900    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_it"]
21901    pub static NETSCAPE_SPKI_it: ASN1_ITEM;
21902}
21903extern "C" {
21904    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_new"]
21905    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21906}
21907extern "C" {
21908    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_free"]
21909    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21910}
21911extern "C" {
21912    #[link_name = "\u{1}aws_lc_0_40_0_d2i_NETSCAPE_SPKI"]
21913    pub fn d2i_NETSCAPE_SPKI(
21914        out: *mut *mut NETSCAPE_SPKI,
21915        inp: *mut *const u8,
21916        len: ::std::os::raw::c_long,
21917    ) -> *mut NETSCAPE_SPKI;
21918}
21919extern "C" {
21920    #[link_name = "\u{1}aws_lc_0_40_0_i2d_NETSCAPE_SPKI"]
21921    pub fn i2d_NETSCAPE_SPKI(
21922        spki: *const NETSCAPE_SPKI,
21923        outp: *mut *mut u8,
21924    ) -> ::std::os::raw::c_int;
21925}
21926extern "C" {
21927    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_verify"]
21928    pub fn NETSCAPE_SPKI_verify(
21929        spki: *mut NETSCAPE_SPKI,
21930        pkey: *mut EVP_PKEY,
21931    ) -> ::std::os::raw::c_int;
21932}
21933extern "C" {
21934    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_b64_decode"]
21935    pub fn NETSCAPE_SPKI_b64_decode(
21936        str_: *const ::std::os::raw::c_char,
21937        len: ossl_ssize_t,
21938    ) -> *mut NETSCAPE_SPKI;
21939}
21940extern "C" {
21941    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_b64_encode"]
21942    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::std::os::raw::c_char;
21943}
21944extern "C" {
21945    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_get_pubkey"]
21946    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21947}
21948extern "C" {
21949    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_set_pubkey"]
21950    pub fn NETSCAPE_SPKI_set_pubkey(
21951        spki: *mut NETSCAPE_SPKI,
21952        pkey: *mut EVP_PKEY,
21953    ) -> ::std::os::raw::c_int;
21954}
21955extern "C" {
21956    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_sign"]
21957    pub fn NETSCAPE_SPKI_sign(
21958        spki: *mut NETSCAPE_SPKI,
21959        pkey: *mut EVP_PKEY,
21960        md: *const EVP_MD,
21961    ) -> ::std::os::raw::c_int;
21962}
21963#[repr(C)]
21964#[derive(Debug, Copy, Clone, PartialEq, Eq)]
21965pub struct Netscape_spkac_st {
21966    pub pubkey: *mut X509_PUBKEY,
21967    pub challenge: *mut ASN1_IA5STRING,
21968}
21969#[test]
21970fn bindgen_test_layout_Netscape_spkac_st() {
21971    const UNINIT: ::std::mem::MaybeUninit<Netscape_spkac_st> = ::std::mem::MaybeUninit::uninit();
21972    let ptr = UNINIT.as_ptr();
21973    assert_eq!(
21974        ::std::mem::size_of::<Netscape_spkac_st>(),
21975        16usize,
21976        "Size of Netscape_spkac_st"
21977    );
21978    assert_eq!(
21979        ::std::mem::align_of::<Netscape_spkac_st>(),
21980        8usize,
21981        "Alignment of Netscape_spkac_st"
21982    );
21983    assert_eq!(
21984        unsafe { ::std::ptr::addr_of!((*ptr).pubkey) as usize - ptr as usize },
21985        0usize,
21986        "Offset of field: Netscape_spkac_st::pubkey"
21987    );
21988    assert_eq!(
21989        unsafe { ::std::ptr::addr_of!((*ptr).challenge) as usize - ptr as usize },
21990        8usize,
21991        "Offset of field: Netscape_spkac_st::challenge"
21992    );
21993}
21994impl Default for Netscape_spkac_st {
21995    fn default() -> Self {
21996        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
21997        unsafe {
21998            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
21999            s.assume_init()
22000        }
22001    }
22002}
22003extern "C" {
22004    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKAC_it"]
22005    pub static NETSCAPE_SPKAC_it: ASN1_ITEM;
22006}
22007extern "C" {
22008    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKAC_new"]
22009    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
22010}
22011extern "C" {
22012    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKAC_free"]
22013    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
22014}
22015extern "C" {
22016    #[link_name = "\u{1}aws_lc_0_40_0_d2i_NETSCAPE_SPKAC"]
22017    pub fn d2i_NETSCAPE_SPKAC(
22018        out: *mut *mut NETSCAPE_SPKAC,
22019        inp: *mut *const u8,
22020        len: ::std::os::raw::c_long,
22021    ) -> *mut NETSCAPE_SPKAC;
22022}
22023extern "C" {
22024    #[link_name = "\u{1}aws_lc_0_40_0_i2d_NETSCAPE_SPKAC"]
22025    pub fn i2d_NETSCAPE_SPKAC(
22026        spkac: *const NETSCAPE_SPKAC,
22027        outp: *mut *mut u8,
22028    ) -> ::std::os::raw::c_int;
22029}
22030extern "C" {
22031    #[link_name = "\u{1}aws_lc_0_40_0_NETSCAPE_SPKI_print"]
22032    pub fn NETSCAPE_SPKI_print(out: *mut BIO, spki: *mut NETSCAPE_SPKI) -> ::std::os::raw::c_int;
22033}
22034#[repr(C)]
22035#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22036pub struct rsa_pss_params_st {
22037    pub hashAlgorithm: *mut X509_ALGOR,
22038    pub maskGenAlgorithm: *mut X509_ALGOR,
22039    pub saltLength: *mut ASN1_INTEGER,
22040    pub trailerField: *mut ASN1_INTEGER,
22041    pub maskHash: *mut X509_ALGOR,
22042}
22043#[test]
22044fn bindgen_test_layout_rsa_pss_params_st() {
22045    const UNINIT: ::std::mem::MaybeUninit<rsa_pss_params_st> = ::std::mem::MaybeUninit::uninit();
22046    let ptr = UNINIT.as_ptr();
22047    assert_eq!(
22048        ::std::mem::size_of::<rsa_pss_params_st>(),
22049        40usize,
22050        "Size of rsa_pss_params_st"
22051    );
22052    assert_eq!(
22053        ::std::mem::align_of::<rsa_pss_params_st>(),
22054        8usize,
22055        "Alignment of rsa_pss_params_st"
22056    );
22057    assert_eq!(
22058        unsafe { ::std::ptr::addr_of!((*ptr).hashAlgorithm) as usize - ptr as usize },
22059        0usize,
22060        "Offset of field: rsa_pss_params_st::hashAlgorithm"
22061    );
22062    assert_eq!(
22063        unsafe { ::std::ptr::addr_of!((*ptr).maskGenAlgorithm) as usize - ptr as usize },
22064        8usize,
22065        "Offset of field: rsa_pss_params_st::maskGenAlgorithm"
22066    );
22067    assert_eq!(
22068        unsafe { ::std::ptr::addr_of!((*ptr).saltLength) as usize - ptr as usize },
22069        16usize,
22070        "Offset of field: rsa_pss_params_st::saltLength"
22071    );
22072    assert_eq!(
22073        unsafe { ::std::ptr::addr_of!((*ptr).trailerField) as usize - ptr as usize },
22074        24usize,
22075        "Offset of field: rsa_pss_params_st::trailerField"
22076    );
22077    assert_eq!(
22078        unsafe { ::std::ptr::addr_of!((*ptr).maskHash) as usize - ptr as usize },
22079        32usize,
22080        "Offset of field: rsa_pss_params_st::maskHash"
22081    );
22082}
22083impl Default for rsa_pss_params_st {
22084    fn default() -> Self {
22085        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22086        unsafe {
22087            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22088            s.assume_init()
22089        }
22090    }
22091}
22092extern "C" {
22093    #[link_name = "\u{1}aws_lc_0_40_0_RSA_PSS_PARAMS_it"]
22094    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
22095}
22096extern "C" {
22097    #[link_name = "\u{1}aws_lc_0_40_0_RSA_PSS_PARAMS_new"]
22098    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
22099}
22100extern "C" {
22101    #[link_name = "\u{1}aws_lc_0_40_0_RSA_PSS_PARAMS_free"]
22102    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
22103}
22104extern "C" {
22105    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSA_PSS_PARAMS"]
22106    pub fn d2i_RSA_PSS_PARAMS(
22107        out: *mut *mut RSA_PSS_PARAMS,
22108        inp: *mut *const u8,
22109        len: ::std::os::raw::c_long,
22110    ) -> *mut RSA_PSS_PARAMS;
22111}
22112extern "C" {
22113    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSA_PSS_PARAMS"]
22114    pub fn i2d_RSA_PSS_PARAMS(
22115        in_: *const RSA_PSS_PARAMS,
22116        outp: *mut *mut u8,
22117    ) -> ::std::os::raw::c_int;
22118}
22119extern "C" {
22120    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_PRIV_KEY_INFO_it"]
22121    pub static PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM;
22122}
22123extern "C" {
22124    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_PRIV_KEY_INFO_new"]
22125    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
22126}
22127extern "C" {
22128    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_PRIV_KEY_INFO_free"]
22129    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
22130}
22131extern "C" {
22132    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8_PRIV_KEY_INFO"]
22133    pub fn d2i_PKCS8_PRIV_KEY_INFO(
22134        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22135        inp: *mut *const u8,
22136        len: ::std::os::raw::c_long,
22137    ) -> *mut PKCS8_PRIV_KEY_INFO;
22138}
22139extern "C" {
22140    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8_PRIV_KEY_INFO"]
22141    pub fn i2d_PKCS8_PRIV_KEY_INFO(
22142        key: *const PKCS8_PRIV_KEY_INFO,
22143        outp: *mut *mut u8,
22144    ) -> ::std::os::raw::c_int;
22145}
22146extern "C" {
22147    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKCS82PKEY"]
22148    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
22149}
22150extern "C" {
22151    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY2PKCS8"]
22152    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
22153}
22154extern "C" {
22155    #[link_name = "\u{1}aws_lc_0_40_0_X509_SIG_it"]
22156    pub static X509_SIG_it: ASN1_ITEM;
22157}
22158extern "C" {
22159    #[link_name = "\u{1}aws_lc_0_40_0_X509_SIG_new"]
22160    pub fn X509_SIG_new() -> *mut X509_SIG;
22161}
22162extern "C" {
22163    #[link_name = "\u{1}aws_lc_0_40_0_X509_SIG_free"]
22164    pub fn X509_SIG_free(key: *mut X509_SIG);
22165}
22166extern "C" {
22167    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_SIG"]
22168    pub fn d2i_X509_SIG(
22169        out: *mut *mut X509_SIG,
22170        inp: *mut *const u8,
22171        len: ::std::os::raw::c_long,
22172    ) -> *mut X509_SIG;
22173}
22174extern "C" {
22175    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_SIG"]
22176    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::std::os::raw::c_int;
22177}
22178extern "C" {
22179    #[link_name = "\u{1}aws_lc_0_40_0_X509_SIG_get0"]
22180    pub fn X509_SIG_get0(
22181        sig: *const X509_SIG,
22182        out_alg: *mut *const X509_ALGOR,
22183        out_digest: *mut *const ASN1_OCTET_STRING,
22184    );
22185}
22186extern "C" {
22187    #[link_name = "\u{1}aws_lc_0_40_0_X509_SIG_getm"]
22188    pub fn X509_SIG_getm(
22189        sig: *mut X509_SIG,
22190        out_alg: *mut *mut X509_ALGOR,
22191        out_digest: *mut *mut ASN1_OCTET_STRING,
22192    );
22193}
22194extern "C" {
22195    #[link_name = "\u{1}aws_lc_0_40_0_X509_print_ex"]
22196    pub fn X509_print_ex(
22197        bp: *mut BIO,
22198        x: *mut X509,
22199        nmflag: ::std::os::raw::c_ulong,
22200        cflag: ::std::os::raw::c_ulong,
22201    ) -> ::std::os::raw::c_int;
22202}
22203extern "C" {
22204    #[link_name = "\u{1}aws_lc_0_40_0_X509_print_ex_fp"]
22205    pub fn X509_print_ex_fp(
22206        fp: *mut FILE,
22207        x: *mut X509,
22208        nmflag: ::std::os::raw::c_ulong,
22209        cflag: ::std::os::raw::c_ulong,
22210    ) -> ::std::os::raw::c_int;
22211}
22212extern "C" {
22213    #[link_name = "\u{1}aws_lc_0_40_0_X509_print"]
22214    pub fn X509_print(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
22215}
22216extern "C" {
22217    #[link_name = "\u{1}aws_lc_0_40_0_X509_print_fp"]
22218    pub fn X509_print_fp(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
22219}
22220extern "C" {
22221    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_print"]
22222    pub fn X509_CRL_print(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22223}
22224extern "C" {
22225    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_print_fp"]
22226    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
22227}
22228extern "C" {
22229    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_print_ex"]
22230    pub fn X509_REQ_print_ex(
22231        bp: *mut BIO,
22232        x: *mut X509_REQ,
22233        nmflag: ::std::os::raw::c_ulong,
22234        cflag: ::std::os::raw::c_ulong,
22235    ) -> ::std::os::raw::c_int;
22236}
22237extern "C" {
22238    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_print"]
22239    pub fn X509_REQ_print(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22240}
22241extern "C" {
22242    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_print_fp"]
22243    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22244}
22245extern "C" {
22246    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_print_ex"]
22247    pub fn X509_NAME_print_ex(
22248        out: *mut BIO,
22249        nm: *const X509_NAME,
22250        indent: ::std::os::raw::c_int,
22251        flags: ::std::os::raw::c_ulong,
22252    ) -> ::std::os::raw::c_int;
22253}
22254extern "C" {
22255    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_print"]
22256    pub fn X509_NAME_print(
22257        bp: *mut BIO,
22258        name: *const X509_NAME,
22259        obase: ::std::os::raw::c_int,
22260    ) -> ::std::os::raw::c_int;
22261}
22262extern "C" {
22263    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_oneline"]
22264    pub fn X509_NAME_oneline(
22265        name: *const X509_NAME,
22266        buf: *mut ::std::os::raw::c_char,
22267        size: ::std::os::raw::c_int,
22268    ) -> *mut ::std::os::raw::c_char;
22269}
22270extern "C" {
22271    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_print_ex_fp"]
22272    pub fn X509_NAME_print_ex_fp(
22273        fp: *mut FILE,
22274        nm: *const X509_NAME,
22275        indent: ::std::os::raw::c_int,
22276        flags: ::std::os::raw::c_ulong,
22277    ) -> ::std::os::raw::c_int;
22278}
22279extern "C" {
22280    #[link_name = "\u{1}aws_lc_0_40_0_X509_signature_dump"]
22281    pub fn X509_signature_dump(
22282        bio: *mut BIO,
22283        sig: *const ASN1_STRING,
22284        indent: ::std::os::raw::c_int,
22285    ) -> ::std::os::raw::c_int;
22286}
22287extern "C" {
22288    #[link_name = "\u{1}aws_lc_0_40_0_X509_signature_print"]
22289    pub fn X509_signature_print(
22290        bio: *mut BIO,
22291        alg: *const X509_ALGOR,
22292        sig: *const ASN1_STRING,
22293    ) -> ::std::os::raw::c_int;
22294}
22295extern "C" {
22296    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_print"]
22297    pub fn X509V3_EXT_print(
22298        out: *mut BIO,
22299        ext: *const X509_EXTENSION,
22300        flag: ::std::os::raw::c_ulong,
22301        indent: ::std::os::raw::c_int,
22302    ) -> ::std::os::raw::c_int;
22303}
22304extern "C" {
22305    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_print_fp"]
22306    pub fn X509V3_EXT_print_fp(
22307        out: *mut FILE,
22308        ext: *const X509_EXTENSION,
22309        flag: ::std::os::raw::c_int,
22310        indent: ::std::os::raw::c_int,
22311    ) -> ::std::os::raw::c_int;
22312}
22313extern "C" {
22314    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_extensions_print"]
22315    pub fn X509V3_extensions_print(
22316        out: *mut BIO,
22317        title: *const ::std::os::raw::c_char,
22318        exts: *const stack_st_X509_EXTENSION,
22319        flag: ::std::os::raw::c_ulong,
22320        indent: ::std::os::raw::c_int,
22321    ) -> ::std::os::raw::c_int;
22322}
22323extern "C" {
22324    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_NAME_print"]
22325    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::std::os::raw::c_int;
22326}
22327extern "C" {
22328    #[link_name = "\u{1}aws_lc_0_40_0_X509_pubkey_digest"]
22329    pub fn X509_pubkey_digest(
22330        x509: *const X509,
22331        md: *const EVP_MD,
22332        out: *mut u8,
22333        out_len: *mut ::std::os::raw::c_uint,
22334    ) -> ::std::os::raw::c_int;
22335}
22336extern "C" {
22337    #[link_name = "\u{1}aws_lc_0_40_0_X509_digest"]
22338    pub fn X509_digest(
22339        x509: *const X509,
22340        md: *const EVP_MD,
22341        out: *mut u8,
22342        out_len: *mut ::std::os::raw::c_uint,
22343    ) -> ::std::os::raw::c_int;
22344}
22345extern "C" {
22346    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_digest"]
22347    pub fn X509_CRL_digest(
22348        crl: *const X509_CRL,
22349        md: *const EVP_MD,
22350        out: *mut u8,
22351        out_len: *mut ::std::os::raw::c_uint,
22352    ) -> ::std::os::raw::c_int;
22353}
22354extern "C" {
22355    #[link_name = "\u{1}aws_lc_0_40_0_X509_REQ_digest"]
22356    pub fn X509_REQ_digest(
22357        req: *const X509_REQ,
22358        md: *const EVP_MD,
22359        out: *mut u8,
22360        out_len: *mut ::std::os::raw::c_uint,
22361    ) -> ::std::os::raw::c_int;
22362}
22363extern "C" {
22364    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_digest"]
22365    pub fn X509_NAME_digest(
22366        name: *const X509_NAME,
22367        md: *const EVP_MD,
22368        out: *mut u8,
22369        out_len: *mut ::std::os::raw::c_uint,
22370    ) -> ::std::os::raw::c_int;
22371}
22372extern "C" {
22373    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_bio"]
22374    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
22375}
22376extern "C" {
22377    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_CRL_bio"]
22378    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22379}
22380extern "C" {
22381    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_REQ_bio"]
22382    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22383}
22384extern "C" {
22385    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPrivateKey_bio"]
22386    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22387}
22388extern "C" {
22389    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPublicKey_bio"]
22390    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22391}
22392extern "C" {
22393    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSA_PUBKEY_bio"]
22394    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
22395}
22396extern "C" {
22397    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSA_PUBKEY_bio"]
22398    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22399}
22400extern "C" {
22401    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSAPrivateKey_bio"]
22402    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
22403}
22404extern "C" {
22405    #[link_name = "\u{1}aws_lc_0_40_0_d2i_EC_PUBKEY_bio"]
22406    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22407}
22408extern "C" {
22409    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECPrivateKey_bio"]
22410    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22411}
22412extern "C" {
22413    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8_bio"]
22414    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22415}
22416extern "C" {
22417    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8_PRIV_KEY_INFO_bio"]
22418    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
22419        bp: *mut BIO,
22420        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22421    ) -> *mut PKCS8_PRIV_KEY_INFO;
22422}
22423extern "C" {
22424    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PUBKEY_bio"]
22425    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22426}
22427extern "C" {
22428    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DHparams_bio"]
22429    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
22430}
22431extern "C" {
22432    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PrivateKey_bio"]
22433    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22434}
22435extern "C" {
22436    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_bio"]
22437    pub fn i2d_X509_bio(bp: *mut BIO, x509: *mut X509) -> ::std::os::raw::c_int;
22438}
22439extern "C" {
22440    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_CRL_bio"]
22441    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22442}
22443extern "C" {
22444    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_REQ_bio"]
22445    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22446}
22447extern "C" {
22448    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPrivateKey_bio"]
22449    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22450}
22451extern "C" {
22452    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPublicKey_bio"]
22453    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22454}
22455extern "C" {
22456    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSA_PUBKEY_bio"]
22457    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut RSA) -> ::std::os::raw::c_int;
22458}
22459extern "C" {
22460    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSA_PUBKEY_bio"]
22461    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22462}
22463extern "C" {
22464    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSAPrivateKey_bio"]
22465    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut DSA) -> ::std::os::raw::c_int;
22466}
22467extern "C" {
22468    #[link_name = "\u{1}aws_lc_0_40_0_i2d_EC_PUBKEY_bio"]
22469    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22470}
22471extern "C" {
22472    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECPrivateKey_bio"]
22473    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22474}
22475extern "C" {
22476    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8_bio"]
22477    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22478}
22479extern "C" {
22480    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8_PRIV_KEY_INFO_bio"]
22481    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
22482        bp: *mut BIO,
22483        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22484    ) -> ::std::os::raw::c_int;
22485}
22486extern "C" {
22487    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PrivateKey_bio"]
22488    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22489}
22490extern "C" {
22491    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PUBKEY_bio"]
22492    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22493}
22494extern "C" {
22495    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DHparams_bio"]
22496    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::std::os::raw::c_int;
22497}
22498extern "C" {
22499    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKeyInfo_bio"]
22500    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22501}
22502extern "C" {
22503    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_fp"]
22504    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
22505}
22506extern "C" {
22507    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_CRL_fp"]
22508    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
22509}
22510extern "C" {
22511    #[link_name = "\u{1}aws_lc_0_40_0_d2i_X509_REQ_fp"]
22512    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
22513}
22514extern "C" {
22515    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPrivateKey_fp"]
22516    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22517}
22518extern "C" {
22519    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSAPublicKey_fp"]
22520    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22521}
22522extern "C" {
22523    #[link_name = "\u{1}aws_lc_0_40_0_d2i_RSA_PUBKEY_fp"]
22524    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
22525}
22526extern "C" {
22527    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSA_PUBKEY_fp"]
22528    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22529}
22530extern "C" {
22531    #[link_name = "\u{1}aws_lc_0_40_0_d2i_DSAPrivateKey_fp"]
22532    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
22533}
22534extern "C" {
22535    #[link_name = "\u{1}aws_lc_0_40_0_d2i_EC_PUBKEY_fp"]
22536    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22537}
22538extern "C" {
22539    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ECPrivateKey_fp"]
22540    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
22541}
22542extern "C" {
22543    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8_fp"]
22544    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
22545}
22546extern "C" {
22547    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8_PRIV_KEY_INFO_fp"]
22548    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
22549        fp: *mut FILE,
22550        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
22551    ) -> *mut PKCS8_PRIV_KEY_INFO;
22552}
22553extern "C" {
22554    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PrivateKey_fp"]
22555    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22556}
22557extern "C" {
22558    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PUBKEY_fp"]
22559    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
22560}
22561extern "C" {
22562    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_fp"]
22563    pub fn i2d_X509_fp(fp: *mut FILE, x509: *mut X509) -> ::std::os::raw::c_int;
22564}
22565extern "C" {
22566    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_CRL_fp"]
22567    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *mut X509_CRL) -> ::std::os::raw::c_int;
22568}
22569extern "C" {
22570    #[link_name = "\u{1}aws_lc_0_40_0_i2d_X509_REQ_fp"]
22571    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *mut X509_REQ) -> ::std::os::raw::c_int;
22572}
22573extern "C" {
22574    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPrivateKey_fp"]
22575    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22576}
22577extern "C" {
22578    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSAPublicKey_fp"]
22579    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22580}
22581extern "C" {
22582    #[link_name = "\u{1}aws_lc_0_40_0_i2d_RSA_PUBKEY_fp"]
22583    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut RSA) -> ::std::os::raw::c_int;
22584}
22585extern "C" {
22586    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSA_PUBKEY_fp"]
22587    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22588}
22589extern "C" {
22590    #[link_name = "\u{1}aws_lc_0_40_0_i2d_DSAPrivateKey_fp"]
22591    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut DSA) -> ::std::os::raw::c_int;
22592}
22593extern "C" {
22594    #[link_name = "\u{1}aws_lc_0_40_0_i2d_EC_PUBKEY_fp"]
22595    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22596}
22597extern "C" {
22598    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ECPrivateKey_fp"]
22599    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut EC_KEY) -> ::std::os::raw::c_int;
22600}
22601extern "C" {
22602    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8_fp"]
22603    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *mut X509_SIG) -> ::std::os::raw::c_int;
22604}
22605extern "C" {
22606    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8_PRIV_KEY_INFO_fp"]
22607    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
22608        fp: *mut FILE,
22609        p8inf: *mut PKCS8_PRIV_KEY_INFO,
22610    ) -> ::std::os::raw::c_int;
22611}
22612extern "C" {
22613    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKeyInfo_fp"]
22614    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22615}
22616extern "C" {
22617    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PrivateKey_fp"]
22618    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22619}
22620extern "C" {
22621    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PUBKEY_fp"]
22622    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
22623}
22624extern "C" {
22625    #[link_name = "\u{1}aws_lc_0_40_0_X509_find_by_issuer_and_serial"]
22626    pub fn X509_find_by_issuer_and_serial(
22627        sk: *const stack_st_X509,
22628        name: *mut X509_NAME,
22629        serial: *const ASN1_INTEGER,
22630    ) -> *mut X509;
22631}
22632extern "C" {
22633    #[link_name = "\u{1}aws_lc_0_40_0_X509_find_by_subject"]
22634    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *mut X509_NAME) -> *mut X509;
22635}
22636extern "C" {
22637    #[link_name = "\u{1}aws_lc_0_40_0_X509_cmp_time"]
22638    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::std::os::raw::c_int;
22639}
22640extern "C" {
22641    #[link_name = "\u{1}aws_lc_0_40_0_X509_cmp_time_posix"]
22642    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::std::os::raw::c_int;
22643}
22644extern "C" {
22645    #[link_name = "\u{1}aws_lc_0_40_0_X509_cmp_current_time"]
22646    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::std::os::raw::c_int;
22647}
22648extern "C" {
22649    #[link_name = "\u{1}aws_lc_0_40_0_X509_time_adj"]
22650    pub fn X509_time_adj(
22651        s: *mut ASN1_TIME,
22652        offset_sec: ::std::os::raw::c_long,
22653        t: *const time_t,
22654    ) -> *mut ASN1_TIME;
22655}
22656extern "C" {
22657    #[link_name = "\u{1}aws_lc_0_40_0_X509_time_adj_ex"]
22658    pub fn X509_time_adj_ex(
22659        s: *mut ASN1_TIME,
22660        offset_day: ::std::os::raw::c_int,
22661        offset_sec: ::std::os::raw::c_long,
22662        t: *const time_t,
22663    ) -> *mut ASN1_TIME;
22664}
22665extern "C" {
22666    #[link_name = "\u{1}aws_lc_0_40_0_X509_gmtime_adj"]
22667    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::std::os::raw::c_long)
22668        -> *mut ASN1_TIME;
22669}
22670extern "C" {
22671    #[link_name = "\u{1}aws_lc_0_40_0_X509_issuer_name_cmp"]
22672    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22673}
22674extern "C" {
22675    #[link_name = "\u{1}aws_lc_0_40_0_X509_subject_name_cmp"]
22676    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::std::os::raw::c_int;
22677}
22678extern "C" {
22679    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_cmp"]
22680    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::std::os::raw::c_int;
22681}
22682extern "C" {
22683    #[link_name = "\u{1}aws_lc_0_40_0_X509_issuer_name_hash"]
22684    pub fn X509_issuer_name_hash(x509: *mut X509) -> u32;
22685}
22686extern "C" {
22687    #[link_name = "\u{1}aws_lc_0_40_0_X509_subject_name_hash"]
22688    pub fn X509_subject_name_hash(x509: *mut X509) -> u32;
22689}
22690extern "C" {
22691    #[link_name = "\u{1}aws_lc_0_40_0_X509_issuer_name_hash_old"]
22692    pub fn X509_issuer_name_hash_old(x509: *mut X509) -> u32;
22693}
22694extern "C" {
22695    #[link_name = "\u{1}aws_lc_0_40_0_X509_subject_name_hash_old"]
22696    pub fn X509_subject_name_hash_old(x509: *mut X509) -> u32;
22697}
22698extern "C" {
22699    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ex_new_index"]
22700    pub fn X509_get_ex_new_index(
22701        argl: ::std::os::raw::c_long,
22702        argp: *mut ::std::os::raw::c_void,
22703        unused: *mut CRYPTO_EX_unused,
22704        dup_unused: CRYPTO_EX_dup,
22705        free_func: CRYPTO_EX_free,
22706    ) -> ::std::os::raw::c_int;
22707}
22708extern "C" {
22709    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_ex_data"]
22710    pub fn X509_set_ex_data(
22711        r: *mut X509,
22712        idx: ::std::os::raw::c_int,
22713        arg: *mut ::std::os::raw::c_void,
22714    ) -> ::std::os::raw::c_int;
22715}
22716extern "C" {
22717    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_ex_data"]
22718    pub fn X509_get_ex_data(
22719        r: *mut X509,
22720        idx: ::std::os::raw::c_int,
22721    ) -> *mut ::std::os::raw::c_void;
22722}
22723extern "C" {
22724    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_ex_new_index"]
22725    pub fn X509_STORE_CTX_get_ex_new_index(
22726        argl: ::std::os::raw::c_long,
22727        argp: *mut ::std::os::raw::c_void,
22728        unused: *mut CRYPTO_EX_unused,
22729        dup_unused: CRYPTO_EX_dup,
22730        free_func: CRYPTO_EX_free,
22731    ) -> ::std::os::raw::c_int;
22732}
22733extern "C" {
22734    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_ex_data"]
22735    pub fn X509_STORE_CTX_set_ex_data(
22736        ctx: *mut X509_STORE_CTX,
22737        idx: ::std::os::raw::c_int,
22738        data: *mut ::std::os::raw::c_void,
22739    ) -> ::std::os::raw::c_int;
22740}
22741extern "C" {
22742    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_ex_data"]
22743    pub fn X509_STORE_CTX_get_ex_data(
22744        ctx: *mut X509_STORE_CTX,
22745        idx: ::std::os::raw::c_int,
22746    ) -> *mut ::std::os::raw::c_void;
22747}
22748extern "C" {
22749    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get_ex_new_index"]
22750    pub fn X509_STORE_get_ex_new_index(
22751        argl: ::std::os::raw::c_long,
22752        argp: *mut ::std::os::raw::c_void,
22753        unused: *mut CRYPTO_EX_unused,
22754        dup_unused: CRYPTO_EX_dup,
22755        free_func: CRYPTO_EX_free,
22756    ) -> ::std::os::raw::c_int;
22757}
22758extern "C" {
22759    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_ex_data"]
22760    pub fn X509_STORE_set_ex_data(
22761        ctx: *mut X509_STORE,
22762        idx: ::std::os::raw::c_int,
22763        data: *mut ::std::os::raw::c_void,
22764    ) -> ::std::os::raw::c_int;
22765}
22766extern "C" {
22767    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get_ex_data"]
22768    pub fn X509_STORE_get_ex_data(
22769        ctx: *mut X509_STORE,
22770        idx: ::std::os::raw::c_int,
22771    ) -> *mut ::std::os::raw::c_void;
22772}
22773extern "C" {
22774    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_digest"]
22775    pub fn ASN1_digest(
22776        i2d: i2d_of_void,
22777        type_: *const EVP_MD,
22778        data: *mut ::std::os::raw::c_char,
22779        md: *mut ::std::os::raw::c_uchar,
22780        len: *mut ::std::os::raw::c_uint,
22781    ) -> ::std::os::raw::c_int;
22782}
22783extern "C" {
22784    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_digest"]
22785    pub fn ASN1_item_digest(
22786        it: *const ASN1_ITEM,
22787        type_: *const EVP_MD,
22788        data: *mut ::std::os::raw::c_void,
22789        md: *mut ::std::os::raw::c_uchar,
22790        len: *mut ::std::os::raw::c_uint,
22791    ) -> ::std::os::raw::c_int;
22792}
22793extern "C" {
22794    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_verify"]
22795    pub fn ASN1_item_verify(
22796        it: *const ASN1_ITEM,
22797        algor1: *const X509_ALGOR,
22798        signature: *const ASN1_BIT_STRING,
22799        data: *mut ::std::os::raw::c_void,
22800        pkey: *mut EVP_PKEY,
22801    ) -> ::std::os::raw::c_int;
22802}
22803extern "C" {
22804    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_sign"]
22805    pub fn ASN1_item_sign(
22806        it: *const ASN1_ITEM,
22807        algor1: *mut X509_ALGOR,
22808        algor2: *mut X509_ALGOR,
22809        signature: *mut ASN1_BIT_STRING,
22810        data: *mut ::std::os::raw::c_void,
22811        pkey: *mut EVP_PKEY,
22812        type_: *const EVP_MD,
22813    ) -> ::std::os::raw::c_int;
22814}
22815extern "C" {
22816    #[link_name = "\u{1}aws_lc_0_40_0_ASN1_item_sign_ctx"]
22817    pub fn ASN1_item_sign_ctx(
22818        it: *const ASN1_ITEM,
22819        algor1: *mut X509_ALGOR,
22820        algor2: *mut X509_ALGOR,
22821        signature: *mut ASN1_BIT_STRING,
22822        asn: *mut ::std::os::raw::c_void,
22823        ctx: *mut EVP_MD_CTX,
22824    ) -> ::std::os::raw::c_int;
22825}
22826extern "C" {
22827    #[link_name = "\u{1}aws_lc_0_40_0_X509_supported_extension"]
22828    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::std::os::raw::c_int;
22829}
22830extern "C" {
22831    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_ca"]
22832    pub fn X509_check_ca(x509: *mut X509) -> ::std::os::raw::c_int;
22833}
22834extern "C" {
22835    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_issued"]
22836    pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> ::std::os::raw::c_int;
22837}
22838extern "C" {
22839    #[link_name = "\u{1}aws_lc_0_40_0_NAME_CONSTRAINTS_check"]
22840    pub fn NAME_CONSTRAINTS_check(
22841        x509: *mut X509,
22842        nc: *mut NAME_CONSTRAINTS,
22843    ) -> ::std::os::raw::c_int;
22844}
22845extern "C" {
22846    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_host"]
22847    pub fn X509_check_host(
22848        x509: *const X509,
22849        chk: *const ::std::os::raw::c_char,
22850        chklen: usize,
22851        flags: ::std::os::raw::c_uint,
22852        out_peername: *mut *mut ::std::os::raw::c_char,
22853    ) -> ::std::os::raw::c_int;
22854}
22855extern "C" {
22856    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_email"]
22857    pub fn X509_check_email(
22858        x509: *const X509,
22859        chk: *const ::std::os::raw::c_char,
22860        chklen: usize,
22861        flags: ::std::os::raw::c_uint,
22862    ) -> ::std::os::raw::c_int;
22863}
22864extern "C" {
22865    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_ip"]
22866    pub fn X509_check_ip(
22867        x509: *const X509,
22868        chk: *const u8,
22869        chklen: usize,
22870        flags: ::std::os::raw::c_uint,
22871    ) -> ::std::os::raw::c_int;
22872}
22873extern "C" {
22874    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_ip_asc"]
22875    pub fn X509_check_ip_asc(
22876        x509: *const X509,
22877        ipasc: *const ::std::os::raw::c_char,
22878        flags: ::std::os::raw::c_uint,
22879    ) -> ::std::os::raw::c_int;
22880}
22881extern "C" {
22882    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get1_issuer"]
22883    pub fn X509_STORE_CTX_get1_issuer(
22884        out_issuer: *mut *mut X509,
22885        ctx: *mut X509_STORE_CTX,
22886        x509: *mut X509,
22887    ) -> ::std::os::raw::c_int;
22888}
22889extern "C" {
22890    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_purpose"]
22891    pub fn X509_check_purpose(
22892        x509: *mut X509,
22893        purpose: ::std::os::raw::c_int,
22894        ca: ::std::os::raw::c_int,
22895    ) -> ::std::os::raw::c_int;
22896}
22897extern "C" {
22898    #[link_name = "\u{1}aws_lc_0_40_0_X509_check_trust"]
22899    pub fn X509_check_trust(
22900        x509: *mut X509,
22901        id: ::std::os::raw::c_int,
22902        flags: ::std::os::raw::c_int,
22903    ) -> ::std::os::raw::c_int;
22904}
22905#[repr(C)]
22906#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22907pub struct private_key_st {
22908    pub dec_pkey: *mut EVP_PKEY,
22909}
22910#[test]
22911fn bindgen_test_layout_private_key_st() {
22912    const UNINIT: ::std::mem::MaybeUninit<private_key_st> = ::std::mem::MaybeUninit::uninit();
22913    let ptr = UNINIT.as_ptr();
22914    assert_eq!(
22915        ::std::mem::size_of::<private_key_st>(),
22916        8usize,
22917        "Size of private_key_st"
22918    );
22919    assert_eq!(
22920        ::std::mem::align_of::<private_key_st>(),
22921        8usize,
22922        "Alignment of private_key_st"
22923    );
22924    assert_eq!(
22925        unsafe { ::std::ptr::addr_of!((*ptr).dec_pkey) as usize - ptr as usize },
22926        0usize,
22927        "Offset of field: private_key_st::dec_pkey"
22928    );
22929}
22930impl Default for private_key_st {
22931    fn default() -> Self {
22932        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22933        unsafe {
22934            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22935            s.assume_init()
22936        }
22937    }
22938}
22939#[repr(C)]
22940#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22941pub struct X509_info_st {
22942    pub x509: *mut X509,
22943    pub crl: *mut X509_CRL,
22944    pub x_pkey: *mut X509_PKEY,
22945    pub enc_cipher: EVP_CIPHER_INFO,
22946    pub enc_len: ::std::os::raw::c_int,
22947    pub enc_data: *mut ::std::os::raw::c_char,
22948}
22949#[test]
22950fn bindgen_test_layout_X509_info_st() {
22951    const UNINIT: ::std::mem::MaybeUninit<X509_info_st> = ::std::mem::MaybeUninit::uninit();
22952    let ptr = UNINIT.as_ptr();
22953    assert_eq!(
22954        ::std::mem::size_of::<X509_info_st>(),
22955        64usize,
22956        "Size of X509_info_st"
22957    );
22958    assert_eq!(
22959        ::std::mem::align_of::<X509_info_st>(),
22960        8usize,
22961        "Alignment of X509_info_st"
22962    );
22963    assert_eq!(
22964        unsafe { ::std::ptr::addr_of!((*ptr).x509) as usize - ptr as usize },
22965        0usize,
22966        "Offset of field: X509_info_st::x509"
22967    );
22968    assert_eq!(
22969        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
22970        8usize,
22971        "Offset of field: X509_info_st::crl"
22972    );
22973    assert_eq!(
22974        unsafe { ::std::ptr::addr_of!((*ptr).x_pkey) as usize - ptr as usize },
22975        16usize,
22976        "Offset of field: X509_info_st::x_pkey"
22977    );
22978    assert_eq!(
22979        unsafe { ::std::ptr::addr_of!((*ptr).enc_cipher) as usize - ptr as usize },
22980        24usize,
22981        "Offset of field: X509_info_st::enc_cipher"
22982    );
22983    assert_eq!(
22984        unsafe { ::std::ptr::addr_of!((*ptr).enc_len) as usize - ptr as usize },
22985        48usize,
22986        "Offset of field: X509_info_st::enc_len"
22987    );
22988    assert_eq!(
22989        unsafe { ::std::ptr::addr_of!((*ptr).enc_data) as usize - ptr as usize },
22990        56usize,
22991        "Offset of field: X509_info_st::enc_data"
22992    );
22993}
22994impl Default for X509_info_st {
22995    fn default() -> Self {
22996        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
22997        unsafe {
22998            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
22999            s.assume_init()
23000        }
23001    }
23002}
23003#[repr(C)]
23004#[derive(Debug, Copy, Clone)]
23005pub struct stack_st_X509_INFO {
23006    _unused: [u8; 0],
23007}
23008pub type sk_X509_INFO_free_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
23009pub type sk_X509_INFO_copy_func =
23010    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
23011pub type sk_X509_INFO_cmp_func = ::std::option::Option<
23012    unsafe extern "C" fn(
23013        arg1: *const *const X509_INFO,
23014        arg2: *const *const X509_INFO,
23015    ) -> ::std::os::raw::c_int,
23016>;
23017pub type sk_X509_INFO_delete_if_func = ::std::option::Option<
23018    unsafe extern "C" fn(
23019        arg1: *mut X509_INFO,
23020        arg2: *mut ::std::os::raw::c_void,
23021    ) -> ::std::os::raw::c_int,
23022>;
23023extern "C" {
23024    #[link_name = "\u{1}aws_lc_0_40_0_X509_INFO_free"]
23025    pub fn X509_INFO_free(info: *mut X509_INFO);
23026}
23027pub type X509V3_EXT_NEW =
23028    ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
23029pub type X509V3_EXT_FREE =
23030    ::std::option::Option<unsafe extern "C" fn(ext: *mut ::std::os::raw::c_void)>;
23031pub type X509V3_EXT_D2I = ::std::option::Option<
23032    unsafe extern "C" fn(
23033        ext: *mut ::std::os::raw::c_void,
23034        inp: *mut *const u8,
23035        len: ::std::os::raw::c_long,
23036    ) -> *mut ::std::os::raw::c_void,
23037>;
23038pub type X509V3_EXT_I2D = ::std::option::Option<
23039    unsafe extern "C" fn(
23040        ext: *mut ::std::os::raw::c_void,
23041        outp: *mut *mut u8,
23042    ) -> ::std::os::raw::c_int,
23043>;
23044pub type X509V3_EXT_I2V = ::std::option::Option<
23045    unsafe extern "C" fn(
23046        method: *const X509V3_EXT_METHOD,
23047        ext: *mut ::std::os::raw::c_void,
23048        extlist: *mut stack_st_CONF_VALUE,
23049    ) -> *mut stack_st_CONF_VALUE,
23050>;
23051pub type X509V3_EXT_V2I = ::std::option::Option<
23052    unsafe extern "C" fn(
23053        method: *const X509V3_EXT_METHOD,
23054        ctx: *const X509V3_CTX,
23055        values: *const stack_st_CONF_VALUE,
23056    ) -> *mut ::std::os::raw::c_void,
23057>;
23058pub type X509V3_EXT_I2S = ::std::option::Option<
23059    unsafe extern "C" fn(
23060        method: *const X509V3_EXT_METHOD,
23061        ext: *mut ::std::os::raw::c_void,
23062    ) -> *mut ::std::os::raw::c_char,
23063>;
23064pub type X509V3_EXT_S2I = ::std::option::Option<
23065    unsafe extern "C" fn(
23066        method: *const X509V3_EXT_METHOD,
23067        ctx: *const X509V3_CTX,
23068        str_: *const ::std::os::raw::c_char,
23069    ) -> *mut ::std::os::raw::c_void,
23070>;
23071pub type X509V3_EXT_I2R = ::std::option::Option<
23072    unsafe extern "C" fn(
23073        method: *const X509V3_EXT_METHOD,
23074        ext: *mut ::std::os::raw::c_void,
23075        out: *mut BIO,
23076        indent: ::std::os::raw::c_int,
23077    ) -> ::std::os::raw::c_int,
23078>;
23079pub type X509V3_EXT_R2I = ::std::option::Option<
23080    unsafe extern "C" fn(
23081        method: *const X509V3_EXT_METHOD,
23082        ctx: *const X509V3_CTX,
23083        str_: *const ::std::os::raw::c_char,
23084    ) -> *mut ::std::os::raw::c_void,
23085>;
23086#[repr(C)]
23087#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23088pub struct v3_ext_method {
23089    pub ext_nid: ::std::os::raw::c_int,
23090    pub ext_flags: ::std::os::raw::c_int,
23091    pub it: *const ASN1_ITEM_st,
23092    pub ext_new: X509V3_EXT_NEW,
23093    pub ext_free: X509V3_EXT_FREE,
23094    pub d2i: X509V3_EXT_D2I,
23095    pub i2d: X509V3_EXT_I2D,
23096    pub i2s: X509V3_EXT_I2S,
23097    pub s2i: X509V3_EXT_S2I,
23098    pub i2v: X509V3_EXT_I2V,
23099    pub v2i: X509V3_EXT_V2I,
23100    pub i2r: X509V3_EXT_I2R,
23101    pub r2i: X509V3_EXT_R2I,
23102    pub usr_data: *mut ::std::os::raw::c_void,
23103}
23104#[test]
23105fn bindgen_test_layout_v3_ext_method() {
23106    const UNINIT: ::std::mem::MaybeUninit<v3_ext_method> = ::std::mem::MaybeUninit::uninit();
23107    let ptr = UNINIT.as_ptr();
23108    assert_eq!(
23109        ::std::mem::size_of::<v3_ext_method>(),
23110        104usize,
23111        "Size of v3_ext_method"
23112    );
23113    assert_eq!(
23114        ::std::mem::align_of::<v3_ext_method>(),
23115        8usize,
23116        "Alignment of v3_ext_method"
23117    );
23118    assert_eq!(
23119        unsafe { ::std::ptr::addr_of!((*ptr).ext_nid) as usize - ptr as usize },
23120        0usize,
23121        "Offset of field: v3_ext_method::ext_nid"
23122    );
23123    assert_eq!(
23124        unsafe { ::std::ptr::addr_of!((*ptr).ext_flags) as usize - ptr as usize },
23125        4usize,
23126        "Offset of field: v3_ext_method::ext_flags"
23127    );
23128    assert_eq!(
23129        unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize },
23130        8usize,
23131        "Offset of field: v3_ext_method::it"
23132    );
23133    assert_eq!(
23134        unsafe { ::std::ptr::addr_of!((*ptr).ext_new) as usize - ptr as usize },
23135        16usize,
23136        "Offset of field: v3_ext_method::ext_new"
23137    );
23138    assert_eq!(
23139        unsafe { ::std::ptr::addr_of!((*ptr).ext_free) as usize - ptr as usize },
23140        24usize,
23141        "Offset of field: v3_ext_method::ext_free"
23142    );
23143    assert_eq!(
23144        unsafe { ::std::ptr::addr_of!((*ptr).d2i) as usize - ptr as usize },
23145        32usize,
23146        "Offset of field: v3_ext_method::d2i"
23147    );
23148    assert_eq!(
23149        unsafe { ::std::ptr::addr_of!((*ptr).i2d) as usize - ptr as usize },
23150        40usize,
23151        "Offset of field: v3_ext_method::i2d"
23152    );
23153    assert_eq!(
23154        unsafe { ::std::ptr::addr_of!((*ptr).i2s) as usize - ptr as usize },
23155        48usize,
23156        "Offset of field: v3_ext_method::i2s"
23157    );
23158    assert_eq!(
23159        unsafe { ::std::ptr::addr_of!((*ptr).s2i) as usize - ptr as usize },
23160        56usize,
23161        "Offset of field: v3_ext_method::s2i"
23162    );
23163    assert_eq!(
23164        unsafe { ::std::ptr::addr_of!((*ptr).i2v) as usize - ptr as usize },
23165        64usize,
23166        "Offset of field: v3_ext_method::i2v"
23167    );
23168    assert_eq!(
23169        unsafe { ::std::ptr::addr_of!((*ptr).v2i) as usize - ptr as usize },
23170        72usize,
23171        "Offset of field: v3_ext_method::v2i"
23172    );
23173    assert_eq!(
23174        unsafe { ::std::ptr::addr_of!((*ptr).i2r) as usize - ptr as usize },
23175        80usize,
23176        "Offset of field: v3_ext_method::i2r"
23177    );
23178    assert_eq!(
23179        unsafe { ::std::ptr::addr_of!((*ptr).r2i) as usize - ptr as usize },
23180        88usize,
23181        "Offset of field: v3_ext_method::r2i"
23182    );
23183    assert_eq!(
23184        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23185        96usize,
23186        "Offset of field: v3_ext_method::usr_data"
23187    );
23188}
23189impl Default for v3_ext_method {
23190    fn default() -> Self {
23191        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23192        unsafe {
23193            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23194            s.assume_init()
23195        }
23196    }
23197}
23198extern "C" {
23199    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_get"]
23200    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
23201}
23202extern "C" {
23203    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_get_nid"]
23204    pub fn X509V3_EXT_get_nid(nid: ::std::os::raw::c_int) -> *const X509V3_EXT_METHOD;
23205}
23206extern "C" {
23207    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_add"]
23208    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::std::os::raw::c_int;
23209}
23210extern "C" {
23211    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_add_alias"]
23212    pub fn X509V3_EXT_add_alias(
23213        nid_to: ::std::os::raw::c_int,
23214        nid_from: ::std::os::raw::c_int,
23215    ) -> ::std::os::raw::c_int;
23216}
23217#[repr(C)]
23218#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23219pub struct v3_ext_ctx {
23220    pub flags: ::std::os::raw::c_int,
23221    pub issuer_cert: *const X509,
23222    pub subject_cert: *const X509,
23223    pub subject_req: *const X509_REQ,
23224    pub crl: *const X509_CRL,
23225    pub db: *const CONF,
23226}
23227#[test]
23228fn bindgen_test_layout_v3_ext_ctx() {
23229    const UNINIT: ::std::mem::MaybeUninit<v3_ext_ctx> = ::std::mem::MaybeUninit::uninit();
23230    let ptr = UNINIT.as_ptr();
23231    assert_eq!(
23232        ::std::mem::size_of::<v3_ext_ctx>(),
23233        48usize,
23234        "Size of v3_ext_ctx"
23235    );
23236    assert_eq!(
23237        ::std::mem::align_of::<v3_ext_ctx>(),
23238        8usize,
23239        "Alignment of v3_ext_ctx"
23240    );
23241    assert_eq!(
23242        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23243        0usize,
23244        "Offset of field: v3_ext_ctx::flags"
23245    );
23246    assert_eq!(
23247        unsafe { ::std::ptr::addr_of!((*ptr).issuer_cert) as usize - ptr as usize },
23248        8usize,
23249        "Offset of field: v3_ext_ctx::issuer_cert"
23250    );
23251    assert_eq!(
23252        unsafe { ::std::ptr::addr_of!((*ptr).subject_cert) as usize - ptr as usize },
23253        16usize,
23254        "Offset of field: v3_ext_ctx::subject_cert"
23255    );
23256    assert_eq!(
23257        unsafe { ::std::ptr::addr_of!((*ptr).subject_req) as usize - ptr as usize },
23258        24usize,
23259        "Offset of field: v3_ext_ctx::subject_req"
23260    );
23261    assert_eq!(
23262        unsafe { ::std::ptr::addr_of!((*ptr).crl) as usize - ptr as usize },
23263        32usize,
23264        "Offset of field: v3_ext_ctx::crl"
23265    );
23266    assert_eq!(
23267        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
23268        40usize,
23269        "Offset of field: v3_ext_ctx::db"
23270    );
23271}
23272impl Default for v3_ext_ctx {
23273    fn default() -> Self {
23274        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23275        unsafe {
23276            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23277            s.assume_init()
23278        }
23279    }
23280}
23281extern "C" {
23282    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_set_ctx"]
23283    pub fn X509V3_set_ctx(
23284        ctx: *mut X509V3_CTX,
23285        issuer: *const X509,
23286        subject: *const X509,
23287        req: *const X509_REQ,
23288        crl: *const X509_CRL,
23289        flags: ::std::os::raw::c_int,
23290    );
23291}
23292extern "C" {
23293    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_set_nconf"]
23294    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
23295}
23296extern "C" {
23297    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_nconf"]
23298    pub fn X509V3_EXT_nconf(
23299        conf: *const CONF,
23300        ctx: *const X509V3_CTX,
23301        name: *const ::std::os::raw::c_char,
23302        value: *const ::std::os::raw::c_char,
23303    ) -> *mut X509_EXTENSION;
23304}
23305extern "C" {
23306    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_nconf_nid"]
23307    pub fn X509V3_EXT_nconf_nid(
23308        conf: *const CONF,
23309        ctx: *const X509V3_CTX,
23310        ext_nid: ::std::os::raw::c_int,
23311        value: *const ::std::os::raw::c_char,
23312    ) -> *mut X509_EXTENSION;
23313}
23314extern "C" {
23315    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_conf_nid"]
23316    pub fn X509V3_EXT_conf_nid(
23317        conf: *mut lhash_st_CONF_VALUE,
23318        ctx: *const X509V3_CTX,
23319        ext_nid: ::std::os::raw::c_int,
23320        value: *const ::std::os::raw::c_char,
23321    ) -> *mut X509_EXTENSION;
23322}
23323extern "C" {
23324    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_add_nconf_sk"]
23325    pub fn X509V3_EXT_add_nconf_sk(
23326        conf: *const CONF,
23327        ctx: *const X509V3_CTX,
23328        section: *const ::std::os::raw::c_char,
23329        sk: *mut *mut stack_st_X509_EXTENSION,
23330    ) -> ::std::os::raw::c_int;
23331}
23332extern "C" {
23333    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_add_nconf"]
23334    pub fn X509V3_EXT_add_nconf(
23335        conf: *const CONF,
23336        ctx: *const X509V3_CTX,
23337        section: *const ::std::os::raw::c_char,
23338        cert: *mut X509,
23339    ) -> ::std::os::raw::c_int;
23340}
23341extern "C" {
23342    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_REQ_add_nconf"]
23343    pub fn X509V3_EXT_REQ_add_nconf(
23344        conf: *const CONF,
23345        ctx: *const X509V3_CTX,
23346        section: *const ::std::os::raw::c_char,
23347        req: *mut X509_REQ,
23348    ) -> ::std::os::raw::c_int;
23349}
23350extern "C" {
23351    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_CRL_add_nconf"]
23352    pub fn X509V3_EXT_CRL_add_nconf(
23353        conf: *const CONF,
23354        ctx: *const X509V3_CTX,
23355        section: *const ::std::os::raw::c_char,
23356        crl: *mut X509_CRL,
23357    ) -> ::std::os::raw::c_int;
23358}
23359extern "C" {
23360    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_EXT_conf"]
23361    pub fn X509V3_EXT_conf(
23362        conf: *mut lhash_st_CONF_VALUE,
23363        ctx: *mut X509V3_CTX,
23364        name: *const ::std::os::raw::c_char,
23365        value: *const ::std::os::raw::c_char,
23366    ) -> *mut X509_EXTENSION;
23367}
23368extern "C" {
23369    #[link_name = "\u{1}aws_lc_0_40_0_i2s_ASN1_OCTET_STRING"]
23370    pub fn i2s_ASN1_OCTET_STRING(
23371        method: *const X509V3_EXT_METHOD,
23372        oct: *const ASN1_OCTET_STRING,
23373    ) -> *mut ::std::os::raw::c_char;
23374}
23375extern "C" {
23376    #[link_name = "\u{1}aws_lc_0_40_0_s2i_ASN1_OCTET_STRING"]
23377    pub fn s2i_ASN1_OCTET_STRING(
23378        method: *const X509V3_EXT_METHOD,
23379        ctx: *const X509V3_CTX,
23380        str_: *const ::std::os::raw::c_char,
23381    ) -> *mut ASN1_OCTET_STRING;
23382}
23383extern "C" {
23384    #[link_name = "\u{1}aws_lc_0_40_0_i2s_ASN1_INTEGER"]
23385    pub fn i2s_ASN1_INTEGER(
23386        method: *const X509V3_EXT_METHOD,
23387        aint: *const ASN1_INTEGER,
23388    ) -> *mut ::std::os::raw::c_char;
23389}
23390extern "C" {
23391    #[link_name = "\u{1}aws_lc_0_40_0_s2i_ASN1_INTEGER"]
23392    pub fn s2i_ASN1_INTEGER(
23393        method: *const X509V3_EXT_METHOD,
23394        value: *const ::std::os::raw::c_char,
23395    ) -> *mut ASN1_INTEGER;
23396}
23397extern "C" {
23398    #[link_name = "\u{1}aws_lc_0_40_0_i2s_ASN1_ENUMERATED"]
23399    pub fn i2s_ASN1_ENUMERATED(
23400        method: *const X509V3_EXT_METHOD,
23401        aint: *const ASN1_ENUMERATED,
23402    ) -> *mut ::std::os::raw::c_char;
23403}
23404extern "C" {
23405    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_conf_free"]
23406    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
23407}
23408extern "C" {
23409    #[link_name = "\u{1}aws_lc_0_40_0_i2v_GENERAL_NAME"]
23410    pub fn i2v_GENERAL_NAME(
23411        method: *const X509V3_EXT_METHOD,
23412        gen_: *const GENERAL_NAME,
23413        ret: *mut stack_st_CONF_VALUE,
23414    ) -> *mut stack_st_CONF_VALUE;
23415}
23416extern "C" {
23417    #[link_name = "\u{1}aws_lc_0_40_0_i2v_GENERAL_NAMES"]
23418    pub fn i2v_GENERAL_NAMES(
23419        method: *const X509V3_EXT_METHOD,
23420        gen_: *const GENERAL_NAMES,
23421        extlist: *mut stack_st_CONF_VALUE,
23422    ) -> *mut stack_st_CONF_VALUE;
23423}
23424extern "C" {
23425    #[link_name = "\u{1}aws_lc_0_40_0_a2i_IPADDRESS"]
23426    pub fn a2i_IPADDRESS(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23427}
23428extern "C" {
23429    #[link_name = "\u{1}aws_lc_0_40_0_a2i_IPADDRESS_NC"]
23430    pub fn a2i_IPADDRESS_NC(ipasc: *const ::std::os::raw::c_char) -> *mut ASN1_OCTET_STRING;
23431}
23432extern "C" {
23433    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_notBefore"]
23434    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
23435}
23436extern "C" {
23437    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_notAfter"]
23438    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
23439}
23440extern "C" {
23441    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_notBefore"]
23442    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23443}
23444extern "C" {
23445    #[link_name = "\u{1}aws_lc_0_40_0_X509_set_notAfter"]
23446    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::std::os::raw::c_int;
23447}
23448extern "C" {
23449    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_lastUpdate"]
23450    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23451}
23452extern "C" {
23453    #[link_name = "\u{1}aws_lc_0_40_0_X509_CRL_get_nextUpdate"]
23454    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
23455}
23456extern "C" {
23457    #[link_name = "\u{1}aws_lc_0_40_0_X509_get_serialNumber"]
23458    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
23459}
23460extern "C" {
23461    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get_text_by_OBJ"]
23462    pub fn X509_NAME_get_text_by_OBJ(
23463        name: *const X509_NAME,
23464        obj: *const ASN1_OBJECT,
23465        buf: *mut ::std::os::raw::c_char,
23466        len: ::std::os::raw::c_int,
23467    ) -> ::std::os::raw::c_int;
23468}
23469extern "C" {
23470    #[link_name = "\u{1}aws_lc_0_40_0_X509_NAME_get_text_by_NID"]
23471    pub fn X509_NAME_get_text_by_NID(
23472        name: *const X509_NAME,
23473        nid: ::std::os::raw::c_int,
23474        buf: *mut ::std::os::raw::c_char,
23475        len: ::std::os::raw::c_int,
23476    ) -> ::std::os::raw::c_int;
23477}
23478extern "C" {
23479    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get0_parent_ctx"]
23480    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *mut X509_STORE_CTX) -> *mut X509_STORE_CTX;
23481}
23482extern "C" {
23483    #[link_name = "\u{1}aws_lc_0_40_0_X509_LOOKUP_free"]
23484    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
23485}
23486extern "C" {
23487    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_cleanup"]
23488    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
23489}
23490extern "C" {
23491    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_add_standard_extensions"]
23492    pub fn X509V3_add_standard_extensions() -> ::std::os::raw::c_int;
23493}
23494extern "C" {
23495    #[link_name = "\u{1}aws_lc_0_40_0_X509V3_parse_list"]
23496    pub fn X509V3_parse_list(line: *const ::std::os::raw::c_char) -> *mut stack_st_CONF_VALUE;
23497}
23498extern "C" {
23499    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_chain"]
23500    pub fn X509_STORE_CTX_get_chain(ctx: *mut X509_STORE_CTX) -> *mut stack_st_X509;
23501}
23502extern "C" {
23503    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_trusted_stack"]
23504    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23505}
23506pub type X509_STORE_CTX_verify_cb = ::std::option::Option<
23507    unsafe extern "C" fn(
23508        arg1: ::std::os::raw::c_int,
23509        arg2: *mut X509_STORE_CTX,
23510    ) -> ::std::os::raw::c_int,
23511>;
23512extern "C" {
23513    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_verify_cb"]
23514    pub fn X509_STORE_CTX_set_verify_cb(
23515        ctx: *mut X509_STORE_CTX,
23516        verify_cb: ::std::option::Option<
23517            unsafe extern "C" fn(
23518                ok: ::std::os::raw::c_int,
23519                ctx: *mut X509_STORE_CTX,
23520            ) -> ::std::os::raw::c_int,
23521        >,
23522    );
23523}
23524extern "C" {
23525    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get_verify_cb"]
23526    pub fn X509_STORE_get_verify_cb(ctx: *mut X509_STORE) -> X509_STORE_CTX_verify_cb;
23527}
23528extern "C" {
23529    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_verify_cb"]
23530    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
23531}
23532pub type X509_STORE_CTX_get_crl_fn = ::std::option::Option<
23533    unsafe extern "C" fn(
23534        ctx: *mut X509_STORE_CTX,
23535        crl: *mut *mut X509_CRL,
23536        x: *mut X509,
23537    ) -> ::std::os::raw::c_int,
23538>;
23539pub type X509_STORE_CTX_check_crl_fn = ::std::option::Option<
23540    unsafe extern "C" fn(ctx: *mut X509_STORE_CTX, crl: *mut X509_CRL) -> ::std::os::raw::c_int,
23541>;
23542extern "C" {
23543    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_get_crl"]
23544    pub fn X509_STORE_set_get_crl(store: *mut X509_STORE, get_crl: X509_STORE_CTX_get_crl_fn);
23545}
23546extern "C" {
23547    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_set_check_crl"]
23548    pub fn X509_STORE_set_check_crl(store: *mut X509_STORE, check_crl: X509_STORE_CTX_check_crl_fn);
23549}
23550extern "C" {
23551    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set_chain"]
23552    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23553}
23554extern "C" {
23555    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_set0_untrusted"]
23556    pub fn X509_STORE_CTX_set0_untrusted(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
23557}
23558#[repr(C)]
23559#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23560pub struct x509_purpose_st {
23561    pub purpose: ::std::os::raw::c_int,
23562    pub trust: ::std::os::raw::c_int,
23563    pub flags: ::std::os::raw::c_int,
23564    pub check_purpose: ::std::option::Option<
23565        unsafe extern "C" fn(
23566            arg1: *const x509_purpose_st,
23567            arg2: *const X509,
23568            arg3: ::std::os::raw::c_int,
23569        ) -> ::std::os::raw::c_int,
23570    >,
23571    pub name: *mut ::std::os::raw::c_char,
23572    pub sname: *mut ::std::os::raw::c_char,
23573    pub usr_data: *mut ::std::os::raw::c_void,
23574}
23575#[test]
23576fn bindgen_test_layout_x509_purpose_st() {
23577    const UNINIT: ::std::mem::MaybeUninit<x509_purpose_st> = ::std::mem::MaybeUninit::uninit();
23578    let ptr = UNINIT.as_ptr();
23579    assert_eq!(
23580        ::std::mem::size_of::<x509_purpose_st>(),
23581        48usize,
23582        "Size of x509_purpose_st"
23583    );
23584    assert_eq!(
23585        ::std::mem::align_of::<x509_purpose_st>(),
23586        8usize,
23587        "Alignment of x509_purpose_st"
23588    );
23589    assert_eq!(
23590        unsafe { ::std::ptr::addr_of!((*ptr).purpose) as usize - ptr as usize },
23591        0usize,
23592        "Offset of field: x509_purpose_st::purpose"
23593    );
23594    assert_eq!(
23595        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23596        4usize,
23597        "Offset of field: x509_purpose_st::trust"
23598    );
23599    assert_eq!(
23600        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23601        8usize,
23602        "Offset of field: x509_purpose_st::flags"
23603    );
23604    assert_eq!(
23605        unsafe { ::std::ptr::addr_of!((*ptr).check_purpose) as usize - ptr as usize },
23606        16usize,
23607        "Offset of field: x509_purpose_st::check_purpose"
23608    );
23609    assert_eq!(
23610        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23611        24usize,
23612        "Offset of field: x509_purpose_st::name"
23613    );
23614    assert_eq!(
23615        unsafe { ::std::ptr::addr_of!((*ptr).sname) as usize - ptr as usize },
23616        32usize,
23617        "Offset of field: x509_purpose_st::sname"
23618    );
23619    assert_eq!(
23620        unsafe { ::std::ptr::addr_of!((*ptr).usr_data) as usize - ptr as usize },
23621        40usize,
23622        "Offset of field: x509_purpose_st::usr_data"
23623    );
23624}
23625impl Default for x509_purpose_st {
23626    fn default() -> Self {
23627        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23628        unsafe {
23629            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23630            s.assume_init()
23631        }
23632    }
23633}
23634pub type X509_PURPOSE = x509_purpose_st;
23635#[repr(C)]
23636#[derive(Debug, Copy, Clone)]
23637pub struct stack_st_X509_PURPOSE {
23638    _unused: [u8; 0],
23639}
23640pub type sk_X509_PURPOSE_free_func =
23641    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_PURPOSE)>;
23642pub type sk_X509_PURPOSE_copy_func =
23643    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_PURPOSE) -> *mut X509_PURPOSE>;
23644pub type sk_X509_PURPOSE_cmp_func = ::std::option::Option<
23645    unsafe extern "C" fn(
23646        arg1: *const *const X509_PURPOSE,
23647        arg2: *const *const X509_PURPOSE,
23648    ) -> ::std::os::raw::c_int,
23649>;
23650pub type sk_X509_PURPOSE_delete_if_func = ::std::option::Option<
23651    unsafe extern "C" fn(
23652        arg1: *mut X509_PURPOSE,
23653        arg2: *mut ::std::os::raw::c_void,
23654    ) -> ::std::os::raw::c_int,
23655>;
23656extern "C" {
23657    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_get0_objects"]
23658    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
23659}
23660extern "C" {
23661    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get_by_sname"]
23662    pub fn X509_PURPOSE_get_by_sname(sname: *const ::std::os::raw::c_char)
23663        -> ::std::os::raw::c_int;
23664}
23665extern "C" {
23666    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get0"]
23667    pub fn X509_PURPOSE_get0(id: ::std::os::raw::c_int) -> *const X509_PURPOSE;
23668}
23669extern "C" {
23670    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get_id"]
23671    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::std::os::raw::c_int;
23672}
23673#[repr(C)]
23674#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23675pub struct X509_algor_st {
23676    pub algorithm: *mut ASN1_OBJECT,
23677    pub parameter: *mut ASN1_TYPE,
23678}
23679#[test]
23680fn bindgen_test_layout_X509_algor_st() {
23681    const UNINIT: ::std::mem::MaybeUninit<X509_algor_st> = ::std::mem::MaybeUninit::uninit();
23682    let ptr = UNINIT.as_ptr();
23683    assert_eq!(
23684        ::std::mem::size_of::<X509_algor_st>(),
23685        16usize,
23686        "Size of X509_algor_st"
23687    );
23688    assert_eq!(
23689        ::std::mem::align_of::<X509_algor_st>(),
23690        8usize,
23691        "Alignment of X509_algor_st"
23692    );
23693    assert_eq!(
23694        unsafe { ::std::ptr::addr_of!((*ptr).algorithm) as usize - ptr as usize },
23695        0usize,
23696        "Offset of field: X509_algor_st::algorithm"
23697    );
23698    assert_eq!(
23699        unsafe { ::std::ptr::addr_of!((*ptr).parameter) as usize - ptr as usize },
23700        8usize,
23701        "Offset of field: X509_algor_st::parameter"
23702    );
23703}
23704impl Default for X509_algor_st {
23705    fn default() -> Self {
23706        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23707        unsafe {
23708            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23709            s.assume_init()
23710        }
23711    }
23712}
23713#[repr(C)]
23714#[derive(Debug, Copy, Clone)]
23715pub struct stack_st_DIST_POINT {
23716    _unused: [u8; 0],
23717}
23718#[repr(C)]
23719#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23720pub struct x509_trust_st {
23721    pub trust: ::std::os::raw::c_int,
23722    pub flags: ::std::os::raw::c_int,
23723    pub check_trust: ::std::option::Option<
23724        unsafe extern "C" fn(arg1: *const X509_TRUST, arg2: *mut X509) -> ::std::os::raw::c_int,
23725    >,
23726    pub name: *mut ::std::os::raw::c_char,
23727    pub arg1: ::std::os::raw::c_int,
23728    pub arg2: *mut ::std::os::raw::c_void,
23729}
23730#[test]
23731fn bindgen_test_layout_x509_trust_st() {
23732    const UNINIT: ::std::mem::MaybeUninit<x509_trust_st> = ::std::mem::MaybeUninit::uninit();
23733    let ptr = UNINIT.as_ptr();
23734    assert_eq!(
23735        ::std::mem::size_of::<x509_trust_st>(),
23736        40usize,
23737        "Size of x509_trust_st"
23738    );
23739    assert_eq!(
23740        ::std::mem::align_of::<x509_trust_st>(),
23741        8usize,
23742        "Alignment of x509_trust_st"
23743    );
23744    assert_eq!(
23745        unsafe { ::std::ptr::addr_of!((*ptr).trust) as usize - ptr as usize },
23746        0usize,
23747        "Offset of field: x509_trust_st::trust"
23748    );
23749    assert_eq!(
23750        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
23751        4usize,
23752        "Offset of field: x509_trust_st::flags"
23753    );
23754    assert_eq!(
23755        unsafe { ::std::ptr::addr_of!((*ptr).check_trust) as usize - ptr as usize },
23756        8usize,
23757        "Offset of field: x509_trust_st::check_trust"
23758    );
23759    assert_eq!(
23760        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
23761        16usize,
23762        "Offset of field: x509_trust_st::name"
23763    );
23764    assert_eq!(
23765        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
23766        24usize,
23767        "Offset of field: x509_trust_st::arg1"
23768    );
23769    assert_eq!(
23770        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
23771        32usize,
23772        "Offset of field: x509_trust_st::arg2"
23773    );
23774}
23775impl Default for x509_trust_st {
23776    fn default() -> Self {
23777        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23778        unsafe {
23779            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23780            s.assume_init()
23781        }
23782    }
23783}
23784#[repr(C)]
23785#[derive(Debug, Copy, Clone)]
23786pub struct stack_st_X509_TRUST {
23787    _unused: [u8; 0],
23788}
23789pub type sk_X509_TRUST_free_func =
23790    ::std::option::Option<unsafe extern "C" fn(arg1: *mut X509_TRUST)>;
23791pub type sk_X509_TRUST_copy_func =
23792    ::std::option::Option<unsafe extern "C" fn(arg1: *const X509_TRUST) -> *mut X509_TRUST>;
23793pub type sk_X509_TRUST_cmp_func = ::std::option::Option<
23794    unsafe extern "C" fn(
23795        arg1: *const *const X509_TRUST,
23796        arg2: *const *const X509_TRUST,
23797    ) -> ::std::os::raw::c_int,
23798>;
23799pub type sk_X509_TRUST_delete_if_func = ::std::option::Option<
23800    unsafe extern "C" fn(
23801        arg1: *mut X509_TRUST,
23802        arg2: *mut ::std::os::raw::c_void,
23803    ) -> ::std::os::raw::c_int,
23804>;
23805extern "C" {
23806    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_set"]
23807    pub fn X509_TRUST_set(
23808        t: *mut ::std::os::raw::c_int,
23809        trust: ::std::os::raw::c_int,
23810    ) -> ::std::os::raw::c_int;
23811}
23812extern "C" {
23813    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get_count"]
23814    pub fn X509_TRUST_get_count() -> ::std::os::raw::c_int;
23815}
23816extern "C" {
23817    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get0"]
23818    pub fn X509_TRUST_get0(idx: ::std::os::raw::c_int) -> *const X509_TRUST;
23819}
23820extern "C" {
23821    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get_by_id"]
23822    pub fn X509_TRUST_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
23823}
23824extern "C" {
23825    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get_flags"]
23826    pub fn X509_TRUST_get_flags(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23827}
23828extern "C" {
23829    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get0_name"]
23830    pub fn X509_TRUST_get0_name(xp: *const X509_TRUST) -> *mut ::std::os::raw::c_char;
23831}
23832extern "C" {
23833    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_get_trust"]
23834    pub fn X509_TRUST_get_trust(xp: *const X509_TRUST) -> ::std::os::raw::c_int;
23835}
23836extern "C" {
23837    #[link_name = "\u{1}aws_lc_0_40_0_X509_TRUST_cleanup"]
23838    pub fn X509_TRUST_cleanup();
23839}
23840extern "C" {
23841    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_get0_X509_CRL"]
23842    pub fn X509_OBJECT_get0_X509_CRL(a: *const X509_OBJECT) -> *mut X509_CRL;
23843}
23844extern "C" {
23845    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_set1_X509"]
23846    pub fn X509_OBJECT_set1_X509(a: *mut X509_OBJECT, obj: *mut X509) -> ::std::os::raw::c_int;
23847}
23848extern "C" {
23849    #[link_name = "\u{1}aws_lc_0_40_0_X509_OBJECT_set1_X509_CRL"]
23850    pub fn X509_OBJECT_set1_X509_CRL(
23851        a: *mut X509_OBJECT,
23852        obj: *mut X509_CRL,
23853    ) -> ::std::os::raw::c_int;
23854}
23855extern "C" {
23856    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_lock"]
23857    pub fn X509_STORE_lock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23858}
23859extern "C" {
23860    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_unlock"]
23861    pub fn X509_STORE_unlock(v: *mut X509_STORE) -> ::std::os::raw::c_int;
23862}
23863extern "C" {
23864    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get1_certs"]
23865    pub fn X509_STORE_CTX_get1_certs(
23866        st: *mut X509_STORE_CTX,
23867        nm: *mut X509_NAME,
23868    ) -> *mut stack_st_X509;
23869}
23870extern "C" {
23871    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get1_crls"]
23872    pub fn X509_STORE_CTX_get1_crls(
23873        st: *mut X509_STORE_CTX,
23874        nm: *mut X509_NAME,
23875    ) -> *mut stack_st_X509_CRL;
23876}
23877extern "C" {
23878    #[link_name = "\u{1}aws_lc_0_40_0_X509_STORE_CTX_get_by_subject"]
23879    pub fn X509_STORE_CTX_get_by_subject(
23880        vs: *mut X509_STORE_CTX,
23881        type_: ::std::os::raw::c_int,
23882        name: *mut X509_NAME,
23883        ret: *mut X509_OBJECT,
23884    ) -> ::std::os::raw::c_int;
23885}
23886#[repr(C)]
23887#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23888pub struct BASIC_CONSTRAINTS_st {
23889    pub ca: ASN1_BOOLEAN,
23890    pub pathlen: *mut ASN1_INTEGER,
23891}
23892#[test]
23893fn bindgen_test_layout_BASIC_CONSTRAINTS_st() {
23894    const UNINIT: ::std::mem::MaybeUninit<BASIC_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
23895    let ptr = UNINIT.as_ptr();
23896    assert_eq!(
23897        ::std::mem::size_of::<BASIC_CONSTRAINTS_st>(),
23898        16usize,
23899        "Size of BASIC_CONSTRAINTS_st"
23900    );
23901    assert_eq!(
23902        ::std::mem::align_of::<BASIC_CONSTRAINTS_st>(),
23903        8usize,
23904        "Alignment of BASIC_CONSTRAINTS_st"
23905    );
23906    assert_eq!(
23907        unsafe { ::std::ptr::addr_of!((*ptr).ca) as usize - ptr as usize },
23908        0usize,
23909        "Offset of field: BASIC_CONSTRAINTS_st::ca"
23910    );
23911    assert_eq!(
23912        unsafe { ::std::ptr::addr_of!((*ptr).pathlen) as usize - ptr as usize },
23913        8usize,
23914        "Offset of field: BASIC_CONSTRAINTS_st::pathlen"
23915    );
23916}
23917impl Default for BASIC_CONSTRAINTS_st {
23918    fn default() -> Self {
23919        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23920        unsafe {
23921            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23922            s.assume_init()
23923        }
23924    }
23925}
23926#[repr(C)]
23927#[derive(Debug, Copy, Clone, PartialEq, Eq)]
23928pub struct ACCESS_DESCRIPTION_st {
23929    pub method: *mut ASN1_OBJECT,
23930    pub location: *mut GENERAL_NAME,
23931}
23932#[test]
23933fn bindgen_test_layout_ACCESS_DESCRIPTION_st() {
23934    const UNINIT: ::std::mem::MaybeUninit<ACCESS_DESCRIPTION_st> =
23935        ::std::mem::MaybeUninit::uninit();
23936    let ptr = UNINIT.as_ptr();
23937    assert_eq!(
23938        ::std::mem::size_of::<ACCESS_DESCRIPTION_st>(),
23939        16usize,
23940        "Size of ACCESS_DESCRIPTION_st"
23941    );
23942    assert_eq!(
23943        ::std::mem::align_of::<ACCESS_DESCRIPTION_st>(),
23944        8usize,
23945        "Alignment of ACCESS_DESCRIPTION_st"
23946    );
23947    assert_eq!(
23948        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
23949        0usize,
23950        "Offset of field: ACCESS_DESCRIPTION_st::method"
23951    );
23952    assert_eq!(
23953        unsafe { ::std::ptr::addr_of!((*ptr).location) as usize - ptr as usize },
23954        8usize,
23955        "Offset of field: ACCESS_DESCRIPTION_st::location"
23956    );
23957}
23958impl Default for ACCESS_DESCRIPTION_st {
23959    fn default() -> Self {
23960        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
23961        unsafe {
23962            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
23963            s.assume_init()
23964        }
23965    }
23966}
23967pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
23968#[repr(C)]
23969#[derive(Debug, Copy, Clone)]
23970pub struct stack_st_ACCESS_DESCRIPTION {
23971    _unused: [u8; 0],
23972}
23973pub type sk_ACCESS_DESCRIPTION_free_func =
23974    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
23975pub type sk_ACCESS_DESCRIPTION_copy_func = ::std::option::Option<
23976    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
23977>;
23978pub type sk_ACCESS_DESCRIPTION_cmp_func = ::std::option::Option<
23979    unsafe extern "C" fn(
23980        arg1: *const *const ACCESS_DESCRIPTION,
23981        arg2: *const *const ACCESS_DESCRIPTION,
23982    ) -> ::std::os::raw::c_int,
23983>;
23984pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::std::option::Option<
23985    unsafe extern "C" fn(
23986        arg1: *mut ACCESS_DESCRIPTION,
23987        arg2: *mut ::std::os::raw::c_void,
23988    ) -> ::std::os::raw::c_int,
23989>;
23990pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
23991pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
23992#[repr(C)]
23993#[derive(Copy, Clone)]
23994pub struct DIST_POINT_NAME_st {
23995    pub type_: ::std::os::raw::c_int,
23996    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
23997    pub dpname: *mut X509_NAME,
23998}
23999#[repr(C)]
24000#[derive(Copy, Clone)]
24001pub union DIST_POINT_NAME_st__bindgen_ty_1 {
24002    pub fullname: *mut GENERAL_NAMES,
24003    pub relativename: *mut stack_st_X509_NAME_ENTRY,
24004}
24005#[test]
24006fn bindgen_test_layout_DIST_POINT_NAME_st__bindgen_ty_1() {
24007    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st__bindgen_ty_1> =
24008        ::std::mem::MaybeUninit::uninit();
24009    let ptr = UNINIT.as_ptr();
24010    assert_eq!(
24011        ::std::mem::size_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24012        8usize,
24013        "Size of DIST_POINT_NAME_st__bindgen_ty_1"
24014    );
24015    assert_eq!(
24016        ::std::mem::align_of::<DIST_POINT_NAME_st__bindgen_ty_1>(),
24017        8usize,
24018        "Alignment of DIST_POINT_NAME_st__bindgen_ty_1"
24019    );
24020    assert_eq!(
24021        unsafe { ::std::ptr::addr_of!((*ptr).fullname) as usize - ptr as usize },
24022        0usize,
24023        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::fullname"
24024    );
24025    assert_eq!(
24026        unsafe { ::std::ptr::addr_of!((*ptr).relativename) as usize - ptr as usize },
24027        0usize,
24028        "Offset of field: DIST_POINT_NAME_st__bindgen_ty_1::relativename"
24029    );
24030}
24031impl Default for DIST_POINT_NAME_st__bindgen_ty_1 {
24032    fn default() -> Self {
24033        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24034        unsafe {
24035            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24036            s.assume_init()
24037        }
24038    }
24039}
24040#[test]
24041fn bindgen_test_layout_DIST_POINT_NAME_st() {
24042    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_NAME_st> = ::std::mem::MaybeUninit::uninit();
24043    let ptr = UNINIT.as_ptr();
24044    assert_eq!(
24045        ::std::mem::size_of::<DIST_POINT_NAME_st>(),
24046        24usize,
24047        "Size of DIST_POINT_NAME_st"
24048    );
24049    assert_eq!(
24050        ::std::mem::align_of::<DIST_POINT_NAME_st>(),
24051        8usize,
24052        "Alignment of DIST_POINT_NAME_st"
24053    );
24054    assert_eq!(
24055        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
24056        0usize,
24057        "Offset of field: DIST_POINT_NAME_st::type_"
24058    );
24059    assert_eq!(
24060        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
24061        8usize,
24062        "Offset of field: DIST_POINT_NAME_st::name"
24063    );
24064    assert_eq!(
24065        unsafe { ::std::ptr::addr_of!((*ptr).dpname) as usize - ptr as usize },
24066        16usize,
24067        "Offset of field: DIST_POINT_NAME_st::dpname"
24068    );
24069}
24070impl Default for DIST_POINT_NAME_st {
24071    fn default() -> Self {
24072        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24073        unsafe {
24074            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24075            s.assume_init()
24076        }
24077    }
24078}
24079pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
24080#[repr(C)]
24081#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24082pub struct DIST_POINT_st {
24083    pub distpoint: *mut DIST_POINT_NAME,
24084    pub reasons: *mut ASN1_BIT_STRING,
24085    pub CRLissuer: *mut GENERAL_NAMES,
24086}
24087#[test]
24088fn bindgen_test_layout_DIST_POINT_st() {
24089    const UNINIT: ::std::mem::MaybeUninit<DIST_POINT_st> = ::std::mem::MaybeUninit::uninit();
24090    let ptr = UNINIT.as_ptr();
24091    assert_eq!(
24092        ::std::mem::size_of::<DIST_POINT_st>(),
24093        24usize,
24094        "Size of DIST_POINT_st"
24095    );
24096    assert_eq!(
24097        ::std::mem::align_of::<DIST_POINT_st>(),
24098        8usize,
24099        "Alignment of DIST_POINT_st"
24100    );
24101    assert_eq!(
24102        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24103        0usize,
24104        "Offset of field: DIST_POINT_st::distpoint"
24105    );
24106    assert_eq!(
24107        unsafe { ::std::ptr::addr_of!((*ptr).reasons) as usize - ptr as usize },
24108        8usize,
24109        "Offset of field: DIST_POINT_st::reasons"
24110    );
24111    assert_eq!(
24112        unsafe { ::std::ptr::addr_of!((*ptr).CRLissuer) as usize - ptr as usize },
24113        16usize,
24114        "Offset of field: DIST_POINT_st::CRLissuer"
24115    );
24116}
24117impl Default for DIST_POINT_st {
24118    fn default() -> Self {
24119        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24120        unsafe {
24121            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24122            s.assume_init()
24123        }
24124    }
24125}
24126pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
24127pub type sk_DIST_POINT_free_func =
24128    ::std::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
24129pub type sk_DIST_POINT_copy_func =
24130    ::std::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
24131pub type sk_DIST_POINT_cmp_func = ::std::option::Option<
24132    unsafe extern "C" fn(
24133        arg1: *const *const DIST_POINT,
24134        arg2: *const *const DIST_POINT,
24135    ) -> ::std::os::raw::c_int,
24136>;
24137pub type sk_DIST_POINT_delete_if_func = ::std::option::Option<
24138    unsafe extern "C" fn(
24139        arg1: *mut DIST_POINT,
24140        arg2: *mut ::std::os::raw::c_void,
24141    ) -> ::std::os::raw::c_int,
24142>;
24143#[repr(C)]
24144#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24145pub struct AUTHORITY_KEYID_st {
24146    pub keyid: *mut ASN1_OCTET_STRING,
24147    pub issuer: *mut GENERAL_NAMES,
24148    pub serial: *mut ASN1_INTEGER,
24149}
24150#[test]
24151fn bindgen_test_layout_AUTHORITY_KEYID_st() {
24152    const UNINIT: ::std::mem::MaybeUninit<AUTHORITY_KEYID_st> = ::std::mem::MaybeUninit::uninit();
24153    let ptr = UNINIT.as_ptr();
24154    assert_eq!(
24155        ::std::mem::size_of::<AUTHORITY_KEYID_st>(),
24156        24usize,
24157        "Size of AUTHORITY_KEYID_st"
24158    );
24159    assert_eq!(
24160        ::std::mem::align_of::<AUTHORITY_KEYID_st>(),
24161        8usize,
24162        "Alignment of AUTHORITY_KEYID_st"
24163    );
24164    assert_eq!(
24165        unsafe { ::std::ptr::addr_of!((*ptr).keyid) as usize - ptr as usize },
24166        0usize,
24167        "Offset of field: AUTHORITY_KEYID_st::keyid"
24168    );
24169    assert_eq!(
24170        unsafe { ::std::ptr::addr_of!((*ptr).issuer) as usize - ptr as usize },
24171        8usize,
24172        "Offset of field: AUTHORITY_KEYID_st::issuer"
24173    );
24174    assert_eq!(
24175        unsafe { ::std::ptr::addr_of!((*ptr).serial) as usize - ptr as usize },
24176        16usize,
24177        "Offset of field: AUTHORITY_KEYID_st::serial"
24178    );
24179}
24180impl Default for AUTHORITY_KEYID_st {
24181    fn default() -> Self {
24182        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24183        unsafe {
24184            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24185            s.assume_init()
24186        }
24187    }
24188}
24189#[repr(C)]
24190#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24191pub struct NOTICEREF_st {
24192    pub organization: *mut ASN1_STRING,
24193    pub noticenos: *mut stack_st_ASN1_INTEGER,
24194}
24195#[test]
24196fn bindgen_test_layout_NOTICEREF_st() {
24197    const UNINIT: ::std::mem::MaybeUninit<NOTICEREF_st> = ::std::mem::MaybeUninit::uninit();
24198    let ptr = UNINIT.as_ptr();
24199    assert_eq!(
24200        ::std::mem::size_of::<NOTICEREF_st>(),
24201        16usize,
24202        "Size of NOTICEREF_st"
24203    );
24204    assert_eq!(
24205        ::std::mem::align_of::<NOTICEREF_st>(),
24206        8usize,
24207        "Alignment of NOTICEREF_st"
24208    );
24209    assert_eq!(
24210        unsafe { ::std::ptr::addr_of!((*ptr).organization) as usize - ptr as usize },
24211        0usize,
24212        "Offset of field: NOTICEREF_st::organization"
24213    );
24214    assert_eq!(
24215        unsafe { ::std::ptr::addr_of!((*ptr).noticenos) as usize - ptr as usize },
24216        8usize,
24217        "Offset of field: NOTICEREF_st::noticenos"
24218    );
24219}
24220impl Default for NOTICEREF_st {
24221    fn default() -> Self {
24222        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24223        unsafe {
24224            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24225            s.assume_init()
24226        }
24227    }
24228}
24229pub type NOTICEREF = NOTICEREF_st;
24230#[repr(C)]
24231#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24232pub struct USERNOTICE_st {
24233    pub noticeref: *mut NOTICEREF,
24234    pub exptext: *mut ASN1_STRING,
24235}
24236#[test]
24237fn bindgen_test_layout_USERNOTICE_st() {
24238    const UNINIT: ::std::mem::MaybeUninit<USERNOTICE_st> = ::std::mem::MaybeUninit::uninit();
24239    let ptr = UNINIT.as_ptr();
24240    assert_eq!(
24241        ::std::mem::size_of::<USERNOTICE_st>(),
24242        16usize,
24243        "Size of USERNOTICE_st"
24244    );
24245    assert_eq!(
24246        ::std::mem::align_of::<USERNOTICE_st>(),
24247        8usize,
24248        "Alignment of USERNOTICE_st"
24249    );
24250    assert_eq!(
24251        unsafe { ::std::ptr::addr_of!((*ptr).noticeref) as usize - ptr as usize },
24252        0usize,
24253        "Offset of field: USERNOTICE_st::noticeref"
24254    );
24255    assert_eq!(
24256        unsafe { ::std::ptr::addr_of!((*ptr).exptext) as usize - ptr as usize },
24257        8usize,
24258        "Offset of field: USERNOTICE_st::exptext"
24259    );
24260}
24261impl Default for USERNOTICE_st {
24262    fn default() -> Self {
24263        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24264        unsafe {
24265            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24266            s.assume_init()
24267        }
24268    }
24269}
24270pub type USERNOTICE = USERNOTICE_st;
24271#[repr(C)]
24272#[derive(Copy, Clone)]
24273pub struct POLICYQUALINFO_st {
24274    pub pqualid: *mut ASN1_OBJECT,
24275    pub d: POLICYQUALINFO_st__bindgen_ty_1,
24276}
24277#[repr(C)]
24278#[derive(Copy, Clone)]
24279pub union POLICYQUALINFO_st__bindgen_ty_1 {
24280    pub cpsuri: *mut ASN1_IA5STRING,
24281    pub usernotice: *mut USERNOTICE,
24282    pub other: *mut ASN1_TYPE,
24283}
24284#[test]
24285fn bindgen_test_layout_POLICYQUALINFO_st__bindgen_ty_1() {
24286    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st__bindgen_ty_1> =
24287        ::std::mem::MaybeUninit::uninit();
24288    let ptr = UNINIT.as_ptr();
24289    assert_eq!(
24290        ::std::mem::size_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24291        8usize,
24292        "Size of POLICYQUALINFO_st__bindgen_ty_1"
24293    );
24294    assert_eq!(
24295        ::std::mem::align_of::<POLICYQUALINFO_st__bindgen_ty_1>(),
24296        8usize,
24297        "Alignment of POLICYQUALINFO_st__bindgen_ty_1"
24298    );
24299    assert_eq!(
24300        unsafe { ::std::ptr::addr_of!((*ptr).cpsuri) as usize - ptr as usize },
24301        0usize,
24302        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::cpsuri"
24303    );
24304    assert_eq!(
24305        unsafe { ::std::ptr::addr_of!((*ptr).usernotice) as usize - ptr as usize },
24306        0usize,
24307        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::usernotice"
24308    );
24309    assert_eq!(
24310        unsafe { ::std::ptr::addr_of!((*ptr).other) as usize - ptr as usize },
24311        0usize,
24312        "Offset of field: POLICYQUALINFO_st__bindgen_ty_1::other"
24313    );
24314}
24315impl Default for POLICYQUALINFO_st__bindgen_ty_1 {
24316    fn default() -> Self {
24317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24318        unsafe {
24319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24320            s.assume_init()
24321        }
24322    }
24323}
24324#[test]
24325fn bindgen_test_layout_POLICYQUALINFO_st() {
24326    const UNINIT: ::std::mem::MaybeUninit<POLICYQUALINFO_st> = ::std::mem::MaybeUninit::uninit();
24327    let ptr = UNINIT.as_ptr();
24328    assert_eq!(
24329        ::std::mem::size_of::<POLICYQUALINFO_st>(),
24330        16usize,
24331        "Size of POLICYQUALINFO_st"
24332    );
24333    assert_eq!(
24334        ::std::mem::align_of::<POLICYQUALINFO_st>(),
24335        8usize,
24336        "Alignment of POLICYQUALINFO_st"
24337    );
24338    assert_eq!(
24339        unsafe { ::std::ptr::addr_of!((*ptr).pqualid) as usize - ptr as usize },
24340        0usize,
24341        "Offset of field: POLICYQUALINFO_st::pqualid"
24342    );
24343    assert_eq!(
24344        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
24345        8usize,
24346        "Offset of field: POLICYQUALINFO_st::d"
24347    );
24348}
24349impl Default for POLICYQUALINFO_st {
24350    fn default() -> Self {
24351        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24352        unsafe {
24353            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24354            s.assume_init()
24355        }
24356    }
24357}
24358pub type POLICYQUALINFO = POLICYQUALINFO_st;
24359#[repr(C)]
24360#[derive(Debug, Copy, Clone)]
24361pub struct stack_st_POLICYQUALINFO {
24362    _unused: [u8; 0],
24363}
24364pub type sk_POLICYQUALINFO_free_func =
24365    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
24366pub type sk_POLICYQUALINFO_copy_func =
24367    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO>;
24368pub type sk_POLICYQUALINFO_cmp_func = ::std::option::Option<
24369    unsafe extern "C" fn(
24370        arg1: *const *const POLICYQUALINFO,
24371        arg2: *const *const POLICYQUALINFO,
24372    ) -> ::std::os::raw::c_int,
24373>;
24374pub type sk_POLICYQUALINFO_delete_if_func = ::std::option::Option<
24375    unsafe extern "C" fn(
24376        arg1: *mut POLICYQUALINFO,
24377        arg2: *mut ::std::os::raw::c_void,
24378    ) -> ::std::os::raw::c_int,
24379>;
24380#[repr(C)]
24381#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24382pub struct POLICYINFO_st {
24383    pub policyid: *mut ASN1_OBJECT,
24384    pub qualifiers: *mut stack_st_POLICYQUALINFO,
24385}
24386#[test]
24387fn bindgen_test_layout_POLICYINFO_st() {
24388    const UNINIT: ::std::mem::MaybeUninit<POLICYINFO_st> = ::std::mem::MaybeUninit::uninit();
24389    let ptr = UNINIT.as_ptr();
24390    assert_eq!(
24391        ::std::mem::size_of::<POLICYINFO_st>(),
24392        16usize,
24393        "Size of POLICYINFO_st"
24394    );
24395    assert_eq!(
24396        ::std::mem::align_of::<POLICYINFO_st>(),
24397        8usize,
24398        "Alignment of POLICYINFO_st"
24399    );
24400    assert_eq!(
24401        unsafe { ::std::ptr::addr_of!((*ptr).policyid) as usize - ptr as usize },
24402        0usize,
24403        "Offset of field: POLICYINFO_st::policyid"
24404    );
24405    assert_eq!(
24406        unsafe { ::std::ptr::addr_of!((*ptr).qualifiers) as usize - ptr as usize },
24407        8usize,
24408        "Offset of field: POLICYINFO_st::qualifiers"
24409    );
24410}
24411impl Default for POLICYINFO_st {
24412    fn default() -> Self {
24413        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24414        unsafe {
24415            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24416            s.assume_init()
24417        }
24418    }
24419}
24420pub type POLICYINFO = POLICYINFO_st;
24421#[repr(C)]
24422#[derive(Debug, Copy, Clone)]
24423pub struct stack_st_POLICYINFO {
24424    _unused: [u8; 0],
24425}
24426pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
24427pub type sk_POLICYINFO_free_func =
24428    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
24429pub type sk_POLICYINFO_copy_func =
24430    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
24431pub type sk_POLICYINFO_cmp_func = ::std::option::Option<
24432    unsafe extern "C" fn(
24433        arg1: *const *const POLICYINFO,
24434        arg2: *const *const POLICYINFO,
24435    ) -> ::std::os::raw::c_int,
24436>;
24437pub type sk_POLICYINFO_delete_if_func = ::std::option::Option<
24438    unsafe extern "C" fn(
24439        arg1: *mut POLICYINFO,
24440        arg2: *mut ::std::os::raw::c_void,
24441    ) -> ::std::os::raw::c_int,
24442>;
24443#[repr(C)]
24444#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24445pub struct POLICY_MAPPING_st {
24446    pub issuerDomainPolicy: *mut ASN1_OBJECT,
24447    pub subjectDomainPolicy: *mut ASN1_OBJECT,
24448}
24449#[test]
24450fn bindgen_test_layout_POLICY_MAPPING_st() {
24451    const UNINIT: ::std::mem::MaybeUninit<POLICY_MAPPING_st> = ::std::mem::MaybeUninit::uninit();
24452    let ptr = UNINIT.as_ptr();
24453    assert_eq!(
24454        ::std::mem::size_of::<POLICY_MAPPING_st>(),
24455        16usize,
24456        "Size of POLICY_MAPPING_st"
24457    );
24458    assert_eq!(
24459        ::std::mem::align_of::<POLICY_MAPPING_st>(),
24460        8usize,
24461        "Alignment of POLICY_MAPPING_st"
24462    );
24463    assert_eq!(
24464        unsafe { ::std::ptr::addr_of!((*ptr).issuerDomainPolicy) as usize - ptr as usize },
24465        0usize,
24466        "Offset of field: POLICY_MAPPING_st::issuerDomainPolicy"
24467    );
24468    assert_eq!(
24469        unsafe { ::std::ptr::addr_of!((*ptr).subjectDomainPolicy) as usize - ptr as usize },
24470        8usize,
24471        "Offset of field: POLICY_MAPPING_st::subjectDomainPolicy"
24472    );
24473}
24474impl Default for POLICY_MAPPING_st {
24475    fn default() -> Self {
24476        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24477        unsafe {
24478            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24479            s.assume_init()
24480        }
24481    }
24482}
24483pub type POLICY_MAPPING = POLICY_MAPPING_st;
24484#[repr(C)]
24485#[derive(Debug, Copy, Clone)]
24486pub struct stack_st_POLICY_MAPPING {
24487    _unused: [u8; 0],
24488}
24489pub type sk_POLICY_MAPPING_free_func =
24490    ::std::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
24491pub type sk_POLICY_MAPPING_copy_func =
24492    ::std::option::Option<unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING>;
24493pub type sk_POLICY_MAPPING_cmp_func = ::std::option::Option<
24494    unsafe extern "C" fn(
24495        arg1: *const *const POLICY_MAPPING,
24496        arg2: *const *const POLICY_MAPPING,
24497    ) -> ::std::os::raw::c_int,
24498>;
24499pub type sk_POLICY_MAPPING_delete_if_func = ::std::option::Option<
24500    unsafe extern "C" fn(
24501        arg1: *mut POLICY_MAPPING,
24502        arg2: *mut ::std::os::raw::c_void,
24503    ) -> ::std::os::raw::c_int,
24504>;
24505pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
24506#[repr(C)]
24507#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24508pub struct GENERAL_SUBTREE_st {
24509    pub base: *mut GENERAL_NAME,
24510    pub minimum: *mut ASN1_INTEGER,
24511    pub maximum: *mut ASN1_INTEGER,
24512}
24513#[test]
24514fn bindgen_test_layout_GENERAL_SUBTREE_st() {
24515    const UNINIT: ::std::mem::MaybeUninit<GENERAL_SUBTREE_st> = ::std::mem::MaybeUninit::uninit();
24516    let ptr = UNINIT.as_ptr();
24517    assert_eq!(
24518        ::std::mem::size_of::<GENERAL_SUBTREE_st>(),
24519        24usize,
24520        "Size of GENERAL_SUBTREE_st"
24521    );
24522    assert_eq!(
24523        ::std::mem::align_of::<GENERAL_SUBTREE_st>(),
24524        8usize,
24525        "Alignment of GENERAL_SUBTREE_st"
24526    );
24527    assert_eq!(
24528        unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize },
24529        0usize,
24530        "Offset of field: GENERAL_SUBTREE_st::base"
24531    );
24532    assert_eq!(
24533        unsafe { ::std::ptr::addr_of!((*ptr).minimum) as usize - ptr as usize },
24534        8usize,
24535        "Offset of field: GENERAL_SUBTREE_st::minimum"
24536    );
24537    assert_eq!(
24538        unsafe { ::std::ptr::addr_of!((*ptr).maximum) as usize - ptr as usize },
24539        16usize,
24540        "Offset of field: GENERAL_SUBTREE_st::maximum"
24541    );
24542}
24543impl Default for GENERAL_SUBTREE_st {
24544    fn default() -> Self {
24545        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24546        unsafe {
24547            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24548            s.assume_init()
24549        }
24550    }
24551}
24552pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
24553#[repr(C)]
24554#[derive(Debug, Copy, Clone)]
24555pub struct stack_st_GENERAL_SUBTREE {
24556    _unused: [u8; 0],
24557}
24558pub type sk_GENERAL_SUBTREE_free_func =
24559    ::std::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
24560pub type sk_GENERAL_SUBTREE_copy_func = ::std::option::Option<
24561    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
24562>;
24563pub type sk_GENERAL_SUBTREE_cmp_func = ::std::option::Option<
24564    unsafe extern "C" fn(
24565        arg1: *const *const GENERAL_SUBTREE,
24566        arg2: *const *const GENERAL_SUBTREE,
24567    ) -> ::std::os::raw::c_int,
24568>;
24569pub type sk_GENERAL_SUBTREE_delete_if_func = ::std::option::Option<
24570    unsafe extern "C" fn(
24571        arg1: *mut GENERAL_SUBTREE,
24572        arg2: *mut ::std::os::raw::c_void,
24573    ) -> ::std::os::raw::c_int,
24574>;
24575#[repr(C)]
24576#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24577pub struct NAME_CONSTRAINTS_st {
24578    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24579    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
24580}
24581#[test]
24582fn bindgen_test_layout_NAME_CONSTRAINTS_st() {
24583    const UNINIT: ::std::mem::MaybeUninit<NAME_CONSTRAINTS_st> = ::std::mem::MaybeUninit::uninit();
24584    let ptr = UNINIT.as_ptr();
24585    assert_eq!(
24586        ::std::mem::size_of::<NAME_CONSTRAINTS_st>(),
24587        16usize,
24588        "Size of NAME_CONSTRAINTS_st"
24589    );
24590    assert_eq!(
24591        ::std::mem::align_of::<NAME_CONSTRAINTS_st>(),
24592        8usize,
24593        "Alignment of NAME_CONSTRAINTS_st"
24594    );
24595    assert_eq!(
24596        unsafe { ::std::ptr::addr_of!((*ptr).permittedSubtrees) as usize - ptr as usize },
24597        0usize,
24598        "Offset of field: NAME_CONSTRAINTS_st::permittedSubtrees"
24599    );
24600    assert_eq!(
24601        unsafe { ::std::ptr::addr_of!((*ptr).excludedSubtrees) as usize - ptr as usize },
24602        8usize,
24603        "Offset of field: NAME_CONSTRAINTS_st::excludedSubtrees"
24604    );
24605}
24606impl Default for NAME_CONSTRAINTS_st {
24607    fn default() -> Self {
24608        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24609        unsafe {
24610            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24611            s.assume_init()
24612        }
24613    }
24614}
24615#[repr(C)]
24616#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24617pub struct POLICY_CONSTRAINTS_st {
24618    pub requireExplicitPolicy: *mut ASN1_INTEGER,
24619    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
24620}
24621#[test]
24622fn bindgen_test_layout_POLICY_CONSTRAINTS_st() {
24623    const UNINIT: ::std::mem::MaybeUninit<POLICY_CONSTRAINTS_st> =
24624        ::std::mem::MaybeUninit::uninit();
24625    let ptr = UNINIT.as_ptr();
24626    assert_eq!(
24627        ::std::mem::size_of::<POLICY_CONSTRAINTS_st>(),
24628        16usize,
24629        "Size of POLICY_CONSTRAINTS_st"
24630    );
24631    assert_eq!(
24632        ::std::mem::align_of::<POLICY_CONSTRAINTS_st>(),
24633        8usize,
24634        "Alignment of POLICY_CONSTRAINTS_st"
24635    );
24636    assert_eq!(
24637        unsafe { ::std::ptr::addr_of!((*ptr).requireExplicitPolicy) as usize - ptr as usize },
24638        0usize,
24639        "Offset of field: POLICY_CONSTRAINTS_st::requireExplicitPolicy"
24640    );
24641    assert_eq!(
24642        unsafe { ::std::ptr::addr_of!((*ptr).inhibitPolicyMapping) as usize - ptr as usize },
24643        8usize,
24644        "Offset of field: POLICY_CONSTRAINTS_st::inhibitPolicyMapping"
24645    );
24646}
24647impl Default for POLICY_CONSTRAINTS_st {
24648    fn default() -> Self {
24649        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24650        unsafe {
24651            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24652            s.assume_init()
24653        }
24654    }
24655}
24656pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
24657#[repr(C)]
24658#[derive(Debug, Copy, Clone, PartialEq, Eq)]
24659pub struct ISSUING_DIST_POINT_st {
24660    pub distpoint: *mut DIST_POINT_NAME,
24661    pub onlyuser: ASN1_BOOLEAN,
24662    pub onlyCA: ASN1_BOOLEAN,
24663    pub onlysomereasons: *mut ASN1_BIT_STRING,
24664    pub indirectCRL: ASN1_BOOLEAN,
24665    pub onlyattr: ASN1_BOOLEAN,
24666}
24667#[test]
24668fn bindgen_test_layout_ISSUING_DIST_POINT_st() {
24669    const UNINIT: ::std::mem::MaybeUninit<ISSUING_DIST_POINT_st> =
24670        ::std::mem::MaybeUninit::uninit();
24671    let ptr = UNINIT.as_ptr();
24672    assert_eq!(
24673        ::std::mem::size_of::<ISSUING_DIST_POINT_st>(),
24674        32usize,
24675        "Size of ISSUING_DIST_POINT_st"
24676    );
24677    assert_eq!(
24678        ::std::mem::align_of::<ISSUING_DIST_POINT_st>(),
24679        8usize,
24680        "Alignment of ISSUING_DIST_POINT_st"
24681    );
24682    assert_eq!(
24683        unsafe { ::std::ptr::addr_of!((*ptr).distpoint) as usize - ptr as usize },
24684        0usize,
24685        "Offset of field: ISSUING_DIST_POINT_st::distpoint"
24686    );
24687    assert_eq!(
24688        unsafe { ::std::ptr::addr_of!((*ptr).onlyuser) as usize - ptr as usize },
24689        8usize,
24690        "Offset of field: ISSUING_DIST_POINT_st::onlyuser"
24691    );
24692    assert_eq!(
24693        unsafe { ::std::ptr::addr_of!((*ptr).onlyCA) as usize - ptr as usize },
24694        12usize,
24695        "Offset of field: ISSUING_DIST_POINT_st::onlyCA"
24696    );
24697    assert_eq!(
24698        unsafe { ::std::ptr::addr_of!((*ptr).onlysomereasons) as usize - ptr as usize },
24699        16usize,
24700        "Offset of field: ISSUING_DIST_POINT_st::onlysomereasons"
24701    );
24702    assert_eq!(
24703        unsafe { ::std::ptr::addr_of!((*ptr).indirectCRL) as usize - ptr as usize },
24704        24usize,
24705        "Offset of field: ISSUING_DIST_POINT_st::indirectCRL"
24706    );
24707    assert_eq!(
24708        unsafe { ::std::ptr::addr_of!((*ptr).onlyattr) as usize - ptr as usize },
24709        28usize,
24710        "Offset of field: ISSUING_DIST_POINT_st::onlyattr"
24711    );
24712}
24713impl Default for ISSUING_DIST_POINT_st {
24714    fn default() -> Self {
24715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24716        unsafe {
24717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
24718            s.assume_init()
24719        }
24720    }
24721}
24722extern "C" {
24723    #[link_name = "\u{1}aws_lc_0_40_0_BASIC_CONSTRAINTS_it"]
24724    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
24725}
24726extern "C" {
24727    #[link_name = "\u{1}aws_lc_0_40_0_BASIC_CONSTRAINTS_new"]
24728    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
24729}
24730extern "C" {
24731    #[link_name = "\u{1}aws_lc_0_40_0_BASIC_CONSTRAINTS_free"]
24732    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
24733}
24734extern "C" {
24735    #[link_name = "\u{1}aws_lc_0_40_0_d2i_BASIC_CONSTRAINTS"]
24736    pub fn d2i_BASIC_CONSTRAINTS(
24737        out: *mut *mut BASIC_CONSTRAINTS,
24738        inp: *mut *const u8,
24739        len: ::std::os::raw::c_long,
24740    ) -> *mut BASIC_CONSTRAINTS;
24741}
24742extern "C" {
24743    #[link_name = "\u{1}aws_lc_0_40_0_i2d_BASIC_CONSTRAINTS"]
24744    pub fn i2d_BASIC_CONSTRAINTS(
24745        bcons: *const BASIC_CONSTRAINTS,
24746        outp: *mut *mut u8,
24747    ) -> ::std::os::raw::c_int;
24748}
24749extern "C" {
24750    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_KEYID_it"]
24751    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
24752}
24753extern "C" {
24754    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_KEYID_new"]
24755    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
24756}
24757extern "C" {
24758    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_KEYID_free"]
24759    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
24760}
24761extern "C" {
24762    #[link_name = "\u{1}aws_lc_0_40_0_d2i_AUTHORITY_KEYID"]
24763    pub fn d2i_AUTHORITY_KEYID(
24764        out: *mut *mut AUTHORITY_KEYID,
24765        inp: *mut *const u8,
24766        len: ::std::os::raw::c_long,
24767    ) -> *mut AUTHORITY_KEYID;
24768}
24769extern "C" {
24770    #[link_name = "\u{1}aws_lc_0_40_0_i2d_AUTHORITY_KEYID"]
24771    pub fn i2d_AUTHORITY_KEYID(
24772        akid: *mut AUTHORITY_KEYID,
24773        outp: *mut *mut u8,
24774    ) -> ::std::os::raw::c_int;
24775}
24776extern "C" {
24777    #[link_name = "\u{1}aws_lc_0_40_0_EXTENDED_KEY_USAGE_it"]
24778    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
24779}
24780extern "C" {
24781    #[link_name = "\u{1}aws_lc_0_40_0_EXTENDED_KEY_USAGE_new"]
24782    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
24783}
24784extern "C" {
24785    #[link_name = "\u{1}aws_lc_0_40_0_EXTENDED_KEY_USAGE_free"]
24786    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
24787}
24788extern "C" {
24789    #[link_name = "\u{1}aws_lc_0_40_0_d2i_EXTENDED_KEY_USAGE"]
24790    pub fn d2i_EXTENDED_KEY_USAGE(
24791        out: *mut *mut EXTENDED_KEY_USAGE,
24792        inp: *mut *const u8,
24793        len: ::std::os::raw::c_long,
24794    ) -> *mut EXTENDED_KEY_USAGE;
24795}
24796extern "C" {
24797    #[link_name = "\u{1}aws_lc_0_40_0_i2d_EXTENDED_KEY_USAGE"]
24798    pub fn i2d_EXTENDED_KEY_USAGE(
24799        eku: *const EXTENDED_KEY_USAGE,
24800        outp: *mut *mut u8,
24801    ) -> ::std::os::raw::c_int;
24802}
24803extern "C" {
24804    #[link_name = "\u{1}aws_lc_0_40_0_CERTIFICATEPOLICIES_it"]
24805    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
24806}
24807extern "C" {
24808    #[link_name = "\u{1}aws_lc_0_40_0_CERTIFICATEPOLICIES_new"]
24809    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
24810}
24811extern "C" {
24812    #[link_name = "\u{1}aws_lc_0_40_0_CERTIFICATEPOLICIES_free"]
24813    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
24814}
24815extern "C" {
24816    #[link_name = "\u{1}aws_lc_0_40_0_d2i_CERTIFICATEPOLICIES"]
24817    pub fn d2i_CERTIFICATEPOLICIES(
24818        out: *mut *mut CERTIFICATEPOLICIES,
24819        inp: *mut *const u8,
24820        len: ::std::os::raw::c_long,
24821    ) -> *mut CERTIFICATEPOLICIES;
24822}
24823extern "C" {
24824    #[link_name = "\u{1}aws_lc_0_40_0_i2d_CERTIFICATEPOLICIES"]
24825    pub fn i2d_CERTIFICATEPOLICIES(
24826        policies: *const CERTIFICATEPOLICIES,
24827        outp: *mut *mut u8,
24828    ) -> ::std::os::raw::c_int;
24829}
24830extern "C" {
24831    #[link_name = "\u{1}aws_lc_0_40_0_POLICYINFO_new"]
24832    pub fn POLICYINFO_new() -> *mut POLICYINFO;
24833}
24834extern "C" {
24835    #[link_name = "\u{1}aws_lc_0_40_0_POLICYINFO_free"]
24836    pub fn POLICYINFO_free(info: *mut POLICYINFO);
24837}
24838extern "C" {
24839    #[link_name = "\u{1}aws_lc_0_40_0_POLICYQUALINFO_new"]
24840    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
24841}
24842extern "C" {
24843    #[link_name = "\u{1}aws_lc_0_40_0_POLICYQUALINFO_free"]
24844    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
24845}
24846extern "C" {
24847    #[link_name = "\u{1}aws_lc_0_40_0_USERNOTICE_new"]
24848    pub fn USERNOTICE_new() -> *mut USERNOTICE;
24849}
24850extern "C" {
24851    #[link_name = "\u{1}aws_lc_0_40_0_USERNOTICE_free"]
24852    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
24853}
24854extern "C" {
24855    #[link_name = "\u{1}aws_lc_0_40_0_NOTICEREF_new"]
24856    pub fn NOTICEREF_new() -> *mut NOTICEREF;
24857}
24858extern "C" {
24859    #[link_name = "\u{1}aws_lc_0_40_0_NOTICEREF_free"]
24860    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
24861}
24862extern "C" {
24863    #[link_name = "\u{1}aws_lc_0_40_0_CRL_DIST_POINTS_it"]
24864    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
24865}
24866extern "C" {
24867    #[link_name = "\u{1}aws_lc_0_40_0_CRL_DIST_POINTS_new"]
24868    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
24869}
24870extern "C" {
24871    #[link_name = "\u{1}aws_lc_0_40_0_CRL_DIST_POINTS_free"]
24872    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
24873}
24874extern "C" {
24875    #[link_name = "\u{1}aws_lc_0_40_0_d2i_CRL_DIST_POINTS"]
24876    pub fn d2i_CRL_DIST_POINTS(
24877        out: *mut *mut CRL_DIST_POINTS,
24878        inp: *mut *const u8,
24879        len: ::std::os::raw::c_long,
24880    ) -> *mut CRL_DIST_POINTS;
24881}
24882extern "C" {
24883    #[link_name = "\u{1}aws_lc_0_40_0_i2d_CRL_DIST_POINTS"]
24884    pub fn i2d_CRL_DIST_POINTS(
24885        crldp: *mut CRL_DIST_POINTS,
24886        outp: *mut *mut u8,
24887    ) -> ::std::os::raw::c_int;
24888}
24889extern "C" {
24890    #[link_name = "\u{1}aws_lc_0_40_0_DIST_POINT_new"]
24891    pub fn DIST_POINT_new() -> *mut DIST_POINT;
24892}
24893extern "C" {
24894    #[link_name = "\u{1}aws_lc_0_40_0_DIST_POINT_free"]
24895    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
24896}
24897extern "C" {
24898    #[link_name = "\u{1}aws_lc_0_40_0_DIST_POINT_NAME_new"]
24899    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
24900}
24901extern "C" {
24902    #[link_name = "\u{1}aws_lc_0_40_0_DIST_POINT_NAME_free"]
24903    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
24904}
24905extern "C" {
24906    #[link_name = "\u{1}aws_lc_0_40_0_ISSUING_DIST_POINT_it"]
24907    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
24908}
24909extern "C" {
24910    #[link_name = "\u{1}aws_lc_0_40_0_ISSUING_DIST_POINT_new"]
24911    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
24912}
24913extern "C" {
24914    #[link_name = "\u{1}aws_lc_0_40_0_ISSUING_DIST_POINT_free"]
24915    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
24916}
24917extern "C" {
24918    #[link_name = "\u{1}aws_lc_0_40_0_d2i_ISSUING_DIST_POINT"]
24919    pub fn d2i_ISSUING_DIST_POINT(
24920        out: *mut *mut ISSUING_DIST_POINT,
24921        inp: *mut *const u8,
24922        len: ::std::os::raw::c_long,
24923    ) -> *mut ISSUING_DIST_POINT;
24924}
24925extern "C" {
24926    #[link_name = "\u{1}aws_lc_0_40_0_i2d_ISSUING_DIST_POINT"]
24927    pub fn i2d_ISSUING_DIST_POINT(
24928        idp: *mut ISSUING_DIST_POINT,
24929        outp: *mut *mut u8,
24930    ) -> ::std::os::raw::c_int;
24931}
24932extern "C" {
24933    #[link_name = "\u{1}aws_lc_0_40_0_ACCESS_DESCRIPTION_new"]
24934    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
24935}
24936extern "C" {
24937    #[link_name = "\u{1}aws_lc_0_40_0_ACCESS_DESCRIPTION_free"]
24938    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
24939}
24940extern "C" {
24941    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_INFO_ACCESS_it"]
24942    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
24943}
24944extern "C" {
24945    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_INFO_ACCESS_new"]
24946    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
24947}
24948extern "C" {
24949    #[link_name = "\u{1}aws_lc_0_40_0_AUTHORITY_INFO_ACCESS_free"]
24950    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
24951}
24952extern "C" {
24953    #[link_name = "\u{1}aws_lc_0_40_0_d2i_AUTHORITY_INFO_ACCESS"]
24954    pub fn d2i_AUTHORITY_INFO_ACCESS(
24955        out: *mut *mut AUTHORITY_INFO_ACCESS,
24956        inp: *mut *const u8,
24957        len: ::std::os::raw::c_long,
24958    ) -> *mut AUTHORITY_INFO_ACCESS;
24959}
24960extern "C" {
24961    #[link_name = "\u{1}aws_lc_0_40_0_i2d_AUTHORITY_INFO_ACCESS"]
24962    pub fn i2d_AUTHORITY_INFO_ACCESS(
24963        aia: *mut AUTHORITY_INFO_ACCESS,
24964        outp: *mut *mut u8,
24965    ) -> ::std::os::raw::c_int;
24966}
24967extern "C" {
24968    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_MAPPING_new"]
24969    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
24970}
24971extern "C" {
24972    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_MAPPING_free"]
24973    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
24974}
24975extern "C" {
24976    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_MAPPINGS_it"]
24977    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
24978}
24979extern "C" {
24980    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_SUBTREE_new"]
24981    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
24982}
24983extern "C" {
24984    #[link_name = "\u{1}aws_lc_0_40_0_GENERAL_SUBTREE_free"]
24985    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
24986}
24987extern "C" {
24988    #[link_name = "\u{1}aws_lc_0_40_0_NAME_CONSTRAINTS_it"]
24989    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
24990}
24991extern "C" {
24992    #[link_name = "\u{1}aws_lc_0_40_0_NAME_CONSTRAINTS_new"]
24993    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
24994}
24995extern "C" {
24996    #[link_name = "\u{1}aws_lc_0_40_0_NAME_CONSTRAINTS_free"]
24997    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
24998}
24999extern "C" {
25000    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_CONSTRAINTS_new"]
25001    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
25002}
25003extern "C" {
25004    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_CONSTRAINTS_free"]
25005    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
25006}
25007extern "C" {
25008    #[link_name = "\u{1}aws_lc_0_40_0_POLICY_CONSTRAINTS_it"]
25009    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
25010}
25011extern "C" {
25012    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_set"]
25013    pub fn X509_PURPOSE_set(
25014        p: *mut ::std::os::raw::c_int,
25015        purpose: ::std::os::raw::c_int,
25016    ) -> ::std::os::raw::c_int;
25017}
25018extern "C" {
25019    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get_count"]
25020    pub fn X509_PURPOSE_get_count() -> ::std::os::raw::c_int;
25021}
25022extern "C" {
25023    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get_by_id"]
25024    pub fn X509_PURPOSE_get_by_id(id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
25025}
25026extern "C" {
25027    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get0_name"]
25028    pub fn X509_PURPOSE_get0_name(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25029}
25030extern "C" {
25031    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get0_sname"]
25032    pub fn X509_PURPOSE_get0_sname(xp: *const X509_PURPOSE) -> *mut ::std::os::raw::c_char;
25033}
25034extern "C" {
25035    #[link_name = "\u{1}aws_lc_0_40_0_X509_PURPOSE_get_trust"]
25036    pub fn X509_PURPOSE_get_trust(xp: *const X509_PURPOSE) -> ::std::os::raw::c_int;
25037}
25038#[repr(C)]
25039#[derive(Debug, Copy, Clone)]
25040pub struct ocsp_cert_id_st {
25041    _unused: [u8; 0],
25042}
25043pub type OCSP_CERTID = ocsp_cert_id_st;
25044#[repr(C)]
25045#[derive(Debug, Copy, Clone)]
25046pub struct ocsp_one_request_st {
25047    _unused: [u8; 0],
25048}
25049pub type OCSP_ONEREQ = ocsp_one_request_st;
25050#[repr(C)]
25051#[derive(Debug, Copy, Clone)]
25052pub struct ocsp_req_info_st {
25053    _unused: [u8; 0],
25054}
25055pub type OCSP_REQINFO = ocsp_req_info_st;
25056#[repr(C)]
25057#[derive(Debug, Copy, Clone)]
25058pub struct ocsp_signature_st {
25059    _unused: [u8; 0],
25060}
25061pub type OCSP_SIGNATURE = ocsp_signature_st;
25062#[repr(C)]
25063#[derive(Debug, Copy, Clone)]
25064pub struct ocsp_request_st {
25065    _unused: [u8; 0],
25066}
25067pub type OCSP_REQUEST = ocsp_request_st;
25068#[repr(C)]
25069#[derive(Debug, Copy, Clone)]
25070pub struct ocsp_resp_bytes_st {
25071    _unused: [u8; 0],
25072}
25073pub type OCSP_RESPBYTES = ocsp_resp_bytes_st;
25074#[repr(C)]
25075#[derive(Debug, Copy, Clone)]
25076pub struct ocsp_revoked_info_st {
25077    _unused: [u8; 0],
25078}
25079pub type OCSP_REVOKEDINFO = ocsp_revoked_info_st;
25080#[repr(C)]
25081#[derive(Debug, Copy, Clone)]
25082pub struct ocsp_cert_status_st {
25083    _unused: [u8; 0],
25084}
25085pub type OCSP_CERTSTATUS = ocsp_cert_status_st;
25086#[repr(C)]
25087#[derive(Debug, Copy, Clone)]
25088pub struct ocsp_single_response_st {
25089    _unused: [u8; 0],
25090}
25091pub type OCSP_SINGLERESP = ocsp_single_response_st;
25092#[repr(C)]
25093#[derive(Debug, Copy, Clone)]
25094pub struct ocsp_response_data_st {
25095    _unused: [u8; 0],
25096}
25097pub type OCSP_RESPDATA = ocsp_response_data_st;
25098#[repr(C)]
25099#[derive(Debug, Copy, Clone)]
25100pub struct ocsp_response_st {
25101    _unused: [u8; 0],
25102}
25103pub type OCSP_RESPONSE = ocsp_response_st;
25104#[repr(C)]
25105#[derive(Debug, Copy, Clone)]
25106pub struct ocsp_responder_id_st {
25107    _unused: [u8; 0],
25108}
25109pub type OCSP_RESPID = ocsp_responder_id_st;
25110#[repr(C)]
25111#[derive(Debug, Copy, Clone)]
25112pub struct ocsp_basic_response_st {
25113    _unused: [u8; 0],
25114}
25115pub type OCSP_BASICRESP = ocsp_basic_response_st;
25116#[repr(C)]
25117#[derive(Debug, Copy, Clone)]
25118pub struct stack_st_OCSP_CERTID {
25119    _unused: [u8; 0],
25120}
25121pub type sk_OCSP_CERTID_free_func =
25122    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_CERTID)>;
25123pub type sk_OCSP_CERTID_copy_func =
25124    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_CERTID) -> *mut OCSP_CERTID>;
25125pub type sk_OCSP_CERTID_cmp_func = ::std::option::Option<
25126    unsafe extern "C" fn(
25127        arg1: *const *const OCSP_CERTID,
25128        arg2: *const *const OCSP_CERTID,
25129    ) -> ::std::os::raw::c_int,
25130>;
25131pub type sk_OCSP_CERTID_delete_if_func = ::std::option::Option<
25132    unsafe extern "C" fn(
25133        arg1: *mut OCSP_CERTID,
25134        arg2: *mut ::std::os::raw::c_void,
25135    ) -> ::std::os::raw::c_int,
25136>;
25137#[repr(C)]
25138#[derive(Debug, Copy, Clone)]
25139pub struct stack_st_OCSP_ONEREQ {
25140    _unused: [u8; 0],
25141}
25142pub type sk_OCSP_ONEREQ_free_func =
25143    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_ONEREQ)>;
25144pub type sk_OCSP_ONEREQ_copy_func =
25145    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_ONEREQ) -> *mut OCSP_ONEREQ>;
25146pub type sk_OCSP_ONEREQ_cmp_func = ::std::option::Option<
25147    unsafe extern "C" fn(
25148        arg1: *const *const OCSP_ONEREQ,
25149        arg2: *const *const OCSP_ONEREQ,
25150    ) -> ::std::os::raw::c_int,
25151>;
25152pub type sk_OCSP_ONEREQ_delete_if_func = ::std::option::Option<
25153    unsafe extern "C" fn(
25154        arg1: *mut OCSP_ONEREQ,
25155        arg2: *mut ::std::os::raw::c_void,
25156    ) -> ::std::os::raw::c_int,
25157>;
25158#[repr(C)]
25159#[derive(Debug, Copy, Clone)]
25160pub struct stack_st_OCSP_RESPID {
25161    _unused: [u8; 0],
25162}
25163pub type sk_OCSP_RESPID_free_func =
25164    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_RESPID)>;
25165pub type sk_OCSP_RESPID_copy_func =
25166    ::std::option::Option<unsafe extern "C" fn(arg1: *const OCSP_RESPID) -> *mut OCSP_RESPID>;
25167pub type sk_OCSP_RESPID_cmp_func = ::std::option::Option<
25168    unsafe extern "C" fn(
25169        arg1: *const *const OCSP_RESPID,
25170        arg2: *const *const OCSP_RESPID,
25171    ) -> ::std::os::raw::c_int,
25172>;
25173pub type sk_OCSP_RESPID_delete_if_func = ::std::option::Option<
25174    unsafe extern "C" fn(
25175        arg1: *mut OCSP_RESPID,
25176        arg2: *mut ::std::os::raw::c_void,
25177    ) -> ::std::os::raw::c_int,
25178>;
25179#[repr(C)]
25180#[derive(Debug, Copy, Clone)]
25181pub struct stack_st_OCSP_SINGLERESP {
25182    _unused: [u8; 0],
25183}
25184pub type sk_OCSP_SINGLERESP_free_func =
25185    ::std::option::Option<unsafe extern "C" fn(arg1: *mut OCSP_SINGLERESP)>;
25186pub type sk_OCSP_SINGLERESP_copy_func = ::std::option::Option<
25187    unsafe extern "C" fn(arg1: *const OCSP_SINGLERESP) -> *mut OCSP_SINGLERESP,
25188>;
25189pub type sk_OCSP_SINGLERESP_cmp_func = ::std::option::Option<
25190    unsafe extern "C" fn(
25191        arg1: *const *const OCSP_SINGLERESP,
25192        arg2: *const *const OCSP_SINGLERESP,
25193    ) -> ::std::os::raw::c_int,
25194>;
25195pub type sk_OCSP_SINGLERESP_delete_if_func = ::std::option::Option<
25196    unsafe extern "C" fn(
25197        arg1: *mut OCSP_SINGLERESP,
25198        arg2: *mut ::std::os::raw::c_void,
25199    ) -> ::std::os::raw::c_int,
25200>;
25201extern "C" {
25202    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_new"]
25203    pub fn OCSP_BASICRESP_new() -> *mut OCSP_BASICRESP;
25204}
25205extern "C" {
25206    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_free"]
25207    pub fn OCSP_BASICRESP_free(a: *mut OCSP_BASICRESP);
25208}
25209extern "C" {
25210    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_BASICRESP"]
25211    pub fn d2i_OCSP_BASICRESP(
25212        a: *mut *mut OCSP_BASICRESP,
25213        in_: *mut *const ::std::os::raw::c_uchar,
25214        len: ::std::os::raw::c_long,
25215    ) -> *mut OCSP_BASICRESP;
25216}
25217extern "C" {
25218    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_BASICRESP"]
25219    pub fn i2d_OCSP_BASICRESP(
25220        a: *mut OCSP_BASICRESP,
25221        out: *mut *mut ::std::os::raw::c_uchar,
25222    ) -> ::std::os::raw::c_int;
25223}
25224extern "C" {
25225    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_it"]
25226    pub static OCSP_BASICRESP_it: ASN1_ITEM;
25227}
25228extern "C" {
25229    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_RESPONSE_new"]
25230    pub fn OCSP_RESPONSE_new() -> *mut OCSP_RESPONSE;
25231}
25232extern "C" {
25233    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_RESPONSE_free"]
25234    pub fn OCSP_RESPONSE_free(a: *mut OCSP_RESPONSE);
25235}
25236extern "C" {
25237    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_RESPONSE"]
25238    pub fn d2i_OCSP_RESPONSE(
25239        a: *mut *mut OCSP_RESPONSE,
25240        in_: *mut *const ::std::os::raw::c_uchar,
25241        len: ::std::os::raw::c_long,
25242    ) -> *mut OCSP_RESPONSE;
25243}
25244extern "C" {
25245    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_RESPONSE"]
25246    pub fn i2d_OCSP_RESPONSE(
25247        a: *mut OCSP_RESPONSE,
25248        out: *mut *mut ::std::os::raw::c_uchar,
25249    ) -> ::std::os::raw::c_int;
25250}
25251extern "C" {
25252    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_RESPONSE_it"]
25253    pub static OCSP_RESPONSE_it: ASN1_ITEM;
25254}
25255extern "C" {
25256    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_CERTID_new"]
25257    pub fn OCSP_CERTID_new() -> *mut OCSP_CERTID;
25258}
25259extern "C" {
25260    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_CERTID_free"]
25261    pub fn OCSP_CERTID_free(a: *mut OCSP_CERTID);
25262}
25263extern "C" {
25264    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_CERTID"]
25265    pub fn d2i_OCSP_CERTID(
25266        a: *mut *mut OCSP_CERTID,
25267        in_: *mut *const ::std::os::raw::c_uchar,
25268        len: ::std::os::raw::c_long,
25269    ) -> *mut OCSP_CERTID;
25270}
25271extern "C" {
25272    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_CERTID"]
25273    pub fn i2d_OCSP_CERTID(
25274        a: *mut OCSP_CERTID,
25275        out: *mut *mut ::std::os::raw::c_uchar,
25276    ) -> ::std::os::raw::c_int;
25277}
25278extern "C" {
25279    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_CERTID_it"]
25280    pub static OCSP_CERTID_it: ASN1_ITEM;
25281}
25282extern "C" {
25283    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQUEST_new"]
25284    pub fn OCSP_REQUEST_new() -> *mut OCSP_REQUEST;
25285}
25286extern "C" {
25287    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQUEST_free"]
25288    pub fn OCSP_REQUEST_free(a: *mut OCSP_REQUEST);
25289}
25290extern "C" {
25291    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_REQUEST"]
25292    pub fn d2i_OCSP_REQUEST(
25293        a: *mut *mut OCSP_REQUEST,
25294        in_: *mut *const ::std::os::raw::c_uchar,
25295        len: ::std::os::raw::c_long,
25296    ) -> *mut OCSP_REQUEST;
25297}
25298extern "C" {
25299    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_REQUEST"]
25300    pub fn i2d_OCSP_REQUEST(
25301        a: *mut OCSP_REQUEST,
25302        out: *mut *mut ::std::os::raw::c_uchar,
25303    ) -> ::std::os::raw::c_int;
25304}
25305extern "C" {
25306    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQUEST_it"]
25307    pub static OCSP_REQUEST_it: ASN1_ITEM;
25308}
25309extern "C" {
25310    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_new"]
25311    pub fn OCSP_SINGLERESP_new() -> *mut OCSP_SINGLERESP;
25312}
25313extern "C" {
25314    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_free"]
25315    pub fn OCSP_SINGLERESP_free(a: *mut OCSP_SINGLERESP);
25316}
25317extern "C" {
25318    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_SINGLERESP"]
25319    pub fn d2i_OCSP_SINGLERESP(
25320        a: *mut *mut OCSP_SINGLERESP,
25321        in_: *mut *const ::std::os::raw::c_uchar,
25322        len: ::std::os::raw::c_long,
25323    ) -> *mut OCSP_SINGLERESP;
25324}
25325extern "C" {
25326    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_SINGLERESP"]
25327    pub fn i2d_OCSP_SINGLERESP(
25328        a: *mut OCSP_SINGLERESP,
25329        out: *mut *mut ::std::os::raw::c_uchar,
25330    ) -> ::std::os::raw::c_int;
25331}
25332extern "C" {
25333    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_it"]
25334    pub static OCSP_SINGLERESP_it: ASN1_ITEM;
25335}
25336extern "C" {
25337    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_ONEREQ_new"]
25338    pub fn OCSP_ONEREQ_new() -> *mut OCSP_ONEREQ;
25339}
25340extern "C" {
25341    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_ONEREQ_free"]
25342    pub fn OCSP_ONEREQ_free(a: *mut OCSP_ONEREQ);
25343}
25344extern "C" {
25345    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_ONEREQ"]
25346    pub fn d2i_OCSP_ONEREQ(
25347        a: *mut *mut OCSP_ONEREQ,
25348        in_: *mut *const ::std::os::raw::c_uchar,
25349        len: ::std::os::raw::c_long,
25350    ) -> *mut OCSP_ONEREQ;
25351}
25352extern "C" {
25353    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_ONEREQ"]
25354    pub fn i2d_OCSP_ONEREQ(
25355        a: *mut OCSP_ONEREQ,
25356        out: *mut *mut ::std::os::raw::c_uchar,
25357    ) -> ::std::os::raw::c_int;
25358}
25359extern "C" {
25360    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_ONEREQ_it"]
25361    pub static OCSP_ONEREQ_it: ASN1_ITEM;
25362}
25363extern "C" {
25364    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_REQUEST_bio"]
25365    pub fn d2i_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut *mut OCSP_REQUEST) -> *mut OCSP_REQUEST;
25366}
25367extern "C" {
25368    #[link_name = "\u{1}aws_lc_0_40_0_d2i_OCSP_RESPONSE_bio"]
25369    pub fn d2i_OCSP_RESPONSE_bio(
25370        bp: *mut BIO,
25371        presp: *mut *mut OCSP_RESPONSE,
25372    ) -> *mut OCSP_RESPONSE;
25373}
25374extern "C" {
25375    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_RESPONSE_bio"]
25376    pub fn i2d_OCSP_RESPONSE_bio(bp: *mut BIO, presp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25377}
25378extern "C" {
25379    #[link_name = "\u{1}aws_lc_0_40_0_i2d_OCSP_REQUEST_bio"]
25380    pub fn i2d_OCSP_REQUEST_bio(bp: *mut BIO, preq: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25381}
25382extern "C" {
25383    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_CERTID_dup"]
25384    pub fn OCSP_CERTID_dup(id: *mut OCSP_CERTID) -> *mut OCSP_CERTID;
25385}
25386extern "C" {
25387    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_sendreq_bio"]
25388    pub fn OCSP_sendreq_bio(
25389        b: *mut BIO,
25390        path: *const ::std::os::raw::c_char,
25391        req: *mut OCSP_REQUEST,
25392    ) -> *mut OCSP_RESPONSE;
25393}
25394extern "C" {
25395    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_sendreq_new"]
25396    pub fn OCSP_sendreq_new(
25397        io: *mut BIO,
25398        path: *const ::std::os::raw::c_char,
25399        req: *mut OCSP_REQUEST,
25400        maxline: ::std::os::raw::c_int,
25401    ) -> *mut OCSP_REQ_CTX;
25402}
25403extern "C" {
25404    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_sendreq_nbio"]
25405    pub fn OCSP_sendreq_nbio(
25406        presp: *mut *mut OCSP_RESPONSE,
25407        rctx: *mut OCSP_REQ_CTX,
25408    ) -> ::std::os::raw::c_int;
25409}
25410extern "C" {
25411    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_new"]
25412    pub fn OCSP_REQ_CTX_new(io: *mut BIO, maxline: ::std::os::raw::c_int) -> *mut OCSP_REQ_CTX;
25413}
25414extern "C" {
25415    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_free"]
25416    pub fn OCSP_REQ_CTX_free(rctx: *mut OCSP_REQ_CTX);
25417}
25418extern "C" {
25419    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_set_max_response_length"]
25420    pub fn OCSP_set_max_response_length(rctx: *mut OCSP_REQ_CTX, len: ::std::os::raw::c_ulong);
25421}
25422extern "C" {
25423    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_http"]
25424    pub fn OCSP_REQ_CTX_http(
25425        rctx: *mut OCSP_REQ_CTX,
25426        op: *const ::std::os::raw::c_char,
25427        path: *const ::std::os::raw::c_char,
25428    ) -> ::std::os::raw::c_int;
25429}
25430extern "C" {
25431    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_set1_req"]
25432    pub fn OCSP_REQ_CTX_set1_req(
25433        rctx: *mut OCSP_REQ_CTX,
25434        req: *mut OCSP_REQUEST,
25435    ) -> ::std::os::raw::c_int;
25436}
25437extern "C" {
25438    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_add1_header"]
25439    pub fn OCSP_REQ_CTX_add1_header(
25440        rctx: *mut OCSP_REQ_CTX,
25441        name: *const ::std::os::raw::c_char,
25442        value: *const ::std::os::raw::c_char,
25443    ) -> ::std::os::raw::c_int;
25444}
25445extern "C" {
25446    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQ_CTX_i2d"]
25447    pub fn OCSP_REQ_CTX_i2d(
25448        rctx: *mut OCSP_REQ_CTX,
25449        it: *const ASN1_ITEM,
25450        val: *mut ASN1_VALUE,
25451    ) -> ::std::os::raw::c_int;
25452}
25453extern "C" {
25454    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_add0_id"]
25455    pub fn OCSP_request_add0_id(req: *mut OCSP_REQUEST, cid: *mut OCSP_CERTID) -> *mut OCSP_ONEREQ;
25456}
25457extern "C" {
25458    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_onereq_get0_id"]
25459    pub fn OCSP_onereq_get0_id(one: *mut OCSP_ONEREQ) -> *mut OCSP_CERTID;
25460}
25461extern "C" {
25462    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_add1_nonce"]
25463    pub fn OCSP_request_add1_nonce(
25464        req: *mut OCSP_REQUEST,
25465        val: *mut ::std::os::raw::c_uchar,
25466        len: ::std::os::raw::c_int,
25467    ) -> ::std::os::raw::c_int;
25468}
25469extern "C" {
25470    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_basic_add1_nonce"]
25471    pub fn OCSP_basic_add1_nonce(
25472        resp: *mut OCSP_BASICRESP,
25473        val: *mut ::std::os::raw::c_uchar,
25474        len: ::std::os::raw::c_int,
25475    ) -> ::std::os::raw::c_int;
25476}
25477extern "C" {
25478    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_check_nonce"]
25479    pub fn OCSP_check_nonce(
25480        req: *mut OCSP_REQUEST,
25481        bs: *mut OCSP_BASICRESP,
25482    ) -> ::std::os::raw::c_int;
25483}
25484extern "C" {
25485    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_copy_nonce"]
25486    pub fn OCSP_copy_nonce(
25487        resp: *mut OCSP_BASICRESP,
25488        req: *mut OCSP_REQUEST,
25489    ) -> ::std::os::raw::c_int;
25490}
25491extern "C" {
25492    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_set1_name"]
25493    pub fn OCSP_request_set1_name(
25494        req: *mut OCSP_REQUEST,
25495        nm: *mut X509_NAME,
25496    ) -> ::std::os::raw::c_int;
25497}
25498extern "C" {
25499    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_add1_cert"]
25500    pub fn OCSP_request_add1_cert(req: *mut OCSP_REQUEST, cert: *mut X509)
25501        -> ::std::os::raw::c_int;
25502}
25503extern "C" {
25504    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_is_signed"]
25505    pub fn OCSP_request_is_signed(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25506}
25507extern "C" {
25508    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_onereq_count"]
25509    pub fn OCSP_request_onereq_count(req: *mut OCSP_REQUEST) -> ::std::os::raw::c_int;
25510}
25511extern "C" {
25512    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_onereq_get0"]
25513    pub fn OCSP_request_onereq_get0(
25514        req: *mut OCSP_REQUEST,
25515        i: ::std::os::raw::c_int,
25516    ) -> *mut OCSP_ONEREQ;
25517}
25518extern "C" {
25519    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_sign"]
25520    pub fn OCSP_request_sign(
25521        req: *mut OCSP_REQUEST,
25522        signer: *mut X509,
25523        key: *mut EVP_PKEY,
25524        dgst: *const EVP_MD,
25525        certs: *mut stack_st_X509,
25526        flags: ::std::os::raw::c_ulong,
25527    ) -> ::std::os::raw::c_int;
25528}
25529extern "C" {
25530    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_response_status"]
25531    pub fn OCSP_response_status(resp: *mut OCSP_RESPONSE) -> ::std::os::raw::c_int;
25532}
25533extern "C" {
25534    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_response_get1_basic"]
25535    pub fn OCSP_response_get1_basic(resp: *mut OCSP_RESPONSE) -> *mut OCSP_BASICRESP;
25536}
25537extern "C" {
25538    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_resp_count"]
25539    pub fn OCSP_resp_count(bs: *mut OCSP_BASICRESP) -> ::std::os::raw::c_int;
25540}
25541extern "C" {
25542    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_resp_get0"]
25543    pub fn OCSP_resp_get0(bs: *mut OCSP_BASICRESP, idx: usize) -> *mut OCSP_SINGLERESP;
25544}
25545extern "C" {
25546    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_single_get0_status"]
25547    pub fn OCSP_single_get0_status(
25548        single: *mut OCSP_SINGLERESP,
25549        reason: *mut ::std::os::raw::c_int,
25550        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25551        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25552        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25553    ) -> ::std::os::raw::c_int;
25554}
25555extern "C" {
25556    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_resp_find"]
25557    pub fn OCSP_resp_find(
25558        bs: *mut OCSP_BASICRESP,
25559        id: *mut OCSP_CERTID,
25560        last: ::std::os::raw::c_int,
25561    ) -> ::std::os::raw::c_int;
25562}
25563extern "C" {
25564    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_resp_find_status"]
25565    pub fn OCSP_resp_find_status(
25566        bs: *mut OCSP_BASICRESP,
25567        id: *mut OCSP_CERTID,
25568        status: *mut ::std::os::raw::c_int,
25569        reason: *mut ::std::os::raw::c_int,
25570        revtime: *mut *mut ASN1_GENERALIZEDTIME,
25571        thisupd: *mut *mut ASN1_GENERALIZEDTIME,
25572        nextupd: *mut *mut ASN1_GENERALIZEDTIME,
25573    ) -> ::std::os::raw::c_int;
25574}
25575extern "C" {
25576    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_check_validity"]
25577    pub fn OCSP_check_validity(
25578        thisUpdate: *mut ASN1_GENERALIZEDTIME,
25579        nextUpdate: *mut ASN1_GENERALIZEDTIME,
25580        drift_num_seconds: ::std::os::raw::c_long,
25581        max_age_seconds: ::std::os::raw::c_long,
25582    ) -> ::std::os::raw::c_int;
25583}
25584extern "C" {
25585    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_basic_verify"]
25586    pub fn OCSP_basic_verify(
25587        bs: *mut OCSP_BASICRESP,
25588        certs: *mut stack_st_X509,
25589        st: *mut X509_STORE,
25590        flags: ::std::os::raw::c_ulong,
25591    ) -> ::std::os::raw::c_int;
25592}
25593extern "C" {
25594    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_request_verify"]
25595    pub fn OCSP_request_verify(
25596        req: *mut OCSP_REQUEST,
25597        certs: *mut stack_st_X509,
25598        st: *mut X509_STORE,
25599        flags: ::std::os::raw::c_ulong,
25600    ) -> ::std::os::raw::c_int;
25601}
25602extern "C" {
25603    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_cert_id_new"]
25604    pub fn OCSP_cert_id_new(
25605        dgst: *const EVP_MD,
25606        issuerName: *const X509_NAME,
25607        issuerKey: *const ASN1_BIT_STRING,
25608        serialNumber: *const ASN1_INTEGER,
25609    ) -> *mut OCSP_CERTID;
25610}
25611extern "C" {
25612    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_cert_to_id"]
25613    pub fn OCSP_cert_to_id(
25614        dgst: *const EVP_MD,
25615        subject: *const X509,
25616        issuer: *const X509,
25617    ) -> *mut OCSP_CERTID;
25618}
25619extern "C" {
25620    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_parse_url"]
25621    pub fn OCSP_parse_url(
25622        url: *const ::std::os::raw::c_char,
25623        phost: *mut *mut ::std::os::raw::c_char,
25624        pport: *mut *mut ::std::os::raw::c_char,
25625        ppath: *mut *mut ::std::os::raw::c_char,
25626        pssl: *mut ::std::os::raw::c_int,
25627    ) -> ::std::os::raw::c_int;
25628}
25629extern "C" {
25630    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_id_issuer_cmp"]
25631    pub fn OCSP_id_issuer_cmp(
25632        a: *const OCSP_CERTID,
25633        b: *const OCSP_CERTID,
25634    ) -> ::std::os::raw::c_int;
25635}
25636extern "C" {
25637    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_id_cmp"]
25638    pub fn OCSP_id_cmp(a: *const OCSP_CERTID, b: *const OCSP_CERTID) -> ::std::os::raw::c_int;
25639}
25640extern "C" {
25641    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_id_get0_info"]
25642    pub fn OCSP_id_get0_info(
25643        nameHash: *mut *mut ASN1_OCTET_STRING,
25644        algor: *mut *mut ASN1_OBJECT,
25645        keyHash: *mut *mut ASN1_OCTET_STRING,
25646        serial: *mut *mut ASN1_INTEGER,
25647        cid: *mut OCSP_CERTID,
25648    ) -> ::std::os::raw::c_int;
25649}
25650extern "C" {
25651    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_basic_add1_cert"]
25652    pub fn OCSP_basic_add1_cert(
25653        resp: *mut OCSP_BASICRESP,
25654        cert: *mut X509,
25655    ) -> ::std::os::raw::c_int;
25656}
25657extern "C" {
25658    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_basic_add1_status"]
25659    pub fn OCSP_basic_add1_status(
25660        resp: *mut OCSP_BASICRESP,
25661        cid: *mut OCSP_CERTID,
25662        status: ::std::os::raw::c_int,
25663        revoked_reason: ::std::os::raw::c_int,
25664        revoked_time: *mut ASN1_TIME,
25665        this_update: *mut ASN1_TIME,
25666        next_update: *mut ASN1_TIME,
25667    ) -> *mut OCSP_SINGLERESP;
25668}
25669extern "C" {
25670    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_basic_sign"]
25671    pub fn OCSP_basic_sign(
25672        resp: *mut OCSP_BASICRESP,
25673        signer: *mut X509,
25674        key: *mut EVP_PKEY,
25675        dgst: *const EVP_MD,
25676        certs: *mut stack_st_X509,
25677        flags: ::std::os::raw::c_ulong,
25678    ) -> ::std::os::raw::c_int;
25679}
25680extern "C" {
25681    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_response_create"]
25682    pub fn OCSP_response_create(
25683        status: ::std::os::raw::c_int,
25684        bs: *mut OCSP_BASICRESP,
25685    ) -> *mut OCSP_RESPONSE;
25686}
25687extern "C" {
25688    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_get0_id"]
25689    pub fn OCSP_SINGLERESP_get0_id(x: *const OCSP_SINGLERESP) -> *const OCSP_CERTID;
25690}
25691extern "C" {
25692    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_response_status_str"]
25693    pub fn OCSP_response_status_str(
25694        status_code: ::std::os::raw::c_long,
25695    ) -> *const ::std::os::raw::c_char;
25696}
25697extern "C" {
25698    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_cert_status_str"]
25699    pub fn OCSP_cert_status_str(
25700        status_code: ::std::os::raw::c_long,
25701    ) -> *const ::std::os::raw::c_char;
25702}
25703extern "C" {
25704    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_crl_reason_str"]
25705    pub fn OCSP_crl_reason_str(
25706        status_code: ::std::os::raw::c_long,
25707    ) -> *const ::std::os::raw::c_char;
25708}
25709extern "C" {
25710    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_REQUEST_print"]
25711    pub fn OCSP_REQUEST_print(
25712        bp: *mut BIO,
25713        req: *mut OCSP_REQUEST,
25714        flags: ::std::os::raw::c_ulong,
25715    ) -> ::std::os::raw::c_int;
25716}
25717extern "C" {
25718    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_RESPONSE_print"]
25719    pub fn OCSP_RESPONSE_print(
25720        bp: *mut BIO,
25721        resp: *mut OCSP_RESPONSE,
25722        flags: ::std::os::raw::c_ulong,
25723    ) -> ::std::os::raw::c_int;
25724}
25725extern "C" {
25726    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_get_ext_by_NID"]
25727    pub fn OCSP_BASICRESP_get_ext_by_NID(
25728        bs: *mut OCSP_BASICRESP,
25729        nid: ::std::os::raw::c_int,
25730        lastpos: ::std::os::raw::c_int,
25731    ) -> ::std::os::raw::c_int;
25732}
25733extern "C" {
25734    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_get_ext"]
25735    pub fn OCSP_BASICRESP_get_ext(
25736        bs: *mut OCSP_BASICRESP,
25737        loc: ::std::os::raw::c_int,
25738    ) -> *mut X509_EXTENSION;
25739}
25740extern "C" {
25741    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_BASICRESP_delete_ext"]
25742    pub fn OCSP_BASICRESP_delete_ext(
25743        x: *mut OCSP_BASICRESP,
25744        loc: ::std::os::raw::c_int,
25745    ) -> *mut X509_EXTENSION;
25746}
25747extern "C" {
25748    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_add_ext"]
25749    pub fn OCSP_SINGLERESP_add_ext(
25750        sresp: *mut OCSP_SINGLERESP,
25751        ex: *mut X509_EXTENSION,
25752        loc: ::std::os::raw::c_int,
25753    ) -> ::std::os::raw::c_int;
25754}
25755extern "C" {
25756    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_get_ext_count"]
25757    pub fn OCSP_SINGLERESP_get_ext_count(sresp: *mut OCSP_SINGLERESP) -> ::std::os::raw::c_int;
25758}
25759extern "C" {
25760    #[link_name = "\u{1}aws_lc_0_40_0_OCSP_SINGLERESP_get_ext"]
25761    pub fn OCSP_SINGLERESP_get_ext(
25762        sresp: *mut OCSP_SINGLERESP,
25763        loc: ::std::os::raw::c_int,
25764    ) -> *mut X509_EXTENSION;
25765}
25766pub type pem_password_cb = ::std::option::Option<
25767    unsafe extern "C" fn(
25768        buf: *mut ::std::os::raw::c_char,
25769        size: ::std::os::raw::c_int,
25770        rwflag: ::std::os::raw::c_int,
25771        userdata: *mut ::std::os::raw::c_void,
25772    ) -> ::std::os::raw::c_int,
25773>;
25774extern "C" {
25775    #[link_name = "\u{1}aws_lc_0_40_0_PEM_get_EVP_CIPHER_INFO"]
25776    pub fn PEM_get_EVP_CIPHER_INFO(
25777        header: *mut ::std::os::raw::c_char,
25778        cipher: *mut EVP_CIPHER_INFO,
25779    ) -> ::std::os::raw::c_int;
25780}
25781extern "C" {
25782    #[link_name = "\u{1}aws_lc_0_40_0_PEM_do_header"]
25783    pub fn PEM_do_header(
25784        cipher: *mut EVP_CIPHER_INFO,
25785        data: *mut ::std::os::raw::c_uchar,
25786        len: *mut ::std::os::raw::c_long,
25787        callback: pem_password_cb,
25788        u: *mut ::std::os::raw::c_void,
25789    ) -> ::std::os::raw::c_int;
25790}
25791extern "C" {
25792    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio"]
25793    pub fn PEM_read_bio(
25794        bp: *mut BIO,
25795        name: *mut *mut ::std::os::raw::c_char,
25796        header: *mut *mut ::std::os::raw::c_char,
25797        data: *mut *mut ::std::os::raw::c_uchar,
25798        len: *mut ::std::os::raw::c_long,
25799    ) -> ::std::os::raw::c_int;
25800}
25801extern "C" {
25802    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio"]
25803    pub fn PEM_write_bio(
25804        bp: *mut BIO,
25805        name: *const ::std::os::raw::c_char,
25806        hdr: *const ::std::os::raw::c_char,
25807        data: *const ::std::os::raw::c_uchar,
25808        len: ::std::os::raw::c_long,
25809    ) -> ::std::os::raw::c_int;
25810}
25811extern "C" {
25812    #[link_name = "\u{1}aws_lc_0_40_0_PEM_bytes_read_bio"]
25813    pub fn PEM_bytes_read_bio(
25814        pdata: *mut *mut ::std::os::raw::c_uchar,
25815        plen: *mut ::std::os::raw::c_long,
25816        pnm: *mut *mut ::std::os::raw::c_char,
25817        name: *const ::std::os::raw::c_char,
25818        bp: *mut BIO,
25819        cb: pem_password_cb,
25820        u: *mut ::std::os::raw::c_void,
25821    ) -> ::std::os::raw::c_int;
25822}
25823extern "C" {
25824    #[link_name = "\u{1}aws_lc_0_40_0_PEM_ASN1_read_bio"]
25825    pub fn PEM_ASN1_read_bio(
25826        d2i: d2i_of_void,
25827        name: *const ::std::os::raw::c_char,
25828        bp: *mut BIO,
25829        x: *mut *mut ::std::os::raw::c_void,
25830        cb: pem_password_cb,
25831        u: *mut ::std::os::raw::c_void,
25832    ) -> *mut ::std::os::raw::c_void;
25833}
25834extern "C" {
25835    #[link_name = "\u{1}aws_lc_0_40_0_PEM_ASN1_write_bio"]
25836    pub fn PEM_ASN1_write_bio(
25837        i2d: i2d_of_void,
25838        name: *const ::std::os::raw::c_char,
25839        bp: *mut BIO,
25840        x: *mut ::std::os::raw::c_void,
25841        enc: *const EVP_CIPHER,
25842        pass: *const ::std::os::raw::c_uchar,
25843        pass_len: ::std::os::raw::c_int,
25844        cb: pem_password_cb,
25845        u: *mut ::std::os::raw::c_void,
25846    ) -> ::std::os::raw::c_int;
25847}
25848extern "C" {
25849    #[link_name = "\u{1}aws_lc_0_40_0_PEM_X509_INFO_read_bio"]
25850    pub fn PEM_X509_INFO_read_bio(
25851        bp: *mut BIO,
25852        sk: *mut stack_st_X509_INFO,
25853        cb: pem_password_cb,
25854        u: *mut ::std::os::raw::c_void,
25855    ) -> *mut stack_st_X509_INFO;
25856}
25857extern "C" {
25858    #[link_name = "\u{1}aws_lc_0_40_0_PEM_X509_INFO_write_bio"]
25859    pub fn PEM_X509_INFO_write_bio(
25860        bp: *mut BIO,
25861        xi: *mut X509_INFO,
25862        enc: *mut EVP_CIPHER,
25863        kstr: *mut ::std::os::raw::c_uchar,
25864        klen: ::std::os::raw::c_int,
25865        cd: pem_password_cb,
25866        u: *mut ::std::os::raw::c_void,
25867    ) -> ::std::os::raw::c_int;
25868}
25869extern "C" {
25870    #[link_name = "\u{1}aws_lc_0_40_0_PEM_X509_INFO_read"]
25871    pub fn PEM_X509_INFO_read(
25872        fp: *mut FILE,
25873        sk: *mut stack_st_X509_INFO,
25874        cb: pem_password_cb,
25875        u: *mut ::std::os::raw::c_void,
25876    ) -> *mut stack_st_X509_INFO;
25877}
25878extern "C" {
25879    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read"]
25880    pub fn PEM_read(
25881        fp: *mut FILE,
25882        name: *mut *mut ::std::os::raw::c_char,
25883        header: *mut *mut ::std::os::raw::c_char,
25884        data: *mut *mut ::std::os::raw::c_uchar,
25885        len: *mut ::std::os::raw::c_long,
25886    ) -> ::std::os::raw::c_int;
25887}
25888extern "C" {
25889    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write"]
25890    pub fn PEM_write(
25891        fp: *mut FILE,
25892        name: *const ::std::os::raw::c_char,
25893        hdr: *const ::std::os::raw::c_char,
25894        data: *const ::std::os::raw::c_uchar,
25895        len: ::std::os::raw::c_long,
25896    ) -> ::std::os::raw::c_int;
25897}
25898extern "C" {
25899    #[link_name = "\u{1}aws_lc_0_40_0_PEM_ASN1_read"]
25900    pub fn PEM_ASN1_read(
25901        d2i: d2i_of_void,
25902        name: *const ::std::os::raw::c_char,
25903        fp: *mut FILE,
25904        x: *mut *mut ::std::os::raw::c_void,
25905        cb: pem_password_cb,
25906        u: *mut ::std::os::raw::c_void,
25907    ) -> *mut ::std::os::raw::c_void;
25908}
25909extern "C" {
25910    #[link_name = "\u{1}aws_lc_0_40_0_PEM_ASN1_write"]
25911    pub fn PEM_ASN1_write(
25912        i2d: i2d_of_void,
25913        name: *const ::std::os::raw::c_char,
25914        fp: *mut FILE,
25915        x: *mut ::std::os::raw::c_void,
25916        enc: *const EVP_CIPHER,
25917        pass: *const ::std::os::raw::c_uchar,
25918        pass_len: ::std::os::raw::c_int,
25919        callback: pem_password_cb,
25920        u: *mut ::std::os::raw::c_void,
25921    ) -> ::std::os::raw::c_int;
25922}
25923extern "C" {
25924    #[link_name = "\u{1}aws_lc_0_40_0_PEM_def_callback"]
25925    pub fn PEM_def_callback(
25926        buf: *mut ::std::os::raw::c_char,
25927        size: ::std::os::raw::c_int,
25928        rwflag: ::std::os::raw::c_int,
25929        userdata: *mut ::std::os::raw::c_void,
25930    ) -> ::std::os::raw::c_int;
25931}
25932extern "C" {
25933    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_X509"]
25934    pub fn PEM_read_bio_X509(
25935        bp: *mut BIO,
25936        x: *mut *mut X509,
25937        cb: pem_password_cb,
25938        u: *mut ::std::os::raw::c_void,
25939    ) -> *mut X509;
25940}
25941extern "C" {
25942    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_X509"]
25943    pub fn PEM_read_X509(
25944        fp: *mut FILE,
25945        x: *mut *mut X509,
25946        cb: pem_password_cb,
25947        u: *mut ::std::os::raw::c_void,
25948    ) -> *mut X509;
25949}
25950extern "C" {
25951    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_X509"]
25952    pub fn PEM_write_bio_X509(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25953}
25954extern "C" {
25955    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_X509"]
25956    pub fn PEM_write_X509(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25957}
25958extern "C" {
25959    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_X509_AUX"]
25960    pub fn PEM_read_bio_X509_AUX(
25961        bp: *mut BIO,
25962        x: *mut *mut X509,
25963        cb: pem_password_cb,
25964        u: *mut ::std::os::raw::c_void,
25965    ) -> *mut X509;
25966}
25967extern "C" {
25968    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_X509_AUX"]
25969    pub fn PEM_read_X509_AUX(
25970        fp: *mut FILE,
25971        x: *mut *mut X509,
25972        cb: pem_password_cb,
25973        u: *mut ::std::os::raw::c_void,
25974    ) -> *mut X509;
25975}
25976extern "C" {
25977    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_X509_AUX"]
25978    pub fn PEM_write_bio_X509_AUX(bp: *mut BIO, x: *mut X509) -> ::std::os::raw::c_int;
25979}
25980extern "C" {
25981    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_X509_AUX"]
25982    pub fn PEM_write_X509_AUX(fp: *mut FILE, x: *mut X509) -> ::std::os::raw::c_int;
25983}
25984extern "C" {
25985    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_X509_REQ"]
25986    pub fn PEM_read_bio_X509_REQ(
25987        bp: *mut BIO,
25988        x: *mut *mut X509_REQ,
25989        cb: pem_password_cb,
25990        u: *mut ::std::os::raw::c_void,
25991    ) -> *mut X509_REQ;
25992}
25993extern "C" {
25994    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_X509_REQ"]
25995    pub fn PEM_read_X509_REQ(
25996        fp: *mut FILE,
25997        x: *mut *mut X509_REQ,
25998        cb: pem_password_cb,
25999        u: *mut ::std::os::raw::c_void,
26000    ) -> *mut X509_REQ;
26001}
26002extern "C" {
26003    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_X509_REQ"]
26004    pub fn PEM_write_bio_X509_REQ(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26005}
26006extern "C" {
26007    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_X509_REQ"]
26008    pub fn PEM_write_X509_REQ(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26009}
26010extern "C" {
26011    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_X509_REQ_NEW"]
26012    pub fn PEM_write_bio_X509_REQ_NEW(bp: *mut BIO, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26013}
26014extern "C" {
26015    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_X509_REQ_NEW"]
26016    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, x: *mut X509_REQ) -> ::std::os::raw::c_int;
26017}
26018extern "C" {
26019    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_X509_CRL"]
26020    pub fn PEM_read_bio_X509_CRL(
26021        bp: *mut BIO,
26022        x: *mut *mut X509_CRL,
26023        cb: pem_password_cb,
26024        u: *mut ::std::os::raw::c_void,
26025    ) -> *mut X509_CRL;
26026}
26027extern "C" {
26028    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_X509_CRL"]
26029    pub fn PEM_read_X509_CRL(
26030        fp: *mut FILE,
26031        x: *mut *mut X509_CRL,
26032        cb: pem_password_cb,
26033        u: *mut ::std::os::raw::c_void,
26034    ) -> *mut X509_CRL;
26035}
26036extern "C" {
26037    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_X509_CRL"]
26038    pub fn PEM_write_bio_X509_CRL(bp: *mut BIO, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26039}
26040extern "C" {
26041    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_X509_CRL"]
26042    pub fn PEM_write_X509_CRL(fp: *mut FILE, x: *mut X509_CRL) -> ::std::os::raw::c_int;
26043}
26044extern "C" {
26045    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_PKCS7"]
26046    pub fn PEM_read_bio_PKCS7(
26047        bp: *mut BIO,
26048        x: *mut *mut PKCS7,
26049        cb: pem_password_cb,
26050        u: *mut ::std::os::raw::c_void,
26051    ) -> *mut PKCS7;
26052}
26053extern "C" {
26054    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_PKCS7"]
26055    pub fn PEM_read_PKCS7(
26056        fp: *mut FILE,
26057        x: *mut *mut PKCS7,
26058        cb: pem_password_cb,
26059        u: *mut ::std::os::raw::c_void,
26060    ) -> *mut PKCS7;
26061}
26062extern "C" {
26063    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PKCS7"]
26064    pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> ::std::os::raw::c_int;
26065}
26066extern "C" {
26067    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PKCS7"]
26068    pub fn PEM_write_PKCS7(fp: *mut FILE, x: *mut PKCS7) -> ::std::os::raw::c_int;
26069}
26070extern "C" {
26071    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_PKCS8"]
26072    pub fn PEM_read_bio_PKCS8(
26073        bp: *mut BIO,
26074        x: *mut *mut X509_SIG,
26075        cb: pem_password_cb,
26076        u: *mut ::std::os::raw::c_void,
26077    ) -> *mut X509_SIG;
26078}
26079extern "C" {
26080    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_PKCS8"]
26081    pub fn PEM_read_PKCS8(
26082        fp: *mut FILE,
26083        x: *mut *mut X509_SIG,
26084        cb: pem_password_cb,
26085        u: *mut ::std::os::raw::c_void,
26086    ) -> *mut X509_SIG;
26087}
26088extern "C" {
26089    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PKCS8"]
26090    pub fn PEM_write_bio_PKCS8(bp: *mut BIO, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26091}
26092extern "C" {
26093    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PKCS8"]
26094    pub fn PEM_write_PKCS8(fp: *mut FILE, x: *mut X509_SIG) -> ::std::os::raw::c_int;
26095}
26096extern "C" {
26097    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_PKCS8_PRIV_KEY_INFO"]
26098    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
26099        bp: *mut BIO,
26100        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26101        cb: pem_password_cb,
26102        u: *mut ::std::os::raw::c_void,
26103    ) -> *mut PKCS8_PRIV_KEY_INFO;
26104}
26105extern "C" {
26106    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_PKCS8_PRIV_KEY_INFO"]
26107    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
26108        fp: *mut FILE,
26109        x: *mut *mut PKCS8_PRIV_KEY_INFO,
26110        cb: pem_password_cb,
26111        u: *mut ::std::os::raw::c_void,
26112    ) -> *mut PKCS8_PRIV_KEY_INFO;
26113}
26114extern "C" {
26115    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PKCS8_PRIV_KEY_INFO"]
26116    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
26117        bp: *mut BIO,
26118        x: *mut PKCS8_PRIV_KEY_INFO,
26119    ) -> ::std::os::raw::c_int;
26120}
26121extern "C" {
26122    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PKCS8_PRIV_KEY_INFO"]
26123    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
26124        fp: *mut FILE,
26125        x: *mut PKCS8_PRIV_KEY_INFO,
26126    ) -> ::std::os::raw::c_int;
26127}
26128extern "C" {
26129    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_RSAPrivateKey"]
26130    pub fn PEM_read_bio_RSAPrivateKey(
26131        bp: *mut BIO,
26132        x: *mut *mut RSA,
26133        cb: pem_password_cb,
26134        u: *mut ::std::os::raw::c_void,
26135    ) -> *mut RSA;
26136}
26137extern "C" {
26138    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_RSAPrivateKey"]
26139    pub fn PEM_read_RSAPrivateKey(
26140        fp: *mut FILE,
26141        x: *mut *mut RSA,
26142        cb: pem_password_cb,
26143        u: *mut ::std::os::raw::c_void,
26144    ) -> *mut RSA;
26145}
26146extern "C" {
26147    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_RSAPrivateKey"]
26148    pub fn PEM_write_bio_RSAPrivateKey(
26149        bp: *mut BIO,
26150        x: *mut RSA,
26151        enc: *const EVP_CIPHER,
26152        pass: *const ::std::os::raw::c_uchar,
26153        pass_len: ::std::os::raw::c_int,
26154        cb: pem_password_cb,
26155        u: *mut ::std::os::raw::c_void,
26156    ) -> ::std::os::raw::c_int;
26157}
26158extern "C" {
26159    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_RSAPrivateKey"]
26160    pub fn PEM_write_RSAPrivateKey(
26161        fp: *mut FILE,
26162        x: *mut RSA,
26163        enc: *const EVP_CIPHER,
26164        pass: *const ::std::os::raw::c_uchar,
26165        pass_len: ::std::os::raw::c_int,
26166        cb: pem_password_cb,
26167        u: *mut ::std::os::raw::c_void,
26168    ) -> ::std::os::raw::c_int;
26169}
26170extern "C" {
26171    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_RSAPublicKey"]
26172    pub fn PEM_read_bio_RSAPublicKey(
26173        bp: *mut BIO,
26174        x: *mut *mut RSA,
26175        cb: pem_password_cb,
26176        u: *mut ::std::os::raw::c_void,
26177    ) -> *mut RSA;
26178}
26179extern "C" {
26180    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_RSAPublicKey"]
26181    pub fn PEM_read_RSAPublicKey(
26182        fp: *mut FILE,
26183        x: *mut *mut RSA,
26184        cb: pem_password_cb,
26185        u: *mut ::std::os::raw::c_void,
26186    ) -> *mut RSA;
26187}
26188extern "C" {
26189    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_RSAPublicKey"]
26190    pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, x: *const RSA) -> ::std::os::raw::c_int;
26191}
26192extern "C" {
26193    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_RSAPublicKey"]
26194    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, x: *const RSA) -> ::std::os::raw::c_int;
26195}
26196extern "C" {
26197    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_RSA_PUBKEY"]
26198    pub fn PEM_read_bio_RSA_PUBKEY(
26199        bp: *mut BIO,
26200        x: *mut *mut RSA,
26201        cb: pem_password_cb,
26202        u: *mut ::std::os::raw::c_void,
26203    ) -> *mut RSA;
26204}
26205extern "C" {
26206    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_RSA_PUBKEY"]
26207    pub fn PEM_read_RSA_PUBKEY(
26208        fp: *mut FILE,
26209        x: *mut *mut RSA,
26210        cb: pem_password_cb,
26211        u: *mut ::std::os::raw::c_void,
26212    ) -> *mut RSA;
26213}
26214extern "C" {
26215    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_RSA_PUBKEY"]
26216    pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, x: *mut RSA) -> ::std::os::raw::c_int;
26217}
26218extern "C" {
26219    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_RSA_PUBKEY"]
26220    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, x: *mut RSA) -> ::std::os::raw::c_int;
26221}
26222extern "C" {
26223    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_DSAPrivateKey"]
26224    pub fn PEM_read_bio_DSAPrivateKey(
26225        bp: *mut BIO,
26226        x: *mut *mut DSA,
26227        cb: pem_password_cb,
26228        u: *mut ::std::os::raw::c_void,
26229    ) -> *mut DSA;
26230}
26231extern "C" {
26232    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_DSAPrivateKey"]
26233    pub fn PEM_read_DSAPrivateKey(
26234        fp: *mut FILE,
26235        x: *mut *mut DSA,
26236        cb: pem_password_cb,
26237        u: *mut ::std::os::raw::c_void,
26238    ) -> *mut DSA;
26239}
26240extern "C" {
26241    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_DSAPrivateKey"]
26242    pub fn PEM_write_bio_DSAPrivateKey(
26243        bp: *mut BIO,
26244        x: *mut DSA,
26245        enc: *const EVP_CIPHER,
26246        pass: *const ::std::os::raw::c_uchar,
26247        pass_len: ::std::os::raw::c_int,
26248        cb: pem_password_cb,
26249        u: *mut ::std::os::raw::c_void,
26250    ) -> ::std::os::raw::c_int;
26251}
26252extern "C" {
26253    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_DSAPrivateKey"]
26254    pub fn PEM_write_DSAPrivateKey(
26255        fp: *mut FILE,
26256        x: *mut DSA,
26257        enc: *const EVP_CIPHER,
26258        pass: *const ::std::os::raw::c_uchar,
26259        pass_len: ::std::os::raw::c_int,
26260        cb: pem_password_cb,
26261        u: *mut ::std::os::raw::c_void,
26262    ) -> ::std::os::raw::c_int;
26263}
26264extern "C" {
26265    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_DSA_PUBKEY"]
26266    pub fn PEM_read_bio_DSA_PUBKEY(
26267        bp: *mut BIO,
26268        x: *mut *mut DSA,
26269        cb: pem_password_cb,
26270        u: *mut ::std::os::raw::c_void,
26271    ) -> *mut DSA;
26272}
26273extern "C" {
26274    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_DSA_PUBKEY"]
26275    pub fn PEM_read_DSA_PUBKEY(
26276        fp: *mut FILE,
26277        x: *mut *mut DSA,
26278        cb: pem_password_cb,
26279        u: *mut ::std::os::raw::c_void,
26280    ) -> *mut DSA;
26281}
26282extern "C" {
26283    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_DSA_PUBKEY"]
26284    pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, x: *mut DSA) -> ::std::os::raw::c_int;
26285}
26286extern "C" {
26287    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_DSA_PUBKEY"]
26288    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, x: *mut DSA) -> ::std::os::raw::c_int;
26289}
26290extern "C" {
26291    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_DSAparams"]
26292    pub fn PEM_read_bio_DSAparams(
26293        bp: *mut BIO,
26294        x: *mut *mut DSA,
26295        cb: pem_password_cb,
26296        u: *mut ::std::os::raw::c_void,
26297    ) -> *mut DSA;
26298}
26299extern "C" {
26300    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_DSAparams"]
26301    pub fn PEM_read_DSAparams(
26302        fp: *mut FILE,
26303        x: *mut *mut DSA,
26304        cb: pem_password_cb,
26305        u: *mut ::std::os::raw::c_void,
26306    ) -> *mut DSA;
26307}
26308extern "C" {
26309    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_DSAparams"]
26310    pub fn PEM_write_bio_DSAparams(bp: *mut BIO, x: *const DSA) -> ::std::os::raw::c_int;
26311}
26312extern "C" {
26313    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_DSAparams"]
26314    pub fn PEM_write_DSAparams(fp: *mut FILE, x: *const DSA) -> ::std::os::raw::c_int;
26315}
26316extern "C" {
26317    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_ECPrivateKey"]
26318    pub fn PEM_read_bio_ECPrivateKey(
26319        bp: *mut BIO,
26320        x: *mut *mut EC_KEY,
26321        cb: pem_password_cb,
26322        u: *mut ::std::os::raw::c_void,
26323    ) -> *mut EC_KEY;
26324}
26325extern "C" {
26326    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_ECPrivateKey"]
26327    pub fn PEM_read_ECPrivateKey(
26328        fp: *mut FILE,
26329        x: *mut *mut EC_KEY,
26330        cb: pem_password_cb,
26331        u: *mut ::std::os::raw::c_void,
26332    ) -> *mut EC_KEY;
26333}
26334extern "C" {
26335    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_ECPrivateKey"]
26336    pub fn PEM_write_bio_ECPrivateKey(
26337        bp: *mut BIO,
26338        x: *mut EC_KEY,
26339        enc: *const EVP_CIPHER,
26340        pass: *const ::std::os::raw::c_uchar,
26341        pass_len: ::std::os::raw::c_int,
26342        cb: pem_password_cb,
26343        u: *mut ::std::os::raw::c_void,
26344    ) -> ::std::os::raw::c_int;
26345}
26346extern "C" {
26347    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_ECPrivateKey"]
26348    pub fn PEM_write_ECPrivateKey(
26349        fp: *mut FILE,
26350        x: *mut EC_KEY,
26351        enc: *const EVP_CIPHER,
26352        pass: *const ::std::os::raw::c_uchar,
26353        pass_len: ::std::os::raw::c_int,
26354        cb: pem_password_cb,
26355        u: *mut ::std::os::raw::c_void,
26356    ) -> ::std::os::raw::c_int;
26357}
26358extern "C" {
26359    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_EC_PUBKEY"]
26360    pub fn PEM_read_bio_EC_PUBKEY(
26361        bp: *mut BIO,
26362        x: *mut *mut EC_KEY,
26363        cb: pem_password_cb,
26364        u: *mut ::std::os::raw::c_void,
26365    ) -> *mut EC_KEY;
26366}
26367extern "C" {
26368    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_EC_PUBKEY"]
26369    pub fn PEM_read_EC_PUBKEY(
26370        fp: *mut FILE,
26371        x: *mut *mut EC_KEY,
26372        cb: pem_password_cb,
26373        u: *mut ::std::os::raw::c_void,
26374    ) -> *mut EC_KEY;
26375}
26376extern "C" {
26377    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_EC_PUBKEY"]
26378    pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26379}
26380extern "C" {
26381    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_EC_PUBKEY"]
26382    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, x: *mut EC_KEY) -> ::std::os::raw::c_int;
26383}
26384extern "C" {
26385    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_DHparams"]
26386    pub fn PEM_read_bio_DHparams(
26387        bp: *mut BIO,
26388        x: *mut *mut DH,
26389        cb: pem_password_cb,
26390        u: *mut ::std::os::raw::c_void,
26391    ) -> *mut DH;
26392}
26393extern "C" {
26394    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_DHparams"]
26395    pub fn PEM_read_DHparams(
26396        fp: *mut FILE,
26397        x: *mut *mut DH,
26398        cb: pem_password_cb,
26399        u: *mut ::std::os::raw::c_void,
26400    ) -> *mut DH;
26401}
26402extern "C" {
26403    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_DHparams"]
26404    pub fn PEM_write_bio_DHparams(bp: *mut BIO, x: *const DH) -> ::std::os::raw::c_int;
26405}
26406extern "C" {
26407    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_DHparams"]
26408    pub fn PEM_write_DHparams(fp: *mut FILE, x: *const DH) -> ::std::os::raw::c_int;
26409}
26410extern "C" {
26411    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_PrivateKey"]
26412    pub fn PEM_read_bio_PrivateKey(
26413        bp: *mut BIO,
26414        x: *mut *mut EVP_PKEY,
26415        cb: pem_password_cb,
26416        u: *mut ::std::os::raw::c_void,
26417    ) -> *mut EVP_PKEY;
26418}
26419extern "C" {
26420    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_PrivateKey"]
26421    pub fn PEM_read_PrivateKey(
26422        fp: *mut FILE,
26423        x: *mut *mut EVP_PKEY,
26424        cb: pem_password_cb,
26425        u: *mut ::std::os::raw::c_void,
26426    ) -> *mut EVP_PKEY;
26427}
26428extern "C" {
26429    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PrivateKey"]
26430    pub fn PEM_write_bio_PrivateKey(
26431        bp: *mut BIO,
26432        x: *mut EVP_PKEY,
26433        enc: *const EVP_CIPHER,
26434        pass: *const ::std::os::raw::c_uchar,
26435        pass_len: ::std::os::raw::c_int,
26436        cb: pem_password_cb,
26437        u: *mut ::std::os::raw::c_void,
26438    ) -> ::std::os::raw::c_int;
26439}
26440extern "C" {
26441    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PrivateKey"]
26442    pub fn PEM_write_PrivateKey(
26443        fp: *mut FILE,
26444        x: *mut EVP_PKEY,
26445        enc: *const EVP_CIPHER,
26446        pass: *const ::std::os::raw::c_uchar,
26447        pass_len: ::std::os::raw::c_int,
26448        cb: pem_password_cb,
26449        u: *mut ::std::os::raw::c_void,
26450    ) -> ::std::os::raw::c_int;
26451}
26452extern "C" {
26453    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_PUBKEY"]
26454    pub fn PEM_read_bio_PUBKEY(
26455        bp: *mut BIO,
26456        x: *mut *mut EVP_PKEY,
26457        cb: pem_password_cb,
26458        u: *mut ::std::os::raw::c_void,
26459    ) -> *mut EVP_PKEY;
26460}
26461extern "C" {
26462    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_PUBKEY"]
26463    pub fn PEM_read_PUBKEY(
26464        fp: *mut FILE,
26465        x: *mut *mut EVP_PKEY,
26466        cb: pem_password_cb,
26467        u: *mut ::std::os::raw::c_void,
26468    ) -> *mut EVP_PKEY;
26469}
26470extern "C" {
26471    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PUBKEY"]
26472    pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26473}
26474extern "C" {
26475    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PUBKEY"]
26476    pub fn PEM_write_PUBKEY(fp: *mut FILE, x: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26477}
26478extern "C" {
26479    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PKCS8PrivateKey_nid"]
26480    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
26481        bp: *mut BIO,
26482        x: *const EVP_PKEY,
26483        nid: ::std::os::raw::c_int,
26484        pass: *const ::std::os::raw::c_char,
26485        pass_len: ::std::os::raw::c_int,
26486        cb: pem_password_cb,
26487        u: *mut ::std::os::raw::c_void,
26488    ) -> ::std::os::raw::c_int;
26489}
26490extern "C" {
26491    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PKCS8PrivateKey"]
26492    pub fn PEM_write_bio_PKCS8PrivateKey(
26493        bp: *mut BIO,
26494        x: *const EVP_PKEY,
26495        enc: *const EVP_CIPHER,
26496        pass: *const ::std::os::raw::c_char,
26497        pass_len: ::std::os::raw::c_int,
26498        cb: pem_password_cb,
26499        u: *mut ::std::os::raw::c_void,
26500    ) -> ::std::os::raw::c_int;
26501}
26502extern "C" {
26503    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKey_bio"]
26504    pub fn i2d_PKCS8PrivateKey_bio(
26505        bp: *mut BIO,
26506        x: *const EVP_PKEY,
26507        enc: *const EVP_CIPHER,
26508        pass: *const ::std::os::raw::c_char,
26509        pass_len: ::std::os::raw::c_int,
26510        cb: pem_password_cb,
26511        u: *mut ::std::os::raw::c_void,
26512    ) -> ::std::os::raw::c_int;
26513}
26514extern "C" {
26515    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKey_nid_bio"]
26516    pub fn i2d_PKCS8PrivateKey_nid_bio(
26517        bp: *mut BIO,
26518        x: *const EVP_PKEY,
26519        nid: ::std::os::raw::c_int,
26520        pass: *const ::std::os::raw::c_char,
26521        pass_len: ::std::os::raw::c_int,
26522        cb: pem_password_cb,
26523        u: *mut ::std::os::raw::c_void,
26524    ) -> ::std::os::raw::c_int;
26525}
26526extern "C" {
26527    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8PrivateKey_bio"]
26528    pub fn d2i_PKCS8PrivateKey_bio(
26529        bp: *mut BIO,
26530        x: *mut *mut EVP_PKEY,
26531        cb: pem_password_cb,
26532        u: *mut ::std::os::raw::c_void,
26533    ) -> *mut EVP_PKEY;
26534}
26535extern "C" {
26536    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKey_fp"]
26537    pub fn i2d_PKCS8PrivateKey_fp(
26538        fp: *mut FILE,
26539        x: *const EVP_PKEY,
26540        enc: *const EVP_CIPHER,
26541        pass: *const ::std::os::raw::c_char,
26542        pass_len: ::std::os::raw::c_int,
26543        cb: pem_password_cb,
26544        u: *mut ::std::os::raw::c_void,
26545    ) -> ::std::os::raw::c_int;
26546}
26547extern "C" {
26548    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS8PrivateKey_nid_fp"]
26549    pub fn i2d_PKCS8PrivateKey_nid_fp(
26550        fp: *mut FILE,
26551        x: *const EVP_PKEY,
26552        nid: ::std::os::raw::c_int,
26553        pass: *const ::std::os::raw::c_char,
26554        pass_len: ::std::os::raw::c_int,
26555        cb: pem_password_cb,
26556        u: *mut ::std::os::raw::c_void,
26557    ) -> ::std::os::raw::c_int;
26558}
26559extern "C" {
26560    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PKCS8PrivateKey_nid"]
26561    pub fn PEM_write_PKCS8PrivateKey_nid(
26562        fp: *mut FILE,
26563        x: *const EVP_PKEY,
26564        nid: ::std::os::raw::c_int,
26565        pass: *const ::std::os::raw::c_char,
26566        pass_len: ::std::os::raw::c_int,
26567        cb: pem_password_cb,
26568        u: *mut ::std::os::raw::c_void,
26569    ) -> ::std::os::raw::c_int;
26570}
26571extern "C" {
26572    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS8PrivateKey_fp"]
26573    pub fn d2i_PKCS8PrivateKey_fp(
26574        fp: *mut FILE,
26575        x: *mut *mut EVP_PKEY,
26576        cb: pem_password_cb,
26577        u: *mut ::std::os::raw::c_void,
26578    ) -> *mut EVP_PKEY;
26579}
26580extern "C" {
26581    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_PKCS8PrivateKey"]
26582    pub fn PEM_write_PKCS8PrivateKey(
26583        fp: *mut FILE,
26584        x: *const EVP_PKEY,
26585        enc: *const EVP_CIPHER,
26586        pass: *const ::std::os::raw::c_char,
26587        pass_len: ::std::os::raw::c_int,
26588        cd: pem_password_cb,
26589        u: *mut ::std::os::raw::c_void,
26590    ) -> ::std::os::raw::c_int;
26591}
26592extern "C" {
26593    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_Parameters"]
26594    pub fn PEM_read_bio_Parameters(bio: *mut BIO, pkey: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
26595}
26596extern "C" {
26597    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_Parameters"]
26598    pub fn PEM_write_bio_Parameters(bio: *mut BIO, pkey: *mut EVP_PKEY) -> ::std::os::raw::c_int;
26599}
26600extern "C" {
26601    #[link_name = "\u{1}aws_lc_0_40_0_PEM_read_bio_ECPKParameters"]
26602    pub fn PEM_read_bio_ECPKParameters(
26603        bio: *mut BIO,
26604        out_group: *mut *mut EC_GROUP,
26605        cb: pem_password_cb,
26606        u: *mut ::std::os::raw::c_void,
26607    ) -> *mut EC_GROUP;
26608}
26609extern "C" {
26610    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_ECPKParameters"]
26611    pub fn PEM_write_bio_ECPKParameters(
26612        out: *mut BIO,
26613        group: *const EC_GROUP,
26614    ) -> ::std::os::raw::c_int;
26615}
26616extern "C" {
26617    #[link_name = "\u{1}aws_lc_0_40_0_PEM_write_bio_PrivateKey_traditional"]
26618    pub fn PEM_write_bio_PrivateKey_traditional(
26619        bp: *mut BIO,
26620        x: *mut EVP_PKEY,
26621        enc: *const EVP_CIPHER,
26622        kstr: *mut ::std::os::raw::c_uchar,
26623        klen: ::std::os::raw::c_int,
26624        cb: pem_password_cb,
26625        u: *mut ::std::os::raw::c_void,
26626    ) -> ::std::os::raw::c_int;
26627}
26628extern "C" {
26629    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_encrypt"]
26630    pub fn PKCS8_encrypt(
26631        pbe_nid: ::std::os::raw::c_int,
26632        cipher: *const EVP_CIPHER,
26633        pass: *const ::std::os::raw::c_char,
26634        pass_len: ::std::os::raw::c_int,
26635        salt: *const u8,
26636        salt_len: usize,
26637        iterations: ::std::os::raw::c_int,
26638        p8inf: *mut PKCS8_PRIV_KEY_INFO,
26639    ) -> *mut X509_SIG;
26640}
26641extern "C" {
26642    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_marshal_encrypted_private_key"]
26643    pub fn PKCS8_marshal_encrypted_private_key(
26644        out: *mut CBB,
26645        pbe_nid: ::std::os::raw::c_int,
26646        cipher: *const EVP_CIPHER,
26647        pass: *const ::std::os::raw::c_char,
26648        pass_len: usize,
26649        salt: *const u8,
26650        salt_len: usize,
26651        iterations: ::std::os::raw::c_int,
26652        pkey: *const EVP_PKEY,
26653    ) -> ::std::os::raw::c_int;
26654}
26655extern "C" {
26656    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_decrypt"]
26657    pub fn PKCS8_decrypt(
26658        pkcs8: *mut X509_SIG,
26659        pass: *const ::std::os::raw::c_char,
26660        pass_len: ::std::os::raw::c_int,
26661    ) -> *mut PKCS8_PRIV_KEY_INFO;
26662}
26663extern "C" {
26664    #[link_name = "\u{1}aws_lc_0_40_0_PKCS8_parse_encrypted_private_key"]
26665    pub fn PKCS8_parse_encrypted_private_key(
26666        cbs: *mut CBS,
26667        pass: *const ::std::os::raw::c_char,
26668        pass_len: usize,
26669    ) -> *mut EVP_PKEY;
26670}
26671extern "C" {
26672    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_get_key_and_certs"]
26673    pub fn PKCS12_get_key_and_certs(
26674        out_key: *mut *mut EVP_PKEY,
26675        out_certs: *mut stack_st_X509,
26676        in_: *mut CBS,
26677        password: *const ::std::os::raw::c_char,
26678    ) -> ::std::os::raw::c_int;
26679}
26680extern "C" {
26681    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_PBE_add"]
26682    pub fn PKCS12_PBE_add();
26683}
26684extern "C" {
26685    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS12"]
26686    pub fn d2i_PKCS12(
26687        out_p12: *mut *mut PKCS12,
26688        ber_bytes: *mut *const u8,
26689        ber_len: usize,
26690    ) -> *mut PKCS12;
26691}
26692extern "C" {
26693    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS12_bio"]
26694    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26695}
26696extern "C" {
26697    #[link_name = "\u{1}aws_lc_0_40_0_d2i_PKCS12_fp"]
26698    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
26699}
26700extern "C" {
26701    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS12"]
26702    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::std::os::raw::c_int;
26703}
26704extern "C" {
26705    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS12_bio"]
26706    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::std::os::raw::c_int;
26707}
26708extern "C" {
26709    #[link_name = "\u{1}aws_lc_0_40_0_i2d_PKCS12_fp"]
26710    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::std::os::raw::c_int;
26711}
26712extern "C" {
26713    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_parse"]
26714    pub fn PKCS12_parse(
26715        p12: *const PKCS12,
26716        password: *const ::std::os::raw::c_char,
26717        out_pkey: *mut *mut EVP_PKEY,
26718        out_cert: *mut *mut X509,
26719        out_ca_certs: *mut *mut stack_st_X509,
26720    ) -> ::std::os::raw::c_int;
26721}
26722extern "C" {
26723    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_set_mac"]
26724    pub fn PKCS12_set_mac(
26725        p12: *mut PKCS12,
26726        password: *const ::std::os::raw::c_char,
26727        password_len: ::std::os::raw::c_int,
26728        salt: *mut ::std::os::raw::c_uchar,
26729        salt_len: ::std::os::raw::c_int,
26730        mac_iterations: ::std::os::raw::c_int,
26731        md: *const EVP_MD,
26732    ) -> ::std::os::raw::c_int;
26733}
26734extern "C" {
26735    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_verify_mac"]
26736    pub fn PKCS12_verify_mac(
26737        p12: *const PKCS12,
26738        password: *const ::std::os::raw::c_char,
26739        password_len: ::std::os::raw::c_int,
26740    ) -> ::std::os::raw::c_int;
26741}
26742extern "C" {
26743    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_create"]
26744    pub fn PKCS12_create(
26745        password: *const ::std::os::raw::c_char,
26746        name: *const ::std::os::raw::c_char,
26747        pkey: *const EVP_PKEY,
26748        cert: *mut X509,
26749        chain: *const stack_st_X509,
26750        key_nid: ::std::os::raw::c_int,
26751        cert_nid: ::std::os::raw::c_int,
26752        iterations: ::std::os::raw::c_int,
26753        mac_iterations: ::std::os::raw::c_int,
26754        key_type: ::std::os::raw::c_int,
26755    ) -> *mut PKCS12;
26756}
26757extern "C" {
26758    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_new"]
26759    pub fn PKCS12_new() -> *mut PKCS12;
26760}
26761extern "C" {
26762    #[link_name = "\u{1}aws_lc_0_40_0_PKCS12_free"]
26763    pub fn PKCS12_free(p12: *mut PKCS12);
26764}
26765pub type poly1305_state = [u8; 512usize];
26766extern "C" {
26767    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_poly1305_init"]
26768    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
26769}
26770extern "C" {
26771    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_poly1305_update"]
26772    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
26773}
26774extern "C" {
26775    #[link_name = "\u{1}aws_lc_0_40_0_CRYPTO_poly1305_finish"]
26776    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
26777}
26778extern "C" {
26779    #[link_name = "\u{1}aws_lc_0_40_0_RAND_bytes"]
26780    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26781}
26782extern "C" {
26783    #[link_name = "\u{1}aws_lc_0_40_0_RAND_priv_bytes"]
26784    pub fn RAND_priv_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26785}
26786extern "C" {
26787    #[link_name = "\u{1}aws_lc_0_40_0_RAND_public_bytes"]
26788    pub fn RAND_public_bytes(out: *mut u8, out_len: usize) -> ::std::os::raw::c_int;
26789}
26790extern "C" {
26791    #[link_name = "\u{1}aws_lc_0_40_0_RAND_bytes_with_user_prediction_resistance"]
26792    pub fn RAND_bytes_with_user_prediction_resistance(
26793        out: *mut u8,
26794        out_len: usize,
26795        user_pred_resistance: *const u8,
26796    ) -> ::std::os::raw::c_int;
26797}
26798extern "C" {
26799    #[link_name = "\u{1}aws_lc_0_40_0_RAND_pseudo_bytes"]
26800    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::std::os::raw::c_int;
26801}
26802extern "C" {
26803    #[link_name = "\u{1}aws_lc_0_40_0_RAND_seed"]
26804    pub fn RAND_seed(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int);
26805}
26806extern "C" {
26807    #[link_name = "\u{1}aws_lc_0_40_0_RAND_load_file"]
26808    pub fn RAND_load_file(
26809        path: *const ::std::os::raw::c_char,
26810        num: ::std::os::raw::c_long,
26811    ) -> ::std::os::raw::c_int;
26812}
26813extern "C" {
26814    #[link_name = "\u{1}aws_lc_0_40_0_RAND_write_file"]
26815    pub fn RAND_write_file(file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26816}
26817extern "C" {
26818    #[link_name = "\u{1}aws_lc_0_40_0_RAND_file_name"]
26819    pub fn RAND_file_name(
26820        buf: *mut ::std::os::raw::c_char,
26821        num: usize,
26822    ) -> *const ::std::os::raw::c_char;
26823}
26824extern "C" {
26825    #[link_name = "\u{1}aws_lc_0_40_0_RAND_add"]
26826    pub fn RAND_add(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int, entropy: f64);
26827}
26828extern "C" {
26829    #[link_name = "\u{1}aws_lc_0_40_0_RAND_egd"]
26830    pub fn RAND_egd(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
26831}
26832extern "C" {
26833    #[link_name = "\u{1}aws_lc_0_40_0_RAND_egd_bytes"]
26834    pub fn RAND_egd_bytes(
26835        arg1: *const ::std::os::raw::c_char,
26836        bytes: ::std::os::raw::c_int,
26837    ) -> ::std::os::raw::c_int;
26838}
26839extern "C" {
26840    #[link_name = "\u{1}aws_lc_0_40_0_RAND_poll"]
26841    pub fn RAND_poll() -> ::std::os::raw::c_int;
26842}
26843extern "C" {
26844    #[link_name = "\u{1}aws_lc_0_40_0_RAND_status"]
26845    pub fn RAND_status() -> ::std::os::raw::c_int;
26846}
26847extern "C" {
26848    #[link_name = "\u{1}aws_lc_0_40_0_RAND_cleanup"]
26849    pub fn RAND_cleanup();
26850}
26851#[repr(C)]
26852#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
26853pub struct rand_meth_st {
26854    pub seed: ::std::option::Option<
26855        unsafe extern "C" fn(buf: *const ::std::os::raw::c_void, num: ::std::os::raw::c_int),
26856    >,
26857    pub bytes: ::std::option::Option<
26858        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26859    >,
26860    pub cleanup: ::std::option::Option<unsafe extern "C" fn()>,
26861    pub add: ::std::option::Option<
26862        unsafe extern "C" fn(
26863            buf: *const ::std::os::raw::c_void,
26864            num: ::std::os::raw::c_int,
26865            entropy: f64,
26866        ),
26867    >,
26868    pub pseudorand: ::std::option::Option<
26869        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::std::os::raw::c_int,
26870    >,
26871    pub status: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
26872}
26873#[test]
26874fn bindgen_test_layout_rand_meth_st() {
26875    const UNINIT: ::std::mem::MaybeUninit<rand_meth_st> = ::std::mem::MaybeUninit::uninit();
26876    let ptr = UNINIT.as_ptr();
26877    assert_eq!(
26878        ::std::mem::size_of::<rand_meth_st>(),
26879        48usize,
26880        "Size of rand_meth_st"
26881    );
26882    assert_eq!(
26883        ::std::mem::align_of::<rand_meth_st>(),
26884        8usize,
26885        "Alignment of rand_meth_st"
26886    );
26887    assert_eq!(
26888        unsafe { ::std::ptr::addr_of!((*ptr).seed) as usize - ptr as usize },
26889        0usize,
26890        "Offset of field: rand_meth_st::seed"
26891    );
26892    assert_eq!(
26893        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
26894        8usize,
26895        "Offset of field: rand_meth_st::bytes"
26896    );
26897    assert_eq!(
26898        unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize },
26899        16usize,
26900        "Offset of field: rand_meth_st::cleanup"
26901    );
26902    assert_eq!(
26903        unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize },
26904        24usize,
26905        "Offset of field: rand_meth_st::add"
26906    );
26907    assert_eq!(
26908        unsafe { ::std::ptr::addr_of!((*ptr).pseudorand) as usize - ptr as usize },
26909        32usize,
26910        "Offset of field: rand_meth_st::pseudorand"
26911    );
26912    assert_eq!(
26913        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
26914        40usize,
26915        "Offset of field: rand_meth_st::status"
26916    );
26917}
26918extern "C" {
26919    #[link_name = "\u{1}aws_lc_0_40_0_RAND_SSLeay"]
26920    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
26921}
26922extern "C" {
26923    #[link_name = "\u{1}aws_lc_0_40_0_RAND_OpenSSL"]
26924    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
26925}
26926extern "C" {
26927    #[link_name = "\u{1}aws_lc_0_40_0_RAND_get_rand_method"]
26928    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
26929}
26930extern "C" {
26931    #[link_name = "\u{1}aws_lc_0_40_0_RAND_set_rand_method"]
26932    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::std::os::raw::c_int;
26933}
26934extern "C" {
26935    #[link_name = "\u{1}aws_lc_0_40_0_RAND_keep_random_devices_open"]
26936    pub fn RAND_keep_random_devices_open(a: ::std::os::raw::c_int);
26937}
26938#[repr(C)]
26939#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26940pub struct rc4_key_st {
26941    pub x: u32,
26942    pub y: u32,
26943    pub data: [u32; 256usize],
26944}
26945#[test]
26946fn bindgen_test_layout_rc4_key_st() {
26947    const UNINIT: ::std::mem::MaybeUninit<rc4_key_st> = ::std::mem::MaybeUninit::uninit();
26948    let ptr = UNINIT.as_ptr();
26949    assert_eq!(
26950        ::std::mem::size_of::<rc4_key_st>(),
26951        1032usize,
26952        "Size of rc4_key_st"
26953    );
26954    assert_eq!(
26955        ::std::mem::align_of::<rc4_key_st>(),
26956        4usize,
26957        "Alignment of rc4_key_st"
26958    );
26959    assert_eq!(
26960        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
26961        0usize,
26962        "Offset of field: rc4_key_st::x"
26963    );
26964    assert_eq!(
26965        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
26966        4usize,
26967        "Offset of field: rc4_key_st::y"
26968    );
26969    assert_eq!(
26970        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
26971        8usize,
26972        "Offset of field: rc4_key_st::data"
26973    );
26974}
26975impl Default for rc4_key_st {
26976    fn default() -> Self {
26977        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
26978        unsafe {
26979            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
26980            s.assume_init()
26981        }
26982    }
26983}
26984extern "C" {
26985    #[link_name = "\u{1}aws_lc_0_40_0_RC4_set_key"]
26986    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::std::os::raw::c_uint, key: *const u8);
26987}
26988extern "C" {
26989    #[link_name = "\u{1}aws_lc_0_40_0_RC4"]
26990    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
26991}
26992extern "C" {
26993    #[link_name = "\u{1}aws_lc_0_40_0_RC4_options"]
26994    pub fn RC4_options() -> *const ::std::os::raw::c_char;
26995}
26996#[repr(C)]
26997#[derive(Debug, Copy, Clone, PartialEq, Eq)]
26998pub struct RIPEMD160state_st {
26999    pub h: [u32; 5usize],
27000    pub Nl: u32,
27001    pub Nh: u32,
27002    pub data: [u8; 64usize],
27003    pub num: ::std::os::raw::c_uint,
27004}
27005#[test]
27006fn bindgen_test_layout_RIPEMD160state_st() {
27007    const UNINIT: ::std::mem::MaybeUninit<RIPEMD160state_st> = ::std::mem::MaybeUninit::uninit();
27008    let ptr = UNINIT.as_ptr();
27009    assert_eq!(
27010        ::std::mem::size_of::<RIPEMD160state_st>(),
27011        96usize,
27012        "Size of RIPEMD160state_st"
27013    );
27014    assert_eq!(
27015        ::std::mem::align_of::<RIPEMD160state_st>(),
27016        4usize,
27017        "Alignment of RIPEMD160state_st"
27018    );
27019    assert_eq!(
27020        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
27021        0usize,
27022        "Offset of field: RIPEMD160state_st::h"
27023    );
27024    assert_eq!(
27025        unsafe { ::std::ptr::addr_of!((*ptr).Nl) as usize - ptr as usize },
27026        20usize,
27027        "Offset of field: RIPEMD160state_st::Nl"
27028    );
27029    assert_eq!(
27030        unsafe { ::std::ptr::addr_of!((*ptr).Nh) as usize - ptr as usize },
27031        24usize,
27032        "Offset of field: RIPEMD160state_st::Nh"
27033    );
27034    assert_eq!(
27035        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27036        28usize,
27037        "Offset of field: RIPEMD160state_st::data"
27038    );
27039    assert_eq!(
27040        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
27041        92usize,
27042        "Offset of field: RIPEMD160state_st::num"
27043    );
27044}
27045impl Default for RIPEMD160state_st {
27046    fn default() -> Self {
27047        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27048        unsafe {
27049            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27050            s.assume_init()
27051        }
27052    }
27053}
27054extern "C" {
27055    #[link_name = "\u{1}aws_lc_0_40_0_RIPEMD160_Init"]
27056    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27057}
27058extern "C" {
27059    #[link_name = "\u{1}aws_lc_0_40_0_RIPEMD160_Update"]
27060    pub fn RIPEMD160_Update(
27061        ctx: *mut RIPEMD160_CTX,
27062        data: *const ::std::os::raw::c_void,
27063        len: usize,
27064    ) -> ::std::os::raw::c_int;
27065}
27066extern "C" {
27067    #[link_name = "\u{1}aws_lc_0_40_0_RIPEMD160_Final"]
27068    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::std::os::raw::c_int;
27069}
27070extern "C" {
27071    #[link_name = "\u{1}aws_lc_0_40_0_RIPEMD160"]
27072    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
27073}
27074extern "C" {
27075    #[link_name = "\u{1}aws_lc_0_40_0_SIPHASH_24"]
27076    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
27077}
27078extern "C" {
27079    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_experiment_v1"]
27080    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27081}
27082extern "C" {
27083    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_experiment_v2_voprf"]
27084    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27085}
27086extern "C" {
27087    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_experiment_v2_pmb"]
27088    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27089}
27090extern "C" {
27091    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_pst_v1_voprf"]
27092    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27093}
27094extern "C" {
27095    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_pst_v1_pmb"]
27096    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27097}
27098#[repr(C)]
27099#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27100pub struct trust_token_st {
27101    pub data: *mut u8,
27102    pub len: usize,
27103}
27104#[test]
27105fn bindgen_test_layout_trust_token_st() {
27106    const UNINIT: ::std::mem::MaybeUninit<trust_token_st> = ::std::mem::MaybeUninit::uninit();
27107    let ptr = UNINIT.as_ptr();
27108    assert_eq!(
27109        ::std::mem::size_of::<trust_token_st>(),
27110        16usize,
27111        "Size of trust_token_st"
27112    );
27113    assert_eq!(
27114        ::std::mem::align_of::<trust_token_st>(),
27115        8usize,
27116        "Alignment of trust_token_st"
27117    );
27118    assert_eq!(
27119        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
27120        0usize,
27121        "Offset of field: trust_token_st::data"
27122    );
27123    assert_eq!(
27124        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
27125        8usize,
27126        "Offset of field: trust_token_st::len"
27127    );
27128}
27129impl Default for trust_token_st {
27130    fn default() -> Self {
27131        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27132        unsafe {
27133            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27134            s.assume_init()
27135        }
27136    }
27137}
27138#[repr(C)]
27139#[derive(Debug, Copy, Clone)]
27140pub struct stack_st_TRUST_TOKEN {
27141    _unused: [u8; 0],
27142}
27143pub type sk_TRUST_TOKEN_free_func =
27144    ::std::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27145pub type sk_TRUST_TOKEN_copy_func =
27146    ::std::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27147pub type sk_TRUST_TOKEN_cmp_func = ::std::option::Option<
27148    unsafe extern "C" fn(
27149        arg1: *const *const TRUST_TOKEN,
27150        arg2: *const *const TRUST_TOKEN,
27151    ) -> ::std::os::raw::c_int,
27152>;
27153pub type sk_TRUST_TOKEN_delete_if_func = ::std::option::Option<
27154    unsafe extern "C" fn(
27155        arg1: *mut TRUST_TOKEN,
27156        arg2: *mut ::std::os::raw::c_void,
27157    ) -> ::std::os::raw::c_int,
27158>;
27159extern "C" {
27160    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_new"]
27161    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27162}
27163extern "C" {
27164    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_free"]
27165    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27166}
27167extern "C" {
27168    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_generate_key"]
27169    pub fn TRUST_TOKEN_generate_key(
27170        method: *const TRUST_TOKEN_METHOD,
27171        out_priv_key: *mut u8,
27172        out_priv_key_len: *mut usize,
27173        max_priv_key_len: usize,
27174        out_pub_key: *mut u8,
27175        out_pub_key_len: *mut usize,
27176        max_pub_key_len: usize,
27177        id: u32,
27178    ) -> ::std::os::raw::c_int;
27179}
27180extern "C" {
27181    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_derive_key_from_secret"]
27182    pub fn TRUST_TOKEN_derive_key_from_secret(
27183        method: *const TRUST_TOKEN_METHOD,
27184        out_priv_key: *mut u8,
27185        out_priv_key_len: *mut usize,
27186        max_priv_key_len: usize,
27187        out_pub_key: *mut u8,
27188        out_pub_key_len: *mut usize,
27189        max_pub_key_len: usize,
27190        id: u32,
27191        secret: *const u8,
27192        secret_len: usize,
27193    ) -> ::std::os::raw::c_int;
27194}
27195extern "C" {
27196    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_new"]
27197    pub fn TRUST_TOKEN_CLIENT_new(
27198        method: *const TRUST_TOKEN_METHOD,
27199        max_batchsize: usize,
27200    ) -> *mut TRUST_TOKEN_CLIENT;
27201}
27202extern "C" {
27203    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_free"]
27204    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27205}
27206extern "C" {
27207    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_add_key"]
27208    pub fn TRUST_TOKEN_CLIENT_add_key(
27209        ctx: *mut TRUST_TOKEN_CLIENT,
27210        out_key_index: *mut usize,
27211        key: *const u8,
27212        key_len: usize,
27213    ) -> ::std::os::raw::c_int;
27214}
27215extern "C" {
27216    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_set_srr_key"]
27217    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27218        ctx: *mut TRUST_TOKEN_CLIENT,
27219        key: *mut EVP_PKEY,
27220    ) -> ::std::os::raw::c_int;
27221}
27222extern "C" {
27223    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_begin_issuance"]
27224    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27225        ctx: *mut TRUST_TOKEN_CLIENT,
27226        out: *mut *mut u8,
27227        out_len: *mut usize,
27228        count: usize,
27229    ) -> ::std::os::raw::c_int;
27230}
27231extern "C" {
27232    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_begin_issuance_over_message"]
27233    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27234        ctx: *mut TRUST_TOKEN_CLIENT,
27235        out: *mut *mut u8,
27236        out_len: *mut usize,
27237        count: usize,
27238        msg: *const u8,
27239        msg_len: usize,
27240    ) -> ::std::os::raw::c_int;
27241}
27242extern "C" {
27243    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_finish_issuance"]
27244    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27245        ctx: *mut TRUST_TOKEN_CLIENT,
27246        out_key_index: *mut usize,
27247        response: *const u8,
27248        response_len: usize,
27249    ) -> *mut stack_st_TRUST_TOKEN;
27250}
27251extern "C" {
27252    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_begin_redemption"]
27253    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27254        ctx: *mut TRUST_TOKEN_CLIENT,
27255        out: *mut *mut u8,
27256        out_len: *mut usize,
27257        token: *const TRUST_TOKEN,
27258        data: *const u8,
27259        data_len: usize,
27260        time: u64,
27261    ) -> ::std::os::raw::c_int;
27262}
27263extern "C" {
27264    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_CLIENT_finish_redemption"]
27265    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27266        ctx: *mut TRUST_TOKEN_CLIENT,
27267        out_rr: *mut *mut u8,
27268        out_rr_len: *mut usize,
27269        out_sig: *mut *mut u8,
27270        out_sig_len: *mut usize,
27271        response: *const u8,
27272        response_len: usize,
27273    ) -> ::std::os::raw::c_int;
27274}
27275extern "C" {
27276    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_new"]
27277    pub fn TRUST_TOKEN_ISSUER_new(
27278        method: *const TRUST_TOKEN_METHOD,
27279        max_batchsize: usize,
27280    ) -> *mut TRUST_TOKEN_ISSUER;
27281}
27282extern "C" {
27283    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_free"]
27284    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27285}
27286extern "C" {
27287    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_add_key"]
27288    pub fn TRUST_TOKEN_ISSUER_add_key(
27289        ctx: *mut TRUST_TOKEN_ISSUER,
27290        key: *const u8,
27291        key_len: usize,
27292    ) -> ::std::os::raw::c_int;
27293}
27294extern "C" {
27295    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_set_srr_key"]
27296    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27297        ctx: *mut TRUST_TOKEN_ISSUER,
27298        key: *mut EVP_PKEY,
27299    ) -> ::std::os::raw::c_int;
27300}
27301extern "C" {
27302    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_set_metadata_key"]
27303    pub fn TRUST_TOKEN_ISSUER_set_metadata_key(
27304        ctx: *mut TRUST_TOKEN_ISSUER,
27305        key: *const u8,
27306        len: usize,
27307    ) -> ::std::os::raw::c_int;
27308}
27309extern "C" {
27310    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_issue"]
27311    pub fn TRUST_TOKEN_ISSUER_issue(
27312        ctx: *const TRUST_TOKEN_ISSUER,
27313        out: *mut *mut u8,
27314        out_len: *mut usize,
27315        out_tokens_issued: *mut usize,
27316        request: *const u8,
27317        request_len: usize,
27318        public_metadata: u32,
27319        private_metadata: u8,
27320        max_issuance: usize,
27321    ) -> ::std::os::raw::c_int;
27322}
27323extern "C" {
27324    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_redeem"]
27325    pub fn TRUST_TOKEN_ISSUER_redeem(
27326        ctx: *const TRUST_TOKEN_ISSUER,
27327        out_public: *mut u32,
27328        out_private: *mut u8,
27329        out_token: *mut *mut TRUST_TOKEN,
27330        out_client_data: *mut *mut u8,
27331        out_client_data_len: *mut usize,
27332        request: *const u8,
27333        request_len: usize,
27334    ) -> ::std::os::raw::c_int;
27335}
27336extern "C" {
27337    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_ISSUER_redeem_over_message"]
27338    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27339        ctx: *const TRUST_TOKEN_ISSUER,
27340        out_public: *mut u32,
27341        out_private: *mut u8,
27342        out_token: *mut *mut TRUST_TOKEN,
27343        out_client_data: *mut *mut u8,
27344        out_client_data_len: *mut usize,
27345        request: *const u8,
27346        request_len: usize,
27347        msg: *const u8,
27348        msg_len: usize,
27349    ) -> ::std::os::raw::c_int;
27350}
27351extern "C" {
27352    #[link_name = "\u{1}aws_lc_0_40_0_TRUST_TOKEN_decode_private_metadata"]
27353    pub fn TRUST_TOKEN_decode_private_metadata(
27354        method: *const TRUST_TOKEN_METHOD,
27355        out_value: *mut u8,
27356        key: *const u8,
27357        key_len: usize,
27358        nonce: *const u8,
27359        nonce_len: usize,
27360        encrypted_bit: u8,
27361    ) -> ::std::os::raw::c_int;
27362}
27363extern "C" {
27364    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_keygen_deterministic"]
27365    pub fn EVP_PKEY_keygen_deterministic(
27366        ctx: *mut EVP_PKEY_CTX,
27367        out_pkey: *mut *mut EVP_PKEY,
27368        seed: *const u8,
27369        seed_len: *mut usize,
27370    ) -> ::std::os::raw::c_int;
27371}
27372extern "C" {
27373    #[link_name = "\u{1}aws_lc_0_40_0_EVP_PKEY_encapsulate_deterministic"]
27374    pub fn EVP_PKEY_encapsulate_deterministic(
27375        ctx: *mut EVP_PKEY_CTX,
27376        ciphertext: *mut u8,
27377        ciphertext_len: *mut usize,
27378        shared_secret: *mut u8,
27379        shared_secret_len: *mut usize,
27380        seed: *const u8,
27381        seed_len: *mut usize,
27382    ) -> ::std::os::raw::c_int;
27383}
27384extern "C" {
27385    #[link_name = "\u{1}aws_lc_0_40_0_ERR_GET_LIB_RUST"]
27386    pub fn ERR_GET_LIB_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27387}
27388extern "C" {
27389    #[link_name = "\u{1}aws_lc_0_40_0_ERR_GET_REASON_RUST"]
27390    pub fn ERR_GET_REASON_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27391}
27392extern "C" {
27393    #[link_name = "\u{1}aws_lc_0_40_0_ERR_GET_FUNC_RUST"]
27394    pub fn ERR_GET_FUNC_RUST(packed_error: u32) -> ::std::os::raw::c_int;
27395}
27396pub type __builtin_va_list = [__va_list_tag; 1usize];
27397#[repr(C)]
27398#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27399pub struct __va_list_tag {
27400    pub gp_offset: ::std::os::raw::c_uint,
27401    pub fp_offset: ::std::os::raw::c_uint,
27402    pub overflow_arg_area: *mut ::std::os::raw::c_void,
27403    pub reg_save_area: *mut ::std::os::raw::c_void,
27404}
27405#[test]
27406fn bindgen_test_layout___va_list_tag() {
27407    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
27408    let ptr = UNINIT.as_ptr();
27409    assert_eq!(
27410        ::std::mem::size_of::<__va_list_tag>(),
27411        24usize,
27412        "Size of __va_list_tag"
27413    );
27414    assert_eq!(
27415        ::std::mem::align_of::<__va_list_tag>(),
27416        8usize,
27417        "Alignment of __va_list_tag"
27418    );
27419    assert_eq!(
27420        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
27421        0usize,
27422        "Offset of field: __va_list_tag::gp_offset"
27423    );
27424    assert_eq!(
27425        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
27426        4usize,
27427        "Offset of field: __va_list_tag::fp_offset"
27428    );
27429    assert_eq!(
27430        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
27431        8usize,
27432        "Offset of field: __va_list_tag::overflow_arg_area"
27433    );
27434    assert_eq!(
27435        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
27436        16usize,
27437        "Offset of field: __va_list_tag::reg_save_area"
27438    );
27439}
27440impl Default for __va_list_tag {
27441    fn default() -> Self {
27442        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
27443        unsafe {
27444            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
27445            s.assume_init()
27446        }
27447    }
27448}
27449#[repr(C)]
27450#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
27451pub struct CRYPTO_dynlock_value {
27452    pub _address: u8,
27453}