Skip to main content

bssl_sys/
bindgen.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2
3// Copyright 2026 The Fuchsia Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style license that can be
5// found in the LICENSE file.
6
7// LINT.IfChange
8
9// This file is automatically generated by //third_party/boringssl/rust/bssl-sys/generate.py.
10
11#[repr(C)]
12#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
13pub struct __BindgenBitfieldUnit<Storage> {
14    storage: Storage,
15}
16impl<Storage> __BindgenBitfieldUnit<Storage> {
17    #[inline]
18    pub const fn new(storage: Storage) -> Self {
19        Self { storage }
20    }
21}
22impl<Storage> __BindgenBitfieldUnit<Storage>
23where
24    Storage: AsRef<[u8]> + AsMut<[u8]>,
25{
26    #[inline]
27    fn extract_bit(byte: u8, index: usize) -> bool {
28        let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
29        let mask = 1 << bit_index;
30        byte & mask == mask
31    }
32    #[inline]
33    pub fn get_bit(&self, index: usize) -> bool {
34        debug_assert!(index / 8 < self.storage.as_ref().len());
35        let byte_index = index / 8;
36        let byte = self.storage.as_ref()[byte_index];
37        Self::extract_bit(byte, index)
38    }
39    #[inline]
40    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
41        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
42        let byte_index = index / 8;
43        let byte = unsafe {
44            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
45        };
46        Self::extract_bit(byte, index)
47    }
48    #[inline]
49    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
50        let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
51        let mask = 1 << bit_index;
52        if val {
53            byte | mask
54        } else {
55            byte & !mask
56        }
57    }
58    #[inline]
59    pub fn set_bit(&mut self, index: usize, val: bool) {
60        debug_assert!(index / 8 < self.storage.as_ref().len());
61        let byte_index = index / 8;
62        let byte = &mut self.storage.as_mut()[byte_index];
63        *byte = Self::change_bit(*byte, index, val);
64    }
65    #[inline]
66    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
67        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
68        let byte_index = index / 8;
69        let byte = unsafe {
70            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
71        };
72        unsafe { *byte = Self::change_bit(*byte, index, val) };
73    }
74    #[inline]
75    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
76        debug_assert!(bit_width <= 64);
77        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
78        debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
79        if bit_width == 0 {
80            return 0;
81        }
82        let mut val = 0u64;
83        let storage = self.storage.as_ref();
84        let start_byte = bit_offset / 8;
85        let bit_shift = bit_offset % 8;
86        let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
87        if cfg!(target_endian = "big") {
88            for i in 0..bytes_needed {
89                val |= (storage[start_byte + i].reverse_bits() as u64) << (i * 8);
90            }
91        } else {
92            for i in 0..bytes_needed {
93                val |= (storage[start_byte + i] as u64) << (i * 8);
94            }
95        }
96        val >>= bit_shift;
97        if bit_width < 64 {
98            val &= (1u64 << bit_width) - 1;
99        }
100        if cfg!(target_endian = "big") {
101            val = val.reverse_bits() >> (64 - bit_width as usize);
102        }
103        val
104    }
105    #[inline]
106    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
107        debug_assert!(bit_width <= 64);
108        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
109        debug_assert!(
110            (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
111        );
112        if bit_width == 0 {
113            return 0;
114        }
115        let mut val = 0u64;
116        let start_byte = bit_offset / 8;
117        let bit_shift = bit_offset % 8;
118        let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
119        let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
120        if cfg!(target_endian = "big") {
121            for i in 0..bytes_needed {
122                let byte = unsafe { *storage_ptr.add(start_byte + i) };
123                val |= (byte.reverse_bits() as u64) << (i * 8);
124            }
125        } else {
126            for i in 0..bytes_needed {
127                let byte = unsafe { *storage_ptr.add(start_byte + i) };
128                val |= (byte as u64) << (i * 8);
129            }
130        }
131        val >>= bit_shift;
132        if bit_width < 64 {
133            val &= (1u64 << bit_width) - 1;
134        }
135        if cfg!(target_endian = "big") {
136            val = val.reverse_bits() >> (64 - bit_width as usize);
137        }
138        val
139    }
140    #[inline]
141    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
142        debug_assert!(bit_width <= 64);
143        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
144        debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
145        if bit_width == 0 {
146            return;
147        }
148        let mut val = val;
149        if bit_width < 64 {
150            val &= (1u64 << bit_width) - 1;
151        }
152        if cfg!(target_endian = "big") {
153            val = val.reverse_bits() >> (64 - bit_width as usize);
154        }
155        let storage = self.storage.as_mut();
156        let start_byte = bit_offset / 8;
157        let bit_shift = bit_offset % 8;
158        let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
159        val <<= bit_shift;
160        let field_mask = if bit_width as usize + bit_shift >= 64 {
161            !0u64 << bit_shift
162        } else {
163            ((1u64 << bit_width) - 1) << bit_shift
164        };
165        for i in 0..bytes_needed {
166            let byte_val = (val >> (i * 8)) as u8;
167            let byte_mask = (field_mask >> (i * 8)) as u8;
168            if cfg!(target_endian = "big") {
169                let byte = storage[start_byte + i].reverse_bits();
170                let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
171                storage[start_byte + i] = new_byte.reverse_bits();
172            } else {
173                storage[start_byte + i] =
174                    (storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
175            }
176        }
177    }
178    #[inline]
179    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
180        debug_assert!(bit_width <= 64);
181        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
182        debug_assert!(
183            (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
184        );
185        if bit_width == 0 {
186            return;
187        }
188        let mut val = val;
189        if bit_width < 64 {
190            val &= (1u64 << bit_width) - 1;
191        }
192        if cfg!(target_endian = "big") {
193            val = val.reverse_bits() >> (64 - bit_width as usize);
194        }
195        let start_byte = bit_offset / 8;
196        let bit_shift = bit_offset % 8;
197        let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
198        val <<= bit_shift;
199        let field_mask = if bit_width as usize + bit_shift >= 64 {
200            !0u64 << bit_shift
201        } else {
202            ((1u64 << bit_width) - 1) << bit_shift
203        };
204        let storage_ptr = unsafe { core::ptr::addr_of_mut!((*this).storage) as *mut u8 };
205        for i in 0..bytes_needed {
206            let byte_val = (val >> (i * 8)) as u8;
207            let byte_mask = (field_mask >> (i * 8)) as u8;
208            let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
209            if cfg!(target_endian = "big") {
210                let byte = unsafe { (*byte_ptr).reverse_bits() };
211                let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
212                unsafe { *byte_ptr = new_byte.reverse_bits() };
213            } else {
214                unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
215            }
216        }
217    }
218}
219#[doc = " Const-generic methods for efficient bitfield access when offset and width"]
220#[doc = " are known at compile time."]
221impl<const N: usize> __BindgenBitfieldUnit<[u8; N]> {
222    #[doc = " Get a field using const generics for compile-time optimization."]
223    #[doc = " Uses native word size operations when the field fits in usize."]
224    #[inline]
225    pub const fn get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&self) -> u64 {
226        debug_assert!(BIT_WIDTH <= 64);
227        debug_assert!(BIT_OFFSET / 8 < N);
228        debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
229        if BIT_WIDTH == 0 {
230            return 0;
231        }
232        let start_byte = BIT_OFFSET / 8;
233        let bit_shift = BIT_OFFSET % 8;
234        let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
235        if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
236            let mut val = 0usize;
237            if cfg!(target_endian = "big") {
238                let mut i = 0;
239                while i < bytes_needed {
240                    val |= (self.storage[start_byte + i].reverse_bits() as usize) << (i * 8);
241                    i += 1;
242                }
243            } else {
244                let mut i = 0;
245                while i < bytes_needed {
246                    val |= (self.storage[start_byte + i] as usize) << (i * 8);
247                    i += 1;
248                }
249            }
250            val >>= bit_shift;
251            if (BIT_WIDTH as u32) < usize::BITS {
252                val &= (1usize << BIT_WIDTH) - 1;
253            }
254            if cfg!(target_endian = "big") {
255                val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
256            }
257            val as u64
258        } else {
259            let mut val = 0u64;
260            if cfg!(target_endian = "big") {
261                let mut i = 0;
262                while i < bytes_needed {
263                    val |= (self.storage[start_byte + i].reverse_bits() as u64) << (i * 8);
264                    i += 1;
265                }
266            } else {
267                let mut i = 0;
268                while i < bytes_needed {
269                    val |= (self.storage[start_byte + i] as u64) << (i * 8);
270                    i += 1;
271                }
272            }
273            val >>= bit_shift;
274            if BIT_WIDTH < 64 {
275                val &= (1u64 << BIT_WIDTH) - 1;
276            }
277            if cfg!(target_endian = "big") {
278                val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
279            }
280            val
281        }
282    }
283    #[doc = " Set a field using const generics for compile-time optimization."]
284    #[doc = " Uses native word size operations when the field fits in usize."]
285    #[inline]
286    pub fn set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&mut self, val: u64) {
287        debug_assert!(BIT_WIDTH <= 64);
288        debug_assert!(BIT_OFFSET / 8 < N);
289        debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
290        if BIT_WIDTH == 0 {
291            return;
292        }
293        let start_byte = BIT_OFFSET / 8;
294        let bit_shift = BIT_OFFSET % 8;
295        let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
296        if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
297            let mut val = val as usize;
298            if (BIT_WIDTH as u32) < usize::BITS {
299                val &= (1usize << BIT_WIDTH) - 1;
300            }
301            if cfg!(target_endian = "big") {
302                val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
303            }
304            val <<= bit_shift;
305            let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
306                !0usize << bit_shift
307            } else {
308                ((1usize << BIT_WIDTH) - 1) << bit_shift
309            };
310            let mut i = 0;
311            while i < bytes_needed {
312                let byte_val = (val >> (i * 8)) as u8;
313                let byte_mask = (field_mask >> (i * 8)) as u8;
314                if cfg!(target_endian = "big") {
315                    let byte = self.storage[start_byte + i].reverse_bits();
316                    let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
317                    self.storage[start_byte + i] = new_byte.reverse_bits();
318                } else {
319                    self.storage[start_byte + i] =
320                        (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
321                }
322                i += 1;
323            }
324        } else {
325            let mut val = val;
326            if BIT_WIDTH < 64 {
327                val &= (1u64 << BIT_WIDTH) - 1;
328            }
329            if cfg!(target_endian = "big") {
330                val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
331            }
332            val <<= bit_shift;
333            let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
334                !0u64 << bit_shift
335            } else {
336                ((1u64 << BIT_WIDTH) - 1) << bit_shift
337            };
338            let mut i = 0;
339            while i < bytes_needed {
340                let byte_val = (val >> (i * 8)) as u8;
341                let byte_mask = (field_mask >> (i * 8)) as u8;
342                if cfg!(target_endian = "big") {
343                    let byte = self.storage[start_byte + i].reverse_bits();
344                    let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
345                    self.storage[start_byte + i] = new_byte.reverse_bits();
346                } else {
347                    self.storage[start_byte + i] =
348                        (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
349                }
350                i += 1;
351            }
352        }
353    }
354    #[doc = " Raw pointer get using const generics for compile-time optimization."]
355    #[doc = " Uses native word size operations when the field fits in usize."]
356    #[inline]
357    pub const unsafe fn raw_get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
358        this: *const Self,
359    ) -> u64 {
360        debug_assert!(BIT_WIDTH <= 64);
361        debug_assert!(BIT_OFFSET / 8 < N);
362        debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
363        if BIT_WIDTH == 0 {
364            return 0;
365        }
366        let start_byte = BIT_OFFSET / 8;
367        let bit_shift = BIT_OFFSET % 8;
368        let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
369        let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
370        if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
371            let mut val = 0usize;
372            if cfg!(target_endian = "big") {
373                let mut i = 0;
374                while i < bytes_needed {
375                    let byte = unsafe { *storage_ptr.add(start_byte + i) };
376                    val |= (byte.reverse_bits() as usize) << (i * 8);
377                    i += 1;
378                }
379            } else {
380                let mut i = 0;
381                while i < bytes_needed {
382                    let byte = unsafe { *storage_ptr.add(start_byte + i) };
383                    val |= (byte as usize) << (i * 8);
384                    i += 1;
385                }
386            }
387            val >>= bit_shift;
388            if (BIT_WIDTH as u32) < usize::BITS {
389                val &= (1usize << BIT_WIDTH) - 1;
390            }
391            if cfg!(target_endian = "big") {
392                val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
393            }
394            val as u64
395        } else {
396            let mut val = 0u64;
397            if cfg!(target_endian = "big") {
398                let mut i = 0;
399                while i < bytes_needed {
400                    let byte = unsafe { *storage_ptr.add(start_byte + i) };
401                    val |= (byte.reverse_bits() as u64) << (i * 8);
402                    i += 1;
403                }
404            } else {
405                let mut i = 0;
406                while i < bytes_needed {
407                    let byte = unsafe { *storage_ptr.add(start_byte + i) };
408                    val |= (byte as u64) << (i * 8);
409                    i += 1;
410                }
411            }
412            val >>= bit_shift;
413            if BIT_WIDTH < 64 {
414                val &= (1u64 << BIT_WIDTH) - 1;
415            }
416            if cfg!(target_endian = "big") {
417                val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
418            }
419            val
420        }
421    }
422    #[doc = " Raw pointer set using const generics for compile-time optimization."]
423    #[doc = " Uses native word size operations when the field fits in usize."]
424    #[inline]
425    pub unsafe fn raw_set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
426        this: *mut Self,
427        val: u64,
428    ) {
429        debug_assert!(BIT_WIDTH <= 64);
430        debug_assert!(BIT_OFFSET / 8 < N);
431        debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
432        if BIT_WIDTH == 0 {
433            return;
434        }
435        let start_byte = BIT_OFFSET / 8;
436        let bit_shift = BIT_OFFSET % 8;
437        let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
438        let storage_ptr = this.cast::<[u8; N]>().cast::<u8>();
439        if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
440            let mut val = val as usize;
441            if (BIT_WIDTH as u32) < usize::BITS {
442                val &= (1usize << BIT_WIDTH) - 1;
443            }
444            if cfg!(target_endian = "big") {
445                val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
446            }
447            val <<= bit_shift;
448            let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
449                !0usize << bit_shift
450            } else {
451                ((1usize << BIT_WIDTH) - 1) << bit_shift
452            };
453            let mut i = 0;
454            while i < bytes_needed {
455                let byte_val = (val >> (i * 8)) as u8;
456                let byte_mask = (field_mask >> (i * 8)) as u8;
457                let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
458                if cfg!(target_endian = "big") {
459                    let byte = unsafe { (*byte_ptr).reverse_bits() };
460                    let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
461                    unsafe { *byte_ptr = new_byte.reverse_bits() };
462                } else {
463                    unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
464                }
465                i += 1;
466            }
467        } else {
468            let mut val = val;
469            if BIT_WIDTH < 64 {
470                val &= (1u64 << BIT_WIDTH) - 1;
471            }
472            if cfg!(target_endian = "big") {
473                val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
474            }
475            val <<= bit_shift;
476            let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
477                !0u64 << bit_shift
478            } else {
479                ((1u64 << BIT_WIDTH) - 1) << bit_shift
480            };
481            let mut i = 0;
482            while i < bytes_needed {
483                let byte_val = (val >> (i * 8)) as u8;
484                let byte_mask = (field_mask >> (i * 8)) as u8;
485                let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
486                if cfg!(target_endian = "big") {
487                    let byte = unsafe { (*byte_ptr).reverse_bits() };
488                    let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
489                    unsafe { *byte_ptr = new_byte.reverse_bits() };
490                } else {
491                    unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
492                }
493                i += 1;
494            }
495        }
496    }
497}
498pub const OPENSSL_VERSION_NUMBER: i32 = 269488255;
499pub const SSLEAY_VERSION_NUMBER: i32 = 269488255;
500pub const BORINGSSL_API_VERSION: i32 = 43;
501pub const AES_ENCRYPT: i32 = 1;
502pub const AES_DECRYPT: i32 = 0;
503pub const AES_MAXNR: i32 = 14;
504pub const AES_BLOCK_SIZE: i32 = 16;
505pub const ERR_FLAG_STRING: i32 = 1;
506pub const ERR_FLAG_MALLOCED: i32 = 2;
507pub const ERR_R_FATAL: i32 = 64;
508pub const ERR_R_MALLOC_FAILURE: i32 = 65;
509pub const ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED: i32 = 66;
510pub const ERR_R_PASSED_NULL_PARAMETER: i32 = 67;
511pub const ERR_R_INTERNAL_ERROR: i32 = 68;
512pub const ERR_R_OVERFLOW: i32 = 69;
513pub const ERR_ERROR_STRING_BUF_LEN: i32 = 120;
514pub const ERR_TXT_STRING: i32 = 1;
515pub const ERR_TXT_MALLOCED: i32 = 2;
516pub const ERR_NUM_ERRORS: i32 = 16;
517pub const BIO_RR_CONNECT: i32 = 2;
518pub const BIO_RR_ACCEPT: i32 = 3;
519pub const BIO_NOCLOSE: i32 = 0;
520pub const BIO_CLOSE: i32 = 1;
521pub const BIO_FP_TEXT: i32 = 16;
522pub const BIO_CTRL_DGRAM_QUERY_MTU: i32 = 40;
523pub const BIO_CTRL_DGRAM_SET_MTU: i32 = 42;
524pub const BIO_CTRL_DGRAM_MTU_EXCEEDED: i32 = 43;
525pub const BIO_CTRL_DGRAM_GET_PEER: i32 = 46;
526pub const BIO_CTRL_DGRAM_GET_FALLBACK_MTU: i32 = 47;
527pub const BIO_CTRL_RESET: i32 = 1;
528pub const BIO_CTRL_EOF: i32 = 2;
529pub const BIO_CTRL_INFO: i32 = 3;
530pub const BIO_CTRL_GET_CLOSE: i32 = 8;
531pub const BIO_CTRL_SET_CLOSE: i32 = 9;
532pub const BIO_CTRL_PENDING: i32 = 10;
533pub const BIO_CTRL_FLUSH: i32 = 11;
534pub const BIO_CTRL_WPENDING: i32 = 13;
535pub const BIO_CTRL_SET_CALLBACK: i32 = 14;
536pub const BIO_CTRL_GET_CALLBACK: i32 = 15;
537pub const BIO_CTRL_SET: i32 = 4;
538pub const BIO_CTRL_GET: i32 = 5;
539pub const BIO_CTRL_PUSH: i32 = 6;
540pub const BIO_CTRL_POP: i32 = 7;
541pub const BIO_CTRL_DUP: i32 = 12;
542pub const BIO_CTRL_SET_FILENAME: i32 = 30;
543pub const BIO_FLAGS_READ: i32 = 1;
544pub const BIO_FLAGS_WRITE: i32 = 2;
545pub const BIO_FLAGS_IO_SPECIAL: i32 = 4;
546pub const BIO_FLAGS_RWS: i32 = 7;
547pub const BIO_FLAGS_SHOULD_RETRY: i32 = 8;
548pub const BIO_FLAGS_BASE64_NO_NL: i32 = 256;
549pub const BIO_FLAGS_MEM_RDONLY: i32 = 512;
550pub const BIO_TYPE_DESCRIPTOR: i32 = 256;
551pub const BIO_TYPE_FILTER: i32 = 512;
552pub const BIO_TYPE_SOURCE_SINK: i32 = 1024;
553pub const BIO_TYPE_NONE: i32 = 0;
554pub const BIO_TYPE_MEM: i32 = 1025;
555pub const BIO_TYPE_FILE: i32 = 1026;
556pub const BIO_TYPE_FD: i32 = 1284;
557pub const BIO_TYPE_SOCKET: i32 = 1285;
558pub const BIO_TYPE_NULL: i32 = 1030;
559pub const BIO_TYPE_SSL: i32 = 519;
560pub const BIO_TYPE_MD: i32 = 520;
561pub const BIO_TYPE_BUFFER: i32 = 521;
562pub const BIO_TYPE_CIPHER: i32 = 522;
563pub const BIO_TYPE_BASE64: i32 = 523;
564pub const BIO_TYPE_CONNECT: i32 = 1292;
565pub const BIO_TYPE_ACCEPT: i32 = 1293;
566pub const BIO_TYPE_PROXY_CLIENT: i32 = 526;
567pub const BIO_TYPE_PROXY_SERVER: i32 = 527;
568pub const BIO_TYPE_NBIO_TEST: i32 = 528;
569pub const BIO_TYPE_NULL_FILTER: i32 = 529;
570pub const BIO_TYPE_BER: i32 = 530;
571pub const BIO_TYPE_BIO: i32 = 1043;
572pub const BIO_TYPE_LINEBUFFER: i32 = 532;
573pub const BIO_TYPE_DGRAM: i32 = 1301;
574pub const BIO_TYPE_ASN1: i32 = 534;
575pub const BIO_TYPE_COMP: i32 = 535;
576pub const BIO_TYPE_START: i32 = 128;
577pub const BIO_C_SET_CONNECT: i32 = 100;
578pub const BIO_C_DO_STATE_MACHINE: i32 = 101;
579pub const BIO_C_SET_NBIO: i32 = 102;
580pub const BIO_C_SET_PROXY_PARAM: i32 = 103;
581pub const BIO_C_SET_FD: i32 = 104;
582pub const BIO_C_GET_FD: i32 = 105;
583pub const BIO_C_SET_FILE_PTR: i32 = 106;
584pub const BIO_C_GET_FILE_PTR: i32 = 107;
585pub const BIO_C_SET_FILENAME: i32 = 108;
586pub const BIO_C_SET_SSL: i32 = 109;
587pub const BIO_C_SET_MD: i32 = 111;
588pub const BIO_C_GET_MD: i32 = 112;
589pub const BIO_C_GET_CIPHER_STATUS: i32 = 113;
590pub const BIO_C_SET_BUF_MEM: i32 = 114;
591pub const BIO_C_GET_BUF_MEM_PTR: i32 = 115;
592pub const BIO_C_GET_BUFF_NUM_LINES: i32 = 116;
593pub const BIO_C_SET_BUFF_SIZE: i32 = 117;
594pub const BIO_C_SET_ACCEPT: i32 = 118;
595pub const BIO_C_SSL_MODE: i32 = 119;
596pub const BIO_C_GET_MD_CTX: i32 = 120;
597pub const BIO_C_GET_PROXY_PARAM: i32 = 121;
598pub const BIO_C_SET_BUFF_READ_DATA: i32 = 122;
599pub const BIO_C_GET_ACCEPT: i32 = 124;
600pub const BIO_C_FILE_SEEK: i32 = 128;
601pub const BIO_C_GET_CIPHER_CTX: i32 = 129;
602pub const BIO_C_SET_BUF_MEM_EOF_RETURN: i32 = 130;
603pub const BIO_C_SET_BIND_MODE: i32 = 131;
604pub const BIO_C_GET_BIND_MODE: i32 = 132;
605pub const BIO_C_FILE_TELL: i32 = 133;
606pub const BIO_C_GET_SOCKS: i32 = 134;
607pub const BIO_C_SET_SOCKS: i32 = 135;
608pub const BIO_C_SET_WRITE_BUF_SIZE: i32 = 136;
609pub const BIO_C_GET_WRITE_BUF_SIZE: i32 = 137;
610pub const BIO_C_GET_WRITE_GUARANTEE: i32 = 140;
611pub const BIO_C_GET_READ_REQUEST: i32 = 141;
612pub const BIO_C_SHUTDOWN_WR: i32 = 142;
613pub const BIO_C_NREAD0: i32 = 143;
614pub const BIO_C_NREAD: i32 = 144;
615pub const BIO_C_NWRITE0: i32 = 145;
616pub const BIO_C_NWRITE: i32 = 146;
617pub const BIO_C_RESET_READ_REQUEST: i32 = 147;
618pub const BIO_C_SET_MD_CTX: i32 = 148;
619pub const BIO_C_SET_PREFIX: i32 = 149;
620pub const BIO_C_GET_PREFIX: i32 = 150;
621pub const BIO_C_SET_SUFFIX: i32 = 151;
622pub const BIO_C_GET_SUFFIX: i32 = 152;
623pub const BIO_C_SET_EX_ARG: i32 = 153;
624pub const BIO_C_GET_EX_ARG: i32 = 154;
625pub const BIO_R_BAD_FOPEN_MODE: i32 = 100;
626pub const BIO_R_BROKEN_PIPE: i32 = 101;
627pub const BIO_R_CONNECT_ERROR: i32 = 102;
628pub const BIO_R_ERROR_SETTING_NBIO: i32 = 103;
629pub const BIO_R_INVALID_ARGUMENT: i32 = 104;
630pub const BIO_R_IN_USE: i32 = 105;
631pub const BIO_R_KEEPALIVE: i32 = 106;
632pub const BIO_R_NBIO_CONNECT_ERROR: i32 = 107;
633pub const BIO_R_NO_HOSTNAME_SPECIFIED: i32 = 108;
634pub const BIO_R_NO_PORT_SPECIFIED: i32 = 109;
635pub const BIO_R_NO_SUCH_FILE: i32 = 110;
636pub const BIO_R_NULL_PARAMETER: i32 = 111;
637pub const BIO_R_SYS_LIB: i32 = 112;
638pub const BIO_R_UNABLE_TO_CREATE_SOCKET: i32 = 113;
639pub const BIO_R_UNINITIALIZED: i32 = 114;
640pub const BIO_R_UNSUPPORTED_METHOD: i32 = 115;
641pub const BIO_R_WRITE_TO_READ_ONLY_BIO: i32 = 116;
642pub const BN_BITS2: i32 = 64;
643pub const BN_DEC_FMT1: &[u8; 4] = b"%lu\0";
644pub const BN_HEX_FMT1: &[u8; 4] = b"%lx\0";
645pub const BN_HEX_FMT2: &[u8; 7] = b"%016lx\0";
646pub const BN_RAND_TOP_ANY: i32 = -1;
647pub const BN_RAND_TOP_ONE: i32 = 0;
648pub const BN_RAND_TOP_TWO: i32 = 1;
649pub const BN_RAND_BOTTOM_ANY: i32 = 0;
650pub const BN_RAND_BOTTOM_ODD: i32 = 1;
651pub const BN_GENCB_GENERATED: i32 = 0;
652pub const BN_GENCB_PRIME_TEST: i32 = 1;
653pub const BN_prime_checks_for_validation: i32 = 64;
654pub const BN_prime_checks_for_generation: i32 = 0;
655pub const BN_prime_checks: i32 = 64;
656pub const BN_FLG_MALLOCED: i32 = 1;
657pub const BN_FLG_STATIC_DATA: i32 = 2;
658pub const BN_R_ARG2_LT_ARG3: i32 = 100;
659pub const BN_R_BAD_RECIPROCAL: i32 = 101;
660pub const BN_R_BIGNUM_TOO_LONG: i32 = 102;
661pub const BN_R_BITS_TOO_SMALL: i32 = 103;
662pub const BN_R_CALLED_WITH_EVEN_MODULUS: i32 = 104;
663pub const BN_R_DIV_BY_ZERO: i32 = 105;
664pub const BN_R_EXPAND_ON_STATIC_BIGNUM_DATA: i32 = 106;
665pub const BN_R_INPUT_NOT_REDUCED: i32 = 107;
666pub const BN_R_INVALID_RANGE: i32 = 108;
667pub const BN_R_NEGATIVE_NUMBER: i32 = 109;
668pub const BN_R_NOT_A_SQUARE: i32 = 110;
669pub const BN_R_NOT_INITIALIZED: i32 = 111;
670pub const BN_R_NO_INVERSE: i32 = 112;
671pub const BN_R_PRIVATE_KEY_TOO_LARGE: i32 = 113;
672pub const BN_R_P_IS_NOT_PRIME: i32 = 114;
673pub const BN_R_TOO_MANY_ITERATIONS: i32 = 115;
674pub const BN_R_TOO_MANY_TEMPORARY_VARIABLES: i32 = 116;
675pub const BN_R_BAD_ENCODING: i32 = 117;
676pub const BN_R_ENCODE_ERROR: i32 = 118;
677pub const BN_R_INVALID_INPUT: i32 = 119;
678pub const V_ASN1_UNIVERSAL: i32 = 0;
679pub const V_ASN1_APPLICATION: i32 = 64;
680pub const V_ASN1_CONTEXT_SPECIFIC: i32 = 128;
681pub const V_ASN1_PRIVATE: i32 = 192;
682pub const V_ASN1_CONSTRUCTED: i32 = 32;
683pub const V_ASN1_PRIMITIVE_TAG: i32 = 31;
684pub const V_ASN1_MAX_UNIVERSAL: i32 = 255;
685pub const V_ASN1_UNDEF: i32 = -1;
686pub const V_ASN1_OTHER: i32 = -3;
687pub const V_ASN1_ANY: i32 = -4;
688pub const V_ASN1_EOC: i32 = 0;
689pub const V_ASN1_BOOLEAN: i32 = 1;
690pub const V_ASN1_INTEGER: i32 = 2;
691pub const V_ASN1_BIT_STRING: i32 = 3;
692pub const V_ASN1_OCTET_STRING: i32 = 4;
693pub const V_ASN1_NULL: i32 = 5;
694pub const V_ASN1_OBJECT: i32 = 6;
695pub const V_ASN1_OBJECT_DESCRIPTOR: i32 = 7;
696pub const V_ASN1_EXTERNAL: i32 = 8;
697pub const V_ASN1_REAL: i32 = 9;
698pub const V_ASN1_ENUMERATED: i32 = 10;
699pub const V_ASN1_UTF8STRING: i32 = 12;
700pub const V_ASN1_SEQUENCE: i32 = 16;
701pub const V_ASN1_SET: i32 = 17;
702pub const V_ASN1_NUMERICSTRING: i32 = 18;
703pub const V_ASN1_PRINTABLESTRING: i32 = 19;
704pub const V_ASN1_T61STRING: i32 = 20;
705pub const V_ASN1_TELETEXSTRING: i32 = 20;
706pub const V_ASN1_VIDEOTEXSTRING: i32 = 21;
707pub const V_ASN1_IA5STRING: i32 = 22;
708pub const V_ASN1_UTCTIME: i32 = 23;
709pub const V_ASN1_GENERALIZEDTIME: i32 = 24;
710pub const V_ASN1_GRAPHICSTRING: i32 = 25;
711pub const V_ASN1_ISO64STRING: i32 = 26;
712pub const V_ASN1_VISIBLESTRING: i32 = 26;
713pub const V_ASN1_GENERALSTRING: i32 = 27;
714pub const V_ASN1_UNIVERSALSTRING: i32 = 28;
715pub const V_ASN1_BMPSTRING: i32 = 30;
716pub const V_ASN1_NEG: i32 = 256;
717pub const V_ASN1_NEG_INTEGER: i32 = 258;
718pub const V_ASN1_NEG_ENUMERATED: i32 = 266;
719pub const B_ASN1_NUMERICSTRING: i32 = 1;
720pub const B_ASN1_PRINTABLESTRING: i32 = 2;
721pub const B_ASN1_T61STRING: i32 = 4;
722pub const B_ASN1_TELETEXSTRING: i32 = 4;
723pub const B_ASN1_VIDEOTEXSTRING: i32 = 8;
724pub const B_ASN1_IA5STRING: i32 = 16;
725pub const B_ASN1_GRAPHICSTRING: i32 = 32;
726pub const B_ASN1_ISO64STRING: i32 = 64;
727pub const B_ASN1_VISIBLESTRING: i32 = 64;
728pub const B_ASN1_GENERALSTRING: i32 = 128;
729pub const B_ASN1_UNIVERSALSTRING: i32 = 256;
730pub const B_ASN1_OCTET_STRING: i32 = 512;
731pub const B_ASN1_BIT_STRING: i32 = 1024;
732pub const B_ASN1_BMPSTRING: i32 = 2048;
733pub const B_ASN1_UTF8STRING: i32 = 8192;
734pub const B_ASN1_UTCTIME: i32 = 16384;
735pub const B_ASN1_GENERALIZEDTIME: i32 = 32768;
736pub const B_ASN1_SEQUENCE: i32 = 65536;
737pub const ASN1_BOOLEAN_FALSE: i32 = 0;
738pub const ASN1_BOOLEAN_TRUE: i32 = 255;
739pub const ASN1_BOOLEAN_NONE: i32 = -1;
740pub const MBSTRING_FLAG: i32 = 4096;
741pub const MBSTRING_UTF8: i32 = 4096;
742pub const MBSTRING_ASC: i32 = 4097;
743pub const MBSTRING_BMP: i32 = 4098;
744pub const MBSTRING_UNIV: i32 = 4100;
745pub const DIRSTRING_TYPE: i32 = 10246;
746pub const PKCS9STRING_TYPE: i32 = 10262;
747pub const STABLE_NO_MASK: i32 = 2;
748pub const B_ASN1_DIRECTORYSTRING: i32 = 10502;
749pub const B_ASN1_DISPLAYTEXT: i32 = 10320;
750pub const B_ASN1_TIME: i32 = 49152;
751pub const ASN1_STRFLGS_ESC_2253: i32 = 1;
752pub const ASN1_STRFLGS_ESC_CTRL: i32 = 2;
753pub const ASN1_STRFLGS_ESC_MSB: i32 = 4;
754pub const ASN1_STRFLGS_ESC_QUOTE: i32 = 8;
755pub const ASN1_STRFLGS_UTF8_CONVERT: i32 = 16;
756pub const ASN1_STRFLGS_IGNORE_TYPE: i32 = 32;
757pub const ASN1_STRFLGS_SHOW_TYPE: i32 = 64;
758pub const ASN1_STRFLGS_DUMP_ALL: i32 = 128;
759pub const ASN1_STRFLGS_DUMP_UNKNOWN: i32 = 256;
760pub const ASN1_STRFLGS_DUMP_DER: i32 = 512;
761pub const ASN1_STRFLGS_RFC2253: i32 = 791;
762pub const ASN1_STRING_FLAG_BITS_LEFT: i32 = 8;
763pub const ASN1_R_ASN1_LENGTH_MISMATCH: i32 = 100;
764pub const ASN1_R_AUX_ERROR: i32 = 101;
765pub const ASN1_R_BAD_GET_ASN1_OBJECT_CALL: i32 = 102;
766pub const ASN1_R_BAD_OBJECT_HEADER: i32 = 103;
767pub const ASN1_R_BMPSTRING_IS_WRONG_LENGTH: i32 = 104;
768pub const ASN1_R_BN_LIB: i32 = 105;
769pub const ASN1_R_BOOLEAN_IS_WRONG_LENGTH: i32 = 106;
770pub const ASN1_R_BUFFER_TOO_SMALL: i32 = 107;
771pub const ASN1_R_CONTEXT_NOT_INITIALISED: i32 = 108;
772pub const ASN1_R_DECODE_ERROR: i32 = 109;
773pub const ASN1_R_DEPTH_EXCEEDED: i32 = 110;
774pub const ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED: i32 = 111;
775pub const ASN1_R_ENCODE_ERROR: i32 = 112;
776pub const ASN1_R_ERROR_GETTING_TIME: i32 = 113;
777pub const ASN1_R_EXPECTING_AN_ASN1_SEQUENCE: i32 = 114;
778pub const ASN1_R_EXPECTING_AN_INTEGER: i32 = 115;
779pub const ASN1_R_EXPECTING_AN_OBJECT: i32 = 116;
780pub const ASN1_R_EXPECTING_A_BOOLEAN: i32 = 117;
781pub const ASN1_R_EXPECTING_A_TIME: i32 = 118;
782pub const ASN1_R_EXPLICIT_LENGTH_MISMATCH: i32 = 119;
783pub const ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED: i32 = 120;
784pub const ASN1_R_FIELD_MISSING: i32 = 121;
785pub const ASN1_R_FIRST_NUM_TOO_LARGE: i32 = 122;
786pub const ASN1_R_HEADER_TOO_LONG: i32 = 123;
787pub const ASN1_R_ILLEGAL_BITSTRING_FORMAT: i32 = 124;
788pub const ASN1_R_ILLEGAL_BOOLEAN: i32 = 125;
789pub const ASN1_R_ILLEGAL_CHARACTERS: i32 = 126;
790pub const ASN1_R_ILLEGAL_FORMAT: i32 = 127;
791pub const ASN1_R_ILLEGAL_HEX: i32 = 128;
792pub const ASN1_R_ILLEGAL_IMPLICIT_TAG: i32 = 129;
793pub const ASN1_R_ILLEGAL_INTEGER: i32 = 130;
794pub const ASN1_R_ILLEGAL_NESTED_TAGGING: i32 = 131;
795pub const ASN1_R_ILLEGAL_NULL: i32 = 132;
796pub const ASN1_R_ILLEGAL_NULL_VALUE: i32 = 133;
797pub const ASN1_R_ILLEGAL_OBJECT: i32 = 134;
798pub const ASN1_R_ILLEGAL_OPTIONAL_ANY: i32 = 135;
799pub const ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE: i32 = 136;
800pub const ASN1_R_ILLEGAL_TAGGED_ANY: i32 = 137;
801pub const ASN1_R_ILLEGAL_TIME_VALUE: i32 = 138;
802pub const ASN1_R_INTEGER_NOT_ASCII_FORMAT: i32 = 139;
803pub const ASN1_R_INTEGER_TOO_LARGE_FOR_LONG: i32 = 140;
804pub const ASN1_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 141;
805pub const ASN1_R_INVALID_BMPSTRING: i32 = 142;
806pub const ASN1_R_INVALID_DIGIT: i32 = 143;
807pub const ASN1_R_INVALID_MODIFIER: i32 = 144;
808pub const ASN1_R_INVALID_NUMBER: i32 = 145;
809pub const ASN1_R_INVALID_OBJECT_ENCODING: i32 = 146;
810pub const ASN1_R_INVALID_SEPARATOR: i32 = 147;
811pub const ASN1_R_INVALID_TIME_FORMAT: i32 = 148;
812pub const ASN1_R_INVALID_UNIVERSALSTRING: i32 = 149;
813pub const ASN1_R_INVALID_UTF8STRING: i32 = 150;
814pub const ASN1_R_LIST_ERROR: i32 = 151;
815pub const ASN1_R_MISSING_ASN1_EOS: i32 = 152;
816pub const ASN1_R_MISSING_EOC: i32 = 153;
817pub const ASN1_R_MISSING_SECOND_NUMBER: i32 = 154;
818pub const ASN1_R_MISSING_VALUE: i32 = 155;
819pub const ASN1_R_MSTRING_NOT_UNIVERSAL: i32 = 156;
820pub const ASN1_R_MSTRING_WRONG_TAG: i32 = 157;
821pub const ASN1_R_NESTED_ASN1_ERROR: i32 = 158;
822pub const ASN1_R_NESTED_ASN1_STRING: i32 = 159;
823pub const ASN1_R_NON_HEX_CHARACTERS: i32 = 160;
824pub const ASN1_R_NOT_ASCII_FORMAT: i32 = 161;
825pub const ASN1_R_NOT_ENOUGH_DATA: i32 = 162;
826pub const ASN1_R_NO_MATCHING_CHOICE_TYPE: i32 = 163;
827pub const ASN1_R_NULL_IS_WRONG_LENGTH: i32 = 164;
828pub const ASN1_R_OBJECT_NOT_ASCII_FORMAT: i32 = 165;
829pub const ASN1_R_ODD_NUMBER_OF_CHARS: i32 = 166;
830pub const ASN1_R_SECOND_NUMBER_TOO_LARGE: i32 = 167;
831pub const ASN1_R_SEQUENCE_LENGTH_MISMATCH: i32 = 168;
832pub const ASN1_R_SEQUENCE_NOT_CONSTRUCTED: i32 = 169;
833pub const ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG: i32 = 170;
834pub const ASN1_R_SHORT_LINE: i32 = 171;
835pub const ASN1_R_STREAMING_NOT_SUPPORTED: i32 = 172;
836pub const ASN1_R_STRING_TOO_LONG: i32 = 173;
837pub const ASN1_R_STRING_TOO_SHORT: i32 = 174;
838pub const ASN1_R_TAG_VALUE_TOO_HIGH: i32 = 175;
839pub const ASN1_R_TIME_NOT_ASCII_FORMAT: i32 = 176;
840pub const ASN1_R_TOO_LONG: i32 = 177;
841pub const ASN1_R_TYPE_NOT_CONSTRUCTED: i32 = 178;
842pub const ASN1_R_TYPE_NOT_PRIMITIVE: i32 = 179;
843pub const ASN1_R_UNEXPECTED_EOC: i32 = 180;
844pub const ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH: i32 = 181;
845pub const ASN1_R_UNKNOWN_FORMAT: i32 = 182;
846pub const ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM: i32 = 183;
847pub const ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM: i32 = 184;
848pub const ASN1_R_UNKNOWN_TAG: i32 = 185;
849pub const ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE: i32 = 186;
850pub const ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 187;
851pub const ASN1_R_UNSUPPORTED_TYPE: i32 = 188;
852pub const ASN1_R_WRONG_PUBLIC_KEY_TYPE: i32 = 189;
853pub const ASN1_R_WRONG_TAG: i32 = 190;
854pub const ASN1_R_WRONG_TYPE: i32 = 191;
855pub const ASN1_R_NESTED_TOO_DEEP: i32 = 192;
856pub const ASN1_R_BAD_TEMPLATE: i32 = 193;
857pub const ASN1_R_INVALID_BIT_STRING_PADDING: i32 = 194;
858pub const ASN1_R_WRONG_INTEGER_TYPE: i32 = 195;
859pub const ASN1_R_INVALID_INTEGER: i32 = 196;
860pub const ASN1_TFLG_OPTIONAL: i32 = 1;
861pub const ASN1_TFLG_SET_OF: i32 = 2;
862pub const ASN1_TFLG_SEQUENCE_OF: i32 = 4;
863pub const ASN1_TFLG_SK_MASK: i32 = 6;
864pub const ASN1_TFLG_IMPTAG: i32 = 8;
865pub const ASN1_TFLG_EXPTAG: i32 = 16;
866pub const ASN1_TFLG_TAG_MASK: i32 = 24;
867pub const ASN1_TFLG_UNIVERSAL: i32 = 0;
868pub const ASN1_TFLG_APPLICATION: i32 = 64;
869pub const ASN1_TFLG_CONTEXT: i32 = 128;
870pub const ASN1_TFLG_PRIVATE: i32 = 192;
871pub const ASN1_TFLG_TAG_CLASS: i32 = 192;
872pub const ASN1_TFLG_ADB_MASK: i32 = 768;
873pub const ASN1_TFLG_ADB_OID: i32 = 256;
874pub const ASN1_ITYPE_PRIMITIVE: i32 = 0;
875pub const ASN1_ITYPE_SEQUENCE: i32 = 1;
876pub const ASN1_ITYPE_CHOICE: i32 = 2;
877pub const ASN1_ITYPE_EXTERN: i32 = 4;
878pub const ASN1_ITYPE_MSTRING: i32 = 5;
879pub const ASN1_AFLG_REFCOUNT: i32 = 1;
880pub const ASN1_AFLG_ENCODING: i32 = 2;
881pub const ASN1_OP_NEW_PRE: i32 = 0;
882pub const ASN1_OP_NEW_POST: i32 = 1;
883pub const ASN1_OP_FREE_PRE: i32 = 2;
884pub const ASN1_OP_FREE_POST: i32 = 3;
885pub const ASN1_OP_D2I_PRE: i32 = 4;
886pub const ASN1_OP_D2I_POST: i32 = 5;
887pub const ASN1_OP_PRINT_PRE: i32 = 8;
888pub const ASN1_OP_PRINT_POST: i32 = 9;
889pub const ASN1_OP_STREAM_PRE: i32 = 10;
890pub const ASN1_OP_STREAM_POST: i32 = 11;
891pub const ASN1_OP_DETACHED_PRE: i32 = 12;
892pub const ASN1_OP_DETACHED_POST: i32 = 13;
893pub const BLAKE2B256_DIGEST_LENGTH: i32 = 32;
894pub const BLAKE2B_CBLOCK: i32 = 128;
895pub const BF_ENCRYPT: i32 = 1;
896pub const BF_DECRYPT: i32 = 0;
897pub const BF_ROUNDS: i32 = 16;
898pub const BF_BLOCK: i32 = 8;
899pub const CBS_ASN1_TAG_SHIFT: i32 = 24;
900pub const CBS_ASN1_CONSTRUCTED: i32 = 536870912;
901pub const CBS_ASN1_UNIVERSAL: i32 = 0;
902pub const CBS_ASN1_APPLICATION: i32 = 1073741824;
903pub const CBS_ASN1_CONTEXT_SPECIFIC: i64 = 2147483648;
904pub const CBS_ASN1_PRIVATE: i64 = 3221225472;
905pub const CBS_ASN1_CLASS_MASK: i64 = 3221225472;
906pub const CBS_ASN1_TAG_NUMBER_MASK: i32 = 536870911;
907pub const CBS_ASN1_BOOLEAN: i32 = 1;
908pub const CBS_ASN1_INTEGER: i32 = 2;
909pub const CBS_ASN1_BITSTRING: i32 = 3;
910pub const CBS_ASN1_OCTETSTRING: i32 = 4;
911pub const CBS_ASN1_NULL: i32 = 5;
912pub const CBS_ASN1_OBJECT: i32 = 6;
913pub const CBS_ASN1_ENUMERATED: i32 = 10;
914pub const CBS_ASN1_UTF8STRING: i32 = 12;
915pub const CBS_ASN1_SEQUENCE: i32 = 536870928;
916pub const CBS_ASN1_SET: i32 = 536870929;
917pub const CBS_ASN1_NUMERICSTRING: i32 = 18;
918pub const CBS_ASN1_PRINTABLESTRING: i32 = 19;
919pub const CBS_ASN1_T61STRING: i32 = 20;
920pub const CBS_ASN1_VIDEOTEXSTRING: i32 = 21;
921pub const CBS_ASN1_IA5STRING: i32 = 22;
922pub const CBS_ASN1_UTCTIME: i32 = 23;
923pub const CBS_ASN1_GENERALIZEDTIME: i32 = 24;
924pub const CBS_ASN1_GRAPHICSTRING: i32 = 25;
925pub const CBS_ASN1_VISIBLESTRING: i32 = 26;
926pub const CBS_ASN1_GENERALSTRING: i32 = 27;
927pub const CBS_ASN1_UNIVERSALSTRING: i32 = 28;
928pub const CBS_ASN1_BMPSTRING: i32 = 30;
929pub const CAST_ENCRYPT: i32 = 1;
930pub const CAST_DECRYPT: i32 = 0;
931pub const CAST_BLOCK: i32 = 8;
932pub const CAST_KEY_LENGTH: i32 = 16;
933pub const EVP_CIPH_STREAM_CIPHER: i32 = 0;
934pub const EVP_CIPH_ECB_MODE: i32 = 1;
935pub const EVP_CIPH_CBC_MODE: i32 = 2;
936pub const EVP_CIPH_CFB_MODE: i32 = 3;
937pub const EVP_CIPH_OFB_MODE: i32 = 4;
938pub const EVP_CIPH_CTR_MODE: i32 = 5;
939pub const EVP_CIPH_GCM_MODE: i32 = 6;
940pub const EVP_CIPH_XTS_MODE: i32 = 7;
941pub const EVP_CIPH_CCM_MODE: i32 = 8;
942pub const EVP_CIPH_OCB_MODE: i32 = 9;
943pub const EVP_CIPH_WRAP_MODE: i32 = 10;
944pub const EVP_CIPH_VARIABLE_LENGTH: i32 = 64;
945pub const EVP_CIPH_ALWAYS_CALL_INIT: i32 = 128;
946pub const EVP_CIPH_CUSTOM_IV: i32 = 256;
947pub const EVP_CIPH_CTRL_INIT: i32 = 512;
948pub const EVP_CIPH_FLAG_CUSTOM_CIPHER: i32 = 1024;
949pub const EVP_CIPH_FLAG_AEAD_CIPHER: i32 = 2048;
950pub const EVP_CIPH_CUSTOM_COPY: i32 = 4096;
951pub const EVP_CIPH_FLAG_NON_FIPS_ALLOW: i32 = 0;
952pub const EVP_CIPHER_CTX_FLAG_WRAP_ALLOW: i32 = 0;
953pub const EVP_CIPH_NO_PADDING: i32 = 2048;
954pub const EVP_CTRL_INIT: i32 = 0;
955pub const EVP_CTRL_SET_KEY_LENGTH: i32 = 1;
956pub const EVP_CTRL_GET_RC2_KEY_BITS: i32 = 2;
957pub const EVP_CTRL_SET_RC2_KEY_BITS: i32 = 3;
958pub const EVP_CTRL_GET_RC5_ROUNDS: i32 = 4;
959pub const EVP_CTRL_SET_RC5_ROUNDS: i32 = 5;
960pub const EVP_CTRL_RAND_KEY: i32 = 6;
961pub const EVP_CTRL_PBE_PRF_NID: i32 = 7;
962pub const EVP_CTRL_COPY: i32 = 8;
963pub const EVP_CTRL_AEAD_SET_IVLEN: i32 = 9;
964pub const EVP_CTRL_AEAD_GET_TAG: i32 = 16;
965pub const EVP_CTRL_AEAD_SET_TAG: i32 = 17;
966pub const EVP_CTRL_AEAD_SET_IV_FIXED: i32 = 18;
967pub const EVP_CTRL_GCM_IV_GEN: i32 = 19;
968pub const EVP_CTRL_AEAD_SET_MAC_KEY: i32 = 23;
969pub const EVP_CTRL_GCM_SET_IV_INV: i32 = 24;
970pub const EVP_CTRL_GET_IVLEN: i32 = 25;
971pub const EVP_GCM_TLS_FIXED_IV_LEN: i32 = 4;
972pub const EVP_GCM_TLS_EXPLICIT_IV_LEN: i32 = 8;
973pub const EVP_GCM_TLS_TAG_LEN: i32 = 16;
974pub const EVP_CTRL_GCM_SET_IVLEN: i32 = 9;
975pub const EVP_CTRL_GCM_GET_TAG: i32 = 16;
976pub const EVP_CTRL_GCM_SET_TAG: i32 = 17;
977pub const EVP_CTRL_GCM_SET_IV_FIXED: i32 = 18;
978pub const EVP_MAX_KEY_LENGTH: i32 = 64;
979pub const EVP_MAX_IV_LENGTH: i32 = 16;
980pub const EVP_MAX_BLOCK_LENGTH: i32 = 32;
981pub const CIPHER_R_AES_KEY_SETUP_FAILED: i32 = 100;
982pub const CIPHER_R_BAD_DECRYPT: i32 = 101;
983pub const CIPHER_R_BAD_KEY_LENGTH: i32 = 102;
984pub const CIPHER_R_BUFFER_TOO_SMALL: i32 = 103;
985pub const CIPHER_R_CTRL_NOT_IMPLEMENTED: i32 = 104;
986pub const CIPHER_R_CTRL_OPERATION_NOT_IMPLEMENTED: i32 = 105;
987pub const CIPHER_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH: i32 = 106;
988pub const CIPHER_R_INITIALIZATION_ERROR: i32 = 107;
989pub const CIPHER_R_INPUT_NOT_INITIALIZED: i32 = 108;
990pub const CIPHER_R_INVALID_AD_SIZE: i32 = 109;
991pub const CIPHER_R_INVALID_KEY_LENGTH: i32 = 110;
992pub const CIPHER_R_INVALID_NONCE_SIZE: i32 = 111;
993pub const CIPHER_R_INVALID_OPERATION: i32 = 112;
994pub const CIPHER_R_IV_TOO_LARGE: i32 = 113;
995pub const CIPHER_R_NO_CIPHER_SET: i32 = 114;
996pub const CIPHER_R_OUTPUT_ALIASES_INPUT: i32 = 115;
997pub const CIPHER_R_TAG_TOO_LARGE: i32 = 116;
998pub const CIPHER_R_TOO_LARGE: i32 = 117;
999pub const CIPHER_R_UNSUPPORTED_AD_SIZE: i32 = 118;
1000pub const CIPHER_R_UNSUPPORTED_INPUT_SIZE: i32 = 119;
1001pub const CIPHER_R_UNSUPPORTED_KEY_SIZE: i32 = 120;
1002pub const CIPHER_R_UNSUPPORTED_NONCE_SIZE: i32 = 121;
1003pub const CIPHER_R_UNSUPPORTED_TAG_SIZE: i32 = 122;
1004pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH: i32 = 123;
1005pub const CIPHER_R_NO_DIRECTION_SET: i32 = 124;
1006pub const CIPHER_R_INVALID_NONCE: i32 = 125;
1007pub const CONF_MFLAGS_DEFAULT_SECTION: i32 = 0;
1008pub const CONF_MFLAGS_IGNORE_MISSING_FILE: i32 = 0;
1009pub const CONF_R_LIST_CANNOT_BE_NULL: i32 = 100;
1010pub const CONF_R_MISSING_CLOSE_SQUARE_BRACKET: i32 = 101;
1011pub const CONF_R_MISSING_EQUAL_SIGN: i32 = 102;
1012pub const CONF_R_NO_CLOSE_BRACE: i32 = 103;
1013pub const CONF_R_UNABLE_TO_CREATE_NEW_SECTION: i32 = 104;
1014pub const CONF_R_VARIABLE_HAS_NO_VALUE: i32 = 105;
1015pub const CONF_R_VARIABLE_EXPANSION_TOO_LONG: i32 = 106;
1016pub const CONF_R_VARIABLE_EXPANSION_NOT_SUPPORTED: i32 = 107;
1017pub const SHA224_CBLOCK: i32 = 64;
1018pub const SHA224_DIGEST_LENGTH: i32 = 28;
1019pub const SHA256_CBLOCK: i32 = 64;
1020pub const SHA256_DIGEST_LENGTH: i32 = 32;
1021pub const SHA384_CBLOCK: i32 = 128;
1022pub const SHA384_DIGEST_LENGTH: i32 = 48;
1023pub const SHA512_CBLOCK: i32 = 128;
1024pub const SHA512_DIGEST_LENGTH: i32 = 64;
1025pub const SHA512_256_DIGEST_LENGTH: i32 = 32;
1026pub const SHA_CBLOCK: i32 = 64;
1027pub const SHA_DIGEST_LENGTH: i32 = 20;
1028pub const CRYPTO_LOCK: i32 = 1;
1029pub const CRYPTO_UNLOCK: i32 = 2;
1030pub const CRYPTO_READ: i32 = 4;
1031pub const CRYPTO_WRITE: i32 = 8;
1032pub const OPENSSL_VERSION_TEXT: &[u8; 38] = b"OpenSSL 1.1.1 (compatible; BoringSSL)\0";
1033pub const OPENSSL_VERSION: i32 = 0;
1034pub const OPENSSL_CFLAGS: i32 = 1;
1035pub const OPENSSL_BUILT_ON: i32 = 2;
1036pub const OPENSSL_PLATFORM: i32 = 3;
1037pub const OPENSSL_DIR: i32 = 4;
1038pub const SSLEAY_VERSION: i32 = 0;
1039pub const SSLEAY_CFLAGS: i32 = 1;
1040pub const SSLEAY_BUILT_ON: i32 = 2;
1041pub const SSLEAY_PLATFORM: i32 = 3;
1042pub const SSLEAY_DIR: i32 = 4;
1043pub const OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS: i32 = 0;
1044pub const OPENSSL_INIT_LOAD_CRYPTO_STRINGS: i32 = 0;
1045pub const OPENSSL_INIT_ADD_ALL_CIPHERS: i32 = 0;
1046pub const OPENSSL_INIT_ADD_ALL_DIGESTS: i32 = 0;
1047pub const OPENSSL_INIT_NO_ADD_ALL_CIPHERS: i32 = 0;
1048pub const OPENSSL_INIT_NO_ADD_ALL_DIGESTS: i32 = 0;
1049pub const OPENSSL_INIT_LOAD_CONFIG: i32 = 0;
1050pub const OPENSSL_INIT_NO_LOAD_CONFIG: i32 = 0;
1051pub const OPENSSL_INIT_NO_ATEXIT: i32 = 0;
1052pub const OPENSSL_INIT_ATFORK: i32 = 0;
1053pub const OPENSSL_INIT_ENGINE_RDRAND: i32 = 0;
1054pub const OPENSSL_INIT_ENGINE_DYNAMIC: i32 = 0;
1055pub const OPENSSL_INIT_ENGINE_OPENSSL: i32 = 0;
1056pub const OPENSSL_INIT_ENGINE_CRYPTODEV: i32 = 0;
1057pub const OPENSSL_INIT_ENGINE_CAPI: i32 = 0;
1058pub const OPENSSL_INIT_ENGINE_PADLOCK: i32 = 0;
1059pub const OPENSSL_INIT_ENGINE_AFALG: i32 = 0;
1060pub const OPENSSL_INIT_ENGINE_ALL_BUILTIN: i32 = 0;
1061pub const CTR_DRBG_MIN_ENTROPY_LEN: i32 = 32;
1062pub const CTR_DRBG_MAX_ENTROPY_LEN: i32 = 64;
1063pub const CTR_DRBG_ENTROPY_LEN: i32 = 48;
1064pub const CTR_DRBG_NONCE_LEN: i32 = 16;
1065pub const CTR_DRBG_MAX_GENERATE_LENGTH: i32 = 65536;
1066pub const X25519_PRIVATE_KEY_LEN: i32 = 32;
1067pub const X25519_PUBLIC_VALUE_LEN: i32 = 32;
1068pub const X25519_SHARED_KEY_LEN: i32 = 32;
1069pub const ED25519_PRIVATE_KEY_LEN: i32 = 64;
1070pub const ED25519_PUBLIC_KEY_LEN: i32 = 32;
1071pub const ED25519_SIGNATURE_LEN: i32 = 64;
1072pub const SPAKE2_MAX_MSG_SIZE: i32 = 32;
1073pub const SPAKE2_MAX_KEY_SIZE: i32 = 64;
1074pub const DES_ENCRYPT: i32 = 1;
1075pub const DES_DECRYPT: i32 = 0;
1076pub const DES_CBC_MODE: i32 = 0;
1077pub const DES_PCBC_MODE: i32 = 1;
1078pub const OPENSSL_DH_MAX_MODULUS_BITS: i32 = 8192;
1079pub const DH_GENERATOR_2: i32 = 2;
1080pub const DH_GENERATOR_5: i32 = 5;
1081pub const DH_CHECK_P_NOT_PRIME: i32 = 1;
1082pub const DH_CHECK_P_NOT_SAFE_PRIME: i32 = 2;
1083pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
1084pub const DH_CHECK_NOT_SUITABLE_GENERATOR: i32 = 8;
1085pub const DH_CHECK_Q_NOT_PRIME: i32 = 16;
1086pub const DH_CHECK_INVALID_Q_VALUE: i32 = 32;
1087pub const DH_NOT_SUITABLE_GENERATOR: i32 = 8;
1088pub const DH_UNABLE_TO_CHECK_GENERATOR: i32 = 4;
1089pub const DH_CHECK_PUBKEY_TOO_SMALL: i32 = 1;
1090pub const DH_CHECK_PUBKEY_TOO_LARGE: i32 = 2;
1091pub const DH_CHECK_PUBKEY_INVALID: i32 = 4;
1092pub const DH_R_BAD_GENERATOR: i32 = 100;
1093pub const DH_R_INVALID_PUBKEY: i32 = 101;
1094pub const DH_R_MODULUS_TOO_LARGE: i32 = 102;
1095pub const DH_R_NO_PRIVATE_VALUE: i32 = 103;
1096pub const DH_R_DECODE_ERROR: i32 = 104;
1097pub const DH_R_ENCODE_ERROR: i32 = 105;
1098pub const DH_R_INVALID_PARAMETERS: i32 = 106;
1099pub const EVP_MAX_MD_SIZE: i32 = 64;
1100pub const EVP_MAX_MD_BLOCK_SIZE: i32 = 128;
1101pub const EVP_MD_FLAG_DIGALGID_ABSENT: i32 = 2;
1102pub const EVP_MD_FLAG_XOF: i32 = 4;
1103pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW: i32 = 0;
1104pub const EVP_MAX_MD_DATA_SIZE: i32 = 208;
1105pub const DIGEST_R_INPUT_NOT_INITIALIZED: i32 = 100;
1106pub const DIGEST_R_DECODE_ERROR: i32 = 101;
1107pub const DIGEST_R_UNKNOWN_HASH: i32 = 102;
1108pub const OPENSSL_DSA_MAX_MODULUS_BITS: i32 = 8192;
1109pub const DSA_R_BAD_Q_VALUE: i32 = 100;
1110pub const DSA_R_MISSING_PARAMETERS: i32 = 101;
1111pub const DSA_R_MODULUS_TOO_LARGE: i32 = 102;
1112pub const DSA_R_NEED_NEW_SETUP_VALUES: i32 = 103;
1113pub const DSA_R_BAD_VERSION: i32 = 104;
1114pub const DSA_R_DECODE_ERROR: i32 = 105;
1115pub const DSA_R_ENCODE_ERROR: i32 = 106;
1116pub const DSA_R_INVALID_PARAMETERS: i32 = 107;
1117pub const DSA_R_TOO_MANY_ITERATIONS: i32 = 108;
1118pub const OPENSSL_EC_EXPLICIT_CURVE: i32 = 0;
1119pub const OPENSSL_EC_NAMED_CURVE: i32 = 1;
1120pub const ENGINE_R_OPERATION_NOT_SUPPORTED: i32 = 100;
1121pub const EC_PKEY_NO_PARAMETERS: i32 = 1;
1122pub const EC_PKEY_NO_PUBKEY: i32 = 2;
1123pub const ECDSA_FLAG_OPAQUE: i32 = 1;
1124pub const EC_R_BUFFER_TOO_SMALL: i32 = 100;
1125pub const EC_R_COORDINATES_OUT_OF_RANGE: i32 = 101;
1126pub const EC_R_D2I_ECPKPARAMETERS_FAILURE: i32 = 102;
1127pub const EC_R_EC_GROUP_NEW_BY_NAME_FAILURE: i32 = 103;
1128pub const EC_R_GROUP2PKPARAMETERS_FAILURE: i32 = 104;
1129pub const EC_R_I2D_ECPKPARAMETERS_FAILURE: i32 = 105;
1130pub const EC_R_INCOMPATIBLE_OBJECTS: i32 = 106;
1131pub const EC_R_INVALID_COMPRESSED_POINT: i32 = 107;
1132pub const EC_R_INVALID_COMPRESSION_BIT: i32 = 108;
1133pub const EC_R_INVALID_ENCODING: i32 = 109;
1134pub const EC_R_INVALID_FIELD: i32 = 110;
1135pub const EC_R_INVALID_FORM: i32 = 111;
1136pub const EC_R_INVALID_GROUP_ORDER: i32 = 112;
1137pub const EC_R_INVALID_PRIVATE_KEY: i32 = 113;
1138pub const EC_R_MISSING_PARAMETERS: i32 = 114;
1139pub const EC_R_MISSING_PRIVATE_KEY: i32 = 115;
1140pub const EC_R_NON_NAMED_CURVE: i32 = 116;
1141pub const EC_R_NOT_INITIALIZED: i32 = 117;
1142pub const EC_R_PKPARAMETERS2GROUP_FAILURE: i32 = 118;
1143pub const EC_R_POINT_AT_INFINITY: i32 = 119;
1144pub const EC_R_POINT_IS_NOT_ON_CURVE: i32 = 120;
1145pub const EC_R_SLOT_FULL: i32 = 121;
1146pub const EC_R_UNDEFINED_GENERATOR: i32 = 122;
1147pub const EC_R_UNKNOWN_GROUP: i32 = 123;
1148pub const EC_R_UNKNOWN_ORDER: i32 = 124;
1149pub const EC_R_WRONG_ORDER: i32 = 125;
1150pub const EC_R_BIGNUM_OUT_OF_RANGE: i32 = 126;
1151pub const EC_R_WRONG_CURVE_PARAMETERS: i32 = 127;
1152pub const EC_R_DECODE_ERROR: i32 = 128;
1153pub const EC_R_ENCODE_ERROR: i32 = 129;
1154pub const EC_R_GROUP_MISMATCH: i32 = 130;
1155pub const EC_R_INVALID_COFACTOR: i32 = 131;
1156pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 132;
1157pub const EC_R_INVALID_SCALAR: i32 = 133;
1158pub const ECDH_R_KDF_FAILED: i32 = 100;
1159pub const ECDH_R_NO_PRIVATE_VALUE: i32 = 101;
1160pub const ECDH_R_POINT_ARITHMETIC_FAILURE: i32 = 102;
1161pub const ECDH_R_UNKNOWN_DIGEST_LENGTH: i32 = 103;
1162pub const ECDSA_R_BAD_SIGNATURE: i32 = 100;
1163pub const ECDSA_R_MISSING_PARAMETERS: i32 = 101;
1164pub const ECDSA_R_NEED_NEW_SETUP_VALUES: i32 = 102;
1165pub const ECDSA_R_NOT_IMPLEMENTED: i32 = 103;
1166pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED: i32 = 104;
1167pub const ECDSA_R_ENCODE_ERROR: i32 = 105;
1168pub const ECDSA_R_TOO_MANY_ITERATIONS: i32 = 106;
1169pub const EVP_R_BUFFER_TOO_SMALL: i32 = 100;
1170pub const EVP_R_COMMAND_NOT_SUPPORTED: i32 = 101;
1171pub const EVP_R_DECODE_ERROR: i32 = 102;
1172pub const EVP_R_DIFFERENT_KEY_TYPES: i32 = 103;
1173pub const EVP_R_DIFFERENT_PARAMETERS: i32 = 104;
1174pub const EVP_R_ENCODE_ERROR: i32 = 105;
1175pub const EVP_R_EXPECTING_A_EC_KEY: i32 = 106;
1176pub const EVP_R_EXPECTING_AN_RSA_KEY: i32 = 107;
1177pub const EVP_R_EXPECTING_A_DSA_KEY: i32 = 108;
1178pub const EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE: i32 = 109;
1179pub const EVP_R_INVALID_DIGEST_LENGTH: i32 = 110;
1180pub const EVP_R_INVALID_DIGEST_TYPE: i32 = 111;
1181pub const EVP_R_INVALID_KEYBITS: i32 = 112;
1182pub const EVP_R_INVALID_MGF1_MD: i32 = 113;
1183pub const EVP_R_INVALID_OPERATION: i32 = 114;
1184pub const EVP_R_INVALID_PADDING_MODE: i32 = 115;
1185pub const EVP_R_INVALID_PSS_SALTLEN: i32 = 116;
1186pub const EVP_R_KEYS_NOT_SET: i32 = 117;
1187pub const EVP_R_MISSING_PARAMETERS: i32 = 118;
1188pub const EVP_R_NO_DEFAULT_DIGEST: i32 = 119;
1189pub const EVP_R_NO_KEY_SET: i32 = 120;
1190pub const EVP_R_NO_MDC2_SUPPORT: i32 = 121;
1191pub const EVP_R_NO_NID_FOR_CURVE: i32 = 122;
1192pub const EVP_R_NO_OPERATION_SET: i32 = 123;
1193pub const EVP_R_NO_PARAMETERS_SET: i32 = 124;
1194pub const EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE: i32 = 125;
1195pub const EVP_R_OPERATION_NOT_INITIALIZED: i32 = 126;
1196pub const EVP_R_UNKNOWN_PUBLIC_KEY_TYPE: i32 = 127;
1197pub const EVP_R_UNSUPPORTED_ALGORITHM: i32 = 128;
1198pub const EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE: i32 = 129;
1199pub const EVP_R_NOT_A_PRIVATE_KEY: i32 = 130;
1200pub const EVP_R_INVALID_SIGNATURE: i32 = 131;
1201pub const EVP_R_MEMORY_LIMIT_EXCEEDED: i32 = 132;
1202pub const EVP_R_INVALID_PARAMETERS: i32 = 133;
1203pub const EVP_R_INVALID_PEER_KEY: i32 = 134;
1204pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH: i32 = 135;
1205pub const EVP_R_EMPTY_PSK: i32 = 136;
1206pub const EVP_R_INVALID_BUFFER_SIZE: i32 = 137;
1207pub const EVP_R_EXPECTING_A_DH_KEY: i32 = 138;
1208pub const EVP_R_PRIVATE_KEY_WAS_NOT_SEED: i32 = 139;
1209pub const EVP_R_MISSING_PUBLIC_KEY: i32 = 140;
1210pub const EVP_R_INVALID_CIPHERTEXT_LENGTH: i32 = 141;
1211pub const EVP_R_INVALID_SECRET_LENGTH: i32 = 142;
1212pub const EVP_R_INVALID_ENTROPY_LENGTH: i32 = 143;
1213pub const EVP_R_OPERATON_NOT_INITIALIZED: i32 = 126;
1214pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
1215pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
1216pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
1217pub const EVP_AEAD_MAX_OPEN_OVERHEAD: i32 = 320;
1218pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
1219pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1220pub const LN_undef: &[u8; 10] = b"undefined\0";
1221pub const NID_undef: i32 = 0;
1222pub const OBJ_undef: i32 = 0;
1223pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1224pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1225pub const NID_rsadsi: i32 = 1;
1226pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1227pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1228pub const NID_pkcs: i32 = 2;
1229pub const SN_md2: &[u8; 4] = b"MD2\0";
1230pub const LN_md2: &[u8; 4] = b"md2\0";
1231pub const NID_md2: i32 = 3;
1232pub const SN_md5: &[u8; 4] = b"MD5\0";
1233pub const LN_md5: &[u8; 4] = b"md5\0";
1234pub const NID_md5: i32 = 4;
1235pub const SN_rc4: &[u8; 4] = b"RC4\0";
1236pub const LN_rc4: &[u8; 4] = b"rc4\0";
1237pub const NID_rc4: i32 = 5;
1238pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1239pub const NID_rsaEncryption: i32 = 6;
1240pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1241pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1242pub const NID_md2WithRSAEncryption: i32 = 7;
1243pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1244pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1245pub const NID_md5WithRSAEncryption: i32 = 8;
1246pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1247pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1248pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1249pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1250pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1251pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1252pub const SN_X500: &[u8; 5] = b"X500\0";
1253pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1254pub const NID_X500: i32 = 11;
1255pub const OBJ_ENC_X500: i32 = 85;
1256pub const SN_X509: &[u8; 5] = b"X509\0";
1257pub const NID_X509: i32 = 12;
1258pub const SN_commonName: &[u8; 3] = b"CN\0";
1259pub const LN_commonName: &[u8; 11] = b"commonName\0";
1260pub const NID_commonName: i32 = 13;
1261pub const SN_countryName: &[u8; 2] = b"C\0";
1262pub const LN_countryName: &[u8; 12] = b"countryName\0";
1263pub const NID_countryName: i32 = 14;
1264pub const SN_localityName: &[u8; 2] = b"L\0";
1265pub const LN_localityName: &[u8; 13] = b"localityName\0";
1266pub const NID_localityName: i32 = 15;
1267pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1268pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1269pub const NID_stateOrProvinceName: i32 = 16;
1270pub const SN_organizationName: &[u8; 2] = b"O\0";
1271pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1272pub const NID_organizationName: i32 = 17;
1273pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1274pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1275pub const NID_organizationalUnitName: i32 = 18;
1276pub const SN_rsa: &[u8; 4] = b"RSA\0";
1277pub const LN_rsa: &[u8; 4] = b"rsa\0";
1278pub const NID_rsa: i32 = 19;
1279pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1280pub const NID_pkcs7: i32 = 20;
1281pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1282pub const NID_pkcs7_data: i32 = 21;
1283pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1284pub const NID_pkcs7_signed: i32 = 22;
1285pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1286pub const NID_pkcs7_enveloped: i32 = 23;
1287pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1288pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1289pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1290pub const NID_pkcs7_digest: i32 = 25;
1291pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1292pub const NID_pkcs7_encrypted: i32 = 26;
1293pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1294pub const NID_pkcs3: i32 = 27;
1295pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1296pub const NID_dhKeyAgreement: i32 = 28;
1297pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1298pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1299pub const NID_des_ecb: i32 = 29;
1300pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1301pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1302pub const NID_des_cfb64: i32 = 30;
1303pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1304pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1305pub const NID_des_cbc: i32 = 31;
1306pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1307pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1308pub const NID_des_ede_ecb: i32 = 32;
1309pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1310pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1311pub const NID_des_ede3_ecb: i32 = 33;
1312pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1313pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1314pub const NID_idea_cbc: i32 = 34;
1315pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1316pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1317pub const NID_idea_cfb64: i32 = 35;
1318pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1319pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1320pub const NID_idea_ecb: i32 = 36;
1321pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1322pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1323pub const NID_rc2_cbc: i32 = 37;
1324pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1325pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1326pub const NID_rc2_ecb: i32 = 38;
1327pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1328pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1329pub const NID_rc2_cfb64: i32 = 39;
1330pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1331pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1332pub const NID_rc2_ofb64: i32 = 40;
1333pub const SN_sha: &[u8; 4] = b"SHA\0";
1334pub const LN_sha: &[u8; 4] = b"sha\0";
1335pub const NID_sha: i32 = 41;
1336pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1337pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1338pub const NID_shaWithRSAEncryption: i32 = 42;
1339pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1340pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1341pub const NID_des_ede_cbc: i32 = 43;
1342pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1343pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1344pub const NID_des_ede3_cbc: i32 = 44;
1345pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1346pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1347pub const NID_des_ofb64: i32 = 45;
1348pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1349pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1350pub const NID_idea_ofb64: i32 = 46;
1351pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1352pub const NID_pkcs9: i32 = 47;
1353pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1354pub const NID_pkcs9_emailAddress: i32 = 48;
1355pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1356pub const NID_pkcs9_unstructuredName: i32 = 49;
1357pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1358pub const NID_pkcs9_contentType: i32 = 50;
1359pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1360pub const NID_pkcs9_messageDigest: i32 = 51;
1361pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1362pub const NID_pkcs9_signingTime: i32 = 52;
1363pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1364pub const NID_pkcs9_countersignature: i32 = 53;
1365pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1366pub const NID_pkcs9_challengePassword: i32 = 54;
1367pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1368pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1369pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1370pub const NID_pkcs9_extCertAttributes: i32 = 56;
1371pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1372pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1373pub const NID_netscape: i32 = 57;
1374pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1375pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1376pub const NID_netscape_cert_extension: i32 = 58;
1377pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1378pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1379pub const NID_netscape_data_type: i32 = 59;
1380pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1381pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1382pub const NID_des_ede_cfb64: i32 = 60;
1383pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1384pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1385pub const NID_des_ede3_cfb64: i32 = 61;
1386pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1387pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1388pub const NID_des_ede_ofb64: i32 = 62;
1389pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1390pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1391pub const NID_des_ede3_ofb64: i32 = 63;
1392pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1393pub const LN_sha1: &[u8; 5] = b"sha1\0";
1394pub const NID_sha1: i32 = 64;
1395pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1396pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1397pub const NID_sha1WithRSAEncryption: i32 = 65;
1398pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1399pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1400pub const NID_dsaWithSHA: i32 = 66;
1401pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1402pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1403pub const NID_dsa_2: i32 = 67;
1404pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1405pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1406pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1407pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1408pub const NID_id_pbkdf2: i32 = 69;
1409pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1410pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1411pub const NID_dsaWithSHA1_2: i32 = 70;
1412pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1413pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1414pub const NID_netscape_cert_type: i32 = 71;
1415pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1416pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1417pub const NID_netscape_base_url: i32 = 72;
1418pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1419pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1420pub const NID_netscape_revocation_url: i32 = 73;
1421pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1422pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1423pub const NID_netscape_ca_revocation_url: i32 = 74;
1424pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1425pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1426pub const NID_netscape_renewal_url: i32 = 75;
1427pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1428pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1429pub const NID_netscape_ca_policy_url: i32 = 76;
1430pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1431pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1432pub const NID_netscape_ssl_server_name: i32 = 77;
1433pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1434pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1435pub const NID_netscape_comment: i32 = 78;
1436pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1437pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1438pub const NID_netscape_cert_sequence: i32 = 79;
1439pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1440pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1441pub const NID_desx_cbc: i32 = 80;
1442pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1443pub const NID_id_ce: i32 = 81;
1444pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1445pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1446pub const NID_subject_key_identifier: i32 = 82;
1447pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1448pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1449pub const NID_key_usage: i32 = 83;
1450pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1451pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1452pub const NID_private_key_usage_period: i32 = 84;
1453pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1454pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1455pub const NID_subject_alt_name: i32 = 85;
1456pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1457pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1458pub const NID_issuer_alt_name: i32 = 86;
1459pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1460pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1461pub const NID_basic_constraints: i32 = 87;
1462pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1463pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1464pub const NID_crl_number: i32 = 88;
1465pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1466pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1467pub const NID_certificate_policies: i32 = 89;
1468pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1469pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1470pub const NID_authority_key_identifier: i32 = 90;
1471pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1472pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1473pub const NID_bf_cbc: i32 = 91;
1474pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1475pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1476pub const NID_bf_ecb: i32 = 92;
1477pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1478pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1479pub const NID_bf_cfb64: i32 = 93;
1480pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1481pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1482pub const NID_bf_ofb64: i32 = 94;
1483pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1484pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1485pub const NID_mdc2: i32 = 95;
1486pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1487pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1488pub const NID_mdc2WithRSA: i32 = 96;
1489pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1490pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1491pub const NID_rc4_40: i32 = 97;
1492pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1493pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1494pub const NID_rc2_40_cbc: i32 = 98;
1495pub const SN_givenName: &[u8; 3] = b"GN\0";
1496pub const LN_givenName: &[u8; 10] = b"givenName\0";
1497pub const NID_givenName: i32 = 99;
1498pub const SN_surname: &[u8; 3] = b"SN\0";
1499pub const LN_surname: &[u8; 8] = b"surname\0";
1500pub const NID_surname: i32 = 100;
1501pub const SN_initials: &[u8; 9] = b"initials\0";
1502pub const LN_initials: &[u8; 9] = b"initials\0";
1503pub const NID_initials: i32 = 101;
1504pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1505pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1506pub const NID_crl_distribution_points: i32 = 103;
1507pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1508pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1509pub const NID_md5WithRSA: i32 = 104;
1510pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1511pub const NID_serialNumber: i32 = 105;
1512pub const SN_title: &[u8; 6] = b"title\0";
1513pub const LN_title: &[u8; 6] = b"title\0";
1514pub const NID_title: i32 = 106;
1515pub const LN_description: &[u8; 12] = b"description\0";
1516pub const NID_description: i32 = 107;
1517pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1518pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1519pub const NID_cast5_cbc: i32 = 108;
1520pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1521pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1522pub const NID_cast5_ecb: i32 = 109;
1523pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1524pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1525pub const NID_cast5_cfb64: i32 = 110;
1526pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1527pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1528pub const NID_cast5_ofb64: i32 = 111;
1529pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1530pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1531pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1532pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1533pub const NID_dsaWithSHA1: i32 = 113;
1534pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1535pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1536pub const NID_md5_sha1: i32 = 114;
1537pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1538pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1539pub const NID_sha1WithRSA: i32 = 115;
1540pub const SN_dsa: &[u8; 4] = b"DSA\0";
1541pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1542pub const NID_dsa: i32 = 116;
1543pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1544pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1545pub const NID_ripemd160: i32 = 117;
1546pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1547pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1548pub const NID_ripemd160WithRSA: i32 = 119;
1549pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1550pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1551pub const NID_rc5_cbc: i32 = 120;
1552pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1553pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1554pub const NID_rc5_ecb: i32 = 121;
1555pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1556pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1557pub const NID_rc5_cfb64: i32 = 122;
1558pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1559pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1560pub const NID_rc5_ofb64: i32 = 123;
1561pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1562pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1563pub const NID_zlib_compression: i32 = 125;
1564pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1565pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1566pub const NID_ext_key_usage: i32 = 126;
1567pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1568pub const NID_id_pkix: i32 = 127;
1569pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1570pub const NID_id_kp: i32 = 128;
1571pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1572pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1573pub const NID_server_auth: i32 = 129;
1574pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1575pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1576pub const NID_client_auth: i32 = 130;
1577pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1578pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1579pub const NID_code_sign: i32 = 131;
1580pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1581pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1582pub const NID_email_protect: i32 = 132;
1583pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1584pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1585pub const NID_time_stamp: i32 = 133;
1586pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1587pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1588pub const NID_ms_code_ind: i32 = 134;
1589pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1590pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1591pub const NID_ms_code_com: i32 = 135;
1592pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1593pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1594pub const NID_ms_ctl_sign: i32 = 136;
1595pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1596pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1597pub const NID_ms_sgc: i32 = 137;
1598pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1599pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1600pub const NID_ms_efs: i32 = 138;
1601pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1602pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1603pub const NID_ns_sgc: i32 = 139;
1604pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1605pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1606pub const NID_delta_crl: i32 = 140;
1607pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1608pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1609pub const NID_crl_reason: i32 = 141;
1610pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1611pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1612pub const NID_invalidity_date: i32 = 142;
1613pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1614pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1615pub const NID_sxnet: i32 = 143;
1616pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1617pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1618pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1619pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1620pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1621pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1622pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1623pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1624pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1625pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1626pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1627pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1628pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1629pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1630pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1631pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1632pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1633pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1634pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1635pub const NID_keyBag: i32 = 150;
1636pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1637pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1638pub const LN_certBag: &[u8; 8] = b"certBag\0";
1639pub const NID_certBag: i32 = 152;
1640pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1641pub const NID_crlBag: i32 = 153;
1642pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1643pub const NID_secretBag: i32 = 154;
1644pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1645pub const NID_safeContentsBag: i32 = 155;
1646pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1647pub const NID_friendlyName: i32 = 156;
1648pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1649pub const NID_localKeyID: i32 = 157;
1650pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1651pub const NID_x509Certificate: i32 = 158;
1652pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1653pub const NID_sdsiCertificate: i32 = 159;
1654pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1655pub const NID_x509Crl: i32 = 160;
1656pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1657pub const NID_pbes2: i32 = 161;
1658pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1659pub const NID_pbmac1: i32 = 162;
1660pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1661pub const NID_hmacWithSHA1: i32 = 163;
1662pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1663pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1664pub const NID_id_qt_cps: i32 = 164;
1665pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1666pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1667pub const NID_id_qt_unotice: i32 = 165;
1668pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1669pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1670pub const NID_rc2_64_cbc: i32 = 166;
1671pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1672pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1673pub const NID_SMIMECapabilities: i32 = 167;
1674pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1675pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1676pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1677pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1678pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1679pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1680pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1681pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1682pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1683pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1684pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1685pub const NID_ms_ext_req: i32 = 171;
1686pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1687pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1688pub const NID_ext_req: i32 = 172;
1689pub const SN_name: &[u8; 5] = b"name\0";
1690pub const LN_name: &[u8; 5] = b"name\0";
1691pub const NID_name: i32 = 173;
1692pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1693pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1694pub const NID_dnQualifier: i32 = 174;
1695pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1696pub const NID_id_pe: i32 = 175;
1697pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1698pub const NID_id_ad: i32 = 176;
1699pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1700pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1701pub const NID_info_access: i32 = 177;
1702pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1703pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1704pub const NID_ad_OCSP: i32 = 178;
1705pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1706pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1707pub const NID_ad_ca_issuers: i32 = 179;
1708pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1709pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1710pub const NID_OCSP_sign: i32 = 180;
1711pub const SN_iso: &[u8; 4] = b"ISO\0";
1712pub const LN_iso: &[u8; 4] = b"iso\0";
1713pub const NID_iso: i32 = 181;
1714pub const OBJ_iso: i32 = 1;
1715pub const SN_member_body: &[u8; 12] = b"member-body\0";
1716pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1717pub const NID_member_body: i32 = 182;
1718pub const OBJ_ENC_member_body: i32 = 42;
1719pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1720pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1721pub const NID_ISO_US: i32 = 183;
1722pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1723pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1724pub const NID_X9_57: i32 = 184;
1725pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1726pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1727pub const NID_X9cm: i32 = 185;
1728pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1729pub const NID_pkcs1: i32 = 186;
1730pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1731pub const NID_pkcs5: i32 = 187;
1732pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1733pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1734pub const NID_SMIME: i32 = 188;
1735pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1736pub const NID_id_smime_mod: i32 = 189;
1737pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1738pub const NID_id_smime_ct: i32 = 190;
1739pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1740pub const NID_id_smime_aa: i32 = 191;
1741pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1742pub const NID_id_smime_alg: i32 = 192;
1743pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1744pub const NID_id_smime_cd: i32 = 193;
1745pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1746pub const NID_id_smime_spq: i32 = 194;
1747pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1748pub const NID_id_smime_cti: i32 = 195;
1749pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1750pub const NID_id_smime_mod_cms: i32 = 196;
1751pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1752pub const NID_id_smime_mod_ess: i32 = 197;
1753pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1754pub const NID_id_smime_mod_oid: i32 = 198;
1755pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1756pub const NID_id_smime_mod_msg_v3: i32 = 199;
1757pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1758pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1759pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1760pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1761pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1762pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1763pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1764pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1765pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1766pub const NID_id_smime_ct_receipt: i32 = 204;
1767pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1768pub const NID_id_smime_ct_authData: i32 = 205;
1769pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1770pub const NID_id_smime_ct_publishCert: i32 = 206;
1771pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1772pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1773pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1774pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1775pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1776pub const NID_id_smime_ct_contentInfo: i32 = 209;
1777pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1778pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1779pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1780pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1781pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1782pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1783pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1784pub const NID_id_smime_aa_securityLabel: i32 = 213;
1785pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1786pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1787pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1788pub const NID_id_smime_aa_contentHint: i32 = 215;
1789pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1790pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1791pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1792pub const NID_id_smime_aa_encapContentType: i32 = 217;
1793pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1794pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1795pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1796pub const NID_id_smime_aa_macValue: i32 = 219;
1797pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1798pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1799pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1800pub const NID_id_smime_aa_contentReference: i32 = 221;
1801pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1802pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1803pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1804pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1805pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1806pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1807pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1808pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1809pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1810pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1811pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1812pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1813pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1814pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1815pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1816pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1817pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1818pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1819pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1820pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1821pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1822pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1823pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1824pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1825pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1826pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1827pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1828pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1829pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1830pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1831pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1832pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1833pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1834pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1835pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1836pub const NID_id_smime_aa_signatureType: i32 = 239;
1837pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1838pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1839pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1840pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1841pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1842pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1843pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1844pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1845pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1846pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1847pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1848pub const NID_id_smime_alg_ESDH: i32 = 245;
1849pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1850pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1851pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1852pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1853pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1854pub const NID_id_smime_cd_ldap: i32 = 248;
1855pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1856pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1857pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1858pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1859pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1860pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1861pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1862pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1863pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1864pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1865pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1866pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1867pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1868pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1869pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1870pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1871pub const SN_md4: &[u8; 4] = b"MD4\0";
1872pub const LN_md4: &[u8; 4] = b"md4\0";
1873pub const NID_md4: i32 = 257;
1874pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1875pub const NID_id_pkix_mod: i32 = 258;
1876pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1877pub const NID_id_qt: i32 = 259;
1878pub const SN_id_it: &[u8; 6] = b"id-it\0";
1879pub const NID_id_it: i32 = 260;
1880pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1881pub const NID_id_pkip: i32 = 261;
1882pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1883pub const NID_id_alg: i32 = 262;
1884pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1885pub const NID_id_cmc: i32 = 263;
1886pub const SN_id_on: &[u8; 6] = b"id-on\0";
1887pub const NID_id_on: i32 = 264;
1888pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1889pub const NID_id_pda: i32 = 265;
1890pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1891pub const NID_id_aca: i32 = 266;
1892pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1893pub const NID_id_qcs: i32 = 267;
1894pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1895pub const NID_id_cct: i32 = 268;
1896pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1897pub const NID_id_pkix1_explicit_88: i32 = 269;
1898pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1899pub const NID_id_pkix1_implicit_88: i32 = 270;
1900pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1901pub const NID_id_pkix1_explicit_93: i32 = 271;
1902pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1903pub const NID_id_pkix1_implicit_93: i32 = 272;
1904pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1905pub const NID_id_mod_crmf: i32 = 273;
1906pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1907pub const NID_id_mod_cmc: i32 = 274;
1908pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1909pub const NID_id_mod_kea_profile_88: i32 = 275;
1910pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1911pub const NID_id_mod_kea_profile_93: i32 = 276;
1912pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1913pub const NID_id_mod_cmp: i32 = 277;
1914pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1915pub const NID_id_mod_qualified_cert_88: i32 = 278;
1916pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1917pub const NID_id_mod_qualified_cert_93: i32 = 279;
1918pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1919pub const NID_id_mod_attribute_cert: i32 = 280;
1920pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1921pub const NID_id_mod_timestamp_protocol: i32 = 281;
1922pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1923pub const NID_id_mod_ocsp: i32 = 282;
1924pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1925pub const NID_id_mod_dvcs: i32 = 283;
1926pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1927pub const NID_id_mod_cmp2000: i32 = 284;
1928pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1929pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1930pub const NID_biometricInfo: i32 = 285;
1931pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1932pub const NID_qcStatements: i32 = 286;
1933pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1934pub const NID_ac_auditEntity: i32 = 287;
1935pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1936pub const NID_ac_targeting: i32 = 288;
1937pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1938pub const NID_aaControls: i32 = 289;
1939pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1940pub const NID_sbgp_ipAddrBlock: i32 = 290;
1941pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1942pub const NID_sbgp_autonomousSysNum: i32 = 291;
1943pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1944pub const NID_sbgp_routerIdentifier: i32 = 292;
1945pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1946pub const NID_textNotice: i32 = 293;
1947pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1948pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1949pub const NID_ipsecEndSystem: i32 = 294;
1950pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1951pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1952pub const NID_ipsecTunnel: i32 = 295;
1953pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1954pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1955pub const NID_ipsecUser: i32 = 296;
1956pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1957pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1958pub const NID_dvcs: i32 = 297;
1959pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1960pub const NID_id_it_caProtEncCert: i32 = 298;
1961pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1962pub const NID_id_it_signKeyPairTypes: i32 = 299;
1963pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1964pub const NID_id_it_encKeyPairTypes: i32 = 300;
1965pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1966pub const NID_id_it_preferredSymmAlg: i32 = 301;
1967pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1968pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1969pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1970pub const NID_id_it_currentCRL: i32 = 303;
1971pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1972pub const NID_id_it_unsupportedOIDs: i32 = 304;
1973pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1974pub const NID_id_it_subscriptionRequest: i32 = 305;
1975pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1976pub const NID_id_it_subscriptionResponse: i32 = 306;
1977pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1978pub const NID_id_it_keyPairParamReq: i32 = 307;
1979pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1980pub const NID_id_it_keyPairParamRep: i32 = 308;
1981pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1982pub const NID_id_it_revPassphrase: i32 = 309;
1983pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1984pub const NID_id_it_implicitConfirm: i32 = 310;
1985pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1986pub const NID_id_it_confirmWaitTime: i32 = 311;
1987pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1988pub const NID_id_it_origPKIMessage: i32 = 312;
1989pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1990pub const NID_id_regCtrl: i32 = 313;
1991pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1992pub const NID_id_regInfo: i32 = 314;
1993pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1994pub const NID_id_regCtrl_regToken: i32 = 315;
1995pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1996pub const NID_id_regCtrl_authenticator: i32 = 316;
1997pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1998pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1999pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
2000pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
2001pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
2002pub const NID_id_regCtrl_oldCertID: i32 = 319;
2003pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
2004pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
2005pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
2006pub const NID_id_regInfo_utf8Pairs: i32 = 321;
2007pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
2008pub const NID_id_regInfo_certReq: i32 = 322;
2009pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
2010pub const NID_id_alg_des40: i32 = 323;
2011pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
2012pub const NID_id_alg_noSignature: i32 = 324;
2013pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
2014pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
2015pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
2016pub const NID_id_alg_dh_pop: i32 = 326;
2017pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
2018pub const NID_id_cmc_statusInfo: i32 = 327;
2019pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
2020pub const NID_id_cmc_identification: i32 = 328;
2021pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
2022pub const NID_id_cmc_identityProof: i32 = 329;
2023pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
2024pub const NID_id_cmc_dataReturn: i32 = 330;
2025pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
2026pub const NID_id_cmc_transactionId: i32 = 331;
2027pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
2028pub const NID_id_cmc_senderNonce: i32 = 332;
2029pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
2030pub const NID_id_cmc_recipientNonce: i32 = 333;
2031pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
2032pub const NID_id_cmc_addExtensions: i32 = 334;
2033pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
2034pub const NID_id_cmc_encryptedPOP: i32 = 335;
2035pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
2036pub const NID_id_cmc_decryptedPOP: i32 = 336;
2037pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
2038pub const NID_id_cmc_lraPOPWitness: i32 = 337;
2039pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
2040pub const NID_id_cmc_getCert: i32 = 338;
2041pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
2042pub const NID_id_cmc_getCRL: i32 = 339;
2043pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
2044pub const NID_id_cmc_revokeRequest: i32 = 340;
2045pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
2046pub const NID_id_cmc_regInfo: i32 = 341;
2047pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
2048pub const NID_id_cmc_responseInfo: i32 = 342;
2049pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
2050pub const NID_id_cmc_queryPending: i32 = 343;
2051pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
2052pub const NID_id_cmc_popLinkRandom: i32 = 344;
2053pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
2054pub const NID_id_cmc_popLinkWitness: i32 = 345;
2055pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
2056pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
2057pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
2058pub const NID_id_on_personalData: i32 = 347;
2059pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
2060pub const NID_id_pda_dateOfBirth: i32 = 348;
2061pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
2062pub const NID_id_pda_placeOfBirth: i32 = 349;
2063pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
2064pub const NID_id_pda_gender: i32 = 351;
2065pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
2066pub const NID_id_pda_countryOfCitizenship: i32 = 352;
2067pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
2068pub const NID_id_pda_countryOfResidence: i32 = 353;
2069pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
2070pub const NID_id_aca_authenticationInfo: i32 = 354;
2071pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
2072pub const NID_id_aca_accessIdentity: i32 = 355;
2073pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
2074pub const NID_id_aca_chargingIdentity: i32 = 356;
2075pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
2076pub const NID_id_aca_group: i32 = 357;
2077pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
2078pub const NID_id_aca_role: i32 = 358;
2079pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
2080pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
2081pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
2082pub const NID_id_cct_crs: i32 = 360;
2083pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
2084pub const NID_id_cct_PKIData: i32 = 361;
2085pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
2086pub const NID_id_cct_PKIResponse: i32 = 362;
2087pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
2088pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
2089pub const NID_ad_timeStamping: i32 = 363;
2090pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
2091pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
2092pub const NID_ad_dvcs: i32 = 364;
2093pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
2094pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
2095pub const NID_id_pkix_OCSP_basic: i32 = 365;
2096pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
2097pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
2098pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
2099pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
2100pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
2101pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
2102pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
2103pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
2104pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
2105pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
2106pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
2107pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
2108pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
2109pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
2110pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
2111pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
2112pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
2113pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
2114pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
2115pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
2116pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
2117pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
2118pub const NID_id_pkix_OCSP_valid: i32 = 373;
2119pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
2120pub const NID_id_pkix_OCSP_path: i32 = 374;
2121pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
2122pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
2123pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
2124pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
2125pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
2126pub const NID_algorithm: i32 = 376;
2127pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
2128pub const NID_rsaSignature: i32 = 377;
2129pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
2130pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
2131pub const NID_X500algorithms: i32 = 378;
2132pub const SN_org: &[u8; 4] = b"ORG\0";
2133pub const LN_org: &[u8; 4] = b"org\0";
2134pub const NID_org: i32 = 379;
2135pub const OBJ_ENC_org: i32 = 43;
2136pub const SN_dod: &[u8; 4] = b"DOD\0";
2137pub const LN_dod: &[u8; 4] = b"dod\0";
2138pub const NID_dod: i32 = 380;
2139pub const SN_iana: &[u8; 5] = b"IANA\0";
2140pub const LN_iana: &[u8; 5] = b"iana\0";
2141pub const NID_iana: i32 = 381;
2142pub const SN_Directory: &[u8; 10] = b"directory\0";
2143pub const LN_Directory: &[u8; 10] = b"Directory\0";
2144pub const NID_Directory: i32 = 382;
2145pub const SN_Management: &[u8; 5] = b"mgmt\0";
2146pub const LN_Management: &[u8; 11] = b"Management\0";
2147pub const NID_Management: i32 = 383;
2148pub const SN_Experimental: &[u8; 13] = b"experimental\0";
2149pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
2150pub const NID_Experimental: i32 = 384;
2151pub const SN_Private: &[u8; 8] = b"private\0";
2152pub const LN_Private: &[u8; 8] = b"Private\0";
2153pub const NID_Private: i32 = 385;
2154pub const SN_Security: &[u8; 9] = b"security\0";
2155pub const LN_Security: &[u8; 9] = b"Security\0";
2156pub const NID_Security: i32 = 386;
2157pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
2158pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
2159pub const NID_SNMPv2: i32 = 387;
2160pub const LN_Mail: &[u8; 5] = b"Mail\0";
2161pub const NID_Mail: i32 = 388;
2162pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
2163pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
2164pub const NID_Enterprises: i32 = 389;
2165pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
2166pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
2167pub const NID_dcObject: i32 = 390;
2168pub const SN_domainComponent: &[u8; 3] = b"DC\0";
2169pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
2170pub const NID_domainComponent: i32 = 391;
2171pub const SN_Domain: &[u8; 7] = b"domain\0";
2172pub const LN_Domain: &[u8; 7] = b"Domain\0";
2173pub const NID_Domain: i32 = 392;
2174pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
2175pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
2176pub const NID_selected_attribute_types: i32 = 394;
2177pub const SN_clearance: &[u8; 10] = b"clearance\0";
2178pub const NID_clearance: i32 = 395;
2179pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
2180pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
2181pub const NID_md4WithRSAEncryption: i32 = 396;
2182pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
2183pub const NID_ac_proxying: i32 = 397;
2184pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
2185pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
2186pub const NID_sinfo_access: i32 = 398;
2187pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
2188pub const NID_id_aca_encAttrs: i32 = 399;
2189pub const SN_role: &[u8; 5] = b"role\0";
2190pub const LN_role: &[u8; 5] = b"role\0";
2191pub const NID_role: i32 = 400;
2192pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
2193pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
2194pub const NID_policy_constraints: i32 = 401;
2195pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
2196pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
2197pub const NID_target_information: i32 = 402;
2198pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
2199pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
2200pub const NID_no_rev_avail: i32 = 403;
2201pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
2202pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
2203pub const NID_ansi_X9_62: i32 = 405;
2204pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
2205pub const NID_X9_62_prime_field: i32 = 406;
2206pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
2207pub const NID_X9_62_characteristic_two_field: i32 = 407;
2208pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
2209pub const NID_X9_62_id_ecPublicKey: i32 = 408;
2210pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
2211pub const NID_X9_62_prime192v1: i32 = 409;
2212pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
2213pub const NID_X9_62_prime192v2: i32 = 410;
2214pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
2215pub const NID_X9_62_prime192v3: i32 = 411;
2216pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
2217pub const NID_X9_62_prime239v1: i32 = 412;
2218pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
2219pub const NID_X9_62_prime239v2: i32 = 413;
2220pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
2221pub const NID_X9_62_prime239v3: i32 = 414;
2222pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2223pub const NID_X9_62_prime256v1: i32 = 415;
2224pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2225pub const NID_ecdsa_with_SHA1: i32 = 416;
2226pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2227pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2228pub const NID_ms_csp_name: i32 = 417;
2229pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2230pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2231pub const NID_aes_128_ecb: i32 = 418;
2232pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2233pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2234pub const NID_aes_128_cbc: i32 = 419;
2235pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2236pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2237pub const NID_aes_128_ofb128: i32 = 420;
2238pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2239pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2240pub const NID_aes_128_cfb128: i32 = 421;
2241pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2242pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2243pub const NID_aes_192_ecb: i32 = 422;
2244pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2245pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2246pub const NID_aes_192_cbc: i32 = 423;
2247pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2248pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2249pub const NID_aes_192_ofb128: i32 = 424;
2250pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2251pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2252pub const NID_aes_192_cfb128: i32 = 425;
2253pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2254pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2255pub const NID_aes_256_ecb: i32 = 426;
2256pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2257pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2258pub const NID_aes_256_cbc: i32 = 427;
2259pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2260pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2261pub const NID_aes_256_ofb128: i32 = 428;
2262pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2263pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2264pub const NID_aes_256_cfb128: i32 = 429;
2265pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2266pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2267pub const NID_hold_instruction_code: i32 = 430;
2268pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2269pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2270pub const NID_hold_instruction_none: i32 = 431;
2271pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2272pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2273pub const NID_hold_instruction_call_issuer: i32 = 432;
2274pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2275pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2276pub const NID_hold_instruction_reject: i32 = 433;
2277pub const SN_data: &[u8; 5] = b"data\0";
2278pub const NID_data: i32 = 434;
2279pub const OBJ_ENC_data: i32 = 9;
2280pub const SN_pss: &[u8; 4] = b"pss\0";
2281pub const NID_pss: i32 = 435;
2282pub const SN_ucl: &[u8; 4] = b"ucl\0";
2283pub const NID_ucl: i32 = 436;
2284pub const SN_pilot: &[u8; 6] = b"pilot\0";
2285pub const NID_pilot: i32 = 437;
2286pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2287pub const NID_pilotAttributeType: i32 = 438;
2288pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2289pub const NID_pilotAttributeSyntax: i32 = 439;
2290pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2291pub const NID_pilotObjectClass: i32 = 440;
2292pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2293pub const NID_pilotGroups: i32 = 441;
2294pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2295pub const NID_iA5StringSyntax: i32 = 442;
2296pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2297pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2298pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2299pub const NID_pilotObject: i32 = 444;
2300pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2301pub const NID_pilotPerson: i32 = 445;
2302pub const SN_account: &[u8; 8] = b"account\0";
2303pub const NID_account: i32 = 446;
2304pub const SN_document: &[u8; 9] = b"document\0";
2305pub const NID_document: i32 = 447;
2306pub const SN_room: &[u8; 5] = b"room\0";
2307pub const NID_room: i32 = 448;
2308pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2309pub const NID_documentSeries: i32 = 449;
2310pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2311pub const NID_rFC822localPart: i32 = 450;
2312pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2313pub const NID_dNSDomain: i32 = 451;
2314pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2315pub const NID_domainRelatedObject: i32 = 452;
2316pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2317pub const NID_friendlyCountry: i32 = 453;
2318pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2319pub const NID_simpleSecurityObject: i32 = 454;
2320pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2321pub const NID_pilotOrganization: i32 = 455;
2322pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2323pub const NID_pilotDSA: i32 = 456;
2324pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2325pub const NID_qualityLabelledData: i32 = 457;
2326pub const SN_userId: &[u8; 4] = b"UID\0";
2327pub const LN_userId: &[u8; 7] = b"userId\0";
2328pub const NID_userId: i32 = 458;
2329pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2330pub const NID_textEncodedORAddress: i32 = 459;
2331pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2332pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2333pub const NID_rfc822Mailbox: i32 = 460;
2334pub const SN_info: &[u8; 5] = b"info\0";
2335pub const NID_info: i32 = 461;
2336pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2337pub const NID_favouriteDrink: i32 = 462;
2338pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2339pub const NID_roomNumber: i32 = 463;
2340pub const SN_photo: &[u8; 6] = b"photo\0";
2341pub const NID_photo: i32 = 464;
2342pub const LN_userClass: &[u8; 10] = b"userClass\0";
2343pub const NID_userClass: i32 = 465;
2344pub const SN_host: &[u8; 5] = b"host\0";
2345pub const NID_host: i32 = 466;
2346pub const SN_manager: &[u8; 8] = b"manager\0";
2347pub const NID_manager: i32 = 467;
2348pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2349pub const NID_documentIdentifier: i32 = 468;
2350pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2351pub const NID_documentTitle: i32 = 469;
2352pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2353pub const NID_documentVersion: i32 = 470;
2354pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2355pub const NID_documentAuthor: i32 = 471;
2356pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2357pub const NID_documentLocation: i32 = 472;
2358pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2359pub const NID_homeTelephoneNumber: i32 = 473;
2360pub const SN_secretary: &[u8; 10] = b"secretary\0";
2361pub const NID_secretary: i32 = 474;
2362pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2363pub const NID_otherMailbox: i32 = 475;
2364pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2365pub const NID_lastModifiedTime: i32 = 476;
2366pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2367pub const NID_lastModifiedBy: i32 = 477;
2368pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2369pub const NID_aRecord: i32 = 478;
2370pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2371pub const NID_pilotAttributeType27: i32 = 479;
2372pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2373pub const NID_mXRecord: i32 = 480;
2374pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2375pub const NID_nSRecord: i32 = 481;
2376pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2377pub const NID_sOARecord: i32 = 482;
2378pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2379pub const NID_cNAMERecord: i32 = 483;
2380pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2381pub const NID_associatedDomain: i32 = 484;
2382pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2383pub const NID_associatedName: i32 = 485;
2384pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2385pub const NID_homePostalAddress: i32 = 486;
2386pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2387pub const NID_personalTitle: i32 = 487;
2388pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2389pub const NID_mobileTelephoneNumber: i32 = 488;
2390pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2391pub const NID_pagerTelephoneNumber: i32 = 489;
2392pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2393pub const NID_friendlyCountryName: i32 = 490;
2394pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2395pub const NID_organizationalStatus: i32 = 491;
2396pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2397pub const NID_janetMailbox: i32 = 492;
2398pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2399pub const NID_mailPreferenceOption: i32 = 493;
2400pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2401pub const NID_buildingName: i32 = 494;
2402pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2403pub const NID_dSAQuality: i32 = 495;
2404pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2405pub const NID_singleLevelQuality: i32 = 496;
2406pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2407pub const NID_subtreeMinimumQuality: i32 = 497;
2408pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2409pub const NID_subtreeMaximumQuality: i32 = 498;
2410pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2411pub const NID_personalSignature: i32 = 499;
2412pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2413pub const NID_dITRedirect: i32 = 500;
2414pub const SN_audio: &[u8; 6] = b"audio\0";
2415pub const NID_audio: i32 = 501;
2416pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2417pub const NID_documentPublisher: i32 = 502;
2418pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2419pub const NID_x500UniqueIdentifier: i32 = 503;
2420pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2421pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2422pub const NID_mime_mhs: i32 = 504;
2423pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2424pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2425pub const NID_mime_mhs_headings: i32 = 505;
2426pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2427pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2428pub const NID_mime_mhs_bodies: i32 = 506;
2429pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2430pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2431pub const NID_id_hex_partial_message: i32 = 507;
2432pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2433pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2434pub const NID_id_hex_multipart_message: i32 = 508;
2435pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2436pub const NID_generationQualifier: i32 = 509;
2437pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2438pub const NID_pseudonym: i32 = 510;
2439pub const SN_id_set: &[u8; 7] = b"id-set\0";
2440pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2441pub const NID_id_set: i32 = 512;
2442pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2443pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2444pub const NID_set_ctype: i32 = 513;
2445pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2446pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2447pub const NID_set_msgExt: i32 = 514;
2448pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2449pub const NID_set_attr: i32 = 515;
2450pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2451pub const NID_set_policy: i32 = 516;
2452pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2453pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2454pub const NID_set_certExt: i32 = 517;
2455pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2456pub const NID_set_brand: i32 = 518;
2457pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2458pub const NID_setct_PANData: i32 = 519;
2459pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2460pub const NID_setct_PANToken: i32 = 520;
2461pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2462pub const NID_setct_PANOnly: i32 = 521;
2463pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2464pub const NID_setct_OIData: i32 = 522;
2465pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2466pub const NID_setct_PI: i32 = 523;
2467pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2468pub const NID_setct_PIData: i32 = 524;
2469pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2470pub const NID_setct_PIDataUnsigned: i32 = 525;
2471pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2472pub const NID_setct_HODInput: i32 = 526;
2473pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2474pub const NID_setct_AuthResBaggage: i32 = 527;
2475pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2476pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2477pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2478pub const NID_setct_AuthRevResBaggage: i32 = 529;
2479pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2480pub const NID_setct_CapTokenSeq: i32 = 530;
2481pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2482pub const NID_setct_PInitResData: i32 = 531;
2483pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2484pub const NID_setct_PI_TBS: i32 = 532;
2485pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2486pub const NID_setct_PResData: i32 = 533;
2487pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2488pub const NID_setct_AuthReqTBS: i32 = 534;
2489pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2490pub const NID_setct_AuthResTBS: i32 = 535;
2491pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2492pub const NID_setct_AuthResTBSX: i32 = 536;
2493pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2494pub const NID_setct_AuthTokenTBS: i32 = 537;
2495pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2496pub const NID_setct_CapTokenData: i32 = 538;
2497pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2498pub const NID_setct_CapTokenTBS: i32 = 539;
2499pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2500pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2501pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2502pub const NID_setct_AuthRevReqTBS: i32 = 541;
2503pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2504pub const NID_setct_AuthRevResData: i32 = 542;
2505pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2506pub const NID_setct_AuthRevResTBS: i32 = 543;
2507pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2508pub const NID_setct_CapReqTBS: i32 = 544;
2509pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2510pub const NID_setct_CapReqTBSX: i32 = 545;
2511pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2512pub const NID_setct_CapResData: i32 = 546;
2513pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2514pub const NID_setct_CapRevReqTBS: i32 = 547;
2515pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2516pub const NID_setct_CapRevReqTBSX: i32 = 548;
2517pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2518pub const NID_setct_CapRevResData: i32 = 549;
2519pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2520pub const NID_setct_CredReqTBS: i32 = 550;
2521pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2522pub const NID_setct_CredReqTBSX: i32 = 551;
2523pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2524pub const NID_setct_CredResData: i32 = 552;
2525pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2526pub const NID_setct_CredRevReqTBS: i32 = 553;
2527pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2528pub const NID_setct_CredRevReqTBSX: i32 = 554;
2529pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2530pub const NID_setct_CredRevResData: i32 = 555;
2531pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2532pub const NID_setct_PCertReqData: i32 = 556;
2533pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2534pub const NID_setct_PCertResTBS: i32 = 557;
2535pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2536pub const NID_setct_BatchAdminReqData: i32 = 558;
2537pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2538pub const NID_setct_BatchAdminResData: i32 = 559;
2539pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2540pub const NID_setct_CardCInitResTBS: i32 = 560;
2541pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2542pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2543pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2544pub const NID_setct_RegFormResTBS: i32 = 562;
2545pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2546pub const NID_setct_CertReqData: i32 = 563;
2547pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2548pub const NID_setct_CertReqTBS: i32 = 564;
2549pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2550pub const NID_setct_CertResData: i32 = 565;
2551pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2552pub const NID_setct_CertInqReqTBS: i32 = 566;
2553pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2554pub const NID_setct_ErrorTBS: i32 = 567;
2555pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2556pub const NID_setct_PIDualSignedTBE: i32 = 568;
2557pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2558pub const NID_setct_PIUnsignedTBE: i32 = 569;
2559pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2560pub const NID_setct_AuthReqTBE: i32 = 570;
2561pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2562pub const NID_setct_AuthResTBE: i32 = 571;
2563pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2564pub const NID_setct_AuthResTBEX: i32 = 572;
2565pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2566pub const NID_setct_AuthTokenTBE: i32 = 573;
2567pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2568pub const NID_setct_CapTokenTBE: i32 = 574;
2569pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2570pub const NID_setct_CapTokenTBEX: i32 = 575;
2571pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2572pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2573pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2574pub const NID_setct_AuthRevReqTBE: i32 = 577;
2575pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2576pub const NID_setct_AuthRevResTBE: i32 = 578;
2577pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2578pub const NID_setct_AuthRevResTBEB: i32 = 579;
2579pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2580pub const NID_setct_CapReqTBE: i32 = 580;
2581pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2582pub const NID_setct_CapReqTBEX: i32 = 581;
2583pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2584pub const NID_setct_CapResTBE: i32 = 582;
2585pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2586pub const NID_setct_CapRevReqTBE: i32 = 583;
2587pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2588pub const NID_setct_CapRevReqTBEX: i32 = 584;
2589pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2590pub const NID_setct_CapRevResTBE: i32 = 585;
2591pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2592pub const NID_setct_CredReqTBE: i32 = 586;
2593pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2594pub const NID_setct_CredReqTBEX: i32 = 587;
2595pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2596pub const NID_setct_CredResTBE: i32 = 588;
2597pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2598pub const NID_setct_CredRevReqTBE: i32 = 589;
2599pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2600pub const NID_setct_CredRevReqTBEX: i32 = 590;
2601pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2602pub const NID_setct_CredRevResTBE: i32 = 591;
2603pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2604pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2605pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2606pub const NID_setct_BatchAdminResTBE: i32 = 593;
2607pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2608pub const NID_setct_RegFormReqTBE: i32 = 594;
2609pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2610pub const NID_setct_CertReqTBE: i32 = 595;
2611pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2612pub const NID_setct_CertReqTBEX: i32 = 596;
2613pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2614pub const NID_setct_CertResTBE: i32 = 597;
2615pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2616pub const NID_setct_CRLNotificationTBS: i32 = 598;
2617pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2618pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2619pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2620pub const NID_setct_BCIDistributionTBS: i32 = 600;
2621pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2622pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2623pub const NID_setext_genCrypt: i32 = 601;
2624pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2625pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2626pub const NID_setext_miAuth: i32 = 602;
2627pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2628pub const NID_setext_pinSecure: i32 = 603;
2629pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2630pub const NID_setext_pinAny: i32 = 604;
2631pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2632pub const NID_setext_track2: i32 = 605;
2633pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2634pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2635pub const NID_setext_cv: i32 = 606;
2636pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2637pub const NID_set_policy_root: i32 = 607;
2638pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2639pub const NID_setCext_hashedRoot: i32 = 608;
2640pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2641pub const NID_setCext_certType: i32 = 609;
2642pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2643pub const NID_setCext_merchData: i32 = 610;
2644pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2645pub const NID_setCext_cCertRequired: i32 = 611;
2646pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2647pub const NID_setCext_tunneling: i32 = 612;
2648pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2649pub const NID_setCext_setExt: i32 = 613;
2650pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2651pub const NID_setCext_setQualf: i32 = 614;
2652pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2653pub const NID_setCext_PGWYcapabilities: i32 = 615;
2654pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2655pub const NID_setCext_TokenIdentifier: i32 = 616;
2656pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2657pub const NID_setCext_Track2Data: i32 = 617;
2658pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2659pub const NID_setCext_TokenType: i32 = 618;
2660pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2661pub const NID_setCext_IssuerCapabilities: i32 = 619;
2662pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2663pub const NID_setAttr_Cert: i32 = 620;
2664pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2665pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2666pub const NID_setAttr_PGWYcap: i32 = 621;
2667pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2668pub const NID_setAttr_TokenType: i32 = 622;
2669pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2670pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2671pub const NID_setAttr_IssCap: i32 = 623;
2672pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2673pub const NID_set_rootKeyThumb: i32 = 624;
2674pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2675pub const NID_set_addPolicy: i32 = 625;
2676pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2677pub const NID_setAttr_Token_EMV: i32 = 626;
2678pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2679pub const NID_setAttr_Token_B0Prime: i32 = 627;
2680pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2681pub const NID_setAttr_IssCap_CVM: i32 = 628;
2682pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2683pub const NID_setAttr_IssCap_T2: i32 = 629;
2684pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2685pub const NID_setAttr_IssCap_Sig: i32 = 630;
2686pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2687pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2688pub const NID_setAttr_GenCryptgrm: i32 = 631;
2689pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2690pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2691pub const NID_setAttr_T2Enc: i32 = 632;
2692pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2693pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2694pub const NID_setAttr_T2cleartxt: i32 = 633;
2695pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2696pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2697pub const NID_setAttr_TokICCsig: i32 = 634;
2698pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2699pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2700pub const NID_setAttr_SecDevSig: i32 = 635;
2701pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2702pub const NID_set_brand_IATA_ATA: i32 = 636;
2703pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2704pub const NID_set_brand_Diners: i32 = 637;
2705pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2706pub const NID_set_brand_AmericanExpress: i32 = 638;
2707pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2708pub const NID_set_brand_JCB: i32 = 639;
2709pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2710pub const NID_set_brand_Visa: i32 = 640;
2711pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2712pub const NID_set_brand_MasterCard: i32 = 641;
2713pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2714pub const NID_set_brand_Novus: i32 = 642;
2715pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2716pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2717pub const NID_des_cdmf: i32 = 643;
2718pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2719pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2720pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2721pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2722pub const NID_itu_t: i32 = 645;
2723pub const OBJ_itu_t: i32 = 0;
2724pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2725pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2726pub const NID_joint_iso_itu_t: i32 = 646;
2727pub const OBJ_joint_iso_itu_t: i32 = 2;
2728pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2729pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2730pub const NID_international_organizations: i32 = 647;
2731pub const OBJ_ENC_international_organizations: i32 = 103;
2732pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2733pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2734pub const NID_ms_smartcard_login: i32 = 648;
2735pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2736pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2737pub const NID_ms_upn: i32 = 649;
2738pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2739pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2740pub const NID_aes_128_cfb1: i32 = 650;
2741pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2742pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2743pub const NID_aes_192_cfb1: i32 = 651;
2744pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2745pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2746pub const NID_aes_256_cfb1: i32 = 652;
2747pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2748pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2749pub const NID_aes_128_cfb8: i32 = 653;
2750pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2751pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2752pub const NID_aes_192_cfb8: i32 = 654;
2753pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2754pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2755pub const NID_aes_256_cfb8: i32 = 655;
2756pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2757pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2758pub const NID_des_cfb1: i32 = 656;
2759pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2760pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2761pub const NID_des_cfb8: i32 = 657;
2762pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2763pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2764pub const NID_des_ede3_cfb1: i32 = 658;
2765pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2766pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2767pub const NID_des_ede3_cfb8: i32 = 659;
2768pub const SN_streetAddress: &[u8; 7] = b"street\0";
2769pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2770pub const NID_streetAddress: i32 = 660;
2771pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2772pub const NID_postalCode: i32 = 661;
2773pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2774pub const NID_id_ppl: i32 = 662;
2775pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2776pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2777pub const NID_proxyCertInfo: i32 = 663;
2778pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2779pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2780pub const NID_id_ppl_anyLanguage: i32 = 664;
2781pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2782pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2783pub const NID_id_ppl_inheritAll: i32 = 665;
2784pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2785pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2786pub const NID_name_constraints: i32 = 666;
2787pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2788pub const LN_Independent: &[u8; 12] = b"Independent\0";
2789pub const NID_Independent: i32 = 667;
2790pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2791pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2792pub const NID_sha256WithRSAEncryption: i32 = 668;
2793pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2794pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2795pub const NID_sha384WithRSAEncryption: i32 = 669;
2796pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2797pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2798pub const NID_sha512WithRSAEncryption: i32 = 670;
2799pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2800pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2801pub const NID_sha224WithRSAEncryption: i32 = 671;
2802pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2803pub const LN_sha256: &[u8; 7] = b"sha256\0";
2804pub const NID_sha256: i32 = 672;
2805pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2806pub const LN_sha384: &[u8; 7] = b"sha384\0";
2807pub const NID_sha384: i32 = 673;
2808pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2809pub const LN_sha512: &[u8; 7] = b"sha512\0";
2810pub const NID_sha512: i32 = 674;
2811pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2812pub const LN_sha224: &[u8; 7] = b"sha224\0";
2813pub const NID_sha224: i32 = 675;
2814pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2815pub const NID_identified_organization: i32 = 676;
2816pub const OBJ_ENC_identified_organization: i32 = 43;
2817pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2818pub const NID_certicom_arc: i32 = 677;
2819pub const SN_wap: &[u8; 4] = b"wap\0";
2820pub const NID_wap: i32 = 678;
2821pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2822pub const NID_wap_wsg: i32 = 679;
2823pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2824pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2825pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2826pub const NID_X9_62_onBasis: i32 = 681;
2827pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2828pub const NID_X9_62_tpBasis: i32 = 682;
2829pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2830pub const NID_X9_62_ppBasis: i32 = 683;
2831pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2832pub const NID_X9_62_c2pnb163v1: i32 = 684;
2833pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2834pub const NID_X9_62_c2pnb163v2: i32 = 685;
2835pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2836pub const NID_X9_62_c2pnb163v3: i32 = 686;
2837pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2838pub const NID_X9_62_c2pnb176v1: i32 = 687;
2839pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2840pub const NID_X9_62_c2tnb191v1: i32 = 688;
2841pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2842pub const NID_X9_62_c2tnb191v2: i32 = 689;
2843pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2844pub const NID_X9_62_c2tnb191v3: i32 = 690;
2845pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2846pub const NID_X9_62_c2onb191v4: i32 = 691;
2847pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2848pub const NID_X9_62_c2onb191v5: i32 = 692;
2849pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2850pub const NID_X9_62_c2pnb208w1: i32 = 693;
2851pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2852pub const NID_X9_62_c2tnb239v1: i32 = 694;
2853pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2854pub const NID_X9_62_c2tnb239v2: i32 = 695;
2855pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2856pub const NID_X9_62_c2tnb239v3: i32 = 696;
2857pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2858pub const NID_X9_62_c2onb239v4: i32 = 697;
2859pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2860pub const NID_X9_62_c2onb239v5: i32 = 698;
2861pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2862pub const NID_X9_62_c2pnb272w1: i32 = 699;
2863pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2864pub const NID_X9_62_c2pnb304w1: i32 = 700;
2865pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2866pub const NID_X9_62_c2tnb359v1: i32 = 701;
2867pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2868pub const NID_X9_62_c2pnb368w1: i32 = 702;
2869pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2870pub const NID_X9_62_c2tnb431r1: i32 = 703;
2871pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2872pub const NID_secp112r1: i32 = 704;
2873pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2874pub const NID_secp112r2: i32 = 705;
2875pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2876pub const NID_secp128r1: i32 = 706;
2877pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2878pub const NID_secp128r2: i32 = 707;
2879pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2880pub const NID_secp160k1: i32 = 708;
2881pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2882pub const NID_secp160r1: i32 = 709;
2883pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2884pub const NID_secp160r2: i32 = 710;
2885pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2886pub const NID_secp192k1: i32 = 711;
2887pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2888pub const NID_secp224k1: i32 = 712;
2889pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2890pub const NID_secp224r1: i32 = 713;
2891pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2892pub const NID_secp256k1: i32 = 714;
2893pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2894pub const NID_secp384r1: i32 = 715;
2895pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2896pub const NID_secp521r1: i32 = 716;
2897pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2898pub const NID_sect113r1: i32 = 717;
2899pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2900pub const NID_sect113r2: i32 = 718;
2901pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2902pub const NID_sect131r1: i32 = 719;
2903pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2904pub const NID_sect131r2: i32 = 720;
2905pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2906pub const NID_sect163k1: i32 = 721;
2907pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2908pub const NID_sect163r1: i32 = 722;
2909pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2910pub const NID_sect163r2: i32 = 723;
2911pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2912pub const NID_sect193r1: i32 = 724;
2913pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2914pub const NID_sect193r2: i32 = 725;
2915pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2916pub const NID_sect233k1: i32 = 726;
2917pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2918pub const NID_sect233r1: i32 = 727;
2919pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2920pub const NID_sect239k1: i32 = 728;
2921pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2922pub const NID_sect283k1: i32 = 729;
2923pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2924pub const NID_sect283r1: i32 = 730;
2925pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2926pub const NID_sect409k1: i32 = 731;
2927pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2928pub const NID_sect409r1: i32 = 732;
2929pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2930pub const NID_sect571k1: i32 = 733;
2931pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2932pub const NID_sect571r1: i32 = 734;
2933pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2934pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2935pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2936pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2937pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2938pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2939pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2940pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2941pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2942pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2943pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2944pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2945pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2946pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2947pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2948pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2949pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2950pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2951pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2952pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2953pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2954pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2955pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2956pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2957pub const NID_any_policy: i32 = 746;
2958pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2959pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2960pub const NID_policy_mappings: i32 = 747;
2961pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2962pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2963pub const NID_inhibit_any_policy: i32 = 748;
2964pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2965pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2966pub const NID_ipsec3: i32 = 749;
2967pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2968pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2969pub const NID_ipsec4: i32 = 750;
2970pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2971pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2972pub const NID_camellia_128_cbc: i32 = 751;
2973pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2974pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2975pub const NID_camellia_192_cbc: i32 = 752;
2976pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2977pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2978pub const NID_camellia_256_cbc: i32 = 753;
2979pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2980pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2981pub const NID_camellia_128_ecb: i32 = 754;
2982pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2983pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2984pub const NID_camellia_192_ecb: i32 = 755;
2985pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2986pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2987pub const NID_camellia_256_ecb: i32 = 756;
2988pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2989pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2990pub const NID_camellia_128_cfb128: i32 = 757;
2991pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2992pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2993pub const NID_camellia_192_cfb128: i32 = 758;
2994pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2995pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2996pub const NID_camellia_256_cfb128: i32 = 759;
2997pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2998pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2999pub const NID_camellia_128_cfb1: i32 = 760;
3000pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
3001pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
3002pub const NID_camellia_192_cfb1: i32 = 761;
3003pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
3004pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
3005pub const NID_camellia_256_cfb1: i32 = 762;
3006pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
3007pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
3008pub const NID_camellia_128_cfb8: i32 = 763;
3009pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
3010pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
3011pub const NID_camellia_192_cfb8: i32 = 764;
3012pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
3013pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
3014pub const NID_camellia_256_cfb8: i32 = 765;
3015pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
3016pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
3017pub const NID_camellia_128_ofb128: i32 = 766;
3018pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
3019pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
3020pub const NID_camellia_192_ofb128: i32 = 767;
3021pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
3022pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
3023pub const NID_camellia_256_ofb128: i32 = 768;
3024pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
3025pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
3026pub const NID_subject_directory_attributes: i32 = 769;
3027pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
3028pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
3029pub const NID_issuing_distribution_point: i32 = 770;
3030pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
3031pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
3032pub const NID_certificate_issuer: i32 = 771;
3033pub const SN_kisa: &[u8; 5] = b"KISA\0";
3034pub const LN_kisa: &[u8; 5] = b"kisa\0";
3035pub const NID_kisa: i32 = 773;
3036pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
3037pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
3038pub const NID_seed_ecb: i32 = 776;
3039pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
3040pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
3041pub const NID_seed_cbc: i32 = 777;
3042pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
3043pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
3044pub const NID_seed_ofb128: i32 = 778;
3045pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
3046pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
3047pub const NID_seed_cfb128: i32 = 779;
3048pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
3049pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
3050pub const NID_hmac_md5: i32 = 780;
3051pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
3052pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
3053pub const NID_hmac_sha1: i32 = 781;
3054pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
3055pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
3056pub const NID_id_PasswordBasedMAC: i32 = 782;
3057pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
3058pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
3059pub const NID_id_DHBasedMac: i32 = 783;
3060pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
3061pub const NID_id_it_suppLangTags: i32 = 784;
3062pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
3063pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
3064pub const NID_caRepository: i32 = 785;
3065pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
3066pub const NID_id_smime_ct_compressedData: i32 = 786;
3067pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
3068pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
3069pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
3070pub const NID_id_aes128_wrap: i32 = 788;
3071pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
3072pub const NID_id_aes192_wrap: i32 = 789;
3073pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
3074pub const NID_id_aes256_wrap: i32 = 790;
3075pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
3076pub const NID_ecdsa_with_Recommended: i32 = 791;
3077pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
3078pub const NID_ecdsa_with_Specified: i32 = 792;
3079pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
3080pub const NID_ecdsa_with_SHA224: i32 = 793;
3081pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
3082pub const NID_ecdsa_with_SHA256: i32 = 794;
3083pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
3084pub const NID_ecdsa_with_SHA384: i32 = 795;
3085pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
3086pub const NID_ecdsa_with_SHA512: i32 = 796;
3087pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
3088pub const NID_hmacWithMD5: i32 = 797;
3089pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
3090pub const NID_hmacWithSHA224: i32 = 798;
3091pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
3092pub const NID_hmacWithSHA256: i32 = 799;
3093pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
3094pub const NID_hmacWithSHA384: i32 = 800;
3095pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
3096pub const NID_hmacWithSHA512: i32 = 801;
3097pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
3098pub const NID_dsa_with_SHA224: i32 = 802;
3099pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
3100pub const NID_dsa_with_SHA256: i32 = 803;
3101pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
3102pub const NID_whirlpool: i32 = 804;
3103pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
3104pub const NID_cryptopro: i32 = 805;
3105pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
3106pub const NID_cryptocom: i32 = 806;
3107pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
3108    b"id-GostR3411-94-with-GostR3410-2001\0";
3109pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
3110    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
3111pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
3112pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
3113pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
3114    b"GOST R 34.11-94 with GOST R 34.10-94\0";
3115pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
3116pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
3117pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
3118pub const NID_id_GostR3411_94: i32 = 809;
3119pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
3120pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
3121pub const NID_id_HMACGostR3411_94: i32 = 810;
3122pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
3123pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
3124pub const NID_id_GostR3410_2001: i32 = 811;
3125pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
3126pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
3127pub const NID_id_GostR3410_94: i32 = 812;
3128pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
3129pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
3130pub const NID_id_Gost28147_89: i32 = 813;
3131pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
3132pub const NID_gost89_cnt: i32 = 814;
3133pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
3134pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
3135pub const NID_id_Gost28147_89_MAC: i32 = 815;
3136pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
3137pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
3138pub const NID_id_GostR3411_94_prf: i32 = 816;
3139pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
3140pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
3141pub const NID_id_GostR3410_2001DH: i32 = 817;
3142pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
3143pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
3144pub const NID_id_GostR3410_94DH: i32 = 818;
3145pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
3146    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
3147pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
3148pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
3149pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
3150pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
3151pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
3152pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
3153pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
3154pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
3155pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
3156pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
3157    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
3158pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
3159pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
3160    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
3161pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
3162pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
3163    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
3164pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
3165pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
3166    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
3167pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
3168pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
3169    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
3170pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
3171pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
3172    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
3173pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
3174pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
3175    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
3176pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
3177pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
3178pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
3179pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
3180    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
3181pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
3182pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
3183    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
3184pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
3185pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
3186    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
3187pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
3188pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
3189    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
3190pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
3191pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
3192    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
3193pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
3194pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
3195    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
3196pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
3197pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
3198    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
3199pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
3200pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
3201pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
3202pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
3203    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
3204pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
3205pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
3206    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
3207pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
3208pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
3209    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
3210pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
3211pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
3212    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
3213pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
3214pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
3215    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
3216pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
3217pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
3218pub const NID_id_GostR3410_94_a: i32 = 845;
3219pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
3220pub const NID_id_GostR3410_94_aBis: i32 = 846;
3221pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
3222pub const NID_id_GostR3410_94_b: i32 = 847;
3223pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
3224pub const NID_id_GostR3410_94_bBis: i32 = 848;
3225pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3226pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3227pub const NID_id_Gost28147_89_cc: i32 = 849;
3228pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3229pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3230pub const NID_id_GostR3410_94_cc: i32 = 850;
3231pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3232pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3233pub const NID_id_GostR3410_2001_cc: i32 = 851;
3234pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3235    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3236pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3237    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3238pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3239pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3240    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3241pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3242    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3243pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3244pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3245pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3246    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3247pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3248pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3249pub const LN_hmac: &[u8; 5] = b"hmac\0";
3250pub const NID_hmac: i32 = 855;
3251pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3252pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3253pub const NID_LocalKeySet: i32 = 856;
3254pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3255pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3256pub const NID_freshest_crl: i32 = 857;
3257pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3258pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3259pub const NID_id_on_permanentIdentifier: i32 = 858;
3260pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3261pub const NID_searchGuide: i32 = 859;
3262pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3263pub const NID_businessCategory: i32 = 860;
3264pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3265pub const NID_postalAddress: i32 = 861;
3266pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3267pub const NID_postOfficeBox: i32 = 862;
3268pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3269pub const NID_physicalDeliveryOfficeName: i32 = 863;
3270pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3271pub const NID_telephoneNumber: i32 = 864;
3272pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3273pub const NID_telexNumber: i32 = 865;
3274pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3275pub const NID_teletexTerminalIdentifier: i32 = 866;
3276pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3277pub const NID_facsimileTelephoneNumber: i32 = 867;
3278pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3279pub const NID_x121Address: i32 = 868;
3280pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3281pub const NID_internationaliSDNNumber: i32 = 869;
3282pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3283pub const NID_registeredAddress: i32 = 870;
3284pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3285pub const NID_destinationIndicator: i32 = 871;
3286pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3287pub const NID_preferredDeliveryMethod: i32 = 872;
3288pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3289pub const NID_presentationAddress: i32 = 873;
3290pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3291pub const NID_supportedApplicationContext: i32 = 874;
3292pub const SN_member: &[u8; 7] = b"member\0";
3293pub const NID_member: i32 = 875;
3294pub const SN_owner: &[u8; 6] = b"owner\0";
3295pub const NID_owner: i32 = 876;
3296pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3297pub const NID_roleOccupant: i32 = 877;
3298pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3299pub const NID_seeAlso: i32 = 878;
3300pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3301pub const NID_userPassword: i32 = 879;
3302pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3303pub const NID_userCertificate: i32 = 880;
3304pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3305pub const NID_cACertificate: i32 = 881;
3306pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3307pub const NID_authorityRevocationList: i32 = 882;
3308pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3309pub const NID_certificateRevocationList: i32 = 883;
3310pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3311pub const NID_crossCertificatePair: i32 = 884;
3312pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3313pub const NID_enhancedSearchGuide: i32 = 885;
3314pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3315pub const NID_protocolInformation: i32 = 886;
3316pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3317pub const NID_distinguishedName: i32 = 887;
3318pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3319pub const NID_uniqueMember: i32 = 888;
3320pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3321pub const NID_houseIdentifier: i32 = 889;
3322pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3323pub const NID_supportedAlgorithms: i32 = 890;
3324pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3325pub const NID_deltaRevocationList: i32 = 891;
3326pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3327pub const NID_dmdName: i32 = 892;
3328pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3329pub const NID_id_alg_PWRI_KEK: i32 = 893;
3330pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3331pub const LN_cmac: &[u8; 5] = b"cmac\0";
3332pub const NID_cmac: i32 = 894;
3333pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3334pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3335pub const NID_aes_128_gcm: i32 = 895;
3336pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3337pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3338pub const NID_aes_128_ccm: i32 = 896;
3339pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3340pub const NID_id_aes128_wrap_pad: i32 = 897;
3341pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3342pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3343pub const NID_aes_192_gcm: i32 = 898;
3344pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3345pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3346pub const NID_aes_192_ccm: i32 = 899;
3347pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3348pub const NID_id_aes192_wrap_pad: i32 = 900;
3349pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3350pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3351pub const NID_aes_256_gcm: i32 = 901;
3352pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3353pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3354pub const NID_aes_256_ccm: i32 = 902;
3355pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3356pub const NID_id_aes256_wrap_pad: i32 = 903;
3357pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3358pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3359pub const NID_aes_128_ctr: i32 = 904;
3360pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3361pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3362pub const NID_aes_192_ctr: i32 = 905;
3363pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3364pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3365pub const NID_aes_256_ctr: i32 = 906;
3366pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3367pub const NID_id_camellia128_wrap: i32 = 907;
3368pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3369pub const NID_id_camellia192_wrap: i32 = 908;
3370pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3371pub const NID_id_camellia256_wrap: i32 = 909;
3372pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3373pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3374pub const NID_anyExtendedKeyUsage: i32 = 910;
3375pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3376pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3377pub const NID_mgf1: i32 = 911;
3378pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3379pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3380pub const NID_rsassaPss: i32 = 912;
3381pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3382pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3383pub const NID_aes_128_xts: i32 = 913;
3384pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3385pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3386pub const NID_aes_256_xts: i32 = 914;
3387pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3388pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3389pub const NID_rc4_hmac_md5: i32 = 915;
3390pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3391pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3392pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3393pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3394pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3395pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3396pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3397pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3398pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3399pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3400pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3401pub const NID_rsaesOaep: i32 = 919;
3402pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3403pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3404pub const NID_dhpublicnumber: i32 = 920;
3405pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3406pub const NID_brainpoolP160r1: i32 = 921;
3407pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3408pub const NID_brainpoolP160t1: i32 = 922;
3409pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3410pub const NID_brainpoolP192r1: i32 = 923;
3411pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3412pub const NID_brainpoolP192t1: i32 = 924;
3413pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3414pub const NID_brainpoolP224r1: i32 = 925;
3415pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3416pub const NID_brainpoolP224t1: i32 = 926;
3417pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3418pub const NID_brainpoolP256r1: i32 = 927;
3419pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3420pub const NID_brainpoolP256t1: i32 = 928;
3421pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3422pub const NID_brainpoolP320r1: i32 = 929;
3423pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3424pub const NID_brainpoolP320t1: i32 = 930;
3425pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3426pub const NID_brainpoolP384r1: i32 = 931;
3427pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3428pub const NID_brainpoolP384t1: i32 = 932;
3429pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3430pub const NID_brainpoolP512r1: i32 = 933;
3431pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3432pub const NID_brainpoolP512t1: i32 = 934;
3433pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3434pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3435pub const NID_pSpecified: i32 = 935;
3436pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3437pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3438pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3439    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3440pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3441pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3442    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3443pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3444pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3445    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3446pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3447pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3448    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3449pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3450pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3451    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3452pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3453pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3454    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3455pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3456pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3457    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3458pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3459pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3460    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3461pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3462pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3463    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3464pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3465pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3466pub const NID_dh_std_kdf: i32 = 946;
3467pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3468pub const NID_dh_cofactor_kdf: i32 = 947;
3469pub const SN_X25519: &[u8; 7] = b"X25519\0";
3470pub const NID_X25519: i32 = 948;
3471pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3472pub const NID_ED25519: i32 = 949;
3473pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3474pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3475pub const NID_chacha20_poly1305: i32 = 950;
3476pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3477pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3478pub const NID_kx_rsa: i32 = 951;
3479pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3480pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3481pub const NID_kx_ecdhe: i32 = 952;
3482pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3483pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3484pub const NID_kx_psk: i32 = 953;
3485pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3486pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3487pub const NID_auth_rsa: i32 = 954;
3488pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3489pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3490pub const NID_auth_ecdsa: i32 = 955;
3491pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3492pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3493pub const NID_auth_psk: i32 = 956;
3494pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3495pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3496pub const NID_kx_any: i32 = 957;
3497pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3498pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3499pub const NID_auth_any: i32 = 958;
3500pub const SN_ED448: &[u8; 6] = b"ED448\0";
3501pub const NID_ED448: i32 = 960;
3502pub const SN_X448: &[u8; 5] = b"X448\0";
3503pub const NID_X448: i32 = 961;
3504pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3505pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3506pub const NID_sha512_256: i32 = 962;
3507pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3508pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3509pub const NID_hkdf: i32 = 963;
3510pub const SN_X25519Kyber768Draft00: &[u8; 22] = b"X25519Kyber768Draft00\0";
3511pub const NID_X25519Kyber768Draft00: i32 = 964;
3512pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3513pub const NID_X25519MLKEM768: i32 = 965;
3514pub const SN_ML_KEM_1024: &[u8; 19] = b"id-alg-ml-kem-1024\0";
3515pub const LN_ML_KEM_1024: &[u8; 12] = b"ML-KEM-1024\0";
3516pub const NID_ML_KEM_1024: i32 = 966;
3517pub const SN_ML_DSA_44: &[u8; 13] = b"id-ml-dsa-44\0";
3518pub const LN_ML_DSA_44: &[u8; 10] = b"ML-DSA-44\0";
3519pub const NID_ML_DSA_44: i32 = 967;
3520pub const SN_ML_DSA_65: &[u8; 13] = b"id-ml-dsa-65\0";
3521pub const LN_ML_DSA_65: &[u8; 10] = b"ML-DSA-65\0";
3522pub const NID_ML_DSA_65: i32 = 968;
3523pub const SN_ML_DSA_87: &[u8; 13] = b"id-ml-dsa-87\0";
3524pub const LN_ML_DSA_87: &[u8; 10] = b"ML-DSA-87\0";
3525pub const NID_ML_DSA_87: i32 = 969;
3526pub const SN_ML_KEM_768: &[u8; 18] = b"id-alg-ml-kem-768\0";
3527pub const LN_ML_KEM_768: &[u8; 11] = b"ML-KEM-768\0";
3528pub const NID_ML_KEM_768: i32 = 970;
3529pub const SN_X_Wing: &[u8; 7] = b"X-Wing\0";
3530pub const NID_X_Wing: i32 = 972;
3531pub const SN_alg_mtcProof_draft: &[u8; 19] = b"alg-mtcProof-draft\0";
3532pub const NID_alg_mtcProof_draft: i32 = 976;
3533pub const SN_rdna_trustAnchorID_draft: &[u8; 25] = b"rdna-trustAnchorID-draft\0";
3534pub const NID_rdna_trustAnchorID_draft: i32 = 977;
3535pub const SN_pe_mtcCertificationAuthority_draft: &[u8; 35] =
3536    b"pe-mtcCertificationAuthority-draft\0";
3537pub const NID_pe_mtcCertificationAuthority_draft: i32 = 978;
3538pub const SN_SLH_DSA_SHA2_128s: &[u8; 21] = b"id-slh-dsa-sha2-128s\0";
3539pub const LN_SLH_DSA_SHA2_128s: &[u8; 18] = b"SLH-DSA-SHA2-128s\0";
3540pub const NID_SLH_DSA_SHA2_128s: i32 = 979;
3541pub const SN_SLH_DSA_SHAKE_256f: &[u8; 22] = b"id-slh-dsa-shake-256f\0";
3542pub const LN_SLH_DSA_SHAKE_256f: &[u8; 19] = b"SLH-DSA-SHAKE-256f\0";
3543pub const NID_SLH_DSA_SHAKE_256f: i32 = 980;
3544pub const SN_SLH_DSA_SHA2_128s_WITH_SHA256: &[u8; 38] = b"id-hash-slh-dsa-sha2-128s-with-sha256\0";
3545pub const LN_SLH_DSA_SHA2_128s_WITH_SHA256: &[u8; 30] = b"SLH-DSA-SHA2-128s-WITH-SHA256\0";
3546pub const NID_SLH_DSA_SHA2_128s_WITH_SHA256: i32 = 981;
3547pub const EVP_PKEY_NONE: i32 = 0;
3548pub const EVP_PKEY_RSA: i32 = 6;
3549pub const EVP_PKEY_RSA_PSS: i32 = 912;
3550pub const EVP_PKEY_DSA: i32 = 116;
3551pub const EVP_PKEY_EC: i32 = 408;
3552pub const EVP_PKEY_ED25519: i32 = 949;
3553pub const EVP_PKEY_X25519: i32 = 948;
3554pub const EVP_PKEY_HKDF: i32 = 963;
3555pub const EVP_PKEY_DH: i32 = 28;
3556pub const EVP_PKEY_ML_DSA_44: i32 = 967;
3557pub const EVP_PKEY_ML_DSA_65: i32 = 968;
3558pub const EVP_PKEY_ML_DSA_87: i32 = 969;
3559pub const EVP_PKEY_ML_KEM_768: i32 = 970;
3560pub const EVP_PKEY_ML_KEM_1024: i32 = 966;
3561pub const EVP_PKEY_XWING: i32 = 972;
3562pub const EVP_PKEY_RSA2: i32 = 19;
3563pub const EVP_PKEY_X448: i32 = 961;
3564pub const EVP_PKEY_ED448: i32 = 960;
3565pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3566pub const EVP_HPKE_DHKEM_P256_HKDF_SHA256: i32 = 16;
3567pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3568pub const EVP_HPKE_XWING: i32 = 25722;
3569pub const EVP_HPKE_MLKEM768: i32 = 65;
3570pub const EVP_HPKE_MLKEM1024: i32 = 66;
3571pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 1568;
3572pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 64;
3573pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 1568;
3574pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3575pub const EVP_HPKE_HKDF_SHA384: i32 = 2;
3576pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3577pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3578pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3579pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3580pub const HRSS_SAMPLE_BYTES: i32 = 700;
3581pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3582pub const HRSS_ENCAP_BYTES: i32 = 1400;
3583pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3584pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3585pub const HRSS_KEY_BYTES: i32 = 32;
3586pub const HRSS_POLY3_BYTES: i32 = 140;
3587pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3588pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3589pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3590pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3591pub const MD4_CBLOCK: i32 = 64;
3592pub const MD4_DIGEST_LENGTH: i32 = 16;
3593pub const MD5_CBLOCK: i32 = 64;
3594pub const MD5_DIGEST_LENGTH: i32 = 16;
3595pub const MLDSA_SEED_BYTES: i32 = 32;
3596pub const MLDSA_MU_BYTES: i32 = 64;
3597pub const MLDSA65_PUBLIC_KEY_BYTES: i32 = 1952;
3598pub const MLDSA65_SIGNATURE_BYTES: i32 = 3309;
3599pub const MLDSA87_PUBLIC_KEY_BYTES: i32 = 2592;
3600pub const MLDSA87_SIGNATURE_BYTES: i32 = 4627;
3601pub const MLDSA44_PUBLIC_KEY_BYTES: i32 = 1312;
3602pub const MLDSA44_SIGNATURE_BYTES: i32 = 2420;
3603pub const MLKEM768_PUBLIC_KEY_BYTES: i32 = 1184;
3604pub const MLKEM_SEED_BYTES: i32 = 64;
3605pub const MLKEM768_CIPHERTEXT_BYTES: i32 = 1088;
3606pub const MLKEM_SHARED_SECRET_BYTES: i32 = 32;
3607pub const MLKEM1024_PUBLIC_KEY_BYTES: i32 = 1568;
3608pub const MLKEM1024_CIPHERTEXT_BYTES: i32 = 1568;
3609pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3610pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3611pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3612pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3613pub const PKCS7_DETACHED: i32 = 64;
3614pub const PKCS7_TEXT: i32 = 1;
3615pub const PKCS7_NOCERTS: i32 = 2;
3616pub const PKCS7_NOSIGS: i32 = 4;
3617pub const PKCS7_NOCHAIN: i32 = 8;
3618pub const PKCS7_NOINTERN: i32 = 16;
3619pub const PKCS7_NOVERIFY: i32 = 32;
3620pub const PKCS7_BINARY: i32 = 128;
3621pub const PKCS7_NOATTR: i32 = 256;
3622pub const PKCS7_NOSMIMECAP: i32 = 512;
3623pub const PKCS7_STREAM: i32 = 4096;
3624pub const PKCS7_PARTIAL: i32 = 16384;
3625pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3626pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3627pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3628pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3629pub const OPENSSL_RSA_MAX_MODULUS_BITS: i32 = 16384;
3630pub const RSA_PKCS1_PADDING: i32 = 1;
3631pub const RSA_NO_PADDING: i32 = 3;
3632pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3633pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3634pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3635pub const RSA_PSS_SALTLEN_AUTO: i32 = -2;
3636pub const RSA_FLAG_OPAQUE: i32 = 1;
3637pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3638pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3639pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3640pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3641pub const RSA_3: i32 = 3;
3642pub const RSA_F4: i32 = 65537;
3643pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3644pub const RSA_R_BAD_ENCODING: i32 = 100;
3645pub const RSA_R_BAD_E_VALUE: i32 = 101;
3646pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3647pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3648pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3649pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3650pub const RSA_R_BAD_VERSION: i32 = 106;
3651pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3652pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3653pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3654pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3655pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3656pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3657pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3658pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3659pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3660pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3661pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3662pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3663pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3664pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3665pub const RSA_R_ENCODE_ERROR: i32 = 121;
3666pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3667pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3668pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3669pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3670pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3671pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3672pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3673pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3674pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3675pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3676pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3677pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3678pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3679pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3680pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3681pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3682pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3683pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3684pub const RSA_R_TOO_LONG: i32 = 140;
3685pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3686pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3687pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3688pub const RSA_R_VALUE_MISSING: i32 = 144;
3689pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3690pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3691pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3692pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3693pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3694pub const X509V3_R_BAD_OBJECT: i32 = 101;
3695pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3696pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3697pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3698pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3699pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3700pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3701pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3702pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3703pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3704pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3705pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3706pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3707pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3708pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3709pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3710pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3711pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3712pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3713pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3714pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3715pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3716pub const X509V3_R_INVALID_NAME: i32 = 123;
3717pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3718pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3719pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3720pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3721pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3722pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3723pub const X509V3_R_INVALID_OPTION: i32 = 130;
3724pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3725pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3726pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3727pub const X509V3_R_INVALID_SECTION: i32 = 134;
3728pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3729pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3730pub const X509V3_R_MISSING_VALUE: i32 = 137;
3731pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3732pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3733pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3734pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3735pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3736pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3737pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3738pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3739pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3740pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3741pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3742pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3743pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3744pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3745pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3746pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3747pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3748pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3749pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3750pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3751pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3752pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3753pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3754pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3755pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3756pub const X509V3_R_INVALID_VALUE: i32 = 163;
3757pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3758pub const X509_VERSION_1: i32 = 0;
3759pub const X509_VERSION_2: i32 = 1;
3760pub const X509_VERSION_3: i32 = 2;
3761pub const EXFLAG_BCONS: i32 = 1;
3762pub const EXFLAG_KUSAGE: i32 = 2;
3763pub const EXFLAG_XKUSAGE: i32 = 4;
3764pub const EXFLAG_CA: i32 = 16;
3765pub const EXFLAG_SI: i32 = 32;
3766pub const EXFLAG_V1: i32 = 64;
3767pub const EXFLAG_INVALID: i32 = 128;
3768pub const EXFLAG_SET: i32 = 256;
3769pub const EXFLAG_CRITICAL: i32 = 512;
3770pub const EXFLAG_SS: i32 = 8192;
3771pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3772pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3773pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3774pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3775pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3776pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3777pub const X509v3_KU_CRL_SIGN: i32 = 2;
3778pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3779pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3780pub const XKU_SSL_SERVER: i32 = 1;
3781pub const XKU_SSL_CLIENT: i32 = 2;
3782pub const XKU_SMIME: i32 = 4;
3783pub const XKU_CODE_SIGN: i32 = 8;
3784pub const XKU_SGC: i32 = 16;
3785pub const XKU_OCSP_SIGN: i32 = 32;
3786pub const XKU_TIMESTAMP: i32 = 64;
3787pub const XKU_DVCS: i32 = 128;
3788pub const XKU_ANYEKU: i32 = 256;
3789pub const X509_CRL_VERSION_1: i32 = 0;
3790pub const X509_CRL_VERSION_2: i32 = 1;
3791pub const X509_REQ_VERSION_1: i32 = 0;
3792pub const X509V3_ADD_OP_MASK: i32 = 15;
3793pub const X509V3_ADD_DEFAULT: i32 = 0;
3794pub const X509V3_ADD_APPEND: i32 = 1;
3795pub const X509V3_ADD_REPLACE: i32 = 2;
3796pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3797pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3798pub const X509V3_ADD_DELETE: i32 = 5;
3799pub const X509V3_ADD_SILENT: i32 = 16;
3800pub const GEN_OTHERNAME: i32 = 0;
3801pub const GEN_EMAIL: i32 = 1;
3802pub const GEN_DNS: i32 = 2;
3803pub const GEN_X400: i32 = 3;
3804pub const GEN_DIRNAME: i32 = 4;
3805pub const GEN_EDIPARTY: i32 = 5;
3806pub const GEN_URI: i32 = 6;
3807pub const GEN_IPADD: i32 = 7;
3808pub const GEN_RID: i32 = 8;
3809pub const X509_LU_NONE: i32 = 0;
3810pub const X509_LU_X509: i32 = 1;
3811pub const X509_LU_CRL: i32 = 2;
3812pub const X509_LU_PKEY: i32 = 3;
3813pub const X509_V_OK: i32 = 0;
3814pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3815pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3816pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3817pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3818pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3819pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3820pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3821pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3822pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3823pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3824pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3825pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3826pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3827pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3828pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3829pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3830pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3831pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3832pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3833pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3834pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3835pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3836pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3837pub const X509_V_ERR_INVALID_CA: i32 = 24;
3838pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3839pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3840pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3841pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3842pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3843pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3844pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3845pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3846pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3847pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3848pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3849pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3850pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3851pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3852pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3853pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3854pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3855pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3856pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3857pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3858pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3859pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3860pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3861pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3862pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3863pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3864pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3865pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3866pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3867pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3868pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3869pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3870pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3871pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3872pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3873pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3874pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3875pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3876pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3877pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3878pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3879pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3880pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3881pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3882pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3883pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3884pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3885pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3886pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3887pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3888pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3889pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 0;
3890pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3891pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 0;
3892pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3893pub const X509_V_FLAG_ALLOW_TIMEZONE_OFFSET: i32 = 16777216;
3894pub const X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05: i32 = 4194304;
3895pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3896pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3897pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3898pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3899pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3900pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3901pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3902pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3903pub const X509_PURPOSE_ANY: i32 = 7;
3904pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3905pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3906pub const X509_TRUST_COMPAT: i32 = 1;
3907pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3908pub const X509_TRUST_SSL_SERVER: i32 = 3;
3909pub const X509_TRUST_EMAIL: i32 = 4;
3910pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3911pub const X509_TRUST_TSA: i32 = 8;
3912pub const X509_FILETYPE_PEM: i32 = 1;
3913pub const X509_FILETYPE_ASN1: i32 = 2;
3914pub const X509_FILETYPE_DEFAULT: i32 = 3;
3915pub const X509_L_FILE_LOAD: i32 = 1;
3916pub const X509_L_ADD_DIR: i32 = 2;
3917pub const X509_FLAG_COMPAT: i32 = 0;
3918pub const X509_FLAG_NO_HEADER: i32 = 1;
3919pub const X509_FLAG_NO_VERSION: i32 = 2;
3920pub const X509_FLAG_NO_SERIAL: i32 = 4;
3921pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3922pub const X509_FLAG_NO_ISSUER: i32 = 16;
3923pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3924pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3925pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3926pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3927pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3928pub const X509_FLAG_NO_AUX: i32 = 1024;
3929pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3930pub const X509_FLAG_NO_IDS: i32 = 4096;
3931pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3932pub const X509V3_EXT_DEFAULT: i32 = 0;
3933pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3934pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3935pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3936pub const XN_FLAG_COMPAT: i32 = 0;
3937pub const XN_FLAG_SEP_MASK: i32 = 983040;
3938pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3939pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3940pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3941pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3942pub const XN_FLAG_DN_REV: i32 = 1048576;
3943pub const XN_FLAG_FN_MASK: i32 = 6291456;
3944pub const XN_FLAG_FN_SN: i32 = 0;
3945pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3946pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3947pub const XN_FLAG_RFC2253: i32 = 17892119;
3948pub const XN_FLAG_ONELINE: i32 = 8520479;
3949pub const X509_TRUST_TRUSTED: i32 = 1;
3950pub const X509_TRUST_REJECTED: i32 = 2;
3951pub const X509_TRUST_UNTRUSTED: i32 = 3;
3952pub const X509V3_EXT_MULTILINE: i32 = 4;
3953pub const X509V3_CTX_TEST: i32 = 1;
3954pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 0;
3955pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3956pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 0;
3957pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3958pub const NS_SSL_CLIENT: i32 = 128;
3959pub const NS_SSL_SERVER: i32 = 64;
3960pub const NS_SMIME: i32 = 32;
3961pub const NS_OBJSIGN: i32 = 16;
3962pub const NS_SSL_CA: i32 = 4;
3963pub const NS_SMIME_CA: i32 = 2;
3964pub const NS_OBJSIGN_CA: i32 = 1;
3965pub const NS_ANY_CA: i32 = 7;
3966pub const X509_R_AKID_MISMATCH: i32 = 100;
3967pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3968pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3969pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3970pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3971pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3972pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3973pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3974pub const X509_R_IDP_MISMATCH: i32 = 108;
3975pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3976pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3977pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3978pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3979pub const X509_R_INVALID_TRUST: i32 = 113;
3980pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3981pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3982pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3983pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3984pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3985pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3986pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3987pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3988pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3989pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3990pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3991pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3992pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3993pub const X509_R_SHOULD_RETRY: i32 = 127;
3994pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3995pub const X509_R_UNKNOWN_NID: i32 = 129;
3996pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3997pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3998pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3999pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
4000pub const X509_R_WRONG_TYPE: i32 = 134;
4001pub const X509_R_NAME_TOO_LONG: i32 = 135;
4002pub const X509_R_INVALID_PARAMETER: i32 = 136;
4003pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
4004pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
4005pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
4006pub const X509_R_INVALID_VERSION: i32 = 140;
4007pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
4008pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
4009pub const X509_R_NO_CRL_FOUND: i32 = 143;
4010pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
4011pub const X509_R_INVALID_MTC_CA: i32 = 145;
4012pub const X509_R_INVALID_MTC_PROOF: i32 = 146;
4013pub const PEM_BUFSIZE: i32 = 1024;
4014pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
4015pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
4016pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
4017pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
4018pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
4019pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
4020pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
4021pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
4022pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
4023pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
4024pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
4025pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
4026pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
4027pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
4028pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
4029pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
4030pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
4031pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
4032pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
4033pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
4034pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
4035pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
4036pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
4037pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
4038pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
4039pub const PEM_R_BAD_DECRYPT: i32 = 101;
4040pub const PEM_R_BAD_END_LINE: i32 = 102;
4041pub const PEM_R_BAD_IV_CHARS: i32 = 103;
4042pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
4043pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
4044pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
4045pub const PEM_R_NOT_DEK_INFO: i32 = 107;
4046pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
4047pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
4048pub const PEM_R_NO_START_LINE: i32 = 110;
4049pub const PEM_R_READ_KEY: i32 = 111;
4050pub const PEM_R_SHORT_HEADER: i32 = 112;
4051pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
4052pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
4053pub const PEM_R_UNSUPPORTED_PROC_TYPE_VERSION: i32 = 115;
4054pub const PEM_R_NO_DATA: i32 = 116;
4055pub const PKCS12_DEFAULT_ITER: i32 = 2048;
4056pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
4057pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
4058pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
4059pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
4060pub const PKCS8_R_DECODE_ERROR: i32 = 104;
4061pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
4062pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4063pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4064pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4065pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4066pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4067pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4068pub const PKCS8_R_MISSING_MAC: i32 = 112;
4069pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4070pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4071pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4072pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4073pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4074pub const PKCS8_R_TOO_LONG: i32 = 118;
4075pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4076pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4077pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4078pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4079pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4080pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4081pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4082pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4083pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4084pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4085pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4086pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4087pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4088pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4089pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4090pub const RIPEMD160_CBLOCK: i32 = 64;
4091pub const RIPEMD160_LBLOCK: i32 = 16;
4092pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4093pub const SLHDSA_SHA2_128S_SEED_BYTES: i32 = 48;
4094pub const SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES: i32 = 32;
4095pub const SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES: i32 = 64;
4096pub const SLHDSA_SHA2_128S_SIGNATURE_BYTES: i32 = 7856;
4097pub const SLHDSA_SHAKE_256F_SEED_BYTES: i32 = 96;
4098pub const SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES: i32 = 64;
4099pub const SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES: i32 = 128;
4100pub const SLHDSA_SHAKE_256F_SIGNATURE_BYTES: i32 = 49856;
4101pub const SSL2_MT_CLIENT_HELLO: i32 = 1;
4102pub const SSL2_VERSION: i32 = 2;
4103pub const SSL3_CK_RSA_DES_192_CBC3_SHA: i32 = 50331658;
4104pub const SSL3_CK_SCSV: i32 = 50331903;
4105pub const SSL3_CK_FALLBACK_SCSV: i32 = 50353664;
4106pub const SSL3_TXT_RSA_DES_192_CBC3_SHA: &[u8; 13] = b"DES-CBC3-SHA\0";
4107pub const SSL3_SSL_SESSION_ID_LENGTH: i32 = 32;
4108pub const SSL3_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4109pub const SSL3_MASTER_SECRET_SIZE: i32 = 48;
4110pub const SSL3_RANDOM_SIZE: i32 = 32;
4111pub const SSL3_SESSION_ID_SIZE: i32 = 32;
4112pub const SSL3_RT_HEADER_LENGTH: i32 = 5;
4113pub const SSL3_HM_HEADER_LENGTH: i32 = 4;
4114pub const SSL3_ALIGN_PAYLOAD: i32 = 8;
4115pub const SSL3_RT_MAX_MD_SIZE: i32 = 64;
4116pub const SSL_RT_MAX_CIPHER_BLOCK_SIZE: i32 = 16;
4117pub const SSL3_RT_MAX_PLAIN_LENGTH: i32 = 16384;
4118pub const SSL3_RT_MAX_COMPRESSED_OVERHEAD: i32 = 1024;
4119pub const SSL3_RT_MAX_ENCRYPTED_OVERHEAD: i32 = 320;
4120pub const SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD: i32 = 88;
4121pub const SSL3_RT_MAX_COMPRESSED_LENGTH: i32 = 16384;
4122pub const SSL3_RT_MAX_ENCRYPTED_LENGTH: i32 = 16704;
4123pub const SSL3_RT_MAX_PACKET_SIZE: i32 = 16709;
4124pub const SSL3_RT_CHANGE_CIPHER_SPEC: i32 = 20;
4125pub const SSL3_RT_ALERT: i32 = 21;
4126pub const SSL3_RT_HANDSHAKE: i32 = 22;
4127pub const SSL3_RT_APPLICATION_DATA: i32 = 23;
4128pub const SSL3_RT_ACK: i32 = 26;
4129pub const SSL3_RT_HEADER: i32 = 256;
4130pub const SSL3_RT_CLIENT_HELLO_INNER: i32 = 257;
4131pub const SSL3_AL_WARNING: i32 = 1;
4132pub const SSL3_AL_FATAL: i32 = 2;
4133pub const SSL3_AD_CLOSE_NOTIFY: i32 = 0;
4134pub const SSL3_AD_UNEXPECTED_MESSAGE: i32 = 10;
4135pub const SSL3_AD_BAD_RECORD_MAC: i32 = 20;
4136pub const SSL3_AD_DECOMPRESSION_FAILURE: i32 = 30;
4137pub const SSL3_AD_HANDSHAKE_FAILURE: i32 = 40;
4138pub const SSL3_AD_NO_CERTIFICATE: i32 = 41;
4139pub const SSL3_AD_BAD_CERTIFICATE: i32 = 42;
4140pub const SSL3_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4141pub const SSL3_AD_CERTIFICATE_REVOKED: i32 = 44;
4142pub const SSL3_AD_CERTIFICATE_EXPIRED: i32 = 45;
4143pub const SSL3_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4144pub const SSL3_AD_ILLEGAL_PARAMETER: i32 = 47;
4145pub const SSL3_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4146pub const SSL3_CT_RSA_SIGN: i32 = 1;
4147pub const SSL3_MT_HELLO_REQUEST: i32 = 0;
4148pub const SSL3_MT_CLIENT_HELLO: i32 = 1;
4149pub const SSL3_MT_SERVER_HELLO: i32 = 2;
4150pub const SSL3_MT_NEW_SESSION_TICKET: i32 = 4;
4151pub const SSL3_MT_END_OF_EARLY_DATA: i32 = 5;
4152pub const SSL3_MT_ENCRYPTED_EXTENSIONS: i32 = 8;
4153pub const SSL3_MT_CERTIFICATE: i32 = 11;
4154pub const SSL3_MT_SERVER_KEY_EXCHANGE: i32 = 12;
4155pub const SSL3_MT_CERTIFICATE_REQUEST: i32 = 13;
4156pub const SSL3_MT_SERVER_HELLO_DONE: i32 = 14;
4157pub const SSL3_MT_CERTIFICATE_VERIFY: i32 = 15;
4158pub const SSL3_MT_CLIENT_KEY_EXCHANGE: i32 = 16;
4159pub const SSL3_MT_FINISHED: i32 = 20;
4160pub const SSL3_MT_CERTIFICATE_STATUS: i32 = 22;
4161pub const SSL3_MT_SUPPLEMENTAL_DATA: i32 = 23;
4162pub const SSL3_MT_KEY_UPDATE: i32 = 24;
4163pub const SSL3_MT_COMPRESSED_CERTIFICATE: i32 = 25;
4164pub const SSL3_MT_NEXT_PROTO: i32 = 67;
4165pub const SSL3_MT_CHANNEL_ID: i32 = 203;
4166pub const SSL3_MT_MESSAGE_HASH: i32 = 254;
4167pub const DTLS1_MT_HELLO_VERIFY_REQUEST: i32 = 3;
4168pub const SSL3_MT_SERVER_DONE: i32 = 14;
4169pub const SSL3_MT_NEWSESSION_TICKET: i32 = 4;
4170pub const SSL3_MT_CCS: i32 = 1;
4171pub const TLS1_AD_END_OF_EARLY_DATA: i32 = 1;
4172pub const TLS1_AD_DECRYPTION_FAILED: i32 = 21;
4173pub const TLS1_AD_RECORD_OVERFLOW: i32 = 22;
4174pub const TLS1_AD_UNKNOWN_CA: i32 = 48;
4175pub const TLS1_AD_ACCESS_DENIED: i32 = 49;
4176pub const TLS1_AD_DECODE_ERROR: i32 = 50;
4177pub const TLS1_AD_DECRYPT_ERROR: i32 = 51;
4178pub const TLS1_AD_EXPORT_RESTRICTION: i32 = 60;
4179pub const TLS1_AD_PROTOCOL_VERSION: i32 = 70;
4180pub const TLS1_AD_INSUFFICIENT_SECURITY: i32 = 71;
4181pub const TLS1_AD_INTERNAL_ERROR: i32 = 80;
4182pub const TLS1_AD_USER_CANCELLED: i32 = 90;
4183pub const TLS1_AD_NO_RENEGOTIATION: i32 = 100;
4184pub const TLS1_AD_MISSING_EXTENSION: i32 = 109;
4185pub const TLS1_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4186pub const TLS1_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4187pub const TLS1_AD_UNRECOGNIZED_NAME: i32 = 112;
4188pub const TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4189pub const TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4190pub const TLS1_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4191pub const TLS1_AD_CERTIFICATE_REQUIRED: i32 = 116;
4192pub const TLS1_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4193pub const TLS1_AD_ECH_REQUIRED: i32 = 121;
4194pub const TLSEXT_TYPE_server_name: i32 = 0;
4195pub const TLSEXT_TYPE_status_request: i32 = 5;
4196pub const TLSEXT_TYPE_ec_point_formats: i32 = 11;
4197pub const TLSEXT_TYPE_signature_algorithms: i32 = 13;
4198pub const TLSEXT_TYPE_srtp: i32 = 14;
4199pub const TLSEXT_TYPE_application_layer_protocol_negotiation: i32 = 16;
4200pub const TLSEXT_TYPE_client_cert_type: i32 = 19;
4201pub const TLSEXT_TYPE_server_cert_type: i32 = 20;
4202pub const TLSEXT_TYPE_padding: i32 = 21;
4203pub const TLSEXT_TYPE_extended_master_secret: i32 = 23;
4204pub const TLSEXT_TYPE_quic_transport_parameters_legacy: i32 = 65445;
4205pub const TLSEXT_TYPE_quic_transport_parameters: i32 = 57;
4206pub const TLSEXT_TYPE_quic_transport_parameters_standard: i32 = 57;
4207pub const TLSEXT_TYPE_cert_compression: i32 = 27;
4208pub const TLSEXT_TYPE_session_ticket: i32 = 35;
4209pub const TLSEXT_TYPE_supported_groups: i32 = 10;
4210pub const TLSEXT_TYPE_pre_shared_key: i32 = 41;
4211pub const TLSEXT_TYPE_early_data: i32 = 42;
4212pub const TLSEXT_TYPE_supported_versions: i32 = 43;
4213pub const TLSEXT_TYPE_cookie: i32 = 44;
4214pub const TLSEXT_TYPE_psk_key_exchange_modes: i32 = 45;
4215pub const TLSEXT_TYPE_certificate_authorities: i32 = 47;
4216pub const TLSEXT_TYPE_signature_algorithms_cert: i32 = 50;
4217pub const TLSEXT_TYPE_key_share: i32 = 51;
4218pub const TLSEXT_TYPE_renegotiate: i32 = 65281;
4219pub const TLSEXT_TYPE_delegated_credential: i32 = 34;
4220pub const TLSEXT_TYPE_application_settings_old: i32 = 17513;
4221pub const TLSEXT_TYPE_application_settings: i32 = 17613;
4222pub const TLSEXT_TYPE_encrypted_client_hello: i32 = 65037;
4223pub const TLSEXT_TYPE_ech_outer_extensions: i32 = 64768;
4224pub const TLSEXT_TYPE_pake: i32 = 35387;
4225pub const TLSEXT_TYPE_certificate_timestamp: i32 = 18;
4226pub const TLSEXT_TYPE_next_proto_neg: i32 = 13172;
4227pub const TLSEXT_TYPE_channel_id: i32 = 30032;
4228pub const TLSEXT_TYPE_trust_anchors: i32 = 51764;
4229pub const TLSEXT_TYPE_server_padding: i32 = 4832;
4230pub const TLSEXT_TYPE_tls_flags: i32 = 62;
4231pub const TLSEXT_STATUSTYPE_nothing: i32 = -1;
4232pub const TLSEXT_STATUSTYPE_ocsp: i32 = 1;
4233pub const TLSEXT_ECPOINTFORMAT_uncompressed: i32 = 0;
4234pub const TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime: i32 = 1;
4235pub const TLSEXT_signature_anonymous: i32 = 0;
4236pub const TLSEXT_signature_rsa: i32 = 1;
4237pub const TLSEXT_signature_dsa: i32 = 2;
4238pub const TLSEXT_signature_ecdsa: i32 = 3;
4239pub const TLSEXT_hash_none: i32 = 0;
4240pub const TLSEXT_hash_md5: i32 = 1;
4241pub const TLSEXT_hash_sha1: i32 = 2;
4242pub const TLSEXT_hash_sha224: i32 = 3;
4243pub const TLSEXT_hash_sha256: i32 = 4;
4244pub const TLSEXT_hash_sha384: i32 = 5;
4245pub const TLSEXT_hash_sha512: i32 = 6;
4246pub const TLSEXT_cert_compression_zlib: i32 = 1;
4247pub const TLSEXT_cert_compression_brotli: i32 = 2;
4248pub const TLSEXT_MAXLEN_host_name: i32 = 255;
4249pub const TLS1_CK_PSK_WITH_AES_128_CBC_SHA: i32 = 50331788;
4250pub const TLS1_CK_PSK_WITH_AES_256_CBC_SHA: i32 = 50331789;
4251pub const TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 50380853;
4252pub const TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 50380854;
4253pub const TLS1_CK_RSA_WITH_AES_128_SHA: i32 = 50331695;
4254pub const TLS1_CK_RSA_WITH_AES_256_SHA: i32 = 50331701;
4255pub const TLS1_CK_RSA_WITH_AES_128_GCM_SHA256: i32 = 50331804;
4256pub const TLS1_CK_RSA_WITH_AES_256_GCM_SHA384: i32 = 50331805;
4257pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 50380809;
4258pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 50380810;
4259pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 50380819;
4260pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 50380820;
4261pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 50380835;
4262pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 50380839;
4263pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 50380843;
4264pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 50380844;
4265pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 50380847;
4266pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 50380848;
4267pub const TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384040;
4268pub const TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384041;
4269pub const TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384044;
4270pub const TLS1_3_CK_AES_128_GCM_SHA256: i32 = 50336513;
4271pub const TLS1_3_CK_AES_256_GCM_SHA384: i32 = 50336514;
4272pub const TLS1_3_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4273pub const TLS1_CK_AES_128_GCM_SHA256: i32 = 50336513;
4274pub const TLS1_CK_AES_256_GCM_SHA384: i32 = 50336514;
4275pub const TLS1_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4276pub const TLS1_TXT_PSK_WITH_AES_128_CBC_SHA: &[u8; 19] = b"PSK-AES128-CBC-SHA\0";
4277pub const TLS1_TXT_PSK_WITH_AES_256_CBC_SHA: &[u8; 19] = b"PSK-AES256-CBC-SHA\0";
4278pub const TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES128-CBC-SHA\0";
4279pub const TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES256-CBC-SHA\0";
4280pub const TLS1_TXT_RSA_WITH_AES_128_SHA: &[u8; 11] = b"AES128-SHA\0";
4281pub const TLS1_TXT_RSA_WITH_AES_256_SHA: &[u8; 11] = b"AES256-SHA\0";
4282pub const TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256: &[u8; 18] = b"AES128-GCM-SHA256\0";
4283pub const TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384: &[u8; 18] = b"AES256-GCM-SHA384\0";
4284pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES128-SHA\0";
4285pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES256-SHA\0";
4286pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES128-SHA\0";
4287pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES256-SHA\0";
4288pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: &[u8; 26] = b"ECDHE-ECDSA-AES128-SHA256\0";
4289pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA256: &[u8; 24] = b"ECDHE-RSA-AES128-SHA256\0";
4290pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: &[u8; 30] =
4291    b"ECDHE-ECDSA-AES128-GCM-SHA256\0";
4292pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: &[u8; 30] =
4293    b"ECDHE-ECDSA-AES256-GCM-SHA384\0";
4294pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256: &[u8; 28] = b"ECDHE-RSA-AES128-GCM-SHA256\0";
4295pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384: &[u8; 28] = b"ECDHE-RSA-AES256-GCM-SHA384\0";
4296pub const TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4297    b"ECDHE-RSA-CHACHA20-POLY1305\0";
4298pub const TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 30] =
4299    b"ECDHE-ECDSA-CHACHA20-POLY1305\0";
4300pub const TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4301    b"ECDHE-PSK-CHACHA20-POLY1305\0";
4302pub const TLS1_3_RFC_AES_128_GCM_SHA256: &[u8; 23] = b"TLS_AES_128_GCM_SHA256\0";
4303pub const TLS1_3_RFC_AES_256_GCM_SHA384: &[u8; 23] = b"TLS_AES_256_GCM_SHA384\0";
4304pub const TLS1_3_RFC_CHACHA20_POLY1305_SHA256: &[u8; 29] = b"TLS_CHACHA20_POLY1305_SHA256\0";
4305pub const TLS_CT_RSA_SIGN: i32 = 1;
4306pub const TLS_CT_DSS_SIGN: i32 = 2;
4307pub const TLS_CT_RSA_FIXED_DH: i32 = 3;
4308pub const TLS_CT_DSS_FIXED_DH: i32 = 4;
4309pub const TLS_CT_ECDSA_SIGN: i32 = 64;
4310pub const TLS_CT_RSA_FIXED_ECDH: i32 = 65;
4311pub const TLS_CT_ECDSA_FIXED_ECDH: i32 = 66;
4312pub const SSL_KEY_UPDATE_REQUESTED: i32 = 1;
4313pub const SSL_KEY_UPDATE_NOT_REQUESTED: i32 = 0;
4314pub const SSL_ERROR_NONE: i32 = 0;
4315pub const SSL_ERROR_SSL: i32 = 1;
4316pub const SSL_ERROR_WANT_READ: i32 = 2;
4317pub const SSL_ERROR_WANT_WRITE: i32 = 3;
4318pub const SSL_ERROR_WANT_X509_LOOKUP: i32 = 4;
4319pub const SSL_ERROR_SYSCALL: i32 = 5;
4320pub const SSL_ERROR_ZERO_RETURN: i32 = 6;
4321pub const SSL_ERROR_WANT_CONNECT: i32 = 7;
4322pub const SSL_ERROR_WANT_ACCEPT: i32 = 8;
4323pub const SSL_ERROR_WANT_CHANNEL_ID_LOOKUP: i32 = 9;
4324pub const SSL_ERROR_PENDING_SESSION: i32 = 11;
4325pub const SSL_ERROR_PENDING_CERTIFICATE: i32 = 12;
4326pub const SSL_ERROR_WANT_PRIVATE_KEY_OPERATION: i32 = 13;
4327pub const SSL_ERROR_PENDING_TICKET: i32 = 14;
4328pub const SSL_ERROR_EARLY_DATA_REJECTED: i32 = 15;
4329pub const SSL_ERROR_WANT_CERTIFICATE_VERIFY: i32 = 16;
4330pub const SSL_ERROR_HANDOFF: i32 = 17;
4331pub const SSL_ERROR_HANDBACK: i32 = 18;
4332pub const SSL_ERROR_WANT_RENEGOTIATE: i32 = 19;
4333pub const SSL_ERROR_HANDSHAKE_HINTS_READY: i32 = 20;
4334pub const DTLS1_VERSION_MAJOR: i32 = 254;
4335pub const SSL3_VERSION_MAJOR: i32 = 3;
4336pub const SSL3_VERSION: i32 = 768;
4337pub const TLS1_VERSION: i32 = 769;
4338pub const TLS1_1_VERSION: i32 = 770;
4339pub const TLS1_2_VERSION: i32 = 771;
4340pub const TLS1_3_VERSION: i32 = 772;
4341pub const DTLS1_VERSION: i32 = 65279;
4342pub const DTLS1_2_VERSION: i32 = 65277;
4343pub const DTLS1_3_VERSION: i32 = 65276;
4344pub const SSL_OP_LEGACY_SERVER_CONNECT: i32 = 4;
4345pub const SSL_OP_NO_QUERY_MTU: i32 = 4096;
4346pub const SSL_OP_NO_TICKET: i32 = 16384;
4347pub const SSL_OP_CIPHER_SERVER_PREFERENCE: i32 = 4194304;
4348pub const SSL_OP_ALL: i32 = 4;
4349pub const SSL_OP_NO_TLSv1: i32 = 67108864;
4350pub const SSL_OP_NO_TLSv1_2: i32 = 134217728;
4351pub const SSL_OP_NO_TLSv1_1: i32 = 268435456;
4352pub const SSL_OP_NO_TLSv1_3: i32 = 536870912;
4353pub const SSL_OP_NO_DTLSv1: i32 = 67108864;
4354pub const SSL_OP_NO_DTLSv1_2: i32 = 134217728;
4355pub const SSL_MODE_ENABLE_PARTIAL_WRITE: i32 = 1;
4356pub const SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER: i32 = 2;
4357pub const SSL_MODE_NO_AUTO_CHAIN: i32 = 8;
4358pub const SSL_MODE_ENABLE_FALSE_START: i32 = 128;
4359pub const SSL_MODE_CBC_RECORD_SPLITTING: i32 = 256;
4360pub const SSL_MODE_NO_SESSION_CREATION: i32 = 512;
4361pub const SSL_MODE_SEND_FALLBACK_SCSV: i32 = 1024;
4362pub const SSL_SIGN_RSA_PKCS1_SHA1: i32 = 513;
4363pub const SSL_SIGN_RSA_PKCS1_SHA256: i32 = 1025;
4364pub const SSL_SIGN_RSA_PKCS1_SHA384: i32 = 1281;
4365pub const SSL_SIGN_RSA_PKCS1_SHA512: i32 = 1537;
4366pub const SSL_SIGN_ECDSA_SHA1: i32 = 515;
4367pub const SSL_SIGN_ECDSA_SECP256R1_SHA256: i32 = 1027;
4368pub const SSL_SIGN_ECDSA_SECP384R1_SHA384: i32 = 1283;
4369pub const SSL_SIGN_ECDSA_SECP521R1_SHA512: i32 = 1539;
4370pub const SSL_SIGN_RSA_PSS_RSAE_SHA256: i32 = 2052;
4371pub const SSL_SIGN_RSA_PSS_RSAE_SHA384: i32 = 2053;
4372pub const SSL_SIGN_RSA_PSS_RSAE_SHA512: i32 = 2054;
4373pub const SSL_SIGN_ED25519: i32 = 2055;
4374pub const SSL_SIGN_ML_DSA_44: i32 = 2308;
4375pub const SSL_SIGN_ML_DSA_65: i32 = 2309;
4376pub const SSL_SIGN_ML_DSA_87: i32 = 2310;
4377pub const SSL_SIGN_RSA_PKCS1_SHA256_LEGACY: i32 = 1056;
4378pub const SSL_SIGN_RSA_PKCS1_MD5_SHA1: i32 = 65281;
4379pub const SSL_FILETYPE_PEM: i32 = 1;
4380pub const SSL_FILETYPE_ASN1: i32 = 2;
4381pub const SSL_CIPHER_AES_128_GCM_SHA256: i32 = 4865;
4382pub const SSL_CIPHER_AES_256_GCM_SHA384: i32 = 4866;
4383pub const SSL_CIPHER_CHACHA20_POLY1305_SHA256: i32 = 4867;
4384pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 49195;
4385pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 49196;
4386pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 49199;
4387pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 49200;
4388pub const SSL_CIPHER_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52392;
4389pub const SSL_CIPHER_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52393;
4390pub const SSL_CIPHER_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 52396;
4391pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 49161;
4392pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 49162;
4393pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 49171;
4394pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 49172;
4395pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 49205;
4396pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 49206;
4397pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 49187;
4398pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 49191;
4399pub const SSL_CIPHER_RSA_WITH_AES_128_GCM_SHA256: i32 = 156;
4400pub const SSL_CIPHER_RSA_WITH_AES_256_GCM_SHA384: i32 = 157;
4401pub const SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA: i32 = 47;
4402pub const SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA: i32 = 53;
4403pub const SSL_CIPHER_PSK_WITH_AES_128_CBC_SHA: i32 = 140;
4404pub const SSL_CIPHER_PSK_WITH_AES_256_CBC_SHA: i32 = 141;
4405pub const SSL_CIPHER_RSA_WITH_3DES_EDE_CBC_SHA: i32 = 10;
4406pub const SSL_CIPHER_EMPTY_RENEGOTIATION_INFO_SCSV: i32 = 255;
4407pub const SSL_CIPHER_FALLBACK_SCSV: i32 = 22016;
4408pub const SSL_DEFAULT_CIPHER_LIST: &[u8; 4] = b"ALL\0";
4409pub const SSL_CIPHER_FLAG_EQUAL_PREFERENCE_WITH_NEXT: i32 = 1;
4410pub const SSL_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4411pub const SSL_MAX_MASTER_KEY_LENGTH: i32 = 48;
4412pub const SSL_SESS_CACHE_OFF: i32 = 0;
4413pub const SSL_SESS_CACHE_CLIENT: i32 = 1;
4414pub const SSL_SESS_CACHE_SERVER: i32 = 2;
4415pub const SSL_SESS_CACHE_BOTH: i32 = 3;
4416pub const SSL_SESS_CACHE_NO_AUTO_CLEAR: i32 = 128;
4417pub const SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: i32 = 256;
4418pub const SSL_SESS_CACHE_NO_INTERNAL_STORE: i32 = 512;
4419pub const SSL_SESS_CACHE_NO_INTERNAL: i32 = 768;
4420pub const SSL_DEFAULT_SESSION_TIMEOUT: i32 = 7200;
4421pub const SSL_DEFAULT_SESSION_PSK_DHE_TIMEOUT: i32 = 172800;
4422pub const SSL_DEFAULT_SESSION_AUTH_TIMEOUT: i32 = 604800;
4423pub const SSL_MAX_SID_CTX_LENGTH: i32 = 32;
4424pub const SSL_SESSION_CACHE_MAX_SIZE_DEFAULT: i32 = 20480;
4425pub const SSL_DEFAULT_TICKET_KEY_ROTATION_INTERVAL: i32 = 172800;
4426pub const SSL_TICKET_KEY_NAME_LEN: i32 = 16;
4427pub const SSL_GROUP_SECP256R1: i32 = 23;
4428pub const SSL_GROUP_SECP384R1: i32 = 24;
4429pub const SSL_GROUP_SECP521R1: i32 = 25;
4430pub const SSL_GROUP_X25519: i32 = 29;
4431pub const SSL_GROUP_X25519_MLKEM768: i32 = 4588;
4432pub const SSL_GROUP_MLKEM1024: i32 = 514;
4433pub const SSL_GROUP_FLAG_EQUAL_PREFERENCE_WITH_NEXT: i32 = 1;
4434pub const SSL_VERIFY_NONE: i32 = 0;
4435pub const SSL_VERIFY_PEER: i32 = 1;
4436pub const SSL_VERIFY_FAIL_IF_NO_PEER_CERT: i32 = 2;
4437pub const TLSEXT_NAMETYPE_host_name: i32 = 0;
4438pub const SSL_TLSEXT_ERR_OK: i32 = 0;
4439pub const SSL_TLSEXT_ERR_ALERT_WARNING: i32 = 1;
4440pub const SSL_TLSEXT_ERR_ALERT_FATAL: i32 = 2;
4441pub const SSL_TLSEXT_ERR_NOACK: i32 = 3;
4442pub const OPENSSL_NPN_UNSUPPORTED: i32 = 0;
4443pub const OPENSSL_NPN_NEGOTIATED: i32 = 1;
4444pub const OPENSSL_NPN_NO_OVERLAP: i32 = 2;
4445pub const SRTP_AES128_CM_SHA1_80: i32 = 1;
4446pub const SRTP_AES128_CM_SHA1_32: i32 = 2;
4447pub const SRTP_AES128_F8_SHA1_80: i32 = 3;
4448pub const SRTP_AES128_F8_SHA1_32: i32 = 4;
4449pub const SRTP_NULL_SHA1_80: i32 = 5;
4450pub const SRTP_NULL_SHA1_32: i32 = 6;
4451pub const SRTP_AEAD_AES_128_GCM: i32 = 7;
4452pub const SRTP_AEAD_AES_256_GCM: i32 = 8;
4453pub const PSK_MAX_IDENTITY_LEN: i32 = 128;
4454pub const PSK_MAX_PSK_LEN: i32 = 256;
4455pub const TLSEXT_cert_type_x509: i32 = 0;
4456pub const TLSEXT_cert_type_rpk: i32 = 2;
4457pub const SSL_PAKE_SPAKE2PLUSV1: i32 = 32150;
4458pub const SSL_AD_REASON_OFFSET: i32 = 1000;
4459pub const SSL_AD_CLOSE_NOTIFY: i32 = 0;
4460pub const SSL_AD_UNEXPECTED_MESSAGE: i32 = 10;
4461pub const SSL_AD_BAD_RECORD_MAC: i32 = 20;
4462pub const SSL_AD_DECRYPTION_FAILED: i32 = 21;
4463pub const SSL_AD_RECORD_OVERFLOW: i32 = 22;
4464pub const SSL_AD_DECOMPRESSION_FAILURE: i32 = 30;
4465pub const SSL_AD_HANDSHAKE_FAILURE: i32 = 40;
4466pub const SSL_AD_NO_CERTIFICATE: i32 = 41;
4467pub const SSL_AD_BAD_CERTIFICATE: i32 = 42;
4468pub const SSL_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4469pub const SSL_AD_CERTIFICATE_REVOKED: i32 = 44;
4470pub const SSL_AD_CERTIFICATE_EXPIRED: i32 = 45;
4471pub const SSL_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4472pub const SSL_AD_ILLEGAL_PARAMETER: i32 = 47;
4473pub const SSL_AD_UNKNOWN_CA: i32 = 48;
4474pub const SSL_AD_ACCESS_DENIED: i32 = 49;
4475pub const SSL_AD_DECODE_ERROR: i32 = 50;
4476pub const SSL_AD_DECRYPT_ERROR: i32 = 51;
4477pub const SSL_AD_EXPORT_RESTRICTION: i32 = 60;
4478pub const SSL_AD_PROTOCOL_VERSION: i32 = 70;
4479pub const SSL_AD_INSUFFICIENT_SECURITY: i32 = 71;
4480pub const SSL_AD_INTERNAL_ERROR: i32 = 80;
4481pub const SSL_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4482pub const SSL_AD_USER_CANCELLED: i32 = 90;
4483pub const SSL_AD_NO_RENEGOTIATION: i32 = 100;
4484pub const SSL_AD_MISSING_EXTENSION: i32 = 109;
4485pub const SSL_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4486pub const SSL_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4487pub const SSL_AD_UNRECOGNIZED_NAME: i32 = 112;
4488pub const SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4489pub const SSL_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4490pub const SSL_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4491pub const SSL_AD_CERTIFICATE_REQUIRED: i32 = 116;
4492pub const SSL_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4493pub const SSL_AD_ECH_REQUIRED: i32 = 121;
4494pub const SSL_MAX_CERT_LIST_DEFAULT: i32 = 102400;
4495pub const SSL_ST_CONNECT: i32 = 4096;
4496pub const SSL_ST_ACCEPT: i32 = 8192;
4497pub const SSL_ST_MASK: i32 = 4095;
4498pub const SSL_ST_INIT: i32 = 12288;
4499pub const SSL_ST_OK: i32 = 3;
4500pub const SSL_ST_RENEGOTIATE: i32 = 12292;
4501pub const SSL_ST_BEFORE: i32 = 12293;
4502pub const TLS_ST_OK: i32 = 3;
4503pub const TLS_ST_BEFORE: i32 = 12293;
4504pub const SSL_CB_LOOP: i32 = 1;
4505pub const SSL_CB_EXIT: i32 = 2;
4506pub const SSL_CB_READ: i32 = 4;
4507pub const SSL_CB_WRITE: i32 = 8;
4508pub const SSL_CB_ALERT: i32 = 16384;
4509pub const SSL_CB_READ_ALERT: i32 = 16388;
4510pub const SSL_CB_WRITE_ALERT: i32 = 16392;
4511pub const SSL_CB_ACCEPT_LOOP: i32 = 8193;
4512pub const SSL_CB_ACCEPT_EXIT: i32 = 8194;
4513pub const SSL_CB_CONNECT_LOOP: i32 = 4097;
4514pub const SSL_CB_CONNECT_EXIT: i32 = 4098;
4515pub const SSL_CB_HANDSHAKE_START: i32 = 16;
4516pub const SSL_CB_HANDSHAKE_DONE: i32 = 32;
4517pub const SSL_SENT_SHUTDOWN: i32 = 1;
4518pub const SSL_RECEIVED_SHUTDOWN: i32 = 2;
4519pub const SSL_MODE_HANDSHAKE_CUTTHROUGH: i32 = 128;
4520pub const SSL_MODE_AUTO_RETRY: i32 = 0;
4521pub const SSL_MODE_RELEASE_BUFFERS: i32 = 0;
4522pub const SSL_MODE_SEND_CLIENTHELLO_TIME: i32 = 0;
4523pub const SSL_MODE_SEND_SERVERHELLO_TIME: i32 = 0;
4524pub const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: i32 = 0;
4525pub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: i32 = 0;
4526pub const SSL_OP_EPHEMERAL_RSA: i32 = 0;
4527pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: i32 = 0;
4528pub const SSL_OP_MICROSOFT_SESS_ID_BUG: i32 = 0;
4529pub const SSL_OP_MSIE_SSLV2_RSA_PADDING: i32 = 0;
4530pub const SSL_OP_NETSCAPE_CA_DN_BUG: i32 = 0;
4531pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: i32 = 0;
4532pub const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: i32 = 0;
4533pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: i32 = 0;
4534pub const SSL_OP_NO_COMPRESSION: i32 = 0;
4535pub const SSL_OP_NO_RENEGOTIATION: i32 = 0;
4536pub const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: i32 = 0;
4537pub const SSL_OP_NO_SSLv2: i32 = 0;
4538pub const SSL_OP_NO_SSLv3: i32 = 0;
4539pub const SSL_OP_PKCS1_CHECK_1: i32 = 0;
4540pub const SSL_OP_PKCS1_CHECK_2: i32 = 0;
4541pub const SSL_OP_SINGLE_DH_USE: i32 = 0;
4542pub const SSL_OP_SINGLE_ECDH_USE: i32 = 0;
4543pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: i32 = 0;
4544pub const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: i32 = 0;
4545pub const SSL_OP_TLS_BLOCK_PADDING_BUG: i32 = 0;
4546pub const SSL_OP_TLS_D5_BUG: i32 = 0;
4547pub const SSL_OP_TLS_ROLLBACK_BUG: i32 = 0;
4548pub const SSL_VERIFY_CLIENT_ONCE: i32 = 0;
4549pub const SSL_NOTHING: i32 = 0;
4550pub const SSL_WRITING: i32 = 3;
4551pub const SSL_READING: i32 = 2;
4552pub const SSL_TXT_MEDIUM: &[u8; 7] = b"MEDIUM\0";
4553pub const SSL_TXT_HIGH: &[u8; 5] = b"HIGH\0";
4554pub const SSL_TXT_FIPS: &[u8; 5] = b"FIPS\0";
4555pub const SSL_TXT_kRSA: &[u8; 5] = b"kRSA\0";
4556pub const SSL_TXT_kDHE: &[u8; 5] = b"kDHE\0";
4557pub const SSL_TXT_kEDH: &[u8; 5] = b"kEDH\0";
4558pub const SSL_TXT_kECDHE: &[u8; 7] = b"kECDHE\0";
4559pub const SSL_TXT_kEECDH: &[u8; 7] = b"kEECDH\0";
4560pub const SSL_TXT_kPSK: &[u8; 5] = b"kPSK\0";
4561pub const SSL_TXT_aRSA: &[u8; 5] = b"aRSA\0";
4562pub const SSL_TXT_aECDSA: &[u8; 7] = b"aECDSA\0";
4563pub const SSL_TXT_aPSK: &[u8; 5] = b"aPSK\0";
4564pub const SSL_TXT_DH: &[u8; 3] = b"DH\0";
4565pub const SSL_TXT_DHE: &[u8; 4] = b"DHE\0";
4566pub const SSL_TXT_EDH: &[u8; 4] = b"EDH\0";
4567pub const SSL_TXT_RSA: &[u8; 4] = b"RSA\0";
4568pub const SSL_TXT_ECDH: &[u8; 5] = b"ECDH\0";
4569pub const SSL_TXT_ECDHE: &[u8; 6] = b"ECDHE\0";
4570pub const SSL_TXT_EECDH: &[u8; 6] = b"EECDH\0";
4571pub const SSL_TXT_ECDSA: &[u8; 6] = b"ECDSA\0";
4572pub const SSL_TXT_PSK: &[u8; 4] = b"PSK\0";
4573pub const SSL_TXT_3DES: &[u8; 5] = b"3DES\0";
4574pub const SSL_TXT_RC4: &[u8; 4] = b"RC4\0";
4575pub const SSL_TXT_AES128: &[u8; 7] = b"AES128\0";
4576pub const SSL_TXT_AES256: &[u8; 7] = b"AES256\0";
4577pub const SSL_TXT_AES: &[u8; 4] = b"AES\0";
4578pub const SSL_TXT_AES_GCM: &[u8; 7] = b"AESGCM\0";
4579pub const SSL_TXT_CHACHA20: &[u8; 9] = b"CHACHA20\0";
4580pub const SSL_TXT_MD5: &[u8; 4] = b"MD5\0";
4581pub const SSL_TXT_SHA1: &[u8; 5] = b"SHA1\0";
4582pub const SSL_TXT_SHA: &[u8; 4] = b"SHA\0";
4583pub const SSL_TXT_SHA256: &[u8; 7] = b"SHA256\0";
4584pub const SSL_TXT_SHA384: &[u8; 7] = b"SHA384\0";
4585pub const SSL_TXT_SSLV3: &[u8; 6] = b"SSLv3\0";
4586pub const SSL_TXT_TLSV1: &[u8; 6] = b"TLSv1\0";
4587pub const SSL_TXT_TLSV1_1: &[u8; 8] = b"TLSv1.1\0";
4588pub const SSL_TXT_TLSV1_2: &[u8; 8] = b"TLSv1.2\0";
4589pub const SSL_TXT_TLSV1_3: &[u8; 8] = b"TLSv1.3\0";
4590pub const SSL_TXT_ALL: &[u8; 4] = b"ALL\0";
4591pub const SSL_TXT_CMPDEF: &[u8; 20] = b"COMPLEMENTOFDEFAULT\0";
4592pub const OPENSSL_INIT_NO_LOAD_SSL_STRINGS: i32 = 0;
4593pub const OPENSSL_INIT_LOAD_SSL_STRINGS: i32 = 0;
4594pub const OPENSSL_INIT_SSL_DEFAULT: i32 = 0;
4595pub const SSL_SIGN_RSA_PSS_SHA256: i32 = 2052;
4596pub const SSL_SIGN_RSA_PSS_SHA384: i32 = 2053;
4597pub const SSL_SIGN_RSA_PSS_SHA512: i32 = 2054;
4598pub const SSL_CURVE_SECP256R1: i32 = 23;
4599pub const SSL_CURVE_SECP384R1: i32 = 24;
4600pub const SSL_CURVE_SECP521R1: i32 = 25;
4601pub const SSL_CURVE_X25519: i32 = 29;
4602pub const TLSEXT_nid_unknown: i32 = 16777216;
4603pub const SSL_R_APP_DATA_IN_HANDSHAKE: i32 = 100;
4604pub const SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT: i32 = 101;
4605pub const SSL_R_BAD_ALERT: i32 = 102;
4606pub const SSL_R_BAD_CHANGE_CIPHER_SPEC: i32 = 103;
4607pub const SSL_R_BAD_DATA_RETURNED_BY_CALLBACK: i32 = 104;
4608pub const SSL_R_BAD_DH_P_LENGTH: i32 = 105;
4609pub const SSL_R_BAD_DIGEST_LENGTH: i32 = 106;
4610pub const SSL_R_BAD_ECC_CERT: i32 = 107;
4611pub const SSL_R_BAD_ECPOINT: i32 = 108;
4612pub const SSL_R_BAD_HANDSHAKE_RECORD: i32 = 109;
4613pub const SSL_R_BAD_HELLO_REQUEST: i32 = 110;
4614pub const SSL_R_BAD_LENGTH: i32 = 111;
4615pub const SSL_R_BAD_PACKET_LENGTH: i32 = 112;
4616pub const SSL_R_BAD_RSA_ENCRYPT: i32 = 113;
4617pub const SSL_R_BAD_SIGNATURE: i32 = 114;
4618pub const SSL_R_BAD_SRTP_MKI_VALUE: i32 = 115;
4619pub const SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST: i32 = 116;
4620pub const SSL_R_BAD_SSL_FILETYPE: i32 = 117;
4621pub const SSL_R_BAD_WRITE_RETRY: i32 = 118;
4622pub const SSL_R_BIO_NOT_SET: i32 = 119;
4623pub const SSL_R_BN_LIB: i32 = 120;
4624pub const SSL_R_BUFFER_TOO_SMALL: i32 = 121;
4625pub const SSL_R_CA_DN_LENGTH_MISMATCH: i32 = 122;
4626pub const SSL_R_CA_DN_TOO_LONG: i32 = 123;
4627pub const SSL_R_CCS_RECEIVED_EARLY: i32 = 124;
4628pub const SSL_R_CERTIFICATE_VERIFY_FAILED: i32 = 125;
4629pub const SSL_R_CERT_CB_ERROR: i32 = 126;
4630pub const SSL_R_CERT_LENGTH_MISMATCH: i32 = 127;
4631pub const SSL_R_CHANNEL_ID_NOT_P256: i32 = 128;
4632pub const SSL_R_CHANNEL_ID_SIGNATURE_INVALID: i32 = 129;
4633pub const SSL_R_CIPHER_OR_HASH_UNAVAILABLE: i32 = 130;
4634pub const SSL_R_CLIENTHELLO_PARSE_FAILED: i32 = 131;
4635pub const SSL_R_CLIENTHELLO_TLSEXT: i32 = 132;
4636pub const SSL_R_CONNECTION_REJECTED: i32 = 133;
4637pub const SSL_R_CONNECTION_TYPE_NOT_SET: i32 = 134;
4638pub const SSL_R_CUSTOM_EXTENSION_ERROR: i32 = 135;
4639pub const SSL_R_DATA_LENGTH_TOO_LONG: i32 = 136;
4640pub const SSL_R_DECODE_ERROR: i32 = 137;
4641pub const SSL_R_DECRYPTION_FAILED: i32 = 138;
4642pub const SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC: i32 = 139;
4643pub const SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG: i32 = 140;
4644pub const SSL_R_DH_P_TOO_LONG: i32 = 141;
4645pub const SSL_R_DIGEST_CHECK_FAILED: i32 = 142;
4646pub const SSL_R_DTLS_MESSAGE_TOO_BIG: i32 = 143;
4647pub const SSL_R_ECC_CERT_NOT_FOR_SIGNING: i32 = 144;
4648pub const SSL_R_EMS_STATE_INCONSISTENT: i32 = 145;
4649pub const SSL_R_ENCRYPTED_LENGTH_TOO_LONG: i32 = 146;
4650pub const SSL_R_ERROR_ADDING_EXTENSION: i32 = 147;
4651pub const SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST: i32 = 148;
4652pub const SSL_R_ERROR_PARSING_EXTENSION: i32 = 149;
4653pub const SSL_R_EXCESSIVE_MESSAGE_SIZE: i32 = 150;
4654pub const SSL_R_EXTRA_DATA_IN_MESSAGE: i32 = 151;
4655pub const SSL_R_FRAGMENT_MISMATCH: i32 = 152;
4656pub const SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION: i32 = 153;
4657pub const SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO: i32 = 154;
4658pub const SSL_R_HTTPS_PROXY_REQUEST: i32 = 155;
4659pub const SSL_R_HTTP_REQUEST: i32 = 156;
4660pub const SSL_R_INAPPROPRIATE_FALLBACK: i32 = 157;
4661pub const SSL_R_INVALID_COMMAND: i32 = 158;
4662pub const SSL_R_INVALID_MESSAGE: i32 = 159;
4663pub const SSL_R_INVALID_SSL_SESSION: i32 = 160;
4664pub const SSL_R_INVALID_TICKET_KEYS_LENGTH: i32 = 161;
4665pub const SSL_R_LENGTH_MISMATCH: i32 = 162;
4666pub const SSL_R_MISSING_EXTENSION: i32 = 164;
4667pub const SSL_R_MISSING_RSA_CERTIFICATE: i32 = 165;
4668pub const SSL_R_MISSING_TMP_DH_KEY: i32 = 166;
4669pub const SSL_R_MISSING_TMP_ECDH_KEY: i32 = 167;
4670pub const SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS: i32 = 168;
4671pub const SSL_R_MTU_TOO_SMALL: i32 = 169;
4672pub const SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN: i32 = 170;
4673pub const SSL_R_NESTED_GROUP: i32 = 171;
4674pub const SSL_R_NO_CERTIFICATES_RETURNED: i32 = 172;
4675pub const SSL_R_NO_CERTIFICATE_ASSIGNED: i32 = 173;
4676pub const SSL_R_NO_CERTIFICATE_SET: i32 = 174;
4677pub const SSL_R_NO_CIPHERS_AVAILABLE: i32 = 175;
4678pub const SSL_R_NO_CIPHERS_PASSED: i32 = 176;
4679pub const SSL_R_NO_CIPHER_MATCH: i32 = 177;
4680pub const SSL_R_NO_COMPRESSION_SPECIFIED: i32 = 178;
4681pub const SSL_R_NO_METHOD_SPECIFIED: i32 = 179;
4682pub const SSL_R_NO_PRIVATE_KEY_ASSIGNED: i32 = 181;
4683pub const SSL_R_NO_RENEGOTIATION: i32 = 182;
4684pub const SSL_R_NO_REQUIRED_DIGEST: i32 = 183;
4685pub const SSL_R_NO_SHARED_CIPHER: i32 = 184;
4686pub const SSL_R_NULL_SSL_CTX: i32 = 185;
4687pub const SSL_R_NULL_SSL_METHOD_PASSED: i32 = 186;
4688pub const SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED: i32 = 187;
4689pub const SSL_R_OLD_SESSION_VERSION_NOT_RETURNED: i32 = 188;
4690pub const SSL_R_OUTPUT_ALIASES_INPUT: i32 = 189;
4691pub const SSL_R_PARSE_TLSEXT: i32 = 190;
4692pub const SSL_R_PATH_TOO_LONG: i32 = 191;
4693pub const SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE: i32 = 192;
4694pub const SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE: i32 = 193;
4695pub const SSL_R_PROTOCOL_IS_SHUTDOWN: i32 = 194;
4696pub const SSL_R_PSK_IDENTITY_NOT_FOUND: i32 = 195;
4697pub const SSL_R_PSK_NO_CLIENT_CB: i32 = 196;
4698pub const SSL_R_PSK_NO_SERVER_CB: i32 = 197;
4699pub const SSL_R_READ_TIMEOUT_EXPIRED: i32 = 198;
4700pub const SSL_R_RECORD_LENGTH_MISMATCH: i32 = 199;
4701pub const SSL_R_RECORD_TOO_LARGE: i32 = 200;
4702pub const SSL_R_RENEGOTIATION_ENCODING_ERR: i32 = 201;
4703pub const SSL_R_RENEGOTIATION_MISMATCH: i32 = 202;
4704pub const SSL_R_REQUIRED_CIPHER_MISSING: i32 = 203;
4705pub const SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION: i32 = 204;
4706pub const SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION: i32 = 205;
4707pub const SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING: i32 = 206;
4708pub const SSL_R_SERVERHELLO_TLSEXT: i32 = 207;
4709pub const SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED: i32 = 208;
4710pub const SSL_R_SESSION_MAY_NOT_BE_CREATED: i32 = 209;
4711pub const SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER: i32 = 210;
4712pub const SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES: i32 = 211;
4713pub const SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE: i32 = 212;
4714pub const SSL_R_SSL3_EXT_INVALID_SERVERNAME: i32 = 213;
4715pub const SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION: i32 = 214;
4716pub const SSL_R_SSL_HANDSHAKE_FAILURE: i32 = 215;
4717pub const SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG: i32 = 216;
4718pub const SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST: i32 = 217;
4719pub const SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG: i32 = 218;
4720pub const SSL_R_TOO_MANY_EMPTY_FRAGMENTS: i32 = 219;
4721pub const SSL_R_TOO_MANY_WARNING_ALERTS: i32 = 220;
4722pub const SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS: i32 = 221;
4723pub const SSL_R_UNEXPECTED_EXTENSION: i32 = 222;
4724pub const SSL_R_UNEXPECTED_MESSAGE: i32 = 223;
4725pub const SSL_R_UNEXPECTED_OPERATOR_IN_GROUP: i32 = 224;
4726pub const SSL_R_UNEXPECTED_RECORD: i32 = 225;
4727pub const SSL_R_UNINITIALIZED: i32 = 226;
4728pub const SSL_R_UNKNOWN_ALERT_TYPE: i32 = 227;
4729pub const SSL_R_UNKNOWN_CERTIFICATE_TYPE: i32 = 228;
4730pub const SSL_R_UNKNOWN_CIPHER_RETURNED: i32 = 229;
4731pub const SSL_R_UNKNOWN_CIPHER_TYPE: i32 = 230;
4732pub const SSL_R_UNKNOWN_DIGEST: i32 = 231;
4733pub const SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE: i32 = 232;
4734pub const SSL_R_UNKNOWN_PROTOCOL: i32 = 233;
4735pub const SSL_R_UNKNOWN_SSL_VERSION: i32 = 234;
4736pub const SSL_R_UNKNOWN_STATE: i32 = 235;
4737pub const SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED: i32 = 236;
4738pub const SSL_R_UNSUPPORTED_CIPHER: i32 = 237;
4739pub const SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM: i32 = 238;
4740pub const SSL_R_UNSUPPORTED_ELLIPTIC_CURVE: i32 = 239;
4741pub const SSL_R_UNSUPPORTED_PROTOCOL: i32 = 240;
4742pub const SSL_R_WRONG_CERTIFICATE_TYPE: i32 = 241;
4743pub const SSL_R_WRONG_CIPHER_RETURNED: i32 = 242;
4744pub const SSL_R_WRONG_CURVE: i32 = 243;
4745pub const SSL_R_WRONG_MESSAGE_TYPE: i32 = 244;
4746pub const SSL_R_WRONG_SIGNATURE_TYPE: i32 = 245;
4747pub const SSL_R_WRONG_SSL_VERSION: i32 = 246;
4748pub const SSL_R_WRONG_VERSION_NUMBER: i32 = 247;
4749pub const SSL_R_X509_LIB: i32 = 248;
4750pub const SSL_R_X509_VERIFICATION_SETUP_PROBLEMS: i32 = 249;
4751pub const SSL_R_SHUTDOWN_WHILE_IN_INIT: i32 = 250;
4752pub const SSL_R_INVALID_OUTER_RECORD_TYPE: i32 = 251;
4753pub const SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY: i32 = 252;
4754pub const SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS: i32 = 253;
4755pub const SSL_R_DOWNGRADE_DETECTED: i32 = 254;
4756pub const SSL_R_EXCESS_HANDSHAKE_DATA: i32 = 255;
4757pub const SSL_R_INVALID_COMPRESSION_LIST: i32 = 256;
4758pub const SSL_R_DUPLICATE_EXTENSION: i32 = 257;
4759pub const SSL_R_MISSING_KEY_SHARE: i32 = 258;
4760pub const SSL_R_INVALID_ALPN_PROTOCOL: i32 = 259;
4761pub const SSL_R_TOO_MANY_KEY_UPDATES: i32 = 260;
4762pub const SSL_R_BLOCK_CIPHER_PAD_IS_WRONG: i32 = 261;
4763pub const SSL_R_NO_CIPHERS_SPECIFIED: i32 = 262;
4764pub const SSL_R_RENEGOTIATION_EMS_MISMATCH: i32 = 263;
4765pub const SSL_R_DUPLICATE_KEY_SHARE: i32 = 264;
4766pub const SSL_R_NO_GROUPS_SPECIFIED: i32 = 265;
4767pub const SSL_R_NO_SHARED_GROUP: i32 = 266;
4768pub const SSL_R_PRE_SHARED_KEY_MUST_BE_LAST: i32 = 267;
4769pub const SSL_R_OLD_SESSION_PRF_HASH_MISMATCH: i32 = 268;
4770pub const SSL_R_INVALID_SCT_LIST: i32 = 269;
4771pub const SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA: i32 = 270;
4772pub const SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH: i32 = 271;
4773pub const SSL_R_CANNOT_PARSE_LEAF_CERT: i32 = 272;
4774pub const SSL_R_SERVER_CERT_CHANGED: i32 = 273;
4775pub const SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH: i32 = 274;
4776pub const SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD: i32 = 275;
4777pub const SSL_R_TICKET_ENCRYPTION_FAILED: i32 = 276;
4778pub const SSL_R_ALPN_MISMATCH_ON_EARLY_DATA: i32 = 277;
4779pub const SSL_R_WRONG_VERSION_ON_EARLY_DATA: i32 = 278;
4780pub const SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA: i32 = 279;
4781pub const SSL_R_NO_SUPPORTED_VERSIONS_ENABLED: i32 = 280;
4782pub const SSL_R_EMPTY_HELLO_RETRY_REQUEST: i32 = 282;
4783pub const SSL_R_EARLY_DATA_NOT_IN_USE: i32 = 283;
4784pub const SSL_R_HANDSHAKE_NOT_COMPLETE: i32 = 284;
4785pub const SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI: i32 = 285;
4786pub const SSL_R_SERVER_ECHOED_INVALID_SESSION_ID: i32 = 286;
4787pub const SSL_R_PRIVATE_KEY_OPERATION_FAILED: i32 = 287;
4788pub const SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH: i32 = 288;
4789pub const SSL_R_OCSP_CB_ERROR: i32 = 289;
4790pub const SSL_R_SSL_SESSION_ID_TOO_LONG: i32 = 290;
4791pub const SSL_R_APPLICATION_DATA_ON_SHUTDOWN: i32 = 291;
4792pub const SSL_R_CERT_DECOMPRESSION_FAILED: i32 = 292;
4793pub const SSL_R_UNCOMPRESSED_CERT_TOO_LARGE: i32 = 293;
4794pub const SSL_R_UNKNOWN_CERT_COMPRESSION_ALG: i32 = 294;
4795pub const SSL_R_INVALID_SIGNATURE_ALGORITHM: i32 = 295;
4796pub const SSL_R_DUPLICATE_SIGNATURE_ALGORITHM: i32 = 296;
4797pub const SSL_R_TLS13_DOWNGRADE: i32 = 297;
4798pub const SSL_R_QUIC_INTERNAL_ERROR: i32 = 298;
4799pub const SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED: i32 = 299;
4800pub const SSL_R_TOO_MUCH_READ_EARLY_DATA: i32 = 300;
4801pub const SSL_R_INVALID_DELEGATED_CREDENTIAL: i32 = 301;
4802pub const SSL_R_KEY_USAGE_BIT_INCORRECT: i32 = 302;
4803pub const SSL_R_INCONSISTENT_CLIENT_HELLO: i32 = 303;
4804pub const SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA: i32 = 304;
4805pub const SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED: i32 = 305;
4806pub const SSL_R_UNEXPECTED_COMPATIBILITY_MODE: i32 = 306;
4807pub const SSL_R_NO_APPLICATION_PROTOCOL: i32 = 307;
4808pub const SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN: i32 = 308;
4809pub const SSL_R_ALPS_MISMATCH_ON_EARLY_DATA: i32 = 309;
4810pub const SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH: i32 = 310;
4811pub const SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION: i32 = 311;
4812pub const SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG: i32 = 312;
4813pub const SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS: i32 = 313;
4814pub const SSL_R_INVALID_CLIENT_HELLO_INNER: i32 = 314;
4815pub const SSL_R_INVALID_ALPN_PROTOCOL_LIST: i32 = 315;
4816pub const SSL_R_COULD_NOT_PARSE_HINTS: i32 = 316;
4817pub const SSL_R_INVALID_ECH_PUBLIC_NAME: i32 = 317;
4818pub const SSL_R_INVALID_ECH_CONFIG_LIST: i32 = 318;
4819pub const SSL_R_ECH_REJECTED: i32 = 319;
4820pub const SSL_R_INVALID_OUTER_EXTENSION: i32 = 320;
4821pub const SSL_R_INCONSISTENT_ECH_NEGOTIATION: i32 = 321;
4822pub const SSL_R_INVALID_ALPS_CODEPOINT: i32 = 322;
4823pub const SSL_R_NO_MATCHING_ISSUER: i32 = 323;
4824pub const SSL_R_INVALID_SPAKE2PLUSV1_VALUE: i32 = 324;
4825pub const SSL_R_PAKE_EXHAUSTED: i32 = 325;
4826pub const SSL_R_PEER_PAKE_MISMATCH: i32 = 326;
4827pub const SSL_R_UNSUPPORTED_CREDENTIAL_LIST: i32 = 327;
4828pub const SSL_R_INVALID_TRUST_ANCHOR_LIST: i32 = 328;
4829pub const SSL_R_INVALID_CERTIFICATE_PROPERTY_LIST: i32 = 329;
4830pub const SSL_R_DUPLICATE_GROUP: i32 = 330;
4831pub const SSL_R_INVALID_PSK_FOR_CONNECTION: i32 = 331;
4832pub const SSL_R_NO_SUPPORTED_PSK_MODE: i32 = 332;
4833pub const SSL_R_INVALID_CERT_TYPES_LIST: i32 = 333;
4834pub const SSL_R_UNSUPPORTED_CERTIFICATE: i32 = 334;
4835pub const SSL_R_MISSING_KEY: i32 = 335;
4836pub const SSL_R_INVALID_RAW_PUBLIC_KEY: i32 = 336;
4837pub const SSL_R_UNUSABLE_ECH_CONFIG_LIST: i32 = 337;
4838pub const SSL_R_INVALID_CIPHER_FLAGS: i32 = 338;
4839pub const SSL_R_DUPLICATE_CIPHER: i32 = 339;
4840pub const SSL_R_SSLV3_ALERT_CLOSE_NOTIFY: i32 = 1000;
4841pub const SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE: i32 = 1010;
4842pub const SSL_R_SSLV3_ALERT_BAD_RECORD_MAC: i32 = 1020;
4843pub const SSL_R_TLSV1_ALERT_DECRYPTION_FAILED: i32 = 1021;
4844pub const SSL_R_TLSV1_ALERT_RECORD_OVERFLOW: i32 = 1022;
4845pub const SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE: i32 = 1030;
4846pub const SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE: i32 = 1040;
4847pub const SSL_R_SSLV3_ALERT_NO_CERTIFICATE: i32 = 1041;
4848pub const SSL_R_SSLV3_ALERT_BAD_CERTIFICATE: i32 = 1042;
4849pub const SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE: i32 = 1043;
4850pub const SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED: i32 = 1044;
4851pub const SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED: i32 = 1045;
4852pub const SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN: i32 = 1046;
4853pub const SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER: i32 = 1047;
4854pub const SSL_R_TLSV1_ALERT_UNKNOWN_CA: i32 = 1048;
4855pub const SSL_R_TLSV1_ALERT_ACCESS_DENIED: i32 = 1049;
4856pub const SSL_R_TLSV1_ALERT_DECODE_ERROR: i32 = 1050;
4857pub const SSL_R_TLSV1_ALERT_DECRYPT_ERROR: i32 = 1051;
4858pub const SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION: i32 = 1060;
4859pub const SSL_R_TLSV1_ALERT_PROTOCOL_VERSION: i32 = 1070;
4860pub const SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY: i32 = 1071;
4861pub const SSL_R_TLSV1_ALERT_INTERNAL_ERROR: i32 = 1080;
4862pub const SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK: i32 = 1086;
4863pub const SSL_R_TLSV1_ALERT_USER_CANCELLED: i32 = 1090;
4864pub const SSL_R_TLSV1_ALERT_NO_RENEGOTIATION: i32 = 1100;
4865pub const SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION: i32 = 1110;
4866pub const SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE: i32 = 1111;
4867pub const SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME: i32 = 1112;
4868pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 1113;
4869pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE: i32 = 1114;
4870pub const SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY: i32 = 1115;
4871pub const SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED: i32 = 1116;
4872pub const SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL: i32 = 1120;
4873pub const SSL_R_TLSV1_ALERT_ECH_REQUIRED: i32 = 1121;
4874pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4875pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4876pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4877pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4878pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4879pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4880pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4881pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4882pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4883pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4884pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4885pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4886pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4887pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4888pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4889pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4890pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4891pub const CRL_REASON_NONE: i32 = -1;
4892pub const CRL_REASON_UNSPECIFIED: i32 = 0;
4893pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
4894pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
4895pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
4896pub const CRL_REASON_SUPERSEDED: i32 = 4;
4897pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
4898pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
4899pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
4900pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
4901pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
4902pub const KU_DIGITAL_SIGNATURE: i32 = 128;
4903pub const KU_NON_REPUDIATION: i32 = 64;
4904pub const KU_KEY_ENCIPHERMENT: i32 = 32;
4905pub const KU_DATA_ENCIPHERMENT: i32 = 16;
4906pub const KU_KEY_AGREEMENT: i32 = 8;
4907pub const KU_KEY_CERT_SIGN: i32 = 4;
4908pub const KU_CRL_SIGN: i32 = 2;
4909pub const KU_ENCIPHER_ONLY: i32 = 1;
4910pub const KU_DECIPHER_ONLY: i32 = 32768;
4911pub type __uint64_t = ::core::ffi::c_ulong;
4912pub type __off_t = ::core::ffi::c_long;
4913pub type __off64_t = ::core::ffi::c_long;
4914pub type __time_t = ::core::ffi::c_long;
4915pub type __suseconds_t = ::core::ffi::c_long;
4916pub type time_t = __time_t;
4917#[repr(C)]
4918#[derive(Debug, Copy, Clone)]
4919pub struct timeval {
4920    pub tv_sec: __time_t,
4921    pub tv_usec: __suseconds_t,
4922}
4923pub type ossl_ssize_t = isize;
4924pub type CBS_ASN1_TAG = u32;
4925pub type CRYPTO_THREADID = ::core::ffi::c_int;
4926#[repr(C)]
4927#[derive(Debug)]
4928pub struct asn1_null_st {
4929    _unused: [u8; 0],
4930}
4931pub type ASN1_NULL = asn1_null_st;
4932#[repr(C)]
4933#[derive(Debug)]
4934pub struct crypto_must_be_null_st {
4935    _unused: [u8; 0],
4936}
4937pub type CRYPTO_MUST_BE_NULL = crypto_must_be_null_st;
4938pub type ASN1_BOOLEAN = ::core::ffi::c_int;
4939pub type ASN1_ITEM = ASN1_ITEM_st;
4940#[repr(C)]
4941#[derive(Debug)]
4942pub struct asn1_object_st {
4943    _unused: [u8; 0],
4944}
4945pub type ASN1_OBJECT = asn1_object_st;
4946#[repr(C)]
4947#[derive(Debug)]
4948pub struct asn1_pctx_st {
4949    _unused: [u8; 0],
4950}
4951pub type ASN1_PCTX = asn1_pctx_st;
4952pub type ASN1_BIT_STRING = asn1_string_st;
4953pub type ASN1_BMPSTRING = asn1_string_st;
4954pub type ASN1_ENUMERATED = asn1_string_st;
4955pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4956pub type ASN1_GENERALSTRING = asn1_string_st;
4957pub type ASN1_IA5STRING = asn1_string_st;
4958pub type ASN1_INTEGER = asn1_string_st;
4959pub type ASN1_OCTET_STRING = asn1_string_st;
4960pub type ASN1_PRINTABLESTRING = asn1_string_st;
4961pub type ASN1_STRING = asn1_string_st;
4962pub type ASN1_T61STRING = asn1_string_st;
4963pub type ASN1_TIME = asn1_string_st;
4964pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4965pub type ASN1_UTCTIME = asn1_string_st;
4966pub type ASN1_UTF8STRING = asn1_string_st;
4967pub type ASN1_VISIBLESTRING = asn1_string_st;
4968pub type ASN1_TYPE = asn1_type_st;
4969pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4970pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4971#[repr(C)]
4972#[derive(Debug)]
4973pub struct CMS_ContentInfo_st {
4974    _unused: [u8; 0],
4975}
4976pub type CMS_ContentInfo = CMS_ContentInfo_st;
4977#[repr(C)]
4978#[derive(Debug)]
4979pub struct CMS_SignerInfo_st {
4980    _unused: [u8; 0],
4981}
4982pub type CMS_SignerInfo = CMS_SignerInfo_st;
4983pub type DIST_POINT = DIST_POINT_st;
4984pub type DSA_SIG = DSA_SIG_st;
4985pub type GENERAL_NAME = GENERAL_NAME_st;
4986pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4987pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4988pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4989pub type NETSCAPE_SPKI = Netscape_spki_st;
4990pub type RIPEMD160_CTX = RIPEMD160state_st;
4991#[repr(C)]
4992#[derive(Debug)]
4993pub struct X509_VERIFY_PARAM_st {
4994    _unused: [u8; 0],
4995}
4996pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4997pub type X509_ALGOR = X509_algor_st;
4998#[repr(C)]
4999#[derive(Debug)]
5000pub struct X509_crl_st {
5001    _unused: [u8; 0],
5002}
5003pub type X509_CRL = X509_crl_st;
5004#[repr(C)]
5005#[derive(Debug)]
5006pub struct X509_extension_st {
5007    _unused: [u8; 0],
5008}
5009pub type X509_EXTENSION = X509_extension_st;
5010pub type X509_INFO = X509_info_st;
5011#[repr(C)]
5012#[derive(Debug)]
5013pub struct X509_name_entry_st {
5014    _unused: [u8; 0],
5015}
5016pub type X509_NAME_ENTRY = X509_name_entry_st;
5017#[repr(C)]
5018#[derive(Debug)]
5019pub struct X509_name_st {
5020    _unused: [u8; 0],
5021}
5022pub type X509_NAME = X509_name_st;
5023#[repr(C)]
5024#[derive(Debug)]
5025pub struct X509_pubkey_st {
5026    _unused: [u8; 0],
5027}
5028pub type X509_PUBKEY = X509_pubkey_st;
5029#[repr(C)]
5030#[derive(Debug)]
5031pub struct X509_req_st {
5032    _unused: [u8; 0],
5033}
5034pub type X509_REQ = X509_req_st;
5035#[repr(C)]
5036#[derive(Debug)]
5037pub struct X509_sig_st {
5038    _unused: [u8; 0],
5039}
5040pub type X509_SIG = X509_sig_st;
5041#[repr(C)]
5042#[derive(Debug)]
5043pub struct bignum_ctx {
5044    _unused: [u8; 0],
5045}
5046pub type BN_CTX = bignum_ctx;
5047pub type BIGNUM = bignum_st;
5048#[repr(C)]
5049#[derive(Debug)]
5050pub struct bio_method_st {
5051    _unused: [u8; 0],
5052}
5053pub type BIO_METHOD = bio_method_st;
5054#[repr(C)]
5055#[derive(Debug)]
5056pub struct bio_st {
5057    _unused: [u8; 0],
5058}
5059pub type BIO = bio_st;
5060pub type BLAKE2B_CTX = blake2b_state_st;
5061pub type BN_GENCB = bn_gencb_st;
5062#[repr(C)]
5063#[derive(Debug)]
5064pub struct bn_mont_ctx_st {
5065    _unused: [u8; 0],
5066}
5067pub type BN_MONT_CTX = bn_mont_ctx_st;
5068pub type BUF_MEM = buf_mem_st;
5069pub type CBB = cbb_st;
5070pub type CBS = cbs_st;
5071#[repr(C)]
5072#[derive(Debug)]
5073pub struct cmac_ctx_st {
5074    _unused: [u8; 0],
5075}
5076pub type CMAC_CTX = cmac_ctx_st;
5077#[repr(C)]
5078#[derive(Debug)]
5079pub struct conf_st {
5080    _unused: [u8; 0],
5081}
5082pub type CONF = conf_st;
5083pub type CONF_VALUE = conf_value_st;
5084#[repr(C)]
5085#[derive(Debug)]
5086pub struct crypto_buffer_pool_st {
5087    _unused: [u8; 0],
5088}
5089pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
5090#[repr(C)]
5091#[derive(Debug)]
5092pub struct crypto_buffer_st {
5093    _unused: [u8; 0],
5094}
5095pub type CRYPTO_BUFFER = crypto_buffer_st;
5096pub type CRYPTO_IVEC = crypto_ivec_st;
5097pub type CRYPTO_IOVEC = crypto_iovec_st;
5098#[repr(C)]
5099#[derive(Debug)]
5100pub struct ctr_drbg_state_st {
5101    _unused: [u8; 0],
5102}
5103pub type CTR_DRBG_STATE = ctr_drbg_state_st;
5104#[repr(C)]
5105#[derive(Debug)]
5106pub struct dh_st {
5107    _unused: [u8; 0],
5108}
5109pub type DH = dh_st;
5110#[repr(C)]
5111#[derive(Debug)]
5112pub struct dsa_st {
5113    _unused: [u8; 0],
5114}
5115pub type DSA = dsa_st;
5116#[repr(C)]
5117#[derive(Debug)]
5118pub struct ec_group_st {
5119    _unused: [u8; 0],
5120}
5121pub type EC_GROUP = ec_group_st;
5122#[repr(C)]
5123#[derive(Debug)]
5124pub struct ec_key_st {
5125    _unused: [u8; 0],
5126}
5127pub type EC_KEY = ec_key_st;
5128#[repr(C)]
5129#[derive(Debug)]
5130pub struct ec_point_st {
5131    _unused: [u8; 0],
5132}
5133pub type EC_POINT = ec_point_st;
5134pub type ECDSA_METHOD = ecdsa_method_st;
5135pub type ECDSA_SIG = ecdsa_sig_st;
5136#[repr(C)]
5137#[derive(Debug)]
5138pub struct engine_st {
5139    _unused: [u8; 0],
5140}
5141pub type ENGINE = engine_st;
5142pub type EVP_MD_CTX = env_md_ctx_st;
5143#[repr(C)]
5144#[derive(Debug)]
5145pub struct env_md_st {
5146    _unused: [u8; 0],
5147}
5148pub type EVP_MD = env_md_st;
5149#[repr(C)]
5150#[derive(Debug)]
5151pub struct evp_aead_st {
5152    _unused: [u8; 0],
5153}
5154pub type EVP_AEAD = evp_aead_st;
5155pub type EVP_AEAD_CTX = evp_aead_ctx_st;
5156pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
5157#[repr(C)]
5158#[derive(Debug)]
5159pub struct evp_cipher_st {
5160    _unused: [u8; 0],
5161}
5162pub type EVP_CIPHER = evp_cipher_st;
5163pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
5164#[repr(C)]
5165#[derive(Debug)]
5166pub struct evp_hpke_aead_st {
5167    _unused: [u8; 0],
5168}
5169pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
5170pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
5171#[repr(C)]
5172#[derive(Debug)]
5173pub struct evp_hpke_kdf_st {
5174    _unused: [u8; 0],
5175}
5176pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
5177#[repr(C)]
5178#[derive(Debug)]
5179pub struct evp_hpke_kem_st {
5180    _unused: [u8; 0],
5181}
5182pub type EVP_HPKE_KEM = evp_hpke_kem_st;
5183pub type EVP_HPKE_KEY = evp_hpke_key_st;
5184#[repr(C)]
5185#[derive(Debug)]
5186pub struct evp_kem_st {
5187    _unused: [u8; 0],
5188}
5189pub type EVP_KEM = evp_kem_st;
5190#[repr(C)]
5191#[derive(Debug)]
5192pub struct evp_pkey_alg_st {
5193    _unused: [u8; 0],
5194}
5195pub type EVP_PKEY_ALG = evp_pkey_alg_st;
5196#[repr(C)]
5197#[derive(Debug)]
5198pub struct evp_pkey_ctx_st {
5199    _unused: [u8; 0],
5200}
5201pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
5202#[repr(C)]
5203#[derive(Debug)]
5204pub struct evp_pkey_st {
5205    _unused: [u8; 0],
5206}
5207pub type EVP_PKEY = evp_pkey_st;
5208pub type HMAC_CTX = hmac_ctx_st;
5209pub type MD4_CTX = md4_state_st;
5210pub type MD5_CTX = md5_state_st;
5211#[repr(C)]
5212#[derive(Debug)]
5213pub struct ossl_init_settings_st {
5214    _unused: [u8; 0],
5215}
5216pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
5217#[repr(C)]
5218#[derive(Debug)]
5219pub struct ossl_lib_ctx_st {
5220    _unused: [u8; 0],
5221}
5222pub type OSSL_LIB_CTX = ossl_lib_ctx_st;
5223#[repr(C)]
5224#[derive(Debug)]
5225pub struct ossl_param_st {
5226    _unused: [u8; 0],
5227}
5228pub type OSSL_PARAM = ossl_param_st;
5229#[repr(C)]
5230#[derive(Debug)]
5231pub struct pkcs12_st {
5232    _unused: [u8; 0],
5233}
5234pub type PKCS12 = pkcs12_st;
5235#[repr(C)]
5236#[derive(Debug)]
5237pub struct pkcs8_priv_key_info_st {
5238    _unused: [u8; 0],
5239}
5240pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
5241pub type X509_PKEY = private_key_st;
5242pub type RAND_METHOD = rand_meth_st;
5243pub type RC4_KEY = rc4_key_st;
5244pub type RSA_METHOD = rsa_meth_st;
5245pub type RSA_PSS_PARAMS = rsa_pss_params_st;
5246#[repr(C)]
5247#[derive(Debug)]
5248pub struct rsa_st {
5249    _unused: [u8; 0],
5250}
5251pub type RSA = rsa_st;
5252pub type SHA256_CTX = sha256_state_st;
5253pub type SHA512_CTX = sha512_state_st;
5254pub type SHA_CTX = sha_state_st;
5255#[repr(C)]
5256#[derive(Debug)]
5257pub struct spake2_ctx_st {
5258    _unused: [u8; 0],
5259}
5260pub type SPAKE2_CTX = spake2_ctx_st;
5261pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
5262#[repr(C)]
5263#[derive(Debug)]
5264pub struct ssl_cipher_st {
5265    _unused: [u8; 0],
5266}
5267pub type SSL_CIPHER = ssl_cipher_st;
5268#[repr(C)]
5269#[derive(Debug)]
5270pub struct ssl_credential_st {
5271    _unused: [u8; 0],
5272}
5273pub type SSL_CREDENTIAL = ssl_credential_st;
5274#[repr(C)]
5275#[derive(Debug)]
5276pub struct ssl_ctx_st {
5277    _unused: [u8; 0],
5278}
5279pub type SSL_CTX = ssl_ctx_st;
5280pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
5281#[repr(C)]
5282#[derive(Debug)]
5283pub struct ssl_ech_keys_st {
5284    _unused: [u8; 0],
5285}
5286pub type SSL_ECH_KEYS = ssl_ech_keys_st;
5287#[repr(C)]
5288#[derive(Debug)]
5289pub struct ssl_method_st {
5290    _unused: [u8; 0],
5291}
5292pub type SSL_METHOD = ssl_method_st;
5293pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
5294pub type SSL_QUIC_METHOD = ssl_quic_method_st;
5295#[repr(C)]
5296#[derive(Debug)]
5297pub struct ssl_session_st {
5298    _unused: [u8; 0],
5299}
5300pub type SSL_SESSION = ssl_session_st;
5301#[repr(C)]
5302#[derive(Debug)]
5303pub struct ssl_st {
5304    _unused: [u8; 0],
5305}
5306pub type SSL = ssl_st;
5307pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
5308#[repr(C)]
5309#[derive(Debug)]
5310pub struct st_ERR_FNS {
5311    _unused: [u8; 0],
5312}
5313pub type ERR_FNS = st_ERR_FNS;
5314pub type TRUST_TOKEN = trust_token_st;
5315#[repr(C)]
5316#[derive(Debug)]
5317pub struct trust_token_client_st {
5318    _unused: [u8; 0],
5319}
5320pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
5321#[repr(C)]
5322#[derive(Debug)]
5323pub struct trust_token_issuer_st {
5324    _unused: [u8; 0],
5325}
5326pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
5327#[repr(C)]
5328#[derive(Debug)]
5329pub struct trust_token_method_st {
5330    _unused: [u8; 0],
5331}
5332pub type TRUST_TOKEN_METHOD = trust_token_method_st;
5333pub type X509V3_CTX = v3_ext_ctx;
5334pub type X509V3_EXT_METHOD = v3_ext_method;
5335#[repr(C)]
5336#[derive(Debug)]
5337pub struct x509_attributes_st {
5338    _unused: [u8; 0],
5339}
5340pub type X509_ATTRIBUTE = x509_attributes_st;
5341#[repr(C)]
5342#[derive(Debug)]
5343pub struct x509_lookup_st {
5344    _unused: [u8; 0],
5345}
5346pub type X509_LOOKUP = x509_lookup_st;
5347#[repr(C)]
5348#[derive(Debug)]
5349pub struct x509_lookup_method_st {
5350    _unused: [u8; 0],
5351}
5352pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
5353#[repr(C)]
5354#[derive(Debug)]
5355pub struct x509_object_st {
5356    _unused: [u8; 0],
5357}
5358pub type X509_OBJECT = x509_object_st;
5359#[repr(C)]
5360#[derive(Debug)]
5361pub struct x509_purpose_st {
5362    _unused: [u8; 0],
5363}
5364pub type X509_PURPOSE = x509_purpose_st;
5365#[repr(C)]
5366#[derive(Debug)]
5367pub struct x509_revoked_st {
5368    _unused: [u8; 0],
5369}
5370pub type X509_REVOKED = x509_revoked_st;
5371#[repr(C)]
5372#[derive(Debug)]
5373pub struct x509_st {
5374    _unused: [u8; 0],
5375}
5376pub type X509 = x509_st;
5377#[repr(C)]
5378#[derive(Debug)]
5379pub struct x509_store_ctx_st {
5380    _unused: [u8; 0],
5381}
5382pub type X509_STORE_CTX = x509_store_ctx_st;
5383#[repr(C)]
5384#[derive(Debug)]
5385pub struct x509_store_st {
5386    _unused: [u8; 0],
5387}
5388pub type X509_STORE = x509_store_st;
5389pub type OPENSSL_BLOCK = *mut ::core::ffi::c_void;
5390#[repr(C)]
5391#[derive(Debug, Copy, Clone)]
5392pub struct aes_key_st {
5393    pub rd_key: [u32; 60usize],
5394    pub rounds: ::core::ffi::c_uint,
5395}
5396pub type AES_KEY = aes_key_st;
5397unsafe extern "C" {
5398    pub fn AES_set_encrypt_key(
5399        key: *const u8,
5400        bits: ::core::ffi::c_uint,
5401        aeskey: *mut AES_KEY,
5402    ) -> ::core::ffi::c_int;
5403}
5404unsafe extern "C" {
5405    pub fn AES_set_decrypt_key(
5406        key: *const u8,
5407        bits: ::core::ffi::c_uint,
5408        aeskey: *mut AES_KEY,
5409    ) -> ::core::ffi::c_int;
5410}
5411unsafe extern "C" {
5412    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5413}
5414unsafe extern "C" {
5415    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5416}
5417unsafe extern "C" {
5418    pub fn AES_ctr128_encrypt(
5419        in_: *const u8,
5420        out: *mut u8,
5421        len: usize,
5422        key: *const AES_KEY,
5423        ivec: *mut u8,
5424        ecount_buf: *mut u8,
5425        num: *mut ::core::ffi::c_uint,
5426    );
5427}
5428unsafe extern "C" {
5429    pub fn AES_ecb_encrypt(
5430        in_: *const u8,
5431        out: *mut u8,
5432        key: *const AES_KEY,
5433        enc: ::core::ffi::c_int,
5434    );
5435}
5436unsafe extern "C" {
5437    pub fn AES_cbc_encrypt(
5438        in_: *const u8,
5439        out: *mut u8,
5440        len: usize,
5441        key: *const AES_KEY,
5442        ivec: *mut u8,
5443        enc: ::core::ffi::c_int,
5444    );
5445}
5446unsafe extern "C" {
5447    pub fn AES_ofb128_encrypt(
5448        in_: *const u8,
5449        out: *mut u8,
5450        len: usize,
5451        key: *const AES_KEY,
5452        ivec: *mut u8,
5453        num: *mut ::core::ffi::c_int,
5454    );
5455}
5456unsafe extern "C" {
5457    pub fn AES_cfb128_encrypt(
5458        in_: *const u8,
5459        out: *mut u8,
5460        len: usize,
5461        key: *const AES_KEY,
5462        ivec: *mut u8,
5463        num: *mut ::core::ffi::c_int,
5464        enc: ::core::ffi::c_int,
5465    );
5466}
5467unsafe extern "C" {
5468    pub fn AES_wrap_key(
5469        key: *const AES_KEY,
5470        iv: *const u8,
5471        out: *mut u8,
5472        in_: *const u8,
5473        in_len: usize,
5474    ) -> ::core::ffi::c_int;
5475}
5476unsafe extern "C" {
5477    pub fn AES_unwrap_key(
5478        key: *const AES_KEY,
5479        iv: *const u8,
5480        out: *mut u8,
5481        in_: *const u8,
5482        in_len: usize,
5483    ) -> ::core::ffi::c_int;
5484}
5485unsafe extern "C" {
5486    pub fn AES_wrap_key_padded(
5487        key: *const AES_KEY,
5488        out: *mut u8,
5489        out_len: *mut usize,
5490        max_out: usize,
5491        in_: *const u8,
5492        in_len: usize,
5493    ) -> ::core::ffi::c_int;
5494}
5495unsafe extern "C" {
5496    pub fn AES_unwrap_key_padded(
5497        key: *const AES_KEY,
5498        out: *mut u8,
5499        out_len: *mut usize,
5500        max_out: usize,
5501        in_: *const u8,
5502        in_len: usize,
5503    ) -> ::core::ffi::c_int;
5504}
5505#[repr(C)]
5506#[derive(Debug, Copy, Clone)]
5507pub struct tm {
5508    pub tm_sec: ::core::ffi::c_int,
5509    pub tm_min: ::core::ffi::c_int,
5510    pub tm_hour: ::core::ffi::c_int,
5511    pub tm_mday: ::core::ffi::c_int,
5512    pub tm_mon: ::core::ffi::c_int,
5513    pub tm_year: ::core::ffi::c_int,
5514    pub tm_wday: ::core::ffi::c_int,
5515    pub tm_yday: ::core::ffi::c_int,
5516    pub tm_isdst: ::core::ffi::c_int,
5517    pub tm_gmtoff: ::core::ffi::c_long,
5518    pub tm_zone: *const ::core::ffi::c_char,
5519}
5520pub type __gnuc_va_list = __builtin_va_list;
5521pub type FILE = _IO_FILE;
5522#[repr(C)]
5523#[derive(Debug)]
5524pub struct _IO_marker {
5525    _unused: [u8; 0],
5526}
5527#[repr(C)]
5528#[derive(Debug)]
5529pub struct _IO_codecvt {
5530    _unused: [u8; 0],
5531}
5532#[repr(C)]
5533#[derive(Debug)]
5534pub struct _IO_wide_data {
5535    _unused: [u8; 0],
5536}
5537pub type _IO_lock_t = ::core::ffi::c_void;
5538#[repr(C)]
5539#[derive(Debug, Copy, Clone)]
5540pub struct _IO_FILE {
5541    pub _flags: ::core::ffi::c_int,
5542    pub _IO_read_ptr: *mut ::core::ffi::c_char,
5543    pub _IO_read_end: *mut ::core::ffi::c_char,
5544    pub _IO_read_base: *mut ::core::ffi::c_char,
5545    pub _IO_write_base: *mut ::core::ffi::c_char,
5546    pub _IO_write_ptr: *mut ::core::ffi::c_char,
5547    pub _IO_write_end: *mut ::core::ffi::c_char,
5548    pub _IO_buf_base: *mut ::core::ffi::c_char,
5549    pub _IO_buf_end: *mut ::core::ffi::c_char,
5550    pub _IO_save_base: *mut ::core::ffi::c_char,
5551    pub _IO_backup_base: *mut ::core::ffi::c_char,
5552    pub _IO_save_end: *mut ::core::ffi::c_char,
5553    pub _markers: *mut _IO_marker,
5554    pub _chain: *mut _IO_FILE,
5555    pub _fileno: ::core::ffi::c_int,
5556    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
5557    pub _short_backupbuf: [::core::ffi::c_char; 1usize],
5558    pub _old_offset: __off_t,
5559    pub _cur_column: ::core::ffi::c_ushort,
5560    pub _vtable_offset: ::core::ffi::c_schar,
5561    pub _shortbuf: [::core::ffi::c_char; 1usize],
5562    pub _lock: *mut _IO_lock_t,
5563    pub _offset: __off64_t,
5564    pub _codecvt: *mut _IO_codecvt,
5565    pub _wide_data: *mut _IO_wide_data,
5566    pub _freeres_list: *mut _IO_FILE,
5567    pub _freeres_buf: *mut ::core::ffi::c_void,
5568    pub _prevchain: *mut *mut _IO_FILE,
5569    pub _mode: ::core::ffi::c_int,
5570    pub _unused3: ::core::ffi::c_int,
5571    pub _total_written: __uint64_t,
5572    pub _unused2: [::core::ffi::c_char; 8usize],
5573}
5574impl _IO_FILE {
5575    #[inline]
5576    pub fn _flags2(&self) -> ::core::ffi::c_int {
5577        self._bitfield_1.get_const::<0usize, 24u8>() as u32 as _
5578    }
5579    #[inline]
5580    pub fn set__flags2(&mut self, val: ::core::ffi::c_int) {
5581        let val: u32 = val as _;
5582        self._bitfield_1.set_const::<0usize, 24u8>(val as u64)
5583    }
5584    #[inline]
5585    pub unsafe fn _flags2_raw(this: *const Self) -> ::core::ffi::c_int {
5586        unsafe {
5587            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get_const::<0usize, 24u8>(
5588                ::core::ptr::addr_of!((*this)._bitfield_1),
5589            ) as u32 as _
5590        }
5591    }
5592    #[inline]
5593    pub unsafe fn set__flags2_raw(this: *mut Self, val: ::core::ffi::c_int) {
5594        unsafe {
5595            let val: u32 = val as _;
5596            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set_const::<0usize, 24u8>(
5597                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5598                val as u64,
5599            )
5600        }
5601    }
5602    #[inline]
5603    pub fn new_bitfield_1(_flags2: ::core::ffi::c_int) -> __BindgenBitfieldUnit<[u8; 3usize]> {
5604        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
5605        __bindgen_bitfield_unit.set_const::<0usize, 24u8>({
5606            let _flags2: u32 = _flags2 as _;
5607            _flags2 as u64
5608        });
5609        __bindgen_bitfield_unit
5610    }
5611}
5612pub type va_list = __gnuc_va_list;
5613#[repr(C)]
5614#[derive(Debug, Copy, Clone)]
5615pub struct buf_mem_st {
5616    pub length: usize,
5617    pub data: *mut ::core::ffi::c_char,
5618    pub max: usize,
5619}
5620unsafe extern "C" {
5621    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5622}
5623unsafe extern "C" {
5624    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5625}
5626unsafe extern "C" {
5627    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::core::ffi::c_int;
5628}
5629unsafe extern "C" {
5630    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5631}
5632unsafe extern "C" {
5633    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5634}
5635unsafe extern "C" {
5636    pub fn BUF_MEM_append(
5637        buf: *mut BUF_MEM,
5638        in_: *const ::core::ffi::c_void,
5639        len: usize,
5640    ) -> ::core::ffi::c_int;
5641}
5642unsafe extern "C" {
5643    pub fn BUF_strdup(str_: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
5644}
5645unsafe extern "C" {
5646    pub fn BUF_strnlen(str_: *const ::core::ffi::c_char, max_len: usize) -> usize;
5647}
5648unsafe extern "C" {
5649    pub fn BUF_strndup(str_: *const ::core::ffi::c_char, size: usize) -> *mut ::core::ffi::c_char;
5650}
5651unsafe extern "C" {
5652    pub fn BUF_memdup(data: *const ::core::ffi::c_void, size: usize) -> *mut ::core::ffi::c_void;
5653}
5654unsafe extern "C" {
5655    pub fn BUF_strlcpy(
5656        dst: *mut ::core::ffi::c_char,
5657        src: *const ::core::ffi::c_char,
5658        dst_size: usize,
5659    ) -> usize;
5660}
5661unsafe extern "C" {
5662    pub fn BUF_strlcat(
5663        dst: *mut ::core::ffi::c_char,
5664        src: *const ::core::ffi::c_char,
5665        dst_size: usize,
5666    ) -> usize;
5667}
5668unsafe extern "C" {
5669    #[link_name = "ERR_GET_LIB__extern"]
5670    pub fn ERR_GET_LIB(packed_error: u32) -> ::core::ffi::c_int;
5671}
5672unsafe extern "C" {
5673    #[link_name = "ERR_GET_REASON__extern"]
5674    pub fn ERR_GET_REASON(packed_error: u32) -> ::core::ffi::c_int;
5675}
5676unsafe extern "C" {
5677    #[link_name = "ERR_equals__extern"]
5678    pub fn ERR_equals(
5679        packed_error: u32,
5680        lib: ::core::ffi::c_int,
5681        reason: ::core::ffi::c_int,
5682    ) -> ::core::ffi::c_int;
5683}
5684unsafe extern "C" {
5685    pub fn ERR_get_error() -> u32;
5686}
5687unsafe extern "C" {
5688    pub fn ERR_get_error_line(
5689        file: *mut *const ::core::ffi::c_char,
5690        line: *mut ::core::ffi::c_int,
5691    ) -> u32;
5692}
5693unsafe extern "C" {
5694    pub fn ERR_get_error_line_data(
5695        file: *mut *const ::core::ffi::c_char,
5696        line: *mut ::core::ffi::c_int,
5697        data: *mut *const ::core::ffi::c_char,
5698        flags: *mut ::core::ffi::c_int,
5699    ) -> u32;
5700}
5701unsafe extern "C" {
5702    pub fn ERR_peek_error() -> u32;
5703}
5704unsafe extern "C" {
5705    pub fn ERR_peek_error_line(
5706        file: *mut *const ::core::ffi::c_char,
5707        line: *mut ::core::ffi::c_int,
5708    ) -> u32;
5709}
5710unsafe extern "C" {
5711    pub fn ERR_peek_error_line_data(
5712        file: *mut *const ::core::ffi::c_char,
5713        line: *mut ::core::ffi::c_int,
5714        data: *mut *const ::core::ffi::c_char,
5715        flags: *mut ::core::ffi::c_int,
5716    ) -> u32;
5717}
5718unsafe extern "C" {
5719    pub fn ERR_peek_last_error() -> u32;
5720}
5721unsafe extern "C" {
5722    pub fn ERR_peek_last_error_line(
5723        file: *mut *const ::core::ffi::c_char,
5724        line: *mut ::core::ffi::c_int,
5725    ) -> u32;
5726}
5727unsafe extern "C" {
5728    pub fn ERR_peek_last_error_line_data(
5729        file: *mut *const ::core::ffi::c_char,
5730        line: *mut ::core::ffi::c_int,
5731        data: *mut *const ::core::ffi::c_char,
5732        flags: *mut ::core::ffi::c_int,
5733    ) -> u32;
5734}
5735unsafe extern "C" {
5736    pub fn ERR_error_string_n(
5737        packed_error: u32,
5738        buf: *mut ::core::ffi::c_char,
5739        len: usize,
5740    ) -> *mut ::core::ffi::c_char;
5741}
5742unsafe extern "C" {
5743    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5744}
5745unsafe extern "C" {
5746    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5747}
5748unsafe extern "C" {
5749    pub fn ERR_lib_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5750}
5751unsafe extern "C" {
5752    pub fn ERR_reason_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5753}
5754pub type ERR_print_errors_callback_t = ::core::option::Option<
5755    unsafe extern "C" fn(
5756        str_: *const ::core::ffi::c_char,
5757        len: usize,
5758        ctx: *mut ::core::ffi::c_void,
5759    ) -> ::core::ffi::c_int,
5760>;
5761unsafe extern "C" {
5762    pub fn ERR_print_errors_cb(
5763        callback: ERR_print_errors_callback_t,
5764        ctx: *mut ::core::ffi::c_void,
5765    );
5766}
5767unsafe extern "C" {
5768    pub fn ERR_print_errors_fp(file: *mut FILE);
5769}
5770unsafe extern "C" {
5771    pub fn ERR_clear_error();
5772}
5773unsafe extern "C" {
5774    pub fn ERR_set_mark() -> ::core::ffi::c_int;
5775}
5776unsafe extern "C" {
5777    pub fn ERR_pop_to_mark() -> ::core::ffi::c_int;
5778}
5779unsafe extern "C" {
5780    pub fn ERR_get_next_error_library() -> ::core::ffi::c_int;
5781}
5782pub const ERR_LIB_NONE: _bindgen_ty_1 = 1;
5783pub const ERR_LIB_SYS: _bindgen_ty_1 = 2;
5784pub const ERR_LIB_BN: _bindgen_ty_1 = 3;
5785pub const ERR_LIB_RSA: _bindgen_ty_1 = 4;
5786pub const ERR_LIB_DH: _bindgen_ty_1 = 5;
5787pub const ERR_LIB_EVP: _bindgen_ty_1 = 6;
5788pub const ERR_LIB_BUF: _bindgen_ty_1 = 7;
5789pub const ERR_LIB_OBJ: _bindgen_ty_1 = 8;
5790pub const ERR_LIB_PEM: _bindgen_ty_1 = 9;
5791pub const ERR_LIB_DSA: _bindgen_ty_1 = 10;
5792pub const ERR_LIB_X509: _bindgen_ty_1 = 11;
5793pub const ERR_LIB_ASN1: _bindgen_ty_1 = 12;
5794pub const ERR_LIB_CONF: _bindgen_ty_1 = 13;
5795pub const ERR_LIB_CRYPTO: _bindgen_ty_1 = 14;
5796pub const ERR_LIB_EC: _bindgen_ty_1 = 15;
5797pub const ERR_LIB_SSL: _bindgen_ty_1 = 16;
5798pub const ERR_LIB_BIO: _bindgen_ty_1 = 17;
5799pub const ERR_LIB_PKCS7: _bindgen_ty_1 = 18;
5800pub const ERR_LIB_PKCS8: _bindgen_ty_1 = 19;
5801pub const ERR_LIB_X509V3: _bindgen_ty_1 = 20;
5802pub const ERR_LIB_RAND: _bindgen_ty_1 = 21;
5803pub const ERR_LIB_ENGINE: _bindgen_ty_1 = 22;
5804pub const ERR_LIB_OCSP: _bindgen_ty_1 = 23;
5805pub const ERR_LIB_UI: _bindgen_ty_1 = 24;
5806pub const ERR_LIB_COMP: _bindgen_ty_1 = 25;
5807pub const ERR_LIB_ECDSA: _bindgen_ty_1 = 26;
5808pub const ERR_LIB_ECDH: _bindgen_ty_1 = 27;
5809pub const ERR_LIB_HMAC: _bindgen_ty_1 = 28;
5810pub const ERR_LIB_DIGEST: _bindgen_ty_1 = 29;
5811pub const ERR_LIB_CIPHER: _bindgen_ty_1 = 30;
5812pub const ERR_LIB_HKDF: _bindgen_ty_1 = 31;
5813pub const ERR_LIB_TRUST_TOKEN: _bindgen_ty_1 = 32;
5814pub const ERR_LIB_CMS: _bindgen_ty_1 = 33;
5815pub const ERR_LIB_USER: _bindgen_ty_1 = 34;
5816pub const ERR_NUM_LIBS: _bindgen_ty_1 = 35;
5817pub type _bindgen_ty_1 = ::core::ffi::c_uint;
5818unsafe extern "C" {
5819    pub fn ERR_load_BIO_strings();
5820}
5821unsafe extern "C" {
5822    pub fn ERR_load_ERR_strings();
5823}
5824unsafe extern "C" {
5825    pub fn ERR_load_crypto_strings();
5826}
5827unsafe extern "C" {
5828    pub fn ERR_load_RAND_strings();
5829}
5830unsafe extern "C" {
5831    pub fn ERR_free_strings();
5832}
5833unsafe extern "C" {
5834    pub fn ERR_remove_state(pid: ::core::ffi::c_ulong);
5835}
5836unsafe extern "C" {
5837    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
5838}
5839unsafe extern "C" {
5840    pub fn ERR_func_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5841}
5842unsafe extern "C" {
5843    pub fn ERR_error_string(
5844        packed_error: u32,
5845        buf: *mut ::core::ffi::c_char,
5846    ) -> *mut ::core::ffi::c_char;
5847}
5848unsafe extern "C" {
5849    #[link_name = "ERR_GET_FUNC__extern"]
5850    pub fn ERR_GET_FUNC(packed_error: u32) -> ::core::ffi::c_int;
5851}
5852unsafe extern "C" {
5853    pub fn ERR_clear_system_error();
5854}
5855unsafe extern "C" {
5856    pub fn ERR_put_error(
5857        library: ::core::ffi::c_int,
5858        unused: ::core::ffi::c_int,
5859        reason: ::core::ffi::c_int,
5860        file: *const ::core::ffi::c_char,
5861        line: ::core::ffi::c_uint,
5862    );
5863}
5864unsafe extern "C" {
5865    pub fn ERR_add_error_data(count: ::core::ffi::c_uint, ...);
5866}
5867unsafe extern "C" {
5868    pub fn ERR_add_error_dataf(format: *const ::core::ffi::c_char, ...);
5869}
5870unsafe extern "C" {
5871    pub fn ERR_set_error_data(data: *mut ::core::ffi::c_char, flags: ::core::ffi::c_int);
5872}
5873#[repr(C)]
5874#[derive(Debug)]
5875pub struct crypto_ex_data_st {
5876    _unused: [u8; 0],
5877}
5878pub type CRYPTO_EX_DATA = crypto_ex_data_st;
5879pub type CRYPTO_EX_free = ::core::option::Option<
5880    unsafe extern "C" fn(
5881        parent: *mut ::core::ffi::c_void,
5882        ptr: *mut ::core::ffi::c_void,
5883        ad: *mut CRYPTO_EX_DATA,
5884        index: ::core::ffi::c_int,
5885        argl: ::core::ffi::c_long,
5886        argp: *mut ::core::ffi::c_void,
5887    ),
5888>;
5889unsafe extern "C" {
5890    pub fn CRYPTO_cleanup_all_ex_data();
5891}
5892pub type CRYPTO_EX_dup = ::core::option::Option<
5893    unsafe extern "C" fn(
5894        to: *mut CRYPTO_EX_DATA,
5895        from: *const CRYPTO_EX_DATA,
5896        from_d: *mut *mut ::core::ffi::c_void,
5897        index: ::core::ffi::c_int,
5898        argl: ::core::ffi::c_long,
5899        argp: *mut ::core::ffi::c_void,
5900    ) -> ::core::ffi::c_int,
5901>;
5902pub type CRYPTO_EX_unused = ::core::ffi::c_int;
5903pub type OPENSSL_sk_free_func =
5904    ::core::option::Option<unsafe extern "C" fn(ptr: *mut ::core::ffi::c_void)>;
5905pub type OPENSSL_sk_copy_func = ::core::option::Option<
5906    unsafe extern "C" fn(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
5907>;
5908pub type OPENSSL_sk_cmp_func = ::core::option::Option<
5909    unsafe extern "C" fn(
5910        a: *const *const ::core::ffi::c_void,
5911        b: *const *const ::core::ffi::c_void,
5912    ) -> ::core::ffi::c_int,
5913>;
5914pub type OPENSSL_sk_delete_if_func = ::core::option::Option<
5915    unsafe extern "C" fn(
5916        obj: *mut ::core::ffi::c_void,
5917        data: *mut ::core::ffi::c_void,
5918    ) -> ::core::ffi::c_int,
5919>;
5920pub type OPENSSL_sk_call_free_func = ::core::option::Option<
5921    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::core::ffi::c_void),
5922>;
5923pub type OPENSSL_sk_call_copy_func = ::core::option::Option<
5924    unsafe extern "C" fn(
5925        arg1: OPENSSL_sk_copy_func,
5926        arg2: *const ::core::ffi::c_void,
5927    ) -> *mut ::core::ffi::c_void,
5928>;
5929pub type OPENSSL_sk_call_cmp_func = ::core::option::Option<
5930    unsafe extern "C" fn(
5931        arg1: OPENSSL_sk_cmp_func,
5932        arg2: *const ::core::ffi::c_void,
5933        arg3: *const ::core::ffi::c_void,
5934    ) -> ::core::ffi::c_int,
5935>;
5936pub type OPENSSL_sk_call_delete_if_func = ::core::option::Option<
5937    unsafe extern "C" fn(
5938        arg1: OPENSSL_sk_delete_if_func,
5939        arg2: *mut ::core::ffi::c_void,
5940        arg3: *mut ::core::ffi::c_void,
5941    ) -> ::core::ffi::c_int,
5942>;
5943#[repr(C)]
5944#[derive(Debug)]
5945pub struct stack_st {
5946    _unused: [u8; 0],
5947}
5948pub type OPENSSL_STACK = stack_st;
5949unsafe extern "C" {
5950    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
5951}
5952unsafe extern "C" {
5953    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
5954}
5955unsafe extern "C" {
5956    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
5957}
5958unsafe extern "C" {
5959    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
5960}
5961unsafe extern "C" {
5962    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
5963}
5964unsafe extern "C" {
5965    pub fn OPENSSL_sk_last(sk: *const OPENSSL_STACK) -> *mut ::core::ffi::c_void;
5966}
5967unsafe extern "C" {
5968    pub fn OPENSSL_sk_set(
5969        sk: *mut OPENSSL_STACK,
5970        i: usize,
5971        p: *mut ::core::ffi::c_void,
5972    ) -> *mut ::core::ffi::c_void;
5973}
5974unsafe extern "C" {
5975    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
5976}
5977unsafe extern "C" {
5978    pub fn OPENSSL_sk_pop_free_ex(
5979        sk: *mut OPENSSL_STACK,
5980        call_free_func: OPENSSL_sk_call_free_func,
5981        free_func: OPENSSL_sk_free_func,
5982    );
5983}
5984unsafe extern "C" {
5985    pub fn OPENSSL_sk_insert(
5986        sk: *mut OPENSSL_STACK,
5987        p: *mut ::core::ffi::c_void,
5988        where_: usize,
5989    ) -> usize;
5990}
5991unsafe extern "C" {
5992    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::core::ffi::c_void;
5993}
5994unsafe extern "C" {
5995    pub fn OPENSSL_sk_delete_ptr(
5996        sk: *mut OPENSSL_STACK,
5997        p: *const ::core::ffi::c_void,
5998    ) -> *mut ::core::ffi::c_void;
5999}
6000unsafe extern "C" {
6001    pub fn OPENSSL_sk_delete_if(
6002        sk: *mut OPENSSL_STACK,
6003        call_func: OPENSSL_sk_call_delete_if_func,
6004        func: OPENSSL_sk_delete_if_func,
6005        data: *mut ::core::ffi::c_void,
6006    );
6007}
6008unsafe extern "C" {
6009    pub fn OPENSSL_sk_find(
6010        sk: *const OPENSSL_STACK,
6011        out_index: *mut usize,
6012        p: *const ::core::ffi::c_void,
6013        call_cmp_func: OPENSSL_sk_call_cmp_func,
6014    ) -> ::core::ffi::c_int;
6015}
6016unsafe extern "C" {
6017    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6018}
6019unsafe extern "C" {
6020    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
6021}
6022unsafe extern "C" {
6023    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6024}
6025unsafe extern "C" {
6026    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6027}
6028unsafe extern "C" {
6029    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6030}
6031unsafe extern "C" {
6032    pub fn OPENSSL_sk_sort_and_dedup(
6033        sk: *mut OPENSSL_STACK,
6034        call_cmp_func: OPENSSL_sk_call_cmp_func,
6035        call_free_func: OPENSSL_sk_call_free_func,
6036        free_func: OPENSSL_sk_free_func,
6037    );
6038}
6039unsafe extern "C" {
6040    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::core::ffi::c_int;
6041}
6042unsafe extern "C" {
6043    pub fn OPENSSL_sk_set_cmp_func(
6044        sk: *mut OPENSSL_STACK,
6045        comp: OPENSSL_sk_cmp_func,
6046    ) -> OPENSSL_sk_cmp_func;
6047}
6048unsafe extern "C" {
6049    pub fn OPENSSL_sk_deep_copy(
6050        sk: *const OPENSSL_STACK,
6051        call_copy_func: OPENSSL_sk_call_copy_func,
6052        copy_func: OPENSSL_sk_copy_func,
6053        call_free_func: OPENSSL_sk_call_free_func,
6054        free_func: OPENSSL_sk_free_func,
6055    ) -> *mut OPENSSL_STACK;
6056}
6057pub type _STACK = OPENSSL_STACK;
6058unsafe extern "C" {
6059    pub fn sk_new_null() -> *mut OPENSSL_STACK;
6060}
6061unsafe extern "C" {
6062    pub fn sk_num(sk: *const OPENSSL_STACK) -> usize;
6063}
6064unsafe extern "C" {
6065    pub fn sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
6066}
6067unsafe extern "C" {
6068    pub fn sk_free(sk: *mut OPENSSL_STACK);
6069}
6070unsafe extern "C" {
6071    pub fn sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
6072}
6073unsafe extern "C" {
6074    pub fn sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6075}
6076unsafe extern "C" {
6077    pub fn sk_pop_free_ex(
6078        sk: *mut OPENSSL_STACK,
6079        call_free_func: OPENSSL_sk_call_free_func,
6080        free_func: OPENSSL_sk_free_func,
6081    );
6082}
6083unsafe extern "C" {
6084    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6085}
6086pub type OPENSSL_STRING = *mut ::core::ffi::c_char;
6087#[repr(C)]
6088#[derive(Debug)]
6089pub struct stack_st_void {
6090    _unused: [u8; 0],
6091}
6092pub type sk_void_free_func =
6093    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
6094pub type sk_void_copy_func = ::core::option::Option<
6095    unsafe extern "C" fn(arg1: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
6096>;
6097pub type sk_void_cmp_func = ::core::option::Option<
6098    unsafe extern "C" fn(
6099        arg1: *const *const ::core::ffi::c_void,
6100        arg2: *const *const ::core::ffi::c_void,
6101    ) -> ::core::ffi::c_int,
6102>;
6103pub type sk_void_delete_if_func = ::core::option::Option<
6104    unsafe extern "C" fn(
6105        arg1: *mut ::core::ffi::c_void,
6106        arg2: *mut ::core::ffi::c_void,
6107    ) -> ::core::ffi::c_int,
6108>;
6109unsafe extern "C" {
6110    #[link_name = "sk_void_call_free_func__extern"]
6111    pub fn sk_void_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6112}
6113unsafe extern "C" {
6114    #[link_name = "sk_void_call_copy_func__extern"]
6115    pub fn sk_void_call_copy_func(
6116        copy_func: OPENSSL_sk_copy_func,
6117        ptr: *const ::core::ffi::c_void,
6118    ) -> *mut ::core::ffi::c_void;
6119}
6120unsafe extern "C" {
6121    #[link_name = "sk_void_call_cmp_func__extern"]
6122    pub fn sk_void_call_cmp_func(
6123        cmp_func: OPENSSL_sk_cmp_func,
6124        a: *const ::core::ffi::c_void,
6125        b: *const ::core::ffi::c_void,
6126    ) -> ::core::ffi::c_int;
6127}
6128unsafe extern "C" {
6129    #[link_name = "sk_void_call_delete_if_func__extern"]
6130    pub fn sk_void_call_delete_if_func(
6131        func: OPENSSL_sk_delete_if_func,
6132        obj: *mut ::core::ffi::c_void,
6133        data: *mut ::core::ffi::c_void,
6134    ) -> ::core::ffi::c_int;
6135}
6136unsafe extern "C" {
6137    #[link_name = "sk_void_new__extern"]
6138    pub fn sk_void_new(comp: sk_void_cmp_func) -> *mut stack_st_void;
6139}
6140unsafe extern "C" {
6141    #[link_name = "sk_void_new_null__extern"]
6142    pub fn sk_void_new_null() -> *mut stack_st_void;
6143}
6144unsafe extern "C" {
6145    #[link_name = "sk_void_num__extern"]
6146    pub fn sk_void_num(sk: *const stack_st_void) -> usize;
6147}
6148unsafe extern "C" {
6149    #[link_name = "sk_void_zero__extern"]
6150    pub fn sk_void_zero(sk: *mut stack_st_void);
6151}
6152unsafe extern "C" {
6153    #[link_name = "sk_void_value__extern"]
6154    pub fn sk_void_value(sk: *const stack_st_void, i: usize) -> *mut ::core::ffi::c_void;
6155}
6156unsafe extern "C" {
6157    #[link_name = "sk_void_last__extern"]
6158    pub fn sk_void_last(sk: *const stack_st_void) -> *mut ::core::ffi::c_void;
6159}
6160unsafe extern "C" {
6161    #[link_name = "sk_void_set__extern"]
6162    pub fn sk_void_set(
6163        sk: *mut stack_st_void,
6164        i: usize,
6165        p: *mut ::core::ffi::c_void,
6166    ) -> *mut ::core::ffi::c_void;
6167}
6168unsafe extern "C" {
6169    #[link_name = "sk_void_free__extern"]
6170    pub fn sk_void_free(sk: *mut stack_st_void);
6171}
6172unsafe extern "C" {
6173    #[link_name = "sk_void_pop_free__extern"]
6174    pub fn sk_void_pop_free(sk: *mut stack_st_void, free_func: sk_void_free_func);
6175}
6176unsafe extern "C" {
6177    #[link_name = "sk_void_insert__extern"]
6178    pub fn sk_void_insert(
6179        sk: *mut stack_st_void,
6180        p: *mut ::core::ffi::c_void,
6181        where_: usize,
6182    ) -> usize;
6183}
6184unsafe extern "C" {
6185    #[link_name = "sk_void_delete__extern"]
6186    pub fn sk_void_delete(sk: *mut stack_st_void, where_: usize) -> *mut ::core::ffi::c_void;
6187}
6188unsafe extern "C" {
6189    #[link_name = "sk_void_delete_ptr__extern"]
6190    pub fn sk_void_delete_ptr(
6191        sk: *mut stack_st_void,
6192        p: *const ::core::ffi::c_void,
6193    ) -> *mut ::core::ffi::c_void;
6194}
6195unsafe extern "C" {
6196    #[link_name = "sk_void_delete_if__extern"]
6197    pub fn sk_void_delete_if(
6198        sk: *mut stack_st_void,
6199        func: sk_void_delete_if_func,
6200        data: *mut ::core::ffi::c_void,
6201    );
6202}
6203unsafe extern "C" {
6204    #[link_name = "sk_void_find__extern"]
6205    pub fn sk_void_find(
6206        sk: *const stack_st_void,
6207        out_index: *mut usize,
6208        p: *const ::core::ffi::c_void,
6209    ) -> ::core::ffi::c_int;
6210}
6211unsafe extern "C" {
6212    #[link_name = "sk_void_shift__extern"]
6213    pub fn sk_void_shift(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6214}
6215unsafe extern "C" {
6216    #[link_name = "sk_void_push__extern"]
6217    pub fn sk_void_push(sk: *mut stack_st_void, p: *mut ::core::ffi::c_void) -> usize;
6218}
6219unsafe extern "C" {
6220    #[link_name = "sk_void_pop__extern"]
6221    pub fn sk_void_pop(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6222}
6223unsafe extern "C" {
6224    #[link_name = "sk_void_dup__extern"]
6225    pub fn sk_void_dup(sk: *const stack_st_void) -> *mut stack_st_void;
6226}
6227unsafe extern "C" {
6228    #[link_name = "sk_void_sort__extern"]
6229    pub fn sk_void_sort(sk: *mut stack_st_void);
6230}
6231unsafe extern "C" {
6232    #[link_name = "sk_void_sort_and_dedup__extern"]
6233    pub fn sk_void_sort_and_dedup(sk: *mut stack_st_void, free_func: sk_void_free_func);
6234}
6235unsafe extern "C" {
6236    #[link_name = "sk_void_is_sorted__extern"]
6237    pub fn sk_void_is_sorted(sk: *const stack_st_void) -> ::core::ffi::c_int;
6238}
6239unsafe extern "C" {
6240    #[link_name = "sk_void_set_cmp_func__extern"]
6241    pub fn sk_void_set_cmp_func(sk: *mut stack_st_void, comp: sk_void_cmp_func)
6242        -> sk_void_cmp_func;
6243}
6244unsafe extern "C" {
6245    #[link_name = "sk_void_deep_copy__extern"]
6246    pub fn sk_void_deep_copy(
6247        sk: *const stack_st_void,
6248        copy_func: sk_void_copy_func,
6249        free_func: sk_void_free_func,
6250    ) -> *mut stack_st_void;
6251}
6252#[repr(C)]
6253#[derive(Debug)]
6254pub struct stack_st_OPENSSL_STRING {
6255    _unused: [u8; 0],
6256}
6257pub type sk_OPENSSL_STRING_free_func =
6258    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_char)>;
6259pub type sk_OPENSSL_STRING_copy_func = ::core::option::Option<
6260    unsafe extern "C" fn(arg1: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char,
6261>;
6262pub type sk_OPENSSL_STRING_cmp_func = ::core::option::Option<
6263    unsafe extern "C" fn(
6264        arg1: *const *const ::core::ffi::c_char,
6265        arg2: *const *const ::core::ffi::c_char,
6266    ) -> ::core::ffi::c_int,
6267>;
6268pub type sk_OPENSSL_STRING_delete_if_func = ::core::option::Option<
6269    unsafe extern "C" fn(
6270        arg1: *mut ::core::ffi::c_char,
6271        arg2: *mut ::core::ffi::c_void,
6272    ) -> ::core::ffi::c_int,
6273>;
6274unsafe extern "C" {
6275    #[link_name = "sk_OPENSSL_STRING_call_free_func__extern"]
6276    pub fn sk_OPENSSL_STRING_call_free_func(
6277        free_func: OPENSSL_sk_free_func,
6278        ptr: *mut ::core::ffi::c_void,
6279    );
6280}
6281unsafe extern "C" {
6282    #[link_name = "sk_OPENSSL_STRING_call_copy_func__extern"]
6283    pub fn sk_OPENSSL_STRING_call_copy_func(
6284        copy_func: OPENSSL_sk_copy_func,
6285        ptr: *const ::core::ffi::c_void,
6286    ) -> *mut ::core::ffi::c_void;
6287}
6288unsafe extern "C" {
6289    #[link_name = "sk_OPENSSL_STRING_call_cmp_func__extern"]
6290    pub fn sk_OPENSSL_STRING_call_cmp_func(
6291        cmp_func: OPENSSL_sk_cmp_func,
6292        a: *const ::core::ffi::c_void,
6293        b: *const ::core::ffi::c_void,
6294    ) -> ::core::ffi::c_int;
6295}
6296unsafe extern "C" {
6297    #[link_name = "sk_OPENSSL_STRING_call_delete_if_func__extern"]
6298    pub fn sk_OPENSSL_STRING_call_delete_if_func(
6299        func: OPENSSL_sk_delete_if_func,
6300        obj: *mut ::core::ffi::c_void,
6301        data: *mut ::core::ffi::c_void,
6302    ) -> ::core::ffi::c_int;
6303}
6304unsafe extern "C" {
6305    #[link_name = "sk_OPENSSL_STRING_new__extern"]
6306    pub fn sk_OPENSSL_STRING_new(comp: sk_OPENSSL_STRING_cmp_func) -> *mut stack_st_OPENSSL_STRING;
6307}
6308unsafe extern "C" {
6309    #[link_name = "sk_OPENSSL_STRING_new_null__extern"]
6310    pub fn sk_OPENSSL_STRING_new_null() -> *mut stack_st_OPENSSL_STRING;
6311}
6312unsafe extern "C" {
6313    #[link_name = "sk_OPENSSL_STRING_num__extern"]
6314    pub fn sk_OPENSSL_STRING_num(sk: *const stack_st_OPENSSL_STRING) -> usize;
6315}
6316unsafe extern "C" {
6317    #[link_name = "sk_OPENSSL_STRING_zero__extern"]
6318    pub fn sk_OPENSSL_STRING_zero(sk: *mut stack_st_OPENSSL_STRING);
6319}
6320unsafe extern "C" {
6321    #[link_name = "sk_OPENSSL_STRING_value__extern"]
6322    pub fn sk_OPENSSL_STRING_value(
6323        sk: *const stack_st_OPENSSL_STRING,
6324        i: usize,
6325    ) -> *mut ::core::ffi::c_char;
6326}
6327unsafe extern "C" {
6328    #[link_name = "sk_OPENSSL_STRING_last__extern"]
6329    pub fn sk_OPENSSL_STRING_last(sk: *const stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6330}
6331unsafe extern "C" {
6332    #[link_name = "sk_OPENSSL_STRING_set__extern"]
6333    pub fn sk_OPENSSL_STRING_set(
6334        sk: *mut stack_st_OPENSSL_STRING,
6335        i: usize,
6336        p: *mut ::core::ffi::c_char,
6337    ) -> *mut ::core::ffi::c_char;
6338}
6339unsafe extern "C" {
6340    #[link_name = "sk_OPENSSL_STRING_free__extern"]
6341    pub fn sk_OPENSSL_STRING_free(sk: *mut stack_st_OPENSSL_STRING);
6342}
6343unsafe extern "C" {
6344    #[link_name = "sk_OPENSSL_STRING_pop_free__extern"]
6345    pub fn sk_OPENSSL_STRING_pop_free(
6346        sk: *mut stack_st_OPENSSL_STRING,
6347        free_func: sk_OPENSSL_STRING_free_func,
6348    );
6349}
6350unsafe extern "C" {
6351    #[link_name = "sk_OPENSSL_STRING_insert__extern"]
6352    pub fn sk_OPENSSL_STRING_insert(
6353        sk: *mut stack_st_OPENSSL_STRING,
6354        p: *mut ::core::ffi::c_char,
6355        where_: usize,
6356    ) -> usize;
6357}
6358unsafe extern "C" {
6359    #[link_name = "sk_OPENSSL_STRING_delete__extern"]
6360    pub fn sk_OPENSSL_STRING_delete(
6361        sk: *mut stack_st_OPENSSL_STRING,
6362        where_: usize,
6363    ) -> *mut ::core::ffi::c_char;
6364}
6365unsafe extern "C" {
6366    #[link_name = "sk_OPENSSL_STRING_delete_ptr__extern"]
6367    pub fn sk_OPENSSL_STRING_delete_ptr(
6368        sk: *mut stack_st_OPENSSL_STRING,
6369        p: *const ::core::ffi::c_char,
6370    ) -> *mut ::core::ffi::c_char;
6371}
6372unsafe extern "C" {
6373    #[link_name = "sk_OPENSSL_STRING_delete_if__extern"]
6374    pub fn sk_OPENSSL_STRING_delete_if(
6375        sk: *mut stack_st_OPENSSL_STRING,
6376        func: sk_OPENSSL_STRING_delete_if_func,
6377        data: *mut ::core::ffi::c_void,
6378    );
6379}
6380unsafe extern "C" {
6381    #[link_name = "sk_OPENSSL_STRING_find__extern"]
6382    pub fn sk_OPENSSL_STRING_find(
6383        sk: *const stack_st_OPENSSL_STRING,
6384        out_index: *mut usize,
6385        p: *const ::core::ffi::c_char,
6386    ) -> ::core::ffi::c_int;
6387}
6388unsafe extern "C" {
6389    #[link_name = "sk_OPENSSL_STRING_shift__extern"]
6390    pub fn sk_OPENSSL_STRING_shift(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6391}
6392unsafe extern "C" {
6393    #[link_name = "sk_OPENSSL_STRING_push__extern"]
6394    pub fn sk_OPENSSL_STRING_push(
6395        sk: *mut stack_st_OPENSSL_STRING,
6396        p: *mut ::core::ffi::c_char,
6397    ) -> usize;
6398}
6399unsafe extern "C" {
6400    #[link_name = "sk_OPENSSL_STRING_pop__extern"]
6401    pub fn sk_OPENSSL_STRING_pop(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6402}
6403unsafe extern "C" {
6404    #[link_name = "sk_OPENSSL_STRING_dup__extern"]
6405    pub fn sk_OPENSSL_STRING_dup(
6406        sk: *const stack_st_OPENSSL_STRING,
6407    ) -> *mut stack_st_OPENSSL_STRING;
6408}
6409unsafe extern "C" {
6410    #[link_name = "sk_OPENSSL_STRING_sort__extern"]
6411    pub fn sk_OPENSSL_STRING_sort(sk: *mut stack_st_OPENSSL_STRING);
6412}
6413unsafe extern "C" {
6414    #[link_name = "sk_OPENSSL_STRING_sort_and_dedup__extern"]
6415    pub fn sk_OPENSSL_STRING_sort_and_dedup(
6416        sk: *mut stack_st_OPENSSL_STRING,
6417        free_func: sk_OPENSSL_STRING_free_func,
6418    );
6419}
6420unsafe extern "C" {
6421    #[link_name = "sk_OPENSSL_STRING_is_sorted__extern"]
6422    pub fn sk_OPENSSL_STRING_is_sorted(sk: *const stack_st_OPENSSL_STRING) -> ::core::ffi::c_int;
6423}
6424unsafe extern "C" {
6425    #[link_name = "sk_OPENSSL_STRING_set_cmp_func__extern"]
6426    pub fn sk_OPENSSL_STRING_set_cmp_func(
6427        sk: *mut stack_st_OPENSSL_STRING,
6428        comp: sk_OPENSSL_STRING_cmp_func,
6429    ) -> sk_OPENSSL_STRING_cmp_func;
6430}
6431unsafe extern "C" {
6432    #[link_name = "sk_OPENSSL_STRING_deep_copy__extern"]
6433    pub fn sk_OPENSSL_STRING_deep_copy(
6434        sk: *const stack_st_OPENSSL_STRING,
6435        copy_func: sk_OPENSSL_STRING_copy_func,
6436        free_func: sk_OPENSSL_STRING_free_func,
6437    ) -> *mut stack_st_OPENSSL_STRING;
6438}
6439#[repr(C)]
6440#[derive(Debug)]
6441pub struct stack_st_BIO {
6442    _unused: [u8; 0],
6443}
6444pub type sk_BIO_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6445pub type sk_BIO_copy_func =
6446    ::core::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6447pub type sk_BIO_cmp_func = ::core::option::Option<
6448    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::core::ffi::c_int,
6449>;
6450pub type sk_BIO_delete_if_func = ::core::option::Option<
6451    unsafe extern "C" fn(arg1: *mut BIO, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
6452>;
6453unsafe extern "C" {
6454    #[link_name = "sk_BIO_call_free_func__extern"]
6455    pub fn sk_BIO_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6456}
6457unsafe extern "C" {
6458    #[link_name = "sk_BIO_call_copy_func__extern"]
6459    pub fn sk_BIO_call_copy_func(
6460        copy_func: OPENSSL_sk_copy_func,
6461        ptr: *const ::core::ffi::c_void,
6462    ) -> *mut ::core::ffi::c_void;
6463}
6464unsafe extern "C" {
6465    #[link_name = "sk_BIO_call_cmp_func__extern"]
6466    pub fn sk_BIO_call_cmp_func(
6467        cmp_func: OPENSSL_sk_cmp_func,
6468        a: *const ::core::ffi::c_void,
6469        b: *const ::core::ffi::c_void,
6470    ) -> ::core::ffi::c_int;
6471}
6472unsafe extern "C" {
6473    #[link_name = "sk_BIO_call_delete_if_func__extern"]
6474    pub fn sk_BIO_call_delete_if_func(
6475        func: OPENSSL_sk_delete_if_func,
6476        obj: *mut ::core::ffi::c_void,
6477        data: *mut ::core::ffi::c_void,
6478    ) -> ::core::ffi::c_int;
6479}
6480unsafe extern "C" {
6481    #[link_name = "sk_BIO_new__extern"]
6482    pub fn sk_BIO_new(comp: sk_BIO_cmp_func) -> *mut stack_st_BIO;
6483}
6484unsafe extern "C" {
6485    #[link_name = "sk_BIO_new_null__extern"]
6486    pub fn sk_BIO_new_null() -> *mut stack_st_BIO;
6487}
6488unsafe extern "C" {
6489    #[link_name = "sk_BIO_num__extern"]
6490    pub fn sk_BIO_num(sk: *const stack_st_BIO) -> usize;
6491}
6492unsafe extern "C" {
6493    #[link_name = "sk_BIO_zero__extern"]
6494    pub fn sk_BIO_zero(sk: *mut stack_st_BIO);
6495}
6496unsafe extern "C" {
6497    #[link_name = "sk_BIO_value__extern"]
6498    pub fn sk_BIO_value(sk: *const stack_st_BIO, i: usize) -> *mut BIO;
6499}
6500unsafe extern "C" {
6501    #[link_name = "sk_BIO_last__extern"]
6502    pub fn sk_BIO_last(sk: *const stack_st_BIO) -> *mut BIO;
6503}
6504unsafe extern "C" {
6505    #[link_name = "sk_BIO_set__extern"]
6506    pub fn sk_BIO_set(sk: *mut stack_st_BIO, i: usize, p: *mut BIO) -> *mut BIO;
6507}
6508unsafe extern "C" {
6509    #[link_name = "sk_BIO_free__extern"]
6510    pub fn sk_BIO_free(sk: *mut stack_st_BIO);
6511}
6512unsafe extern "C" {
6513    #[link_name = "sk_BIO_pop_free__extern"]
6514    pub fn sk_BIO_pop_free(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6515}
6516unsafe extern "C" {
6517    #[link_name = "sk_BIO_insert__extern"]
6518    pub fn sk_BIO_insert(sk: *mut stack_st_BIO, p: *mut BIO, where_: usize) -> usize;
6519}
6520unsafe extern "C" {
6521    #[link_name = "sk_BIO_delete__extern"]
6522    pub fn sk_BIO_delete(sk: *mut stack_st_BIO, where_: usize) -> *mut BIO;
6523}
6524unsafe extern "C" {
6525    #[link_name = "sk_BIO_delete_ptr__extern"]
6526    pub fn sk_BIO_delete_ptr(sk: *mut stack_st_BIO, p: *const BIO) -> *mut BIO;
6527}
6528unsafe extern "C" {
6529    #[link_name = "sk_BIO_delete_if__extern"]
6530    pub fn sk_BIO_delete_if(
6531        sk: *mut stack_st_BIO,
6532        func: sk_BIO_delete_if_func,
6533        data: *mut ::core::ffi::c_void,
6534    );
6535}
6536unsafe extern "C" {
6537    #[link_name = "sk_BIO_find__extern"]
6538    pub fn sk_BIO_find(
6539        sk: *const stack_st_BIO,
6540        out_index: *mut usize,
6541        p: *const BIO,
6542    ) -> ::core::ffi::c_int;
6543}
6544unsafe extern "C" {
6545    #[link_name = "sk_BIO_shift__extern"]
6546    pub fn sk_BIO_shift(sk: *mut stack_st_BIO) -> *mut BIO;
6547}
6548unsafe extern "C" {
6549    #[link_name = "sk_BIO_push__extern"]
6550    pub fn sk_BIO_push(sk: *mut stack_st_BIO, p: *mut BIO) -> usize;
6551}
6552unsafe extern "C" {
6553    #[link_name = "sk_BIO_pop__extern"]
6554    pub fn sk_BIO_pop(sk: *mut stack_st_BIO) -> *mut BIO;
6555}
6556unsafe extern "C" {
6557    #[link_name = "sk_BIO_dup__extern"]
6558    pub fn sk_BIO_dup(sk: *const stack_st_BIO) -> *mut stack_st_BIO;
6559}
6560unsafe extern "C" {
6561    #[link_name = "sk_BIO_sort__extern"]
6562    pub fn sk_BIO_sort(sk: *mut stack_st_BIO);
6563}
6564unsafe extern "C" {
6565    #[link_name = "sk_BIO_sort_and_dedup__extern"]
6566    pub fn sk_BIO_sort_and_dedup(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6567}
6568unsafe extern "C" {
6569    #[link_name = "sk_BIO_is_sorted__extern"]
6570    pub fn sk_BIO_is_sorted(sk: *const stack_st_BIO) -> ::core::ffi::c_int;
6571}
6572unsafe extern "C" {
6573    #[link_name = "sk_BIO_set_cmp_func__extern"]
6574    pub fn sk_BIO_set_cmp_func(sk: *mut stack_st_BIO, comp: sk_BIO_cmp_func) -> sk_BIO_cmp_func;
6575}
6576unsafe extern "C" {
6577    #[link_name = "sk_BIO_deep_copy__extern"]
6578    pub fn sk_BIO_deep_copy(
6579        sk: *const stack_st_BIO,
6580        copy_func: sk_BIO_copy_func,
6581        free_func: sk_BIO_free_func,
6582    ) -> *mut stack_st_BIO;
6583}
6584unsafe extern "C" {
6585    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6586}
6587unsafe extern "C" {
6588    pub fn BIO_free(bio: *mut BIO) -> ::core::ffi::c_int;
6589}
6590unsafe extern "C" {
6591    pub fn BIO_vfree(bio: *mut BIO);
6592}
6593unsafe extern "C" {
6594    pub fn BIO_up_ref(bio: *mut BIO) -> ::core::ffi::c_int;
6595}
6596unsafe extern "C" {
6597    pub fn BIO_read(
6598        bio: *mut BIO,
6599        data: *mut ::core::ffi::c_void,
6600        len: ::core::ffi::c_int,
6601    ) -> ::core::ffi::c_int;
6602}
6603unsafe extern "C" {
6604    pub fn BIO_gets(
6605        bio: *mut BIO,
6606        buf: *mut ::core::ffi::c_char,
6607        size: ::core::ffi::c_int,
6608    ) -> ::core::ffi::c_int;
6609}
6610unsafe extern "C" {
6611    pub fn BIO_write_ex(
6612        bio: *mut BIO,
6613        data: *const ::core::ffi::c_void,
6614        len: usize,
6615        out_written: *mut usize,
6616    ) -> ::core::ffi::c_int;
6617}
6618unsafe extern "C" {
6619    pub fn BIO_write(
6620        bio: *mut BIO,
6621        data: *const ::core::ffi::c_void,
6622        len: ::core::ffi::c_int,
6623    ) -> ::core::ffi::c_int;
6624}
6625unsafe extern "C" {
6626    pub fn BIO_write_all(
6627        bio: *mut BIO,
6628        data: *const ::core::ffi::c_void,
6629        len: usize,
6630    ) -> ::core::ffi::c_int;
6631}
6632unsafe extern "C" {
6633    pub fn BIO_puts(bio: *mut BIO, buf: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
6634}
6635unsafe extern "C" {
6636    pub fn BIO_flush(bio: *mut BIO) -> ::core::ffi::c_int;
6637}
6638unsafe extern "C" {
6639    pub fn BIO_ctrl(
6640        bio: *mut BIO,
6641        cmd: ::core::ffi::c_int,
6642        larg: ::core::ffi::c_long,
6643        parg: *mut ::core::ffi::c_void,
6644    ) -> ::core::ffi::c_long;
6645}
6646unsafe extern "C" {
6647    pub fn BIO_ptr_ctrl(
6648        bp: *mut BIO,
6649        cmd: ::core::ffi::c_int,
6650        larg: ::core::ffi::c_long,
6651    ) -> *mut ::core::ffi::c_char;
6652}
6653unsafe extern "C" {
6654    pub fn BIO_int_ctrl(
6655        bp: *mut BIO,
6656        cmd: ::core::ffi::c_int,
6657        larg: ::core::ffi::c_long,
6658        iarg: ::core::ffi::c_int,
6659    ) -> ::core::ffi::c_long;
6660}
6661unsafe extern "C" {
6662    pub fn BIO_reset(bio: *mut BIO) -> ::core::ffi::c_int;
6663}
6664unsafe extern "C" {
6665    pub fn BIO_eof(bio: *mut BIO) -> ::core::ffi::c_int;
6666}
6667unsafe extern "C" {
6668    pub fn BIO_set_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6669}
6670unsafe extern "C" {
6671    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6672}
6673unsafe extern "C" {
6674    pub fn BIO_test_flags(bio: *const BIO, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
6675}
6676unsafe extern "C" {
6677    pub fn BIO_should_read(bio: *const BIO) -> ::core::ffi::c_int;
6678}
6679unsafe extern "C" {
6680    pub fn BIO_should_write(bio: *const BIO) -> ::core::ffi::c_int;
6681}
6682unsafe extern "C" {
6683    pub fn BIO_should_retry(bio: *const BIO) -> ::core::ffi::c_int;
6684}
6685unsafe extern "C" {
6686    pub fn BIO_should_io_special(bio: *const BIO) -> ::core::ffi::c_int;
6687}
6688unsafe extern "C" {
6689    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::core::ffi::c_int;
6690}
6691unsafe extern "C" {
6692    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::core::ffi::c_int);
6693}
6694unsafe extern "C" {
6695    pub fn BIO_set_retry_read(bio: *mut BIO);
6696}
6697unsafe extern "C" {
6698    pub fn BIO_set_retry_write(bio: *mut BIO);
6699}
6700unsafe extern "C" {
6701    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::core::ffi::c_int;
6702}
6703unsafe extern "C" {
6704    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6705}
6706unsafe extern "C" {
6707    pub fn BIO_method_type(bio: *const BIO) -> ::core::ffi::c_int;
6708}
6709pub type BIO_info_cb = ::core::option::Option<
6710    unsafe extern "C" fn(
6711        arg1: *mut BIO,
6712        arg2: ::core::ffi::c_int,
6713        arg3: ::core::ffi::c_int,
6714    ) -> ::core::ffi::c_int,
6715>;
6716unsafe extern "C" {
6717    pub fn BIO_callback_ctrl(
6718        bio: *mut BIO,
6719        cmd: ::core::ffi::c_int,
6720        fp: BIO_info_cb,
6721    ) -> ::core::ffi::c_long;
6722}
6723unsafe extern "C" {
6724    pub fn BIO_pending(bio: *const BIO) -> usize;
6725}
6726unsafe extern "C" {
6727    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6728}
6729unsafe extern "C" {
6730    pub fn BIO_wpending(bio: *const BIO) -> usize;
6731}
6732unsafe extern "C" {
6733    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::core::ffi::c_int) -> ::core::ffi::c_int;
6734}
6735unsafe extern "C" {
6736    pub fn BIO_number_read(bio: *const BIO) -> u64;
6737}
6738unsafe extern "C" {
6739    pub fn BIO_number_written(bio: *const BIO) -> u64;
6740}
6741unsafe extern "C" {
6742    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6743}
6744unsafe extern "C" {
6745    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6746}
6747unsafe extern "C" {
6748    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6749}
6750unsafe extern "C" {
6751    pub fn BIO_find_type(bio: *mut BIO, type_: ::core::ffi::c_int) -> *mut BIO;
6752}
6753unsafe extern "C" {
6754    pub fn BIO_copy_next_retry(bio: *mut BIO);
6755}
6756unsafe extern "C" {
6757    pub fn BIO_printf(bio: *mut BIO, format: *const ::core::ffi::c_char, ...)
6758        -> ::core::ffi::c_int;
6759}
6760unsafe extern "C" {
6761    pub fn BIO_indent(
6762        bio: *mut BIO,
6763        indent: ::core::ffi::c_uint,
6764        max_indent: ::core::ffi::c_uint,
6765    ) -> ::core::ffi::c_int;
6766}
6767unsafe extern "C" {
6768    pub fn BIO_hexdump(
6769        bio: *mut BIO,
6770        data: *const u8,
6771        len: usize,
6772        indent: ::core::ffi::c_uint,
6773    ) -> ::core::ffi::c_int;
6774}
6775unsafe extern "C" {
6776    pub fn ERR_print_errors(bio: *mut BIO);
6777}
6778unsafe extern "C" {
6779    pub fn BIO_read_asn1(
6780        bio: *mut BIO,
6781        out: *mut *mut u8,
6782        out_len: *mut usize,
6783        max_len: usize,
6784    ) -> ::core::ffi::c_int;
6785}
6786unsafe extern "C" {
6787    pub fn BIO_s_mem() -> *const BIO_METHOD;
6788}
6789unsafe extern "C" {
6790    pub fn BIO_new_mem_buf(buf: *const ::core::ffi::c_void, len: ossl_ssize_t) -> *mut BIO;
6791}
6792unsafe extern "C" {
6793    pub fn BIO_mem_contents(
6794        bio: *const BIO,
6795        out_contents: *mut *const u8,
6796        out_len: *mut usize,
6797    ) -> ::core::ffi::c_int;
6798}
6799unsafe extern "C" {
6800    pub fn BIO_get_mem_data(
6801        bio: *mut BIO,
6802        contents: *mut *mut ::core::ffi::c_char,
6803    ) -> ::core::ffi::c_long;
6804}
6805unsafe extern "C" {
6806    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::core::ffi::c_int;
6807}
6808unsafe extern "C" {
6809    pub fn BIO_set_mem_buf(
6810        bio: *mut BIO,
6811        b: *mut BUF_MEM,
6812        take_ownership: ::core::ffi::c_int,
6813    ) -> ::core::ffi::c_int;
6814}
6815unsafe extern "C" {
6816    pub fn BIO_set_mem_eof_return(
6817        bio: *mut BIO,
6818        eof_value: ::core::ffi::c_int,
6819    ) -> ::core::ffi::c_int;
6820}
6821unsafe extern "C" {
6822    pub fn BIO_s_fd() -> *const BIO_METHOD;
6823}
6824unsafe extern "C" {
6825    pub fn BIO_new_fd(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6826}
6827unsafe extern "C" {
6828    pub fn BIO_set_fd(
6829        bio: *mut BIO,
6830        fd: ::core::ffi::c_int,
6831        close_flag: ::core::ffi::c_int,
6832    ) -> ::core::ffi::c_int;
6833}
6834unsafe extern "C" {
6835    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
6836}
6837unsafe extern "C" {
6838    pub fn BIO_s_file() -> *const BIO_METHOD;
6839}
6840unsafe extern "C" {
6841    pub fn BIO_new_file(
6842        filename: *const ::core::ffi::c_char,
6843        mode: *const ::core::ffi::c_char,
6844    ) -> *mut BIO;
6845}
6846unsafe extern "C" {
6847    pub fn BIO_new_fp(file: *mut FILE, flags: ::core::ffi::c_int) -> *mut BIO;
6848}
6849unsafe extern "C" {
6850    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::core::ffi::c_int;
6851}
6852unsafe extern "C" {
6853    pub fn BIO_set_fp(
6854        bio: *mut BIO,
6855        file: *mut FILE,
6856        flags: ::core::ffi::c_int,
6857    ) -> ::core::ffi::c_int;
6858}
6859unsafe extern "C" {
6860    pub fn BIO_read_filename(
6861        bio: *mut BIO,
6862        filename: *const ::core::ffi::c_char,
6863    ) -> ::core::ffi::c_int;
6864}
6865unsafe extern "C" {
6866    pub fn BIO_write_filename(
6867        bio: *mut BIO,
6868        filename: *const ::core::ffi::c_char,
6869    ) -> ::core::ffi::c_int;
6870}
6871unsafe extern "C" {
6872    pub fn BIO_append_filename(
6873        bio: *mut BIO,
6874        filename: *const ::core::ffi::c_char,
6875    ) -> ::core::ffi::c_int;
6876}
6877unsafe extern "C" {
6878    pub fn BIO_rw_filename(
6879        bio: *mut BIO,
6880        filename: *const ::core::ffi::c_char,
6881    ) -> ::core::ffi::c_int;
6882}
6883unsafe extern "C" {
6884    pub fn BIO_tell(bio: *mut BIO) -> ::core::ffi::c_long;
6885}
6886unsafe extern "C" {
6887    pub fn BIO_seek(bio: *mut BIO, offset: ::core::ffi::c_long) -> ::core::ffi::c_long;
6888}
6889unsafe extern "C" {
6890    pub fn BIO_s_socket() -> *const BIO_METHOD;
6891}
6892unsafe extern "C" {
6893    pub fn BIO_new_socket(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6894}
6895unsafe extern "C" {
6896    pub fn BIO_s_connect() -> *const BIO_METHOD;
6897}
6898unsafe extern "C" {
6899    pub fn BIO_new_connect(host_and_optional_port: *const ::core::ffi::c_char) -> *mut BIO;
6900}
6901unsafe extern "C" {
6902    pub fn BIO_set_conn_hostname(
6903        bio: *mut BIO,
6904        host_and_optional_port: *const ::core::ffi::c_char,
6905    ) -> ::core::ffi::c_int;
6906}
6907unsafe extern "C" {
6908    pub fn BIO_set_conn_port(
6909        bio: *mut BIO,
6910        port_str: *const ::core::ffi::c_char,
6911    ) -> ::core::ffi::c_int;
6912}
6913unsafe extern "C" {
6914    pub fn BIO_set_conn_int_port(
6915        bio: *mut BIO,
6916        port: *const ::core::ffi::c_int,
6917    ) -> ::core::ffi::c_int;
6918}
6919unsafe extern "C" {
6920    pub fn BIO_set_nbio(bio: *mut BIO, on: ::core::ffi::c_int) -> ::core::ffi::c_int;
6921}
6922unsafe extern "C" {
6923    pub fn BIO_do_connect(bio: *mut BIO) -> ::core::ffi::c_int;
6924}
6925unsafe extern "C" {
6926    pub fn BIO_new_bio_pair(
6927        out1: *mut *mut BIO,
6928        writebuf1: usize,
6929        out2: *mut *mut BIO,
6930        writebuf2: usize,
6931    ) -> ::core::ffi::c_int;
6932}
6933unsafe extern "C" {
6934    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
6935}
6936unsafe extern "C" {
6937    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
6938}
6939unsafe extern "C" {
6940    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::core::ffi::c_int;
6941}
6942unsafe extern "C" {
6943    pub fn BIO_get_new_index() -> ::core::ffi::c_int;
6944}
6945unsafe extern "C" {
6946    pub fn BIO_meth_new(
6947        type_: ::core::ffi::c_int,
6948        name: *const ::core::ffi::c_char,
6949    ) -> *mut BIO_METHOD;
6950}
6951unsafe extern "C" {
6952    pub fn BIO_meth_free(method: *mut BIO_METHOD);
6953}
6954unsafe extern "C" {
6955    pub fn BIO_meth_set_create(
6956        method: *mut BIO_METHOD,
6957        create_func: ::core::option::Option<
6958            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6959        >,
6960    ) -> ::core::ffi::c_int;
6961}
6962unsafe extern "C" {
6963    pub fn BIO_meth_set_destroy(
6964        method: *mut BIO_METHOD,
6965        destroy_func: ::core::option::Option<
6966            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6967        >,
6968    ) -> ::core::ffi::c_int;
6969}
6970unsafe extern "C" {
6971    pub fn BIO_meth_set_write_ex(
6972        method: *mut BIO_METHOD,
6973        write_ex_func: ::core::option::Option<
6974            unsafe extern "C" fn(
6975                arg1: *mut BIO,
6976                arg2: *const ::core::ffi::c_char,
6977                arg3: usize,
6978                arg4: *mut usize,
6979            ) -> ::core::ffi::c_int,
6980        >,
6981    ) -> ::core::ffi::c_int;
6982}
6983unsafe extern "C" {
6984    pub fn BIO_meth_set_write(
6985        method: *mut BIO_METHOD,
6986        write_func: ::core::option::Option<
6987            unsafe extern "C" fn(
6988                arg1: *mut BIO,
6989                arg2: *const ::core::ffi::c_char,
6990                arg3: ::core::ffi::c_int,
6991            ) -> ::core::ffi::c_int,
6992        >,
6993    ) -> ::core::ffi::c_int;
6994}
6995unsafe extern "C" {
6996    pub fn BIO_meth_set_read(
6997        method: *mut BIO_METHOD,
6998        read_func: ::core::option::Option<
6999            unsafe extern "C" fn(
7000                arg1: *mut BIO,
7001                arg2: *mut ::core::ffi::c_char,
7002                arg3: ::core::ffi::c_int,
7003            ) -> ::core::ffi::c_int,
7004        >,
7005    ) -> ::core::ffi::c_int;
7006}
7007unsafe extern "C" {
7008    pub fn BIO_meth_set_gets(
7009        method: *mut BIO_METHOD,
7010        gets_func: ::core::option::Option<
7011            unsafe extern "C" fn(
7012                arg1: *mut BIO,
7013                arg2: *mut ::core::ffi::c_char,
7014                arg3: ::core::ffi::c_int,
7015            ) -> ::core::ffi::c_int,
7016        >,
7017    ) -> ::core::ffi::c_int;
7018}
7019unsafe extern "C" {
7020    pub fn BIO_meth_set_ctrl(
7021        method: *mut BIO_METHOD,
7022        ctrl_func: ::core::option::Option<
7023            unsafe extern "C" fn(
7024                arg1: *mut BIO,
7025                arg2: ::core::ffi::c_int,
7026                arg3: ::core::ffi::c_long,
7027                arg4: *mut ::core::ffi::c_void,
7028            ) -> ::core::ffi::c_long,
7029        >,
7030    ) -> ::core::ffi::c_int;
7031}
7032unsafe extern "C" {
7033    pub fn BIO_meth_set_callback_ctrl(
7034        method: *mut BIO_METHOD,
7035        callback_ctrl_func: ::core::option::Option<
7036            unsafe extern "C" fn(
7037                arg1: *mut BIO,
7038                arg2: ::core::ffi::c_int,
7039                arg3: BIO_info_cb,
7040            ) -> ::core::ffi::c_long,
7041        >,
7042    ) -> ::core::ffi::c_int;
7043}
7044unsafe extern "C" {
7045    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::core::ffi::c_void);
7046}
7047unsafe extern "C" {
7048    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::core::ffi::c_void;
7049}
7050unsafe extern "C" {
7051    pub fn BIO_set_init(bio: *mut BIO, init: ::core::ffi::c_int);
7052}
7053unsafe extern "C" {
7054    pub fn BIO_get_init(bio: *mut BIO) -> ::core::ffi::c_int;
7055}
7056unsafe extern "C" {
7057    pub fn BIO_get_ex_new_index(
7058        argl: ::core::ffi::c_long,
7059        argp: *mut ::core::ffi::c_void,
7060        unused: *mut CRYPTO_EX_unused,
7061        dup_unused: CRYPTO_EX_dup,
7062        free_func: CRYPTO_EX_free,
7063    ) -> ::core::ffi::c_int;
7064}
7065unsafe extern "C" {
7066    pub fn BIO_set_ex_data(
7067        bio: *mut BIO,
7068        idx: ::core::ffi::c_int,
7069        arg: *mut ::core::ffi::c_void,
7070    ) -> ::core::ffi::c_int;
7071}
7072unsafe extern "C" {
7073    pub fn BIO_get_ex_data(bio: *const BIO, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
7074}
7075unsafe extern "C" {
7076    pub fn BIO_free_all(bio: *mut BIO);
7077}
7078pub type bio_info_cb = BIO_info_cb;
7079unsafe extern "C" {
7080    pub fn BIO_f_base64() -> *const BIO_METHOD;
7081}
7082unsafe extern "C" {
7083    pub fn BIO_set_retry_special(bio: *mut BIO);
7084}
7085unsafe extern "C" {
7086    pub fn BIO_set_write_buffer_size(
7087        bio: *mut BIO,
7088        buffer_size: ::core::ffi::c_int,
7089    ) -> ::core::ffi::c_int;
7090}
7091unsafe extern "C" {
7092    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::core::ffi::c_int);
7093}
7094unsafe extern "C" {
7095    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::core::ffi::c_int;
7096}
7097unsafe extern "C" {
7098    pub fn BIO_meth_set_puts(
7099        method: *mut BIO_METHOD,
7100        puts: ::core::option::Option<
7101            unsafe extern "C" fn(
7102                arg1: *mut BIO,
7103                arg2: *const ::core::ffi::c_char,
7104            ) -> ::core::ffi::c_int,
7105        >,
7106    ) -> ::core::ffi::c_int;
7107}
7108unsafe extern "C" {
7109    pub fn BIO_meth_get_write(
7110        method: *const BIO_METHOD,
7111    ) -> ::core::option::Option<
7112        unsafe extern "C" fn(
7113            method: *mut BIO,
7114            arg1: *const ::core::ffi::c_char,
7115            arg2: ::core::ffi::c_int,
7116        ) -> ::core::ffi::c_int,
7117    >;
7118}
7119unsafe extern "C" {
7120    pub fn BIO_meth_get_read(
7121        method: *const BIO_METHOD,
7122    ) -> ::core::option::Option<
7123        unsafe extern "C" fn(
7124            method: *mut BIO,
7125            arg1: *mut ::core::ffi::c_char,
7126            arg2: ::core::ffi::c_int,
7127        ) -> ::core::ffi::c_int,
7128    >;
7129}
7130unsafe extern "C" {
7131    pub fn BIO_meth_get_gets(
7132        method: *const BIO_METHOD,
7133    ) -> ::core::option::Option<
7134        unsafe extern "C" fn(
7135            method: *mut BIO,
7136            arg1: *mut ::core::ffi::c_char,
7137            arg2: ::core::ffi::c_int,
7138        ) -> ::core::ffi::c_int,
7139    >;
7140}
7141unsafe extern "C" {
7142    pub fn BIO_meth_get_puts(
7143        method: *const BIO_METHOD,
7144    ) -> ::core::option::Option<
7145        unsafe extern "C" fn(
7146            method: *mut BIO,
7147            arg1: *const ::core::ffi::c_char,
7148        ) -> ::core::ffi::c_int,
7149    >;
7150}
7151unsafe extern "C" {
7152    pub fn BIO_meth_get_ctrl(
7153        method: *const BIO_METHOD,
7154    ) -> ::core::option::Option<
7155        unsafe extern "C" fn(
7156            method: *mut BIO,
7157            arg1: ::core::ffi::c_int,
7158            arg2: ::core::ffi::c_long,
7159            arg3: *mut ::core::ffi::c_void,
7160        ) -> ::core::ffi::c_long,
7161    >;
7162}
7163unsafe extern "C" {
7164    pub fn BIO_meth_get_create(
7165        method: *const BIO_METHOD,
7166    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7167}
7168unsafe extern "C" {
7169    pub fn BIO_meth_get_destroy(
7170        method: *const BIO_METHOD,
7171    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7172}
7173unsafe extern "C" {
7174    pub fn BIO_meth_get_callback_ctrl(
7175        method: *const BIO_METHOD,
7176    ) -> ::core::option::Option<
7177        unsafe extern "C" fn(
7178            method: *mut BIO,
7179            arg1: ::core::ffi::c_int,
7180            arg2: BIO_info_cb,
7181        ) -> ::core::ffi::c_long,
7182    >;
7183}
7184pub type BN_ULONG = u64;
7185unsafe extern "C" {
7186    pub fn BN_new() -> *mut BIGNUM;
7187}
7188unsafe extern "C" {
7189    pub fn BN_init(bn: *mut BIGNUM);
7190}
7191unsafe extern "C" {
7192    pub fn BN_free(bn: *mut BIGNUM);
7193}
7194unsafe extern "C" {
7195    pub fn BN_clear_free(bn: *mut BIGNUM);
7196}
7197unsafe extern "C" {
7198    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7199}
7200unsafe extern "C" {
7201    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7202}
7203unsafe extern "C" {
7204    pub fn BN_clear(bn: *mut BIGNUM);
7205}
7206unsafe extern "C" {
7207    pub fn BN_value_one() -> *const BIGNUM;
7208}
7209unsafe extern "C" {
7210    pub fn BN_num_bits(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7211}
7212unsafe extern "C" {
7213    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7214}
7215unsafe extern "C" {
7216    pub fn BN_zero(bn: *mut BIGNUM);
7217}
7218unsafe extern "C" {
7219    pub fn BN_one(bn: *mut BIGNUM) -> ::core::ffi::c_int;
7220}
7221unsafe extern "C" {
7222    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::core::ffi::c_int;
7223}
7224unsafe extern "C" {
7225    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::core::ffi::c_int;
7226}
7227unsafe extern "C" {
7228    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::core::ffi::c_int);
7229}
7230unsafe extern "C" {
7231    pub fn BN_is_negative(bn: *const BIGNUM) -> ::core::ffi::c_int;
7232}
7233unsafe extern "C" {
7234    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7235}
7236unsafe extern "C" {
7237    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7238}
7239unsafe extern "C" {
7240    pub fn BN_lebin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7241}
7242unsafe extern "C" {
7243    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7244}
7245unsafe extern "C" {
7246    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7247}
7248unsafe extern "C" {
7249    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7250}
7251unsafe extern "C" {
7252    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::core::ffi::c_char;
7253}
7254unsafe extern "C" {
7255    pub fn BN_hex2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7256        -> ::core::ffi::c_int;
7257}
7258unsafe extern "C" {
7259    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::core::ffi::c_char;
7260}
7261unsafe extern "C" {
7262    pub fn BN_dec2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7263        -> ::core::ffi::c_int;
7264}
7265unsafe extern "C" {
7266    pub fn BN_asc2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7267        -> ::core::ffi::c_int;
7268}
7269unsafe extern "C" {
7270    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::core::ffi::c_int;
7271}
7272unsafe extern "C" {
7273    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::core::ffi::c_int;
7274}
7275unsafe extern "C" {
7276    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7277}
7278unsafe extern "C" {
7279    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::core::ffi::c_int;
7280}
7281unsafe extern "C" {
7282    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::core::ffi::c_int;
7283}
7284unsafe extern "C" {
7285    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::core::ffi::c_int;
7286}
7287unsafe extern "C" {
7288    pub fn BN_CTX_new() -> *mut BN_CTX;
7289}
7290unsafe extern "C" {
7291    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7292}
7293unsafe extern "C" {
7294    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7295}
7296unsafe extern "C" {
7297    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7298}
7299unsafe extern "C" {
7300    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7301}
7302unsafe extern "C" {
7303    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7304}
7305unsafe extern "C" {
7306    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7307}
7308unsafe extern "C" {
7309    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7310}
7311unsafe extern "C" {
7312    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7313}
7314unsafe extern "C" {
7315    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7316}
7317unsafe extern "C" {
7318    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7319}
7320unsafe extern "C" {
7321    pub fn BN_mul(
7322        r: *mut BIGNUM,
7323        a: *const BIGNUM,
7324        b: *const BIGNUM,
7325        ctx: *mut BN_CTX,
7326    ) -> ::core::ffi::c_int;
7327}
7328unsafe extern "C" {
7329    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7330}
7331unsafe extern "C" {
7332    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
7333}
7334unsafe extern "C" {
7335    pub fn BN_div(
7336        quotient: *mut BIGNUM,
7337        rem: *mut BIGNUM,
7338        numerator: *const BIGNUM,
7339        divisor: *const BIGNUM,
7340        ctx: *mut BN_CTX,
7341    ) -> ::core::ffi::c_int;
7342}
7343unsafe extern "C" {
7344    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7345}
7346unsafe extern "C" {
7347    pub fn BN_sqrt(
7348        out_sqrt: *mut BIGNUM,
7349        in_: *const BIGNUM,
7350        ctx: *mut BN_CTX,
7351    ) -> ::core::ffi::c_int;
7352}
7353unsafe extern "C" {
7354    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7355}
7356unsafe extern "C" {
7357    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::core::ffi::c_int;
7358}
7359unsafe extern "C" {
7360    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7361}
7362unsafe extern "C" {
7363    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7364}
7365unsafe extern "C" {
7366    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7367}
7368unsafe extern "C" {
7369    pub fn BN_is_zero(bn: *const BIGNUM) -> ::core::ffi::c_int;
7370}
7371unsafe extern "C" {
7372    pub fn BN_is_one(bn: *const BIGNUM) -> ::core::ffi::c_int;
7373}
7374unsafe extern "C" {
7375    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7376}
7377unsafe extern "C" {
7378    pub fn BN_is_odd(bn: *const BIGNUM) -> ::core::ffi::c_int;
7379}
7380unsafe extern "C" {
7381    pub fn BN_is_pow2(a: *const BIGNUM) -> ::core::ffi::c_int;
7382}
7383unsafe extern "C" {
7384    pub fn BN_lshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7385        -> ::core::ffi::c_int;
7386}
7387unsafe extern "C" {
7388    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7389}
7390unsafe extern "C" {
7391    pub fn BN_rshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7392        -> ::core::ffi::c_int;
7393}
7394unsafe extern "C" {
7395    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7396}
7397unsafe extern "C" {
7398    pub fn BN_set_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7399}
7400unsafe extern "C" {
7401    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7402}
7403unsafe extern "C" {
7404    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7405}
7406unsafe extern "C" {
7407    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7408}
7409unsafe extern "C" {
7410    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::core::ffi::c_int;
7411}
7412unsafe extern "C" {
7413    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
7414}
7415unsafe extern "C" {
7416    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7417}
7418unsafe extern "C" {
7419    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7420}
7421unsafe extern "C" {
7422    pub fn BN_nnmod(
7423        rem: *mut BIGNUM,
7424        numerator: *const BIGNUM,
7425        divisor: *const BIGNUM,
7426        ctx: *mut BN_CTX,
7427    ) -> ::core::ffi::c_int;
7428}
7429unsafe extern "C" {
7430    pub fn BN_mod_add(
7431        r: *mut BIGNUM,
7432        a: *const BIGNUM,
7433        b: *const BIGNUM,
7434        m: *const BIGNUM,
7435        ctx: *mut BN_CTX,
7436    ) -> ::core::ffi::c_int;
7437}
7438unsafe extern "C" {
7439    pub fn BN_mod_add_quick(
7440        r: *mut BIGNUM,
7441        a: *const BIGNUM,
7442        b: *const BIGNUM,
7443        m: *const BIGNUM,
7444    ) -> ::core::ffi::c_int;
7445}
7446unsafe extern "C" {
7447    pub fn BN_mod_sub(
7448        r: *mut BIGNUM,
7449        a: *const BIGNUM,
7450        b: *const BIGNUM,
7451        m: *const BIGNUM,
7452        ctx: *mut BN_CTX,
7453    ) -> ::core::ffi::c_int;
7454}
7455unsafe extern "C" {
7456    pub fn BN_mod_sub_quick(
7457        r: *mut BIGNUM,
7458        a: *const BIGNUM,
7459        b: *const BIGNUM,
7460        m: *const BIGNUM,
7461    ) -> ::core::ffi::c_int;
7462}
7463unsafe extern "C" {
7464    pub fn BN_mod_mul(
7465        r: *mut BIGNUM,
7466        a: *const BIGNUM,
7467        b: *const BIGNUM,
7468        m: *const BIGNUM,
7469        ctx: *mut BN_CTX,
7470    ) -> ::core::ffi::c_int;
7471}
7472unsafe extern "C" {
7473    pub fn BN_mod_sqr(
7474        r: *mut BIGNUM,
7475        a: *const BIGNUM,
7476        m: *const BIGNUM,
7477        ctx: *mut BN_CTX,
7478    ) -> ::core::ffi::c_int;
7479}
7480unsafe extern "C" {
7481    pub fn BN_mod_lshift(
7482        r: *mut BIGNUM,
7483        a: *const BIGNUM,
7484        n: ::core::ffi::c_int,
7485        m: *const BIGNUM,
7486        ctx: *mut BN_CTX,
7487    ) -> ::core::ffi::c_int;
7488}
7489unsafe extern "C" {
7490    pub fn BN_mod_lshift_quick(
7491        r: *mut BIGNUM,
7492        a: *const BIGNUM,
7493        n: ::core::ffi::c_int,
7494        m: *const BIGNUM,
7495    ) -> ::core::ffi::c_int;
7496}
7497unsafe extern "C" {
7498    pub fn BN_mod_lshift1(
7499        r: *mut BIGNUM,
7500        a: *const BIGNUM,
7501        m: *const BIGNUM,
7502        ctx: *mut BN_CTX,
7503    ) -> ::core::ffi::c_int;
7504}
7505unsafe extern "C" {
7506    pub fn BN_mod_lshift1_quick(
7507        r: *mut BIGNUM,
7508        a: *const BIGNUM,
7509        m: *const BIGNUM,
7510    ) -> ::core::ffi::c_int;
7511}
7512unsafe extern "C" {
7513    pub fn BN_mod_sqrt(
7514        in_: *mut BIGNUM,
7515        a: *const BIGNUM,
7516        p: *const BIGNUM,
7517        ctx: *mut BN_CTX,
7518    ) -> *mut BIGNUM;
7519}
7520unsafe extern "C" {
7521    pub fn BN_rand(
7522        rnd: *mut BIGNUM,
7523        bits: ::core::ffi::c_int,
7524        top: ::core::ffi::c_int,
7525        bottom: ::core::ffi::c_int,
7526    ) -> ::core::ffi::c_int;
7527}
7528unsafe extern "C" {
7529    pub fn BN_pseudo_rand(
7530        rnd: *mut BIGNUM,
7531        bits: ::core::ffi::c_int,
7532        top: ::core::ffi::c_int,
7533        bottom: ::core::ffi::c_int,
7534    ) -> ::core::ffi::c_int;
7535}
7536unsafe extern "C" {
7537    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7538}
7539unsafe extern "C" {
7540    pub fn BN_rand_range_ex(
7541        r: *mut BIGNUM,
7542        min_inclusive: BN_ULONG,
7543        max_exclusive: *const BIGNUM,
7544    ) -> ::core::ffi::c_int;
7545}
7546unsafe extern "C" {
7547    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7548}
7549#[repr(C)]
7550#[derive(Debug, Copy, Clone)]
7551pub struct bn_gencb_st {
7552    pub arg: *mut ::core::ffi::c_void,
7553    pub callback: ::core::option::Option<
7554        unsafe extern "C" fn(
7555            event: ::core::ffi::c_int,
7556            n: ::core::ffi::c_int,
7557            arg1: *mut bn_gencb_st,
7558        ) -> ::core::ffi::c_int,
7559    >,
7560}
7561unsafe extern "C" {
7562    pub fn BN_GENCB_new() -> *mut BN_GENCB;
7563}
7564unsafe extern "C" {
7565    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
7566}
7567unsafe extern "C" {
7568    pub fn BN_GENCB_set(
7569        callback: *mut BN_GENCB,
7570        f: ::core::option::Option<
7571            unsafe extern "C" fn(
7572                event: ::core::ffi::c_int,
7573                n: ::core::ffi::c_int,
7574                arg1: *mut BN_GENCB,
7575            ) -> ::core::ffi::c_int,
7576        >,
7577        arg: *mut ::core::ffi::c_void,
7578    );
7579}
7580unsafe extern "C" {
7581    pub fn BN_GENCB_call(
7582        callback: *mut BN_GENCB,
7583        event: ::core::ffi::c_int,
7584        n: ::core::ffi::c_int,
7585    ) -> ::core::ffi::c_int;
7586}
7587unsafe extern "C" {
7588    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::core::ffi::c_void;
7589}
7590unsafe extern "C" {
7591    pub fn BN_generate_prime_ex(
7592        ret: *mut BIGNUM,
7593        bits: ::core::ffi::c_int,
7594        safe: ::core::ffi::c_int,
7595        add: *const BIGNUM,
7596        rem: *const BIGNUM,
7597        cb: *mut BN_GENCB,
7598    ) -> ::core::ffi::c_int;
7599}
7600pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
7601pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
7602pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
7603pub type bn_primality_result_t = ::core::ffi::c_uint;
7604unsafe extern "C" {
7605    pub fn BN_enhanced_miller_rabin_primality_test(
7606        out_result: *mut bn_primality_result_t,
7607        w: *const BIGNUM,
7608        checks: ::core::ffi::c_int,
7609        ctx: *mut BN_CTX,
7610        cb: *mut BN_GENCB,
7611    ) -> ::core::ffi::c_int;
7612}
7613unsafe extern "C" {
7614    pub fn BN_primality_test(
7615        is_probably_prime: *mut ::core::ffi::c_int,
7616        candidate: *const BIGNUM,
7617        checks: ::core::ffi::c_int,
7618        ctx: *mut BN_CTX,
7619        do_trial_division: ::core::ffi::c_int,
7620        cb: *mut BN_GENCB,
7621    ) -> ::core::ffi::c_int;
7622}
7623unsafe extern "C" {
7624    pub fn BN_is_prime_fasttest_ex(
7625        candidate: *const BIGNUM,
7626        checks: ::core::ffi::c_int,
7627        ctx: *mut BN_CTX,
7628        do_trial_division: ::core::ffi::c_int,
7629        cb: *mut BN_GENCB,
7630    ) -> ::core::ffi::c_int;
7631}
7632unsafe extern "C" {
7633    pub fn BN_is_prime_ex(
7634        candidate: *const BIGNUM,
7635        checks: ::core::ffi::c_int,
7636        ctx: *mut BN_CTX,
7637        cb: *mut BN_GENCB,
7638    ) -> ::core::ffi::c_int;
7639}
7640unsafe extern "C" {
7641    pub fn BN_gcd(
7642        r: *mut BIGNUM,
7643        a: *const BIGNUM,
7644        b: *const BIGNUM,
7645        ctx: *mut BN_CTX,
7646    ) -> ::core::ffi::c_int;
7647}
7648unsafe extern "C" {
7649    pub fn BN_mod_inverse(
7650        out: *mut BIGNUM,
7651        a: *const BIGNUM,
7652        n: *const BIGNUM,
7653        ctx: *mut BN_CTX,
7654    ) -> *mut BIGNUM;
7655}
7656unsafe extern "C" {
7657    pub fn BN_mod_inverse_blinded(
7658        out: *mut BIGNUM,
7659        out_no_inverse: *mut ::core::ffi::c_int,
7660        a: *const BIGNUM,
7661        mont: *const BN_MONT_CTX,
7662        ctx: *mut BN_CTX,
7663    ) -> ::core::ffi::c_int;
7664}
7665unsafe extern "C" {
7666    pub fn BN_mod_inverse_odd(
7667        out: *mut BIGNUM,
7668        out_no_inverse: *mut ::core::ffi::c_int,
7669        a: *const BIGNUM,
7670        n: *const BIGNUM,
7671        ctx: *mut BN_CTX,
7672    ) -> ::core::ffi::c_int;
7673}
7674unsafe extern "C" {
7675    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7676}
7677unsafe extern "C" {
7678    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7679}
7680unsafe extern "C" {
7681    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
7682}
7683unsafe extern "C" {
7684    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
7685}
7686unsafe extern "C" {
7687    pub fn BN_to_montgomery(
7688        ret: *mut BIGNUM,
7689        a: *const BIGNUM,
7690        mont: *const BN_MONT_CTX,
7691        ctx: *mut BN_CTX,
7692    ) -> ::core::ffi::c_int;
7693}
7694unsafe extern "C" {
7695    pub fn BN_from_montgomery(
7696        ret: *mut BIGNUM,
7697        a: *const BIGNUM,
7698        mont: *const BN_MONT_CTX,
7699        ctx: *mut BN_CTX,
7700    ) -> ::core::ffi::c_int;
7701}
7702unsafe extern "C" {
7703    pub fn BN_mod_mul_montgomery(
7704        r: *mut BIGNUM,
7705        a: *const BIGNUM,
7706        b: *const BIGNUM,
7707        mont: *const BN_MONT_CTX,
7708        ctx: *mut BN_CTX,
7709    ) -> ::core::ffi::c_int;
7710}
7711unsafe extern "C" {
7712    pub fn BN_exp(
7713        r: *mut BIGNUM,
7714        a: *const BIGNUM,
7715        p: *const BIGNUM,
7716        ctx: *mut BN_CTX,
7717    ) -> ::core::ffi::c_int;
7718}
7719unsafe extern "C" {
7720    pub fn BN_mod_exp(
7721        r: *mut BIGNUM,
7722        a: *const BIGNUM,
7723        p: *const BIGNUM,
7724        m: *const BIGNUM,
7725        ctx: *mut BN_CTX,
7726    ) -> ::core::ffi::c_int;
7727}
7728unsafe extern "C" {
7729    pub fn BN_mod_exp_mont(
7730        r: *mut BIGNUM,
7731        a: *const BIGNUM,
7732        p: *const BIGNUM,
7733        m: *const BIGNUM,
7734        ctx: *mut BN_CTX,
7735        mont: *const BN_MONT_CTX,
7736    ) -> ::core::ffi::c_int;
7737}
7738unsafe extern "C" {
7739    pub fn BN_mod_exp_mont_consttime(
7740        rr: *mut BIGNUM,
7741        a: *const BIGNUM,
7742        p: *const BIGNUM,
7743        m: *const BIGNUM,
7744        ctx: *mut BN_CTX,
7745        mont: *const BN_MONT_CTX,
7746    ) -> ::core::ffi::c_int;
7747}
7748unsafe extern "C" {
7749    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
7750}
7751unsafe extern "C" {
7752    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
7753}
7754unsafe extern "C" {
7755    pub fn BN_mod_exp_mont_word(
7756        r: *mut BIGNUM,
7757        a: BN_ULONG,
7758        p: *const BIGNUM,
7759        m: *const BIGNUM,
7760        ctx: *mut BN_CTX,
7761        mont: *const BN_MONT_CTX,
7762    ) -> ::core::ffi::c_int;
7763}
7764unsafe extern "C" {
7765    pub fn BN_mod_exp2_mont(
7766        r: *mut BIGNUM,
7767        a1: *const BIGNUM,
7768        p1: *const BIGNUM,
7769        a2: *const BIGNUM,
7770        p2: *const BIGNUM,
7771        m: *const BIGNUM,
7772        ctx: *mut BN_CTX,
7773        mont: *const BN_MONT_CTX,
7774    ) -> ::core::ffi::c_int;
7775}
7776unsafe extern "C" {
7777    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
7778}
7779unsafe extern "C" {
7780    pub fn BN_MONT_CTX_set(
7781        mont: *mut BN_MONT_CTX,
7782        mod_: *const BIGNUM,
7783        ctx: *mut BN_CTX,
7784    ) -> ::core::ffi::c_int;
7785}
7786unsafe extern "C" {
7787    pub fn BN_bn2binpad(
7788        in_: *const BIGNUM,
7789        out: *mut u8,
7790        len: ::core::ffi::c_int,
7791    ) -> ::core::ffi::c_int;
7792}
7793unsafe extern "C" {
7794    pub fn BN_bn2lebinpad(
7795        in_: *const BIGNUM,
7796        out: *mut u8,
7797        len: ::core::ffi::c_int,
7798    ) -> ::core::ffi::c_int;
7799}
7800unsafe extern "C" {
7801    pub fn BN_secure_new() -> *mut BIGNUM;
7802}
7803unsafe extern "C" {
7804    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7805}
7806#[repr(C)]
7807#[derive(Debug, Copy, Clone)]
7808pub struct bignum_st {
7809    pub d: *mut BN_ULONG,
7810    pub width: ::core::ffi::c_int,
7811    pub dmax: ::core::ffi::c_int,
7812    pub neg: ::core::ffi::c_int,
7813    pub flags: ::core::ffi::c_int,
7814}
7815unsafe extern "C" {
7816    pub fn BN_num_bits_word(l: BN_ULONG) -> ::core::ffi::c_uint;
7817}
7818unsafe extern "C" {
7819    pub fn ASN1_tag2bit(tag: ::core::ffi::c_int) -> ::core::ffi::c_ulong;
7820}
7821unsafe extern "C" {
7822    pub fn ASN1_tag2str(tag: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
7823}
7824pub type d2i_of_void = ::core::option::Option<
7825    unsafe extern "C" fn(
7826        arg1: *mut *mut ::core::ffi::c_void,
7827        arg2: *mut *const ::core::ffi::c_uchar,
7828        arg3: ::core::ffi::c_long,
7829    ) -> *mut ::core::ffi::c_void,
7830>;
7831pub type i2d_of_void = ::core::option::Option<
7832    unsafe extern "C" fn(
7833        arg1: *const ::core::ffi::c_void,
7834        arg2: *mut *mut ::core::ffi::c_uchar,
7835    ) -> ::core::ffi::c_int,
7836>;
7837pub type ASN1_ITEM_EXP = ASN1_ITEM;
7838#[repr(C)]
7839#[derive(Debug)]
7840pub struct ASN1_VALUE_st {
7841    _unused: [u8; 0],
7842}
7843pub type ASN1_VALUE = ASN1_VALUE_st;
7844unsafe extern "C" {
7845    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
7846}
7847unsafe extern "C" {
7848    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
7849}
7850unsafe extern "C" {
7851    pub fn ASN1_item_d2i(
7852        out: *mut *mut ASN1_VALUE,
7853        inp: *mut *const ::core::ffi::c_uchar,
7854        len: ::core::ffi::c_long,
7855        it: *const ASN1_ITEM,
7856    ) -> *mut ASN1_VALUE;
7857}
7858unsafe extern "C" {
7859    pub fn ASN1_item_i2d(
7860        val: *mut ASN1_VALUE,
7861        outp: *mut *mut ::core::ffi::c_uchar,
7862        it: *const ASN1_ITEM,
7863    ) -> ::core::ffi::c_int;
7864}
7865unsafe extern "C" {
7866    pub fn ASN1_item_dup(
7867        it: *const ASN1_ITEM,
7868        x: *mut ::core::ffi::c_void,
7869    ) -> *mut ::core::ffi::c_void;
7870}
7871unsafe extern "C" {
7872    pub fn ASN1_item_d2i_fp(
7873        it: *const ASN1_ITEM,
7874        in_: *mut FILE,
7875        out: *mut ::core::ffi::c_void,
7876    ) -> *mut ::core::ffi::c_void;
7877}
7878unsafe extern "C" {
7879    pub fn ASN1_item_d2i_bio(
7880        it: *const ASN1_ITEM,
7881        in_: *mut BIO,
7882        out: *mut ::core::ffi::c_void,
7883    ) -> *mut ::core::ffi::c_void;
7884}
7885unsafe extern "C" {
7886    pub fn ASN1_item_i2d_fp(
7887        it: *const ASN1_ITEM,
7888        out: *mut FILE,
7889        in_: *const ::core::ffi::c_void,
7890    ) -> ::core::ffi::c_int;
7891}
7892unsafe extern "C" {
7893    pub fn ASN1_item_i2d_bio(
7894        it: *const ASN1_ITEM,
7895        out: *mut BIO,
7896        in_: *const ::core::ffi::c_void,
7897    ) -> ::core::ffi::c_int;
7898}
7899unsafe extern "C" {
7900    pub fn ASN1_item_unpack(
7901        oct: *const ASN1_STRING,
7902        it: *const ASN1_ITEM,
7903    ) -> *mut ::core::ffi::c_void;
7904}
7905unsafe extern "C" {
7906    pub fn ASN1_item_pack(
7907        obj: *mut ::core::ffi::c_void,
7908        it: *const ASN1_ITEM,
7909        out: *mut *mut ASN1_STRING,
7910    ) -> *mut ASN1_STRING;
7911}
7912unsafe extern "C" {
7913    pub fn d2i_ASN1_BOOLEAN(
7914        out: *mut ASN1_BOOLEAN,
7915        inp: *mut *const ::core::ffi::c_uchar,
7916        len: ::core::ffi::c_long,
7917    ) -> ASN1_BOOLEAN;
7918}
7919unsafe extern "C" {
7920    pub fn i2d_ASN1_BOOLEAN(
7921        a: ASN1_BOOLEAN,
7922        outp: *mut *mut ::core::ffi::c_uchar,
7923    ) -> ::core::ffi::c_int;
7924}
7925unsafe extern "C" {
7926    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
7927}
7928unsafe extern "C" {
7929    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
7930}
7931unsafe extern "C" {
7932    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
7933}
7934#[repr(C)]
7935#[derive(Debug, Copy, Clone)]
7936pub struct asn1_string_st {
7937    pub length: ::core::ffi::c_int,
7938    pub type_: ::core::ffi::c_int,
7939    pub data: *mut ::core::ffi::c_uchar,
7940    pub flags: ::core::ffi::c_long,
7941}
7942unsafe extern "C" {
7943    pub fn ASN1_STRING_type_new(type_: ::core::ffi::c_int) -> *mut ASN1_STRING;
7944}
7945unsafe extern "C" {
7946    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
7947}
7948unsafe extern "C" {
7949    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
7950}
7951unsafe extern "C" {
7952    pub fn ASN1_STRING_copy(dst: *mut ASN1_STRING, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7953}
7954unsafe extern "C" {
7955    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
7956}
7957unsafe extern "C" {
7958    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7959}
7960unsafe extern "C" {
7961    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::core::ffi::c_uchar;
7962}
7963unsafe extern "C" {
7964    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::core::ffi::c_uchar;
7965}
7966unsafe extern "C" {
7967    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7968}
7969unsafe extern "C" {
7970    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::core::ffi::c_int;
7971}
7972unsafe extern "C" {
7973    pub fn ASN1_STRING_set(
7974        str_: *mut ASN1_STRING,
7975        data: *const ::core::ffi::c_void,
7976        len: ossl_ssize_t,
7977    ) -> ::core::ffi::c_int;
7978}
7979unsafe extern "C" {
7980    pub fn ASN1_STRING_set0(
7981        str_: *mut ASN1_STRING,
7982        data: *mut ::core::ffi::c_void,
7983        len: ::core::ffi::c_int,
7984    );
7985}
7986unsafe extern "C" {
7987    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
7988}
7989unsafe extern "C" {
7990    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
7991}
7992unsafe extern "C" {
7993    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
7994}
7995unsafe extern "C" {
7996    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
7997}
7998unsafe extern "C" {
7999    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
8000}
8001unsafe extern "C" {
8002    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
8003}
8004unsafe extern "C" {
8005    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
8006}
8007unsafe extern "C" {
8008    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
8009}
8010unsafe extern "C" {
8011    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
8012}
8013unsafe extern "C" {
8014    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
8015}
8016unsafe extern "C" {
8017    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
8018}
8019unsafe extern "C" {
8020    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
8021}
8022unsafe extern "C" {
8023    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
8024}
8025unsafe extern "C" {
8026    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
8027}
8028unsafe extern "C" {
8029    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
8030}
8031unsafe extern "C" {
8032    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
8033}
8034unsafe extern "C" {
8035    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
8036}
8037unsafe extern "C" {
8038    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
8039}
8040unsafe extern "C" {
8041    pub fn d2i_ASN1_BMPSTRING(
8042        out: *mut *mut ASN1_BMPSTRING,
8043        inp: *mut *const u8,
8044        len: ::core::ffi::c_long,
8045    ) -> *mut ASN1_BMPSTRING;
8046}
8047unsafe extern "C" {
8048    pub fn d2i_ASN1_GENERALSTRING(
8049        out: *mut *mut ASN1_GENERALSTRING,
8050        inp: *mut *const u8,
8051        len: ::core::ffi::c_long,
8052    ) -> *mut ASN1_GENERALSTRING;
8053}
8054unsafe extern "C" {
8055    pub fn d2i_ASN1_IA5STRING(
8056        out: *mut *mut ASN1_IA5STRING,
8057        inp: *mut *const u8,
8058        len: ::core::ffi::c_long,
8059    ) -> *mut ASN1_IA5STRING;
8060}
8061unsafe extern "C" {
8062    pub fn d2i_ASN1_OCTET_STRING(
8063        out: *mut *mut ASN1_OCTET_STRING,
8064        inp: *mut *const u8,
8065        len: ::core::ffi::c_long,
8066    ) -> *mut ASN1_OCTET_STRING;
8067}
8068unsafe extern "C" {
8069    pub fn d2i_ASN1_PRINTABLESTRING(
8070        out: *mut *mut ASN1_PRINTABLESTRING,
8071        inp: *mut *const u8,
8072        len: ::core::ffi::c_long,
8073    ) -> *mut ASN1_PRINTABLESTRING;
8074}
8075unsafe extern "C" {
8076    pub fn d2i_ASN1_T61STRING(
8077        out: *mut *mut ASN1_T61STRING,
8078        inp: *mut *const u8,
8079        len: ::core::ffi::c_long,
8080    ) -> *mut ASN1_T61STRING;
8081}
8082unsafe extern "C" {
8083    pub fn d2i_ASN1_UNIVERSALSTRING(
8084        out: *mut *mut ASN1_UNIVERSALSTRING,
8085        inp: *mut *const u8,
8086        len: ::core::ffi::c_long,
8087    ) -> *mut ASN1_UNIVERSALSTRING;
8088}
8089unsafe extern "C" {
8090    pub fn d2i_ASN1_UTF8STRING(
8091        out: *mut *mut ASN1_UTF8STRING,
8092        inp: *mut *const u8,
8093        len: ::core::ffi::c_long,
8094    ) -> *mut ASN1_UTF8STRING;
8095}
8096unsafe extern "C" {
8097    pub fn d2i_ASN1_VISIBLESTRING(
8098        out: *mut *mut ASN1_VISIBLESTRING,
8099        inp: *mut *const u8,
8100        len: ::core::ffi::c_long,
8101    ) -> *mut ASN1_VISIBLESTRING;
8102}
8103unsafe extern "C" {
8104    pub fn i2d_ASN1_BMPSTRING(in_: *const ASN1_BMPSTRING, outp: *mut *mut u8)
8105        -> ::core::ffi::c_int;
8106}
8107unsafe extern "C" {
8108    pub fn i2d_ASN1_GENERALSTRING(
8109        in_: *const ASN1_GENERALSTRING,
8110        outp: *mut *mut u8,
8111    ) -> ::core::ffi::c_int;
8112}
8113unsafe extern "C" {
8114    pub fn i2d_ASN1_IA5STRING(in_: *const ASN1_IA5STRING, outp: *mut *mut u8)
8115        -> ::core::ffi::c_int;
8116}
8117unsafe extern "C" {
8118    pub fn i2d_ASN1_OCTET_STRING(
8119        in_: *const ASN1_OCTET_STRING,
8120        outp: *mut *mut u8,
8121    ) -> ::core::ffi::c_int;
8122}
8123unsafe extern "C" {
8124    pub fn i2d_ASN1_PRINTABLESTRING(
8125        in_: *const ASN1_PRINTABLESTRING,
8126        outp: *mut *mut u8,
8127    ) -> ::core::ffi::c_int;
8128}
8129unsafe extern "C" {
8130    pub fn i2d_ASN1_T61STRING(in_: *const ASN1_T61STRING, outp: *mut *mut u8)
8131        -> ::core::ffi::c_int;
8132}
8133unsafe extern "C" {
8134    pub fn i2d_ASN1_UNIVERSALSTRING(
8135        in_: *const ASN1_UNIVERSALSTRING,
8136        outp: *mut *mut u8,
8137    ) -> ::core::ffi::c_int;
8138}
8139unsafe extern "C" {
8140    pub fn i2d_ASN1_UTF8STRING(
8141        in_: *const ASN1_UTF8STRING,
8142        outp: *mut *mut u8,
8143    ) -> ::core::ffi::c_int;
8144}
8145unsafe extern "C" {
8146    pub fn i2d_ASN1_VISIBLESTRING(
8147        in_: *const ASN1_VISIBLESTRING,
8148        outp: *mut *mut u8,
8149    ) -> ::core::ffi::c_int;
8150}
8151unsafe extern "C" {
8152    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
8153}
8154unsafe extern "C" {
8155    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
8156}
8157unsafe extern "C" {
8158    pub static ASN1_IA5STRING_it: ASN1_ITEM;
8159}
8160unsafe extern "C" {
8161    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
8162}
8163unsafe extern "C" {
8164    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
8165}
8166unsafe extern "C" {
8167    pub static ASN1_T61STRING_it: ASN1_ITEM;
8168}
8169unsafe extern "C" {
8170    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
8171}
8172unsafe extern "C" {
8173    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
8174}
8175unsafe extern "C" {
8176    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
8177}
8178unsafe extern "C" {
8179    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
8180}
8181unsafe extern "C" {
8182    pub fn ASN1_OCTET_STRING_cmp(
8183        a: *const ASN1_OCTET_STRING,
8184        b: *const ASN1_OCTET_STRING,
8185    ) -> ::core::ffi::c_int;
8186}
8187unsafe extern "C" {
8188    pub fn ASN1_OCTET_STRING_set(
8189        str_: *mut ASN1_OCTET_STRING,
8190        data: *const ::core::ffi::c_uchar,
8191        len: ::core::ffi::c_int,
8192    ) -> ::core::ffi::c_int;
8193}
8194unsafe extern "C" {
8195    pub fn ASN1_STRING_to_UTF8(
8196        out: *mut *mut ::core::ffi::c_uchar,
8197        in_: *const ASN1_STRING,
8198    ) -> ::core::ffi::c_int;
8199}
8200unsafe extern "C" {
8201    pub fn ASN1_mbstring_copy(
8202        out: *mut *mut ASN1_STRING,
8203        in_: *const u8,
8204        len: ossl_ssize_t,
8205        inform: ::core::ffi::c_int,
8206        mask: ::core::ffi::c_ulong,
8207    ) -> ::core::ffi::c_int;
8208}
8209unsafe extern "C" {
8210    pub fn ASN1_mbstring_ncopy(
8211        out: *mut *mut ASN1_STRING,
8212        in_: *const u8,
8213        len: ossl_ssize_t,
8214        inform: ::core::ffi::c_int,
8215        mask: ::core::ffi::c_ulong,
8216        minsize: ossl_ssize_t,
8217        maxsize: ossl_ssize_t,
8218    ) -> ::core::ffi::c_int;
8219}
8220unsafe extern "C" {
8221    pub fn ASN1_STRING_set_by_NID(
8222        out: *mut *mut ASN1_STRING,
8223        in_: *const ::core::ffi::c_uchar,
8224        len: ossl_ssize_t,
8225        inform: ::core::ffi::c_int,
8226        nid: ::core::ffi::c_int,
8227    ) -> *mut ASN1_STRING;
8228}
8229unsafe extern "C" {
8230    pub fn ASN1_STRING_TABLE_add(
8231        nid: ::core::ffi::c_int,
8232        minsize: ::core::ffi::c_long,
8233        maxsize: ::core::ffi::c_long,
8234        mask: ::core::ffi::c_ulong,
8235        flags: ::core::ffi::c_ulong,
8236    ) -> ::core::ffi::c_int;
8237}
8238unsafe extern "C" {
8239    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
8240}
8241unsafe extern "C" {
8242    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
8243}
8244unsafe extern "C" {
8245    pub fn d2i_DIRECTORYSTRING(
8246        out: *mut *mut ASN1_STRING,
8247        inp: *mut *const u8,
8248        len: ::core::ffi::c_long,
8249    ) -> *mut ASN1_STRING;
8250}
8251unsafe extern "C" {
8252    pub fn i2d_DIRECTORYSTRING(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8253}
8254unsafe extern "C" {
8255    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
8256}
8257unsafe extern "C" {
8258    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
8259}
8260unsafe extern "C" {
8261    pub fn d2i_DISPLAYTEXT(
8262        out: *mut *mut ASN1_STRING,
8263        inp: *mut *const u8,
8264        len: ::core::ffi::c_long,
8265    ) -> *mut ASN1_STRING;
8266}
8267unsafe extern "C" {
8268    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8269}
8270unsafe extern "C" {
8271    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
8272}
8273unsafe extern "C" {
8274    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
8275}
8276unsafe extern "C" {
8277    pub fn d2i_ASN1_BIT_STRING(
8278        out: *mut *mut ASN1_BIT_STRING,
8279        inp: *mut *const u8,
8280        len: ::core::ffi::c_long,
8281    ) -> *mut ASN1_BIT_STRING;
8282}
8283unsafe extern "C" {
8284    pub fn i2d_ASN1_BIT_STRING(
8285        in_: *const ASN1_BIT_STRING,
8286        outp: *mut *mut u8,
8287    ) -> ::core::ffi::c_int;
8288}
8289unsafe extern "C" {
8290    pub fn c2i_ASN1_BIT_STRING(
8291        out: *mut *mut ASN1_BIT_STRING,
8292        inp: *mut *const u8,
8293        len: ::core::ffi::c_long,
8294    ) -> *mut ASN1_BIT_STRING;
8295}
8296unsafe extern "C" {
8297    pub fn i2c_ASN1_BIT_STRING(
8298        in_: *const ASN1_BIT_STRING,
8299        outp: *mut *mut u8,
8300    ) -> ::core::ffi::c_int;
8301}
8302unsafe extern "C" {
8303    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
8304}
8305unsafe extern "C" {
8306    pub fn ASN1_BIT_STRING_unused_bits(str_: *const ASN1_BIT_STRING) -> u8;
8307}
8308unsafe extern "C" {
8309    pub fn ASN1_BIT_STRING_set(
8310        str_: *mut ASN1_BIT_STRING,
8311        data: *const u8,
8312        length: ossl_ssize_t,
8313    ) -> ::core::ffi::c_int;
8314}
8315unsafe extern "C" {
8316    pub fn ASN1_BIT_STRING_set1(
8317        str_: *mut ASN1_BIT_STRING,
8318        data: *const u8,
8319        length: usize,
8320        unused_bits: ::core::ffi::c_int,
8321    ) -> ::core::ffi::c_int;
8322}
8323unsafe extern "C" {
8324    pub fn ASN1_BIT_STRING_set_bit(
8325        str_: *mut ASN1_BIT_STRING,
8326        n: ::core::ffi::c_int,
8327        value: ::core::ffi::c_int,
8328    ) -> ::core::ffi::c_int;
8329}
8330unsafe extern "C" {
8331    pub fn ASN1_BIT_STRING_get_bit(
8332        str_: *const ASN1_BIT_STRING,
8333        n: ::core::ffi::c_int,
8334    ) -> ::core::ffi::c_int;
8335}
8336unsafe extern "C" {
8337    pub fn ASN1_BIT_STRING_check(
8338        str_: *const ASN1_BIT_STRING,
8339        flags: *const ::core::ffi::c_uchar,
8340        flags_len: ::core::ffi::c_int,
8341    ) -> ::core::ffi::c_int;
8342}
8343#[repr(C)]
8344#[derive(Debug)]
8345pub struct stack_st_ASN1_INTEGER {
8346    _unused: [u8; 0],
8347}
8348pub type sk_ASN1_INTEGER_free_func =
8349    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
8350pub type sk_ASN1_INTEGER_copy_func =
8351    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
8352pub type sk_ASN1_INTEGER_cmp_func = ::core::option::Option<
8353    unsafe extern "C" fn(
8354        arg1: *const *const ASN1_INTEGER,
8355        arg2: *const *const ASN1_INTEGER,
8356    ) -> ::core::ffi::c_int,
8357>;
8358pub type sk_ASN1_INTEGER_delete_if_func = ::core::option::Option<
8359    unsafe extern "C" fn(
8360        arg1: *mut ASN1_INTEGER,
8361        arg2: *mut ::core::ffi::c_void,
8362    ) -> ::core::ffi::c_int,
8363>;
8364unsafe extern "C" {
8365    #[link_name = "sk_ASN1_INTEGER_call_free_func__extern"]
8366    pub fn sk_ASN1_INTEGER_call_free_func(
8367        free_func: OPENSSL_sk_free_func,
8368        ptr: *mut ::core::ffi::c_void,
8369    );
8370}
8371unsafe extern "C" {
8372    #[link_name = "sk_ASN1_INTEGER_call_copy_func__extern"]
8373    pub fn sk_ASN1_INTEGER_call_copy_func(
8374        copy_func: OPENSSL_sk_copy_func,
8375        ptr: *const ::core::ffi::c_void,
8376    ) -> *mut ::core::ffi::c_void;
8377}
8378unsafe extern "C" {
8379    #[link_name = "sk_ASN1_INTEGER_call_cmp_func__extern"]
8380    pub fn sk_ASN1_INTEGER_call_cmp_func(
8381        cmp_func: OPENSSL_sk_cmp_func,
8382        a: *const ::core::ffi::c_void,
8383        b: *const ::core::ffi::c_void,
8384    ) -> ::core::ffi::c_int;
8385}
8386unsafe extern "C" {
8387    #[link_name = "sk_ASN1_INTEGER_call_delete_if_func__extern"]
8388    pub fn sk_ASN1_INTEGER_call_delete_if_func(
8389        func: OPENSSL_sk_delete_if_func,
8390        obj: *mut ::core::ffi::c_void,
8391        data: *mut ::core::ffi::c_void,
8392    ) -> ::core::ffi::c_int;
8393}
8394unsafe extern "C" {
8395    #[link_name = "sk_ASN1_INTEGER_new__extern"]
8396    pub fn sk_ASN1_INTEGER_new(comp: sk_ASN1_INTEGER_cmp_func) -> *mut stack_st_ASN1_INTEGER;
8397}
8398unsafe extern "C" {
8399    #[link_name = "sk_ASN1_INTEGER_new_null__extern"]
8400    pub fn sk_ASN1_INTEGER_new_null() -> *mut stack_st_ASN1_INTEGER;
8401}
8402unsafe extern "C" {
8403    #[link_name = "sk_ASN1_INTEGER_num__extern"]
8404    pub fn sk_ASN1_INTEGER_num(sk: *const stack_st_ASN1_INTEGER) -> usize;
8405}
8406unsafe extern "C" {
8407    #[link_name = "sk_ASN1_INTEGER_zero__extern"]
8408    pub fn sk_ASN1_INTEGER_zero(sk: *mut stack_st_ASN1_INTEGER);
8409}
8410unsafe extern "C" {
8411    #[link_name = "sk_ASN1_INTEGER_value__extern"]
8412    pub fn sk_ASN1_INTEGER_value(sk: *const stack_st_ASN1_INTEGER, i: usize) -> *mut ASN1_INTEGER;
8413}
8414unsafe extern "C" {
8415    #[link_name = "sk_ASN1_INTEGER_last__extern"]
8416    pub fn sk_ASN1_INTEGER_last(sk: *const stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8417}
8418unsafe extern "C" {
8419    #[link_name = "sk_ASN1_INTEGER_set__extern"]
8420    pub fn sk_ASN1_INTEGER_set(
8421        sk: *mut stack_st_ASN1_INTEGER,
8422        i: usize,
8423        p: *mut ASN1_INTEGER,
8424    ) -> *mut ASN1_INTEGER;
8425}
8426unsafe extern "C" {
8427    #[link_name = "sk_ASN1_INTEGER_free__extern"]
8428    pub fn sk_ASN1_INTEGER_free(sk: *mut stack_st_ASN1_INTEGER);
8429}
8430unsafe extern "C" {
8431    #[link_name = "sk_ASN1_INTEGER_pop_free__extern"]
8432    pub fn sk_ASN1_INTEGER_pop_free(
8433        sk: *mut stack_st_ASN1_INTEGER,
8434        free_func: sk_ASN1_INTEGER_free_func,
8435    );
8436}
8437unsafe extern "C" {
8438    #[link_name = "sk_ASN1_INTEGER_insert__extern"]
8439    pub fn sk_ASN1_INTEGER_insert(
8440        sk: *mut stack_st_ASN1_INTEGER,
8441        p: *mut ASN1_INTEGER,
8442        where_: usize,
8443    ) -> usize;
8444}
8445unsafe extern "C" {
8446    #[link_name = "sk_ASN1_INTEGER_delete__extern"]
8447    pub fn sk_ASN1_INTEGER_delete(
8448        sk: *mut stack_st_ASN1_INTEGER,
8449        where_: usize,
8450    ) -> *mut ASN1_INTEGER;
8451}
8452unsafe extern "C" {
8453    #[link_name = "sk_ASN1_INTEGER_delete_ptr__extern"]
8454    pub fn sk_ASN1_INTEGER_delete_ptr(
8455        sk: *mut stack_st_ASN1_INTEGER,
8456        p: *const ASN1_INTEGER,
8457    ) -> *mut ASN1_INTEGER;
8458}
8459unsafe extern "C" {
8460    #[link_name = "sk_ASN1_INTEGER_delete_if__extern"]
8461    pub fn sk_ASN1_INTEGER_delete_if(
8462        sk: *mut stack_st_ASN1_INTEGER,
8463        func: sk_ASN1_INTEGER_delete_if_func,
8464        data: *mut ::core::ffi::c_void,
8465    );
8466}
8467unsafe extern "C" {
8468    #[link_name = "sk_ASN1_INTEGER_find__extern"]
8469    pub fn sk_ASN1_INTEGER_find(
8470        sk: *const stack_st_ASN1_INTEGER,
8471        out_index: *mut usize,
8472        p: *const ASN1_INTEGER,
8473    ) -> ::core::ffi::c_int;
8474}
8475unsafe extern "C" {
8476    #[link_name = "sk_ASN1_INTEGER_shift__extern"]
8477    pub fn sk_ASN1_INTEGER_shift(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8478}
8479unsafe extern "C" {
8480    #[link_name = "sk_ASN1_INTEGER_push__extern"]
8481    pub fn sk_ASN1_INTEGER_push(sk: *mut stack_st_ASN1_INTEGER, p: *mut ASN1_INTEGER) -> usize;
8482}
8483unsafe extern "C" {
8484    #[link_name = "sk_ASN1_INTEGER_pop__extern"]
8485    pub fn sk_ASN1_INTEGER_pop(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8486}
8487unsafe extern "C" {
8488    #[link_name = "sk_ASN1_INTEGER_dup__extern"]
8489    pub fn sk_ASN1_INTEGER_dup(sk: *const stack_st_ASN1_INTEGER) -> *mut stack_st_ASN1_INTEGER;
8490}
8491unsafe extern "C" {
8492    #[link_name = "sk_ASN1_INTEGER_sort__extern"]
8493    pub fn sk_ASN1_INTEGER_sort(sk: *mut stack_st_ASN1_INTEGER);
8494}
8495unsafe extern "C" {
8496    #[link_name = "sk_ASN1_INTEGER_sort_and_dedup__extern"]
8497    pub fn sk_ASN1_INTEGER_sort_and_dedup(
8498        sk: *mut stack_st_ASN1_INTEGER,
8499        free_func: sk_ASN1_INTEGER_free_func,
8500    );
8501}
8502unsafe extern "C" {
8503    #[link_name = "sk_ASN1_INTEGER_is_sorted__extern"]
8504    pub fn sk_ASN1_INTEGER_is_sorted(sk: *const stack_st_ASN1_INTEGER) -> ::core::ffi::c_int;
8505}
8506unsafe extern "C" {
8507    #[link_name = "sk_ASN1_INTEGER_set_cmp_func__extern"]
8508    pub fn sk_ASN1_INTEGER_set_cmp_func(
8509        sk: *mut stack_st_ASN1_INTEGER,
8510        comp: sk_ASN1_INTEGER_cmp_func,
8511    ) -> sk_ASN1_INTEGER_cmp_func;
8512}
8513unsafe extern "C" {
8514    #[link_name = "sk_ASN1_INTEGER_deep_copy__extern"]
8515    pub fn sk_ASN1_INTEGER_deep_copy(
8516        sk: *const stack_st_ASN1_INTEGER,
8517        copy_func: sk_ASN1_INTEGER_copy_func,
8518        free_func: sk_ASN1_INTEGER_free_func,
8519    ) -> *mut stack_st_ASN1_INTEGER;
8520}
8521unsafe extern "C" {
8522    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
8523}
8524unsafe extern "C" {
8525    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
8526}
8527unsafe extern "C" {
8528    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
8529}
8530unsafe extern "C" {
8531    pub fn d2i_ASN1_INTEGER(
8532        out: *mut *mut ASN1_INTEGER,
8533        inp: *mut *const u8,
8534        len: ::core::ffi::c_long,
8535    ) -> *mut ASN1_INTEGER;
8536}
8537unsafe extern "C" {
8538    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8539}
8540unsafe extern "C" {
8541    pub fn c2i_ASN1_INTEGER(
8542        in_: *mut *mut ASN1_INTEGER,
8543        outp: *mut *const u8,
8544        len: ::core::ffi::c_long,
8545    ) -> *mut ASN1_INTEGER;
8546}
8547unsafe extern "C" {
8548    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8549}
8550unsafe extern "C" {
8551    pub static ASN1_INTEGER_it: ASN1_ITEM;
8552}
8553unsafe extern "C" {
8554    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::core::ffi::c_int;
8555}
8556unsafe extern "C" {
8557    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::core::ffi::c_int;
8558}
8559unsafe extern "C" {
8560    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8561}
8562unsafe extern "C" {
8563    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8564}
8565unsafe extern "C" {
8566    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
8567}
8568unsafe extern "C" {
8569    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
8570}
8571unsafe extern "C" {
8572    pub fn ASN1_INTEGER_cmp(x: *const ASN1_INTEGER, y: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8573}
8574unsafe extern "C" {
8575    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
8576}
8577unsafe extern "C" {
8578    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
8579}
8580unsafe extern "C" {
8581    pub fn d2i_ASN1_ENUMERATED(
8582        out: *mut *mut ASN1_ENUMERATED,
8583        inp: *mut *const u8,
8584        len: ::core::ffi::c_long,
8585    ) -> *mut ASN1_ENUMERATED;
8586}
8587unsafe extern "C" {
8588    pub fn i2d_ASN1_ENUMERATED(
8589        in_: *const ASN1_ENUMERATED,
8590        outp: *mut *mut u8,
8591    ) -> ::core::ffi::c_int;
8592}
8593unsafe extern "C" {
8594    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
8595}
8596unsafe extern "C" {
8597    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::core::ffi::c_int;
8598}
8599unsafe extern "C" {
8600    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::core::ffi::c_int;
8601}
8602unsafe extern "C" {
8603    pub fn ASN1_ENUMERATED_get_uint64(
8604        out: *mut u64,
8605        a: *const ASN1_ENUMERATED,
8606    ) -> ::core::ffi::c_int;
8607}
8608unsafe extern "C" {
8609    pub fn ASN1_ENUMERATED_get_int64(
8610        out: *mut i64,
8611        a: *const ASN1_ENUMERATED,
8612    ) -> ::core::ffi::c_int;
8613}
8614unsafe extern "C" {
8615    pub fn BN_to_ASN1_ENUMERATED(
8616        bn: *const BIGNUM,
8617        ai: *mut ASN1_ENUMERATED,
8618    ) -> *mut ASN1_ENUMERATED;
8619}
8620unsafe extern "C" {
8621    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
8622}
8623unsafe extern "C" {
8624    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
8625}
8626unsafe extern "C" {
8627    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
8628}
8629unsafe extern "C" {
8630    pub fn d2i_ASN1_UTCTIME(
8631        out: *mut *mut ASN1_UTCTIME,
8632        inp: *mut *const u8,
8633        len: ::core::ffi::c_long,
8634    ) -> *mut ASN1_UTCTIME;
8635}
8636unsafe extern "C" {
8637    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8638}
8639unsafe extern "C" {
8640    pub static ASN1_UTCTIME_it: ASN1_ITEM;
8641}
8642unsafe extern "C" {
8643    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
8644}
8645unsafe extern "C" {
8646    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
8647}
8648unsafe extern "C" {
8649    pub fn ASN1_UTCTIME_adj(
8650        s: *mut ASN1_UTCTIME,
8651        posix_time: i64,
8652        offset_day: ::core::ffi::c_int,
8653        offset_sec: ::core::ffi::c_long,
8654    ) -> *mut ASN1_UTCTIME;
8655}
8656unsafe extern "C" {
8657    pub fn ASN1_UTCTIME_set_string(
8658        s: *mut ASN1_UTCTIME,
8659        str_: *const ::core::ffi::c_char,
8660    ) -> ::core::ffi::c_int;
8661}
8662unsafe extern "C" {
8663    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
8664}
8665unsafe extern "C" {
8666    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
8667}
8668unsafe extern "C" {
8669    pub fn d2i_ASN1_GENERALIZEDTIME(
8670        out: *mut *mut ASN1_GENERALIZEDTIME,
8671        inp: *mut *const u8,
8672        len: ::core::ffi::c_long,
8673    ) -> *mut ASN1_GENERALIZEDTIME;
8674}
8675unsafe extern "C" {
8676    pub fn i2d_ASN1_GENERALIZEDTIME(
8677        in_: *const ASN1_GENERALIZEDTIME,
8678        outp: *mut *mut u8,
8679    ) -> ::core::ffi::c_int;
8680}
8681unsafe extern "C" {
8682    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
8683}
8684unsafe extern "C" {
8685    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::core::ffi::c_int;
8686}
8687unsafe extern "C" {
8688    pub fn ASN1_GENERALIZEDTIME_set(
8689        s: *mut ASN1_GENERALIZEDTIME,
8690        posix_time: i64,
8691    ) -> *mut ASN1_GENERALIZEDTIME;
8692}
8693unsafe extern "C" {
8694    pub fn ASN1_GENERALIZEDTIME_adj(
8695        s: *mut ASN1_GENERALIZEDTIME,
8696        posix_time: i64,
8697        offset_day: ::core::ffi::c_int,
8698        offset_sec: ::core::ffi::c_long,
8699    ) -> *mut ASN1_GENERALIZEDTIME;
8700}
8701unsafe extern "C" {
8702    pub fn ASN1_GENERALIZEDTIME_set_string(
8703        s: *mut ASN1_GENERALIZEDTIME,
8704        str_: *const ::core::ffi::c_char,
8705    ) -> ::core::ffi::c_int;
8706}
8707unsafe extern "C" {
8708    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
8709}
8710unsafe extern "C" {
8711    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
8712}
8713unsafe extern "C" {
8714    pub fn d2i_ASN1_TIME(
8715        out: *mut *mut ASN1_TIME,
8716        inp: *mut *const u8,
8717        len: ::core::ffi::c_long,
8718    ) -> *mut ASN1_TIME;
8719}
8720unsafe extern "C" {
8721    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8722}
8723unsafe extern "C" {
8724    pub fn ASN1_TIME_diff(
8725        out_days: *mut ::core::ffi::c_int,
8726        out_seconds: *mut ::core::ffi::c_int,
8727        from: *const ASN1_TIME,
8728        to: *const ASN1_TIME,
8729    ) -> ::core::ffi::c_int;
8730}
8731unsafe extern "C" {
8732    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
8733}
8734unsafe extern "C" {
8735    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
8736}
8737unsafe extern "C" {
8738    pub fn ASN1_TIME_adj(
8739        s: *mut ASN1_TIME,
8740        posix_time: i64,
8741        offset_day: ::core::ffi::c_int,
8742        offset_sec: ::core::ffi::c_long,
8743    ) -> *mut ASN1_TIME;
8744}
8745unsafe extern "C" {
8746    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::core::ffi::c_int;
8747}
8748unsafe extern "C" {
8749    pub fn ASN1_TIME_to_generalizedtime(
8750        t: *const ASN1_TIME,
8751        out: *mut *mut ASN1_GENERALIZEDTIME,
8752    ) -> *mut ASN1_GENERALIZEDTIME;
8753}
8754unsafe extern "C" {
8755    pub fn ASN1_TIME_set_string(
8756        s: *mut ASN1_TIME,
8757        str_: *const ::core::ffi::c_char,
8758    ) -> ::core::ffi::c_int;
8759}
8760unsafe extern "C" {
8761    pub fn ASN1_TIME_set_string_X509(
8762        s: *mut ASN1_TIME,
8763        str_: *const ::core::ffi::c_char,
8764    ) -> ::core::ffi::c_int;
8765}
8766unsafe extern "C" {
8767    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::core::ffi::c_int;
8768}
8769unsafe extern "C" {
8770    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::core::ffi::c_int;
8771}
8772unsafe extern "C" {
8773    pub fn ASN1_TIME_to_posix_nonstandard(t: *const ASN1_TIME, out: *mut i64)
8774        -> ::core::ffi::c_int;
8775}
8776unsafe extern "C" {
8777    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
8778}
8779unsafe extern "C" {
8780    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
8781}
8782unsafe extern "C" {
8783    pub fn d2i_ASN1_NULL(
8784        out: *mut *mut ASN1_NULL,
8785        inp: *mut *const u8,
8786        len: ::core::ffi::c_long,
8787    ) -> *mut ASN1_NULL;
8788}
8789unsafe extern "C" {
8790    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::core::ffi::c_int;
8791}
8792unsafe extern "C" {
8793    pub static ASN1_NULL_it: ASN1_ITEM;
8794}
8795#[repr(C)]
8796#[derive(Debug)]
8797pub struct stack_st_ASN1_OBJECT {
8798    _unused: [u8; 0],
8799}
8800pub type sk_ASN1_OBJECT_free_func =
8801    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
8802pub type sk_ASN1_OBJECT_copy_func =
8803    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
8804pub type sk_ASN1_OBJECT_cmp_func = ::core::option::Option<
8805    unsafe extern "C" fn(
8806        arg1: *const *const ASN1_OBJECT,
8807        arg2: *const *const ASN1_OBJECT,
8808    ) -> ::core::ffi::c_int,
8809>;
8810pub type sk_ASN1_OBJECT_delete_if_func = ::core::option::Option<
8811    unsafe extern "C" fn(
8812        arg1: *mut ASN1_OBJECT,
8813        arg2: *mut ::core::ffi::c_void,
8814    ) -> ::core::ffi::c_int,
8815>;
8816unsafe extern "C" {
8817    #[link_name = "sk_ASN1_OBJECT_call_free_func__extern"]
8818    pub fn sk_ASN1_OBJECT_call_free_func(
8819        free_func: OPENSSL_sk_free_func,
8820        ptr: *mut ::core::ffi::c_void,
8821    );
8822}
8823unsafe extern "C" {
8824    #[link_name = "sk_ASN1_OBJECT_call_copy_func__extern"]
8825    pub fn sk_ASN1_OBJECT_call_copy_func(
8826        copy_func: OPENSSL_sk_copy_func,
8827        ptr: *const ::core::ffi::c_void,
8828    ) -> *mut ::core::ffi::c_void;
8829}
8830unsafe extern "C" {
8831    #[link_name = "sk_ASN1_OBJECT_call_cmp_func__extern"]
8832    pub fn sk_ASN1_OBJECT_call_cmp_func(
8833        cmp_func: OPENSSL_sk_cmp_func,
8834        a: *const ::core::ffi::c_void,
8835        b: *const ::core::ffi::c_void,
8836    ) -> ::core::ffi::c_int;
8837}
8838unsafe extern "C" {
8839    #[link_name = "sk_ASN1_OBJECT_call_delete_if_func__extern"]
8840    pub fn sk_ASN1_OBJECT_call_delete_if_func(
8841        func: OPENSSL_sk_delete_if_func,
8842        obj: *mut ::core::ffi::c_void,
8843        data: *mut ::core::ffi::c_void,
8844    ) -> ::core::ffi::c_int;
8845}
8846unsafe extern "C" {
8847    #[link_name = "sk_ASN1_OBJECT_new__extern"]
8848    pub fn sk_ASN1_OBJECT_new(comp: sk_ASN1_OBJECT_cmp_func) -> *mut stack_st_ASN1_OBJECT;
8849}
8850unsafe extern "C" {
8851    #[link_name = "sk_ASN1_OBJECT_new_null__extern"]
8852    pub fn sk_ASN1_OBJECT_new_null() -> *mut stack_st_ASN1_OBJECT;
8853}
8854unsafe extern "C" {
8855    #[link_name = "sk_ASN1_OBJECT_num__extern"]
8856    pub fn sk_ASN1_OBJECT_num(sk: *const stack_st_ASN1_OBJECT) -> usize;
8857}
8858unsafe extern "C" {
8859    #[link_name = "sk_ASN1_OBJECT_zero__extern"]
8860    pub fn sk_ASN1_OBJECT_zero(sk: *mut stack_st_ASN1_OBJECT);
8861}
8862unsafe extern "C" {
8863    #[link_name = "sk_ASN1_OBJECT_value__extern"]
8864    pub fn sk_ASN1_OBJECT_value(sk: *const stack_st_ASN1_OBJECT, i: usize) -> *mut ASN1_OBJECT;
8865}
8866unsafe extern "C" {
8867    #[link_name = "sk_ASN1_OBJECT_last__extern"]
8868    pub fn sk_ASN1_OBJECT_last(sk: *const stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8869}
8870unsafe extern "C" {
8871    #[link_name = "sk_ASN1_OBJECT_set__extern"]
8872    pub fn sk_ASN1_OBJECT_set(
8873        sk: *mut stack_st_ASN1_OBJECT,
8874        i: usize,
8875        p: *mut ASN1_OBJECT,
8876    ) -> *mut ASN1_OBJECT;
8877}
8878unsafe extern "C" {
8879    #[link_name = "sk_ASN1_OBJECT_free__extern"]
8880    pub fn sk_ASN1_OBJECT_free(sk: *mut stack_st_ASN1_OBJECT);
8881}
8882unsafe extern "C" {
8883    #[link_name = "sk_ASN1_OBJECT_pop_free__extern"]
8884    pub fn sk_ASN1_OBJECT_pop_free(
8885        sk: *mut stack_st_ASN1_OBJECT,
8886        free_func: sk_ASN1_OBJECT_free_func,
8887    );
8888}
8889unsafe extern "C" {
8890    #[link_name = "sk_ASN1_OBJECT_insert__extern"]
8891    pub fn sk_ASN1_OBJECT_insert(
8892        sk: *mut stack_st_ASN1_OBJECT,
8893        p: *mut ASN1_OBJECT,
8894        where_: usize,
8895    ) -> usize;
8896}
8897unsafe extern "C" {
8898    #[link_name = "sk_ASN1_OBJECT_delete__extern"]
8899    pub fn sk_ASN1_OBJECT_delete(sk: *mut stack_st_ASN1_OBJECT, where_: usize) -> *mut ASN1_OBJECT;
8900}
8901unsafe extern "C" {
8902    #[link_name = "sk_ASN1_OBJECT_delete_ptr__extern"]
8903    pub fn sk_ASN1_OBJECT_delete_ptr(
8904        sk: *mut stack_st_ASN1_OBJECT,
8905        p: *const ASN1_OBJECT,
8906    ) -> *mut ASN1_OBJECT;
8907}
8908unsafe extern "C" {
8909    #[link_name = "sk_ASN1_OBJECT_delete_if__extern"]
8910    pub fn sk_ASN1_OBJECT_delete_if(
8911        sk: *mut stack_st_ASN1_OBJECT,
8912        func: sk_ASN1_OBJECT_delete_if_func,
8913        data: *mut ::core::ffi::c_void,
8914    );
8915}
8916unsafe extern "C" {
8917    #[link_name = "sk_ASN1_OBJECT_find__extern"]
8918    pub fn sk_ASN1_OBJECT_find(
8919        sk: *const stack_st_ASN1_OBJECT,
8920        out_index: *mut usize,
8921        p: *const ASN1_OBJECT,
8922    ) -> ::core::ffi::c_int;
8923}
8924unsafe extern "C" {
8925    #[link_name = "sk_ASN1_OBJECT_shift__extern"]
8926    pub fn sk_ASN1_OBJECT_shift(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8927}
8928unsafe extern "C" {
8929    #[link_name = "sk_ASN1_OBJECT_push__extern"]
8930    pub fn sk_ASN1_OBJECT_push(sk: *mut stack_st_ASN1_OBJECT, p: *mut ASN1_OBJECT) -> usize;
8931}
8932unsafe extern "C" {
8933    #[link_name = "sk_ASN1_OBJECT_pop__extern"]
8934    pub fn sk_ASN1_OBJECT_pop(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8935}
8936unsafe extern "C" {
8937    #[link_name = "sk_ASN1_OBJECT_dup__extern"]
8938    pub fn sk_ASN1_OBJECT_dup(sk: *const stack_st_ASN1_OBJECT) -> *mut stack_st_ASN1_OBJECT;
8939}
8940unsafe extern "C" {
8941    #[link_name = "sk_ASN1_OBJECT_sort__extern"]
8942    pub fn sk_ASN1_OBJECT_sort(sk: *mut stack_st_ASN1_OBJECT);
8943}
8944unsafe extern "C" {
8945    #[link_name = "sk_ASN1_OBJECT_sort_and_dedup__extern"]
8946    pub fn sk_ASN1_OBJECT_sort_and_dedup(
8947        sk: *mut stack_st_ASN1_OBJECT,
8948        free_func: sk_ASN1_OBJECT_free_func,
8949    );
8950}
8951unsafe extern "C" {
8952    #[link_name = "sk_ASN1_OBJECT_is_sorted__extern"]
8953    pub fn sk_ASN1_OBJECT_is_sorted(sk: *const stack_st_ASN1_OBJECT) -> ::core::ffi::c_int;
8954}
8955unsafe extern "C" {
8956    #[link_name = "sk_ASN1_OBJECT_set_cmp_func__extern"]
8957    pub fn sk_ASN1_OBJECT_set_cmp_func(
8958        sk: *mut stack_st_ASN1_OBJECT,
8959        comp: sk_ASN1_OBJECT_cmp_func,
8960    ) -> sk_ASN1_OBJECT_cmp_func;
8961}
8962unsafe extern "C" {
8963    #[link_name = "sk_ASN1_OBJECT_deep_copy__extern"]
8964    pub fn sk_ASN1_OBJECT_deep_copy(
8965        sk: *const stack_st_ASN1_OBJECT,
8966        copy_func: sk_ASN1_OBJECT_copy_func,
8967        free_func: sk_ASN1_OBJECT_free_func,
8968    ) -> *mut stack_st_ASN1_OBJECT;
8969}
8970unsafe extern "C" {
8971    pub fn ASN1_OBJECT_create(
8972        nid: ::core::ffi::c_int,
8973        data: *const u8,
8974        len: usize,
8975        sn: *const ::core::ffi::c_char,
8976        ln: *const ::core::ffi::c_char,
8977    ) -> *mut ASN1_OBJECT;
8978}
8979unsafe extern "C" {
8980    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
8981}
8982unsafe extern "C" {
8983    pub fn d2i_ASN1_OBJECT(
8984        out: *mut *mut ASN1_OBJECT,
8985        inp: *mut *const u8,
8986        len: ::core::ffi::c_long,
8987    ) -> *mut ASN1_OBJECT;
8988}
8989unsafe extern "C" {
8990    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::core::ffi::c_int;
8991}
8992unsafe extern "C" {
8993    pub fn c2i_ASN1_OBJECT(
8994        out: *mut *mut ASN1_OBJECT,
8995        inp: *mut *const u8,
8996        len: ::core::ffi::c_long,
8997    ) -> *mut ASN1_OBJECT;
8998}
8999unsafe extern "C" {
9000    pub static ASN1_OBJECT_it: ASN1_ITEM;
9001}
9002#[repr(C)]
9003#[derive(Copy, Clone)]
9004pub struct asn1_type_st {
9005    pub type_: ::core::ffi::c_int,
9006    pub value: asn1_type_st__bindgen_ty_1,
9007}
9008#[repr(C)]
9009#[derive(Copy, Clone)]
9010pub union asn1_type_st__bindgen_ty_1 {
9011    pub ptr: *mut ::core::ffi::c_char,
9012    pub boolean: ASN1_BOOLEAN,
9013    pub asn1_string: *mut ASN1_STRING,
9014    pub object: *mut ASN1_OBJECT,
9015    pub integer: *mut ASN1_INTEGER,
9016    pub enumerated: *mut ASN1_ENUMERATED,
9017    pub bit_string: *mut ASN1_BIT_STRING,
9018    pub octet_string: *mut ASN1_OCTET_STRING,
9019    pub printablestring: *mut ASN1_PRINTABLESTRING,
9020    pub t61string: *mut ASN1_T61STRING,
9021    pub ia5string: *mut ASN1_IA5STRING,
9022    pub generalstring: *mut ASN1_GENERALSTRING,
9023    pub bmpstring: *mut ASN1_BMPSTRING,
9024    pub universalstring: *mut ASN1_UNIVERSALSTRING,
9025    pub utctime: *mut ASN1_UTCTIME,
9026    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
9027    pub visiblestring: *mut ASN1_VISIBLESTRING,
9028    pub utf8string: *mut ASN1_UTF8STRING,
9029    pub set: *mut ASN1_STRING,
9030    pub sequence: *mut ASN1_STRING,
9031    pub asn1_value: *mut ASN1_VALUE,
9032}
9033#[repr(C)]
9034#[derive(Debug)]
9035pub struct stack_st_ASN1_TYPE {
9036    _unused: [u8; 0],
9037}
9038pub type sk_ASN1_TYPE_free_func =
9039    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
9040pub type sk_ASN1_TYPE_copy_func =
9041    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
9042pub type sk_ASN1_TYPE_cmp_func = ::core::option::Option<
9043    unsafe extern "C" fn(
9044        arg1: *const *const ASN1_TYPE,
9045        arg2: *const *const ASN1_TYPE,
9046    ) -> ::core::ffi::c_int,
9047>;
9048pub type sk_ASN1_TYPE_delete_if_func = ::core::option::Option<
9049    unsafe extern "C" fn(
9050        arg1: *mut ASN1_TYPE,
9051        arg2: *mut ::core::ffi::c_void,
9052    ) -> ::core::ffi::c_int,
9053>;
9054unsafe extern "C" {
9055    #[link_name = "sk_ASN1_TYPE_call_free_func__extern"]
9056    pub fn sk_ASN1_TYPE_call_free_func(
9057        free_func: OPENSSL_sk_free_func,
9058        ptr: *mut ::core::ffi::c_void,
9059    );
9060}
9061unsafe extern "C" {
9062    #[link_name = "sk_ASN1_TYPE_call_copy_func__extern"]
9063    pub fn sk_ASN1_TYPE_call_copy_func(
9064        copy_func: OPENSSL_sk_copy_func,
9065        ptr: *const ::core::ffi::c_void,
9066    ) -> *mut ::core::ffi::c_void;
9067}
9068unsafe extern "C" {
9069    #[link_name = "sk_ASN1_TYPE_call_cmp_func__extern"]
9070    pub fn sk_ASN1_TYPE_call_cmp_func(
9071        cmp_func: OPENSSL_sk_cmp_func,
9072        a: *const ::core::ffi::c_void,
9073        b: *const ::core::ffi::c_void,
9074    ) -> ::core::ffi::c_int;
9075}
9076unsafe extern "C" {
9077    #[link_name = "sk_ASN1_TYPE_call_delete_if_func__extern"]
9078    pub fn sk_ASN1_TYPE_call_delete_if_func(
9079        func: OPENSSL_sk_delete_if_func,
9080        obj: *mut ::core::ffi::c_void,
9081        data: *mut ::core::ffi::c_void,
9082    ) -> ::core::ffi::c_int;
9083}
9084unsafe extern "C" {
9085    #[link_name = "sk_ASN1_TYPE_new__extern"]
9086    pub fn sk_ASN1_TYPE_new(comp: sk_ASN1_TYPE_cmp_func) -> *mut stack_st_ASN1_TYPE;
9087}
9088unsafe extern "C" {
9089    #[link_name = "sk_ASN1_TYPE_new_null__extern"]
9090    pub fn sk_ASN1_TYPE_new_null() -> *mut stack_st_ASN1_TYPE;
9091}
9092unsafe extern "C" {
9093    #[link_name = "sk_ASN1_TYPE_num__extern"]
9094    pub fn sk_ASN1_TYPE_num(sk: *const stack_st_ASN1_TYPE) -> usize;
9095}
9096unsafe extern "C" {
9097    #[link_name = "sk_ASN1_TYPE_zero__extern"]
9098    pub fn sk_ASN1_TYPE_zero(sk: *mut stack_st_ASN1_TYPE);
9099}
9100unsafe extern "C" {
9101    #[link_name = "sk_ASN1_TYPE_value__extern"]
9102    pub fn sk_ASN1_TYPE_value(sk: *const stack_st_ASN1_TYPE, i: usize) -> *mut ASN1_TYPE;
9103}
9104unsafe extern "C" {
9105    #[link_name = "sk_ASN1_TYPE_last__extern"]
9106    pub fn sk_ASN1_TYPE_last(sk: *const stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9107}
9108unsafe extern "C" {
9109    #[link_name = "sk_ASN1_TYPE_set__extern"]
9110    pub fn sk_ASN1_TYPE_set(
9111        sk: *mut stack_st_ASN1_TYPE,
9112        i: usize,
9113        p: *mut ASN1_TYPE,
9114    ) -> *mut ASN1_TYPE;
9115}
9116unsafe extern "C" {
9117    #[link_name = "sk_ASN1_TYPE_free__extern"]
9118    pub fn sk_ASN1_TYPE_free(sk: *mut stack_st_ASN1_TYPE);
9119}
9120unsafe extern "C" {
9121    #[link_name = "sk_ASN1_TYPE_pop_free__extern"]
9122    pub fn sk_ASN1_TYPE_pop_free(sk: *mut stack_st_ASN1_TYPE, free_func: sk_ASN1_TYPE_free_func);
9123}
9124unsafe extern "C" {
9125    #[link_name = "sk_ASN1_TYPE_insert__extern"]
9126    pub fn sk_ASN1_TYPE_insert(
9127        sk: *mut stack_st_ASN1_TYPE,
9128        p: *mut ASN1_TYPE,
9129        where_: usize,
9130    ) -> usize;
9131}
9132unsafe extern "C" {
9133    #[link_name = "sk_ASN1_TYPE_delete__extern"]
9134    pub fn sk_ASN1_TYPE_delete(sk: *mut stack_st_ASN1_TYPE, where_: usize) -> *mut ASN1_TYPE;
9135}
9136unsafe extern "C" {
9137    #[link_name = "sk_ASN1_TYPE_delete_ptr__extern"]
9138    pub fn sk_ASN1_TYPE_delete_ptr(
9139        sk: *mut stack_st_ASN1_TYPE,
9140        p: *const ASN1_TYPE,
9141    ) -> *mut ASN1_TYPE;
9142}
9143unsafe extern "C" {
9144    #[link_name = "sk_ASN1_TYPE_delete_if__extern"]
9145    pub fn sk_ASN1_TYPE_delete_if(
9146        sk: *mut stack_st_ASN1_TYPE,
9147        func: sk_ASN1_TYPE_delete_if_func,
9148        data: *mut ::core::ffi::c_void,
9149    );
9150}
9151unsafe extern "C" {
9152    #[link_name = "sk_ASN1_TYPE_find__extern"]
9153    pub fn sk_ASN1_TYPE_find(
9154        sk: *const stack_st_ASN1_TYPE,
9155        out_index: *mut usize,
9156        p: *const ASN1_TYPE,
9157    ) -> ::core::ffi::c_int;
9158}
9159unsafe extern "C" {
9160    #[link_name = "sk_ASN1_TYPE_shift__extern"]
9161    pub fn sk_ASN1_TYPE_shift(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9162}
9163unsafe extern "C" {
9164    #[link_name = "sk_ASN1_TYPE_push__extern"]
9165    pub fn sk_ASN1_TYPE_push(sk: *mut stack_st_ASN1_TYPE, p: *mut ASN1_TYPE) -> usize;
9166}
9167unsafe extern "C" {
9168    #[link_name = "sk_ASN1_TYPE_pop__extern"]
9169    pub fn sk_ASN1_TYPE_pop(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9170}
9171unsafe extern "C" {
9172    #[link_name = "sk_ASN1_TYPE_dup__extern"]
9173    pub fn sk_ASN1_TYPE_dup(sk: *const stack_st_ASN1_TYPE) -> *mut stack_st_ASN1_TYPE;
9174}
9175unsafe extern "C" {
9176    #[link_name = "sk_ASN1_TYPE_sort__extern"]
9177    pub fn sk_ASN1_TYPE_sort(sk: *mut stack_st_ASN1_TYPE);
9178}
9179unsafe extern "C" {
9180    #[link_name = "sk_ASN1_TYPE_sort_and_dedup__extern"]
9181    pub fn sk_ASN1_TYPE_sort_and_dedup(
9182        sk: *mut stack_st_ASN1_TYPE,
9183        free_func: sk_ASN1_TYPE_free_func,
9184    );
9185}
9186unsafe extern "C" {
9187    #[link_name = "sk_ASN1_TYPE_is_sorted__extern"]
9188    pub fn sk_ASN1_TYPE_is_sorted(sk: *const stack_st_ASN1_TYPE) -> ::core::ffi::c_int;
9189}
9190unsafe extern "C" {
9191    #[link_name = "sk_ASN1_TYPE_set_cmp_func__extern"]
9192    pub fn sk_ASN1_TYPE_set_cmp_func(
9193        sk: *mut stack_st_ASN1_TYPE,
9194        comp: sk_ASN1_TYPE_cmp_func,
9195    ) -> sk_ASN1_TYPE_cmp_func;
9196}
9197unsafe extern "C" {
9198    #[link_name = "sk_ASN1_TYPE_deep_copy__extern"]
9199    pub fn sk_ASN1_TYPE_deep_copy(
9200        sk: *const stack_st_ASN1_TYPE,
9201        copy_func: sk_ASN1_TYPE_copy_func,
9202        free_func: sk_ASN1_TYPE_free_func,
9203    ) -> *mut stack_st_ASN1_TYPE;
9204}
9205unsafe extern "C" {
9206    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
9207}
9208unsafe extern "C" {
9209    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
9210}
9211unsafe extern "C" {
9212    pub fn d2i_ASN1_TYPE(
9213        out: *mut *mut ASN1_TYPE,
9214        inp: *mut *const u8,
9215        len: ::core::ffi::c_long,
9216    ) -> *mut ASN1_TYPE;
9217}
9218unsafe extern "C" {
9219    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::core::ffi::c_int;
9220}
9221unsafe extern "C" {
9222    pub static ASN1_ANY_it: ASN1_ITEM;
9223}
9224unsafe extern "C" {
9225    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::core::ffi::c_int;
9226}
9227unsafe extern "C" {
9228    pub fn ASN1_TYPE_set(
9229        a: *mut ASN1_TYPE,
9230        type_: ::core::ffi::c_int,
9231        value: *mut ::core::ffi::c_void,
9232    );
9233}
9234unsafe extern "C" {
9235    pub fn ASN1_TYPE_set1(
9236        a: *mut ASN1_TYPE,
9237        type_: ::core::ffi::c_int,
9238        value: *const ::core::ffi::c_void,
9239    ) -> ::core::ffi::c_int;
9240}
9241unsafe extern "C" {
9242    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::core::ffi::c_int;
9243}
9244pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
9245unsafe extern "C" {
9246    pub fn d2i_ASN1_SEQUENCE_ANY(
9247        out: *mut *mut ASN1_SEQUENCE_ANY,
9248        inp: *mut *const u8,
9249        len: ::core::ffi::c_long,
9250    ) -> *mut ASN1_SEQUENCE_ANY;
9251}
9252unsafe extern "C" {
9253    pub fn i2d_ASN1_SEQUENCE_ANY(
9254        in_: *const ASN1_SEQUENCE_ANY,
9255        outp: *mut *mut u8,
9256    ) -> ::core::ffi::c_int;
9257}
9258unsafe extern "C" {
9259    pub fn d2i_ASN1_SET_ANY(
9260        out: *mut *mut ASN1_SEQUENCE_ANY,
9261        inp: *mut *const u8,
9262        len: ::core::ffi::c_long,
9263    ) -> *mut ASN1_SEQUENCE_ANY;
9264}
9265unsafe extern "C" {
9266    pub fn i2d_ASN1_SET_ANY(
9267        in_: *const ASN1_SEQUENCE_ANY,
9268        outp: *mut *mut u8,
9269    ) -> ::core::ffi::c_int;
9270}
9271unsafe extern "C" {
9272    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
9273}
9274unsafe extern "C" {
9275    pub fn ASN1_GENERALIZEDTIME_print(
9276        out: *mut BIO,
9277        a: *const ASN1_GENERALIZEDTIME,
9278    ) -> ::core::ffi::c_int;
9279}
9280unsafe extern "C" {
9281    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::core::ffi::c_int;
9282}
9283unsafe extern "C" {
9284    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
9285}
9286unsafe extern "C" {
9287    pub fn ASN1_STRING_print_ex(
9288        out: *mut BIO,
9289        str_: *const ASN1_STRING,
9290        flags: ::core::ffi::c_ulong,
9291    ) -> ::core::ffi::c_int;
9292}
9293unsafe extern "C" {
9294    pub fn ASN1_STRING_print_ex_fp(
9295        fp: *mut FILE,
9296        str_: *const ASN1_STRING,
9297        flags: ::core::ffi::c_ulong,
9298    ) -> ::core::ffi::c_int;
9299}
9300unsafe extern "C" {
9301    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
9302}
9303unsafe extern "C" {
9304    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::core::ffi::c_int;
9305}
9306unsafe extern "C" {
9307    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::core::ffi::c_int;
9308}
9309unsafe extern "C" {
9310    pub fn i2a_ASN1_STRING(
9311        bp: *mut BIO,
9312        a: *const ASN1_STRING,
9313        type_: ::core::ffi::c_int,
9314    ) -> ::core::ffi::c_int;
9315}
9316unsafe extern "C" {
9317    pub fn i2t_ASN1_OBJECT(
9318        buf: *mut ::core::ffi::c_char,
9319        buf_len: ::core::ffi::c_int,
9320        a: *const ASN1_OBJECT,
9321    ) -> ::core::ffi::c_int;
9322}
9323unsafe extern "C" {
9324    pub fn ASN1_get_object(
9325        inp: *mut *const ::core::ffi::c_uchar,
9326        out_length: *mut ::core::ffi::c_long,
9327        out_tag: *mut ::core::ffi::c_int,
9328        out_class: *mut ::core::ffi::c_int,
9329        max_len: ::core::ffi::c_long,
9330    ) -> ::core::ffi::c_int;
9331}
9332unsafe extern "C" {
9333    pub fn ASN1_put_object(
9334        outp: *mut *mut ::core::ffi::c_uchar,
9335        constructed: ::core::ffi::c_int,
9336        length: ::core::ffi::c_int,
9337        tag: ::core::ffi::c_int,
9338        xclass: ::core::ffi::c_int,
9339    );
9340}
9341unsafe extern "C" {
9342    pub fn ASN1_put_eoc(outp: *mut *mut ::core::ffi::c_uchar) -> ::core::ffi::c_int;
9343}
9344unsafe extern "C" {
9345    pub fn ASN1_object_size(
9346        constructed: ::core::ffi::c_int,
9347        length: ::core::ffi::c_int,
9348        tag: ::core::ffi::c_int,
9349    ) -> ::core::ffi::c_int;
9350}
9351unsafe extern "C" {
9352    pub fn ASN1_BIT_STRING_num_bytes(
9353        str_: *const ASN1_BIT_STRING,
9354        out: *mut usize,
9355    ) -> ::core::ffi::c_int;
9356}
9357unsafe extern "C" {
9358    pub fn ASN1_STRING_set_default_mask(mask: ::core::ffi::c_ulong);
9359}
9360unsafe extern "C" {
9361    pub fn ASN1_STRING_set_default_mask_asc(p: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
9362}
9363unsafe extern "C" {
9364    pub fn ASN1_STRING_get_default_mask() -> ::core::ffi::c_ulong;
9365}
9366unsafe extern "C" {
9367    pub fn ASN1_STRING_TABLE_cleanup();
9368}
9369unsafe extern "C" {
9370    pub fn ASN1_INTEGER_set(a: *mut ASN1_INTEGER, v: ::core::ffi::c_long) -> ::core::ffi::c_int;
9371}
9372unsafe extern "C" {
9373    pub fn ASN1_ENUMERATED_set(
9374        a: *mut ASN1_ENUMERATED,
9375        v: ::core::ffi::c_long,
9376    ) -> ::core::ffi::c_int;
9377}
9378unsafe extern "C" {
9379    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::core::ffi::c_long;
9380}
9381unsafe extern "C" {
9382    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::core::ffi::c_long;
9383}
9384pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
9385#[repr(C)]
9386#[derive(Debug)]
9387pub struct ASN1_TLC_st {
9388    _unused: [u8; 0],
9389}
9390pub type ASN1_TLC = ASN1_TLC_st;
9391#[repr(C)]
9392#[derive(Debug, Copy, Clone)]
9393pub struct ASN1_TEMPLATE_st {
9394    pub flags: u32,
9395    pub tag: ::core::ffi::c_int,
9396    pub offset: ::core::ffi::c_ulong,
9397    pub field_name: *const ::core::ffi::c_char,
9398    pub item: *const ASN1_ITEM_st,
9399}
9400pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
9401pub type ASN1_ADB = ASN1_ADB_st;
9402#[repr(C)]
9403#[derive(Debug, Copy, Clone)]
9404pub struct ASN1_ADB_st {
9405    pub flags: u32,
9406    pub offset: ::core::ffi::c_ulong,
9407    pub unused: *mut CRYPTO_MUST_BE_NULL,
9408    pub tbl: *const ASN1_ADB_TABLE,
9409    pub tblcount: ::core::ffi::c_long,
9410    pub default_tt: *const ASN1_TEMPLATE,
9411    pub null_tt: *const ASN1_TEMPLATE,
9412}
9413#[repr(C)]
9414#[derive(Debug, Copy, Clone)]
9415pub struct ASN1_ADB_TABLE_st {
9416    pub value: ::core::ffi::c_int,
9417    pub tt: ASN1_TEMPLATE,
9418}
9419#[repr(C)]
9420#[derive(Debug, Copy, Clone)]
9421pub struct ASN1_ITEM_st {
9422    pub itype: ::core::ffi::c_char,
9423    pub utype: ::core::ffi::c_int,
9424    pub templates: *const ASN1_TEMPLATE,
9425    pub tcount: ::core::ffi::c_long,
9426    pub funcs: *const ::core::ffi::c_void,
9427    pub size: ::core::ffi::c_long,
9428    pub sname: *const ::core::ffi::c_char,
9429}
9430pub type ASN1_aux_cb = ::core::option::Option<
9431    unsafe extern "C" fn(
9432        operation: ::core::ffi::c_int,
9433        in_: *mut *mut ASN1_VALUE,
9434        it: *const ASN1_ITEM,
9435        exarg: *mut ::core::ffi::c_void,
9436    ) -> ::core::ffi::c_int,
9437>;
9438#[repr(C)]
9439#[derive(Debug, Copy, Clone)]
9440pub struct ASN1_AUX_st {
9441    pub app_data: *mut ::core::ffi::c_void,
9442    pub flags: u32,
9443    pub ref_offset: ::core::ffi::c_int,
9444    pub asn1_cb: ASN1_aux_cb,
9445    pub enc_offset: ::core::ffi::c_int,
9446}
9447pub type ASN1_AUX = ASN1_AUX_st;
9448unsafe extern "C" {
9449    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
9450}
9451#[repr(C)]
9452#[derive(Debug)]
9453pub struct stack_st_ASN1_VALUE {
9454    _unused: [u8; 0],
9455}
9456pub type sk_ASN1_VALUE_free_func =
9457    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
9458pub type sk_ASN1_VALUE_copy_func =
9459    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
9460pub type sk_ASN1_VALUE_cmp_func = ::core::option::Option<
9461    unsafe extern "C" fn(
9462        arg1: *const *const ASN1_VALUE,
9463        arg2: *const *const ASN1_VALUE,
9464    ) -> ::core::ffi::c_int,
9465>;
9466pub type sk_ASN1_VALUE_delete_if_func = ::core::option::Option<
9467    unsafe extern "C" fn(
9468        arg1: *mut ASN1_VALUE,
9469        arg2: *mut ::core::ffi::c_void,
9470    ) -> ::core::ffi::c_int,
9471>;
9472unsafe extern "C" {
9473    #[link_name = "sk_ASN1_VALUE_call_free_func__extern"]
9474    pub fn sk_ASN1_VALUE_call_free_func(
9475        free_func: OPENSSL_sk_free_func,
9476        ptr: *mut ::core::ffi::c_void,
9477    );
9478}
9479unsafe extern "C" {
9480    #[link_name = "sk_ASN1_VALUE_call_copy_func__extern"]
9481    pub fn sk_ASN1_VALUE_call_copy_func(
9482        copy_func: OPENSSL_sk_copy_func,
9483        ptr: *const ::core::ffi::c_void,
9484    ) -> *mut ::core::ffi::c_void;
9485}
9486unsafe extern "C" {
9487    #[link_name = "sk_ASN1_VALUE_call_cmp_func__extern"]
9488    pub fn sk_ASN1_VALUE_call_cmp_func(
9489        cmp_func: OPENSSL_sk_cmp_func,
9490        a: *const ::core::ffi::c_void,
9491        b: *const ::core::ffi::c_void,
9492    ) -> ::core::ffi::c_int;
9493}
9494unsafe extern "C" {
9495    #[link_name = "sk_ASN1_VALUE_call_delete_if_func__extern"]
9496    pub fn sk_ASN1_VALUE_call_delete_if_func(
9497        func: OPENSSL_sk_delete_if_func,
9498        obj: *mut ::core::ffi::c_void,
9499        data: *mut ::core::ffi::c_void,
9500    ) -> ::core::ffi::c_int;
9501}
9502unsafe extern "C" {
9503    #[link_name = "sk_ASN1_VALUE_new__extern"]
9504    pub fn sk_ASN1_VALUE_new(comp: sk_ASN1_VALUE_cmp_func) -> *mut stack_st_ASN1_VALUE;
9505}
9506unsafe extern "C" {
9507    #[link_name = "sk_ASN1_VALUE_new_null__extern"]
9508    pub fn sk_ASN1_VALUE_new_null() -> *mut stack_st_ASN1_VALUE;
9509}
9510unsafe extern "C" {
9511    #[link_name = "sk_ASN1_VALUE_num__extern"]
9512    pub fn sk_ASN1_VALUE_num(sk: *const stack_st_ASN1_VALUE) -> usize;
9513}
9514unsafe extern "C" {
9515    #[link_name = "sk_ASN1_VALUE_zero__extern"]
9516    pub fn sk_ASN1_VALUE_zero(sk: *mut stack_st_ASN1_VALUE);
9517}
9518unsafe extern "C" {
9519    #[link_name = "sk_ASN1_VALUE_value__extern"]
9520    pub fn sk_ASN1_VALUE_value(sk: *const stack_st_ASN1_VALUE, i: usize) -> *mut ASN1_VALUE;
9521}
9522unsafe extern "C" {
9523    #[link_name = "sk_ASN1_VALUE_last__extern"]
9524    pub fn sk_ASN1_VALUE_last(sk: *const stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9525}
9526unsafe extern "C" {
9527    #[link_name = "sk_ASN1_VALUE_set__extern"]
9528    pub fn sk_ASN1_VALUE_set(
9529        sk: *mut stack_st_ASN1_VALUE,
9530        i: usize,
9531        p: *mut ASN1_VALUE,
9532    ) -> *mut ASN1_VALUE;
9533}
9534unsafe extern "C" {
9535    #[link_name = "sk_ASN1_VALUE_free__extern"]
9536    pub fn sk_ASN1_VALUE_free(sk: *mut stack_st_ASN1_VALUE);
9537}
9538unsafe extern "C" {
9539    #[link_name = "sk_ASN1_VALUE_pop_free__extern"]
9540    pub fn sk_ASN1_VALUE_pop_free(sk: *mut stack_st_ASN1_VALUE, free_func: sk_ASN1_VALUE_free_func);
9541}
9542unsafe extern "C" {
9543    #[link_name = "sk_ASN1_VALUE_insert__extern"]
9544    pub fn sk_ASN1_VALUE_insert(
9545        sk: *mut stack_st_ASN1_VALUE,
9546        p: *mut ASN1_VALUE,
9547        where_: usize,
9548    ) -> usize;
9549}
9550unsafe extern "C" {
9551    #[link_name = "sk_ASN1_VALUE_delete__extern"]
9552    pub fn sk_ASN1_VALUE_delete(sk: *mut stack_st_ASN1_VALUE, where_: usize) -> *mut ASN1_VALUE;
9553}
9554unsafe extern "C" {
9555    #[link_name = "sk_ASN1_VALUE_delete_ptr__extern"]
9556    pub fn sk_ASN1_VALUE_delete_ptr(
9557        sk: *mut stack_st_ASN1_VALUE,
9558        p: *const ASN1_VALUE,
9559    ) -> *mut ASN1_VALUE;
9560}
9561unsafe extern "C" {
9562    #[link_name = "sk_ASN1_VALUE_delete_if__extern"]
9563    pub fn sk_ASN1_VALUE_delete_if(
9564        sk: *mut stack_st_ASN1_VALUE,
9565        func: sk_ASN1_VALUE_delete_if_func,
9566        data: *mut ::core::ffi::c_void,
9567    );
9568}
9569unsafe extern "C" {
9570    #[link_name = "sk_ASN1_VALUE_find__extern"]
9571    pub fn sk_ASN1_VALUE_find(
9572        sk: *const stack_st_ASN1_VALUE,
9573        out_index: *mut usize,
9574        p: *const ASN1_VALUE,
9575    ) -> ::core::ffi::c_int;
9576}
9577unsafe extern "C" {
9578    #[link_name = "sk_ASN1_VALUE_shift__extern"]
9579    pub fn sk_ASN1_VALUE_shift(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9580}
9581unsafe extern "C" {
9582    #[link_name = "sk_ASN1_VALUE_push__extern"]
9583    pub fn sk_ASN1_VALUE_push(sk: *mut stack_st_ASN1_VALUE, p: *mut ASN1_VALUE) -> usize;
9584}
9585unsafe extern "C" {
9586    #[link_name = "sk_ASN1_VALUE_pop__extern"]
9587    pub fn sk_ASN1_VALUE_pop(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9588}
9589unsafe extern "C" {
9590    #[link_name = "sk_ASN1_VALUE_dup__extern"]
9591    pub fn sk_ASN1_VALUE_dup(sk: *const stack_st_ASN1_VALUE) -> *mut stack_st_ASN1_VALUE;
9592}
9593unsafe extern "C" {
9594    #[link_name = "sk_ASN1_VALUE_sort__extern"]
9595    pub fn sk_ASN1_VALUE_sort(sk: *mut stack_st_ASN1_VALUE);
9596}
9597unsafe extern "C" {
9598    #[link_name = "sk_ASN1_VALUE_sort_and_dedup__extern"]
9599    pub fn sk_ASN1_VALUE_sort_and_dedup(
9600        sk: *mut stack_st_ASN1_VALUE,
9601        free_func: sk_ASN1_VALUE_free_func,
9602    );
9603}
9604unsafe extern "C" {
9605    #[link_name = "sk_ASN1_VALUE_is_sorted__extern"]
9606    pub fn sk_ASN1_VALUE_is_sorted(sk: *const stack_st_ASN1_VALUE) -> ::core::ffi::c_int;
9607}
9608unsafe extern "C" {
9609    #[link_name = "sk_ASN1_VALUE_set_cmp_func__extern"]
9610    pub fn sk_ASN1_VALUE_set_cmp_func(
9611        sk: *mut stack_st_ASN1_VALUE,
9612        comp: sk_ASN1_VALUE_cmp_func,
9613    ) -> sk_ASN1_VALUE_cmp_func;
9614}
9615unsafe extern "C" {
9616    #[link_name = "sk_ASN1_VALUE_deep_copy__extern"]
9617    pub fn sk_ASN1_VALUE_deep_copy(
9618        sk: *const stack_st_ASN1_VALUE,
9619        copy_func: sk_ASN1_VALUE_copy_func,
9620        free_func: sk_ASN1_VALUE_free_func,
9621    ) -> *mut stack_st_ASN1_VALUE;
9622}
9623unsafe extern "C" {
9624    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
9625}
9626unsafe extern "C" {
9627    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9628}
9629unsafe extern "C" {
9630    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9631}
9632unsafe extern "C" {
9633    pub fn EVP_DecodeBase64(
9634        out: *mut u8,
9635        out_len: *mut usize,
9636        max_out: usize,
9637        in_: *const u8,
9638        in_len: usize,
9639    ) -> ::core::ffi::c_int;
9640}
9641unsafe extern "C" {
9642    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
9643}
9644unsafe extern "C" {
9645    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
9646}
9647unsafe extern "C" {
9648    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
9649}
9650unsafe extern "C" {
9651    pub fn EVP_EncodeUpdate(
9652        ctx: *mut EVP_ENCODE_CTX,
9653        out: *mut u8,
9654        out_len: *mut ::core::ffi::c_int,
9655        in_: *const u8,
9656        in_len: usize,
9657    );
9658}
9659unsafe extern "C" {
9660    pub fn EVP_EncodeFinal(
9661        ctx: *mut EVP_ENCODE_CTX,
9662        out: *mut u8,
9663        out_len: *mut ::core::ffi::c_int,
9664    );
9665}
9666unsafe extern "C" {
9667    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
9668}
9669unsafe extern "C" {
9670    pub fn EVP_DecodeUpdate(
9671        ctx: *mut EVP_ENCODE_CTX,
9672        out: *mut u8,
9673        out_len: *mut ::core::ffi::c_int,
9674        in_: *const u8,
9675        in_len: usize,
9676    ) -> ::core::ffi::c_int;
9677}
9678unsafe extern "C" {
9679    pub fn EVP_DecodeFinal(
9680        ctx: *mut EVP_ENCODE_CTX,
9681        out: *mut u8,
9682        out_len: *mut ::core::ffi::c_int,
9683    ) -> ::core::ffi::c_int;
9684}
9685unsafe extern "C" {
9686    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::core::ffi::c_int;
9687}
9688#[repr(C)]
9689#[derive(Debug, Copy, Clone)]
9690pub struct evp_encode_ctx_st {
9691    pub data_used: ::core::ffi::c_uint,
9692    pub data: [u8; 48usize],
9693    pub eof_seen: ::core::ffi::c_char,
9694    pub error_encountered: ::core::ffi::c_char,
9695}
9696#[repr(C)]
9697#[derive(Debug, Copy, Clone)]
9698pub struct blake2b_state_st {
9699    pub h: [u64; 8usize],
9700    pub t_low: u64,
9701    pub t_high: u32,
9702    pub block_used: u32,
9703    pub block: [u8; 128usize],
9704}
9705unsafe extern "C" {
9706    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
9707}
9708unsafe extern "C" {
9709    pub fn BLAKE2B256_Update(b2b: *mut BLAKE2B_CTX, data: *const ::core::ffi::c_void, len: usize);
9710}
9711unsafe extern "C" {
9712    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
9713}
9714unsafe extern "C" {
9715    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
9716}
9717#[repr(C)]
9718#[derive(Debug, Copy, Clone)]
9719pub struct bf_key_st {
9720    pub P: [u32; 18usize],
9721    pub S: [u32; 1024usize],
9722}
9723pub type BF_KEY = bf_key_st;
9724unsafe extern "C" {
9725    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
9726}
9727unsafe extern "C" {
9728    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
9729}
9730unsafe extern "C" {
9731    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
9732}
9733unsafe extern "C" {
9734    pub fn BF_ecb_encrypt(
9735        in_: *const u8,
9736        out: *mut u8,
9737        key: *const BF_KEY,
9738        enc: ::core::ffi::c_int,
9739    );
9740}
9741unsafe extern "C" {
9742    pub fn BF_cbc_encrypt(
9743        in_: *const u8,
9744        out: *mut u8,
9745        length: usize,
9746        schedule: *const BF_KEY,
9747        ivec: *mut u8,
9748        enc: ::core::ffi::c_int,
9749    );
9750}
9751#[repr(C)]
9752#[derive(Debug, Copy, Clone)]
9753pub struct cbs_st {
9754    pub data: *const u8,
9755    pub len: usize,
9756}
9757unsafe extern "C" {
9758    #[link_name = "CBS_init__extern"]
9759    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
9760}
9761unsafe extern "C" {
9762    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::core::ffi::c_int;
9763}
9764unsafe extern "C" {
9765    #[link_name = "CBS_data__extern"]
9766    pub fn CBS_data(cbs: *const CBS) -> *const u8;
9767}
9768unsafe extern "C" {
9769    #[link_name = "CBS_len__extern"]
9770    pub fn CBS_len(cbs: *const CBS) -> usize;
9771}
9772unsafe extern "C" {
9773    pub fn CBS_stow(
9774        cbs: *const CBS,
9775        out_ptr: *mut *mut u8,
9776        out_len: *mut usize,
9777    ) -> ::core::ffi::c_int;
9778}
9779unsafe extern "C" {
9780    pub fn CBS_strdup(
9781        cbs: *const CBS,
9782        out_ptr: *mut *mut ::core::ffi::c_char,
9783    ) -> ::core::ffi::c_int;
9784}
9785unsafe extern "C" {
9786    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::core::ffi::c_int;
9787}
9788unsafe extern "C" {
9789    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::core::ffi::c_int;
9790}
9791unsafe extern "C" {
9792    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9793}
9794unsafe extern "C" {
9795    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9796}
9797unsafe extern "C" {
9798    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9799}
9800unsafe extern "C" {
9801    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9802}
9803unsafe extern "C" {
9804    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9805}
9806unsafe extern "C" {
9807    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9808}
9809unsafe extern "C" {
9810    pub fn CBS_get_u48(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9811}
9812unsafe extern "C" {
9813    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9814}
9815unsafe extern "C" {
9816    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9817}
9818unsafe extern "C" {
9819    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9820}
9821unsafe extern "C" {
9822    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::core::ffi::c_int;
9823}
9824unsafe extern "C" {
9825    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::core::ffi::c_int;
9826}
9827unsafe extern "C" {
9828    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9829}
9830unsafe extern "C" {
9831    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9832}
9833unsafe extern "C" {
9834    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9835}
9836unsafe extern "C" {
9837    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::core::ffi::c_int;
9838}
9839unsafe extern "C" {
9840    pub fn CBS_get_until_first_of(
9841        cbs: *mut CBS,
9842        out: *mut CBS,
9843        chars: *const ::core::ffi::c_char,
9844    ) -> ::core::ffi::c_int;
9845}
9846unsafe extern "C" {
9847    pub fn CBS_get_until_first_not_of(
9848        cbs: *mut CBS,
9849        out: *mut CBS,
9850        chars: *const ::core::ffi::c_char,
9851    ) -> ::core::ffi::c_int;
9852}
9853unsafe extern "C" {
9854    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9855}
9856unsafe extern "C" {
9857    pub fn CBS_get_asn1(
9858        cbs: *mut CBS,
9859        out: *mut CBS,
9860        tag_value: CBS_ASN1_TAG,
9861    ) -> ::core::ffi::c_int;
9862}
9863unsafe extern "C" {
9864    pub fn CBS_get_asn1_element(
9865        cbs: *mut CBS,
9866        out: *mut CBS,
9867        tag_value: CBS_ASN1_TAG,
9868    ) -> ::core::ffi::c_int;
9869}
9870unsafe extern "C" {
9871    pub fn CBS_peek_any_asn1_tag(cbs: *const CBS) -> CBS_ASN1_TAG;
9872}
9873unsafe extern "C" {
9874    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::core::ffi::c_int;
9875}
9876unsafe extern "C" {
9877    pub fn CBS_get_any_asn1(
9878        cbs: *mut CBS,
9879        out: *mut CBS,
9880        out_tag: *mut CBS_ASN1_TAG,
9881    ) -> ::core::ffi::c_int;
9882}
9883unsafe extern "C" {
9884    pub fn CBS_get_any_asn1_element(
9885        cbs: *mut CBS,
9886        out: *mut CBS,
9887        out_tag: *mut CBS_ASN1_TAG,
9888        out_header_len: *mut usize,
9889    ) -> ::core::ffi::c_int;
9890}
9891unsafe extern "C" {
9892    pub fn CBS_get_any_ber_asn1_element(
9893        cbs: *mut CBS,
9894        out: *mut CBS,
9895        out_tag: *mut CBS_ASN1_TAG,
9896        out_header_len: *mut usize,
9897        out_ber_found: *mut ::core::ffi::c_int,
9898        out_indefinite: *mut ::core::ffi::c_int,
9899    ) -> ::core::ffi::c_int;
9900}
9901unsafe extern "C" {
9902    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9903}
9904unsafe extern "C" {
9905    pub fn CBS_get_asn1_uint64_with_tag(
9906        cbs: *mut CBS,
9907        out: *mut u64,
9908        tag: CBS_ASN1_TAG,
9909    ) -> ::core::ffi::c_int;
9910}
9911unsafe extern "C" {
9912    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::core::ffi::c_int;
9913}
9914unsafe extern "C" {
9915    pub fn CBS_get_asn1_int64_with_tag(
9916        cbs: *mut CBS,
9917        out: *mut i64,
9918        tag: CBS_ASN1_TAG,
9919    ) -> ::core::ffi::c_int;
9920}
9921unsafe extern "C" {
9922    pub fn CBS_get_asn1_bool(cbs: *mut CBS, out: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
9923}
9924unsafe extern "C" {
9925    pub fn CBS_get_optional_asn1(
9926        cbs: *mut CBS,
9927        out: *mut CBS,
9928        out_present: *mut ::core::ffi::c_int,
9929        tag: CBS_ASN1_TAG,
9930    ) -> ::core::ffi::c_int;
9931}
9932unsafe extern "C" {
9933    pub fn CBS_get_optional_asn1_octet_string(
9934        cbs: *mut CBS,
9935        out: *mut CBS,
9936        out_present: *mut ::core::ffi::c_int,
9937        tag: CBS_ASN1_TAG,
9938    ) -> ::core::ffi::c_int;
9939}
9940unsafe extern "C" {
9941    pub fn CBS_get_optional_asn1_uint64(
9942        cbs: *mut CBS,
9943        out: *mut u64,
9944        tag: CBS_ASN1_TAG,
9945        default_value: u64,
9946    ) -> ::core::ffi::c_int;
9947}
9948unsafe extern "C" {
9949    pub fn CBS_get_optional_asn1_bool(
9950        cbs: *mut CBS,
9951        out: *mut ::core::ffi::c_int,
9952        tag: CBS_ASN1_TAG,
9953        default_value: ::core::ffi::c_int,
9954    ) -> ::core::ffi::c_int;
9955}
9956unsafe extern "C" {
9957    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::core::ffi::c_int;
9958}
9959unsafe extern "C" {
9960    pub fn CBS_asn1_bitstring_has_bit(
9961        cbs: *const CBS,
9962        bit: ::core::ffi::c_uint,
9963    ) -> ::core::ffi::c_int;
9964}
9965unsafe extern "C" {
9966    pub fn CBS_is_valid_asn1_integer(
9967        cbs: *const CBS,
9968        out_is_negative: *mut ::core::ffi::c_int,
9969    ) -> ::core::ffi::c_int;
9970}
9971unsafe extern "C" {
9972    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::core::ffi::c_int;
9973}
9974unsafe extern "C" {
9975    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9976}
9977unsafe extern "C" {
9978    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9979}
9980unsafe extern "C" {
9981    pub fn CBS_is_valid_asn1_relative_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9982}
9983unsafe extern "C" {
9984    pub fn CBS_asn1_relative_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9985}
9986unsafe extern "C" {
9987    pub fn CBS_get_asn1_oid_component(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9988}
9989unsafe extern "C" {
9990    pub fn CBS_parse_generalized_time(
9991        cbs: *const CBS,
9992        out_tm: *mut tm,
9993        allow_timezone_offset: ::core::ffi::c_int,
9994    ) -> ::core::ffi::c_int;
9995}
9996unsafe extern "C" {
9997    pub fn CBS_parse_utc_time(
9998        cbs: *const CBS,
9999        out_tm: *mut tm,
10000        allow_timezone_offset: ::core::ffi::c_int,
10001    ) -> ::core::ffi::c_int;
10002}
10003#[repr(C)]
10004#[derive(Debug, Copy, Clone)]
10005pub struct cbb_buffer_st {
10006    pub buf: *mut u8,
10007    pub len: usize,
10008    pub cap: usize,
10009    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10010    pub __bindgen_padding_0: [u8; 7usize],
10011}
10012impl cbb_buffer_st {
10013    #[inline]
10014    pub fn can_resize(&self) -> ::core::ffi::c_uint {
10015        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
10016    }
10017    #[inline]
10018    pub fn set_can_resize(&mut self, val: ::core::ffi::c_uint) {
10019        let val: u32 = val as _;
10020        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
10021    }
10022    #[inline]
10023    pub unsafe fn can_resize_raw(this: *const Self) -> ::core::ffi::c_uint {
10024        unsafe {
10025            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
10026                ::core::ptr::addr_of!((*this)._bitfield_1),
10027            ) as u32 as _
10028        }
10029    }
10030    #[inline]
10031    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10032        unsafe {
10033            let val: u32 = val as _;
10034            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
10035                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10036                val as u64,
10037            )
10038        }
10039    }
10040    #[inline]
10041    pub fn error(&self) -> ::core::ffi::c_uint {
10042        self._bitfield_1.get_const::<1usize, 1u8>() as u32 as _
10043    }
10044    #[inline]
10045    pub fn set_error(&mut self, val: ::core::ffi::c_uint) {
10046        let val: u32 = val as _;
10047        self._bitfield_1.set_const::<1usize, 1u8>(val as u64)
10048    }
10049    #[inline]
10050    pub unsafe fn error_raw(this: *const Self) -> ::core::ffi::c_uint {
10051        unsafe {
10052            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<1usize, 1u8>(
10053                ::core::ptr::addr_of!((*this)._bitfield_1),
10054            ) as u32 as _
10055        }
10056    }
10057    #[inline]
10058    pub unsafe fn set_error_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10059        unsafe {
10060            let val: u32 = val as _;
10061            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<1usize, 1u8>(
10062                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10063                val as u64,
10064            )
10065        }
10066    }
10067    #[inline]
10068    pub fn new_bitfield_1(
10069        can_resize: ::core::ffi::c_uint,
10070        error: ::core::ffi::c_uint,
10071    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10072        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10073        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10074            let can_resize: u32 = can_resize as _;
10075            can_resize as u64
10076        });
10077        __bindgen_bitfield_unit.set_const::<1usize, 1u8>({
10078            let error: u32 = error as _;
10079            error as u64
10080        });
10081        __bindgen_bitfield_unit
10082    }
10083}
10084#[repr(C)]
10085#[derive(Debug, Copy, Clone)]
10086pub struct cbb_child_st {
10087    pub base: *mut cbb_buffer_st,
10088    pub offset: usize,
10089    pub pending_len_len: u8,
10090    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10091    pub __bindgen_padding_0: [u16; 3usize],
10092}
10093impl cbb_child_st {
10094    #[inline]
10095    pub fn pending_is_asn1(&self) -> ::core::ffi::c_uint {
10096        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
10097    }
10098    #[inline]
10099    pub fn set_pending_is_asn1(&mut self, val: ::core::ffi::c_uint) {
10100        let val: u32 = val as _;
10101        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
10102    }
10103    #[inline]
10104    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::core::ffi::c_uint {
10105        unsafe {
10106            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
10107                ::core::ptr::addr_of!((*this)._bitfield_1),
10108            ) as u32 as _
10109        }
10110    }
10111    #[inline]
10112    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10113        unsafe {
10114            let val: u32 = val as _;
10115            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
10116                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10117                val as u64,
10118            )
10119        }
10120    }
10121    #[inline]
10122    pub fn new_bitfield_1(
10123        pending_is_asn1: ::core::ffi::c_uint,
10124    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10125        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10126        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10127            let pending_is_asn1: u32 = pending_is_asn1 as _;
10128            pending_is_asn1 as u64
10129        });
10130        __bindgen_bitfield_unit
10131    }
10132}
10133#[repr(C)]
10134#[derive(Copy, Clone)]
10135pub struct cbb_st {
10136    pub child: *mut CBB,
10137    pub is_child: ::core::ffi::c_char,
10138    pub u: cbb_st__bindgen_ty_1,
10139}
10140#[repr(C)]
10141#[derive(Copy, Clone)]
10142pub union cbb_st__bindgen_ty_1 {
10143    pub base: cbb_buffer_st,
10144    pub child: cbb_child_st,
10145}
10146unsafe extern "C" {
10147    pub fn CBB_zero(cbb: *mut CBB);
10148}
10149unsafe extern "C" {
10150    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::core::ffi::c_int;
10151}
10152unsafe extern "C" {
10153    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::core::ffi::c_int;
10154}
10155unsafe extern "C" {
10156    pub fn CBB_cleanup(cbb: *mut CBB);
10157}
10158unsafe extern "C" {
10159    pub fn CBB_finish(
10160        cbb: *mut CBB,
10161        out_data: *mut *mut u8,
10162        out_len: *mut usize,
10163    ) -> ::core::ffi::c_int;
10164}
10165unsafe extern "C" {
10166    pub fn CBB_flush(cbb: *mut CBB) -> ::core::ffi::c_int;
10167}
10168unsafe extern "C" {
10169    pub fn CBB_data(cbb: *const CBB) -> *mut u8;
10170}
10171unsafe extern "C" {
10172    pub fn CBB_len(cbb: *const CBB) -> usize;
10173}
10174unsafe extern "C" {
10175    pub fn CBB_add_u8_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB) -> ::core::ffi::c_int;
10176}
10177unsafe extern "C" {
10178    pub fn CBB_add_u16_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10179        -> ::core::ffi::c_int;
10180}
10181unsafe extern "C" {
10182    pub fn CBB_add_u24_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10183        -> ::core::ffi::c_int;
10184}
10185unsafe extern "C" {
10186    pub fn CBB_add_asn1(
10187        cbb: *mut CBB,
10188        out_contents: *mut CBB,
10189        tag: CBS_ASN1_TAG,
10190    ) -> ::core::ffi::c_int;
10191}
10192unsafe extern "C" {
10193    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::core::ffi::c_int;
10194}
10195unsafe extern "C" {
10196    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10197}
10198unsafe extern "C" {
10199    pub fn CBB_add_space(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10200}
10201unsafe extern "C" {
10202    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10203}
10204unsafe extern "C" {
10205    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10206}
10207unsafe extern "C" {
10208    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::core::ffi::c_int;
10209}
10210unsafe extern "C" {
10211    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10212}
10213unsafe extern "C" {
10214    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10215}
10216unsafe extern "C" {
10217    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10218}
10219unsafe extern "C" {
10220    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10221}
10222unsafe extern "C" {
10223    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10224}
10225unsafe extern "C" {
10226    pub fn CBB_add_u48(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10227}
10228unsafe extern "C" {
10229    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10230}
10231unsafe extern "C" {
10232    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10233}
10234unsafe extern "C" {
10235    pub fn CBB_discard(cbb: *mut CBB, len: usize);
10236}
10237unsafe extern "C" {
10238    pub fn CBB_discard_child(cbb: *mut CBB);
10239}
10240unsafe extern "C" {
10241    pub fn CBB_add_asn1_element(
10242        cbb: *mut CBB,
10243        tag: CBS_ASN1_TAG,
10244        data: *const u8,
10245        data_len: usize,
10246    ) -> ::core::ffi::c_int;
10247}
10248unsafe extern "C" {
10249    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10250}
10251unsafe extern "C" {
10252    pub fn CBB_add_asn1_uint64_with_tag(
10253        cbb: *mut CBB,
10254        value: u64,
10255        tag: CBS_ASN1_TAG,
10256    ) -> ::core::ffi::c_int;
10257}
10258unsafe extern "C" {
10259    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::core::ffi::c_int;
10260}
10261unsafe extern "C" {
10262    pub fn CBB_add_asn1_int64_with_tag(
10263        cbb: *mut CBB,
10264        value: i64,
10265        tag: CBS_ASN1_TAG,
10266    ) -> ::core::ffi::c_int;
10267}
10268unsafe extern "C" {
10269    pub fn CBB_add_asn1_octet_string(
10270        cbb: *mut CBB,
10271        data: *const u8,
10272        data_len: usize,
10273    ) -> ::core::ffi::c_int;
10274}
10275unsafe extern "C" {
10276    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::core::ffi::c_int) -> ::core::ffi::c_int;
10277}
10278unsafe extern "C" {
10279    pub fn CBB_add_asn1_oid_from_text(
10280        cbb: *mut CBB,
10281        text: *const ::core::ffi::c_char,
10282        len: usize,
10283    ) -> ::core::ffi::c_int;
10284}
10285unsafe extern "C" {
10286    pub fn CBB_add_asn1_relative_oid_from_text(
10287        cbb: *mut CBB,
10288        text: *const ::core::ffi::c_char,
10289        len: usize,
10290    ) -> ::core::ffi::c_int;
10291}
10292unsafe extern "C" {
10293    pub fn CBB_add_asn1_relative_oid_from_der_to_text(
10294        cbb: *mut CBB,
10295        data: *const u8,
10296        data_len: usize,
10297    ) -> ::core::ffi::c_int;
10298}
10299unsafe extern "C" {
10300    pub fn CBB_add_asn1_oid_component(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10301}
10302unsafe extern "C" {
10303    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::core::ffi::c_int;
10304}
10305unsafe extern "C" {
10306    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10307}
10308unsafe extern "C" {
10309    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10310}
10311unsafe extern "C" {
10312    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10313}
10314unsafe extern "C" {
10315    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10316}
10317unsafe extern "C" {
10318    pub fn CBB_get_utf8_len(u: u32) -> usize;
10319}
10320unsafe extern "C" {
10321    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10322}
10323unsafe extern "C" {
10324    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10325}
10326unsafe extern "C" {
10327    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10328}
10329unsafe extern "C" {
10330    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10331}
10332#[repr(C)]
10333#[derive(Debug, Copy, Clone)]
10334pub struct cast_key_st {
10335    pub data: [u32; 32usize],
10336    pub short_key: ::core::ffi::c_int,
10337}
10338pub type CAST_KEY = cast_key_st;
10339unsafe extern "C" {
10340    pub fn CAST_set_key(key: *mut CAST_KEY, len: usize, data: *const u8);
10341}
10342unsafe extern "C" {
10343    pub fn CAST_ecb_encrypt(
10344        in_: *const u8,
10345        out: *mut u8,
10346        key: *const CAST_KEY,
10347        enc: ::core::ffi::c_int,
10348    );
10349}
10350unsafe extern "C" {
10351    pub fn CAST_encrypt(data: *mut u32, key: *const CAST_KEY);
10352}
10353unsafe extern "C" {
10354    pub fn CAST_decrypt(data: *mut u32, key: *const CAST_KEY);
10355}
10356unsafe extern "C" {
10357    pub fn CAST_cbc_encrypt(
10358        in_: *const u8,
10359        out: *mut u8,
10360        length: usize,
10361        ks: *const CAST_KEY,
10362        iv: *mut u8,
10363        enc: ::core::ffi::c_int,
10364    );
10365}
10366unsafe extern "C" {
10367    pub fn CAST_cfb64_encrypt(
10368        in_: *const u8,
10369        out: *mut u8,
10370        length: usize,
10371        schedule: *const CAST_KEY,
10372        ivec: *mut u8,
10373        num: *mut ::core::ffi::c_int,
10374        enc: ::core::ffi::c_int,
10375    );
10376}
10377unsafe extern "C" {
10378    pub fn CRYPTO_chacha_20(
10379        out: *mut u8,
10380        in_: *const u8,
10381        in_len: usize,
10382        key: *const u8,
10383        nonce: *const u8,
10384        counter: u32,
10385    );
10386}
10387unsafe extern "C" {
10388    pub fn EVP_rc4() -> *const EVP_CIPHER;
10389}
10390unsafe extern "C" {
10391    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
10392}
10393unsafe extern "C" {
10394    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
10395}
10396unsafe extern "C" {
10397    pub fn EVP_des_ede() -> *const EVP_CIPHER;
10398}
10399unsafe extern "C" {
10400    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
10401}
10402unsafe extern "C" {
10403    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
10404}
10405unsafe extern "C" {
10406    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
10407}
10408unsafe extern "C" {
10409    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
10410}
10411unsafe extern "C" {
10412    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
10413}
10414unsafe extern "C" {
10415    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
10416}
10417unsafe extern "C" {
10418    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
10419}
10420unsafe extern "C" {
10421    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
10422}
10423unsafe extern "C" {
10424    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
10425}
10426unsafe extern "C" {
10427    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
10428}
10429unsafe extern "C" {
10430    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
10431}
10432unsafe extern "C" {
10433    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
10434}
10435unsafe extern "C" {
10436    pub fn EVP_enc_null() -> *const EVP_CIPHER;
10437}
10438unsafe extern "C" {
10439    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
10440}
10441unsafe extern "C" {
10442    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
10443}
10444unsafe extern "C" {
10445    pub fn EVP_get_cipherbynid(nid: ::core::ffi::c_int) -> *const EVP_CIPHER;
10446}
10447unsafe extern "C" {
10448    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
10449}
10450unsafe extern "C" {
10451    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
10452}
10453unsafe extern "C" {
10454    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10455}
10456unsafe extern "C" {
10457    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
10458}
10459unsafe extern "C" {
10460    pub fn EVP_CIPHER_CTX_copy(
10461        out: *mut EVP_CIPHER_CTX,
10462        in_: *const EVP_CIPHER_CTX,
10463    ) -> ::core::ffi::c_int;
10464}
10465unsafe extern "C" {
10466    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10467}
10468unsafe extern "C" {
10469    pub fn EVP_CipherInit_ex(
10470        ctx: *mut EVP_CIPHER_CTX,
10471        cipher: *const EVP_CIPHER,
10472        engine: *mut ENGINE,
10473        key: *const u8,
10474        iv: *const u8,
10475        enc: ::core::ffi::c_int,
10476    ) -> ::core::ffi::c_int;
10477}
10478unsafe extern "C" {
10479    pub fn EVP_EncryptInit_ex(
10480        ctx: *mut EVP_CIPHER_CTX,
10481        cipher: *const EVP_CIPHER,
10482        impl_: *mut ENGINE,
10483        key: *const u8,
10484        iv: *const u8,
10485    ) -> ::core::ffi::c_int;
10486}
10487unsafe extern "C" {
10488    pub fn EVP_DecryptInit_ex(
10489        ctx: *mut EVP_CIPHER_CTX,
10490        cipher: *const EVP_CIPHER,
10491        impl_: *mut ENGINE,
10492        key: *const u8,
10493        iv: *const u8,
10494    ) -> ::core::ffi::c_int;
10495}
10496unsafe extern "C" {
10497    pub fn EVP_EncryptUpdate_ex(
10498        ctx: *mut EVP_CIPHER_CTX,
10499        out: *mut u8,
10500        out_len: *mut usize,
10501        max_out_len: usize,
10502        in_: *const u8,
10503        in_len: usize,
10504    ) -> ::core::ffi::c_int;
10505}
10506unsafe extern "C" {
10507    pub fn EVP_EncryptFinal_ex2(
10508        ctx: *mut EVP_CIPHER_CTX,
10509        out: *mut u8,
10510        out_len: *mut usize,
10511        max_out_len: usize,
10512    ) -> ::core::ffi::c_int;
10513}
10514unsafe extern "C" {
10515    pub fn EVP_DecryptUpdate_ex(
10516        ctx: *mut EVP_CIPHER_CTX,
10517        out: *mut u8,
10518        out_len: *mut usize,
10519        max_out_len: usize,
10520        in_: *const u8,
10521        in_len: usize,
10522    ) -> ::core::ffi::c_int;
10523}
10524unsafe extern "C" {
10525    pub fn EVP_DecryptFinal_ex2(
10526        ctx: *mut EVP_CIPHER_CTX,
10527        out: *mut u8,
10528        out_len: *mut usize,
10529        max_out_len: usize,
10530    ) -> ::core::ffi::c_int;
10531}
10532unsafe extern "C" {
10533    pub fn EVP_CipherUpdate_ex(
10534        ctx: *mut EVP_CIPHER_CTX,
10535        out: *mut u8,
10536        out_len: *mut usize,
10537        max_out_len: usize,
10538        in_: *const u8,
10539        in_len: usize,
10540    ) -> ::core::ffi::c_int;
10541}
10542unsafe extern "C" {
10543    pub fn EVP_CipherUpdateAAD(
10544        ctx: *mut EVP_CIPHER_CTX,
10545        in_: *const u8,
10546        in_len: usize,
10547    ) -> ::core::ffi::c_int;
10548}
10549unsafe extern "C" {
10550    pub fn EVP_CipherFinal_ex2(
10551        ctx: *mut EVP_CIPHER_CTX,
10552        out: *mut u8,
10553        out_len: *mut usize,
10554        max_out_len: usize,
10555    ) -> ::core::ffi::c_int;
10556}
10557unsafe extern "C" {
10558    pub fn EVP_CIPHER_CTX_max_next_update(ctx: *const EVP_CIPHER_CTX, in_len: usize) -> usize;
10559}
10560unsafe extern "C" {
10561    pub fn EVP_CIPHER_CTX_max_final(ctx: *const EVP_CIPHER_CTX) -> usize;
10562}
10563unsafe extern "C" {
10564    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
10565}
10566unsafe extern "C" {
10567    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10568}
10569unsafe extern "C" {
10570    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10571}
10572unsafe extern "C" {
10573    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10574}
10575unsafe extern "C" {
10576    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10577}
10578unsafe extern "C" {
10579    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10580}
10581unsafe extern "C" {
10582    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::core::ffi::c_void;
10583}
10584unsafe extern "C" {
10585    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::core::ffi::c_void);
10586}
10587unsafe extern "C" {
10588    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
10589}
10590unsafe extern "C" {
10591    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
10592}
10593unsafe extern "C" {
10594    pub fn EVP_CIPHER_CTX_ctrl(
10595        ctx: *mut EVP_CIPHER_CTX,
10596        command: ::core::ffi::c_int,
10597        arg: ::core::ffi::c_int,
10598        ptr: *mut ::core::ffi::c_void,
10599    ) -> ::core::ffi::c_int;
10600}
10601unsafe extern "C" {
10602    pub fn EVP_CIPHER_CTX_set_padding(
10603        ctx: *mut EVP_CIPHER_CTX,
10604        pad: ::core::ffi::c_int,
10605    ) -> ::core::ffi::c_int;
10606}
10607unsafe extern "C" {
10608    pub fn EVP_CIPHER_CTX_set_key_length(
10609        ctx: *mut EVP_CIPHER_CTX,
10610        key_len: ::core::ffi::c_uint,
10611    ) -> ::core::ffi::c_int;
10612}
10613unsafe extern "C" {
10614    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::core::ffi::c_int;
10615}
10616unsafe extern "C" {
10617    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10618}
10619unsafe extern "C" {
10620    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10621}
10622unsafe extern "C" {
10623    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10624}
10625unsafe extern "C" {
10626    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
10627}
10628unsafe extern "C" {
10629    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
10630}
10631unsafe extern "C" {
10632    pub fn EVP_BytesToKey(
10633        type_: *const EVP_CIPHER,
10634        md: *const EVP_MD,
10635        salt: *const u8,
10636        data: *const u8,
10637        data_len: usize,
10638        count: ::core::ffi::c_uint,
10639        key: *mut u8,
10640        iv: *mut u8,
10641    ) -> ::core::ffi::c_int;
10642}
10643unsafe extern "C" {
10644    pub fn EVP_CipherInit(
10645        ctx: *mut EVP_CIPHER_CTX,
10646        cipher: *const EVP_CIPHER,
10647        key: *const u8,
10648        iv: *const u8,
10649        enc: ::core::ffi::c_int,
10650    ) -> ::core::ffi::c_int;
10651}
10652unsafe extern "C" {
10653    pub fn EVP_EncryptInit(
10654        ctx: *mut EVP_CIPHER_CTX,
10655        cipher: *const EVP_CIPHER,
10656        key: *const u8,
10657        iv: *const u8,
10658    ) -> ::core::ffi::c_int;
10659}
10660unsafe extern "C" {
10661    pub fn EVP_DecryptInit(
10662        ctx: *mut EVP_CIPHER_CTX,
10663        cipher: *const EVP_CIPHER,
10664        key: *const u8,
10665        iv: *const u8,
10666    ) -> ::core::ffi::c_int;
10667}
10668unsafe extern "C" {
10669    pub fn EVP_CipherUpdate(
10670        ctx: *mut EVP_CIPHER_CTX,
10671        out: *mut u8,
10672        out_len: *mut ::core::ffi::c_int,
10673        in_: *const u8,
10674        in_len: ::core::ffi::c_int,
10675    ) -> ::core::ffi::c_int;
10676}
10677unsafe extern "C" {
10678    pub fn EVP_EncryptUpdate(
10679        ctx: *mut EVP_CIPHER_CTX,
10680        out: *mut u8,
10681        out_len: *mut ::core::ffi::c_int,
10682        in_: *const u8,
10683        in_len: ::core::ffi::c_int,
10684    ) -> ::core::ffi::c_int;
10685}
10686unsafe extern "C" {
10687    pub fn EVP_DecryptUpdate(
10688        ctx: *mut EVP_CIPHER_CTX,
10689        out: *mut u8,
10690        out_len: *mut ::core::ffi::c_int,
10691        in_: *const u8,
10692        in_len: ::core::ffi::c_int,
10693    ) -> ::core::ffi::c_int;
10694}
10695unsafe extern "C" {
10696    pub fn EVP_CipherFinal(
10697        ctx: *mut EVP_CIPHER_CTX,
10698        out: *mut u8,
10699        out_len: *mut ::core::ffi::c_int,
10700    ) -> ::core::ffi::c_int;
10701}
10702unsafe extern "C" {
10703    pub fn EVP_CipherFinal_ex(
10704        ctx: *mut EVP_CIPHER_CTX,
10705        out: *mut u8,
10706        out_len: *mut ::core::ffi::c_int,
10707    ) -> ::core::ffi::c_int;
10708}
10709unsafe extern "C" {
10710    pub fn EVP_EncryptFinal(
10711        ctx: *mut EVP_CIPHER_CTX,
10712        out: *mut u8,
10713        out_len: *mut ::core::ffi::c_int,
10714    ) -> ::core::ffi::c_int;
10715}
10716unsafe extern "C" {
10717    pub fn EVP_EncryptFinal_ex(
10718        ctx: *mut EVP_CIPHER_CTX,
10719        out: *mut u8,
10720        out_len: *mut ::core::ffi::c_int,
10721    ) -> ::core::ffi::c_int;
10722}
10723unsafe extern "C" {
10724    pub fn EVP_DecryptFinal(
10725        ctx: *mut EVP_CIPHER_CTX,
10726        out: *mut u8,
10727        out_len: *mut ::core::ffi::c_int,
10728    ) -> ::core::ffi::c_int;
10729}
10730unsafe extern "C" {
10731    pub fn EVP_DecryptFinal_ex(
10732        ctx: *mut EVP_CIPHER_CTX,
10733        out: *mut u8,
10734        out_len: *mut ::core::ffi::c_int,
10735    ) -> ::core::ffi::c_int;
10736}
10737unsafe extern "C" {
10738    pub fn EVP_Cipher(
10739        ctx: *mut EVP_CIPHER_CTX,
10740        out: *mut u8,
10741        in_: *const u8,
10742        in_len: usize,
10743    ) -> ::core::ffi::c_int;
10744}
10745unsafe extern "C" {
10746    pub fn EVP_add_cipher_alias(
10747        a: *const ::core::ffi::c_char,
10748        b: *const ::core::ffi::c_char,
10749    ) -> ::core::ffi::c_int;
10750}
10751unsafe extern "C" {
10752    pub fn EVP_get_cipherbyname(name: *const ::core::ffi::c_char) -> *const EVP_CIPHER;
10753}
10754unsafe extern "C" {
10755    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
10756}
10757unsafe extern "C" {
10758    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
10759}
10760unsafe extern "C" {
10761    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
10762}
10763unsafe extern "C" {
10764    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
10765}
10766unsafe extern "C" {
10767    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
10768}
10769unsafe extern "C" {
10770    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
10771}
10772unsafe extern "C" {
10773    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
10774}
10775unsafe extern "C" {
10776    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
10777}
10778unsafe extern "C" {
10779    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
10780}
10781unsafe extern "C" {
10782    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
10783}
10784unsafe extern "C" {
10785    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
10786}
10787unsafe extern "C" {
10788    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
10789}
10790unsafe extern "C" {
10791    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
10792}
10793unsafe extern "C" {
10794    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
10795}
10796unsafe extern "C" {
10797    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
10798}
10799unsafe extern "C" {
10800    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
10801}
10802unsafe extern "C" {
10803    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
10804}
10805unsafe extern "C" {
10806    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
10807}
10808unsafe extern "C" {
10809    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
10810}
10811unsafe extern "C" {
10812    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
10813}
10814#[repr(C)]
10815#[derive(Debug, Copy, Clone)]
10816pub struct evp_cipher_ctx_st {
10817    pub cipher: *const EVP_CIPHER,
10818    pub app_data: *mut ::core::ffi::c_void,
10819    pub cipher_data: *mut ::core::ffi::c_void,
10820    pub key_len: ::core::ffi::c_uint,
10821    pub encrypt: ::core::ffi::c_int,
10822    pub flags: u32,
10823    pub oiv: [u8; 16usize],
10824    pub iv: [u8; 16usize],
10825    pub buf: [u8; 32usize],
10826    pub buf_len: ::core::ffi::c_int,
10827    pub num: ::core::ffi::c_uint,
10828    pub final_used: ::core::ffi::c_int,
10829    pub final_: [u8; 32usize],
10830}
10831#[repr(C)]
10832#[derive(Debug, Copy, Clone)]
10833pub struct evp_cipher_info_st {
10834    pub cipher: *const EVP_CIPHER,
10835    pub iv: [::core::ffi::c_uchar; 16usize],
10836}
10837pub type EVP_CIPHER_INFO = evp_cipher_info_st;
10838unsafe extern "C" {
10839    pub fn AES_CMAC(
10840        out: *mut u8,
10841        key: *const u8,
10842        key_len: usize,
10843        in_: *const u8,
10844        in_len: usize,
10845    ) -> ::core::ffi::c_int;
10846}
10847unsafe extern "C" {
10848    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
10849}
10850unsafe extern "C" {
10851    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
10852}
10853unsafe extern "C" {
10854    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::core::ffi::c_int;
10855}
10856unsafe extern "C" {
10857    pub fn CMAC_Init(
10858        ctx: *mut CMAC_CTX,
10859        key: *const ::core::ffi::c_void,
10860        key_len: usize,
10861        cipher: *const EVP_CIPHER,
10862        engine: *mut ENGINE,
10863    ) -> ::core::ffi::c_int;
10864}
10865unsafe extern "C" {
10866    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::core::ffi::c_int;
10867}
10868unsafe extern "C" {
10869    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::core::ffi::c_int;
10870}
10871unsafe extern "C" {
10872    pub fn CMAC_Final(ctx: *mut CMAC_CTX, out: *mut u8, out_len: *mut usize) -> ::core::ffi::c_int;
10873}
10874#[repr(C)]
10875#[derive(Debug, Copy, Clone)]
10876pub struct conf_value_st {
10877    pub section: *mut ::core::ffi::c_char,
10878    pub name: *mut ::core::ffi::c_char,
10879    pub value: *mut ::core::ffi::c_char,
10880}
10881#[repr(C)]
10882#[derive(Debug)]
10883pub struct stack_st_CONF_VALUE {
10884    _unused: [u8; 0],
10885}
10886pub type sk_CONF_VALUE_free_func =
10887    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
10888pub type sk_CONF_VALUE_copy_func =
10889    ::core::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
10890pub type sk_CONF_VALUE_cmp_func = ::core::option::Option<
10891    unsafe extern "C" fn(
10892        arg1: *const *const CONF_VALUE,
10893        arg2: *const *const CONF_VALUE,
10894    ) -> ::core::ffi::c_int,
10895>;
10896pub type sk_CONF_VALUE_delete_if_func = ::core::option::Option<
10897    unsafe extern "C" fn(
10898        arg1: *mut CONF_VALUE,
10899        arg2: *mut ::core::ffi::c_void,
10900    ) -> ::core::ffi::c_int,
10901>;
10902unsafe extern "C" {
10903    #[link_name = "sk_CONF_VALUE_call_free_func__extern"]
10904    pub fn sk_CONF_VALUE_call_free_func(
10905        free_func: OPENSSL_sk_free_func,
10906        ptr: *mut ::core::ffi::c_void,
10907    );
10908}
10909unsafe extern "C" {
10910    #[link_name = "sk_CONF_VALUE_call_copy_func__extern"]
10911    pub fn sk_CONF_VALUE_call_copy_func(
10912        copy_func: OPENSSL_sk_copy_func,
10913        ptr: *const ::core::ffi::c_void,
10914    ) -> *mut ::core::ffi::c_void;
10915}
10916unsafe extern "C" {
10917    #[link_name = "sk_CONF_VALUE_call_cmp_func__extern"]
10918    pub fn sk_CONF_VALUE_call_cmp_func(
10919        cmp_func: OPENSSL_sk_cmp_func,
10920        a: *const ::core::ffi::c_void,
10921        b: *const ::core::ffi::c_void,
10922    ) -> ::core::ffi::c_int;
10923}
10924unsafe extern "C" {
10925    #[link_name = "sk_CONF_VALUE_call_delete_if_func__extern"]
10926    pub fn sk_CONF_VALUE_call_delete_if_func(
10927        func: OPENSSL_sk_delete_if_func,
10928        obj: *mut ::core::ffi::c_void,
10929        data: *mut ::core::ffi::c_void,
10930    ) -> ::core::ffi::c_int;
10931}
10932unsafe extern "C" {
10933    #[link_name = "sk_CONF_VALUE_new__extern"]
10934    pub fn sk_CONF_VALUE_new(comp: sk_CONF_VALUE_cmp_func) -> *mut stack_st_CONF_VALUE;
10935}
10936unsafe extern "C" {
10937    #[link_name = "sk_CONF_VALUE_new_null__extern"]
10938    pub fn sk_CONF_VALUE_new_null() -> *mut stack_st_CONF_VALUE;
10939}
10940unsafe extern "C" {
10941    #[link_name = "sk_CONF_VALUE_num__extern"]
10942    pub fn sk_CONF_VALUE_num(sk: *const stack_st_CONF_VALUE) -> usize;
10943}
10944unsafe extern "C" {
10945    #[link_name = "sk_CONF_VALUE_zero__extern"]
10946    pub fn sk_CONF_VALUE_zero(sk: *mut stack_st_CONF_VALUE);
10947}
10948unsafe extern "C" {
10949    #[link_name = "sk_CONF_VALUE_value__extern"]
10950    pub fn sk_CONF_VALUE_value(sk: *const stack_st_CONF_VALUE, i: usize) -> *mut CONF_VALUE;
10951}
10952unsafe extern "C" {
10953    #[link_name = "sk_CONF_VALUE_last__extern"]
10954    pub fn sk_CONF_VALUE_last(sk: *const stack_st_CONF_VALUE) -> *mut CONF_VALUE;
10955}
10956unsafe extern "C" {
10957    #[link_name = "sk_CONF_VALUE_set__extern"]
10958    pub fn sk_CONF_VALUE_set(
10959        sk: *mut stack_st_CONF_VALUE,
10960        i: usize,
10961        p: *mut CONF_VALUE,
10962    ) -> *mut CONF_VALUE;
10963}
10964unsafe extern "C" {
10965    #[link_name = "sk_CONF_VALUE_free__extern"]
10966    pub fn sk_CONF_VALUE_free(sk: *mut stack_st_CONF_VALUE);
10967}
10968unsafe extern "C" {
10969    #[link_name = "sk_CONF_VALUE_pop_free__extern"]
10970    pub fn sk_CONF_VALUE_pop_free(sk: *mut stack_st_CONF_VALUE, free_func: sk_CONF_VALUE_free_func);
10971}
10972unsafe extern "C" {
10973    #[link_name = "sk_CONF_VALUE_insert__extern"]
10974    pub fn sk_CONF_VALUE_insert(
10975        sk: *mut stack_st_CONF_VALUE,
10976        p: *mut CONF_VALUE,
10977        where_: usize,
10978    ) -> usize;
10979}
10980unsafe extern "C" {
10981    #[link_name = "sk_CONF_VALUE_delete__extern"]
10982    pub fn sk_CONF_VALUE_delete(sk: *mut stack_st_CONF_VALUE, where_: usize) -> *mut CONF_VALUE;
10983}
10984unsafe extern "C" {
10985    #[link_name = "sk_CONF_VALUE_delete_ptr__extern"]
10986    pub fn sk_CONF_VALUE_delete_ptr(
10987        sk: *mut stack_st_CONF_VALUE,
10988        p: *const CONF_VALUE,
10989    ) -> *mut CONF_VALUE;
10990}
10991unsafe extern "C" {
10992    #[link_name = "sk_CONF_VALUE_delete_if__extern"]
10993    pub fn sk_CONF_VALUE_delete_if(
10994        sk: *mut stack_st_CONF_VALUE,
10995        func: sk_CONF_VALUE_delete_if_func,
10996        data: *mut ::core::ffi::c_void,
10997    );
10998}
10999unsafe extern "C" {
11000    #[link_name = "sk_CONF_VALUE_find__extern"]
11001    pub fn sk_CONF_VALUE_find(
11002        sk: *const stack_st_CONF_VALUE,
11003        out_index: *mut usize,
11004        p: *const CONF_VALUE,
11005    ) -> ::core::ffi::c_int;
11006}
11007unsafe extern "C" {
11008    #[link_name = "sk_CONF_VALUE_shift__extern"]
11009    pub fn sk_CONF_VALUE_shift(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
11010}
11011unsafe extern "C" {
11012    #[link_name = "sk_CONF_VALUE_push__extern"]
11013    pub fn sk_CONF_VALUE_push(sk: *mut stack_st_CONF_VALUE, p: *mut CONF_VALUE) -> usize;
11014}
11015unsafe extern "C" {
11016    #[link_name = "sk_CONF_VALUE_pop__extern"]
11017    pub fn sk_CONF_VALUE_pop(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
11018}
11019unsafe extern "C" {
11020    #[link_name = "sk_CONF_VALUE_dup__extern"]
11021    pub fn sk_CONF_VALUE_dup(sk: *const stack_st_CONF_VALUE) -> *mut stack_st_CONF_VALUE;
11022}
11023unsafe extern "C" {
11024    #[link_name = "sk_CONF_VALUE_sort__extern"]
11025    pub fn sk_CONF_VALUE_sort(sk: *mut stack_st_CONF_VALUE);
11026}
11027unsafe extern "C" {
11028    #[link_name = "sk_CONF_VALUE_sort_and_dedup__extern"]
11029    pub fn sk_CONF_VALUE_sort_and_dedup(
11030        sk: *mut stack_st_CONF_VALUE,
11031        free_func: sk_CONF_VALUE_free_func,
11032    );
11033}
11034unsafe extern "C" {
11035    #[link_name = "sk_CONF_VALUE_is_sorted__extern"]
11036    pub fn sk_CONF_VALUE_is_sorted(sk: *const stack_st_CONF_VALUE) -> ::core::ffi::c_int;
11037}
11038unsafe extern "C" {
11039    #[link_name = "sk_CONF_VALUE_set_cmp_func__extern"]
11040    pub fn sk_CONF_VALUE_set_cmp_func(
11041        sk: *mut stack_st_CONF_VALUE,
11042        comp: sk_CONF_VALUE_cmp_func,
11043    ) -> sk_CONF_VALUE_cmp_func;
11044}
11045unsafe extern "C" {
11046    #[link_name = "sk_CONF_VALUE_deep_copy__extern"]
11047    pub fn sk_CONF_VALUE_deep_copy(
11048        sk: *const stack_st_CONF_VALUE,
11049        copy_func: sk_CONF_VALUE_copy_func,
11050        free_func: sk_CONF_VALUE_free_func,
11051    ) -> *mut stack_st_CONF_VALUE;
11052}
11053unsafe extern "C" {
11054    pub fn NCONF_new(method: *mut ::core::ffi::c_void) -> *mut CONF;
11055}
11056unsafe extern "C" {
11057    pub fn NCONF_free(conf: *mut CONF);
11058}
11059unsafe extern "C" {
11060    pub fn NCONF_load(
11061        conf: *mut CONF,
11062        filename: *const ::core::ffi::c_char,
11063        out_error_line: *mut ::core::ffi::c_long,
11064    ) -> ::core::ffi::c_int;
11065}
11066unsafe extern "C" {
11067    pub fn NCONF_load_bio(
11068        conf: *mut CONF,
11069        bio: *mut BIO,
11070        out_error_line: *mut ::core::ffi::c_long,
11071    ) -> ::core::ffi::c_int;
11072}
11073unsafe extern "C" {
11074    pub fn NCONF_get_section(
11075        conf: *const CONF,
11076        section: *const ::core::ffi::c_char,
11077    ) -> *const stack_st_CONF_VALUE;
11078}
11079unsafe extern "C" {
11080    pub fn NCONF_get_string(
11081        conf: *const CONF,
11082        section: *const ::core::ffi::c_char,
11083        name: *const ::core::ffi::c_char,
11084    ) -> *const ::core::ffi::c_char;
11085}
11086unsafe extern "C" {
11087    pub fn CONF_modules_load_file(
11088        filename: *const ::core::ffi::c_char,
11089        appname: *const ::core::ffi::c_char,
11090        flags: ::core::ffi::c_ulong,
11091    ) -> ::core::ffi::c_int;
11092}
11093unsafe extern "C" {
11094    pub fn CONF_modules_unload(all: ::core::ffi::c_int);
11095}
11096unsafe extern "C" {
11097    pub fn CONF_modules_free();
11098}
11099unsafe extern "C" {
11100    pub fn OPENSSL_config(config_name: *const ::core::ffi::c_char);
11101}
11102unsafe extern "C" {
11103    pub fn OPENSSL_no_config();
11104}
11105unsafe extern "C" {
11106    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11107}
11108unsafe extern "C" {
11109    pub fn SHA224_Update(
11110        sha: *mut SHA256_CTX,
11111        data: *const ::core::ffi::c_void,
11112        len: usize,
11113    ) -> ::core::ffi::c_int;
11114}
11115unsafe extern "C" {
11116    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11117}
11118unsafe extern "C" {
11119    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11120}
11121unsafe extern "C" {
11122    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11123}
11124unsafe extern "C" {
11125    pub fn SHA256_Update(
11126        sha: *mut SHA256_CTX,
11127        data: *const ::core::ffi::c_void,
11128        len: usize,
11129    ) -> ::core::ffi::c_int;
11130}
11131unsafe extern "C" {
11132    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11133}
11134unsafe extern "C" {
11135    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11136}
11137unsafe extern "C" {
11138    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
11139}
11140unsafe extern "C" {
11141    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
11142}
11143#[repr(C)]
11144#[derive(Debug, Copy, Clone)]
11145pub struct sha256_state_st {
11146    pub h: [u32; 8usize],
11147    pub Nl: u32,
11148    pub Nh: u32,
11149    pub data: [u8; 64usize],
11150    pub num: ::core::ffi::c_uint,
11151    pub md_len: ::core::ffi::c_uint,
11152}
11153unsafe extern "C" {
11154    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11155}
11156unsafe extern "C" {
11157    pub fn SHA384_Update(
11158        sha: *mut SHA512_CTX,
11159        data: *const ::core::ffi::c_void,
11160        len: usize,
11161    ) -> ::core::ffi::c_int;
11162}
11163unsafe extern "C" {
11164    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11165}
11166unsafe extern "C" {
11167    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11168}
11169unsafe extern "C" {
11170    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11171}
11172unsafe extern "C" {
11173    pub fn SHA512_Update(
11174        sha: *mut SHA512_CTX,
11175        data: *const ::core::ffi::c_void,
11176        len: usize,
11177    ) -> ::core::ffi::c_int;
11178}
11179unsafe extern "C" {
11180    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11181}
11182unsafe extern "C" {
11183    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11184}
11185unsafe extern "C" {
11186    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
11187}
11188#[repr(C)]
11189#[derive(Debug, Copy, Clone)]
11190pub struct sha512_state_st {
11191    pub h: [u64; 8usize],
11192    pub num: u16,
11193    pub md_len: u16,
11194    pub bytes_so_far_high: u32,
11195    pub bytes_so_far_low: u64,
11196    pub p: [u8; 128usize],
11197}
11198unsafe extern "C" {
11199    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11200}
11201unsafe extern "C" {
11202    pub fn SHA512_256_Update(
11203        sha: *mut SHA512_CTX,
11204        data: *const ::core::ffi::c_void,
11205        len: usize,
11206    ) -> ::core::ffi::c_int;
11207}
11208unsafe extern "C" {
11209    pub fn SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11210}
11211unsafe extern "C" {
11212    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11213}
11214unsafe extern "C" {
11215    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11216}
11217unsafe extern "C" {
11218    pub fn SHA1_Update(
11219        sha: *mut SHA_CTX,
11220        data: *const ::core::ffi::c_void,
11221        len: usize,
11222    ) -> ::core::ffi::c_int;
11223}
11224unsafe extern "C" {
11225    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11226}
11227unsafe extern "C" {
11228    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11229}
11230unsafe extern "C" {
11231    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
11232}
11233#[repr(C)]
11234#[derive(Copy, Clone)]
11235pub struct sha_state_st {
11236    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1,
11237    pub Nl: u32,
11238    pub Nh: u32,
11239    pub data: [u8; 64usize],
11240    pub num: ::core::ffi::c_uint,
11241}
11242#[repr(C)]
11243#[derive(Copy, Clone)]
11244pub union sha_state_st__bindgen_ty_1 {
11245    pub h: [u32; 5usize],
11246    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1__bindgen_ty_1,
11247}
11248#[repr(C)]
11249#[derive(Debug, Copy, Clone)]
11250pub struct sha_state_st__bindgen_ty_1__bindgen_ty_1 {
11251    pub h0: u32,
11252    pub h1: u32,
11253    pub h2: u32,
11254    pub h3: u32,
11255    pub h4: u32,
11256}
11257unsafe extern "C" {
11258    pub fn CRYPTO_fips_186_2_prf(out: *mut u8, out_len: usize, xkey: *const u8);
11259}
11260unsafe extern "C" {
11261    pub fn OPENSSL_malloc(size: usize) -> *mut ::core::ffi::c_void;
11262}
11263unsafe extern "C" {
11264    pub fn OPENSSL_zalloc(size: usize) -> *mut ::core::ffi::c_void;
11265}
11266unsafe extern "C" {
11267    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::core::ffi::c_void;
11268}
11269unsafe extern "C" {
11270    pub fn OPENSSL_realloc(
11271        ptr: *mut ::core::ffi::c_void,
11272        new_size: usize,
11273    ) -> *mut ::core::ffi::c_void;
11274}
11275unsafe extern "C" {
11276    pub fn OPENSSL_free(ptr: *mut ::core::ffi::c_void);
11277}
11278unsafe extern "C" {
11279    pub fn OPENSSL_cleanse(ptr: *mut ::core::ffi::c_void, len: usize);
11280}
11281unsafe extern "C" {
11282    pub fn CRYPTO_memcmp(
11283        a: *const ::core::ffi::c_void,
11284        b: *const ::core::ffi::c_void,
11285        len: usize,
11286    ) -> ::core::ffi::c_int;
11287}
11288unsafe extern "C" {
11289    pub fn OPENSSL_hash32(ptr: *const ::core::ffi::c_void, len: usize) -> u32;
11290}
11291unsafe extern "C" {
11292    pub fn OPENSSL_strhash(s: *const ::core::ffi::c_char) -> u32;
11293}
11294unsafe extern "C" {
11295    pub fn OPENSSL_strdup(s: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
11296}
11297unsafe extern "C" {
11298    pub fn OPENSSL_strnlen(s: *const ::core::ffi::c_char, len: usize) -> usize;
11299}
11300unsafe extern "C" {
11301    pub fn OPENSSL_isalpha(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11302}
11303unsafe extern "C" {
11304    pub fn OPENSSL_isdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11305}
11306unsafe extern "C" {
11307    pub fn OPENSSL_isxdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11308}
11309unsafe extern "C" {
11310    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11311}
11312unsafe extern "C" {
11313    pub fn OPENSSL_isalnum(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11314}
11315unsafe extern "C" {
11316    pub fn OPENSSL_tolower(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11317}
11318unsafe extern "C" {
11319    pub fn OPENSSL_isspace(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11320}
11321unsafe extern "C" {
11322    pub fn OPENSSL_strcasecmp(
11323        a: *const ::core::ffi::c_char,
11324        b: *const ::core::ffi::c_char,
11325    ) -> ::core::ffi::c_int;
11326}
11327unsafe extern "C" {
11328    pub fn OPENSSL_strncasecmp(
11329        a: *const ::core::ffi::c_char,
11330        b: *const ::core::ffi::c_char,
11331        n: usize,
11332    ) -> ::core::ffi::c_int;
11333}
11334unsafe extern "C" {
11335    pub fn BIO_snprintf(
11336        buf: *mut ::core::ffi::c_char,
11337        n: usize,
11338        format: *const ::core::ffi::c_char,
11339        ...
11340    ) -> ::core::ffi::c_int;
11341}
11342unsafe extern "C" {
11343    pub fn BIO_vsnprintf(
11344        buf: *mut ::core::ffi::c_char,
11345        n: usize,
11346        format: *const ::core::ffi::c_char,
11347        args: *mut __va_list_tag,
11348    ) -> ::core::ffi::c_int;
11349}
11350unsafe extern "C" {
11351    pub fn OPENSSL_vasprintf(
11352        str_: *mut *mut ::core::ffi::c_char,
11353        format: *const ::core::ffi::c_char,
11354        args: *mut __va_list_tag,
11355    ) -> ::core::ffi::c_int;
11356}
11357unsafe extern "C" {
11358    pub fn OPENSSL_asprintf(
11359        str_: *mut *mut ::core::ffi::c_char,
11360        format: *const ::core::ffi::c_char,
11361        ...
11362    ) -> ::core::ffi::c_int;
11363}
11364unsafe extern "C" {
11365    pub fn OPENSSL_strndup(
11366        str_: *const ::core::ffi::c_char,
11367        size: usize,
11368    ) -> *mut ::core::ffi::c_char;
11369}
11370unsafe extern "C" {
11371    pub fn OPENSSL_memdup(
11372        data: *const ::core::ffi::c_void,
11373        size: usize,
11374    ) -> *mut ::core::ffi::c_void;
11375}
11376unsafe extern "C" {
11377    pub fn OPENSSL_strlcpy(
11378        dst: *mut ::core::ffi::c_char,
11379        src: *const ::core::ffi::c_char,
11380        dst_size: usize,
11381    ) -> usize;
11382}
11383unsafe extern "C" {
11384    pub fn OPENSSL_strlcat(
11385        dst: *mut ::core::ffi::c_char,
11386        src: *const ::core::ffi::c_char,
11387        dst_size: usize,
11388    ) -> usize;
11389}
11390unsafe extern "C" {
11391    pub fn CRYPTO_malloc(
11392        size: usize,
11393        file: *const ::core::ffi::c_char,
11394        line: ::core::ffi::c_int,
11395    ) -> *mut ::core::ffi::c_void;
11396}
11397unsafe extern "C" {
11398    pub fn CRYPTO_realloc(
11399        ptr: *mut ::core::ffi::c_void,
11400        new_size: usize,
11401        file: *const ::core::ffi::c_char,
11402        line: ::core::ffi::c_int,
11403    ) -> *mut ::core::ffi::c_void;
11404}
11405unsafe extern "C" {
11406    pub fn CRYPTO_free(
11407        ptr: *mut ::core::ffi::c_void,
11408        file: *const ::core::ffi::c_char,
11409        line: ::core::ffi::c_int,
11410    );
11411}
11412unsafe extern "C" {
11413    pub fn OPENSSL_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11414}
11415unsafe extern "C" {
11416    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::core::ffi::c_int;
11417}
11418unsafe extern "C" {
11419    pub fn CRYPTO_secure_malloc_initialized() -> ::core::ffi::c_int;
11420}
11421unsafe extern "C" {
11422    pub fn CRYPTO_secure_used() -> usize;
11423}
11424unsafe extern "C" {
11425    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::core::ffi::c_void;
11426}
11427unsafe extern "C" {
11428    pub fn OPENSSL_secure_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11429}
11430unsafe extern "C" {
11431    pub fn CRYPTO_num_locks() -> ::core::ffi::c_int;
11432}
11433unsafe extern "C" {
11434    pub fn CRYPTO_set_locking_callback(
11435        func: ::core::option::Option<
11436            unsafe extern "C" fn(
11437                mode: ::core::ffi::c_int,
11438                lock_num: ::core::ffi::c_int,
11439                file: *const ::core::ffi::c_char,
11440                line: ::core::ffi::c_int,
11441            ),
11442        >,
11443    );
11444}
11445unsafe extern "C" {
11446    pub fn CRYPTO_set_add_lock_callback(
11447        func: ::core::option::Option<
11448            unsafe extern "C" fn(
11449                num: *mut ::core::ffi::c_int,
11450                amount: ::core::ffi::c_int,
11451                lock_num: ::core::ffi::c_int,
11452                file: *const ::core::ffi::c_char,
11453                line: ::core::ffi::c_int,
11454            ) -> ::core::ffi::c_int,
11455        >,
11456    );
11457}
11458unsafe extern "C" {
11459    pub fn CRYPTO_get_locking_callback() -> ::core::option::Option<
11460        unsafe extern "C" fn(
11461            arg1: ::core::ffi::c_int,
11462            arg2: ::core::ffi::c_int,
11463            arg3: *const ::core::ffi::c_char,
11464            arg4: ::core::ffi::c_int,
11465        ),
11466    >;
11467}
11468unsafe extern "C" {
11469    pub fn CRYPTO_get_lock_name(lock_num: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11470}
11471unsafe extern "C" {
11472    pub fn CRYPTO_THREADID_set_callback(
11473        threadid_func: ::core::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
11474    ) -> ::core::ffi::c_int;
11475}
11476unsafe extern "C" {
11477    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::core::ffi::c_ulong);
11478}
11479unsafe extern "C" {
11480    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::core::ffi::c_void);
11481}
11482unsafe extern "C" {
11483    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
11484}
11485unsafe extern "C" {
11486    pub fn CRYPTO_set_id_callback(
11487        func: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_ulong>,
11488    );
11489}
11490#[repr(C)]
11491#[derive(Debug, Copy, Clone)]
11492pub struct CRYPTO_dynlock {
11493    pub references: ::core::ffi::c_int,
11494    pub data: *mut CRYPTO_dynlock_value,
11495}
11496unsafe extern "C" {
11497    pub fn CRYPTO_set_dynlock_create_callback(
11498        dyn_create_function: ::core::option::Option<
11499            unsafe extern "C" fn(
11500                file: *const ::core::ffi::c_char,
11501                line: ::core::ffi::c_int,
11502            ) -> *mut CRYPTO_dynlock_value,
11503        >,
11504    );
11505}
11506unsafe extern "C" {
11507    pub fn CRYPTO_set_dynlock_lock_callback(
11508        dyn_lock_function: ::core::option::Option<
11509            unsafe extern "C" fn(
11510                mode: ::core::ffi::c_int,
11511                l: *mut CRYPTO_dynlock_value,
11512                file: *const ::core::ffi::c_char,
11513                line: ::core::ffi::c_int,
11514            ),
11515        >,
11516    );
11517}
11518unsafe extern "C" {
11519    pub fn CRYPTO_set_dynlock_destroy_callback(
11520        dyn_destroy_function: ::core::option::Option<
11521            unsafe extern "C" fn(
11522                l: *mut CRYPTO_dynlock_value,
11523                file: *const ::core::ffi::c_char,
11524                line: ::core::ffi::c_int,
11525            ),
11526        >,
11527    );
11528}
11529unsafe extern "C" {
11530    pub fn CRYPTO_get_dynlock_create_callback() -> ::core::option::Option<
11531        unsafe extern "C" fn(
11532            arg1: *const ::core::ffi::c_char,
11533            arg2: ::core::ffi::c_int,
11534        ) -> *mut CRYPTO_dynlock_value,
11535    >;
11536}
11537unsafe extern "C" {
11538    pub fn CRYPTO_get_dynlock_lock_callback() -> ::core::option::Option<
11539        unsafe extern "C" fn(
11540            arg1: ::core::ffi::c_int,
11541            arg2: *mut CRYPTO_dynlock_value,
11542            arg3: *const ::core::ffi::c_char,
11543            arg4: ::core::ffi::c_int,
11544        ),
11545    >;
11546}
11547unsafe extern "C" {
11548    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::core::option::Option<
11549        unsafe extern "C" fn(
11550            arg1: *mut CRYPTO_dynlock_value,
11551            arg2: *const ::core::ffi::c_char,
11552            arg3: ::core::ffi::c_int,
11553        ),
11554    >;
11555}
11556unsafe extern "C" {
11557    pub fn CRYPTO_is_confidential_build() -> ::core::ffi::c_int;
11558}
11559unsafe extern "C" {
11560    pub fn CRYPTO_has_asm() -> ::core::ffi::c_int;
11561}
11562unsafe extern "C" {
11563    pub fn BORINGSSL_self_test() -> ::core::ffi::c_int;
11564}
11565unsafe extern "C" {
11566    pub fn BORINGSSL_self_test_all() -> ::core::ffi::c_int;
11567}
11568unsafe extern "C" {
11569    pub fn BORINGSSL_integrity_test() -> ::core::ffi::c_int;
11570}
11571unsafe extern "C" {
11572    pub fn CRYPTO_pre_sandbox_init();
11573}
11574unsafe extern "C" {
11575    pub fn FIPS_mode() -> ::core::ffi::c_int;
11576}
11577pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
11578pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
11579pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
11580pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
11581pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
11582pub type fips_counter_t = ::core::ffi::c_uint;
11583unsafe extern "C" {
11584    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
11585}
11586unsafe extern "C" {
11587    pub fn OpenSSL_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11588}
11589unsafe extern "C" {
11590    pub fn SSLeay_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11591}
11592unsafe extern "C" {
11593    pub fn SSLeay() -> ::core::ffi::c_ulong;
11594}
11595unsafe extern "C" {
11596    pub fn OpenSSL_version_num() -> ::core::ffi::c_ulong;
11597}
11598unsafe extern "C" {
11599    pub fn CRYPTO_malloc_init() -> ::core::ffi::c_int;
11600}
11601unsafe extern "C" {
11602    pub fn OPENSSL_malloc_init() -> ::core::ffi::c_int;
11603}
11604unsafe extern "C" {
11605    pub fn ENGINE_load_builtin_engines();
11606}
11607unsafe extern "C" {
11608    pub fn ENGINE_register_all_complete() -> ::core::ffi::c_int;
11609}
11610unsafe extern "C" {
11611    pub fn ENGINE_cleanup();
11612}
11613unsafe extern "C" {
11614    pub fn OPENSSL_load_builtin_modules();
11615}
11616unsafe extern "C" {
11617    pub fn OPENSSL_init_crypto(
11618        opts: u64,
11619        settings: *const OPENSSL_INIT_SETTINGS,
11620    ) -> ::core::ffi::c_int;
11621}
11622unsafe extern "C" {
11623    pub fn OPENSSL_cleanup();
11624}
11625unsafe extern "C" {
11626    pub fn FIPS_mode_set(on: ::core::ffi::c_int) -> ::core::ffi::c_int;
11627}
11628unsafe extern "C" {
11629    pub fn FIPS_module_name() -> *const ::core::ffi::c_char;
11630}
11631unsafe extern "C" {
11632    pub fn FIPS_module_hash() -> *const u8;
11633}
11634unsafe extern "C" {
11635    pub fn FIPS_version() -> u32;
11636}
11637unsafe extern "C" {
11638    pub fn FIPS_query_algorithm_status(algorithm: *const ::core::ffi::c_char)
11639        -> ::core::ffi::c_int;
11640}
11641unsafe extern "C" {
11642    pub fn CRYPTO_library_init();
11643}
11644unsafe extern "C" {
11645    pub fn CTR_DRBG_new(
11646        entropy: *const u8,
11647        personalization: *const u8,
11648        personalization_len: usize,
11649    ) -> *mut CTR_DRBG_STATE;
11650}
11651unsafe extern "C" {
11652    pub fn CTR_DRBG_new_df(
11653        entropy: *const u8,
11654        entropy_len: usize,
11655        nonce: *const u8,
11656        personalization: *const u8,
11657        personalization_len: usize,
11658    ) -> *mut CTR_DRBG_STATE;
11659}
11660unsafe extern "C" {
11661    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
11662}
11663unsafe extern "C" {
11664    pub fn CTR_DRBG_reseed(
11665        drbg: *mut CTR_DRBG_STATE,
11666        entropy: *const u8,
11667        additional_data: *const u8,
11668        additional_data_len: usize,
11669    ) -> ::core::ffi::c_int;
11670}
11671unsafe extern "C" {
11672    pub fn CTR_DRBG_reseed_ex(
11673        drbg: *mut CTR_DRBG_STATE,
11674        entropy: *const u8,
11675        entropy_len: usize,
11676        additional_data: *const u8,
11677        additional_data_len: usize,
11678    ) -> ::core::ffi::c_int;
11679}
11680unsafe extern "C" {
11681    pub fn CTR_DRBG_generate(
11682        drbg: *mut CTR_DRBG_STATE,
11683        out: *mut u8,
11684        out_len: usize,
11685        additional_data: *const u8,
11686        additional_data_len: usize,
11687    ) -> ::core::ffi::c_int;
11688}
11689unsafe extern "C" {
11690    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
11691}
11692unsafe extern "C" {
11693    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
11694}
11695unsafe extern "C" {
11696    pub fn X25519(
11697        out_shared_key: *mut u8,
11698        private_key: *const u8,
11699        peer_public_value: *const u8,
11700    ) -> ::core::ffi::c_int;
11701}
11702unsafe extern "C" {
11703    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
11704}
11705unsafe extern "C" {
11706    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
11707}
11708unsafe extern "C" {
11709    pub fn ED25519_sign(
11710        out_sig: *mut u8,
11711        message: *const u8,
11712        message_len: usize,
11713        private_key: *const u8,
11714    ) -> ::core::ffi::c_int;
11715}
11716unsafe extern "C" {
11717    pub fn ED25519_verify(
11718        message: *const u8,
11719        message_len: usize,
11720        signature: *const u8,
11721        public_key: *const u8,
11722    ) -> ::core::ffi::c_int;
11723}
11724unsafe extern "C" {
11725    pub fn ED25519_sign_prehashed(
11726        out_sig: *mut u8,
11727        context: *const u8,
11728        context_len: usize,
11729        sha512_digest: *const u8,
11730        private_key: *const u8,
11731    ) -> ::core::ffi::c_int;
11732}
11733unsafe extern "C" {
11734    pub fn ED25519_verify_prehashed(
11735        context: *const u8,
11736        context_len: usize,
11737        sha512_digest: *const u8,
11738        signature: *const u8,
11739        public_key: *const u8,
11740    ) -> ::core::ffi::c_int;
11741}
11742unsafe extern "C" {
11743    pub fn ED25519_keypair_from_seed(
11744        out_public_key: *mut u8,
11745        out_private_key: *mut u8,
11746        seed: *const u8,
11747    );
11748}
11749pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
11750pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
11751pub type spake2_role_t = ::core::ffi::c_uint;
11752unsafe extern "C" {
11753    pub fn SPAKE2_CTX_new(
11754        my_role: spake2_role_t,
11755        my_name: *const u8,
11756        my_name_len: usize,
11757        their_name: *const u8,
11758        their_name_len: usize,
11759    ) -> *mut SPAKE2_CTX;
11760}
11761unsafe extern "C" {
11762    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
11763}
11764unsafe extern "C" {
11765    pub fn SPAKE2_generate_msg(
11766        ctx: *mut SPAKE2_CTX,
11767        out: *mut u8,
11768        out_len: *mut usize,
11769        max_out_len: usize,
11770        password: *const u8,
11771        password_len: usize,
11772    ) -> ::core::ffi::c_int;
11773}
11774unsafe extern "C" {
11775    pub fn SPAKE2_process_msg(
11776        ctx: *mut SPAKE2_CTX,
11777        out_key: *mut u8,
11778        out_key_len: *mut usize,
11779        max_out_key_len: usize,
11780        their_msg: *const u8,
11781        their_msg_len: usize,
11782    ) -> ::core::ffi::c_int;
11783}
11784#[repr(C)]
11785#[derive(Debug, Copy, Clone)]
11786pub struct DES_cblock_st {
11787    pub bytes: [u8; 8usize],
11788}
11789pub type DES_cblock = DES_cblock_st;
11790#[repr(C)]
11791#[derive(Debug, Copy, Clone)]
11792pub struct DES_ks {
11793    pub subkeys: [[u32; 2usize]; 16usize],
11794}
11795pub type DES_key_schedule = DES_ks;
11796unsafe extern "C" {
11797    pub fn DES_set_key(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11798}
11799unsafe extern "C" {
11800    pub fn DES_set_odd_parity(key: *mut DES_cblock);
11801}
11802unsafe extern "C" {
11803    pub fn DES_ecb_encrypt(
11804        in_: *const DES_cblock,
11805        out: *mut DES_cblock,
11806        schedule: *const DES_key_schedule,
11807        is_encrypt: ::core::ffi::c_int,
11808    );
11809}
11810unsafe extern "C" {
11811    pub fn DES_ncbc_encrypt(
11812        in_: *const u8,
11813        out: *mut u8,
11814        len: usize,
11815        schedule: *const DES_key_schedule,
11816        ivec: *mut DES_cblock,
11817        enc: ::core::ffi::c_int,
11818    );
11819}
11820unsafe extern "C" {
11821    pub fn DES_ecb3_encrypt(
11822        input: *const DES_cblock,
11823        output: *mut DES_cblock,
11824        ks1: *const DES_key_schedule,
11825        ks2: *const DES_key_schedule,
11826        ks3: *const DES_key_schedule,
11827        enc: ::core::ffi::c_int,
11828    );
11829}
11830unsafe extern "C" {
11831    pub fn DES_ede3_cbc_encrypt(
11832        in_: *const u8,
11833        out: *mut u8,
11834        len: usize,
11835        ks1: *const DES_key_schedule,
11836        ks2: *const DES_key_schedule,
11837        ks3: *const DES_key_schedule,
11838        ivec: *mut DES_cblock,
11839        enc: ::core::ffi::c_int,
11840    );
11841}
11842unsafe extern "C" {
11843    pub fn DES_ede2_cbc_encrypt(
11844        in_: *const u8,
11845        out: *mut u8,
11846        len: usize,
11847        ks1: *const DES_key_schedule,
11848        ks2: *const DES_key_schedule,
11849        ivec: *mut DES_cblock,
11850        enc: ::core::ffi::c_int,
11851    );
11852}
11853unsafe extern "C" {
11854    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11855}
11856unsafe extern "C" {
11857    pub fn DES_ede3_cfb64_encrypt(
11858        in_: *const u8,
11859        out: *mut u8,
11860        length: ::core::ffi::c_long,
11861        ks1: *mut DES_key_schedule,
11862        ks2: *mut DES_key_schedule,
11863        ks3: *mut DES_key_schedule,
11864        ivec: *mut DES_cblock,
11865        num: *mut ::core::ffi::c_int,
11866        enc: ::core::ffi::c_int,
11867    );
11868}
11869unsafe extern "C" {
11870    pub fn DES_ede3_cfb_encrypt(
11871        in_: *const u8,
11872        out: *mut u8,
11873        numbits: ::core::ffi::c_int,
11874        length: ::core::ffi::c_long,
11875        ks1: *mut DES_key_schedule,
11876        ks2: *mut DES_key_schedule,
11877        ks3: *mut DES_key_schedule,
11878        ivec: *mut DES_cblock,
11879        enc: ::core::ffi::c_int,
11880    );
11881}
11882unsafe extern "C" {
11883    pub fn DH_new() -> *mut DH;
11884}
11885unsafe extern "C" {
11886    pub fn DH_free(dh: *mut DH);
11887}
11888unsafe extern "C" {
11889    pub fn DH_up_ref(dh: *mut DH) -> ::core::ffi::c_int;
11890}
11891unsafe extern "C" {
11892    pub fn DH_bits(dh: *const DH) -> ::core::ffi::c_uint;
11893}
11894unsafe extern "C" {
11895    pub fn DH_size(dh: *const DH) -> ::core::ffi::c_int;
11896}
11897unsafe extern "C" {
11898    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
11899}
11900unsafe extern "C" {
11901    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
11902}
11903unsafe extern "C" {
11904    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
11905}
11906unsafe extern "C" {
11907    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
11908}
11909unsafe extern "C" {
11910    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
11911}
11912unsafe extern "C" {
11913    pub fn DH_get0_key(
11914        dh: *const DH,
11915        out_pub_key: *mut *const BIGNUM,
11916        out_priv_key: *mut *const BIGNUM,
11917    );
11918}
11919unsafe extern "C" {
11920    pub fn DH_set0_key(
11921        dh: *mut DH,
11922        pub_key: *mut BIGNUM,
11923        priv_key: *mut BIGNUM,
11924    ) -> ::core::ffi::c_int;
11925}
11926unsafe extern "C" {
11927    pub fn DH_get0_pqg(
11928        dh: *const DH,
11929        out_p: *mut *const BIGNUM,
11930        out_q: *mut *const BIGNUM,
11931        out_g: *mut *const BIGNUM,
11932    );
11933}
11934unsafe extern "C" {
11935    pub fn DH_set0_pqg(
11936        dh: *mut DH,
11937        p: *mut BIGNUM,
11938        q: *mut BIGNUM,
11939        g: *mut BIGNUM,
11940    ) -> ::core::ffi::c_int;
11941}
11942unsafe extern "C" {
11943    pub fn DH_set_length(dh: *mut DH, priv_length: ::core::ffi::c_uint) -> ::core::ffi::c_int;
11944}
11945unsafe extern "C" {
11946    pub fn DH_get_rfc7919_2048() -> *mut DH;
11947}
11948unsafe extern "C" {
11949    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
11950}
11951unsafe extern "C" {
11952    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
11953}
11954unsafe extern "C" {
11955    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
11956}
11957unsafe extern "C" {
11958    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
11959}
11960unsafe extern "C" {
11961    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
11962}
11963unsafe extern "C" {
11964    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
11965}
11966unsafe extern "C" {
11967    pub fn DH_generate_parameters_ex(
11968        dh: *mut DH,
11969        prime_bits: ::core::ffi::c_int,
11970        generator: ::core::ffi::c_int,
11971        cb: *mut BN_GENCB,
11972    ) -> ::core::ffi::c_int;
11973}
11974unsafe extern "C" {
11975    pub fn DH_generate_key(dh: *mut DH) -> ::core::ffi::c_int;
11976}
11977unsafe extern "C" {
11978    pub fn DH_compute_key_padded(
11979        out: *mut u8,
11980        peers_key: *const BIGNUM,
11981        dh: *mut DH,
11982    ) -> ::core::ffi::c_int;
11983}
11984unsafe extern "C" {
11985    pub fn DH_compute_key_hashed(
11986        dh: *mut DH,
11987        out: *mut u8,
11988        out_len: *mut usize,
11989        max_out_len: usize,
11990        peers_key: *const BIGNUM,
11991        digest: *const EVP_MD,
11992    ) -> ::core::ffi::c_int;
11993}
11994unsafe extern "C" {
11995    pub fn DH_check(dh: *const DH, out_flags: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
11996}
11997unsafe extern "C" {
11998    pub fn DH_check_pub_key(
11999        dh: *const DH,
12000        pub_key: *const BIGNUM,
12001        out_flags: *mut ::core::ffi::c_int,
12002    ) -> ::core::ffi::c_int;
12003}
12004unsafe extern "C" {
12005    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
12006}
12007unsafe extern "C" {
12008    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
12009}
12010unsafe extern "C" {
12011    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::core::ffi::c_int;
12012}
12013unsafe extern "C" {
12014    pub fn DH_generate_parameters(
12015        prime_len: ::core::ffi::c_int,
12016        generator: ::core::ffi::c_int,
12017        callback: ::core::option::Option<
12018            unsafe extern "C" fn(
12019                arg1: ::core::ffi::c_int,
12020                arg2: ::core::ffi::c_int,
12021                arg3: *mut ::core::ffi::c_void,
12022            ),
12023        >,
12024        cb_arg: *mut ::core::ffi::c_void,
12025    ) -> *mut DH;
12026}
12027unsafe extern "C" {
12028    pub fn d2i_DHparams(
12029        ret: *mut *mut DH,
12030        inp: *mut *const ::core::ffi::c_uchar,
12031        len: ::core::ffi::c_long,
12032    ) -> *mut DH;
12033}
12034unsafe extern "C" {
12035    pub fn i2d_DHparams(in_: *const DH, outp: *mut *mut ::core::ffi::c_uchar)
12036        -> ::core::ffi::c_int;
12037}
12038unsafe extern "C" {
12039    pub fn DH_compute_key(
12040        out: *mut u8,
12041        peers_key: *const BIGNUM,
12042        dh: *mut DH,
12043    ) -> ::core::ffi::c_int;
12044}
12045unsafe extern "C" {
12046    pub fn EVP_md4() -> *const EVP_MD;
12047}
12048unsafe extern "C" {
12049    pub fn EVP_md5() -> *const EVP_MD;
12050}
12051unsafe extern "C" {
12052    pub fn EVP_sha1() -> *const EVP_MD;
12053}
12054unsafe extern "C" {
12055    pub fn EVP_sha224() -> *const EVP_MD;
12056}
12057unsafe extern "C" {
12058    pub fn EVP_sha256() -> *const EVP_MD;
12059}
12060unsafe extern "C" {
12061    pub fn EVP_sha384() -> *const EVP_MD;
12062}
12063unsafe extern "C" {
12064    pub fn EVP_sha512() -> *const EVP_MD;
12065}
12066unsafe extern "C" {
12067    pub fn EVP_sha512_256() -> *const EVP_MD;
12068}
12069unsafe extern "C" {
12070    pub fn EVP_blake2b256() -> *const EVP_MD;
12071}
12072unsafe extern "C" {
12073    pub fn EVP_md5_sha1() -> *const EVP_MD;
12074}
12075unsafe extern "C" {
12076    pub fn EVP_get_digestbynid(nid: ::core::ffi::c_int) -> *const EVP_MD;
12077}
12078unsafe extern "C" {
12079    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
12080}
12081unsafe extern "C" {
12082    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
12083}
12084unsafe extern "C" {
12085    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
12086}
12087unsafe extern "C" {
12088    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12089}
12090unsafe extern "C" {
12091    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
12092}
12093unsafe extern "C" {
12094    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
12095}
12096unsafe extern "C" {
12097    pub fn EVP_MD_CTX_copy_ex(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12098}
12099unsafe extern "C" {
12100    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
12101}
12102unsafe extern "C" {
12103    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12104}
12105unsafe extern "C" {
12106    pub fn EVP_DigestInit_ex(
12107        ctx: *mut EVP_MD_CTX,
12108        type_: *const EVP_MD,
12109        engine: *mut ENGINE,
12110    ) -> ::core::ffi::c_int;
12111}
12112unsafe extern "C" {
12113    pub fn EVP_DigestUpdate(
12114        ctx: *mut EVP_MD_CTX,
12115        data: *const ::core::ffi::c_void,
12116        len: usize,
12117    ) -> ::core::ffi::c_int;
12118}
12119unsafe extern "C" {
12120    pub fn EVP_DigestFinal_ex(
12121        ctx: *mut EVP_MD_CTX,
12122        md_out: *mut u8,
12123        out_size: *mut ::core::ffi::c_uint,
12124    ) -> ::core::ffi::c_int;
12125}
12126unsafe extern "C" {
12127    pub fn EVP_DigestFinal(
12128        ctx: *mut EVP_MD_CTX,
12129        md_out: *mut u8,
12130        out_size: *mut ::core::ffi::c_uint,
12131    ) -> ::core::ffi::c_int;
12132}
12133unsafe extern "C" {
12134    pub fn EVP_Digest(
12135        data: *const ::core::ffi::c_void,
12136        len: usize,
12137        md_out: *mut u8,
12138        md_out_size: *mut ::core::ffi::c_uint,
12139        type_: *const EVP_MD,
12140        impl_: *mut ENGINE,
12141    ) -> ::core::ffi::c_int;
12142}
12143unsafe extern "C" {
12144    pub fn EVP_MD_type(md: *const EVP_MD) -> ::core::ffi::c_int;
12145}
12146unsafe extern "C" {
12147    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
12148}
12149unsafe extern "C" {
12150    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
12151}
12152unsafe extern "C" {
12153    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
12154}
12155unsafe extern "C" {
12156    pub fn EVP_MD_CTX_get0_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12157}
12158unsafe extern "C" {
12159    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12160}
12161unsafe extern "C" {
12162    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
12163}
12164unsafe extern "C" {
12165    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
12166}
12167unsafe extern "C" {
12168    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12169}
12170unsafe extern "C" {
12171    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
12172}
12173unsafe extern "C" {
12174    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
12175}
12176unsafe extern "C" {
12177    pub fn EVP_parse_digest_algorithm_nid(cbs: *mut CBS) -> ::core::ffi::c_int;
12178}
12179unsafe extern "C" {
12180    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::core::ffi::c_int;
12181}
12182unsafe extern "C" {
12183    pub fn EVP_marshal_digest_algorithm_no_params(
12184        cbb: *mut CBB,
12185        md: *const EVP_MD,
12186    ) -> ::core::ffi::c_int;
12187}
12188unsafe extern "C" {
12189    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
12190}
12191unsafe extern "C" {
12192    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12193}
12194unsafe extern "C" {
12195    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::core::ffi::c_int;
12196}
12197unsafe extern "C" {
12198    pub fn EVP_get_digestbyname(name: *const ::core::ffi::c_char) -> *const EVP_MD;
12199}
12200unsafe extern "C" {
12201    pub fn EVP_dss1() -> *const EVP_MD;
12202}
12203unsafe extern "C" {
12204    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
12205}
12206unsafe extern "C" {
12207    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
12208}
12209unsafe extern "C" {
12210    pub fn EVP_DigestFinalXOF(ctx: *mut EVP_MD_CTX, out: *mut u8, len: usize)
12211        -> ::core::ffi::c_int;
12212}
12213unsafe extern "C" {
12214    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
12215}
12216unsafe extern "C" {
12217    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::core::ffi::c_int);
12218}
12219unsafe extern "C" {
12220    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::core::ffi::c_int;
12221}
12222unsafe extern "C" {
12223    pub fn EVP_MD_fetch(
12224        libctx: *mut OSSL_LIB_CTX,
12225        name: *const ::core::ffi::c_char,
12226        propq: *const ::core::ffi::c_char,
12227    ) -> *mut EVP_MD;
12228}
12229unsafe extern "C" {
12230    pub fn EVP_MD_up_ref(md: *mut EVP_MD) -> ::core::ffi::c_int;
12231}
12232unsafe extern "C" {
12233    pub fn EVP_MD_free(md: *mut EVP_MD);
12234}
12235unsafe extern "C" {
12236    pub fn EVP_Q_digest(
12237        libctx: *mut OSSL_LIB_CTX,
12238        name: *const ::core::ffi::c_char,
12239        propq: *const ::core::ffi::c_char,
12240        in_: *const ::core::ffi::c_void,
12241        in_len: usize,
12242        out: *mut u8,
12243        out_len: *mut usize,
12244    ) -> ::core::ffi::c_int;
12245}
12246#[repr(C)]
12247#[derive(Debug)]
12248pub struct evp_md_pctx_ops {
12249    _unused: [u8; 0],
12250}
12251#[repr(C)]
12252#[derive(Copy, Clone)]
12253pub struct env_md_ctx_st {
12254    pub __bindgen_anon_1: env_md_ctx_st__bindgen_ty_1,
12255    pub digest: *const EVP_MD,
12256    pub pctx: *mut EVP_PKEY_CTX,
12257    pub pctx_ops: *const evp_md_pctx_ops,
12258}
12259#[repr(C)]
12260#[derive(Copy, Clone)]
12261pub union env_md_ctx_st__bindgen_ty_1 {
12262    pub md_data: [u8; 208usize],
12263    pub alignment: u64,
12264}
12265unsafe extern "C" {
12266    pub fn DSA_new() -> *mut DSA;
12267}
12268unsafe extern "C" {
12269    pub fn DSA_free(dsa: *mut DSA);
12270}
12271unsafe extern "C" {
12272    pub fn DSA_up_ref(dsa: *mut DSA) -> ::core::ffi::c_int;
12273}
12274unsafe extern "C" {
12275    pub fn DSA_bits(dsa: *const DSA) -> ::core::ffi::c_uint;
12276}
12277unsafe extern "C" {
12278    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
12279}
12280unsafe extern "C" {
12281    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
12282}
12283unsafe extern "C" {
12284    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
12285}
12286unsafe extern "C" {
12287    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
12288}
12289unsafe extern "C" {
12290    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
12291}
12292unsafe extern "C" {
12293    pub fn DSA_get0_key(
12294        dsa: *const DSA,
12295        out_pub_key: *mut *const BIGNUM,
12296        out_priv_key: *mut *const BIGNUM,
12297    );
12298}
12299unsafe extern "C" {
12300    pub fn DSA_get0_pqg(
12301        dsa: *const DSA,
12302        out_p: *mut *const BIGNUM,
12303        out_q: *mut *const BIGNUM,
12304        out_g: *mut *const BIGNUM,
12305    );
12306}
12307unsafe extern "C" {
12308    pub fn DSA_set0_key(
12309        dsa: *mut DSA,
12310        pub_key: *mut BIGNUM,
12311        priv_key: *mut BIGNUM,
12312    ) -> ::core::ffi::c_int;
12313}
12314unsafe extern "C" {
12315    pub fn DSA_set0_pqg(
12316        dsa: *mut DSA,
12317        p: *mut BIGNUM,
12318        q: *mut BIGNUM,
12319        g: *mut BIGNUM,
12320    ) -> ::core::ffi::c_int;
12321}
12322unsafe extern "C" {
12323    pub fn DSA_generate_parameters_ex(
12324        dsa: *mut DSA,
12325        bits: ::core::ffi::c_uint,
12326        seed: *const u8,
12327        seed_len: usize,
12328        out_counter: *mut ::core::ffi::c_int,
12329        out_h: *mut ::core::ffi::c_ulong,
12330        cb: *mut BN_GENCB,
12331    ) -> ::core::ffi::c_int;
12332}
12333unsafe extern "C" {
12334    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
12335}
12336unsafe extern "C" {
12337    pub fn DSA_generate_key(dsa: *mut DSA) -> ::core::ffi::c_int;
12338}
12339#[repr(C)]
12340#[derive(Debug, Copy, Clone)]
12341pub struct DSA_SIG_st {
12342    pub r: *mut BIGNUM,
12343    pub s: *mut BIGNUM,
12344}
12345unsafe extern "C" {
12346    pub fn DSA_SIG_new() -> *mut DSA_SIG;
12347}
12348unsafe extern "C" {
12349    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
12350}
12351unsafe extern "C" {
12352    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
12353}
12354unsafe extern "C" {
12355    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM) -> ::core::ffi::c_int;
12356}
12357unsafe extern "C" {
12358    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
12359}
12360unsafe extern "C" {
12361    pub fn DSA_do_verify(
12362        digest: *const u8,
12363        digest_len: usize,
12364        sig: *const DSA_SIG,
12365        dsa: *const DSA,
12366    ) -> ::core::ffi::c_int;
12367}
12368unsafe extern "C" {
12369    pub fn DSA_do_check_signature(
12370        out_valid: *mut ::core::ffi::c_int,
12371        digest: *const u8,
12372        digest_len: usize,
12373        sig: *const DSA_SIG,
12374        dsa: *const DSA,
12375    ) -> ::core::ffi::c_int;
12376}
12377unsafe extern "C" {
12378    pub fn DSA_sign(
12379        type_: ::core::ffi::c_int,
12380        digest: *const u8,
12381        digest_len: usize,
12382        out_sig: *mut u8,
12383        out_siglen: *mut ::core::ffi::c_uint,
12384        dsa: *const DSA,
12385    ) -> ::core::ffi::c_int;
12386}
12387unsafe extern "C" {
12388    pub fn DSA_verify(
12389        type_: ::core::ffi::c_int,
12390        digest: *const u8,
12391        digest_len: usize,
12392        sig: *const u8,
12393        sig_len: usize,
12394        dsa: *const DSA,
12395    ) -> ::core::ffi::c_int;
12396}
12397unsafe extern "C" {
12398    pub fn DSA_check_signature(
12399        out_valid: *mut ::core::ffi::c_int,
12400        digest: *const u8,
12401        digest_len: usize,
12402        sig: *const u8,
12403        sig_len: usize,
12404        dsa: *const DSA,
12405    ) -> ::core::ffi::c_int;
12406}
12407unsafe extern "C" {
12408    pub fn DSA_size(dsa: *const DSA) -> ::core::ffi::c_int;
12409}
12410unsafe extern "C" {
12411    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
12412}
12413unsafe extern "C" {
12414    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::core::ffi::c_int;
12415}
12416unsafe extern "C" {
12417    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
12418}
12419unsafe extern "C" {
12420    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12421}
12422unsafe extern "C" {
12423    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
12424}
12425unsafe extern "C" {
12426    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12427}
12428unsafe extern "C" {
12429    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
12430}
12431unsafe extern "C" {
12432    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12433}
12434unsafe extern "C" {
12435    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
12436}
12437unsafe extern "C" {
12438    pub fn DSA_get_ex_new_index(
12439        argl: ::core::ffi::c_long,
12440        argp: *mut ::core::ffi::c_void,
12441        unused: *mut CRYPTO_EX_unused,
12442        dup_unused: CRYPTO_EX_dup,
12443        free_func: CRYPTO_EX_free,
12444    ) -> ::core::ffi::c_int;
12445}
12446unsafe extern "C" {
12447    pub fn DSA_set_ex_data(
12448        dsa: *mut DSA,
12449        idx: ::core::ffi::c_int,
12450        arg: *mut ::core::ffi::c_void,
12451    ) -> ::core::ffi::c_int;
12452}
12453unsafe extern "C" {
12454    pub fn DSA_get_ex_data(dsa: *const DSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
12455}
12456unsafe extern "C" {
12457    pub fn d2i_DSA_SIG(
12458        out_sig: *mut *mut DSA_SIG,
12459        inp: *mut *const u8,
12460        len: ::core::ffi::c_long,
12461    ) -> *mut DSA_SIG;
12462}
12463unsafe extern "C" {
12464    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
12465}
12466unsafe extern "C" {
12467    pub fn d2i_DSAPublicKey(
12468        out: *mut *mut DSA,
12469        inp: *mut *const u8,
12470        len: ::core::ffi::c_long,
12471    ) -> *mut DSA;
12472}
12473unsafe extern "C" {
12474    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12475}
12476unsafe extern "C" {
12477    pub fn d2i_DSAPrivateKey(
12478        out: *mut *mut DSA,
12479        inp: *mut *const u8,
12480        len: ::core::ffi::c_long,
12481    ) -> *mut DSA;
12482}
12483unsafe extern "C" {
12484    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12485}
12486unsafe extern "C" {
12487    pub fn d2i_DSAparams(
12488        out: *mut *mut DSA,
12489        inp: *mut *const u8,
12490        len: ::core::ffi::c_long,
12491    ) -> *mut DSA;
12492}
12493unsafe extern "C" {
12494    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12495}
12496unsafe extern "C" {
12497    pub fn DSA_generate_parameters(
12498        bits: ::core::ffi::c_int,
12499        seed: *mut ::core::ffi::c_uchar,
12500        seed_len: ::core::ffi::c_int,
12501        counter_ret: *mut ::core::ffi::c_int,
12502        h_ret: *mut ::core::ffi::c_ulong,
12503        callback: ::core::option::Option<
12504            unsafe extern "C" fn(
12505                arg1: ::core::ffi::c_int,
12506                arg2: ::core::ffi::c_int,
12507                arg3: *mut ::core::ffi::c_void,
12508            ),
12509        >,
12510        cb_arg: *mut ::core::ffi::c_void,
12511    ) -> *mut DSA;
12512}
12513#[repr(u32)]
12514#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12515pub enum point_conversion_form_t {
12516    POINT_CONVERSION_COMPRESSED = 2,
12517    POINT_CONVERSION_UNCOMPRESSED = 4,
12518    POINT_CONVERSION_HYBRID = 6,
12519}
12520unsafe extern "C" {
12521    pub fn EC_group_p224() -> *const EC_GROUP;
12522}
12523unsafe extern "C" {
12524    pub fn EC_group_p256() -> *const EC_GROUP;
12525}
12526unsafe extern "C" {
12527    pub fn EC_group_p384() -> *const EC_GROUP;
12528}
12529unsafe extern "C" {
12530    pub fn EC_group_p521() -> *const EC_GROUP;
12531}
12532unsafe extern "C" {
12533    pub fn EC_GROUP_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_GROUP;
12534}
12535unsafe extern "C" {
12536    pub fn EC_GROUP_cmp(
12537        a: *const EC_GROUP,
12538        b: *const EC_GROUP,
12539        ignored: *mut BN_CTX,
12540    ) -> ::core::ffi::c_int;
12541}
12542unsafe extern "C" {
12543    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
12544}
12545unsafe extern "C" {
12546    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
12547}
12548unsafe extern "C" {
12549    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::core::ffi::c_int;
12550}
12551unsafe extern "C" {
12552    pub fn EC_GROUP_get_cofactor(
12553        group: *const EC_GROUP,
12554        cofactor: *mut BIGNUM,
12555        ctx: *mut BN_CTX,
12556    ) -> ::core::ffi::c_int;
12557}
12558unsafe extern "C" {
12559    pub fn EC_GROUP_get_curve_GFp(
12560        group: *const EC_GROUP,
12561        out_p: *mut BIGNUM,
12562        out_a: *mut BIGNUM,
12563        out_b: *mut BIGNUM,
12564        ctx: *mut BN_CTX,
12565    ) -> ::core::ffi::c_int;
12566}
12567unsafe extern "C" {
12568    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::core::ffi::c_int;
12569}
12570unsafe extern "C" {
12571    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::core::ffi::c_uint;
12572}
12573unsafe extern "C" {
12574    pub fn EC_curve_nid2nist(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
12575}
12576unsafe extern "C" {
12577    pub fn EC_curve_nist2nid(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
12578}
12579unsafe extern "C" {
12580    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
12581}
12582unsafe extern "C" {
12583    pub fn EC_POINT_free(point: *mut EC_POINT);
12584}
12585unsafe extern "C" {
12586    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::core::ffi::c_int;
12587}
12588unsafe extern "C" {
12589    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
12590}
12591unsafe extern "C" {
12592    pub fn EC_POINT_set_to_infinity(
12593        group: *const EC_GROUP,
12594        point: *mut EC_POINT,
12595    ) -> ::core::ffi::c_int;
12596}
12597unsafe extern "C" {
12598    pub fn EC_POINT_is_at_infinity(
12599        group: *const EC_GROUP,
12600        point: *const EC_POINT,
12601    ) -> ::core::ffi::c_int;
12602}
12603unsafe extern "C" {
12604    pub fn EC_POINT_is_on_curve(
12605        group: *const EC_GROUP,
12606        point: *const EC_POINT,
12607        ctx: *mut BN_CTX,
12608    ) -> ::core::ffi::c_int;
12609}
12610unsafe extern "C" {
12611    pub fn EC_POINT_cmp(
12612        group: *const EC_GROUP,
12613        a: *const EC_POINT,
12614        b: *const EC_POINT,
12615        ctx: *mut BN_CTX,
12616    ) -> ::core::ffi::c_int;
12617}
12618unsafe extern "C" {
12619    pub fn EC_POINT_get_affine_coordinates_GFp(
12620        group: *const EC_GROUP,
12621        point: *const EC_POINT,
12622        x: *mut BIGNUM,
12623        y: *mut BIGNUM,
12624        ctx: *mut BN_CTX,
12625    ) -> ::core::ffi::c_int;
12626}
12627unsafe extern "C" {
12628    pub fn EC_POINT_get_affine_coordinates(
12629        group: *const EC_GROUP,
12630        point: *const EC_POINT,
12631        x: *mut BIGNUM,
12632        y: *mut BIGNUM,
12633        ctx: *mut BN_CTX,
12634    ) -> ::core::ffi::c_int;
12635}
12636unsafe extern "C" {
12637    pub fn EC_POINT_set_affine_coordinates_GFp(
12638        group: *const EC_GROUP,
12639        point: *mut EC_POINT,
12640        x: *const BIGNUM,
12641        y: *const BIGNUM,
12642        ctx: *mut BN_CTX,
12643    ) -> ::core::ffi::c_int;
12644}
12645unsafe extern "C" {
12646    pub fn EC_POINT_set_affine_coordinates(
12647        group: *const EC_GROUP,
12648        point: *mut EC_POINT,
12649        x: *const BIGNUM,
12650        y: *const BIGNUM,
12651        ctx: *mut BN_CTX,
12652    ) -> ::core::ffi::c_int;
12653}
12654unsafe extern "C" {
12655    pub fn EC_POINT_point2oct(
12656        group: *const EC_GROUP,
12657        point: *const EC_POINT,
12658        form: point_conversion_form_t,
12659        buf: *mut u8,
12660        max_out: usize,
12661        ctx: *mut BN_CTX,
12662    ) -> usize;
12663}
12664unsafe extern "C" {
12665    pub fn EC_POINT_point2buf(
12666        group: *const EC_GROUP,
12667        point: *const EC_POINT,
12668        form: point_conversion_form_t,
12669        out_buf: *mut *mut u8,
12670        ctx: *mut BN_CTX,
12671    ) -> usize;
12672}
12673unsafe extern "C" {
12674    pub fn EC_POINT_point2cbb(
12675        out: *mut CBB,
12676        group: *const EC_GROUP,
12677        point: *const EC_POINT,
12678        form: point_conversion_form_t,
12679        ctx: *mut BN_CTX,
12680    ) -> ::core::ffi::c_int;
12681}
12682unsafe extern "C" {
12683    pub fn EC_POINT_oct2point(
12684        group: *const EC_GROUP,
12685        point: *mut EC_POINT,
12686        buf: *const u8,
12687        len: usize,
12688        ctx: *mut BN_CTX,
12689    ) -> ::core::ffi::c_int;
12690}
12691unsafe extern "C" {
12692    pub fn EC_POINT_set_compressed_coordinates_GFp(
12693        group: *const EC_GROUP,
12694        point: *mut EC_POINT,
12695        x: *const BIGNUM,
12696        y_bit: ::core::ffi::c_int,
12697        ctx: *mut BN_CTX,
12698    ) -> ::core::ffi::c_int;
12699}
12700unsafe extern "C" {
12701    pub fn EC_POINT_add(
12702        group: *const EC_GROUP,
12703        r: *mut EC_POINT,
12704        a: *const EC_POINT,
12705        b: *const EC_POINT,
12706        ctx: *mut BN_CTX,
12707    ) -> ::core::ffi::c_int;
12708}
12709unsafe extern "C" {
12710    pub fn EC_POINT_dbl(
12711        group: *const EC_GROUP,
12712        r: *mut EC_POINT,
12713        a: *const EC_POINT,
12714        ctx: *mut BN_CTX,
12715    ) -> ::core::ffi::c_int;
12716}
12717unsafe extern "C" {
12718    pub fn EC_POINT_invert(
12719        group: *const EC_GROUP,
12720        a: *mut EC_POINT,
12721        ctx: *mut BN_CTX,
12722    ) -> ::core::ffi::c_int;
12723}
12724unsafe extern "C" {
12725    pub fn EC_POINT_mul(
12726        group: *const EC_GROUP,
12727        r: *mut EC_POINT,
12728        n: *const BIGNUM,
12729        q: *const EC_POINT,
12730        m: *const BIGNUM,
12731        ctx: *mut BN_CTX,
12732    ) -> ::core::ffi::c_int;
12733}
12734unsafe extern "C" {
12735    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
12736        group: *const EC_GROUP,
12737        out: *mut EC_POINT,
12738        dst: *const u8,
12739        dst_len: usize,
12740        msg: *const u8,
12741        msg_len: usize,
12742    ) -> ::core::ffi::c_int;
12743}
12744unsafe extern "C" {
12745    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
12746        group: *const EC_GROUP,
12747        out: *mut EC_POINT,
12748        dst: *const u8,
12749        dst_len: usize,
12750        msg: *const u8,
12751        msg_len: usize,
12752    ) -> ::core::ffi::c_int;
12753}
12754unsafe extern "C" {
12755    pub fn EC_encode_to_curve_p256_xmd_sha256_sswu(
12756        group: *const EC_GROUP,
12757        out: *mut EC_POINT,
12758        dst: *const u8,
12759        dst_len: usize,
12760        msg: *const u8,
12761        msg_len: usize,
12762    ) -> ::core::ffi::c_int;
12763}
12764unsafe extern "C" {
12765    pub fn EC_encode_to_curve_p384_xmd_sha384_sswu(
12766        group: *const EC_GROUP,
12767        out: *mut EC_POINT,
12768        dst: *const u8,
12769        dst_len: usize,
12770        msg: *const u8,
12771        msg_len: usize,
12772    ) -> ::core::ffi::c_int;
12773}
12774unsafe extern "C" {
12775    pub fn EC_wpa3_sae_hash_to_curve_p256(
12776        group: *const EC_GROUP,
12777        out: *mut EC_POINT,
12778        salt: *const u8,
12779        salt_len: usize,
12780        ikm: *const u8,
12781        ikm_len: usize,
12782    ) -> ::core::ffi::c_int;
12783}
12784unsafe extern "C" {
12785    pub fn EC_wpa3_sae_hunt_and_peck_p256(
12786        group: *const EC_GROUP,
12787        out: *mut EC_POINT,
12788        salt: *const u8,
12789        salt_len: usize,
12790        password: *const u8,
12791        password_len: usize,
12792        min_iterations: u8,
12793    ) -> ::core::ffi::c_int;
12794}
12795unsafe extern "C" {
12796    pub fn EC_GROUP_free(group: *mut EC_GROUP);
12797}
12798unsafe extern "C" {
12799    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
12800}
12801unsafe extern "C" {
12802    pub fn EC_GROUP_new_curve_GFp(
12803        p: *const BIGNUM,
12804        a: *const BIGNUM,
12805        b: *const BIGNUM,
12806        ctx: *mut BN_CTX,
12807    ) -> *mut EC_GROUP;
12808}
12809unsafe extern "C" {
12810    pub fn EC_GROUP_set_generator(
12811        group: *mut EC_GROUP,
12812        generator: *const EC_POINT,
12813        order: *const BIGNUM,
12814        cofactor: *const BIGNUM,
12815    ) -> ::core::ffi::c_int;
12816}
12817unsafe extern "C" {
12818    pub fn EC_GROUP_get_order(
12819        group: *const EC_GROUP,
12820        order: *mut BIGNUM,
12821        ctx: *mut BN_CTX,
12822    ) -> ::core::ffi::c_int;
12823}
12824unsafe extern "C" {
12825    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::core::ffi::c_int);
12826}
12827unsafe extern "C" {
12828    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::core::ffi::c_int;
12829}
12830#[repr(C)]
12831#[derive(Debug)]
12832pub struct ec_method_st {
12833    _unused: [u8; 0],
12834}
12835pub type EC_METHOD = ec_method_st;
12836unsafe extern "C" {
12837    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
12838}
12839unsafe extern "C" {
12840    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::core::ffi::c_int;
12841}
12842unsafe extern "C" {
12843    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
12844}
12845#[repr(C)]
12846#[derive(Debug, Copy, Clone)]
12847pub struct EC_builtin_curve {
12848    pub nid: ::core::ffi::c_int,
12849    pub comment: *const ::core::ffi::c_char,
12850}
12851unsafe extern "C" {
12852    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
12853        -> usize;
12854}
12855unsafe extern "C" {
12856    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
12857}
12858unsafe extern "C" {
12859    pub fn ENGINE_new() -> *mut ENGINE;
12860}
12861unsafe extern "C" {
12862    pub fn ENGINE_free(engine: *mut ENGINE) -> ::core::ffi::c_int;
12863}
12864unsafe extern "C" {
12865    pub fn ENGINE_set_RSA_method(
12866        engine: *mut ENGINE,
12867        method: *const RSA_METHOD,
12868        method_size: usize,
12869    ) -> ::core::ffi::c_int;
12870}
12871unsafe extern "C" {
12872    pub fn ENGINE_get_RSA_method(engine: *const ENGINE) -> *mut RSA_METHOD;
12873}
12874unsafe extern "C" {
12875    pub fn ENGINE_set_ECDSA_method(
12876        engine: *mut ENGINE,
12877        method: *const ECDSA_METHOD,
12878        method_size: usize,
12879    ) -> ::core::ffi::c_int;
12880}
12881unsafe extern "C" {
12882    pub fn ENGINE_get_ECDSA_method(engine: *const ENGINE) -> *mut ECDSA_METHOD;
12883}
12884unsafe extern "C" {
12885    pub fn METHOD_ref(method: *mut ::core::ffi::c_void);
12886}
12887unsafe extern "C" {
12888    pub fn METHOD_unref(method: *mut ::core::ffi::c_void);
12889}
12890#[repr(C)]
12891#[derive(Debug, Copy, Clone)]
12892pub struct openssl_method_common_st {
12893    pub references: ::core::ffi::c_int,
12894    pub is_static: ::core::ffi::c_char,
12895}
12896unsafe extern "C" {
12897    pub fn EC_KEY_new() -> *mut EC_KEY;
12898}
12899unsafe extern "C" {
12900    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
12901}
12902unsafe extern "C" {
12903    pub fn EC_KEY_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_KEY;
12904}
12905unsafe extern "C" {
12906    pub fn EC_KEY_free(key: *mut EC_KEY);
12907}
12908unsafe extern "C" {
12909    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
12910}
12911unsafe extern "C" {
12912    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::core::ffi::c_int;
12913}
12914unsafe extern "C" {
12915    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::core::ffi::c_int;
12916}
12917unsafe extern "C" {
12918    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
12919}
12920unsafe extern "C" {
12921    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::core::ffi::c_int;
12922}
12923unsafe extern "C" {
12924    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
12925}
12926unsafe extern "C" {
12927    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::core::ffi::c_int;
12928}
12929unsafe extern "C" {
12930    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
12931}
12932unsafe extern "C" {
12933    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::core::ffi::c_int;
12934}
12935unsafe extern "C" {
12936    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::core::ffi::c_uint;
12937}
12938unsafe extern "C" {
12939    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::core::ffi::c_uint);
12940}
12941unsafe extern "C" {
12942    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
12943}
12944unsafe extern "C" {
12945    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
12946}
12947unsafe extern "C" {
12948    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::core::ffi::c_int;
12949}
12950unsafe extern "C" {
12951    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::core::ffi::c_int;
12952}
12953unsafe extern "C" {
12954    pub fn EC_KEY_set_public_key_affine_coordinates(
12955        key: *mut EC_KEY,
12956        x: *const BIGNUM,
12957        y: *const BIGNUM,
12958    ) -> ::core::ffi::c_int;
12959}
12960unsafe extern "C" {
12961    pub fn EC_KEY_oct2key(
12962        key: *mut EC_KEY,
12963        in_: *const u8,
12964        len: usize,
12965        ctx: *mut BN_CTX,
12966    ) -> ::core::ffi::c_int;
12967}
12968unsafe extern "C" {
12969    pub fn EC_KEY_key2buf(
12970        key: *const EC_KEY,
12971        form: point_conversion_form_t,
12972        out_buf: *mut *mut u8,
12973        ctx: *mut BN_CTX,
12974    ) -> usize;
12975}
12976unsafe extern "C" {
12977    pub fn EC_KEY_oct2priv(key: *mut EC_KEY, in_: *const u8, len: usize) -> ::core::ffi::c_int;
12978}
12979unsafe extern "C" {
12980    pub fn EC_KEY_priv2oct(key: *const EC_KEY, out: *mut u8, max_out: usize) -> usize;
12981}
12982unsafe extern "C" {
12983    pub fn EC_KEY_priv2buf(key: *const EC_KEY, out_buf: *mut *mut u8) -> usize;
12984}
12985unsafe extern "C" {
12986    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::core::ffi::c_int;
12987}
12988unsafe extern "C" {
12989    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::core::ffi::c_int;
12990}
12991unsafe extern "C" {
12992    pub fn EC_KEY_derive_from_secret(
12993        group: *const EC_GROUP,
12994        secret: *const u8,
12995        secret_len: usize,
12996    ) -> *mut EC_KEY;
12997}
12998unsafe extern "C" {
12999    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
13000}
13001unsafe extern "C" {
13002    pub fn EC_KEY_marshal_private_key(
13003        cbb: *mut CBB,
13004        key: *const EC_KEY,
13005        enc_flags: ::core::ffi::c_uint,
13006    ) -> ::core::ffi::c_int;
13007}
13008unsafe extern "C" {
13009    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
13010}
13011unsafe extern "C" {
13012    pub fn EC_KEY_marshal_curve_name(cbb: *mut CBB, group: *const EC_GROUP) -> ::core::ffi::c_int;
13013}
13014unsafe extern "C" {
13015    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
13016}
13017unsafe extern "C" {
13018    pub fn EC_KEY_get_ex_new_index(
13019        argl: ::core::ffi::c_long,
13020        argp: *mut ::core::ffi::c_void,
13021        unused: *mut CRYPTO_EX_unused,
13022        dup_unused: CRYPTO_EX_dup,
13023        free_func: CRYPTO_EX_free,
13024    ) -> ::core::ffi::c_int;
13025}
13026unsafe extern "C" {
13027    pub fn EC_KEY_set_ex_data(
13028        r: *mut EC_KEY,
13029        idx: ::core::ffi::c_int,
13030        arg: *mut ::core::ffi::c_void,
13031    ) -> ::core::ffi::c_int;
13032}
13033unsafe extern "C" {
13034    pub fn EC_KEY_get_ex_data(
13035        r: *const EC_KEY,
13036        idx: ::core::ffi::c_int,
13037    ) -> *mut ::core::ffi::c_void;
13038}
13039#[repr(C)]
13040#[derive(Debug, Copy, Clone)]
13041pub struct ecdsa_method_st {
13042    pub common: openssl_method_common_st,
13043    pub app_data: *mut ::core::ffi::c_void,
13044    pub init: ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
13045    pub finish:
13046        ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
13047    pub sign: ::core::option::Option<
13048        unsafe extern "C" fn(
13049            digest: *const u8,
13050            digest_len: usize,
13051            sig: *mut u8,
13052            sig_len: *mut ::core::ffi::c_uint,
13053            eckey: *mut EC_KEY,
13054        ) -> ::core::ffi::c_int,
13055    >,
13056    pub flags: ::core::ffi::c_int,
13057}
13058unsafe extern "C" {
13059    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::core::ffi::c_int);
13060}
13061unsafe extern "C" {
13062    pub fn d2i_ECPrivateKey(
13063        out_key: *mut *mut EC_KEY,
13064        inp: *mut *const u8,
13065        len: ::core::ffi::c_long,
13066    ) -> *mut EC_KEY;
13067}
13068unsafe extern "C" {
13069    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
13070}
13071unsafe extern "C" {
13072    pub fn d2i_ECPKParameters(
13073        out: *mut *mut EC_GROUP,
13074        inp: *mut *const u8,
13075        len: ::core::ffi::c_long,
13076    ) -> *mut EC_GROUP;
13077}
13078unsafe extern "C" {
13079    pub fn i2d_ECPKParameters(group: *const EC_GROUP, outp: *mut *mut u8) -> ::core::ffi::c_int;
13080}
13081unsafe extern "C" {
13082    pub fn d2i_ECParameters(
13083        out_key: *mut *mut EC_KEY,
13084        inp: *mut *const u8,
13085        len: ::core::ffi::c_long,
13086    ) -> *mut EC_KEY;
13087}
13088unsafe extern "C" {
13089    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
13090}
13091unsafe extern "C" {
13092    pub fn o2i_ECPublicKey(
13093        out_key: *mut *mut EC_KEY,
13094        inp: *mut *const u8,
13095        len: ::core::ffi::c_long,
13096    ) -> *mut EC_KEY;
13097}
13098unsafe extern "C" {
13099    pub fn i2o_ECPublicKey(
13100        key: *const EC_KEY,
13101        outp: *mut *mut ::core::ffi::c_uchar,
13102    ) -> ::core::ffi::c_int;
13103}
13104unsafe extern "C" {
13105    pub fn ECDH_compute_key(
13106        out: *mut ::core::ffi::c_void,
13107        outlen: usize,
13108        pub_key: *const EC_POINT,
13109        priv_key: *const EC_KEY,
13110        kdf: ::core::option::Option<
13111            unsafe extern "C" fn(
13112                in_: *const ::core::ffi::c_void,
13113                inlen: usize,
13114                out: *mut ::core::ffi::c_void,
13115                outlen: *mut usize,
13116            ) -> *mut ::core::ffi::c_void,
13117        >,
13118    ) -> ::core::ffi::c_int;
13119}
13120unsafe extern "C" {
13121    pub fn ECDH_compute_key_fips(
13122        out: *mut u8,
13123        out_len: usize,
13124        pub_key: *const EC_POINT,
13125        priv_key: *const EC_KEY,
13126    ) -> ::core::ffi::c_int;
13127}
13128unsafe extern "C" {
13129    pub fn ECDSA_sign(
13130        type_: ::core::ffi::c_int,
13131        digest: *const u8,
13132        digest_len: usize,
13133        sig: *mut u8,
13134        sig_len: *mut ::core::ffi::c_uint,
13135        key: *const EC_KEY,
13136    ) -> ::core::ffi::c_int;
13137}
13138unsafe extern "C" {
13139    pub fn ECDSA_verify(
13140        type_: ::core::ffi::c_int,
13141        digest: *const u8,
13142        digest_len: usize,
13143        sig: *const u8,
13144        sig_len: usize,
13145        key: *const EC_KEY,
13146    ) -> ::core::ffi::c_int;
13147}
13148unsafe extern "C" {
13149    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
13150}
13151#[repr(C)]
13152#[derive(Debug, Copy, Clone)]
13153pub struct ecdsa_sig_st {
13154    pub r: *mut BIGNUM,
13155    pub s: *mut BIGNUM,
13156}
13157unsafe extern "C" {
13158    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
13159}
13160unsafe extern "C" {
13161    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
13162}
13163unsafe extern "C" {
13164    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
13165}
13166unsafe extern "C" {
13167    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
13168}
13169unsafe extern "C" {
13170    pub fn ECDSA_SIG_get0(
13171        sig: *const ECDSA_SIG,
13172        out_r: *mut *const BIGNUM,
13173        out_s: *mut *const BIGNUM,
13174    );
13175}
13176unsafe extern "C" {
13177    pub fn ECDSA_SIG_set0(
13178        sig: *mut ECDSA_SIG,
13179        r: *mut BIGNUM,
13180        s: *mut BIGNUM,
13181    ) -> ::core::ffi::c_int;
13182}
13183unsafe extern "C" {
13184    pub fn ECDSA_do_sign(
13185        digest: *const u8,
13186        digest_len: usize,
13187        key: *const EC_KEY,
13188    ) -> *mut ECDSA_SIG;
13189}
13190unsafe extern "C" {
13191    pub fn ECDSA_do_verify(
13192        digest: *const u8,
13193        digest_len: usize,
13194        sig: *const ECDSA_SIG,
13195        key: *const EC_KEY,
13196    ) -> ::core::ffi::c_int;
13197}
13198unsafe extern "C" {
13199    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
13200}
13201unsafe extern "C" {
13202    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
13203}
13204unsafe extern "C" {
13205    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::core::ffi::c_int;
13206}
13207unsafe extern "C" {
13208    pub fn ECDSA_SIG_to_bytes(
13209        out_bytes: *mut *mut u8,
13210        out_len: *mut usize,
13211        sig: *const ECDSA_SIG,
13212    ) -> ::core::ffi::c_int;
13213}
13214unsafe extern "C" {
13215    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
13216}
13217unsafe extern "C" {
13218    pub fn ECDSA_sign_p1363(
13219        digest: *const u8,
13220        digest_len: usize,
13221        sig: *mut u8,
13222        out_sig_len: *mut usize,
13223        max_sig_len: usize,
13224        key: *const EC_KEY,
13225    ) -> ::core::ffi::c_int;
13226}
13227unsafe extern "C" {
13228    pub fn ECDSA_verify_p1363(
13229        digest: *const u8,
13230        digest_len: usize,
13231        sig: *const u8,
13232        sig_len: usize,
13233        key: *const EC_KEY,
13234    ) -> ::core::ffi::c_int;
13235}
13236unsafe extern "C" {
13237    pub fn ECDSA_size_p1363(key: *const EC_KEY) -> usize;
13238}
13239unsafe extern "C" {
13240    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
13241        digest: *const u8,
13242        digest_len: usize,
13243        eckey: *const EC_KEY,
13244        nonce: *const u8,
13245        nonce_len: usize,
13246    ) -> *mut ECDSA_SIG;
13247}
13248unsafe extern "C" {
13249    pub fn d2i_ECDSA_SIG(
13250        out: *mut *mut ECDSA_SIG,
13251        inp: *mut *const u8,
13252        len: ::core::ffi::c_long,
13253    ) -> *mut ECDSA_SIG;
13254}
13255unsafe extern "C" {
13256    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
13257}
13258unsafe extern "C" {
13259    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
13260}
13261unsafe extern "C" {
13262    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
13263}
13264unsafe extern "C" {
13265    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
13266}
13267unsafe extern "C" {
13268    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
13269}
13270unsafe extern "C" {
13271    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
13272}
13273unsafe extern "C" {
13274    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
13275}
13276unsafe extern "C" {
13277    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
13278}
13279unsafe extern "C" {
13280    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
13281}
13282unsafe extern "C" {
13283    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
13284}
13285unsafe extern "C" {
13286    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
13287}
13288unsafe extern "C" {
13289    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
13290}
13291unsafe extern "C" {
13292    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
13293}
13294unsafe extern "C" {
13295    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
13296}
13297unsafe extern "C" {
13298    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
13299}
13300unsafe extern "C" {
13301    pub fn EVP_has_aes_hardware() -> ::core::ffi::c_int;
13302}
13303unsafe extern "C" {
13304    pub fn EVP_aead_aes_128_eax() -> *const EVP_AEAD;
13305}
13306unsafe extern "C" {
13307    pub fn EVP_aead_aes_256_eax() -> *const EVP_AEAD;
13308}
13309unsafe extern "C" {
13310    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
13311}
13312unsafe extern "C" {
13313    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
13314}
13315unsafe extern "C" {
13316    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
13317}
13318unsafe extern "C" {
13319    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
13320}
13321#[repr(C)]
13322#[derive(Copy, Clone)]
13323pub union evp_aead_ctx_st_state {
13324    pub opaque: [u8; 560usize],
13325    pub alignment: u64,
13326}
13327#[repr(C)]
13328#[derive(Copy, Clone)]
13329pub struct evp_aead_ctx_st {
13330    pub aead: *const EVP_AEAD,
13331    pub state: evp_aead_ctx_st_state,
13332    pub tag_len: u8,
13333}
13334unsafe extern "C" {
13335    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
13336}
13337unsafe extern "C" {
13338    pub fn EVP_AEAD_CTX_new(
13339        aead: *const EVP_AEAD,
13340        key: *const u8,
13341        key_len: usize,
13342        tag_len: usize,
13343    ) -> *mut EVP_AEAD_CTX;
13344}
13345unsafe extern "C" {
13346    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
13347}
13348unsafe extern "C" {
13349    pub fn EVP_AEAD_CTX_init(
13350        ctx: *mut EVP_AEAD_CTX,
13351        aead: *const EVP_AEAD,
13352        key: *const u8,
13353        key_len: usize,
13354        tag_len: usize,
13355        impl_: *mut ENGINE,
13356    ) -> ::core::ffi::c_int;
13357}
13358unsafe extern "C" {
13359    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
13360}
13361unsafe extern "C" {
13362    pub fn EVP_AEAD_CTX_seal(
13363        ctx: *const EVP_AEAD_CTX,
13364        out: *mut u8,
13365        out_len: *mut usize,
13366        max_out_len: usize,
13367        nonce: *const u8,
13368        nonce_len: usize,
13369        in_: *const u8,
13370        in_len: usize,
13371        ad: *const u8,
13372        ad_len: usize,
13373    ) -> ::core::ffi::c_int;
13374}
13375unsafe extern "C" {
13376    pub fn EVP_AEAD_CTX_open(
13377        ctx: *const EVP_AEAD_CTX,
13378        out: *mut u8,
13379        out_len: *mut usize,
13380        max_out_len: usize,
13381        nonce: *const u8,
13382        nonce_len: usize,
13383        in_: *const u8,
13384        in_len: usize,
13385        ad: *const u8,
13386        ad_len: usize,
13387    ) -> ::core::ffi::c_int;
13388}
13389unsafe extern "C" {
13390    pub fn EVP_AEAD_CTX_seal_scatter(
13391        ctx: *const EVP_AEAD_CTX,
13392        out: *mut u8,
13393        out_tag: *mut u8,
13394        out_tag_len: *mut usize,
13395        max_out_tag_len: usize,
13396        nonce: *const u8,
13397        nonce_len: usize,
13398        in_: *const u8,
13399        in_len: usize,
13400        extra_in: *const u8,
13401        extra_in_len: usize,
13402        ad: *const u8,
13403        ad_len: usize,
13404    ) -> ::core::ffi::c_int;
13405}
13406unsafe extern "C" {
13407    pub fn EVP_AEAD_CTX_open_gather(
13408        ctx: *const EVP_AEAD_CTX,
13409        out: *mut u8,
13410        nonce: *const u8,
13411        nonce_len: usize,
13412        in_: *const u8,
13413        in_len: usize,
13414        in_tag: *const u8,
13415        in_tag_len: usize,
13416        ad: *const u8,
13417        ad_len: usize,
13418    ) -> ::core::ffi::c_int;
13419}
13420#[repr(C)]
13421#[derive(Debug, Copy, Clone)]
13422pub struct crypto_ivec_st {
13423    pub in_: *const u8,
13424    pub len: usize,
13425}
13426#[repr(C)]
13427#[derive(Debug, Copy, Clone)]
13428pub struct crypto_iovec_st {
13429    pub out: *mut u8,
13430    pub in_: *const u8,
13431    pub len: usize,
13432}
13433unsafe extern "C" {
13434    pub fn EVP_AEAD_CTX_sealv(
13435        ctx: *const EVP_AEAD_CTX,
13436        iovec: *const CRYPTO_IOVEC,
13437        num_iovec: usize,
13438        out_tag: *mut u8,
13439        out_tag_len: *mut usize,
13440        max_out_tag_len: usize,
13441        nonce: *const u8,
13442        nonce_len: usize,
13443        aadvec: *const CRYPTO_IVEC,
13444        num_aadvec: usize,
13445    ) -> ::core::ffi::c_int;
13446}
13447unsafe extern "C" {
13448    pub fn EVP_AEAD_CTX_openv(
13449        ctx: *const EVP_AEAD_CTX,
13450        iovec: *const CRYPTO_IOVEC,
13451        num_iovec: usize,
13452        out_total_bytes: *mut usize,
13453        nonce: *const u8,
13454        nonce_len: usize,
13455        aadvec: *const CRYPTO_IVEC,
13456        num_aadvec: usize,
13457    ) -> ::core::ffi::c_int;
13458}
13459unsafe extern "C" {
13460    pub fn EVP_AEAD_CTX_openv_detached(
13461        ctx: *const EVP_AEAD_CTX,
13462        iovec: *const CRYPTO_IOVEC,
13463        num_iovec: usize,
13464        nonce: *const u8,
13465        nonce_len: usize,
13466        in_tag: *const u8,
13467        in_tag_len: usize,
13468        aadvec: *const CRYPTO_IVEC,
13469        num_aadvec: usize,
13470    ) -> ::core::ffi::c_int;
13471}
13472unsafe extern "C" {
13473    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
13474}
13475unsafe extern "C" {
13476    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
13477}
13478unsafe extern "C" {
13479    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13480}
13481unsafe extern "C" {
13482    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
13483}
13484unsafe extern "C" {
13485    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
13486}
13487unsafe extern "C" {
13488    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13489}
13490unsafe extern "C" {
13491    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
13492}
13493unsafe extern "C" {
13494    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13495}
13496unsafe extern "C" {
13497    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
13498}
13499unsafe extern "C" {
13500    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
13501}
13502unsafe extern "C" {
13503    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
13504}
13505unsafe extern "C" {
13506    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
13507}
13508pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
13509pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
13510pub type evp_aead_direction_t = ::core::ffi::c_uint;
13511unsafe extern "C" {
13512    pub fn EVP_AEAD_CTX_init_with_direction(
13513        ctx: *mut EVP_AEAD_CTX,
13514        aead: *const EVP_AEAD,
13515        key: *const u8,
13516        key_len: usize,
13517        tag_len: usize,
13518        dir: evp_aead_direction_t,
13519    ) -> ::core::ffi::c_int;
13520}
13521unsafe extern "C" {
13522    pub fn EVP_AEAD_CTX_get_iv(
13523        ctx: *const EVP_AEAD_CTX,
13524        out_iv: *mut *const u8,
13525        out_len: *mut usize,
13526    ) -> ::core::ffi::c_int;
13527}
13528unsafe extern "C" {
13529    pub fn EVP_AEAD_CTX_tag_len(
13530        ctx: *const EVP_AEAD_CTX,
13531        out_tag_len: *mut usize,
13532        in_len: usize,
13533        extra_in_len: usize,
13534    ) -> ::core::ffi::c_int;
13535}
13536unsafe extern "C" {
13537    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
13538}
13539unsafe extern "C" {
13540    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
13541}
13542unsafe extern "C" {
13543    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
13544}
13545unsafe extern "C" {
13546    pub fn EVP_PKEY_dup_ref(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13547}
13548unsafe extern "C" {
13549    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13550}
13551unsafe extern "C" {
13552    pub fn EVP_PKEY_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13553}
13554unsafe extern "C" {
13555    pub fn EVP_PKEY_copy_parameters(to: *mut EVP_PKEY, from: *const EVP_PKEY)
13556        -> ::core::ffi::c_int;
13557}
13558unsafe extern "C" {
13559    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13560}
13561unsafe extern "C" {
13562    pub fn EVP_PKEY_parameters_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13563}
13564unsafe extern "C" {
13565    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13566}
13567unsafe extern "C" {
13568    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13569}
13570unsafe extern "C" {
13571    pub fn EVP_PKEY_has_public(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13572}
13573unsafe extern "C" {
13574    pub fn EVP_PKEY_has_private(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13575}
13576unsafe extern "C" {
13577    pub fn EVP_PKEY_copy_public(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13578}
13579unsafe extern "C" {
13580    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13581}
13582unsafe extern "C" {
13583    pub fn EVP_pkey_rsa() -> *const EVP_PKEY_ALG;
13584}
13585unsafe extern "C" {
13586    pub fn EVP_pkey_ec_p224() -> *const EVP_PKEY_ALG;
13587}
13588unsafe extern "C" {
13589    pub fn EVP_pkey_ec_p256() -> *const EVP_PKEY_ALG;
13590}
13591unsafe extern "C" {
13592    pub fn EVP_pkey_ec_p384() -> *const EVP_PKEY_ALG;
13593}
13594unsafe extern "C" {
13595    pub fn EVP_pkey_ec_p521() -> *const EVP_PKEY_ALG;
13596}
13597unsafe extern "C" {
13598    pub fn EVP_pkey_x25519() -> *const EVP_PKEY_ALG;
13599}
13600unsafe extern "C" {
13601    pub fn EVP_pkey_ed25519() -> *const EVP_PKEY_ALG;
13602}
13603unsafe extern "C" {
13604    pub fn EVP_pkey_ml_dsa_44() -> *const EVP_PKEY_ALG;
13605}
13606unsafe extern "C" {
13607    pub fn EVP_pkey_ml_dsa_65() -> *const EVP_PKEY_ALG;
13608}
13609unsafe extern "C" {
13610    pub fn EVP_pkey_ml_dsa_87() -> *const EVP_PKEY_ALG;
13611}
13612unsafe extern "C" {
13613    pub fn EVP_pkey_ml_kem_768() -> *const EVP_PKEY_ALG;
13614}
13615unsafe extern "C" {
13616    pub fn EVP_pkey_ml_kem_1024() -> *const EVP_PKEY_ALG;
13617}
13618unsafe extern "C" {
13619    pub fn EVP_pkey_xwing() -> *const EVP_PKEY_ALG;
13620}
13621unsafe extern "C" {
13622    pub fn EVP_pkey_dsa() -> *const EVP_PKEY_ALG;
13623}
13624unsafe extern "C" {
13625    pub fn EVP_pkey_rsa_pss_sha256() -> *const EVP_PKEY_ALG;
13626}
13627unsafe extern "C" {
13628    pub fn EVP_pkey_rsa_pss_sha384() -> *const EVP_PKEY_ALG;
13629}
13630unsafe extern "C" {
13631    pub fn EVP_pkey_rsa_pss_sha512() -> *const EVP_PKEY_ALG;
13632}
13633unsafe extern "C" {
13634    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13635}
13636unsafe extern "C" {
13637    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13638}
13639unsafe extern "C" {
13640    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13641}
13642unsafe extern "C" {
13643    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13644}
13645unsafe extern "C" {
13646    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13647}
13648unsafe extern "C" {
13649    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13650}
13651unsafe extern "C" {
13652    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13653}
13654unsafe extern "C" {
13655    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13656}
13657unsafe extern "C" {
13658    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13659}
13660unsafe extern "C" {
13661    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13662}
13663unsafe extern "C" {
13664    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13665}
13666unsafe extern "C" {
13667    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13668}
13669unsafe extern "C" {
13670    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13671}
13672unsafe extern "C" {
13673    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13674}
13675unsafe extern "C" {
13676    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
13677}
13678unsafe extern "C" {
13679    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
13680}
13681unsafe extern "C" {
13682    pub fn EVP_PKEY_from_subject_public_key_info(
13683        in_: *const u8,
13684        len: usize,
13685        algs: *const *const EVP_PKEY_ALG,
13686        num_algs: usize,
13687    ) -> *mut EVP_PKEY;
13688}
13689unsafe extern "C" {
13690    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13691}
13692unsafe extern "C" {
13693    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13694}
13695unsafe extern "C" {
13696    pub fn EVP_PKEY_from_private_key_info(
13697        in_: *const u8,
13698        len: usize,
13699        algs: *const *const EVP_PKEY_ALG,
13700        num_algs: usize,
13701    ) -> *mut EVP_PKEY;
13702}
13703unsafe extern "C" {
13704    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13705}
13706unsafe extern "C" {
13707    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13708}
13709unsafe extern "C" {
13710    pub fn EVP_PKEY_from_raw_private_key(
13711        alg: *const EVP_PKEY_ALG,
13712        in_: *const u8,
13713        len: usize,
13714    ) -> *mut EVP_PKEY;
13715}
13716unsafe extern "C" {
13717    pub fn EVP_PKEY_from_private_seed(
13718        alg: *const EVP_PKEY_ALG,
13719        in_: *const u8,
13720        len: usize,
13721    ) -> *mut EVP_PKEY;
13722}
13723unsafe extern "C" {
13724    pub fn EVP_PKEY_from_raw_public_key(
13725        alg: *const EVP_PKEY_ALG,
13726        in_: *const u8,
13727        len: usize,
13728    ) -> *mut EVP_PKEY;
13729}
13730unsafe extern "C" {
13731    pub fn EVP_PKEY_get_raw_private_key(
13732        pkey: *const EVP_PKEY,
13733        out: *mut u8,
13734        out_len: *mut usize,
13735    ) -> ::core::ffi::c_int;
13736}
13737unsafe extern "C" {
13738    pub fn EVP_PKEY_get_private_seed(
13739        pkey: *const EVP_PKEY,
13740        out: *mut u8,
13741        out_len: *mut usize,
13742    ) -> ::core::ffi::c_int;
13743}
13744unsafe extern "C" {
13745    pub fn EVP_PKEY_get_raw_public_key(
13746        pkey: *const EVP_PKEY,
13747        out: *mut u8,
13748        out_len: *mut usize,
13749    ) -> ::core::ffi::c_int;
13750}
13751unsafe extern "C" {
13752    pub fn EVP_PKEY_generate_from_alg(alg: *const EVP_PKEY_ALG) -> *mut EVP_PKEY;
13753}
13754unsafe extern "C" {
13755    pub fn EVP_DigestSignInit(
13756        ctx: *mut EVP_MD_CTX,
13757        pctx: *mut *mut EVP_PKEY_CTX,
13758        type_: *const EVP_MD,
13759        e: *mut ENGINE,
13760        pkey: *mut EVP_PKEY,
13761    ) -> ::core::ffi::c_int;
13762}
13763unsafe extern "C" {
13764    pub fn EVP_DigestSignUpdate(
13765        ctx: *mut EVP_MD_CTX,
13766        data: *const ::core::ffi::c_void,
13767        len: usize,
13768    ) -> ::core::ffi::c_int;
13769}
13770unsafe extern "C" {
13771    pub fn EVP_DigestSignFinal(
13772        ctx: *mut EVP_MD_CTX,
13773        out_sig: *mut u8,
13774        out_sig_len: *mut usize,
13775    ) -> ::core::ffi::c_int;
13776}
13777unsafe extern "C" {
13778    pub fn EVP_DigestSign(
13779        ctx: *mut EVP_MD_CTX,
13780        out_sig: *mut u8,
13781        out_sig_len: *mut usize,
13782        data: *const u8,
13783        data_len: usize,
13784    ) -> ::core::ffi::c_int;
13785}
13786unsafe extern "C" {
13787    pub fn EVP_DigestVerifyInit(
13788        ctx: *mut EVP_MD_CTX,
13789        pctx: *mut *mut EVP_PKEY_CTX,
13790        type_: *const EVP_MD,
13791        e: *mut ENGINE,
13792        pkey: *mut EVP_PKEY,
13793    ) -> ::core::ffi::c_int;
13794}
13795unsafe extern "C" {
13796    pub fn EVP_DigestVerifyUpdate(
13797        ctx: *mut EVP_MD_CTX,
13798        data: *const ::core::ffi::c_void,
13799        len: usize,
13800    ) -> ::core::ffi::c_int;
13801}
13802unsafe extern "C" {
13803    pub fn EVP_DigestVerifyFinal(
13804        ctx: *mut EVP_MD_CTX,
13805        sig: *const u8,
13806        sig_len: usize,
13807    ) -> ::core::ffi::c_int;
13808}
13809unsafe extern "C" {
13810    pub fn EVP_DigestVerify(
13811        ctx: *mut EVP_MD_CTX,
13812        sig: *const u8,
13813        sig_len: usize,
13814        data: *const u8,
13815        len: usize,
13816    ) -> ::core::ffi::c_int;
13817}
13818unsafe extern "C" {
13819    pub fn EVP_SignInit_ex(
13820        ctx: *mut EVP_MD_CTX,
13821        type_: *const EVP_MD,
13822        impl_: *mut ENGINE,
13823    ) -> ::core::ffi::c_int;
13824}
13825unsafe extern "C" {
13826    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13827}
13828unsafe extern "C" {
13829    pub fn EVP_SignUpdate(
13830        ctx: *mut EVP_MD_CTX,
13831        data: *const ::core::ffi::c_void,
13832        len: usize,
13833    ) -> ::core::ffi::c_int;
13834}
13835unsafe extern "C" {
13836    pub fn EVP_SignFinal(
13837        ctx: *const EVP_MD_CTX,
13838        sig: *mut u8,
13839        out_sig_len: *mut ::core::ffi::c_uint,
13840        pkey: *mut EVP_PKEY,
13841    ) -> ::core::ffi::c_int;
13842}
13843unsafe extern "C" {
13844    pub fn EVP_VerifyInit_ex(
13845        ctx: *mut EVP_MD_CTX,
13846        type_: *const EVP_MD,
13847        impl_: *mut ENGINE,
13848    ) -> ::core::ffi::c_int;
13849}
13850unsafe extern "C" {
13851    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13852}
13853unsafe extern "C" {
13854    pub fn EVP_VerifyUpdate(
13855        ctx: *mut EVP_MD_CTX,
13856        data: *const ::core::ffi::c_void,
13857        len: usize,
13858    ) -> ::core::ffi::c_int;
13859}
13860unsafe extern "C" {
13861    pub fn EVP_VerifyFinal(
13862        ctx: *mut EVP_MD_CTX,
13863        sig: *const u8,
13864        sig_len: usize,
13865        pkey: *mut EVP_PKEY,
13866    ) -> ::core::ffi::c_int;
13867}
13868unsafe extern "C" {
13869    pub fn EVP_PKEY_print_public(
13870        out: *mut BIO,
13871        pkey: *const EVP_PKEY,
13872        indent: ::core::ffi::c_int,
13873        pctx: *mut ASN1_PCTX,
13874    ) -> ::core::ffi::c_int;
13875}
13876unsafe extern "C" {
13877    pub fn EVP_PKEY_print_private(
13878        out: *mut BIO,
13879        pkey: *const EVP_PKEY,
13880        indent: ::core::ffi::c_int,
13881        pctx: *mut ASN1_PCTX,
13882    ) -> ::core::ffi::c_int;
13883}
13884unsafe extern "C" {
13885    pub fn EVP_PKEY_print_params(
13886        out: *mut BIO,
13887        pkey: *const EVP_PKEY,
13888        indent: ::core::ffi::c_int,
13889        pctx: *mut ASN1_PCTX,
13890    ) -> ::core::ffi::c_int;
13891}
13892unsafe extern "C" {
13893    pub fn PKCS5_PBKDF2_HMAC(
13894        password: *const ::core::ffi::c_char,
13895        password_len: usize,
13896        salt: *const u8,
13897        salt_len: usize,
13898        iterations: u32,
13899        digest: *const EVP_MD,
13900        key_len: usize,
13901        out_key: *mut u8,
13902    ) -> ::core::ffi::c_int;
13903}
13904unsafe extern "C" {
13905    pub fn PKCS5_PBKDF2_HMAC_SHA1(
13906        password: *const ::core::ffi::c_char,
13907        password_len: usize,
13908        salt: *const u8,
13909        salt_len: usize,
13910        iterations: u32,
13911        key_len: usize,
13912        out_key: *mut u8,
13913    ) -> ::core::ffi::c_int;
13914}
13915unsafe extern "C" {
13916    pub fn EVP_PBE_scrypt(
13917        password: *const ::core::ffi::c_char,
13918        password_len: usize,
13919        salt: *const u8,
13920        salt_len: usize,
13921        N: u64,
13922        r: u64,
13923        p: u64,
13924        max_mem: usize,
13925        out_key: *mut u8,
13926        key_len: usize,
13927    ) -> ::core::ffi::c_int;
13928}
13929unsafe extern "C" {
13930    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13931}
13932unsafe extern "C" {
13933    pub fn EVP_PKEY_CTX_new_id(id: ::core::ffi::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13934}
13935unsafe extern "C" {
13936    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
13937}
13938unsafe extern "C" {
13939    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
13940}
13941unsafe extern "C" {
13942    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
13943}
13944unsafe extern "C" {
13945    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13946}
13947unsafe extern "C" {
13948    pub fn EVP_PKEY_sign(
13949        ctx: *mut EVP_PKEY_CTX,
13950        sig: *mut u8,
13951        sig_len: *mut usize,
13952        digest: *const u8,
13953        digest_len: usize,
13954    ) -> ::core::ffi::c_int;
13955}
13956unsafe extern "C" {
13957    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13958}
13959unsafe extern "C" {
13960    pub fn EVP_PKEY_verify(
13961        ctx: *mut EVP_PKEY_CTX,
13962        sig: *const u8,
13963        sig_len: usize,
13964        digest: *const u8,
13965        digest_len: usize,
13966    ) -> ::core::ffi::c_int;
13967}
13968unsafe extern "C" {
13969    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13970}
13971unsafe extern "C" {
13972    pub fn EVP_PKEY_encrypt(
13973        ctx: *mut EVP_PKEY_CTX,
13974        out: *mut u8,
13975        out_len: *mut usize,
13976        in_: *const u8,
13977        in_len: usize,
13978    ) -> ::core::ffi::c_int;
13979}
13980unsafe extern "C" {
13981    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13982}
13983unsafe extern "C" {
13984    pub fn EVP_PKEY_decrypt(
13985        ctx: *mut EVP_PKEY_CTX,
13986        out: *mut u8,
13987        out_len: *mut usize,
13988        in_: *const u8,
13989        in_len: usize,
13990    ) -> ::core::ffi::c_int;
13991}
13992unsafe extern "C" {
13993    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13994}
13995unsafe extern "C" {
13996    pub fn EVP_PKEY_verify_recover(
13997        ctx: *mut EVP_PKEY_CTX,
13998        out: *mut u8,
13999        out_len: *mut usize,
14000        sig: *const u8,
14001        siglen: usize,
14002    ) -> ::core::ffi::c_int;
14003}
14004unsafe extern "C" {
14005    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
14006}
14007unsafe extern "C" {
14008    pub fn EVP_PKEY_derive_set_peer(
14009        ctx: *mut EVP_PKEY_CTX,
14010        peer: *mut EVP_PKEY,
14011    ) -> ::core::ffi::c_int;
14012}
14013unsafe extern "C" {
14014    pub fn EVP_PKEY_derive(
14015        ctx: *mut EVP_PKEY_CTX,
14016        key: *mut u8,
14017        out_key_len: *mut usize,
14018    ) -> ::core::ffi::c_int;
14019}
14020unsafe extern "C" {
14021    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
14022}
14023unsafe extern "C" {
14024    pub fn EVP_PKEY_keygen(
14025        ctx: *mut EVP_PKEY_CTX,
14026        out_pkey: *mut *mut EVP_PKEY,
14027    ) -> ::core::ffi::c_int;
14028}
14029unsafe extern "C" {
14030    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
14031}
14032unsafe extern "C" {
14033    pub fn EVP_PKEY_paramgen(
14034        ctx: *mut EVP_PKEY_CTX,
14035        out_pkey: *mut *mut EVP_PKEY,
14036    ) -> ::core::ffi::c_int;
14037}
14038unsafe extern "C" {
14039    pub fn EVP_PKEY_encapsulate_init(
14040        ctx: *mut EVP_PKEY_CTX,
14041        params: *const OSSL_PARAM,
14042    ) -> ::core::ffi::c_int;
14043}
14044unsafe extern "C" {
14045    pub fn EVP_PKEY_encapsulate(
14046        ctx: *mut EVP_PKEY_CTX,
14047        out_ciphertext: *mut u8,
14048        out_ciphertext_len: *mut usize,
14049        out_secret: *mut u8,
14050        out_secret_len: *mut usize,
14051    ) -> ::core::ffi::c_int;
14052}
14053unsafe extern "C" {
14054    pub fn EVP_PKEY_decapsulate_init(
14055        ctx: *mut EVP_PKEY_CTX,
14056        params: *const OSSL_PARAM,
14057    ) -> ::core::ffi::c_int;
14058}
14059unsafe extern "C" {
14060    pub fn EVP_PKEY_decapsulate(
14061        ctx: *mut EVP_PKEY_CTX,
14062        out_secret: *mut u8,
14063        out_secret_len: *mut usize,
14064        ciphertext: *const u8,
14065        ciphertext_len: usize,
14066    ) -> ::core::ffi::c_int;
14067}
14068unsafe extern "C" {
14069    pub fn EVP_PKEY_CTX_set_signature_md(
14070        ctx: *mut EVP_PKEY_CTX,
14071        md: *const EVP_MD,
14072    ) -> ::core::ffi::c_int;
14073}
14074unsafe extern "C" {
14075    pub fn EVP_PKEY_CTX_get_signature_md(
14076        ctx: *mut EVP_PKEY_CTX,
14077        out_md: *mut *const EVP_MD,
14078    ) -> ::core::ffi::c_int;
14079}
14080unsafe extern "C" {
14081    pub fn EVP_PKEY_CTX_set1_signature_context_string(
14082        ctx: *mut EVP_PKEY_CTX,
14083        context: *const u8,
14084        context_len: usize,
14085    ) -> ::core::ffi::c_int;
14086}
14087unsafe extern "C" {
14088    pub fn EVP_RSA_gen(bits: ::core::ffi::c_uint) -> *mut EVP_PKEY;
14089}
14090unsafe extern "C" {
14091    pub fn EVP_PKEY_from_rsa_public_key(
14092        alg: *const EVP_PKEY_ALG,
14093        in_: *const u8,
14094        len: usize,
14095    ) -> *mut EVP_PKEY;
14096}
14097unsafe extern "C" {
14098    pub fn EVP_PKEY_from_rsa_private_key(
14099        alg: *const EVP_PKEY_ALG,
14100        in_: *const u8,
14101        len: usize,
14102    ) -> *mut EVP_PKEY;
14103}
14104unsafe extern "C" {
14105    pub fn EVP_PKEY_marshal_rsa_public_key(
14106        cbb: *mut CBB,
14107        key: *const EVP_PKEY,
14108    ) -> ::core::ffi::c_int;
14109}
14110unsafe extern "C" {
14111    pub fn EVP_PKEY_marshal_rsa_private_key(
14112        cbb: *mut CBB,
14113        key: *const EVP_PKEY,
14114    ) -> ::core::ffi::c_int;
14115}
14116unsafe extern "C" {
14117    pub fn EVP_PKEY_CTX_set_rsa_padding(
14118        ctx: *mut EVP_PKEY_CTX,
14119        padding: ::core::ffi::c_int,
14120    ) -> ::core::ffi::c_int;
14121}
14122unsafe extern "C" {
14123    pub fn EVP_PKEY_CTX_get_rsa_padding(
14124        ctx: *mut EVP_PKEY_CTX,
14125        out_padding: *mut ::core::ffi::c_int,
14126    ) -> ::core::ffi::c_int;
14127}
14128unsafe extern "C" {
14129    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
14130        ctx: *mut EVP_PKEY_CTX,
14131        salt_len: ::core::ffi::c_int,
14132    ) -> ::core::ffi::c_int;
14133}
14134unsafe extern "C" {
14135    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
14136        ctx: *mut EVP_PKEY_CTX,
14137        out_salt_len: *mut ::core::ffi::c_int,
14138    ) -> ::core::ffi::c_int;
14139}
14140unsafe extern "C" {
14141    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
14142        ctx: *mut EVP_PKEY_CTX,
14143        bits: ::core::ffi::c_int,
14144    ) -> ::core::ffi::c_int;
14145}
14146unsafe extern "C" {
14147    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
14148        ctx: *mut EVP_PKEY_CTX,
14149        e: *mut BIGNUM,
14150    ) -> ::core::ffi::c_int;
14151}
14152unsafe extern "C" {
14153    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
14154        ctx: *mut EVP_PKEY_CTX,
14155        md: *const EVP_MD,
14156    ) -> ::core::ffi::c_int;
14157}
14158unsafe extern "C" {
14159    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
14160        ctx: *mut EVP_PKEY_CTX,
14161        out_md: *mut *const EVP_MD,
14162    ) -> ::core::ffi::c_int;
14163}
14164unsafe extern "C" {
14165    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
14166        ctx: *mut EVP_PKEY_CTX,
14167        md: *const EVP_MD,
14168    ) -> ::core::ffi::c_int;
14169}
14170unsafe extern "C" {
14171    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
14172        ctx: *mut EVP_PKEY_CTX,
14173        out_md: *mut *const EVP_MD,
14174    ) -> ::core::ffi::c_int;
14175}
14176unsafe extern "C" {
14177    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
14178        ctx: *mut EVP_PKEY_CTX,
14179        label: *mut u8,
14180        label_len: usize,
14181    ) -> ::core::ffi::c_int;
14182}
14183unsafe extern "C" {
14184    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
14185        ctx: *mut EVP_PKEY_CTX,
14186        out_label: *mut *const u8,
14187    ) -> ::core::ffi::c_int;
14188}
14189unsafe extern "C" {
14190    pub fn EVP_PKEY_from_ec_uncompressed_point(
14191        alg: *const EVP_PKEY_ALG,
14192        in_: *const u8,
14193        len: usize,
14194    ) -> *mut EVP_PKEY;
14195}
14196unsafe extern "C" {
14197    pub fn EVP_PKEY_from_ec_compressed_point(
14198        alg: *const EVP_PKEY_ALG,
14199        in_: *const u8,
14200        len: usize,
14201    ) -> *mut EVP_PKEY;
14202}
14203unsafe extern "C" {
14204    pub fn EVP_PKEY_marshal_ec_uncompressed_point(
14205        cbb: *mut CBB,
14206        key: *const EVP_PKEY,
14207    ) -> ::core::ffi::c_int;
14208}
14209unsafe extern "C" {
14210    pub fn EVP_PKEY_marshal_ec_compressed_point(
14211        cbb: *mut CBB,
14212        key: *const EVP_PKEY,
14213    ) -> ::core::ffi::c_int;
14214}
14215unsafe extern "C" {
14216    pub fn EVP_PKEY_from_ec_private_scalar(
14217        alg: *const EVP_PKEY_ALG,
14218        in_: *const u8,
14219        len: usize,
14220    ) -> *mut EVP_PKEY;
14221}
14222unsafe extern "C" {
14223    pub fn EVP_PKEY_marshal_ec_private_scalar(
14224        cbb: *mut CBB,
14225        key: *const EVP_PKEY,
14226    ) -> ::core::ffi::c_int;
14227}
14228unsafe extern "C" {
14229    pub fn EVP_PKEY_get_ec_curve_nid(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14230}
14231unsafe extern "C" {
14232    pub fn EVP_PKEY_get_ec_point_conv_form(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14233}
14234unsafe extern "C" {
14235    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
14236        ctx: *mut EVP_PKEY_CTX,
14237        nid: ::core::ffi::c_int,
14238    ) -> ::core::ffi::c_int;
14239}
14240unsafe extern "C" {
14241    pub fn EVP_PKEY_CTX_set_dh_pad(
14242        ctx: *mut EVP_PKEY_CTX,
14243        pad: ::core::ffi::c_int,
14244    ) -> ::core::ffi::c_int;
14245}
14246unsafe extern "C" {
14247    pub fn EVP_kem_ml_kem_768() -> *const EVP_KEM;
14248}
14249unsafe extern "C" {
14250    pub fn EVP_kem_ml_kem_1024() -> *const EVP_KEM;
14251}
14252unsafe extern "C" {
14253    pub fn EVP_kem_xwing() -> *const EVP_KEM;
14254}
14255unsafe extern "C" {
14256    pub fn EVP_KEM_ciphertext_len(kem: *const EVP_KEM) -> usize;
14257}
14258unsafe extern "C" {
14259    pub fn EVP_KEM_secret_len(kem: *const EVP_KEM) -> usize;
14260}
14261unsafe extern "C" {
14262    pub fn EVP_KEM_entropy_len_for_testing(kem: *const EVP_KEM) -> usize;
14263}
14264unsafe extern "C" {
14265    pub fn EVP_KEM_encap(
14266        kem: *const EVP_KEM,
14267        out_ciphertext: *mut u8,
14268        ciphertext_len: usize,
14269        out_secret: *mut u8,
14270        secret_len: usize,
14271        peer_key: *const EVP_PKEY,
14272    ) -> ::core::ffi::c_int;
14273}
14274unsafe extern "C" {
14275    pub fn EVP_KEM_encap_external_entropy_for_testing(
14276        kem: *const EVP_KEM,
14277        out_ciphertext: *mut u8,
14278        ciphertext_len: usize,
14279        out_secret: *mut u8,
14280        secret_len: usize,
14281        peer_key: *const EVP_PKEY,
14282        entropy: *const u8,
14283        entropy_len: usize,
14284    ) -> ::core::ffi::c_int;
14285}
14286unsafe extern "C" {
14287    pub fn EVP_KEM_decap(
14288        kem: *const EVP_KEM,
14289        out_secret: *mut u8,
14290        secret_len: usize,
14291        ciphertext: *const u8,
14292        ciphertext_len: usize,
14293        key: *const EVP_PKEY,
14294    ) -> ::core::ffi::c_int;
14295}
14296unsafe extern "C" {
14297    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::core::ffi::c_void;
14298}
14299unsafe extern "C" {
14300    pub fn OpenSSL_add_all_algorithms();
14301}
14302unsafe extern "C" {
14303    pub fn OPENSSL_add_all_algorithms_conf();
14304}
14305unsafe extern "C" {
14306    pub fn OpenSSL_add_all_ciphers();
14307}
14308unsafe extern "C" {
14309    pub fn OpenSSL_add_all_digests();
14310}
14311unsafe extern "C" {
14312    pub fn EVP_cleanup();
14313}
14314unsafe extern "C" {
14315    pub fn EVP_default_properties_is_fips_enabled(libctx: *mut OSSL_LIB_CTX) -> ::core::ffi::c_int;
14316}
14317unsafe extern "C" {
14318    pub fn EVP_CIPHER_do_all_sorted(
14319        callback: ::core::option::Option<
14320            unsafe extern "C" fn(
14321                cipher: *const EVP_CIPHER,
14322                name: *const ::core::ffi::c_char,
14323                unused: *const ::core::ffi::c_char,
14324                arg: *mut ::core::ffi::c_void,
14325            ),
14326        >,
14327        arg: *mut ::core::ffi::c_void,
14328    );
14329}
14330unsafe extern "C" {
14331    pub fn EVP_MD_do_all_sorted(
14332        callback: ::core::option::Option<
14333            unsafe extern "C" fn(
14334                md: *const EVP_MD,
14335                name: *const ::core::ffi::c_char,
14336                unused: *const ::core::ffi::c_char,
14337                arg: *mut ::core::ffi::c_void,
14338            ),
14339        >,
14340        arg: *mut ::core::ffi::c_void,
14341    );
14342}
14343unsafe extern "C" {
14344    pub fn EVP_MD_do_all(
14345        callback: ::core::option::Option<
14346            unsafe extern "C" fn(
14347                md: *const EVP_MD,
14348                name: *const ::core::ffi::c_char,
14349                unused: *const ::core::ffi::c_char,
14350                arg: *mut ::core::ffi::c_void,
14351            ),
14352        >,
14353        arg: *mut ::core::ffi::c_void,
14354    );
14355}
14356unsafe extern "C" {
14357    pub fn EVP_MD_do_all_provided(
14358        libctx: *mut OSSL_LIB_CTX,
14359        callback: ::core::option::Option<
14360            unsafe extern "C" fn(md: *mut EVP_MD, arg: *mut ::core::ffi::c_void),
14361        >,
14362        arg: *mut ::core::ffi::c_void,
14363    );
14364}
14365unsafe extern "C" {
14366    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14367}
14368unsafe extern "C" {
14369    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14370}
14371unsafe extern "C" {
14372    pub fn d2i_PrivateKey(
14373        type_: ::core::ffi::c_int,
14374        out: *mut *mut EVP_PKEY,
14375        inp: *mut *const u8,
14376        len: ::core::ffi::c_long,
14377    ) -> *mut EVP_PKEY;
14378}
14379unsafe extern "C" {
14380    pub fn d2i_AutoPrivateKey(
14381        out: *mut *mut EVP_PKEY,
14382        inp: *mut *const u8,
14383        len: ::core::ffi::c_long,
14384    ) -> *mut EVP_PKEY;
14385}
14386unsafe extern "C" {
14387    pub fn d2i_PublicKey(
14388        type_: ::core::ffi::c_int,
14389        out: *mut *mut EVP_PKEY,
14390        inp: *mut *const u8,
14391        len: ::core::ffi::c_long,
14392    ) -> *mut EVP_PKEY;
14393}
14394unsafe extern "C" {
14395    pub fn EVP_PKEY_CTX_set_ec_param_enc(
14396        ctx: *mut EVP_PKEY_CTX,
14397        encoding: ::core::ffi::c_int,
14398    ) -> ::core::ffi::c_int;
14399}
14400unsafe extern "C" {
14401    pub fn EVP_PKEY_set_type(pkey: *mut EVP_PKEY, type_: ::core::ffi::c_int) -> ::core::ffi::c_int;
14402}
14403unsafe extern "C" {
14404    pub fn EVP_PKEY_set1_tls_encodedpoint(
14405        pkey: *mut EVP_PKEY,
14406        in_: *const u8,
14407        len: usize,
14408    ) -> ::core::ffi::c_int;
14409}
14410unsafe extern "C" {
14411    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
14412}
14413unsafe extern "C" {
14414    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14415}
14416unsafe extern "C" {
14417    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
14418        ctx: *mut EVP_PKEY_CTX,
14419        md: *const EVP_MD,
14420    ) -> ::core::ffi::c_int;
14421}
14422unsafe extern "C" {
14423    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
14424        ctx: *mut EVP_PKEY_CTX,
14425        salt_len: ::core::ffi::c_int,
14426    ) -> ::core::ffi::c_int;
14427}
14428unsafe extern "C" {
14429    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
14430        ctx: *mut EVP_PKEY_CTX,
14431        md: *const EVP_MD,
14432    ) -> ::core::ffi::c_int;
14433}
14434unsafe extern "C" {
14435    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14436}
14437unsafe extern "C" {
14438    pub fn d2i_PUBKEY(
14439        out: *mut *mut EVP_PKEY,
14440        inp: *mut *const u8,
14441        len: ::core::ffi::c_long,
14442    ) -> *mut EVP_PKEY;
14443}
14444unsafe extern "C" {
14445    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14446}
14447unsafe extern "C" {
14448    pub fn d2i_RSA_PUBKEY(
14449        out: *mut *mut RSA,
14450        inp: *mut *const u8,
14451        len: ::core::ffi::c_long,
14452    ) -> *mut RSA;
14453}
14454unsafe extern "C" {
14455    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14456}
14457unsafe extern "C" {
14458    pub fn d2i_DSA_PUBKEY(
14459        out: *mut *mut DSA,
14460        inp: *mut *const u8,
14461        len: ::core::ffi::c_long,
14462    ) -> *mut DSA;
14463}
14464unsafe extern "C" {
14465    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14466}
14467unsafe extern "C" {
14468    pub fn d2i_EC_PUBKEY(
14469        out: *mut *mut EC_KEY,
14470        inp: *mut *const u8,
14471        len: ::core::ffi::c_long,
14472    ) -> *mut EC_KEY;
14473}
14474unsafe extern "C" {
14475    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
14476        ctx: *mut EVP_PKEY_CTX,
14477        nbits: ::core::ffi::c_int,
14478    ) -> ::core::ffi::c_int;
14479}
14480unsafe extern "C" {
14481    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
14482        ctx: *mut EVP_PKEY_CTX,
14483        qbits: ::core::ffi::c_int,
14484    ) -> ::core::ffi::c_int;
14485}
14486unsafe extern "C" {
14487    pub fn EVP_PKEY_assign(
14488        pkey: *mut EVP_PKEY,
14489        type_: ::core::ffi::c_int,
14490        key: *mut ::core::ffi::c_void,
14491    ) -> ::core::ffi::c_int;
14492}
14493unsafe extern "C" {
14494    pub fn EVP_PKEY_type(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
14495}
14496unsafe extern "C" {
14497    pub fn EVP_PKEY_new_raw_private_key(
14498        type_: ::core::ffi::c_int,
14499        unused: *mut ENGINE,
14500        in_: *const u8,
14501        len: usize,
14502    ) -> *mut EVP_PKEY;
14503}
14504unsafe extern "C" {
14505    pub fn EVP_PKEY_new_raw_public_key(
14506        type_: ::core::ffi::c_int,
14507        unused: *mut ENGINE,
14508        in_: *const u8,
14509        len: usize,
14510    ) -> *mut EVP_PKEY;
14511}
14512unsafe extern "C" {
14513    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14514}
14515unsafe extern "C" {
14516    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14517}
14518unsafe extern "C" {
14519    pub fn HKDF(
14520        out_key: *mut u8,
14521        out_len: usize,
14522        digest: *const EVP_MD,
14523        secret: *const u8,
14524        secret_len: usize,
14525        salt: *const u8,
14526        salt_len: usize,
14527        info: *const u8,
14528        info_len: usize,
14529    ) -> ::core::ffi::c_int;
14530}
14531unsafe extern "C" {
14532    pub fn HKDF_extract(
14533        out_key: *mut u8,
14534        out_len: *mut usize,
14535        digest: *const EVP_MD,
14536        secret: *const u8,
14537        secret_len: usize,
14538        salt: *const u8,
14539        salt_len: usize,
14540    ) -> ::core::ffi::c_int;
14541}
14542unsafe extern "C" {
14543    pub fn HKDF_expand(
14544        out_key: *mut u8,
14545        out_len: usize,
14546        digest: *const EVP_MD,
14547        prk: *const u8,
14548        prk_len: usize,
14549        info: *const u8,
14550        info_len: usize,
14551    ) -> ::core::ffi::c_int;
14552}
14553unsafe extern "C" {
14554    pub fn HMAC(
14555        evp_md: *const EVP_MD,
14556        key: *const ::core::ffi::c_void,
14557        key_len: usize,
14558        data: *const u8,
14559        data_len: usize,
14560        out: *mut u8,
14561        out_len: *mut ::core::ffi::c_uint,
14562    ) -> *mut u8;
14563}
14564unsafe extern "C" {
14565    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
14566}
14567unsafe extern "C" {
14568    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
14569}
14570unsafe extern "C" {
14571    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
14572}
14573unsafe extern "C" {
14574    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
14575}
14576unsafe extern "C" {
14577    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
14578}
14579unsafe extern "C" {
14580    pub fn HMAC_Init_ex(
14581        ctx: *mut HMAC_CTX,
14582        key: *const ::core::ffi::c_void,
14583        key_len: usize,
14584        md: *const EVP_MD,
14585        impl_: *mut ENGINE,
14586    ) -> ::core::ffi::c_int;
14587}
14588unsafe extern "C" {
14589    pub fn HMAC_Update(ctx: *mut HMAC_CTX, data: *const u8, data_len: usize) -> ::core::ffi::c_int;
14590}
14591unsafe extern "C" {
14592    pub fn HMAC_Final(
14593        ctx: *mut HMAC_CTX,
14594        out: *mut u8,
14595        out_len: *mut ::core::ffi::c_uint,
14596    ) -> ::core::ffi::c_int;
14597}
14598unsafe extern "C" {
14599    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
14600}
14601unsafe extern "C" {
14602    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
14603}
14604unsafe extern "C" {
14605    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14606}
14607unsafe extern "C" {
14608    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
14609}
14610unsafe extern "C" {
14611    pub fn HMAC_Init(
14612        ctx: *mut HMAC_CTX,
14613        key: *const ::core::ffi::c_void,
14614        key_len: ::core::ffi::c_int,
14615        md: *const EVP_MD,
14616    ) -> ::core::ffi::c_int;
14617}
14618unsafe extern "C" {
14619    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14620}
14621#[repr(C)]
14622#[derive(Copy, Clone)]
14623pub struct hmac_ctx_st {
14624    pub md: *const EVP_MD,
14625    pub md_ctx: EVP_MD_CTX,
14626    pub i_ctx: EVP_MD_CTX,
14627    pub o_ctx: EVP_MD_CTX,
14628}
14629unsafe extern "C" {
14630    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
14631}
14632unsafe extern "C" {
14633    pub fn EVP_hpke_p256_hkdf_sha256() -> *const EVP_HPKE_KEM;
14634}
14635unsafe extern "C" {
14636    pub fn EVP_hpke_xwing() -> *const EVP_HPKE_KEM;
14637}
14638unsafe extern "C" {
14639    pub fn EVP_hpke_mlkem768() -> *const EVP_HPKE_KEM;
14640}
14641unsafe extern "C" {
14642    pub fn EVP_hpke_mlkem1024() -> *const EVP_HPKE_KEM;
14643}
14644unsafe extern "C" {
14645    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
14646}
14647unsafe extern "C" {
14648    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14649}
14650unsafe extern "C" {
14651    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14652}
14653unsafe extern "C" {
14654    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
14655}
14656unsafe extern "C" {
14657    pub fn EVP_HPKE_KEM_shared_secret_len(kem: *const EVP_HPKE_KEM) -> usize;
14658}
14659unsafe extern "C" {
14660    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
14661}
14662unsafe extern "C" {
14663    pub fn EVP_hpke_hkdf_sha384() -> *const EVP_HPKE_KDF;
14664}
14665unsafe extern "C" {
14666    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
14667}
14668unsafe extern "C" {
14669    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
14670}
14671unsafe extern "C" {
14672    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
14673}
14674unsafe extern "C" {
14675    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
14676}
14677unsafe extern "C" {
14678    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
14679}
14680unsafe extern "C" {
14681    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
14682}
14683unsafe extern "C" {
14684    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
14685}
14686unsafe extern "C" {
14687    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
14688}
14689unsafe extern "C" {
14690    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
14691}
14692unsafe extern "C" {
14693    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
14694}
14695unsafe extern "C" {
14696    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
14697}
14698unsafe extern "C" {
14699    pub fn EVP_HPKE_KEY_copy(
14700        dst: *mut EVP_HPKE_KEY,
14701        src: *const EVP_HPKE_KEY,
14702    ) -> ::core::ffi::c_int;
14703}
14704unsafe extern "C" {
14705    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
14706}
14707unsafe extern "C" {
14708    pub fn EVP_HPKE_KEY_init(
14709        key: *mut EVP_HPKE_KEY,
14710        kem: *const EVP_HPKE_KEM,
14711        priv_key: *const u8,
14712        priv_key_len: usize,
14713    ) -> ::core::ffi::c_int;
14714}
14715unsafe extern "C" {
14716    pub fn EVP_HPKE_KEY_generate(
14717        key: *mut EVP_HPKE_KEY,
14718        kem: *const EVP_HPKE_KEM,
14719    ) -> ::core::ffi::c_int;
14720}
14721unsafe extern "C" {
14722    pub fn EVP_HPKE_KEY_derive(
14723        key: *mut EVP_HPKE_KEY,
14724        kem: *const EVP_HPKE_KEM,
14725        ikm: *const u8,
14726        ikm_len: usize,
14727    ) -> ::core::ffi::c_int;
14728}
14729unsafe extern "C" {
14730    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
14731}
14732unsafe extern "C" {
14733    pub fn EVP_HPKE_KEY_public_key(
14734        key: *const EVP_HPKE_KEY,
14735        out: *mut u8,
14736        out_len: *mut usize,
14737        max_out: usize,
14738    ) -> ::core::ffi::c_int;
14739}
14740unsafe extern "C" {
14741    pub fn EVP_HPKE_KEY_private_key(
14742        key: *const EVP_HPKE_KEY,
14743        out: *mut u8,
14744        out_len: *mut usize,
14745        max_out: usize,
14746    ) -> ::core::ffi::c_int;
14747}
14748unsafe extern "C" {
14749    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
14750}
14751unsafe extern "C" {
14752    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
14753}
14754unsafe extern "C" {
14755    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
14756}
14757unsafe extern "C" {
14758    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
14759}
14760unsafe extern "C" {
14761    pub fn EVP_HPKE_CTX_setup_sender(
14762        ctx: *mut EVP_HPKE_CTX,
14763        out_enc: *mut u8,
14764        out_enc_len: *mut usize,
14765        max_enc: usize,
14766        kem: *const EVP_HPKE_KEM,
14767        kdf: *const EVP_HPKE_KDF,
14768        aead: *const EVP_HPKE_AEAD,
14769        peer_public_key: *const u8,
14770        peer_public_key_len: usize,
14771        info: *const u8,
14772        info_len: usize,
14773    ) -> ::core::ffi::c_int;
14774}
14775unsafe extern "C" {
14776    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
14777        ctx: *mut EVP_HPKE_CTX,
14778        out_enc: *mut u8,
14779        out_enc_len: *mut usize,
14780        max_enc: usize,
14781        kem: *const EVP_HPKE_KEM,
14782        kdf: *const EVP_HPKE_KDF,
14783        aead: *const EVP_HPKE_AEAD,
14784        peer_public_key: *const u8,
14785        peer_public_key_len: usize,
14786        info: *const u8,
14787        info_len: usize,
14788        seed: *const u8,
14789        seed_len: usize,
14790    ) -> ::core::ffi::c_int;
14791}
14792unsafe extern "C" {
14793    pub fn EVP_HPKE_CTX_setup_recipient(
14794        ctx: *mut EVP_HPKE_CTX,
14795        key: *const EVP_HPKE_KEY,
14796        kdf: *const EVP_HPKE_KDF,
14797        aead: *const EVP_HPKE_AEAD,
14798        enc: *const u8,
14799        enc_len: usize,
14800        info: *const u8,
14801        info_len: usize,
14802    ) -> ::core::ffi::c_int;
14803}
14804unsafe extern "C" {
14805    pub fn EVP_HPKE_CTX_setup_recipient_with_shared_secret(
14806        ctx: *mut EVP_HPKE_CTX,
14807        kem: *const EVP_HPKE_KEM,
14808        kdf: *const EVP_HPKE_KDF,
14809        aead: *const EVP_HPKE_AEAD,
14810        shared_secret: *const u8,
14811        shared_secret_len: usize,
14812        info: *const u8,
14813        info_len: usize,
14814    ) -> ::core::ffi::c_int;
14815}
14816unsafe extern "C" {
14817    pub fn EVP_HPKE_CTX_setup_auth_sender(
14818        ctx: *mut EVP_HPKE_CTX,
14819        out_enc: *mut u8,
14820        out_enc_len: *mut usize,
14821        max_enc: usize,
14822        key: *const EVP_HPKE_KEY,
14823        kdf: *const EVP_HPKE_KDF,
14824        aead: *const EVP_HPKE_AEAD,
14825        peer_public_key: *const u8,
14826        peer_public_key_len: usize,
14827        info: *const u8,
14828        info_len: usize,
14829    ) -> ::core::ffi::c_int;
14830}
14831unsafe extern "C" {
14832    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
14833        ctx: *mut EVP_HPKE_CTX,
14834        out_enc: *mut u8,
14835        out_enc_len: *mut usize,
14836        max_enc: usize,
14837        key: *const EVP_HPKE_KEY,
14838        kdf: *const EVP_HPKE_KDF,
14839        aead: *const EVP_HPKE_AEAD,
14840        peer_public_key: *const u8,
14841        peer_public_key_len: usize,
14842        info: *const u8,
14843        info_len: usize,
14844        seed: *const u8,
14845        seed_len: usize,
14846    ) -> ::core::ffi::c_int;
14847}
14848unsafe extern "C" {
14849    pub fn EVP_HPKE_CTX_setup_auth_recipient(
14850        ctx: *mut EVP_HPKE_CTX,
14851        key: *const EVP_HPKE_KEY,
14852        kdf: *const EVP_HPKE_KDF,
14853        aead: *const EVP_HPKE_AEAD,
14854        enc: *const u8,
14855        enc_len: usize,
14856        info: *const u8,
14857        info_len: usize,
14858        peer_public_key: *const u8,
14859        peer_public_key_len: usize,
14860    ) -> ::core::ffi::c_int;
14861}
14862unsafe extern "C" {
14863    pub fn EVP_HPKE_CTX_open(
14864        ctx: *mut EVP_HPKE_CTX,
14865        out: *mut u8,
14866        out_len: *mut usize,
14867        max_out_len: usize,
14868        in_: *const u8,
14869        in_len: usize,
14870        ad: *const u8,
14871        ad_len: usize,
14872    ) -> ::core::ffi::c_int;
14873}
14874unsafe extern "C" {
14875    pub fn EVP_HPKE_CTX_seal(
14876        ctx: *mut EVP_HPKE_CTX,
14877        out: *mut u8,
14878        out_len: *mut usize,
14879        max_out_len: usize,
14880        in_: *const u8,
14881        in_len: usize,
14882        ad: *const u8,
14883        ad_len: usize,
14884    ) -> ::core::ffi::c_int;
14885}
14886unsafe extern "C" {
14887    pub fn EVP_HPKE_CTX_export(
14888        ctx: *const EVP_HPKE_CTX,
14889        out: *mut u8,
14890        secret_len: usize,
14891        context: *const u8,
14892        context_len: usize,
14893    ) -> ::core::ffi::c_int;
14894}
14895unsafe extern "C" {
14896    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
14897}
14898unsafe extern "C" {
14899    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
14900}
14901unsafe extern "C" {
14902    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
14903}
14904unsafe extern "C" {
14905    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
14906}
14907#[repr(C)]
14908#[derive(Copy, Clone)]
14909pub struct evp_hpke_ctx_st {
14910    pub kem: *const EVP_HPKE_KEM,
14911    pub aead: *const EVP_HPKE_AEAD,
14912    pub kdf: *const EVP_HPKE_KDF,
14913    pub aead_ctx: EVP_AEAD_CTX,
14914    pub base_nonce: [u8; 24usize],
14915    pub exporter_secret: [u8; 64usize],
14916    pub seq: u64,
14917    pub is_sender: ::core::ffi::c_int,
14918}
14919#[repr(C)]
14920#[derive(Debug, Copy, Clone)]
14921pub struct evp_hpke_key_st {
14922    pub kem: *const EVP_HPKE_KEM,
14923    pub private_key: [u8; 64usize],
14924    pub public_key: [u8; 1568usize],
14925    pub pkey: *mut EVP_PKEY,
14926}
14927#[repr(C)]
14928#[derive(Debug, Copy, Clone)]
14929pub struct HRSS_private_key {
14930    pub opaque: [u8; 1808usize],
14931}
14932#[repr(C)]
14933#[derive(Debug, Copy, Clone)]
14934pub struct HRSS_public_key {
14935    pub opaque: [u8; 1424usize],
14936}
14937unsafe extern "C" {
14938    pub fn HRSS_generate_key(
14939        out_pub: *mut HRSS_public_key,
14940        out_priv: *mut HRSS_private_key,
14941        input: *const u8,
14942    ) -> ::core::ffi::c_int;
14943}
14944unsafe extern "C" {
14945    pub fn HRSS_encap(
14946        out_ciphertext: *mut u8,
14947        out_shared_key: *mut u8,
14948        in_pub: *const HRSS_public_key,
14949        in_: *const u8,
14950    ) -> ::core::ffi::c_int;
14951}
14952unsafe extern "C" {
14953    pub fn HRSS_decap(
14954        out_shared_key: *mut u8,
14955        in_priv: *const HRSS_private_key,
14956        ciphertext: *const u8,
14957        ciphertext_len: usize,
14958    ) -> ::core::ffi::c_int;
14959}
14960unsafe extern "C" {
14961    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
14962}
14963unsafe extern "C" {
14964    pub fn HRSS_parse_public_key(out: *mut HRSS_public_key, in_: *const u8) -> ::core::ffi::c_int;
14965}
14966unsafe extern "C" {
14967    pub fn EVP_PKEY_CTX_hkdf_mode(
14968        ctx: *mut EVP_PKEY_CTX,
14969        mode: ::core::ffi::c_int,
14970    ) -> ::core::ffi::c_int;
14971}
14972unsafe extern "C" {
14973    pub fn EVP_PKEY_CTX_set_hkdf_md(
14974        ctx: *mut EVP_PKEY_CTX,
14975        md: *const EVP_MD,
14976    ) -> ::core::ffi::c_int;
14977}
14978unsafe extern "C" {
14979    pub fn EVP_PKEY_CTX_set1_hkdf_key(
14980        ctx: *mut EVP_PKEY_CTX,
14981        key: *const u8,
14982        key_len: usize,
14983    ) -> ::core::ffi::c_int;
14984}
14985unsafe extern "C" {
14986    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
14987        ctx: *mut EVP_PKEY_CTX,
14988        salt: *const u8,
14989        salt_len: usize,
14990    ) -> ::core::ffi::c_int;
14991}
14992unsafe extern "C" {
14993    pub fn EVP_PKEY_CTX_add1_hkdf_info(
14994        ctx: *mut EVP_PKEY_CTX,
14995        info: *const u8,
14996        info_len: usize,
14997    ) -> ::core::ffi::c_int;
14998}
14999unsafe extern "C" {
15000    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::core::ffi::c_int;
15001}
15002unsafe extern "C" {
15003    pub fn MD4_Update(
15004        md4: *mut MD4_CTX,
15005        data: *const ::core::ffi::c_void,
15006        len: usize,
15007    ) -> ::core::ffi::c_int;
15008}
15009unsafe extern "C" {
15010    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::core::ffi::c_int;
15011}
15012unsafe extern "C" {
15013    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15014}
15015unsafe extern "C" {
15016    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
15017}
15018#[repr(C)]
15019#[derive(Debug, Copy, Clone)]
15020pub struct md4_state_st {
15021    pub h: [u32; 4usize],
15022    pub Nl: u32,
15023    pub Nh: u32,
15024    pub data: [u8; 64usize],
15025    pub num: ::core::ffi::c_uint,
15026}
15027unsafe extern "C" {
15028    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::core::ffi::c_int;
15029}
15030unsafe extern "C" {
15031    pub fn MD5_Update(
15032        md5: *mut MD5_CTX,
15033        data: *const ::core::ffi::c_void,
15034        len: usize,
15035    ) -> ::core::ffi::c_int;
15036}
15037unsafe extern "C" {
15038    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::core::ffi::c_int;
15039}
15040unsafe extern "C" {
15041    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
15042}
15043unsafe extern "C" {
15044    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
15045}
15046#[repr(C)]
15047#[derive(Debug, Copy, Clone)]
15048pub struct md5_state_st {
15049    pub h: [u32; 4usize],
15050    pub Nl: u32,
15051    pub Nh: u32,
15052    pub data: [u8; 64usize],
15053    pub num: ::core::ffi::c_uint,
15054}
15055#[repr(C)]
15056#[derive(Copy, Clone)]
15057pub struct MLDSA65_private_key {
15058    pub opaque: MLDSA65_private_key__bindgen_ty_1,
15059}
15060#[repr(C)]
15061#[derive(Copy, Clone)]
15062pub union MLDSA65_private_key__bindgen_ty_1 {
15063    pub bytes: [u8; 23680usize],
15064    pub alignment: u32,
15065}
15066#[repr(C)]
15067#[derive(Copy, Clone)]
15068pub struct MLDSA65_public_key {
15069    pub opaque: MLDSA65_public_key__bindgen_ty_1,
15070}
15071#[repr(C)]
15072#[derive(Copy, Clone)]
15073pub union MLDSA65_public_key__bindgen_ty_1 {
15074    pub bytes: [u8; 6240usize],
15075    pub alignment: u32,
15076}
15077#[repr(C)]
15078#[derive(Copy, Clone)]
15079pub struct MLDSA65_prehash {
15080    pub opaque: MLDSA65_prehash__bindgen_ty_1,
15081}
15082#[repr(C)]
15083#[derive(Copy, Clone)]
15084pub union MLDSA65_prehash__bindgen_ty_1 {
15085    pub bytes: [u8; 240usize],
15086    pub alignment: u64,
15087}
15088unsafe extern "C" {
15089    pub fn MLDSA65_generate_key(
15090        out_encoded_public_key: *mut u8,
15091        out_seed: *mut u8,
15092        out_private_key: *mut MLDSA65_private_key,
15093    ) -> ::core::ffi::c_int;
15094}
15095unsafe extern "C" {
15096    pub fn MLDSA65_private_key_from_seed(
15097        out_private_key: *mut MLDSA65_private_key,
15098        seed: *const u8,
15099        seed_len: usize,
15100    ) -> ::core::ffi::c_int;
15101}
15102unsafe extern "C" {
15103    pub fn MLDSA65_public_from_private(
15104        out_public_key: *mut MLDSA65_public_key,
15105        private_key: *const MLDSA65_private_key,
15106    ) -> ::core::ffi::c_int;
15107}
15108unsafe extern "C" {
15109    pub fn MLDSA65_sign(
15110        out_encoded_signature: *mut u8,
15111        private_key: *const MLDSA65_private_key,
15112        msg: *const u8,
15113        msg_len: usize,
15114        context: *const u8,
15115        context_len: usize,
15116    ) -> ::core::ffi::c_int;
15117}
15118unsafe extern "C" {
15119    pub fn MLDSA65_verify(
15120        public_key: *const MLDSA65_public_key,
15121        signature: *const u8,
15122        signature_len: usize,
15123        msg: *const u8,
15124        msg_len: usize,
15125        context: *const u8,
15126        context_len: usize,
15127    ) -> ::core::ffi::c_int;
15128}
15129unsafe extern "C" {
15130    pub fn MLDSA65_prehash_init(
15131        out_state: *mut MLDSA65_prehash,
15132        public_key: *const MLDSA65_public_key,
15133        context: *const u8,
15134        context_len: usize,
15135    ) -> ::core::ffi::c_int;
15136}
15137unsafe extern "C" {
15138    pub fn MLDSA65_prehash_update(
15139        inout_state: *mut MLDSA65_prehash,
15140        msg: *const u8,
15141        msg_len: usize,
15142    );
15143}
15144unsafe extern "C" {
15145    pub fn MLDSA65_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA65_prehash);
15146}
15147unsafe extern "C" {
15148    pub fn MLDSA65_sign_message_representative(
15149        out_encoded_signature: *mut u8,
15150        private_key: *const MLDSA65_private_key,
15151        msg_rep: *const u8,
15152    ) -> ::core::ffi::c_int;
15153}
15154unsafe extern "C" {
15155    pub fn MLDSA65_verify_message_representative(
15156        public_key: *const MLDSA65_public_key,
15157        signature: *const u8,
15158        signature_len: usize,
15159        msg_rep: *const u8,
15160    ) -> ::core::ffi::c_int;
15161}
15162unsafe extern "C" {
15163    pub fn MLDSA65_marshal_public_key(
15164        out: *mut CBB,
15165        public_key: *const MLDSA65_public_key,
15166    ) -> ::core::ffi::c_int;
15167}
15168unsafe extern "C" {
15169    pub fn MLDSA65_parse_public_key(
15170        public_key: *mut MLDSA65_public_key,
15171        in_: *mut CBS,
15172    ) -> ::core::ffi::c_int;
15173}
15174#[repr(C)]
15175#[derive(Copy, Clone)]
15176pub struct MLDSA87_private_key {
15177    pub opaque: MLDSA87_private_key__bindgen_ty_1,
15178}
15179#[repr(C)]
15180#[derive(Copy, Clone)]
15181pub union MLDSA87_private_key__bindgen_ty_1 {
15182    pub bytes: [u8; 31872usize],
15183    pub alignment: u32,
15184}
15185#[repr(C)]
15186#[derive(Copy, Clone)]
15187pub struct MLDSA87_public_key {
15188    pub opaque: MLDSA87_public_key__bindgen_ty_1,
15189}
15190#[repr(C)]
15191#[derive(Copy, Clone)]
15192pub union MLDSA87_public_key__bindgen_ty_1 {
15193    pub bytes: [u8; 8288usize],
15194    pub alignment: u32,
15195}
15196#[repr(C)]
15197#[derive(Copy, Clone)]
15198pub struct MLDSA87_prehash {
15199    pub opaque: MLDSA87_prehash__bindgen_ty_1,
15200}
15201#[repr(C)]
15202#[derive(Copy, Clone)]
15203pub union MLDSA87_prehash__bindgen_ty_1 {
15204    pub bytes: [u8; 240usize],
15205    pub alignment: u64,
15206}
15207unsafe extern "C" {
15208    pub fn MLDSA87_generate_key(
15209        out_encoded_public_key: *mut u8,
15210        out_seed: *mut u8,
15211        out_private_key: *mut MLDSA87_private_key,
15212    ) -> ::core::ffi::c_int;
15213}
15214unsafe extern "C" {
15215    pub fn MLDSA87_private_key_from_seed(
15216        out_private_key: *mut MLDSA87_private_key,
15217        seed: *const u8,
15218        seed_len: usize,
15219    ) -> ::core::ffi::c_int;
15220}
15221unsafe extern "C" {
15222    pub fn MLDSA87_public_from_private(
15223        out_public_key: *mut MLDSA87_public_key,
15224        private_key: *const MLDSA87_private_key,
15225    ) -> ::core::ffi::c_int;
15226}
15227unsafe extern "C" {
15228    pub fn MLDSA87_sign(
15229        out_encoded_signature: *mut u8,
15230        private_key: *const MLDSA87_private_key,
15231        msg: *const u8,
15232        msg_len: usize,
15233        context: *const u8,
15234        context_len: usize,
15235    ) -> ::core::ffi::c_int;
15236}
15237unsafe extern "C" {
15238    pub fn MLDSA87_verify(
15239        public_key: *const MLDSA87_public_key,
15240        signature: *const u8,
15241        signature_len: usize,
15242        msg: *const u8,
15243        msg_len: usize,
15244        context: *const u8,
15245        context_len: usize,
15246    ) -> ::core::ffi::c_int;
15247}
15248unsafe extern "C" {
15249    pub fn MLDSA87_prehash_init(
15250        out_state: *mut MLDSA87_prehash,
15251        public_key: *const MLDSA87_public_key,
15252        context: *const u8,
15253        context_len: usize,
15254    ) -> ::core::ffi::c_int;
15255}
15256unsafe extern "C" {
15257    pub fn MLDSA87_prehash_update(
15258        inout_state: *mut MLDSA87_prehash,
15259        msg: *const u8,
15260        msg_len: usize,
15261    );
15262}
15263unsafe extern "C" {
15264    pub fn MLDSA87_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA87_prehash);
15265}
15266unsafe extern "C" {
15267    pub fn MLDSA87_sign_message_representative(
15268        out_encoded_signature: *mut u8,
15269        private_key: *const MLDSA87_private_key,
15270        msg_rep: *const u8,
15271    ) -> ::core::ffi::c_int;
15272}
15273unsafe extern "C" {
15274    pub fn MLDSA87_verify_message_representative(
15275        public_key: *const MLDSA87_public_key,
15276        signature: *const u8,
15277        signature_len: usize,
15278        msg_rep: *const u8,
15279    ) -> ::core::ffi::c_int;
15280}
15281unsafe extern "C" {
15282    pub fn MLDSA87_marshal_public_key(
15283        out: *mut CBB,
15284        public_key: *const MLDSA87_public_key,
15285    ) -> ::core::ffi::c_int;
15286}
15287unsafe extern "C" {
15288    pub fn MLDSA87_parse_public_key(
15289        public_key: *mut MLDSA87_public_key,
15290        in_: *mut CBS,
15291    ) -> ::core::ffi::c_int;
15292}
15293#[repr(C)]
15294#[derive(Copy, Clone)]
15295pub struct MLDSA44_private_key {
15296    pub opaque: MLDSA44_private_key__bindgen_ty_1,
15297}
15298#[repr(C)]
15299#[derive(Copy, Clone)]
15300pub union MLDSA44_private_key__bindgen_ty_1 {
15301    pub bytes: [u8; 16512usize],
15302    pub alignment: u32,
15303}
15304#[repr(C)]
15305#[derive(Copy, Clone)]
15306pub struct MLDSA44_public_key {
15307    pub opaque: MLDSA44_public_key__bindgen_ty_1,
15308}
15309#[repr(C)]
15310#[derive(Copy, Clone)]
15311pub union MLDSA44_public_key__bindgen_ty_1 {
15312    pub bytes: [u8; 4192usize],
15313    pub alignment: u32,
15314}
15315#[repr(C)]
15316#[derive(Copy, Clone)]
15317pub struct MLDSA44_prehash {
15318    pub opaque: MLDSA44_prehash__bindgen_ty_1,
15319}
15320#[repr(C)]
15321#[derive(Copy, Clone)]
15322pub union MLDSA44_prehash__bindgen_ty_1 {
15323    pub bytes: [u8; 240usize],
15324    pub alignment: u64,
15325}
15326unsafe extern "C" {
15327    pub fn MLDSA44_generate_key(
15328        out_encoded_public_key: *mut u8,
15329        out_seed: *mut u8,
15330        out_private_key: *mut MLDSA44_private_key,
15331    ) -> ::core::ffi::c_int;
15332}
15333unsafe extern "C" {
15334    pub fn MLDSA44_private_key_from_seed(
15335        out_private_key: *mut MLDSA44_private_key,
15336        seed: *const u8,
15337        seed_len: usize,
15338    ) -> ::core::ffi::c_int;
15339}
15340unsafe extern "C" {
15341    pub fn MLDSA44_public_from_private(
15342        out_public_key: *mut MLDSA44_public_key,
15343        private_key: *const MLDSA44_private_key,
15344    ) -> ::core::ffi::c_int;
15345}
15346unsafe extern "C" {
15347    pub fn MLDSA44_sign(
15348        out_encoded_signature: *mut u8,
15349        private_key: *const MLDSA44_private_key,
15350        msg: *const u8,
15351        msg_len: usize,
15352        context: *const u8,
15353        context_len: usize,
15354    ) -> ::core::ffi::c_int;
15355}
15356unsafe extern "C" {
15357    pub fn MLDSA44_verify(
15358        public_key: *const MLDSA44_public_key,
15359        signature: *const u8,
15360        signature_len: usize,
15361        msg: *const u8,
15362        msg_len: usize,
15363        context: *const u8,
15364        context_len: usize,
15365    ) -> ::core::ffi::c_int;
15366}
15367unsafe extern "C" {
15368    pub fn MLDSA44_prehash_init(
15369        out_state: *mut MLDSA44_prehash,
15370        public_key: *const MLDSA44_public_key,
15371        context: *const u8,
15372        context_len: usize,
15373    ) -> ::core::ffi::c_int;
15374}
15375unsafe extern "C" {
15376    pub fn MLDSA44_prehash_update(
15377        inout_state: *mut MLDSA44_prehash,
15378        msg: *const u8,
15379        msg_len: usize,
15380    );
15381}
15382unsafe extern "C" {
15383    pub fn MLDSA44_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA44_prehash);
15384}
15385unsafe extern "C" {
15386    pub fn MLDSA44_sign_message_representative(
15387        out_encoded_signature: *mut u8,
15388        private_key: *const MLDSA44_private_key,
15389        msg_rep: *const u8,
15390    ) -> ::core::ffi::c_int;
15391}
15392unsafe extern "C" {
15393    pub fn MLDSA44_verify_message_representative(
15394        public_key: *const MLDSA44_public_key,
15395        signature: *const u8,
15396        signature_len: usize,
15397        msg_rep: *const u8,
15398    ) -> ::core::ffi::c_int;
15399}
15400unsafe extern "C" {
15401    pub fn MLDSA44_marshal_public_key(
15402        out: *mut CBB,
15403        public_key: *const MLDSA44_public_key,
15404    ) -> ::core::ffi::c_int;
15405}
15406unsafe extern "C" {
15407    pub fn MLDSA44_parse_public_key(
15408        public_key: *mut MLDSA44_public_key,
15409        in_: *mut CBS,
15410    ) -> ::core::ffi::c_int;
15411}
15412#[repr(C)]
15413#[derive(Copy, Clone)]
15414pub struct MLKEM768_public_key {
15415    pub opaque: MLKEM768_public_key__bindgen_ty_1,
15416}
15417#[repr(C)]
15418#[derive(Copy, Clone)]
15419pub union MLKEM768_public_key__bindgen_ty_1 {
15420    pub bytes: [u8; 6208usize],
15421    pub alignment: u16,
15422}
15423#[repr(C)]
15424#[derive(Copy, Clone)]
15425pub struct MLKEM768_private_key {
15426    pub opaque: MLKEM768_private_key__bindgen_ty_1,
15427}
15428#[repr(C)]
15429#[derive(Copy, Clone)]
15430pub union MLKEM768_private_key__bindgen_ty_1 {
15431    pub bytes: [u8; 7776usize],
15432    pub alignment: u16,
15433}
15434unsafe extern "C" {
15435    pub fn MLKEM768_generate_key(
15436        out_encoded_public_key: *mut u8,
15437        optional_out_seed: *mut u8,
15438        out_private_key: *mut MLKEM768_private_key,
15439    );
15440}
15441unsafe extern "C" {
15442    pub fn MLKEM768_private_key_from_seed(
15443        out_private_key: *mut MLKEM768_private_key,
15444        seed: *const u8,
15445        seed_len: usize,
15446    ) -> ::core::ffi::c_int;
15447}
15448unsafe extern "C" {
15449    pub fn MLKEM768_public_from_private(
15450        out_public_key: *mut MLKEM768_public_key,
15451        private_key: *const MLKEM768_private_key,
15452    );
15453}
15454unsafe extern "C" {
15455    pub fn MLKEM768_encap(
15456        out_ciphertext: *mut u8,
15457        out_shared_secret: *mut u8,
15458        public_key: *const MLKEM768_public_key,
15459    );
15460}
15461unsafe extern "C" {
15462    pub fn MLKEM768_decap(
15463        out_shared_secret: *mut u8,
15464        ciphertext: *const u8,
15465        ciphertext_len: usize,
15466        private_key: *const MLKEM768_private_key,
15467    ) -> ::core::ffi::c_int;
15468}
15469unsafe extern "C" {
15470    pub fn MLKEM768_marshal_public_key(
15471        out: *mut CBB,
15472        public_key: *const MLKEM768_public_key,
15473    ) -> ::core::ffi::c_int;
15474}
15475unsafe extern "C" {
15476    pub fn MLKEM768_parse_public_key(
15477        out_public_key: *mut MLKEM768_public_key,
15478        in_: *mut CBS,
15479    ) -> ::core::ffi::c_int;
15480}
15481#[repr(C)]
15482#[derive(Copy, Clone)]
15483pub struct MLKEM1024_public_key {
15484    pub opaque: MLKEM1024_public_key__bindgen_ty_1,
15485}
15486#[repr(C)]
15487#[derive(Copy, Clone)]
15488pub union MLKEM1024_public_key__bindgen_ty_1 {
15489    pub bytes: [u8; 10304usize],
15490    pub alignment: u16,
15491}
15492#[repr(C)]
15493#[derive(Copy, Clone)]
15494pub struct MLKEM1024_private_key {
15495    pub opaque: MLKEM1024_private_key__bindgen_ty_1,
15496}
15497#[repr(C)]
15498#[derive(Copy, Clone)]
15499pub union MLKEM1024_private_key__bindgen_ty_1 {
15500    pub bytes: [u8; 12384usize],
15501    pub alignment: u16,
15502}
15503unsafe extern "C" {
15504    pub fn MLKEM1024_generate_key(
15505        out_encoded_public_key: *mut u8,
15506        optional_out_seed: *mut u8,
15507        out_private_key: *mut MLKEM1024_private_key,
15508    );
15509}
15510unsafe extern "C" {
15511    pub fn MLKEM1024_private_key_from_seed(
15512        out_private_key: *mut MLKEM1024_private_key,
15513        seed: *const u8,
15514        seed_len: usize,
15515    ) -> ::core::ffi::c_int;
15516}
15517unsafe extern "C" {
15518    pub fn MLKEM1024_public_from_private(
15519        out_public_key: *mut MLKEM1024_public_key,
15520        private_key: *const MLKEM1024_private_key,
15521    );
15522}
15523unsafe extern "C" {
15524    pub fn MLKEM1024_encap(
15525        out_ciphertext: *mut u8,
15526        out_shared_secret: *mut u8,
15527        public_key: *const MLKEM1024_public_key,
15528    );
15529}
15530unsafe extern "C" {
15531    pub fn MLKEM1024_decap(
15532        out_shared_secret: *mut u8,
15533        ciphertext: *const u8,
15534        ciphertext_len: usize,
15535        private_key: *const MLKEM1024_private_key,
15536    ) -> ::core::ffi::c_int;
15537}
15538unsafe extern "C" {
15539    pub fn MLKEM1024_marshal_public_key(
15540        out: *mut CBB,
15541        public_key: *const MLKEM1024_public_key,
15542    ) -> ::core::ffi::c_int;
15543}
15544unsafe extern "C" {
15545    pub fn MLKEM1024_parse_public_key(
15546        out_public_key: *mut MLKEM1024_public_key,
15547        in_: *mut CBS,
15548    ) -> ::core::ffi::c_int;
15549}
15550unsafe extern "C" {
15551    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15552}
15553unsafe extern "C" {
15554    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15555}
15556unsafe extern "C" {
15557    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15558}
15559unsafe extern "C" {
15560    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15561}
15562unsafe extern "C" {
15563    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15564}
15565unsafe extern "C" {
15566    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::core::ffi::c_int;
15567}
15568unsafe extern "C" {
15569    pub fn OBJ_sn2nid(short_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15570}
15571unsafe extern "C" {
15572    pub fn OBJ_ln2nid(long_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15573}
15574unsafe extern "C" {
15575    pub fn OBJ_txt2nid(s: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15576}
15577unsafe extern "C" {
15578    pub fn OBJ_nid2obj(nid: ::core::ffi::c_int) -> *mut ASN1_OBJECT;
15579}
15580unsafe extern "C" {
15581    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15582}
15583unsafe extern "C" {
15584    pub fn OBJ_nid2sn(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15585}
15586unsafe extern "C" {
15587    pub fn OBJ_nid2ln(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15588}
15589unsafe extern "C" {
15590    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
15591}
15592unsafe extern "C" {
15593    pub fn OBJ_txt2obj(
15594        s: *const ::core::ffi::c_char,
15595        dont_search_names: ::core::ffi::c_int,
15596    ) -> *mut ASN1_OBJECT;
15597}
15598unsafe extern "C" {
15599    pub fn OBJ_obj2txt(
15600        out: *mut ::core::ffi::c_char,
15601        out_len: ::core::ffi::c_int,
15602        obj: *const ASN1_OBJECT,
15603        always_return_oid: ::core::ffi::c_int,
15604    ) -> ::core::ffi::c_int;
15605}
15606unsafe extern "C" {
15607    pub fn OBJ_create(
15608        oid: *const ::core::ffi::c_char,
15609        short_name: *const ::core::ffi::c_char,
15610        long_name: *const ::core::ffi::c_char,
15611    ) -> ::core::ffi::c_int;
15612}
15613unsafe extern "C" {
15614    pub fn OBJ_find_sigid_algs(
15615        sign_nid: ::core::ffi::c_int,
15616        out_digest_nid: *mut ::core::ffi::c_int,
15617        out_pkey_nid: *mut ::core::ffi::c_int,
15618    ) -> ::core::ffi::c_int;
15619}
15620unsafe extern "C" {
15621    pub fn OBJ_find_sigid_by_algs(
15622        out_sign_nid: *mut ::core::ffi::c_int,
15623        digest_nid: ::core::ffi::c_int,
15624        pkey_nid: ::core::ffi::c_int,
15625    ) -> ::core::ffi::c_int;
15626}
15627#[repr(C)]
15628#[derive(Debug, Copy, Clone)]
15629pub struct obj_name_st {
15630    pub type_: ::core::ffi::c_int,
15631    pub alias: ::core::ffi::c_int,
15632    pub name: *const ::core::ffi::c_char,
15633    pub data: *const ::core::ffi::c_char,
15634}
15635pub type OBJ_NAME = obj_name_st;
15636unsafe extern "C" {
15637    pub fn OBJ_NAME_do_all_sorted(
15638        type_: ::core::ffi::c_int,
15639        callback: ::core::option::Option<
15640            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15641        >,
15642        arg: *mut ::core::ffi::c_void,
15643    );
15644}
15645unsafe extern "C" {
15646    pub fn OBJ_NAME_do_all(
15647        type_: ::core::ffi::c_int,
15648        callback: ::core::option::Option<
15649            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15650        >,
15651        arg: *mut ::core::ffi::c_void,
15652    );
15653}
15654unsafe extern "C" {
15655    pub fn OBJ_cleanup();
15656}
15657#[repr(C)]
15658#[derive(Debug)]
15659pub struct stack_st_CRYPTO_BUFFER {
15660    _unused: [u8; 0],
15661}
15662#[repr(C)]
15663#[derive(Debug)]
15664pub struct stack_st_X509 {
15665    _unused: [u8; 0],
15666}
15667#[repr(C)]
15668#[derive(Debug)]
15669pub struct stack_st_X509_CRL {
15670    _unused: [u8; 0],
15671}
15672unsafe extern "C" {
15673    pub fn PKCS7_get_raw_certificates(
15674        out_certs: *mut stack_st_CRYPTO_BUFFER,
15675        cbs: *mut CBS,
15676        pool: *mut CRYPTO_BUFFER_POOL,
15677    ) -> ::core::ffi::c_int;
15678}
15679unsafe extern "C" {
15680    pub fn PKCS7_get_certificates(
15681        out_certs: *mut stack_st_X509,
15682        cbs: *mut CBS,
15683    ) -> ::core::ffi::c_int;
15684}
15685unsafe extern "C" {
15686    pub fn PKCS7_bundle_raw_certificates(
15687        out: *mut CBB,
15688        certs: *const stack_st_CRYPTO_BUFFER,
15689    ) -> ::core::ffi::c_int;
15690}
15691unsafe extern "C" {
15692    pub fn PKCS7_bundle_certificates(
15693        out: *mut CBB,
15694        certs: *const stack_st_X509,
15695    ) -> ::core::ffi::c_int;
15696}
15697unsafe extern "C" {
15698    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS) -> ::core::ffi::c_int;
15699}
15700unsafe extern "C" {
15701    pub fn PKCS7_bundle_CRLs(out: *mut CBB, crls: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
15702}
15703unsafe extern "C" {
15704    pub fn PKCS7_get_PEM_certificates(
15705        out_certs: *mut stack_st_X509,
15706        pem_bio: *mut BIO,
15707    ) -> ::core::ffi::c_int;
15708}
15709unsafe extern "C" {
15710    pub fn PKCS7_get_PEM_CRLs(
15711        out_crls: *mut stack_st_X509_CRL,
15712        pem_bio: *mut BIO,
15713    ) -> ::core::ffi::c_int;
15714}
15715#[repr(C)]
15716#[derive(Debug, Copy, Clone)]
15717pub struct PKCS7_SIGNED {
15718    pub cert: *mut stack_st_X509,
15719    pub crl: *mut stack_st_X509_CRL,
15720}
15721#[repr(C)]
15722#[derive(Debug, Copy, Clone)]
15723pub struct PKCS7_SIGN_ENVELOPE {
15724    pub cert: *mut stack_st_X509,
15725    pub crl: *mut stack_st_X509_CRL,
15726}
15727pub type PKCS7_ENVELOPE = ::core::ffi::c_void;
15728pub type PKCS7_DIGEST = ::core::ffi::c_void;
15729pub type PKCS7_ENCRYPT = ::core::ffi::c_void;
15730pub type PKCS7_SIGNER_INFO = ::core::ffi::c_void;
15731#[repr(C)]
15732#[derive(Copy, Clone)]
15733pub struct PKCS7 {
15734    pub ber_bytes: *mut u8,
15735    pub ber_len: usize,
15736    pub type_: *mut ASN1_OBJECT,
15737    pub d: PKCS7__bindgen_ty_1,
15738}
15739#[repr(C)]
15740#[derive(Copy, Clone)]
15741pub union PKCS7__bindgen_ty_1 {
15742    pub ptr: *mut ::core::ffi::c_char,
15743    pub data: *mut ASN1_OCTET_STRING,
15744    pub sign: *mut PKCS7_SIGNED,
15745    pub enveloped: *mut PKCS7_ENVELOPE,
15746    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
15747    pub digest: *mut PKCS7_DIGEST,
15748    pub encrypted: *mut PKCS7_ENCRYPT,
15749    pub other: *mut ASN1_TYPE,
15750}
15751unsafe extern "C" {
15752    pub fn d2i_PKCS7(out: *mut *mut PKCS7, inp: *mut *const u8, len: usize) -> *mut PKCS7;
15753}
15754unsafe extern "C" {
15755    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
15756}
15757unsafe extern "C" {
15758    pub fn i2d_PKCS7(p7: *const PKCS7, out: *mut *mut u8) -> ::core::ffi::c_int;
15759}
15760unsafe extern "C" {
15761    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::core::ffi::c_int;
15762}
15763unsafe extern "C" {
15764    pub fn PKCS7_free(p7: *mut PKCS7);
15765}
15766unsafe extern "C" {
15767    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::core::ffi::c_int;
15768}
15769unsafe extern "C" {
15770    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::core::ffi::c_int;
15771}
15772unsafe extern "C" {
15773    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::core::ffi::c_int;
15774}
15775unsafe extern "C" {
15776    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15777}
15778unsafe extern "C" {
15779    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::core::ffi::c_int;
15780}
15781unsafe extern "C" {
15782    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15783}
15784unsafe extern "C" {
15785    pub fn PKCS7_sign(
15786        sign_cert: *mut X509,
15787        pkey: *mut EVP_PKEY,
15788        certs: *mut stack_st_X509,
15789        data: *mut BIO,
15790        flags: ::core::ffi::c_int,
15791    ) -> *mut PKCS7;
15792}
15793pub type sk_CRYPTO_BUFFER_free_func =
15794    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
15795pub type sk_CRYPTO_BUFFER_copy_func =
15796    ::core::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
15797pub type sk_CRYPTO_BUFFER_cmp_func = ::core::option::Option<
15798    unsafe extern "C" fn(
15799        arg1: *const *const CRYPTO_BUFFER,
15800        arg2: *const *const CRYPTO_BUFFER,
15801    ) -> ::core::ffi::c_int,
15802>;
15803pub type sk_CRYPTO_BUFFER_delete_if_func = ::core::option::Option<
15804    unsafe extern "C" fn(
15805        arg1: *mut CRYPTO_BUFFER,
15806        arg2: *mut ::core::ffi::c_void,
15807    ) -> ::core::ffi::c_int,
15808>;
15809unsafe extern "C" {
15810    #[link_name = "sk_CRYPTO_BUFFER_call_free_func__extern"]
15811    pub fn sk_CRYPTO_BUFFER_call_free_func(
15812        free_func: OPENSSL_sk_free_func,
15813        ptr: *mut ::core::ffi::c_void,
15814    );
15815}
15816unsafe extern "C" {
15817    #[link_name = "sk_CRYPTO_BUFFER_call_copy_func__extern"]
15818    pub fn sk_CRYPTO_BUFFER_call_copy_func(
15819        copy_func: OPENSSL_sk_copy_func,
15820        ptr: *const ::core::ffi::c_void,
15821    ) -> *mut ::core::ffi::c_void;
15822}
15823unsafe extern "C" {
15824    #[link_name = "sk_CRYPTO_BUFFER_call_cmp_func__extern"]
15825    pub fn sk_CRYPTO_BUFFER_call_cmp_func(
15826        cmp_func: OPENSSL_sk_cmp_func,
15827        a: *const ::core::ffi::c_void,
15828        b: *const ::core::ffi::c_void,
15829    ) -> ::core::ffi::c_int;
15830}
15831unsafe extern "C" {
15832    #[link_name = "sk_CRYPTO_BUFFER_call_delete_if_func__extern"]
15833    pub fn sk_CRYPTO_BUFFER_call_delete_if_func(
15834        func: OPENSSL_sk_delete_if_func,
15835        obj: *mut ::core::ffi::c_void,
15836        data: *mut ::core::ffi::c_void,
15837    ) -> ::core::ffi::c_int;
15838}
15839unsafe extern "C" {
15840    #[link_name = "sk_CRYPTO_BUFFER_new__extern"]
15841    pub fn sk_CRYPTO_BUFFER_new(comp: sk_CRYPTO_BUFFER_cmp_func) -> *mut stack_st_CRYPTO_BUFFER;
15842}
15843unsafe extern "C" {
15844    #[link_name = "sk_CRYPTO_BUFFER_new_null__extern"]
15845    pub fn sk_CRYPTO_BUFFER_new_null() -> *mut stack_st_CRYPTO_BUFFER;
15846}
15847unsafe extern "C" {
15848    #[link_name = "sk_CRYPTO_BUFFER_num__extern"]
15849    pub fn sk_CRYPTO_BUFFER_num(sk: *const stack_st_CRYPTO_BUFFER) -> usize;
15850}
15851unsafe extern "C" {
15852    #[link_name = "sk_CRYPTO_BUFFER_zero__extern"]
15853    pub fn sk_CRYPTO_BUFFER_zero(sk: *mut stack_st_CRYPTO_BUFFER);
15854}
15855unsafe extern "C" {
15856    #[link_name = "sk_CRYPTO_BUFFER_value__extern"]
15857    pub fn sk_CRYPTO_BUFFER_value(
15858        sk: *const stack_st_CRYPTO_BUFFER,
15859        i: usize,
15860    ) -> *mut CRYPTO_BUFFER;
15861}
15862unsafe extern "C" {
15863    #[link_name = "sk_CRYPTO_BUFFER_last__extern"]
15864    pub fn sk_CRYPTO_BUFFER_last(sk: *const stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15865}
15866unsafe extern "C" {
15867    #[link_name = "sk_CRYPTO_BUFFER_set__extern"]
15868    pub fn sk_CRYPTO_BUFFER_set(
15869        sk: *mut stack_st_CRYPTO_BUFFER,
15870        i: usize,
15871        p: *mut CRYPTO_BUFFER,
15872    ) -> *mut CRYPTO_BUFFER;
15873}
15874unsafe extern "C" {
15875    #[link_name = "sk_CRYPTO_BUFFER_free__extern"]
15876    pub fn sk_CRYPTO_BUFFER_free(sk: *mut stack_st_CRYPTO_BUFFER);
15877}
15878unsafe extern "C" {
15879    #[link_name = "sk_CRYPTO_BUFFER_pop_free__extern"]
15880    pub fn sk_CRYPTO_BUFFER_pop_free(
15881        sk: *mut stack_st_CRYPTO_BUFFER,
15882        free_func: sk_CRYPTO_BUFFER_free_func,
15883    );
15884}
15885unsafe extern "C" {
15886    #[link_name = "sk_CRYPTO_BUFFER_insert__extern"]
15887    pub fn sk_CRYPTO_BUFFER_insert(
15888        sk: *mut stack_st_CRYPTO_BUFFER,
15889        p: *mut CRYPTO_BUFFER,
15890        where_: usize,
15891    ) -> usize;
15892}
15893unsafe extern "C" {
15894    #[link_name = "sk_CRYPTO_BUFFER_delete__extern"]
15895    pub fn sk_CRYPTO_BUFFER_delete(
15896        sk: *mut stack_st_CRYPTO_BUFFER,
15897        where_: usize,
15898    ) -> *mut CRYPTO_BUFFER;
15899}
15900unsafe extern "C" {
15901    #[link_name = "sk_CRYPTO_BUFFER_delete_ptr__extern"]
15902    pub fn sk_CRYPTO_BUFFER_delete_ptr(
15903        sk: *mut stack_st_CRYPTO_BUFFER,
15904        p: *const CRYPTO_BUFFER,
15905    ) -> *mut CRYPTO_BUFFER;
15906}
15907unsafe extern "C" {
15908    #[link_name = "sk_CRYPTO_BUFFER_delete_if__extern"]
15909    pub fn sk_CRYPTO_BUFFER_delete_if(
15910        sk: *mut stack_st_CRYPTO_BUFFER,
15911        func: sk_CRYPTO_BUFFER_delete_if_func,
15912        data: *mut ::core::ffi::c_void,
15913    );
15914}
15915unsafe extern "C" {
15916    #[link_name = "sk_CRYPTO_BUFFER_find__extern"]
15917    pub fn sk_CRYPTO_BUFFER_find(
15918        sk: *const stack_st_CRYPTO_BUFFER,
15919        out_index: *mut usize,
15920        p: *const CRYPTO_BUFFER,
15921    ) -> ::core::ffi::c_int;
15922}
15923unsafe extern "C" {
15924    #[link_name = "sk_CRYPTO_BUFFER_shift__extern"]
15925    pub fn sk_CRYPTO_BUFFER_shift(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15926}
15927unsafe extern "C" {
15928    #[link_name = "sk_CRYPTO_BUFFER_push__extern"]
15929    pub fn sk_CRYPTO_BUFFER_push(sk: *mut stack_st_CRYPTO_BUFFER, p: *mut CRYPTO_BUFFER) -> usize;
15930}
15931unsafe extern "C" {
15932    #[link_name = "sk_CRYPTO_BUFFER_pop__extern"]
15933    pub fn sk_CRYPTO_BUFFER_pop(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15934}
15935unsafe extern "C" {
15936    #[link_name = "sk_CRYPTO_BUFFER_dup__extern"]
15937    pub fn sk_CRYPTO_BUFFER_dup(sk: *const stack_st_CRYPTO_BUFFER) -> *mut stack_st_CRYPTO_BUFFER;
15938}
15939unsafe extern "C" {
15940    #[link_name = "sk_CRYPTO_BUFFER_sort__extern"]
15941    pub fn sk_CRYPTO_BUFFER_sort(sk: *mut stack_st_CRYPTO_BUFFER);
15942}
15943unsafe extern "C" {
15944    #[link_name = "sk_CRYPTO_BUFFER_sort_and_dedup__extern"]
15945    pub fn sk_CRYPTO_BUFFER_sort_and_dedup(
15946        sk: *mut stack_st_CRYPTO_BUFFER,
15947        free_func: sk_CRYPTO_BUFFER_free_func,
15948    );
15949}
15950unsafe extern "C" {
15951    #[link_name = "sk_CRYPTO_BUFFER_is_sorted__extern"]
15952    pub fn sk_CRYPTO_BUFFER_is_sorted(sk: *const stack_st_CRYPTO_BUFFER) -> ::core::ffi::c_int;
15953}
15954unsafe extern "C" {
15955    #[link_name = "sk_CRYPTO_BUFFER_set_cmp_func__extern"]
15956    pub fn sk_CRYPTO_BUFFER_set_cmp_func(
15957        sk: *mut stack_st_CRYPTO_BUFFER,
15958        comp: sk_CRYPTO_BUFFER_cmp_func,
15959    ) -> sk_CRYPTO_BUFFER_cmp_func;
15960}
15961unsafe extern "C" {
15962    #[link_name = "sk_CRYPTO_BUFFER_deep_copy__extern"]
15963    pub fn sk_CRYPTO_BUFFER_deep_copy(
15964        sk: *const stack_st_CRYPTO_BUFFER,
15965        copy_func: sk_CRYPTO_BUFFER_copy_func,
15966        free_func: sk_CRYPTO_BUFFER_free_func,
15967    ) -> *mut stack_st_CRYPTO_BUFFER;
15968}
15969unsafe extern "C" {
15970    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
15971}
15972unsafe extern "C" {
15973    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
15974}
15975unsafe extern "C" {
15976    pub fn CRYPTO_BUFFER_POOL_up_ref(pool: *mut CRYPTO_BUFFER_POOL) -> ::core::ffi::c_int;
15977}
15978unsafe extern "C" {
15979    pub fn CRYPTO_BUFFER_new(
15980        data: *const u8,
15981        len: usize,
15982        pool: *mut CRYPTO_BUFFER_POOL,
15983    ) -> *mut CRYPTO_BUFFER;
15984}
15985unsafe extern "C" {
15986    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
15987}
15988unsafe extern "C" {
15989    pub fn CRYPTO_BUFFER_new_from_CBS(
15990        cbs: *const CBS,
15991        pool: *mut CRYPTO_BUFFER_POOL,
15992    ) -> *mut CRYPTO_BUFFER;
15993}
15994unsafe extern "C" {
15995    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
15996        data: *const u8,
15997        len: usize,
15998        pool: *mut CRYPTO_BUFFER_POOL,
15999    ) -> *mut CRYPTO_BUFFER;
16000}
16001unsafe extern "C" {
16002    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
16003}
16004unsafe extern "C" {
16005    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::core::ffi::c_int;
16006}
16007unsafe extern "C" {
16008    pub fn CRYPTO_BUFFER_dup_ref(buf: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
16009}
16010unsafe extern "C" {
16011    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
16012}
16013unsafe extern "C" {
16014    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
16015}
16016unsafe extern "C" {
16017    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
16018}
16019unsafe extern "C" {
16020    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
16021}
16022unsafe extern "C" {
16023    pub fn RSA_new_private_key(
16024        n: *const BIGNUM,
16025        e: *const BIGNUM,
16026        d: *const BIGNUM,
16027        p: *const BIGNUM,
16028        q: *const BIGNUM,
16029        dmp1: *const BIGNUM,
16030        dmq1: *const BIGNUM,
16031        iqmp: *const BIGNUM,
16032    ) -> *mut RSA;
16033}
16034unsafe extern "C" {
16035    pub fn RSA_new() -> *mut RSA;
16036}
16037unsafe extern "C" {
16038    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
16039}
16040unsafe extern "C" {
16041    pub fn RSA_free(rsa: *mut RSA);
16042}
16043unsafe extern "C" {
16044    pub fn RSA_up_ref(rsa: *mut RSA) -> ::core::ffi::c_int;
16045}
16046unsafe extern "C" {
16047    pub fn RSA_bits(rsa: *const RSA) -> ::core::ffi::c_uint;
16048}
16049unsafe extern "C" {
16050    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
16051}
16052unsafe extern "C" {
16053    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
16054}
16055unsafe extern "C" {
16056    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
16057}
16058unsafe extern "C" {
16059    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
16060}
16061unsafe extern "C" {
16062    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
16063}
16064unsafe extern "C" {
16065    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
16066}
16067unsafe extern "C" {
16068    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
16069}
16070unsafe extern "C" {
16071    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
16072}
16073unsafe extern "C" {
16074    pub fn RSA_get0_key(
16075        rsa: *const RSA,
16076        out_n: *mut *const BIGNUM,
16077        out_e: *mut *const BIGNUM,
16078        out_d: *mut *const BIGNUM,
16079    );
16080}
16081unsafe extern "C" {
16082    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
16083}
16084unsafe extern "C" {
16085    pub fn RSA_get0_crt_params(
16086        rsa: *const RSA,
16087        out_dmp1: *mut *const BIGNUM,
16088        out_dmq1: *mut *const BIGNUM,
16089        out_iqmp: *mut *const BIGNUM,
16090    );
16091}
16092unsafe extern "C" {
16093    pub fn RSA_set0_key(
16094        rsa: *mut RSA,
16095        n: *mut BIGNUM,
16096        e: *mut BIGNUM,
16097        d: *mut BIGNUM,
16098    ) -> ::core::ffi::c_int;
16099}
16100unsafe extern "C" {
16101    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM) -> ::core::ffi::c_int;
16102}
16103unsafe extern "C" {
16104    pub fn RSA_set0_crt_params(
16105        rsa: *mut RSA,
16106        dmp1: *mut BIGNUM,
16107        dmq1: *mut BIGNUM,
16108        iqmp: *mut BIGNUM,
16109    ) -> ::core::ffi::c_int;
16110}
16111unsafe extern "C" {
16112    pub fn RSA_generate_key_ex(
16113        rsa: *mut RSA,
16114        bits: ::core::ffi::c_int,
16115        e: *const BIGNUM,
16116        cb: *mut BN_GENCB,
16117    ) -> ::core::ffi::c_int;
16118}
16119unsafe extern "C" {
16120    pub fn RSA_generate_key_fips(
16121        rsa: *mut RSA,
16122        bits: ::core::ffi::c_int,
16123        cb: *mut BN_GENCB,
16124    ) -> ::core::ffi::c_int;
16125}
16126unsafe extern "C" {
16127    pub fn RSA_encrypt(
16128        rsa: *mut RSA,
16129        out_len: *mut usize,
16130        out: *mut u8,
16131        max_out: usize,
16132        in_: *const u8,
16133        in_len: usize,
16134        padding: ::core::ffi::c_int,
16135    ) -> ::core::ffi::c_int;
16136}
16137unsafe extern "C" {
16138    pub fn RSA_decrypt(
16139        rsa: *mut RSA,
16140        out_len: *mut usize,
16141        out: *mut u8,
16142        max_out: usize,
16143        in_: *const u8,
16144        in_len: usize,
16145        padding: ::core::ffi::c_int,
16146    ) -> ::core::ffi::c_int;
16147}
16148unsafe extern "C" {
16149    pub fn RSA_public_encrypt(
16150        flen: usize,
16151        from: *const u8,
16152        to: *mut u8,
16153        rsa: *mut RSA,
16154        padding: ::core::ffi::c_int,
16155    ) -> ::core::ffi::c_int;
16156}
16157unsafe extern "C" {
16158    pub fn RSA_private_decrypt(
16159        flen: usize,
16160        from: *const u8,
16161        to: *mut u8,
16162        rsa: *mut RSA,
16163        padding: ::core::ffi::c_int,
16164    ) -> ::core::ffi::c_int;
16165}
16166unsafe extern "C" {
16167    pub fn RSA_sign(
16168        hash_nid: ::core::ffi::c_int,
16169        digest: *const u8,
16170        digest_len: usize,
16171        out: *mut u8,
16172        out_len: *mut ::core::ffi::c_uint,
16173        rsa: *mut RSA,
16174    ) -> ::core::ffi::c_int;
16175}
16176unsafe extern "C" {
16177    pub fn RSA_sign_pss_mgf1(
16178        rsa: *mut RSA,
16179        out_len: *mut usize,
16180        out: *mut u8,
16181        max_out: usize,
16182        digest: *const u8,
16183        digest_len: usize,
16184        md: *const EVP_MD,
16185        mgf1_md: *const EVP_MD,
16186        salt_len: ::core::ffi::c_int,
16187    ) -> ::core::ffi::c_int;
16188}
16189unsafe extern "C" {
16190    pub fn RSA_sign_raw(
16191        rsa: *mut RSA,
16192        out_len: *mut usize,
16193        out: *mut u8,
16194        max_out: usize,
16195        in_: *const u8,
16196        in_len: usize,
16197        padding: ::core::ffi::c_int,
16198    ) -> ::core::ffi::c_int;
16199}
16200unsafe extern "C" {
16201    pub fn RSA_verify(
16202        hash_nid: ::core::ffi::c_int,
16203        digest: *const u8,
16204        digest_len: usize,
16205        sig: *const u8,
16206        sig_len: usize,
16207        rsa: *mut RSA,
16208    ) -> ::core::ffi::c_int;
16209}
16210unsafe extern "C" {
16211    pub fn RSA_verify_pss_mgf1(
16212        rsa: *mut RSA,
16213        digest: *const u8,
16214        digest_len: usize,
16215        md: *const EVP_MD,
16216        mgf1_md: *const EVP_MD,
16217        salt_len: ::core::ffi::c_int,
16218        sig: *const u8,
16219        sig_len: usize,
16220    ) -> ::core::ffi::c_int;
16221}
16222unsafe extern "C" {
16223    pub fn RSA_verify_raw(
16224        rsa: *mut RSA,
16225        out_len: *mut usize,
16226        out: *mut u8,
16227        max_out: usize,
16228        in_: *const u8,
16229        in_len: usize,
16230        padding: ::core::ffi::c_int,
16231    ) -> ::core::ffi::c_int;
16232}
16233unsafe extern "C" {
16234    pub fn RSA_private_encrypt(
16235        flen: usize,
16236        from: *const u8,
16237        to: *mut u8,
16238        rsa: *mut RSA,
16239        padding: ::core::ffi::c_int,
16240    ) -> ::core::ffi::c_int;
16241}
16242unsafe extern "C" {
16243    pub fn RSA_public_decrypt(
16244        flen: usize,
16245        from: *const u8,
16246        to: *mut u8,
16247        rsa: *mut RSA,
16248        padding: ::core::ffi::c_int,
16249    ) -> ::core::ffi::c_int;
16250}
16251unsafe extern "C" {
16252    pub fn RSA_size(rsa: *const RSA) -> ::core::ffi::c_uint;
16253}
16254unsafe extern "C" {
16255    pub fn RSA_is_opaque(rsa: *const RSA) -> ::core::ffi::c_int;
16256}
16257unsafe extern "C" {
16258    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
16259}
16260unsafe extern "C" {
16261    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
16262}
16263unsafe extern "C" {
16264    pub fn RSA_check_key(rsa: *const RSA) -> ::core::ffi::c_int;
16265}
16266unsafe extern "C" {
16267    pub fn RSA_check_fips(key: *mut RSA) -> ::core::ffi::c_int;
16268}
16269unsafe extern "C" {
16270    pub fn RSA_verify_PKCS1_PSS_mgf1(
16271        rsa: *const RSA,
16272        mHash: *const u8,
16273        Hash: *const EVP_MD,
16274        mgf1Hash: *const EVP_MD,
16275        EM: *const u8,
16276        sLen: ::core::ffi::c_int,
16277    ) -> ::core::ffi::c_int;
16278}
16279unsafe extern "C" {
16280    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
16281        rsa: *const RSA,
16282        EM: *mut u8,
16283        mHash: *const u8,
16284        Hash: *const EVP_MD,
16285        mgf1Hash: *const EVP_MD,
16286        sLen: ::core::ffi::c_int,
16287    ) -> ::core::ffi::c_int;
16288}
16289unsafe extern "C" {
16290    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
16291        to: *mut u8,
16292        to_len: usize,
16293        from: *const u8,
16294        from_len: usize,
16295        param: *const u8,
16296        param_len: usize,
16297        md: *const EVP_MD,
16298        mgf1md: *const EVP_MD,
16299    ) -> ::core::ffi::c_int;
16300}
16301unsafe extern "C" {
16302    pub fn RSA_add_pkcs1_prefix(
16303        out_msg: *mut *mut u8,
16304        out_msg_len: *mut usize,
16305        is_alloced: *mut ::core::ffi::c_int,
16306        hash_nid: ::core::ffi::c_int,
16307        digest: *const u8,
16308        digest_len: usize,
16309    ) -> ::core::ffi::c_int;
16310}
16311unsafe extern "C" {
16312    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
16313}
16314unsafe extern "C" {
16315    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16316}
16317unsafe extern "C" {
16318    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16319}
16320unsafe extern "C" {
16321    pub fn RSA_public_key_to_bytes(
16322        out_bytes: *mut *mut u8,
16323        out_len: *mut usize,
16324        rsa: *const RSA,
16325    ) -> ::core::ffi::c_int;
16326}
16327unsafe extern "C" {
16328    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
16329}
16330unsafe extern "C" {
16331    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16332}
16333unsafe extern "C" {
16334    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16335}
16336unsafe extern "C" {
16337    pub fn RSA_private_key_to_bytes(
16338        out_bytes: *mut *mut u8,
16339        out_len: *mut usize,
16340        rsa: *const RSA,
16341    ) -> ::core::ffi::c_int;
16342}
16343unsafe extern "C" {
16344    pub fn RSA_new_private_key_no_crt(
16345        n: *const BIGNUM,
16346        e: *const BIGNUM,
16347        d: *const BIGNUM,
16348    ) -> *mut RSA;
16349}
16350unsafe extern "C" {
16351    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
16352}
16353unsafe extern "C" {
16354    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
16355}
16356unsafe extern "C" {
16357    pub fn RSA_new_private_key_large_e(
16358        n: *const BIGNUM,
16359        e: *const BIGNUM,
16360        d: *const BIGNUM,
16361        p: *const BIGNUM,
16362        q: *const BIGNUM,
16363        dmp1: *const BIGNUM,
16364        dmq1: *const BIGNUM,
16365        iqmp: *const BIGNUM,
16366    ) -> *mut RSA;
16367}
16368unsafe extern "C" {
16369    pub fn RSA_get_ex_new_index(
16370        argl: ::core::ffi::c_long,
16371        argp: *mut ::core::ffi::c_void,
16372        unused: *mut CRYPTO_EX_unused,
16373        dup_unused: CRYPTO_EX_dup,
16374        free_func: CRYPTO_EX_free,
16375    ) -> ::core::ffi::c_int;
16376}
16377unsafe extern "C" {
16378    pub fn RSA_set_ex_data(
16379        rsa: *mut RSA,
16380        idx: ::core::ffi::c_int,
16381        arg: *mut ::core::ffi::c_void,
16382    ) -> ::core::ffi::c_int;
16383}
16384unsafe extern "C" {
16385    pub fn RSA_get_ex_data(rsa: *const RSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
16386}
16387unsafe extern "C" {
16388    pub fn RSA_flags(rsa: *const RSA) -> ::core::ffi::c_int;
16389}
16390unsafe extern "C" {
16391    pub fn RSA_test_flags(rsa: *const RSA, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
16392}
16393unsafe extern "C" {
16394    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
16395}
16396unsafe extern "C" {
16397    pub fn RSA_blinding_off(rsa: *mut RSA);
16398}
16399unsafe extern "C" {
16400    pub fn RSA_generate_key(
16401        bits: ::core::ffi::c_int,
16402        e: u64,
16403        callback: *mut ::core::ffi::c_void,
16404        cb_arg: *mut ::core::ffi::c_void,
16405    ) -> *mut RSA;
16406}
16407unsafe extern "C" {
16408    pub fn d2i_RSAPublicKey(
16409        out: *mut *mut RSA,
16410        inp: *mut *const u8,
16411        len: ::core::ffi::c_long,
16412    ) -> *mut RSA;
16413}
16414unsafe extern "C" {
16415    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16416}
16417unsafe extern "C" {
16418    pub fn d2i_RSAPrivateKey(
16419        out: *mut *mut RSA,
16420        inp: *mut *const u8,
16421        len: ::core::ffi::c_long,
16422    ) -> *mut RSA;
16423}
16424unsafe extern "C" {
16425    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16426}
16427unsafe extern "C" {
16428    pub fn RSA_padding_add_PKCS1_PSS(
16429        rsa: *const RSA,
16430        EM: *mut u8,
16431        mHash: *const u8,
16432        Hash: *const EVP_MD,
16433        sLen: ::core::ffi::c_int,
16434    ) -> ::core::ffi::c_int;
16435}
16436unsafe extern "C" {
16437    pub fn RSA_verify_PKCS1_PSS(
16438        rsa: *const RSA,
16439        mHash: *const u8,
16440        Hash: *const EVP_MD,
16441        EM: *const u8,
16442        sLen: ::core::ffi::c_int,
16443    ) -> ::core::ffi::c_int;
16444}
16445unsafe extern "C" {
16446    pub fn RSA_padding_add_PKCS1_OAEP(
16447        to: *mut u8,
16448        to_len: usize,
16449        from: *const u8,
16450        from_len: usize,
16451        param: *const u8,
16452        param_len: usize,
16453    ) -> ::core::ffi::c_int;
16454}
16455unsafe extern "C" {
16456    pub fn RSA_print(
16457        bio: *mut BIO,
16458        rsa: *const RSA,
16459        indent: ::core::ffi::c_int,
16460    ) -> ::core::ffi::c_int;
16461}
16462unsafe extern "C" {
16463    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
16464}
16465unsafe extern "C" {
16466    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
16467}
16468#[repr(C)]
16469#[derive(Debug, Copy, Clone)]
16470pub struct rsa_meth_st {
16471    pub common: openssl_method_common_st,
16472    pub app_data: *mut ::core::ffi::c_void,
16473    pub init: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16474    pub finish: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16475    pub sign: ::core::option::Option<
16476        unsafe extern "C" fn(
16477            type_: ::core::ffi::c_int,
16478            m: *const u8,
16479            m_length: ::core::ffi::c_uint,
16480            sigret: *mut u8,
16481            siglen: *mut ::core::ffi::c_uint,
16482            rsa: *const RSA,
16483        ) -> ::core::ffi::c_int,
16484    >,
16485    pub sign_raw: ::core::option::Option<
16486        unsafe extern "C" fn(
16487            rsa: *mut RSA,
16488            out_len: *mut usize,
16489            out: *mut u8,
16490            max_out: usize,
16491            in_: *const u8,
16492            in_len: usize,
16493            padding: ::core::ffi::c_int,
16494        ) -> ::core::ffi::c_int,
16495    >,
16496    pub decrypt: ::core::option::Option<
16497        unsafe extern "C" fn(
16498            rsa: *mut RSA,
16499            out_len: *mut usize,
16500            out: *mut u8,
16501            max_out: usize,
16502            in_: *const u8,
16503            in_len: usize,
16504            padding: ::core::ffi::c_int,
16505        ) -> ::core::ffi::c_int,
16506    >,
16507    pub private_transform: ::core::option::Option<
16508        unsafe extern "C" fn(
16509            rsa: *mut RSA,
16510            out: *mut u8,
16511            in_: *const u8,
16512            len: usize,
16513        ) -> ::core::ffi::c_int,
16514    >,
16515    pub flags: ::core::ffi::c_int,
16516}
16517pub type sk_X509_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
16518pub type sk_X509_copy_func =
16519    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
16520pub type sk_X509_cmp_func = ::core::option::Option<
16521    unsafe extern "C" fn(arg1: *const *const X509, arg2: *const *const X509) -> ::core::ffi::c_int,
16522>;
16523pub type sk_X509_delete_if_func = ::core::option::Option<
16524    unsafe extern "C" fn(arg1: *mut X509, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
16525>;
16526unsafe extern "C" {
16527    #[link_name = "sk_X509_call_free_func__extern"]
16528    pub fn sk_X509_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
16529}
16530unsafe extern "C" {
16531    #[link_name = "sk_X509_call_copy_func__extern"]
16532    pub fn sk_X509_call_copy_func(
16533        copy_func: OPENSSL_sk_copy_func,
16534        ptr: *const ::core::ffi::c_void,
16535    ) -> *mut ::core::ffi::c_void;
16536}
16537unsafe extern "C" {
16538    #[link_name = "sk_X509_call_cmp_func__extern"]
16539    pub fn sk_X509_call_cmp_func(
16540        cmp_func: OPENSSL_sk_cmp_func,
16541        a: *const ::core::ffi::c_void,
16542        b: *const ::core::ffi::c_void,
16543    ) -> ::core::ffi::c_int;
16544}
16545unsafe extern "C" {
16546    #[link_name = "sk_X509_call_delete_if_func__extern"]
16547    pub fn sk_X509_call_delete_if_func(
16548        func: OPENSSL_sk_delete_if_func,
16549        obj: *mut ::core::ffi::c_void,
16550        data: *mut ::core::ffi::c_void,
16551    ) -> ::core::ffi::c_int;
16552}
16553unsafe extern "C" {
16554    #[link_name = "sk_X509_new__extern"]
16555    pub fn sk_X509_new(comp: sk_X509_cmp_func) -> *mut stack_st_X509;
16556}
16557unsafe extern "C" {
16558    #[link_name = "sk_X509_new_null__extern"]
16559    pub fn sk_X509_new_null() -> *mut stack_st_X509;
16560}
16561unsafe extern "C" {
16562    #[link_name = "sk_X509_num__extern"]
16563    pub fn sk_X509_num(sk: *const stack_st_X509) -> usize;
16564}
16565unsafe extern "C" {
16566    #[link_name = "sk_X509_zero__extern"]
16567    pub fn sk_X509_zero(sk: *mut stack_st_X509);
16568}
16569unsafe extern "C" {
16570    #[link_name = "sk_X509_value__extern"]
16571    pub fn sk_X509_value(sk: *const stack_st_X509, i: usize) -> *mut X509;
16572}
16573unsafe extern "C" {
16574    #[link_name = "sk_X509_last__extern"]
16575    pub fn sk_X509_last(sk: *const stack_st_X509) -> *mut X509;
16576}
16577unsafe extern "C" {
16578    #[link_name = "sk_X509_set__extern"]
16579    pub fn sk_X509_set(sk: *mut stack_st_X509, i: usize, p: *mut X509) -> *mut X509;
16580}
16581unsafe extern "C" {
16582    #[link_name = "sk_X509_free__extern"]
16583    pub fn sk_X509_free(sk: *mut stack_st_X509);
16584}
16585unsafe extern "C" {
16586    #[link_name = "sk_X509_pop_free__extern"]
16587    pub fn sk_X509_pop_free(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16588}
16589unsafe extern "C" {
16590    #[link_name = "sk_X509_insert__extern"]
16591    pub fn sk_X509_insert(sk: *mut stack_st_X509, p: *mut X509, where_: usize) -> usize;
16592}
16593unsafe extern "C" {
16594    #[link_name = "sk_X509_delete__extern"]
16595    pub fn sk_X509_delete(sk: *mut stack_st_X509, where_: usize) -> *mut X509;
16596}
16597unsafe extern "C" {
16598    #[link_name = "sk_X509_delete_ptr__extern"]
16599    pub fn sk_X509_delete_ptr(sk: *mut stack_st_X509, p: *const X509) -> *mut X509;
16600}
16601unsafe extern "C" {
16602    #[link_name = "sk_X509_delete_if__extern"]
16603    pub fn sk_X509_delete_if(
16604        sk: *mut stack_st_X509,
16605        func: sk_X509_delete_if_func,
16606        data: *mut ::core::ffi::c_void,
16607    );
16608}
16609unsafe extern "C" {
16610    #[link_name = "sk_X509_find__extern"]
16611    pub fn sk_X509_find(
16612        sk: *const stack_st_X509,
16613        out_index: *mut usize,
16614        p: *const X509,
16615    ) -> ::core::ffi::c_int;
16616}
16617unsafe extern "C" {
16618    #[link_name = "sk_X509_shift__extern"]
16619    pub fn sk_X509_shift(sk: *mut stack_st_X509) -> *mut X509;
16620}
16621unsafe extern "C" {
16622    #[link_name = "sk_X509_push__extern"]
16623    pub fn sk_X509_push(sk: *mut stack_st_X509, p: *mut X509) -> usize;
16624}
16625unsafe extern "C" {
16626    #[link_name = "sk_X509_pop__extern"]
16627    pub fn sk_X509_pop(sk: *mut stack_st_X509) -> *mut X509;
16628}
16629unsafe extern "C" {
16630    #[link_name = "sk_X509_dup__extern"]
16631    pub fn sk_X509_dup(sk: *const stack_st_X509) -> *mut stack_st_X509;
16632}
16633unsafe extern "C" {
16634    #[link_name = "sk_X509_sort__extern"]
16635    pub fn sk_X509_sort(sk: *mut stack_st_X509);
16636}
16637unsafe extern "C" {
16638    #[link_name = "sk_X509_sort_and_dedup__extern"]
16639    pub fn sk_X509_sort_and_dedup(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16640}
16641unsafe extern "C" {
16642    #[link_name = "sk_X509_is_sorted__extern"]
16643    pub fn sk_X509_is_sorted(sk: *const stack_st_X509) -> ::core::ffi::c_int;
16644}
16645unsafe extern "C" {
16646    #[link_name = "sk_X509_set_cmp_func__extern"]
16647    pub fn sk_X509_set_cmp_func(sk: *mut stack_st_X509, comp: sk_X509_cmp_func)
16648        -> sk_X509_cmp_func;
16649}
16650unsafe extern "C" {
16651    #[link_name = "sk_X509_deep_copy__extern"]
16652    pub fn sk_X509_deep_copy(
16653        sk: *const stack_st_X509,
16654        copy_func: sk_X509_copy_func,
16655        free_func: sk_X509_free_func,
16656    ) -> *mut stack_st_X509;
16657}
16658unsafe extern "C" {
16659    pub static X509_it: ASN1_ITEM;
16660}
16661unsafe extern "C" {
16662    pub fn X509_up_ref(x509: *mut X509) -> ::core::ffi::c_int;
16663}
16664unsafe extern "C" {
16665    pub fn X509_dup_ref(x509: *const X509) -> *mut X509;
16666}
16667unsafe extern "C" {
16668    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
16669}
16670unsafe extern "C" {
16671    pub fn X509_dup(x509: *const X509) -> *mut X509;
16672}
16673unsafe extern "C" {
16674    pub fn X509_free(x509: *mut X509);
16675}
16676unsafe extern "C" {
16677    pub fn d2i_X509(
16678        out: *mut *mut X509,
16679        inp: *mut *const u8,
16680        len: ::core::ffi::c_long,
16681    ) -> *mut X509;
16682}
16683unsafe extern "C" {
16684    pub fn X509_parse_with_algorithms(
16685        buf: *mut CRYPTO_BUFFER,
16686        algs: *const *const EVP_PKEY_ALG,
16687        num_algs: usize,
16688    ) -> *mut X509;
16689}
16690unsafe extern "C" {
16691    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
16692}
16693unsafe extern "C" {
16694    pub fn i2d_X509(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16695}
16696unsafe extern "C" {
16697    pub fn X509_get_version(x509: *const X509) -> ::core::ffi::c_long;
16698}
16699unsafe extern "C" {
16700    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
16701}
16702unsafe extern "C" {
16703    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
16704}
16705unsafe extern "C" {
16706    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
16707}
16708unsafe extern "C" {
16709    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
16710}
16711unsafe extern "C" {
16712    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
16713}
16714unsafe extern "C" {
16715    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
16716}
16717unsafe extern "C" {
16718    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16719}
16720unsafe extern "C" {
16721    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16722}
16723unsafe extern "C" {
16724    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
16725}
16726unsafe extern "C" {
16727    pub fn X509_check_private_key(x509: *const X509, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
16728}
16729unsafe extern "C" {
16730    pub fn X509_get0_uids(
16731        x509: *const X509,
16732        out_issuer_uid: *mut *const ASN1_BIT_STRING,
16733        out_subject_uid: *mut *const ASN1_BIT_STRING,
16734    );
16735}
16736unsafe extern "C" {
16737    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
16738}
16739unsafe extern "C" {
16740    pub fn X509_get_pathlen(x509: *mut X509) -> ::core::ffi::c_long;
16741}
16742unsafe extern "C" {
16743    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
16744}
16745unsafe extern "C" {
16746    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
16747}
16748unsafe extern "C" {
16749    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16750}
16751unsafe extern "C" {
16752    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16753}
16754#[repr(C)]
16755#[derive(Debug)]
16756pub struct stack_st_GENERAL_NAME {
16757    _unused: [u8; 0],
16758}
16759pub type sk_GENERAL_NAME_free_func =
16760    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
16761pub type sk_GENERAL_NAME_copy_func =
16762    ::core::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
16763pub type sk_GENERAL_NAME_cmp_func = ::core::option::Option<
16764    unsafe extern "C" fn(
16765        arg1: *const *const GENERAL_NAME,
16766        arg2: *const *const GENERAL_NAME,
16767    ) -> ::core::ffi::c_int,
16768>;
16769pub type sk_GENERAL_NAME_delete_if_func = ::core::option::Option<
16770    unsafe extern "C" fn(
16771        arg1: *mut GENERAL_NAME,
16772        arg2: *mut ::core::ffi::c_void,
16773    ) -> ::core::ffi::c_int,
16774>;
16775unsafe extern "C" {
16776    #[link_name = "sk_GENERAL_NAME_call_free_func__extern"]
16777    pub fn sk_GENERAL_NAME_call_free_func(
16778        free_func: OPENSSL_sk_free_func,
16779        ptr: *mut ::core::ffi::c_void,
16780    );
16781}
16782unsafe extern "C" {
16783    #[link_name = "sk_GENERAL_NAME_call_copy_func__extern"]
16784    pub fn sk_GENERAL_NAME_call_copy_func(
16785        copy_func: OPENSSL_sk_copy_func,
16786        ptr: *const ::core::ffi::c_void,
16787    ) -> *mut ::core::ffi::c_void;
16788}
16789unsafe extern "C" {
16790    #[link_name = "sk_GENERAL_NAME_call_cmp_func__extern"]
16791    pub fn sk_GENERAL_NAME_call_cmp_func(
16792        cmp_func: OPENSSL_sk_cmp_func,
16793        a: *const ::core::ffi::c_void,
16794        b: *const ::core::ffi::c_void,
16795    ) -> ::core::ffi::c_int;
16796}
16797unsafe extern "C" {
16798    #[link_name = "sk_GENERAL_NAME_call_delete_if_func__extern"]
16799    pub fn sk_GENERAL_NAME_call_delete_if_func(
16800        func: OPENSSL_sk_delete_if_func,
16801        obj: *mut ::core::ffi::c_void,
16802        data: *mut ::core::ffi::c_void,
16803    ) -> ::core::ffi::c_int;
16804}
16805unsafe extern "C" {
16806    #[link_name = "sk_GENERAL_NAME_new__extern"]
16807    pub fn sk_GENERAL_NAME_new(comp: sk_GENERAL_NAME_cmp_func) -> *mut stack_st_GENERAL_NAME;
16808}
16809unsafe extern "C" {
16810    #[link_name = "sk_GENERAL_NAME_new_null__extern"]
16811    pub fn sk_GENERAL_NAME_new_null() -> *mut stack_st_GENERAL_NAME;
16812}
16813unsafe extern "C" {
16814    #[link_name = "sk_GENERAL_NAME_num__extern"]
16815    pub fn sk_GENERAL_NAME_num(sk: *const stack_st_GENERAL_NAME) -> usize;
16816}
16817unsafe extern "C" {
16818    #[link_name = "sk_GENERAL_NAME_zero__extern"]
16819    pub fn sk_GENERAL_NAME_zero(sk: *mut stack_st_GENERAL_NAME);
16820}
16821unsafe extern "C" {
16822    #[link_name = "sk_GENERAL_NAME_value__extern"]
16823    pub fn sk_GENERAL_NAME_value(sk: *const stack_st_GENERAL_NAME, i: usize) -> *mut GENERAL_NAME;
16824}
16825unsafe extern "C" {
16826    #[link_name = "sk_GENERAL_NAME_last__extern"]
16827    pub fn sk_GENERAL_NAME_last(sk: *const stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16828}
16829unsafe extern "C" {
16830    #[link_name = "sk_GENERAL_NAME_set__extern"]
16831    pub fn sk_GENERAL_NAME_set(
16832        sk: *mut stack_st_GENERAL_NAME,
16833        i: usize,
16834        p: *mut GENERAL_NAME,
16835    ) -> *mut GENERAL_NAME;
16836}
16837unsafe extern "C" {
16838    #[link_name = "sk_GENERAL_NAME_free__extern"]
16839    pub fn sk_GENERAL_NAME_free(sk: *mut stack_st_GENERAL_NAME);
16840}
16841unsafe extern "C" {
16842    #[link_name = "sk_GENERAL_NAME_pop_free__extern"]
16843    pub fn sk_GENERAL_NAME_pop_free(
16844        sk: *mut stack_st_GENERAL_NAME,
16845        free_func: sk_GENERAL_NAME_free_func,
16846    );
16847}
16848unsafe extern "C" {
16849    #[link_name = "sk_GENERAL_NAME_insert__extern"]
16850    pub fn sk_GENERAL_NAME_insert(
16851        sk: *mut stack_st_GENERAL_NAME,
16852        p: *mut GENERAL_NAME,
16853        where_: usize,
16854    ) -> usize;
16855}
16856unsafe extern "C" {
16857    #[link_name = "sk_GENERAL_NAME_delete__extern"]
16858    pub fn sk_GENERAL_NAME_delete(
16859        sk: *mut stack_st_GENERAL_NAME,
16860        where_: usize,
16861    ) -> *mut GENERAL_NAME;
16862}
16863unsafe extern "C" {
16864    #[link_name = "sk_GENERAL_NAME_delete_ptr__extern"]
16865    pub fn sk_GENERAL_NAME_delete_ptr(
16866        sk: *mut stack_st_GENERAL_NAME,
16867        p: *const GENERAL_NAME,
16868    ) -> *mut GENERAL_NAME;
16869}
16870unsafe extern "C" {
16871    #[link_name = "sk_GENERAL_NAME_delete_if__extern"]
16872    pub fn sk_GENERAL_NAME_delete_if(
16873        sk: *mut stack_st_GENERAL_NAME,
16874        func: sk_GENERAL_NAME_delete_if_func,
16875        data: *mut ::core::ffi::c_void,
16876    );
16877}
16878unsafe extern "C" {
16879    #[link_name = "sk_GENERAL_NAME_find__extern"]
16880    pub fn sk_GENERAL_NAME_find(
16881        sk: *const stack_st_GENERAL_NAME,
16882        out_index: *mut usize,
16883        p: *const GENERAL_NAME,
16884    ) -> ::core::ffi::c_int;
16885}
16886unsafe extern "C" {
16887    #[link_name = "sk_GENERAL_NAME_shift__extern"]
16888    pub fn sk_GENERAL_NAME_shift(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16889}
16890unsafe extern "C" {
16891    #[link_name = "sk_GENERAL_NAME_push__extern"]
16892    pub fn sk_GENERAL_NAME_push(sk: *mut stack_st_GENERAL_NAME, p: *mut GENERAL_NAME) -> usize;
16893}
16894unsafe extern "C" {
16895    #[link_name = "sk_GENERAL_NAME_pop__extern"]
16896    pub fn sk_GENERAL_NAME_pop(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16897}
16898unsafe extern "C" {
16899    #[link_name = "sk_GENERAL_NAME_dup__extern"]
16900    pub fn sk_GENERAL_NAME_dup(sk: *const stack_st_GENERAL_NAME) -> *mut stack_st_GENERAL_NAME;
16901}
16902unsafe extern "C" {
16903    #[link_name = "sk_GENERAL_NAME_sort__extern"]
16904    pub fn sk_GENERAL_NAME_sort(sk: *mut stack_st_GENERAL_NAME);
16905}
16906unsafe extern "C" {
16907    #[link_name = "sk_GENERAL_NAME_sort_and_dedup__extern"]
16908    pub fn sk_GENERAL_NAME_sort_and_dedup(
16909        sk: *mut stack_st_GENERAL_NAME,
16910        free_func: sk_GENERAL_NAME_free_func,
16911    );
16912}
16913unsafe extern "C" {
16914    #[link_name = "sk_GENERAL_NAME_is_sorted__extern"]
16915    pub fn sk_GENERAL_NAME_is_sorted(sk: *const stack_st_GENERAL_NAME) -> ::core::ffi::c_int;
16916}
16917unsafe extern "C" {
16918    #[link_name = "sk_GENERAL_NAME_set_cmp_func__extern"]
16919    pub fn sk_GENERAL_NAME_set_cmp_func(
16920        sk: *mut stack_st_GENERAL_NAME,
16921        comp: sk_GENERAL_NAME_cmp_func,
16922    ) -> sk_GENERAL_NAME_cmp_func;
16923}
16924unsafe extern "C" {
16925    #[link_name = "sk_GENERAL_NAME_deep_copy__extern"]
16926    pub fn sk_GENERAL_NAME_deep_copy(
16927        sk: *const stack_st_GENERAL_NAME,
16928        copy_func: sk_GENERAL_NAME_copy_func,
16929        free_func: sk_GENERAL_NAME_free_func,
16930    ) -> *mut stack_st_GENERAL_NAME;
16931}
16932pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
16933unsafe extern "C" {
16934    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
16935}
16936unsafe extern "C" {
16937    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
16938}
16939#[repr(C)]
16940#[derive(Debug)]
16941pub struct stack_st_X509_EXTENSION {
16942    _unused: [u8; 0],
16943}
16944unsafe extern "C" {
16945    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
16946}
16947unsafe extern "C" {
16948    pub fn X509_get_ext_count(x: *const X509) -> ::core::ffi::c_int;
16949}
16950unsafe extern "C" {
16951    pub fn X509_get_ext_by_NID(
16952        x: *const X509,
16953        nid: ::core::ffi::c_int,
16954        lastpos: ::core::ffi::c_int,
16955    ) -> ::core::ffi::c_int;
16956}
16957unsafe extern "C" {
16958    pub fn X509_get_ext_by_OBJ(
16959        x: *const X509,
16960        obj: *const ASN1_OBJECT,
16961        lastpos: ::core::ffi::c_int,
16962    ) -> ::core::ffi::c_int;
16963}
16964unsafe extern "C" {
16965    pub fn X509_get_ext_by_critical(
16966        x: *const X509,
16967        crit: ::core::ffi::c_int,
16968        lastpos: ::core::ffi::c_int,
16969    ) -> ::core::ffi::c_int;
16970}
16971unsafe extern "C" {
16972    pub fn X509_get_ext(x: *const X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
16973}
16974unsafe extern "C" {
16975    pub fn X509_get_ext_d2i(
16976        x509: *const X509,
16977        nid: ::core::ffi::c_int,
16978        out_critical: *mut ::core::ffi::c_int,
16979        out_idx: *mut ::core::ffi::c_int,
16980    ) -> *mut ::core::ffi::c_void;
16981}
16982unsafe extern "C" {
16983    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
16984}
16985unsafe extern "C" {
16986    pub fn X509_get0_signature(
16987        out_sig: *mut *const ASN1_BIT_STRING,
16988        out_alg: *mut *const X509_ALGOR,
16989        x509: *const X509,
16990    );
16991}
16992unsafe extern "C" {
16993    pub fn X509_get_signature_nid(x509: *const X509) -> ::core::ffi::c_int;
16994}
16995unsafe extern "C" {
16996    pub fn i2d_X509_tbs(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16997}
16998unsafe extern "C" {
16999    pub fn X509_verify(x509: *const X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17000}
17001unsafe extern "C" {
17002    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
17003}
17004unsafe extern "C" {
17005    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
17006}
17007unsafe extern "C" {
17008    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
17009}
17010unsafe extern "C" {
17011    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
17012}
17013unsafe extern "C" {
17014    pub fn X509_new() -> *mut X509;
17015}
17016unsafe extern "C" {
17017    pub fn X509_set_version(x509: *mut X509, version: ::core::ffi::c_long) -> ::core::ffi::c_int;
17018}
17019unsafe extern "C" {
17020    pub fn X509_set_serialNumber(
17021        x509: *mut X509,
17022        serial: *const ASN1_INTEGER,
17023    ) -> ::core::ffi::c_int;
17024}
17025unsafe extern "C" {
17026    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
17027}
17028unsafe extern "C" {
17029    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
17030}
17031unsafe extern "C" {
17032    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
17033}
17034unsafe extern "C" {
17035    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
17036}
17037unsafe extern "C" {
17038    pub fn X509_set_issuer_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
17039}
17040unsafe extern "C" {
17041    pub fn X509_set_subject_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
17042}
17043unsafe extern "C" {
17044    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17045}
17046unsafe extern "C" {
17047    pub fn X509_delete_ext(x: *mut X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17048}
17049unsafe extern "C" {
17050    pub fn X509_add_ext(
17051        x: *mut X509,
17052        ex: *const X509_EXTENSION,
17053        loc: ::core::ffi::c_int,
17054    ) -> ::core::ffi::c_int;
17055}
17056unsafe extern "C" {
17057    pub fn X509_add1_ext_i2d(
17058        x: *mut X509,
17059        nid: ::core::ffi::c_int,
17060        value: *mut ::core::ffi::c_void,
17061        crit: ::core::ffi::c_int,
17062        flags: ::core::ffi::c_ulong,
17063    ) -> ::core::ffi::c_int;
17064}
17065unsafe extern "C" {
17066    pub fn X509_sign(x509: *mut X509, pkey: *mut EVP_PKEY, md: *const EVP_MD)
17067        -> ::core::ffi::c_int;
17068}
17069unsafe extern "C" {
17070    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17071}
17072unsafe extern "C" {
17073    pub fn i2d_re_X509_tbs(x509: *mut X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
17074}
17075unsafe extern "C" {
17076    pub fn X509_set1_signature_algo(x509: *mut X509, algo: *const X509_ALGOR)
17077        -> ::core::ffi::c_int;
17078}
17079unsafe extern "C" {
17080    pub fn X509_set1_signature_value(
17081        x509: *mut X509,
17082        sig: *const u8,
17083        sig_len: usize,
17084    ) -> ::core::ffi::c_int;
17085}
17086unsafe extern "C" {
17087    pub fn i2d_X509_AUX(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
17088}
17089unsafe extern "C" {
17090    pub fn d2i_X509_AUX(
17091        x509: *mut *mut X509,
17092        inp: *mut *const u8,
17093        length: ::core::ffi::c_long,
17094    ) -> *mut X509;
17095}
17096unsafe extern "C" {
17097    pub fn X509_alias_set1(
17098        x509: *mut X509,
17099        name: *const u8,
17100        len: ossl_ssize_t,
17101    ) -> ::core::ffi::c_int;
17102}
17103unsafe extern "C" {
17104    pub fn X509_keyid_set1(x509: *mut X509, id: *const u8, len: ossl_ssize_t)
17105        -> ::core::ffi::c_int;
17106}
17107unsafe extern "C" {
17108    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
17109}
17110unsafe extern "C" {
17111    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
17112}
17113unsafe extern "C" {
17114    pub fn X509_add1_trust_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
17115}
17116unsafe extern "C" {
17117    pub fn X509_add1_reject_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
17118}
17119unsafe extern "C" {
17120    pub fn X509_trust_clear(x509: *mut X509);
17121}
17122unsafe extern "C" {
17123    pub fn X509_reject_clear(x509: *mut X509);
17124}
17125pub type sk_X509_CRL_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
17126pub type sk_X509_CRL_copy_func =
17127    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
17128pub type sk_X509_CRL_cmp_func = ::core::option::Option<
17129    unsafe extern "C" fn(
17130        arg1: *const *const X509_CRL,
17131        arg2: *const *const X509_CRL,
17132    ) -> ::core::ffi::c_int,
17133>;
17134pub type sk_X509_CRL_delete_if_func = ::core::option::Option<
17135    unsafe extern "C" fn(arg1: *mut X509_CRL, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
17136>;
17137unsafe extern "C" {
17138    #[link_name = "sk_X509_CRL_call_free_func__extern"]
17139    pub fn sk_X509_CRL_call_free_func(
17140        free_func: OPENSSL_sk_free_func,
17141        ptr: *mut ::core::ffi::c_void,
17142    );
17143}
17144unsafe extern "C" {
17145    #[link_name = "sk_X509_CRL_call_copy_func__extern"]
17146    pub fn sk_X509_CRL_call_copy_func(
17147        copy_func: OPENSSL_sk_copy_func,
17148        ptr: *const ::core::ffi::c_void,
17149    ) -> *mut ::core::ffi::c_void;
17150}
17151unsafe extern "C" {
17152    #[link_name = "sk_X509_CRL_call_cmp_func__extern"]
17153    pub fn sk_X509_CRL_call_cmp_func(
17154        cmp_func: OPENSSL_sk_cmp_func,
17155        a: *const ::core::ffi::c_void,
17156        b: *const ::core::ffi::c_void,
17157    ) -> ::core::ffi::c_int;
17158}
17159unsafe extern "C" {
17160    #[link_name = "sk_X509_CRL_call_delete_if_func__extern"]
17161    pub fn sk_X509_CRL_call_delete_if_func(
17162        func: OPENSSL_sk_delete_if_func,
17163        obj: *mut ::core::ffi::c_void,
17164        data: *mut ::core::ffi::c_void,
17165    ) -> ::core::ffi::c_int;
17166}
17167unsafe extern "C" {
17168    #[link_name = "sk_X509_CRL_new__extern"]
17169    pub fn sk_X509_CRL_new(comp: sk_X509_CRL_cmp_func) -> *mut stack_st_X509_CRL;
17170}
17171unsafe extern "C" {
17172    #[link_name = "sk_X509_CRL_new_null__extern"]
17173    pub fn sk_X509_CRL_new_null() -> *mut stack_st_X509_CRL;
17174}
17175unsafe extern "C" {
17176    #[link_name = "sk_X509_CRL_num__extern"]
17177    pub fn sk_X509_CRL_num(sk: *const stack_st_X509_CRL) -> usize;
17178}
17179unsafe extern "C" {
17180    #[link_name = "sk_X509_CRL_zero__extern"]
17181    pub fn sk_X509_CRL_zero(sk: *mut stack_st_X509_CRL);
17182}
17183unsafe extern "C" {
17184    #[link_name = "sk_X509_CRL_value__extern"]
17185    pub fn sk_X509_CRL_value(sk: *const stack_st_X509_CRL, i: usize) -> *mut X509_CRL;
17186}
17187unsafe extern "C" {
17188    #[link_name = "sk_X509_CRL_last__extern"]
17189    pub fn sk_X509_CRL_last(sk: *const stack_st_X509_CRL) -> *mut X509_CRL;
17190}
17191unsafe extern "C" {
17192    #[link_name = "sk_X509_CRL_set__extern"]
17193    pub fn sk_X509_CRL_set(sk: *mut stack_st_X509_CRL, i: usize, p: *mut X509_CRL)
17194        -> *mut X509_CRL;
17195}
17196unsafe extern "C" {
17197    #[link_name = "sk_X509_CRL_free__extern"]
17198    pub fn sk_X509_CRL_free(sk: *mut stack_st_X509_CRL);
17199}
17200unsafe extern "C" {
17201    #[link_name = "sk_X509_CRL_pop_free__extern"]
17202    pub fn sk_X509_CRL_pop_free(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
17203}
17204unsafe extern "C" {
17205    #[link_name = "sk_X509_CRL_insert__extern"]
17206    pub fn sk_X509_CRL_insert(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL, where_: usize)
17207        -> usize;
17208}
17209unsafe extern "C" {
17210    #[link_name = "sk_X509_CRL_delete__extern"]
17211    pub fn sk_X509_CRL_delete(sk: *mut stack_st_X509_CRL, where_: usize) -> *mut X509_CRL;
17212}
17213unsafe extern "C" {
17214    #[link_name = "sk_X509_CRL_delete_ptr__extern"]
17215    pub fn sk_X509_CRL_delete_ptr(sk: *mut stack_st_X509_CRL, p: *const X509_CRL) -> *mut X509_CRL;
17216}
17217unsafe extern "C" {
17218    #[link_name = "sk_X509_CRL_delete_if__extern"]
17219    pub fn sk_X509_CRL_delete_if(
17220        sk: *mut stack_st_X509_CRL,
17221        func: sk_X509_CRL_delete_if_func,
17222        data: *mut ::core::ffi::c_void,
17223    );
17224}
17225unsafe extern "C" {
17226    #[link_name = "sk_X509_CRL_find__extern"]
17227    pub fn sk_X509_CRL_find(
17228        sk: *const stack_st_X509_CRL,
17229        out_index: *mut usize,
17230        p: *const X509_CRL,
17231    ) -> ::core::ffi::c_int;
17232}
17233unsafe extern "C" {
17234    #[link_name = "sk_X509_CRL_shift__extern"]
17235    pub fn sk_X509_CRL_shift(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17236}
17237unsafe extern "C" {
17238    #[link_name = "sk_X509_CRL_push__extern"]
17239    pub fn sk_X509_CRL_push(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL) -> usize;
17240}
17241unsafe extern "C" {
17242    #[link_name = "sk_X509_CRL_pop__extern"]
17243    pub fn sk_X509_CRL_pop(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17244}
17245unsafe extern "C" {
17246    #[link_name = "sk_X509_CRL_dup__extern"]
17247    pub fn sk_X509_CRL_dup(sk: *const stack_st_X509_CRL) -> *mut stack_st_X509_CRL;
17248}
17249unsafe extern "C" {
17250    #[link_name = "sk_X509_CRL_sort__extern"]
17251    pub fn sk_X509_CRL_sort(sk: *mut stack_st_X509_CRL);
17252}
17253unsafe extern "C" {
17254    #[link_name = "sk_X509_CRL_sort_and_dedup__extern"]
17255    pub fn sk_X509_CRL_sort_and_dedup(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
17256}
17257unsafe extern "C" {
17258    #[link_name = "sk_X509_CRL_is_sorted__extern"]
17259    pub fn sk_X509_CRL_is_sorted(sk: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
17260}
17261unsafe extern "C" {
17262    #[link_name = "sk_X509_CRL_set_cmp_func__extern"]
17263    pub fn sk_X509_CRL_set_cmp_func(
17264        sk: *mut stack_st_X509_CRL,
17265        comp: sk_X509_CRL_cmp_func,
17266    ) -> sk_X509_CRL_cmp_func;
17267}
17268unsafe extern "C" {
17269    #[link_name = "sk_X509_CRL_deep_copy__extern"]
17270    pub fn sk_X509_CRL_deep_copy(
17271        sk: *const stack_st_X509_CRL,
17272        copy_func: sk_X509_CRL_copy_func,
17273        free_func: sk_X509_CRL_free_func,
17274    ) -> *mut stack_st_X509_CRL;
17275}
17276#[repr(C)]
17277#[derive(Debug)]
17278pub struct stack_st_X509_REVOKED {
17279    _unused: [u8; 0],
17280}
17281pub type sk_X509_REVOKED_free_func =
17282    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
17283pub type sk_X509_REVOKED_copy_func =
17284    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
17285pub type sk_X509_REVOKED_cmp_func = ::core::option::Option<
17286    unsafe extern "C" fn(
17287        arg1: *const *const X509_REVOKED,
17288        arg2: *const *const X509_REVOKED,
17289    ) -> ::core::ffi::c_int,
17290>;
17291pub type sk_X509_REVOKED_delete_if_func = ::core::option::Option<
17292    unsafe extern "C" fn(
17293        arg1: *mut X509_REVOKED,
17294        arg2: *mut ::core::ffi::c_void,
17295    ) -> ::core::ffi::c_int,
17296>;
17297unsafe extern "C" {
17298    #[link_name = "sk_X509_REVOKED_call_free_func__extern"]
17299    pub fn sk_X509_REVOKED_call_free_func(
17300        free_func: OPENSSL_sk_free_func,
17301        ptr: *mut ::core::ffi::c_void,
17302    );
17303}
17304unsafe extern "C" {
17305    #[link_name = "sk_X509_REVOKED_call_copy_func__extern"]
17306    pub fn sk_X509_REVOKED_call_copy_func(
17307        copy_func: OPENSSL_sk_copy_func,
17308        ptr: *const ::core::ffi::c_void,
17309    ) -> *mut ::core::ffi::c_void;
17310}
17311unsafe extern "C" {
17312    #[link_name = "sk_X509_REVOKED_call_cmp_func__extern"]
17313    pub fn sk_X509_REVOKED_call_cmp_func(
17314        cmp_func: OPENSSL_sk_cmp_func,
17315        a: *const ::core::ffi::c_void,
17316        b: *const ::core::ffi::c_void,
17317    ) -> ::core::ffi::c_int;
17318}
17319unsafe extern "C" {
17320    #[link_name = "sk_X509_REVOKED_call_delete_if_func__extern"]
17321    pub fn sk_X509_REVOKED_call_delete_if_func(
17322        func: OPENSSL_sk_delete_if_func,
17323        obj: *mut ::core::ffi::c_void,
17324        data: *mut ::core::ffi::c_void,
17325    ) -> ::core::ffi::c_int;
17326}
17327unsafe extern "C" {
17328    #[link_name = "sk_X509_REVOKED_new__extern"]
17329    pub fn sk_X509_REVOKED_new(comp: sk_X509_REVOKED_cmp_func) -> *mut stack_st_X509_REVOKED;
17330}
17331unsafe extern "C" {
17332    #[link_name = "sk_X509_REVOKED_new_null__extern"]
17333    pub fn sk_X509_REVOKED_new_null() -> *mut stack_st_X509_REVOKED;
17334}
17335unsafe extern "C" {
17336    #[link_name = "sk_X509_REVOKED_num__extern"]
17337    pub fn sk_X509_REVOKED_num(sk: *const stack_st_X509_REVOKED) -> usize;
17338}
17339unsafe extern "C" {
17340    #[link_name = "sk_X509_REVOKED_zero__extern"]
17341    pub fn sk_X509_REVOKED_zero(sk: *mut stack_st_X509_REVOKED);
17342}
17343unsafe extern "C" {
17344    #[link_name = "sk_X509_REVOKED_value__extern"]
17345    pub fn sk_X509_REVOKED_value(sk: *const stack_st_X509_REVOKED, i: usize) -> *mut X509_REVOKED;
17346}
17347unsafe extern "C" {
17348    #[link_name = "sk_X509_REVOKED_last__extern"]
17349    pub fn sk_X509_REVOKED_last(sk: *const stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17350}
17351unsafe extern "C" {
17352    #[link_name = "sk_X509_REVOKED_set__extern"]
17353    pub fn sk_X509_REVOKED_set(
17354        sk: *mut stack_st_X509_REVOKED,
17355        i: usize,
17356        p: *mut X509_REVOKED,
17357    ) -> *mut X509_REVOKED;
17358}
17359unsafe extern "C" {
17360    #[link_name = "sk_X509_REVOKED_free__extern"]
17361    pub fn sk_X509_REVOKED_free(sk: *mut stack_st_X509_REVOKED);
17362}
17363unsafe extern "C" {
17364    #[link_name = "sk_X509_REVOKED_pop_free__extern"]
17365    pub fn sk_X509_REVOKED_pop_free(
17366        sk: *mut stack_st_X509_REVOKED,
17367        free_func: sk_X509_REVOKED_free_func,
17368    );
17369}
17370unsafe extern "C" {
17371    #[link_name = "sk_X509_REVOKED_insert__extern"]
17372    pub fn sk_X509_REVOKED_insert(
17373        sk: *mut stack_st_X509_REVOKED,
17374        p: *mut X509_REVOKED,
17375        where_: usize,
17376    ) -> usize;
17377}
17378unsafe extern "C" {
17379    #[link_name = "sk_X509_REVOKED_delete__extern"]
17380    pub fn sk_X509_REVOKED_delete(
17381        sk: *mut stack_st_X509_REVOKED,
17382        where_: usize,
17383    ) -> *mut X509_REVOKED;
17384}
17385unsafe extern "C" {
17386    #[link_name = "sk_X509_REVOKED_delete_ptr__extern"]
17387    pub fn sk_X509_REVOKED_delete_ptr(
17388        sk: *mut stack_st_X509_REVOKED,
17389        p: *const X509_REVOKED,
17390    ) -> *mut X509_REVOKED;
17391}
17392unsafe extern "C" {
17393    #[link_name = "sk_X509_REVOKED_delete_if__extern"]
17394    pub fn sk_X509_REVOKED_delete_if(
17395        sk: *mut stack_st_X509_REVOKED,
17396        func: sk_X509_REVOKED_delete_if_func,
17397        data: *mut ::core::ffi::c_void,
17398    );
17399}
17400unsafe extern "C" {
17401    #[link_name = "sk_X509_REVOKED_find__extern"]
17402    pub fn sk_X509_REVOKED_find(
17403        sk: *const stack_st_X509_REVOKED,
17404        out_index: *mut usize,
17405        p: *const X509_REVOKED,
17406    ) -> ::core::ffi::c_int;
17407}
17408unsafe extern "C" {
17409    #[link_name = "sk_X509_REVOKED_shift__extern"]
17410    pub fn sk_X509_REVOKED_shift(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17411}
17412unsafe extern "C" {
17413    #[link_name = "sk_X509_REVOKED_push__extern"]
17414    pub fn sk_X509_REVOKED_push(sk: *mut stack_st_X509_REVOKED, p: *mut X509_REVOKED) -> usize;
17415}
17416unsafe extern "C" {
17417    #[link_name = "sk_X509_REVOKED_pop__extern"]
17418    pub fn sk_X509_REVOKED_pop(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17419}
17420unsafe extern "C" {
17421    #[link_name = "sk_X509_REVOKED_dup__extern"]
17422    pub fn sk_X509_REVOKED_dup(sk: *const stack_st_X509_REVOKED) -> *mut stack_st_X509_REVOKED;
17423}
17424unsafe extern "C" {
17425    #[link_name = "sk_X509_REVOKED_sort__extern"]
17426    pub fn sk_X509_REVOKED_sort(sk: *mut stack_st_X509_REVOKED);
17427}
17428unsafe extern "C" {
17429    #[link_name = "sk_X509_REVOKED_sort_and_dedup__extern"]
17430    pub fn sk_X509_REVOKED_sort_and_dedup(
17431        sk: *mut stack_st_X509_REVOKED,
17432        free_func: sk_X509_REVOKED_free_func,
17433    );
17434}
17435unsafe extern "C" {
17436    #[link_name = "sk_X509_REVOKED_is_sorted__extern"]
17437    pub fn sk_X509_REVOKED_is_sorted(sk: *const stack_st_X509_REVOKED) -> ::core::ffi::c_int;
17438}
17439unsafe extern "C" {
17440    #[link_name = "sk_X509_REVOKED_set_cmp_func__extern"]
17441    pub fn sk_X509_REVOKED_set_cmp_func(
17442        sk: *mut stack_st_X509_REVOKED,
17443        comp: sk_X509_REVOKED_cmp_func,
17444    ) -> sk_X509_REVOKED_cmp_func;
17445}
17446unsafe extern "C" {
17447    #[link_name = "sk_X509_REVOKED_deep_copy__extern"]
17448    pub fn sk_X509_REVOKED_deep_copy(
17449        sk: *const stack_st_X509_REVOKED,
17450        copy_func: sk_X509_REVOKED_copy_func,
17451        free_func: sk_X509_REVOKED_free_func,
17452    ) -> *mut stack_st_X509_REVOKED;
17453}
17454unsafe extern "C" {
17455    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17456}
17457unsafe extern "C" {
17458    pub fn X509_CRL_dup(crl: *const X509_CRL) -> *mut X509_CRL;
17459}
17460unsafe extern "C" {
17461    pub fn X509_CRL_free(crl: *mut X509_CRL);
17462}
17463unsafe extern "C" {
17464    pub fn d2i_X509_CRL(
17465        out: *mut *mut X509_CRL,
17466        inp: *mut *const u8,
17467        len: ::core::ffi::c_long,
17468    ) -> *mut X509_CRL;
17469}
17470unsafe extern "C" {
17471    pub fn i2d_X509_CRL(crl: *const X509_CRL, outp: *mut *mut u8) -> ::core::ffi::c_int;
17472}
17473unsafe extern "C" {
17474    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
17475}
17476unsafe extern "C" {
17477    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::core::ffi::c_long;
17478}
17479unsafe extern "C" {
17480    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17481}
17482unsafe extern "C" {
17483    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17484}
17485unsafe extern "C" {
17486    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
17487}
17488unsafe extern "C" {
17489    pub fn X509_CRL_get0_by_serial(
17490        crl: *mut X509_CRL,
17491        out: *mut *mut X509_REVOKED,
17492        serial: *const ASN1_INTEGER,
17493    ) -> ::core::ffi::c_int;
17494}
17495unsafe extern "C" {
17496    pub fn X509_CRL_get0_by_cert(
17497        crl: *mut X509_CRL,
17498        out: *mut *mut X509_REVOKED,
17499        x509: *const X509,
17500    ) -> ::core::ffi::c_int;
17501}
17502unsafe extern "C" {
17503    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
17504}
17505unsafe extern "C" {
17506    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
17507}
17508unsafe extern "C" {
17509    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::core::ffi::c_int;
17510}
17511unsafe extern "C" {
17512    pub fn X509_CRL_get_ext_by_NID(
17513        x: *const X509_CRL,
17514        nid: ::core::ffi::c_int,
17515        lastpos: ::core::ffi::c_int,
17516    ) -> ::core::ffi::c_int;
17517}
17518unsafe extern "C" {
17519    pub fn X509_CRL_get_ext_by_OBJ(
17520        x: *const X509_CRL,
17521        obj: *const ASN1_OBJECT,
17522        lastpos: ::core::ffi::c_int,
17523    ) -> ::core::ffi::c_int;
17524}
17525unsafe extern "C" {
17526    pub fn X509_CRL_get_ext_by_critical(
17527        x: *const X509_CRL,
17528        crit: ::core::ffi::c_int,
17529        lastpos: ::core::ffi::c_int,
17530    ) -> ::core::ffi::c_int;
17531}
17532unsafe extern "C" {
17533    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17534}
17535unsafe extern "C" {
17536    pub fn X509_CRL_get_ext_d2i(
17537        crl: *const X509_CRL,
17538        nid: ::core::ffi::c_int,
17539        out_critical: *mut ::core::ffi::c_int,
17540        out_idx: *mut ::core::ffi::c_int,
17541    ) -> *mut ::core::ffi::c_void;
17542}
17543unsafe extern "C" {
17544    pub fn X509_CRL_get0_signature(
17545        crl: *const X509_CRL,
17546        out_sig: *mut *const ASN1_BIT_STRING,
17547        out_alg: *mut *const X509_ALGOR,
17548    );
17549}
17550unsafe extern "C" {
17551    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::core::ffi::c_int;
17552}
17553unsafe extern "C" {
17554    pub fn i2d_X509_CRL_tbs(
17555        crl: *const X509_CRL,
17556        outp: *mut *mut ::core::ffi::c_uchar,
17557    ) -> ::core::ffi::c_int;
17558}
17559unsafe extern "C" {
17560    pub fn X509_CRL_verify(crl: *const X509_CRL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17561}
17562unsafe extern "C" {
17563    pub fn X509_CRL_new() -> *mut X509_CRL;
17564}
17565unsafe extern "C" {
17566    pub fn X509_CRL_set_version(
17567        crl: *mut X509_CRL,
17568        version: ::core::ffi::c_long,
17569    ) -> ::core::ffi::c_int;
17570}
17571unsafe extern "C" {
17572    pub fn X509_CRL_set_issuer_name(
17573        crl: *mut X509_CRL,
17574        name: *const X509_NAME,
17575    ) -> ::core::ffi::c_int;
17576}
17577unsafe extern "C" {
17578    pub fn X509_CRL_set1_lastUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17579        -> ::core::ffi::c_int;
17580}
17581unsafe extern "C" {
17582    pub fn X509_CRL_set1_nextUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17583        -> ::core::ffi::c_int;
17584}
17585unsafe extern "C" {
17586    pub fn X509_CRL_add0_revoked(crl: *mut X509_CRL, rev: *mut X509_REVOKED) -> ::core::ffi::c_int;
17587}
17588unsafe extern "C" {
17589    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17590}
17591unsafe extern "C" {
17592    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17593}
17594unsafe extern "C" {
17595    pub fn X509_CRL_add_ext(
17596        x: *mut X509_CRL,
17597        ex: *const X509_EXTENSION,
17598        loc: ::core::ffi::c_int,
17599    ) -> ::core::ffi::c_int;
17600}
17601unsafe extern "C" {
17602    pub fn X509_CRL_add1_ext_i2d(
17603        x: *mut X509_CRL,
17604        nid: ::core::ffi::c_int,
17605        value: *mut ::core::ffi::c_void,
17606        crit: ::core::ffi::c_int,
17607        flags: ::core::ffi::c_ulong,
17608    ) -> ::core::ffi::c_int;
17609}
17610unsafe extern "C" {
17611    pub fn X509_CRL_sign(
17612        crl: *mut X509_CRL,
17613        pkey: *mut EVP_PKEY,
17614        md: *const EVP_MD,
17615    ) -> ::core::ffi::c_int;
17616}
17617unsafe extern "C" {
17618    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17619}
17620unsafe extern "C" {
17621    pub fn i2d_re_X509_CRL_tbs(
17622        crl: *mut X509_CRL,
17623        outp: *mut *mut ::core::ffi::c_uchar,
17624    ) -> ::core::ffi::c_int;
17625}
17626unsafe extern "C" {
17627    pub fn X509_CRL_set1_signature_algo(
17628        crl: *mut X509_CRL,
17629        algo: *const X509_ALGOR,
17630    ) -> ::core::ffi::c_int;
17631}
17632unsafe extern "C" {
17633    pub fn X509_CRL_set1_signature_value(
17634        crl: *mut X509_CRL,
17635        sig: *const u8,
17636        sig_len: usize,
17637    ) -> ::core::ffi::c_int;
17638}
17639unsafe extern "C" {
17640    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
17641}
17642unsafe extern "C" {
17643    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
17644}
17645unsafe extern "C" {
17646    pub fn d2i_X509_REVOKED(
17647        out: *mut *mut X509_REVOKED,
17648        inp: *mut *const u8,
17649        len: ::core::ffi::c_long,
17650    ) -> *mut X509_REVOKED;
17651}
17652unsafe extern "C" {
17653    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::core::ffi::c_int;
17654}
17655unsafe extern "C" {
17656    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
17657}
17658unsafe extern "C" {
17659    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
17660}
17661unsafe extern "C" {
17662    pub fn X509_REVOKED_set_serialNumber(
17663        revoked: *mut X509_REVOKED,
17664        serial: *const ASN1_INTEGER,
17665    ) -> ::core::ffi::c_int;
17666}
17667unsafe extern "C" {
17668    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
17669}
17670unsafe extern "C" {
17671    pub fn X509_REVOKED_set_revocationDate(
17672        revoked: *mut X509_REVOKED,
17673        tm: *const ASN1_TIME,
17674    ) -> ::core::ffi::c_int;
17675}
17676unsafe extern "C" {
17677    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
17678}
17679unsafe extern "C" {
17680    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::core::ffi::c_int;
17681}
17682unsafe extern "C" {
17683    pub fn X509_REVOKED_get_ext_by_NID(
17684        x: *const X509_REVOKED,
17685        nid: ::core::ffi::c_int,
17686        lastpos: ::core::ffi::c_int,
17687    ) -> ::core::ffi::c_int;
17688}
17689unsafe extern "C" {
17690    pub fn X509_REVOKED_get_ext_by_OBJ(
17691        x: *const X509_REVOKED,
17692        obj: *const ASN1_OBJECT,
17693        lastpos: ::core::ffi::c_int,
17694    ) -> ::core::ffi::c_int;
17695}
17696unsafe extern "C" {
17697    pub fn X509_REVOKED_get_ext_by_critical(
17698        x: *const X509_REVOKED,
17699        crit: ::core::ffi::c_int,
17700        lastpos: ::core::ffi::c_int,
17701    ) -> ::core::ffi::c_int;
17702}
17703unsafe extern "C" {
17704    pub fn X509_REVOKED_get_ext(
17705        x: *const X509_REVOKED,
17706        loc: ::core::ffi::c_int,
17707    ) -> *mut X509_EXTENSION;
17708}
17709unsafe extern "C" {
17710    pub fn X509_REVOKED_delete_ext(
17711        x: *mut X509_REVOKED,
17712        loc: ::core::ffi::c_int,
17713    ) -> *mut X509_EXTENSION;
17714}
17715unsafe extern "C" {
17716    pub fn X509_REVOKED_add_ext(
17717        x: *mut X509_REVOKED,
17718        ex: *const X509_EXTENSION,
17719        loc: ::core::ffi::c_int,
17720    ) -> ::core::ffi::c_int;
17721}
17722unsafe extern "C" {
17723    pub fn X509_REVOKED_get_ext_d2i(
17724        revoked: *const X509_REVOKED,
17725        nid: ::core::ffi::c_int,
17726        out_critical: *mut ::core::ffi::c_int,
17727        out_idx: *mut ::core::ffi::c_int,
17728    ) -> *mut ::core::ffi::c_void;
17729}
17730unsafe extern "C" {
17731    pub fn X509_REVOKED_add1_ext_i2d(
17732        x: *mut X509_REVOKED,
17733        nid: ::core::ffi::c_int,
17734        value: *mut ::core::ffi::c_void,
17735        crit: ::core::ffi::c_int,
17736        flags: ::core::ffi::c_ulong,
17737    ) -> ::core::ffi::c_int;
17738}
17739unsafe extern "C" {
17740    pub fn X509_REQ_dup(req: *const X509_REQ) -> *mut X509_REQ;
17741}
17742unsafe extern "C" {
17743    pub fn X509_REQ_free(req: *mut X509_REQ);
17744}
17745unsafe extern "C" {
17746    pub fn d2i_X509_REQ(
17747        out: *mut *mut X509_REQ,
17748        inp: *mut *const u8,
17749        len: ::core::ffi::c_long,
17750    ) -> *mut X509_REQ;
17751}
17752unsafe extern "C" {
17753    pub fn i2d_X509_REQ(req: *const X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17754}
17755unsafe extern "C" {
17756    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::core::ffi::c_long;
17757}
17758unsafe extern "C" {
17759    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
17760}
17761unsafe extern "C" {
17762    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17763}
17764unsafe extern "C" {
17765    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17766}
17767unsafe extern "C" {
17768    pub fn X509_REQ_check_private_key(
17769        req: *const X509_REQ,
17770        pkey: *const EVP_PKEY,
17771    ) -> ::core::ffi::c_int;
17772}
17773unsafe extern "C" {
17774    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::core::ffi::c_int;
17775}
17776unsafe extern "C" {
17777    pub fn X509_REQ_get_attr(req: *const X509_REQ, loc: ::core::ffi::c_int) -> *mut X509_ATTRIBUTE;
17778}
17779unsafe extern "C" {
17780    pub fn X509_REQ_get_attr_by_NID(
17781        req: *const X509_REQ,
17782        nid: ::core::ffi::c_int,
17783        lastpos: ::core::ffi::c_int,
17784    ) -> ::core::ffi::c_int;
17785}
17786unsafe extern "C" {
17787    pub fn X509_REQ_get_attr_by_OBJ(
17788        req: *const X509_REQ,
17789        obj: *const ASN1_OBJECT,
17790        lastpos: ::core::ffi::c_int,
17791    ) -> ::core::ffi::c_int;
17792}
17793unsafe extern "C" {
17794    pub fn X509_REQ_extension_nid(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
17795}
17796unsafe extern "C" {
17797    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
17798}
17799unsafe extern "C" {
17800    pub fn X509_REQ_get0_signature(
17801        req: *const X509_REQ,
17802        out_sig: *mut *const ASN1_BIT_STRING,
17803        out_alg: *mut *const X509_ALGOR,
17804    );
17805}
17806unsafe extern "C" {
17807    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::core::ffi::c_int;
17808}
17809unsafe extern "C" {
17810    pub fn X509_REQ_verify(req: *const X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17811}
17812unsafe extern "C" {
17813    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
17814}
17815unsafe extern "C" {
17816    pub fn X509_REQ_new() -> *mut X509_REQ;
17817}
17818unsafe extern "C" {
17819    pub fn X509_REQ_set_version(
17820        req: *mut X509_REQ,
17821        version: ::core::ffi::c_long,
17822    ) -> ::core::ffi::c_int;
17823}
17824unsafe extern "C" {
17825    pub fn X509_REQ_set_subject_name(
17826        req: *mut X509_REQ,
17827        name: *mut X509_NAME,
17828    ) -> ::core::ffi::c_int;
17829}
17830unsafe extern "C" {
17831    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17832}
17833unsafe extern "C" {
17834    pub fn X509_REQ_delete_attr(req: *mut X509_REQ, loc: ::core::ffi::c_int)
17835        -> *mut X509_ATTRIBUTE;
17836}
17837unsafe extern "C" {
17838    pub fn X509_REQ_add1_attr(
17839        req: *mut X509_REQ,
17840        attr: *const X509_ATTRIBUTE,
17841    ) -> ::core::ffi::c_int;
17842}
17843unsafe extern "C" {
17844    pub fn X509_REQ_add1_attr_by_OBJ(
17845        req: *mut X509_REQ,
17846        obj: *const ASN1_OBJECT,
17847        attrtype: ::core::ffi::c_int,
17848        data: *const ::core::ffi::c_uchar,
17849        len: ::core::ffi::c_int,
17850    ) -> ::core::ffi::c_int;
17851}
17852unsafe extern "C" {
17853    pub fn X509_REQ_add1_attr_by_NID(
17854        req: *mut X509_REQ,
17855        nid: ::core::ffi::c_int,
17856        attrtype: ::core::ffi::c_int,
17857        data: *const ::core::ffi::c_uchar,
17858        len: ::core::ffi::c_int,
17859    ) -> ::core::ffi::c_int;
17860}
17861unsafe extern "C" {
17862    pub fn X509_REQ_add1_attr_by_txt(
17863        req: *mut X509_REQ,
17864        attrname: *const ::core::ffi::c_char,
17865        attrtype: ::core::ffi::c_int,
17866        data: *const ::core::ffi::c_uchar,
17867        len: ::core::ffi::c_int,
17868    ) -> ::core::ffi::c_int;
17869}
17870unsafe extern "C" {
17871    pub fn X509_REQ_add_extensions_nid(
17872        req: *mut X509_REQ,
17873        exts: *const stack_st_X509_EXTENSION,
17874        nid: ::core::ffi::c_int,
17875    ) -> ::core::ffi::c_int;
17876}
17877unsafe extern "C" {
17878    pub fn X509_REQ_add_extensions(
17879        req: *mut X509_REQ,
17880        exts: *const stack_st_X509_EXTENSION,
17881    ) -> ::core::ffi::c_int;
17882}
17883unsafe extern "C" {
17884    pub fn X509_REQ_sign(
17885        req: *mut X509_REQ,
17886        pkey: *mut EVP_PKEY,
17887        md: *const EVP_MD,
17888    ) -> ::core::ffi::c_int;
17889}
17890unsafe extern "C" {
17891    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17892}
17893unsafe extern "C" {
17894    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17895}
17896unsafe extern "C" {
17897    pub fn X509_REQ_set1_signature_algo(
17898        req: *mut X509_REQ,
17899        algo: *const X509_ALGOR,
17900    ) -> ::core::ffi::c_int;
17901}
17902unsafe extern "C" {
17903    pub fn X509_REQ_set1_signature_value(
17904        req: *mut X509_REQ,
17905        sig: *const u8,
17906        sig_len: usize,
17907    ) -> ::core::ffi::c_int;
17908}
17909#[repr(C)]
17910#[derive(Debug)]
17911pub struct stack_st_X509_NAME_ENTRY {
17912    _unused: [u8; 0],
17913}
17914pub type sk_X509_NAME_ENTRY_free_func =
17915    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
17916pub type sk_X509_NAME_ENTRY_copy_func = ::core::option::Option<
17917    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
17918>;
17919pub type sk_X509_NAME_ENTRY_cmp_func = ::core::option::Option<
17920    unsafe extern "C" fn(
17921        arg1: *const *const X509_NAME_ENTRY,
17922        arg2: *const *const X509_NAME_ENTRY,
17923    ) -> ::core::ffi::c_int,
17924>;
17925pub type sk_X509_NAME_ENTRY_delete_if_func = ::core::option::Option<
17926    unsafe extern "C" fn(
17927        arg1: *mut X509_NAME_ENTRY,
17928        arg2: *mut ::core::ffi::c_void,
17929    ) -> ::core::ffi::c_int,
17930>;
17931unsafe extern "C" {
17932    #[link_name = "sk_X509_NAME_ENTRY_call_free_func__extern"]
17933    pub fn sk_X509_NAME_ENTRY_call_free_func(
17934        free_func: OPENSSL_sk_free_func,
17935        ptr: *mut ::core::ffi::c_void,
17936    );
17937}
17938unsafe extern "C" {
17939    #[link_name = "sk_X509_NAME_ENTRY_call_copy_func__extern"]
17940    pub fn sk_X509_NAME_ENTRY_call_copy_func(
17941        copy_func: OPENSSL_sk_copy_func,
17942        ptr: *const ::core::ffi::c_void,
17943    ) -> *mut ::core::ffi::c_void;
17944}
17945unsafe extern "C" {
17946    #[link_name = "sk_X509_NAME_ENTRY_call_cmp_func__extern"]
17947    pub fn sk_X509_NAME_ENTRY_call_cmp_func(
17948        cmp_func: OPENSSL_sk_cmp_func,
17949        a: *const ::core::ffi::c_void,
17950        b: *const ::core::ffi::c_void,
17951    ) -> ::core::ffi::c_int;
17952}
17953unsafe extern "C" {
17954    #[link_name = "sk_X509_NAME_ENTRY_call_delete_if_func__extern"]
17955    pub fn sk_X509_NAME_ENTRY_call_delete_if_func(
17956        func: OPENSSL_sk_delete_if_func,
17957        obj: *mut ::core::ffi::c_void,
17958        data: *mut ::core::ffi::c_void,
17959    ) -> ::core::ffi::c_int;
17960}
17961unsafe extern "C" {
17962    #[link_name = "sk_X509_NAME_ENTRY_new__extern"]
17963    pub fn sk_X509_NAME_ENTRY_new(
17964        comp: sk_X509_NAME_ENTRY_cmp_func,
17965    ) -> *mut stack_st_X509_NAME_ENTRY;
17966}
17967unsafe extern "C" {
17968    #[link_name = "sk_X509_NAME_ENTRY_new_null__extern"]
17969    pub fn sk_X509_NAME_ENTRY_new_null() -> *mut stack_st_X509_NAME_ENTRY;
17970}
17971unsafe extern "C" {
17972    #[link_name = "sk_X509_NAME_ENTRY_num__extern"]
17973    pub fn sk_X509_NAME_ENTRY_num(sk: *const stack_st_X509_NAME_ENTRY) -> usize;
17974}
17975unsafe extern "C" {
17976    #[link_name = "sk_X509_NAME_ENTRY_zero__extern"]
17977    pub fn sk_X509_NAME_ENTRY_zero(sk: *mut stack_st_X509_NAME_ENTRY);
17978}
17979unsafe extern "C" {
17980    #[link_name = "sk_X509_NAME_ENTRY_value__extern"]
17981    pub fn sk_X509_NAME_ENTRY_value(
17982        sk: *const stack_st_X509_NAME_ENTRY,
17983        i: usize,
17984    ) -> *mut X509_NAME_ENTRY;
17985}
17986unsafe extern "C" {
17987    #[link_name = "sk_X509_NAME_ENTRY_last__extern"]
17988    pub fn sk_X509_NAME_ENTRY_last(sk: *const stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
17989}
17990unsafe extern "C" {
17991    #[link_name = "sk_X509_NAME_ENTRY_set__extern"]
17992    pub fn sk_X509_NAME_ENTRY_set(
17993        sk: *mut stack_st_X509_NAME_ENTRY,
17994        i: usize,
17995        p: *mut X509_NAME_ENTRY,
17996    ) -> *mut X509_NAME_ENTRY;
17997}
17998unsafe extern "C" {
17999    #[link_name = "sk_X509_NAME_ENTRY_free__extern"]
18000    pub fn sk_X509_NAME_ENTRY_free(sk: *mut stack_st_X509_NAME_ENTRY);
18001}
18002unsafe extern "C" {
18003    #[link_name = "sk_X509_NAME_ENTRY_pop_free__extern"]
18004    pub fn sk_X509_NAME_ENTRY_pop_free(
18005        sk: *mut stack_st_X509_NAME_ENTRY,
18006        free_func: sk_X509_NAME_ENTRY_free_func,
18007    );
18008}
18009unsafe extern "C" {
18010    #[link_name = "sk_X509_NAME_ENTRY_insert__extern"]
18011    pub fn sk_X509_NAME_ENTRY_insert(
18012        sk: *mut stack_st_X509_NAME_ENTRY,
18013        p: *mut X509_NAME_ENTRY,
18014        where_: usize,
18015    ) -> usize;
18016}
18017unsafe extern "C" {
18018    #[link_name = "sk_X509_NAME_ENTRY_delete__extern"]
18019    pub fn sk_X509_NAME_ENTRY_delete(
18020        sk: *mut stack_st_X509_NAME_ENTRY,
18021        where_: usize,
18022    ) -> *mut X509_NAME_ENTRY;
18023}
18024unsafe extern "C" {
18025    #[link_name = "sk_X509_NAME_ENTRY_delete_ptr__extern"]
18026    pub fn sk_X509_NAME_ENTRY_delete_ptr(
18027        sk: *mut stack_st_X509_NAME_ENTRY,
18028        p: *const X509_NAME_ENTRY,
18029    ) -> *mut X509_NAME_ENTRY;
18030}
18031unsafe extern "C" {
18032    #[link_name = "sk_X509_NAME_ENTRY_delete_if__extern"]
18033    pub fn sk_X509_NAME_ENTRY_delete_if(
18034        sk: *mut stack_st_X509_NAME_ENTRY,
18035        func: sk_X509_NAME_ENTRY_delete_if_func,
18036        data: *mut ::core::ffi::c_void,
18037    );
18038}
18039unsafe extern "C" {
18040    #[link_name = "sk_X509_NAME_ENTRY_find__extern"]
18041    pub fn sk_X509_NAME_ENTRY_find(
18042        sk: *const stack_st_X509_NAME_ENTRY,
18043        out_index: *mut usize,
18044        p: *const X509_NAME_ENTRY,
18045    ) -> ::core::ffi::c_int;
18046}
18047unsafe extern "C" {
18048    #[link_name = "sk_X509_NAME_ENTRY_shift__extern"]
18049    pub fn sk_X509_NAME_ENTRY_shift(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
18050}
18051unsafe extern "C" {
18052    #[link_name = "sk_X509_NAME_ENTRY_push__extern"]
18053    pub fn sk_X509_NAME_ENTRY_push(
18054        sk: *mut stack_st_X509_NAME_ENTRY,
18055        p: *mut X509_NAME_ENTRY,
18056    ) -> usize;
18057}
18058unsafe extern "C" {
18059    #[link_name = "sk_X509_NAME_ENTRY_pop__extern"]
18060    pub fn sk_X509_NAME_ENTRY_pop(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
18061}
18062unsafe extern "C" {
18063    #[link_name = "sk_X509_NAME_ENTRY_dup__extern"]
18064    pub fn sk_X509_NAME_ENTRY_dup(
18065        sk: *const stack_st_X509_NAME_ENTRY,
18066    ) -> *mut stack_st_X509_NAME_ENTRY;
18067}
18068unsafe extern "C" {
18069    #[link_name = "sk_X509_NAME_ENTRY_sort__extern"]
18070    pub fn sk_X509_NAME_ENTRY_sort(sk: *mut stack_st_X509_NAME_ENTRY);
18071}
18072unsafe extern "C" {
18073    #[link_name = "sk_X509_NAME_ENTRY_sort_and_dedup__extern"]
18074    pub fn sk_X509_NAME_ENTRY_sort_and_dedup(
18075        sk: *mut stack_st_X509_NAME_ENTRY,
18076        free_func: sk_X509_NAME_ENTRY_free_func,
18077    );
18078}
18079unsafe extern "C" {
18080    #[link_name = "sk_X509_NAME_ENTRY_is_sorted__extern"]
18081    pub fn sk_X509_NAME_ENTRY_is_sorted(sk: *const stack_st_X509_NAME_ENTRY) -> ::core::ffi::c_int;
18082}
18083unsafe extern "C" {
18084    #[link_name = "sk_X509_NAME_ENTRY_set_cmp_func__extern"]
18085    pub fn sk_X509_NAME_ENTRY_set_cmp_func(
18086        sk: *mut stack_st_X509_NAME_ENTRY,
18087        comp: sk_X509_NAME_ENTRY_cmp_func,
18088    ) -> sk_X509_NAME_ENTRY_cmp_func;
18089}
18090unsafe extern "C" {
18091    #[link_name = "sk_X509_NAME_ENTRY_deep_copy__extern"]
18092    pub fn sk_X509_NAME_ENTRY_deep_copy(
18093        sk: *const stack_st_X509_NAME_ENTRY,
18094        copy_func: sk_X509_NAME_ENTRY_copy_func,
18095        free_func: sk_X509_NAME_ENTRY_free_func,
18096    ) -> *mut stack_st_X509_NAME_ENTRY;
18097}
18098#[repr(C)]
18099#[derive(Debug)]
18100pub struct stack_st_X509_NAME {
18101    _unused: [u8; 0],
18102}
18103pub type sk_X509_NAME_free_func =
18104    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
18105pub type sk_X509_NAME_copy_func =
18106    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
18107pub type sk_X509_NAME_cmp_func = ::core::option::Option<
18108    unsafe extern "C" fn(
18109        arg1: *const *const X509_NAME,
18110        arg2: *const *const X509_NAME,
18111    ) -> ::core::ffi::c_int,
18112>;
18113pub type sk_X509_NAME_delete_if_func = ::core::option::Option<
18114    unsafe extern "C" fn(
18115        arg1: *mut X509_NAME,
18116        arg2: *mut ::core::ffi::c_void,
18117    ) -> ::core::ffi::c_int,
18118>;
18119unsafe extern "C" {
18120    #[link_name = "sk_X509_NAME_call_free_func__extern"]
18121    pub fn sk_X509_NAME_call_free_func(
18122        free_func: OPENSSL_sk_free_func,
18123        ptr: *mut ::core::ffi::c_void,
18124    );
18125}
18126unsafe extern "C" {
18127    #[link_name = "sk_X509_NAME_call_copy_func__extern"]
18128    pub fn sk_X509_NAME_call_copy_func(
18129        copy_func: OPENSSL_sk_copy_func,
18130        ptr: *const ::core::ffi::c_void,
18131    ) -> *mut ::core::ffi::c_void;
18132}
18133unsafe extern "C" {
18134    #[link_name = "sk_X509_NAME_call_cmp_func__extern"]
18135    pub fn sk_X509_NAME_call_cmp_func(
18136        cmp_func: OPENSSL_sk_cmp_func,
18137        a: *const ::core::ffi::c_void,
18138        b: *const ::core::ffi::c_void,
18139    ) -> ::core::ffi::c_int;
18140}
18141unsafe extern "C" {
18142    #[link_name = "sk_X509_NAME_call_delete_if_func__extern"]
18143    pub fn sk_X509_NAME_call_delete_if_func(
18144        func: OPENSSL_sk_delete_if_func,
18145        obj: *mut ::core::ffi::c_void,
18146        data: *mut ::core::ffi::c_void,
18147    ) -> ::core::ffi::c_int;
18148}
18149unsafe extern "C" {
18150    #[link_name = "sk_X509_NAME_new__extern"]
18151    pub fn sk_X509_NAME_new(comp: sk_X509_NAME_cmp_func) -> *mut stack_st_X509_NAME;
18152}
18153unsafe extern "C" {
18154    #[link_name = "sk_X509_NAME_new_null__extern"]
18155    pub fn sk_X509_NAME_new_null() -> *mut stack_st_X509_NAME;
18156}
18157unsafe extern "C" {
18158    #[link_name = "sk_X509_NAME_num__extern"]
18159    pub fn sk_X509_NAME_num(sk: *const stack_st_X509_NAME) -> usize;
18160}
18161unsafe extern "C" {
18162    #[link_name = "sk_X509_NAME_zero__extern"]
18163    pub fn sk_X509_NAME_zero(sk: *mut stack_st_X509_NAME);
18164}
18165unsafe extern "C" {
18166    #[link_name = "sk_X509_NAME_value__extern"]
18167    pub fn sk_X509_NAME_value(sk: *const stack_st_X509_NAME, i: usize) -> *mut X509_NAME;
18168}
18169unsafe extern "C" {
18170    #[link_name = "sk_X509_NAME_last__extern"]
18171    pub fn sk_X509_NAME_last(sk: *const stack_st_X509_NAME) -> *mut X509_NAME;
18172}
18173unsafe extern "C" {
18174    #[link_name = "sk_X509_NAME_set__extern"]
18175    pub fn sk_X509_NAME_set(
18176        sk: *mut stack_st_X509_NAME,
18177        i: usize,
18178        p: *mut X509_NAME,
18179    ) -> *mut X509_NAME;
18180}
18181unsafe extern "C" {
18182    #[link_name = "sk_X509_NAME_free__extern"]
18183    pub fn sk_X509_NAME_free(sk: *mut stack_st_X509_NAME);
18184}
18185unsafe extern "C" {
18186    #[link_name = "sk_X509_NAME_pop_free__extern"]
18187    pub fn sk_X509_NAME_pop_free(sk: *mut stack_st_X509_NAME, free_func: sk_X509_NAME_free_func);
18188}
18189unsafe extern "C" {
18190    #[link_name = "sk_X509_NAME_insert__extern"]
18191    pub fn sk_X509_NAME_insert(
18192        sk: *mut stack_st_X509_NAME,
18193        p: *mut X509_NAME,
18194        where_: usize,
18195    ) -> usize;
18196}
18197unsafe extern "C" {
18198    #[link_name = "sk_X509_NAME_delete__extern"]
18199    pub fn sk_X509_NAME_delete(sk: *mut stack_st_X509_NAME, where_: usize) -> *mut X509_NAME;
18200}
18201unsafe extern "C" {
18202    #[link_name = "sk_X509_NAME_delete_ptr__extern"]
18203    pub fn sk_X509_NAME_delete_ptr(
18204        sk: *mut stack_st_X509_NAME,
18205        p: *const X509_NAME,
18206    ) -> *mut X509_NAME;
18207}
18208unsafe extern "C" {
18209    #[link_name = "sk_X509_NAME_delete_if__extern"]
18210    pub fn sk_X509_NAME_delete_if(
18211        sk: *mut stack_st_X509_NAME,
18212        func: sk_X509_NAME_delete_if_func,
18213        data: *mut ::core::ffi::c_void,
18214    );
18215}
18216unsafe extern "C" {
18217    #[link_name = "sk_X509_NAME_find__extern"]
18218    pub fn sk_X509_NAME_find(
18219        sk: *const stack_st_X509_NAME,
18220        out_index: *mut usize,
18221        p: *const X509_NAME,
18222    ) -> ::core::ffi::c_int;
18223}
18224unsafe extern "C" {
18225    #[link_name = "sk_X509_NAME_shift__extern"]
18226    pub fn sk_X509_NAME_shift(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18227}
18228unsafe extern "C" {
18229    #[link_name = "sk_X509_NAME_push__extern"]
18230    pub fn sk_X509_NAME_push(sk: *mut stack_st_X509_NAME, p: *mut X509_NAME) -> usize;
18231}
18232unsafe extern "C" {
18233    #[link_name = "sk_X509_NAME_pop__extern"]
18234    pub fn sk_X509_NAME_pop(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18235}
18236unsafe extern "C" {
18237    #[link_name = "sk_X509_NAME_dup__extern"]
18238    pub fn sk_X509_NAME_dup(sk: *const stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
18239}
18240unsafe extern "C" {
18241    #[link_name = "sk_X509_NAME_sort__extern"]
18242    pub fn sk_X509_NAME_sort(sk: *mut stack_st_X509_NAME);
18243}
18244unsafe extern "C" {
18245    #[link_name = "sk_X509_NAME_sort_and_dedup__extern"]
18246    pub fn sk_X509_NAME_sort_and_dedup(
18247        sk: *mut stack_st_X509_NAME,
18248        free_func: sk_X509_NAME_free_func,
18249    );
18250}
18251unsafe extern "C" {
18252    #[link_name = "sk_X509_NAME_is_sorted__extern"]
18253    pub fn sk_X509_NAME_is_sorted(sk: *const stack_st_X509_NAME) -> ::core::ffi::c_int;
18254}
18255unsafe extern "C" {
18256    #[link_name = "sk_X509_NAME_set_cmp_func__extern"]
18257    pub fn sk_X509_NAME_set_cmp_func(
18258        sk: *mut stack_st_X509_NAME,
18259        comp: sk_X509_NAME_cmp_func,
18260    ) -> sk_X509_NAME_cmp_func;
18261}
18262unsafe extern "C" {
18263    #[link_name = "sk_X509_NAME_deep_copy__extern"]
18264    pub fn sk_X509_NAME_deep_copy(
18265        sk: *const stack_st_X509_NAME,
18266        copy_func: sk_X509_NAME_copy_func,
18267        free_func: sk_X509_NAME_free_func,
18268    ) -> *mut stack_st_X509_NAME;
18269}
18270unsafe extern "C" {
18271    pub static X509_NAME_it: ASN1_ITEM;
18272}
18273unsafe extern "C" {
18274    pub fn X509_NAME_new() -> *mut X509_NAME;
18275}
18276unsafe extern "C" {
18277    pub fn X509_NAME_free(name: *mut X509_NAME);
18278}
18279unsafe extern "C" {
18280    pub fn d2i_X509_NAME(
18281        out: *mut *mut X509_NAME,
18282        inp: *mut *const u8,
18283        len: ::core::ffi::c_long,
18284    ) -> *mut X509_NAME;
18285}
18286unsafe extern "C" {
18287    pub fn i2d_X509_NAME(in_: *const X509_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18288}
18289unsafe extern "C" {
18290    pub fn X509_NAME_dup(name: *const X509_NAME) -> *mut X509_NAME;
18291}
18292unsafe extern "C" {
18293    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::core::ffi::c_int;
18294}
18295unsafe extern "C" {
18296    pub fn X509_NAME_get0_der(
18297        name: *const X509_NAME,
18298        out_der: *mut *const u8,
18299        out_der_len: *mut usize,
18300    ) -> ::core::ffi::c_int;
18301}
18302unsafe extern "C" {
18303    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *const X509_NAME) -> ::core::ffi::c_int;
18304}
18305unsafe extern "C" {
18306    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::core::ffi::c_int;
18307}
18308unsafe extern "C" {
18309    pub fn X509_NAME_get_index_by_NID(
18310        name: *const X509_NAME,
18311        nid: ::core::ffi::c_int,
18312        lastpos: ::core::ffi::c_int,
18313    ) -> ::core::ffi::c_int;
18314}
18315unsafe extern "C" {
18316    pub fn X509_NAME_get_index_by_OBJ(
18317        name: *const X509_NAME,
18318        obj: *const ASN1_OBJECT,
18319        lastpos: ::core::ffi::c_int,
18320    ) -> ::core::ffi::c_int;
18321}
18322unsafe extern "C" {
18323    pub fn X509_NAME_get_entry(
18324        name: *const X509_NAME,
18325        loc: ::core::ffi::c_int,
18326    ) -> *mut X509_NAME_ENTRY;
18327}
18328unsafe extern "C" {
18329    pub fn X509_NAME_delete_entry(
18330        name: *mut X509_NAME,
18331        loc: ::core::ffi::c_int,
18332    ) -> *mut X509_NAME_ENTRY;
18333}
18334unsafe extern "C" {
18335    pub fn X509_NAME_add_entry(
18336        name: *mut X509_NAME,
18337        entry: *const X509_NAME_ENTRY,
18338        loc: ::core::ffi::c_int,
18339        set: ::core::ffi::c_int,
18340    ) -> ::core::ffi::c_int;
18341}
18342unsafe extern "C" {
18343    pub fn X509_NAME_add_entry_by_OBJ(
18344        name: *mut X509_NAME,
18345        obj: *const ASN1_OBJECT,
18346        type_: ::core::ffi::c_int,
18347        bytes: *const u8,
18348        len: ossl_ssize_t,
18349        loc: ::core::ffi::c_int,
18350        set: ::core::ffi::c_int,
18351    ) -> ::core::ffi::c_int;
18352}
18353unsafe extern "C" {
18354    pub fn X509_NAME_add_entry_by_NID(
18355        name: *mut X509_NAME,
18356        nid: ::core::ffi::c_int,
18357        type_: ::core::ffi::c_int,
18358        bytes: *const u8,
18359        len: ossl_ssize_t,
18360        loc: ::core::ffi::c_int,
18361        set: ::core::ffi::c_int,
18362    ) -> ::core::ffi::c_int;
18363}
18364unsafe extern "C" {
18365    pub fn X509_NAME_add_entry_by_txt(
18366        name: *mut X509_NAME,
18367        field: *const ::core::ffi::c_char,
18368        type_: ::core::ffi::c_int,
18369        bytes: *const u8,
18370        len: ossl_ssize_t,
18371        loc: ::core::ffi::c_int,
18372        set: ::core::ffi::c_int,
18373    ) -> ::core::ffi::c_int;
18374}
18375unsafe extern "C" {
18376    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
18377}
18378unsafe extern "C" {
18379    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
18380}
18381unsafe extern "C" {
18382    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
18383}
18384unsafe extern "C" {
18385    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
18386}
18387unsafe extern "C" {
18388    pub fn X509_NAME_ENTRY_set_object(
18389        entry: *mut X509_NAME_ENTRY,
18390        obj: *const ASN1_OBJECT,
18391    ) -> ::core::ffi::c_int;
18392}
18393unsafe extern "C" {
18394    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
18395}
18396unsafe extern "C" {
18397    pub fn X509_NAME_ENTRY_set_data(
18398        entry: *mut X509_NAME_ENTRY,
18399        type_: ::core::ffi::c_int,
18400        bytes: *const u8,
18401        len: ossl_ssize_t,
18402    ) -> ::core::ffi::c_int;
18403}
18404unsafe extern "C" {
18405    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::core::ffi::c_int;
18406}
18407unsafe extern "C" {
18408    pub fn X509_NAME_ENTRY_create_by_OBJ(
18409        out: *mut *mut X509_NAME_ENTRY,
18410        obj: *const ASN1_OBJECT,
18411        type_: ::core::ffi::c_int,
18412        bytes: *const u8,
18413        len: ossl_ssize_t,
18414    ) -> *mut X509_NAME_ENTRY;
18415}
18416unsafe extern "C" {
18417    pub fn X509_NAME_ENTRY_create_by_NID(
18418        out: *mut *mut X509_NAME_ENTRY,
18419        nid: ::core::ffi::c_int,
18420        type_: ::core::ffi::c_int,
18421        bytes: *const u8,
18422        len: ossl_ssize_t,
18423    ) -> *mut X509_NAME_ENTRY;
18424}
18425unsafe extern "C" {
18426    pub fn X509_NAME_ENTRY_create_by_txt(
18427        out: *mut *mut X509_NAME_ENTRY,
18428        field: *const ::core::ffi::c_char,
18429        type_: ::core::ffi::c_int,
18430        bytes: *const u8,
18431        len: ossl_ssize_t,
18432    ) -> *mut X509_NAME_ENTRY;
18433}
18434unsafe extern "C" {
18435    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
18436}
18437unsafe extern "C" {
18438    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
18439}
18440unsafe extern "C" {
18441    pub fn d2i_X509_PUBKEY(
18442        out: *mut *mut X509_PUBKEY,
18443        inp: *mut *const u8,
18444        len: ::core::ffi::c_long,
18445    ) -> *mut X509_PUBKEY;
18446}
18447unsafe extern "C" {
18448    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
18449}
18450unsafe extern "C" {
18451    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
18452}
18453unsafe extern "C" {
18454    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18455}
18456unsafe extern "C" {
18457    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18458}
18459unsafe extern "C" {
18460    pub fn X509_PUBKEY_set0_param(
18461        pub_: *mut X509_PUBKEY,
18462        obj: *mut ASN1_OBJECT,
18463        param_type: ::core::ffi::c_int,
18464        param_value: *mut ::core::ffi::c_void,
18465        key: *mut u8,
18466        key_len: ::core::ffi::c_int,
18467    ) -> ::core::ffi::c_int;
18468}
18469unsafe extern "C" {
18470    pub fn X509_PUBKEY_get0_param(
18471        out_obj: *mut *mut ASN1_OBJECT,
18472        out_key: *mut *const u8,
18473        out_key_len: *mut ::core::ffi::c_int,
18474        out_alg: *mut *mut X509_ALGOR,
18475        pub_: *mut X509_PUBKEY,
18476    ) -> ::core::ffi::c_int;
18477}
18478unsafe extern "C" {
18479    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
18480}
18481unsafe extern "C" {
18482    pub static X509_EXTENSION_it: ASN1_ITEM;
18483}
18484unsafe extern "C" {
18485    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
18486}
18487unsafe extern "C" {
18488    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
18489}
18490unsafe extern "C" {
18491    pub fn d2i_X509_EXTENSION(
18492        out: *mut *mut X509_EXTENSION,
18493        inp: *mut *const u8,
18494        len: ::core::ffi::c_long,
18495    ) -> *mut X509_EXTENSION;
18496}
18497unsafe extern "C" {
18498    pub fn i2d_X509_EXTENSION(ex: *const X509_EXTENSION, outp: *mut *mut u8) -> ::core::ffi::c_int;
18499}
18500unsafe extern "C" {
18501    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
18502}
18503unsafe extern "C" {
18504    pub fn X509_EXTENSION_create_by_NID(
18505        ex: *mut *mut X509_EXTENSION,
18506        nid: ::core::ffi::c_int,
18507        crit: ::core::ffi::c_int,
18508        data: *const ASN1_OCTET_STRING,
18509    ) -> *mut X509_EXTENSION;
18510}
18511unsafe extern "C" {
18512    pub fn X509_EXTENSION_create_by_OBJ(
18513        ex: *mut *mut X509_EXTENSION,
18514        obj: *const ASN1_OBJECT,
18515        crit: ::core::ffi::c_int,
18516        data: *const ASN1_OCTET_STRING,
18517    ) -> *mut X509_EXTENSION;
18518}
18519unsafe extern "C" {
18520    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
18521}
18522unsafe extern "C" {
18523    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
18524}
18525unsafe extern "C" {
18526    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
18527}
18528unsafe extern "C" {
18529    pub fn X509_EXTENSION_set_object(
18530        ex: *mut X509_EXTENSION,
18531        obj: *const ASN1_OBJECT,
18532    ) -> ::core::ffi::c_int;
18533}
18534unsafe extern "C" {
18535    pub fn X509_EXTENSION_set_critical(
18536        ex: *mut X509_EXTENSION,
18537        crit: ::core::ffi::c_int,
18538    ) -> ::core::ffi::c_int;
18539}
18540unsafe extern "C" {
18541    pub fn X509_EXTENSION_set_data(
18542        ex: *mut X509_EXTENSION,
18543        data: *const ASN1_OCTET_STRING,
18544    ) -> ::core::ffi::c_int;
18545}
18546pub type sk_X509_EXTENSION_free_func =
18547    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
18548pub type sk_X509_EXTENSION_copy_func = ::core::option::Option<
18549    unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION,
18550>;
18551pub type sk_X509_EXTENSION_cmp_func = ::core::option::Option<
18552    unsafe extern "C" fn(
18553        arg1: *const *const X509_EXTENSION,
18554        arg2: *const *const X509_EXTENSION,
18555    ) -> ::core::ffi::c_int,
18556>;
18557pub type sk_X509_EXTENSION_delete_if_func = ::core::option::Option<
18558    unsafe extern "C" fn(
18559        arg1: *mut X509_EXTENSION,
18560        arg2: *mut ::core::ffi::c_void,
18561    ) -> ::core::ffi::c_int,
18562>;
18563unsafe extern "C" {
18564    #[link_name = "sk_X509_EXTENSION_call_free_func__extern"]
18565    pub fn sk_X509_EXTENSION_call_free_func(
18566        free_func: OPENSSL_sk_free_func,
18567        ptr: *mut ::core::ffi::c_void,
18568    );
18569}
18570unsafe extern "C" {
18571    #[link_name = "sk_X509_EXTENSION_call_copy_func__extern"]
18572    pub fn sk_X509_EXTENSION_call_copy_func(
18573        copy_func: OPENSSL_sk_copy_func,
18574        ptr: *const ::core::ffi::c_void,
18575    ) -> *mut ::core::ffi::c_void;
18576}
18577unsafe extern "C" {
18578    #[link_name = "sk_X509_EXTENSION_call_cmp_func__extern"]
18579    pub fn sk_X509_EXTENSION_call_cmp_func(
18580        cmp_func: OPENSSL_sk_cmp_func,
18581        a: *const ::core::ffi::c_void,
18582        b: *const ::core::ffi::c_void,
18583    ) -> ::core::ffi::c_int;
18584}
18585unsafe extern "C" {
18586    #[link_name = "sk_X509_EXTENSION_call_delete_if_func__extern"]
18587    pub fn sk_X509_EXTENSION_call_delete_if_func(
18588        func: OPENSSL_sk_delete_if_func,
18589        obj: *mut ::core::ffi::c_void,
18590        data: *mut ::core::ffi::c_void,
18591    ) -> ::core::ffi::c_int;
18592}
18593unsafe extern "C" {
18594    #[link_name = "sk_X509_EXTENSION_new__extern"]
18595    pub fn sk_X509_EXTENSION_new(comp: sk_X509_EXTENSION_cmp_func) -> *mut stack_st_X509_EXTENSION;
18596}
18597unsafe extern "C" {
18598    #[link_name = "sk_X509_EXTENSION_new_null__extern"]
18599    pub fn sk_X509_EXTENSION_new_null() -> *mut stack_st_X509_EXTENSION;
18600}
18601unsafe extern "C" {
18602    #[link_name = "sk_X509_EXTENSION_num__extern"]
18603    pub fn sk_X509_EXTENSION_num(sk: *const stack_st_X509_EXTENSION) -> usize;
18604}
18605unsafe extern "C" {
18606    #[link_name = "sk_X509_EXTENSION_zero__extern"]
18607    pub fn sk_X509_EXTENSION_zero(sk: *mut stack_st_X509_EXTENSION);
18608}
18609unsafe extern "C" {
18610    #[link_name = "sk_X509_EXTENSION_value__extern"]
18611    pub fn sk_X509_EXTENSION_value(
18612        sk: *const stack_st_X509_EXTENSION,
18613        i: usize,
18614    ) -> *mut X509_EXTENSION;
18615}
18616unsafe extern "C" {
18617    #[link_name = "sk_X509_EXTENSION_last__extern"]
18618    pub fn sk_X509_EXTENSION_last(sk: *const stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18619}
18620unsafe extern "C" {
18621    #[link_name = "sk_X509_EXTENSION_set__extern"]
18622    pub fn sk_X509_EXTENSION_set(
18623        sk: *mut stack_st_X509_EXTENSION,
18624        i: usize,
18625        p: *mut X509_EXTENSION,
18626    ) -> *mut X509_EXTENSION;
18627}
18628unsafe extern "C" {
18629    #[link_name = "sk_X509_EXTENSION_free__extern"]
18630    pub fn sk_X509_EXTENSION_free(sk: *mut stack_st_X509_EXTENSION);
18631}
18632unsafe extern "C" {
18633    #[link_name = "sk_X509_EXTENSION_pop_free__extern"]
18634    pub fn sk_X509_EXTENSION_pop_free(
18635        sk: *mut stack_st_X509_EXTENSION,
18636        free_func: sk_X509_EXTENSION_free_func,
18637    );
18638}
18639unsafe extern "C" {
18640    #[link_name = "sk_X509_EXTENSION_insert__extern"]
18641    pub fn sk_X509_EXTENSION_insert(
18642        sk: *mut stack_st_X509_EXTENSION,
18643        p: *mut X509_EXTENSION,
18644        where_: usize,
18645    ) -> usize;
18646}
18647unsafe extern "C" {
18648    #[link_name = "sk_X509_EXTENSION_delete__extern"]
18649    pub fn sk_X509_EXTENSION_delete(
18650        sk: *mut stack_st_X509_EXTENSION,
18651        where_: usize,
18652    ) -> *mut X509_EXTENSION;
18653}
18654unsafe extern "C" {
18655    #[link_name = "sk_X509_EXTENSION_delete_ptr__extern"]
18656    pub fn sk_X509_EXTENSION_delete_ptr(
18657        sk: *mut stack_st_X509_EXTENSION,
18658        p: *const X509_EXTENSION,
18659    ) -> *mut X509_EXTENSION;
18660}
18661unsafe extern "C" {
18662    #[link_name = "sk_X509_EXTENSION_delete_if__extern"]
18663    pub fn sk_X509_EXTENSION_delete_if(
18664        sk: *mut stack_st_X509_EXTENSION,
18665        func: sk_X509_EXTENSION_delete_if_func,
18666        data: *mut ::core::ffi::c_void,
18667    );
18668}
18669unsafe extern "C" {
18670    #[link_name = "sk_X509_EXTENSION_find__extern"]
18671    pub fn sk_X509_EXTENSION_find(
18672        sk: *const stack_st_X509_EXTENSION,
18673        out_index: *mut usize,
18674        p: *const X509_EXTENSION,
18675    ) -> ::core::ffi::c_int;
18676}
18677unsafe extern "C" {
18678    #[link_name = "sk_X509_EXTENSION_shift__extern"]
18679    pub fn sk_X509_EXTENSION_shift(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18680}
18681unsafe extern "C" {
18682    #[link_name = "sk_X509_EXTENSION_push__extern"]
18683    pub fn sk_X509_EXTENSION_push(
18684        sk: *mut stack_st_X509_EXTENSION,
18685        p: *mut X509_EXTENSION,
18686    ) -> usize;
18687}
18688unsafe extern "C" {
18689    #[link_name = "sk_X509_EXTENSION_pop__extern"]
18690    pub fn sk_X509_EXTENSION_pop(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18691}
18692unsafe extern "C" {
18693    #[link_name = "sk_X509_EXTENSION_dup__extern"]
18694    pub fn sk_X509_EXTENSION_dup(
18695        sk: *const stack_st_X509_EXTENSION,
18696    ) -> *mut stack_st_X509_EXTENSION;
18697}
18698unsafe extern "C" {
18699    #[link_name = "sk_X509_EXTENSION_sort__extern"]
18700    pub fn sk_X509_EXTENSION_sort(sk: *mut stack_st_X509_EXTENSION);
18701}
18702unsafe extern "C" {
18703    #[link_name = "sk_X509_EXTENSION_sort_and_dedup__extern"]
18704    pub fn sk_X509_EXTENSION_sort_and_dedup(
18705        sk: *mut stack_st_X509_EXTENSION,
18706        free_func: sk_X509_EXTENSION_free_func,
18707    );
18708}
18709unsafe extern "C" {
18710    #[link_name = "sk_X509_EXTENSION_is_sorted__extern"]
18711    pub fn sk_X509_EXTENSION_is_sorted(sk: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18712}
18713unsafe extern "C" {
18714    #[link_name = "sk_X509_EXTENSION_set_cmp_func__extern"]
18715    pub fn sk_X509_EXTENSION_set_cmp_func(
18716        sk: *mut stack_st_X509_EXTENSION,
18717        comp: sk_X509_EXTENSION_cmp_func,
18718    ) -> sk_X509_EXTENSION_cmp_func;
18719}
18720unsafe extern "C" {
18721    #[link_name = "sk_X509_EXTENSION_deep_copy__extern"]
18722    pub fn sk_X509_EXTENSION_deep_copy(
18723        sk: *const stack_st_X509_EXTENSION,
18724        copy_func: sk_X509_EXTENSION_copy_func,
18725        free_func: sk_X509_EXTENSION_free_func,
18726    ) -> *mut stack_st_X509_EXTENSION;
18727}
18728pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
18729unsafe extern "C" {
18730    pub fn d2i_X509_EXTENSIONS(
18731        out: *mut *mut X509_EXTENSIONS,
18732        inp: *mut *const u8,
18733        len: ::core::ffi::c_long,
18734    ) -> *mut X509_EXTENSIONS;
18735}
18736unsafe extern "C" {
18737    pub fn i2d_X509_EXTENSIONS(
18738        alg: *const X509_EXTENSIONS,
18739        outp: *mut *mut u8,
18740    ) -> ::core::ffi::c_int;
18741}
18742unsafe extern "C" {
18743    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18744}
18745unsafe extern "C" {
18746    pub fn X509v3_get_ext_by_NID(
18747        x: *const stack_st_X509_EXTENSION,
18748        nid: ::core::ffi::c_int,
18749        lastpos: ::core::ffi::c_int,
18750    ) -> ::core::ffi::c_int;
18751}
18752unsafe extern "C" {
18753    pub fn X509v3_get_ext_by_OBJ(
18754        x: *const stack_st_X509_EXTENSION,
18755        obj: *const ASN1_OBJECT,
18756        lastpos: ::core::ffi::c_int,
18757    ) -> ::core::ffi::c_int;
18758}
18759unsafe extern "C" {
18760    pub fn X509v3_get_ext_by_critical(
18761        x: *const stack_st_X509_EXTENSION,
18762        crit: ::core::ffi::c_int,
18763        lastpos: ::core::ffi::c_int,
18764    ) -> ::core::ffi::c_int;
18765}
18766unsafe extern "C" {
18767    pub fn X509v3_get_ext(
18768        x: *const stack_st_X509_EXTENSION,
18769        loc: ::core::ffi::c_int,
18770    ) -> *mut X509_EXTENSION;
18771}
18772unsafe extern "C" {
18773    pub fn X509v3_delete_ext(
18774        x: *mut stack_st_X509_EXTENSION,
18775        loc: ::core::ffi::c_int,
18776    ) -> *mut X509_EXTENSION;
18777}
18778unsafe extern "C" {
18779    pub fn X509v3_add_ext(
18780        x: *mut *mut stack_st_X509_EXTENSION,
18781        ex: *const X509_EXTENSION,
18782        loc: ::core::ffi::c_int,
18783    ) -> *mut stack_st_X509_EXTENSION;
18784}
18785unsafe extern "C" {
18786    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::core::ffi::c_void;
18787}
18788unsafe extern "C" {
18789    pub fn X509V3_get_d2i(
18790        extensions: *const stack_st_X509_EXTENSION,
18791        nid: ::core::ffi::c_int,
18792        out_critical: *mut ::core::ffi::c_int,
18793        out_idx: *mut ::core::ffi::c_int,
18794    ) -> *mut ::core::ffi::c_void;
18795}
18796unsafe extern "C" {
18797    pub fn X509V3_EXT_free(
18798        nid: ::core::ffi::c_int,
18799        ext_data: *mut ::core::ffi::c_void,
18800    ) -> ::core::ffi::c_int;
18801}
18802unsafe extern "C" {
18803    pub fn X509V3_EXT_i2d(
18804        ext_nid: ::core::ffi::c_int,
18805        crit: ::core::ffi::c_int,
18806        ext_struc: *mut ::core::ffi::c_void,
18807    ) -> *mut X509_EXTENSION;
18808}
18809unsafe extern "C" {
18810    pub fn X509V3_add1_i2d(
18811        x: *mut *mut stack_st_X509_EXTENSION,
18812        nid: ::core::ffi::c_int,
18813        value: *mut ::core::ffi::c_void,
18814        crit: ::core::ffi::c_int,
18815        flags: ::core::ffi::c_ulong,
18816    ) -> ::core::ffi::c_int;
18817}
18818#[repr(C)]
18819#[derive(Debug, Copy, Clone)]
18820pub struct BASIC_CONSTRAINTS_st {
18821    pub ca: ASN1_BOOLEAN,
18822    pub pathlen: *mut ASN1_INTEGER,
18823}
18824unsafe extern "C" {
18825    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
18826}
18827unsafe extern "C" {
18828    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
18829}
18830unsafe extern "C" {
18831    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
18832}
18833unsafe extern "C" {
18834    pub fn d2i_BASIC_CONSTRAINTS(
18835        out: *mut *mut BASIC_CONSTRAINTS,
18836        inp: *mut *const u8,
18837        len: ::core::ffi::c_long,
18838    ) -> *mut BASIC_CONSTRAINTS;
18839}
18840unsafe extern "C" {
18841    pub fn i2d_BASIC_CONSTRAINTS(
18842        bcons: *const BASIC_CONSTRAINTS,
18843        outp: *mut *mut u8,
18844    ) -> ::core::ffi::c_int;
18845}
18846pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
18847unsafe extern "C" {
18848    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
18849}
18850unsafe extern "C" {
18851    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
18852}
18853unsafe extern "C" {
18854    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
18855}
18856unsafe extern "C" {
18857    pub fn d2i_EXTENDED_KEY_USAGE(
18858        out: *mut *mut EXTENDED_KEY_USAGE,
18859        inp: *mut *const u8,
18860        len: ::core::ffi::c_long,
18861    ) -> *mut EXTENDED_KEY_USAGE;
18862}
18863unsafe extern "C" {
18864    pub fn i2d_EXTENDED_KEY_USAGE(
18865        eku: *const EXTENDED_KEY_USAGE,
18866        outp: *mut *mut u8,
18867    ) -> ::core::ffi::c_int;
18868}
18869#[repr(C)]
18870#[derive(Debug, Copy, Clone)]
18871pub struct otherName_st {
18872    pub type_id: *mut ASN1_OBJECT,
18873    pub value: *mut ASN1_TYPE,
18874}
18875pub type OTHERNAME = otherName_st;
18876#[repr(C)]
18877#[derive(Debug, Copy, Clone)]
18878pub struct EDIPartyName_st {
18879    pub nameAssigner: *mut ASN1_STRING,
18880    pub partyName: *mut ASN1_STRING,
18881}
18882pub type EDIPARTYNAME = EDIPartyName_st;
18883#[repr(C)]
18884#[derive(Copy, Clone)]
18885pub struct GENERAL_NAME_st {
18886    pub type_: ::core::ffi::c_int,
18887    pub d: GENERAL_NAME_st__bindgen_ty_1,
18888}
18889#[repr(C)]
18890#[derive(Copy, Clone)]
18891pub union GENERAL_NAME_st__bindgen_ty_1 {
18892    pub ptr: *mut ::core::ffi::c_char,
18893    pub otherName: *mut OTHERNAME,
18894    pub rfc822Name: *mut ASN1_IA5STRING,
18895    pub dNSName: *mut ASN1_IA5STRING,
18896    pub x400Address: *mut ASN1_STRING,
18897    pub directoryName: *mut X509_NAME,
18898    pub ediPartyName: *mut EDIPARTYNAME,
18899    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
18900    pub iPAddress: *mut ASN1_OCTET_STRING,
18901    pub registeredID: *mut ASN1_OBJECT,
18902    pub ip: *mut ASN1_OCTET_STRING,
18903    pub dirn: *mut X509_NAME,
18904    pub ia5: *mut ASN1_IA5STRING,
18905    pub rid: *mut ASN1_OBJECT,
18906}
18907unsafe extern "C" {
18908    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
18909}
18910unsafe extern "C" {
18911    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
18912}
18913unsafe extern "C" {
18914    pub fn d2i_GENERAL_NAME(
18915        out: *mut *mut GENERAL_NAME,
18916        inp: *mut *const u8,
18917        len: ::core::ffi::c_long,
18918    ) -> *mut GENERAL_NAME;
18919}
18920unsafe extern "C" {
18921    pub fn i2d_GENERAL_NAME(in_: *const GENERAL_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18922}
18923unsafe extern "C" {
18924    pub fn GENERAL_NAME_dup(gen_: *const GENERAL_NAME) -> *mut GENERAL_NAME;
18925}
18926unsafe extern "C" {
18927    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
18928}
18929unsafe extern "C" {
18930    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
18931}
18932unsafe extern "C" {
18933    pub fn d2i_GENERAL_NAMES(
18934        out: *mut *mut GENERAL_NAMES,
18935        inp: *mut *const u8,
18936        len: ::core::ffi::c_long,
18937    ) -> *mut GENERAL_NAMES;
18938}
18939unsafe extern "C" {
18940    pub fn i2d_GENERAL_NAMES(in_: *const GENERAL_NAMES, outp: *mut *mut u8) -> ::core::ffi::c_int;
18941}
18942unsafe extern "C" {
18943    pub fn OTHERNAME_new() -> *mut OTHERNAME;
18944}
18945unsafe extern "C" {
18946    pub fn OTHERNAME_free(name: *mut OTHERNAME);
18947}
18948unsafe extern "C" {
18949    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
18950}
18951unsafe extern "C" {
18952    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
18953}
18954unsafe extern "C" {
18955    pub fn GENERAL_NAME_set0_value(
18956        gen_: *mut GENERAL_NAME,
18957        type_: ::core::ffi::c_int,
18958        value: *mut ::core::ffi::c_void,
18959    );
18960}
18961unsafe extern "C" {
18962    pub fn GENERAL_NAME_get0_value(
18963        gen_: *const GENERAL_NAME,
18964        out_type: *mut ::core::ffi::c_int,
18965    ) -> *mut ::core::ffi::c_void;
18966}
18967unsafe extern "C" {
18968    pub fn GENERAL_NAME_set0_othername(
18969        gen_: *mut GENERAL_NAME,
18970        oid: *mut ASN1_OBJECT,
18971        value: *mut ASN1_TYPE,
18972    ) -> ::core::ffi::c_int;
18973}
18974unsafe extern "C" {
18975    pub fn GENERAL_NAME_get0_otherName(
18976        gen_: *const GENERAL_NAME,
18977        out_oid: *mut *mut ASN1_OBJECT,
18978        out_value: *mut *mut ASN1_TYPE,
18979    ) -> ::core::ffi::c_int;
18980}
18981#[repr(C)]
18982#[derive(Debug, Copy, Clone)]
18983pub struct AUTHORITY_KEYID_st {
18984    pub keyid: *mut ASN1_OCTET_STRING,
18985    pub issuer: *mut GENERAL_NAMES,
18986    pub serial: *mut ASN1_INTEGER,
18987}
18988unsafe extern "C" {
18989    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
18990}
18991unsafe extern "C" {
18992    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
18993}
18994unsafe extern "C" {
18995    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
18996}
18997unsafe extern "C" {
18998    pub fn d2i_AUTHORITY_KEYID(
18999        out: *mut *mut AUTHORITY_KEYID,
19000        inp: *mut *const u8,
19001        len: ::core::ffi::c_long,
19002    ) -> *mut AUTHORITY_KEYID;
19003}
19004unsafe extern "C" {
19005    pub fn i2d_AUTHORITY_KEYID(
19006        akid: *const AUTHORITY_KEYID,
19007        outp: *mut *mut u8,
19008    ) -> ::core::ffi::c_int;
19009}
19010#[repr(C)]
19011#[derive(Debug, Copy, Clone)]
19012pub struct GENERAL_SUBTREE_st {
19013    pub base: *mut GENERAL_NAME,
19014    pub minimum: *mut ASN1_INTEGER,
19015    pub maximum: *mut ASN1_INTEGER,
19016}
19017pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
19018#[repr(C)]
19019#[derive(Debug)]
19020pub struct stack_st_GENERAL_SUBTREE {
19021    _unused: [u8; 0],
19022}
19023pub type sk_GENERAL_SUBTREE_free_func =
19024    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
19025pub type sk_GENERAL_SUBTREE_copy_func = ::core::option::Option<
19026    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
19027>;
19028pub type sk_GENERAL_SUBTREE_cmp_func = ::core::option::Option<
19029    unsafe extern "C" fn(
19030        arg1: *const *const GENERAL_SUBTREE,
19031        arg2: *const *const GENERAL_SUBTREE,
19032    ) -> ::core::ffi::c_int,
19033>;
19034pub type sk_GENERAL_SUBTREE_delete_if_func = ::core::option::Option<
19035    unsafe extern "C" fn(
19036        arg1: *mut GENERAL_SUBTREE,
19037        arg2: *mut ::core::ffi::c_void,
19038    ) -> ::core::ffi::c_int,
19039>;
19040unsafe extern "C" {
19041    #[link_name = "sk_GENERAL_SUBTREE_call_free_func__extern"]
19042    pub fn sk_GENERAL_SUBTREE_call_free_func(
19043        free_func: OPENSSL_sk_free_func,
19044        ptr: *mut ::core::ffi::c_void,
19045    );
19046}
19047unsafe extern "C" {
19048    #[link_name = "sk_GENERAL_SUBTREE_call_copy_func__extern"]
19049    pub fn sk_GENERAL_SUBTREE_call_copy_func(
19050        copy_func: OPENSSL_sk_copy_func,
19051        ptr: *const ::core::ffi::c_void,
19052    ) -> *mut ::core::ffi::c_void;
19053}
19054unsafe extern "C" {
19055    #[link_name = "sk_GENERAL_SUBTREE_call_cmp_func__extern"]
19056    pub fn sk_GENERAL_SUBTREE_call_cmp_func(
19057        cmp_func: OPENSSL_sk_cmp_func,
19058        a: *const ::core::ffi::c_void,
19059        b: *const ::core::ffi::c_void,
19060    ) -> ::core::ffi::c_int;
19061}
19062unsafe extern "C" {
19063    #[link_name = "sk_GENERAL_SUBTREE_call_delete_if_func__extern"]
19064    pub fn sk_GENERAL_SUBTREE_call_delete_if_func(
19065        func: OPENSSL_sk_delete_if_func,
19066        obj: *mut ::core::ffi::c_void,
19067        data: *mut ::core::ffi::c_void,
19068    ) -> ::core::ffi::c_int;
19069}
19070unsafe extern "C" {
19071    #[link_name = "sk_GENERAL_SUBTREE_new__extern"]
19072    pub fn sk_GENERAL_SUBTREE_new(
19073        comp: sk_GENERAL_SUBTREE_cmp_func,
19074    ) -> *mut stack_st_GENERAL_SUBTREE;
19075}
19076unsafe extern "C" {
19077    #[link_name = "sk_GENERAL_SUBTREE_new_null__extern"]
19078    pub fn sk_GENERAL_SUBTREE_new_null() -> *mut stack_st_GENERAL_SUBTREE;
19079}
19080unsafe extern "C" {
19081    #[link_name = "sk_GENERAL_SUBTREE_num__extern"]
19082    pub fn sk_GENERAL_SUBTREE_num(sk: *const stack_st_GENERAL_SUBTREE) -> usize;
19083}
19084unsafe extern "C" {
19085    #[link_name = "sk_GENERAL_SUBTREE_zero__extern"]
19086    pub fn sk_GENERAL_SUBTREE_zero(sk: *mut stack_st_GENERAL_SUBTREE);
19087}
19088unsafe extern "C" {
19089    #[link_name = "sk_GENERAL_SUBTREE_value__extern"]
19090    pub fn sk_GENERAL_SUBTREE_value(
19091        sk: *const stack_st_GENERAL_SUBTREE,
19092        i: usize,
19093    ) -> *mut GENERAL_SUBTREE;
19094}
19095unsafe extern "C" {
19096    #[link_name = "sk_GENERAL_SUBTREE_last__extern"]
19097    pub fn sk_GENERAL_SUBTREE_last(sk: *const stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
19098}
19099unsafe extern "C" {
19100    #[link_name = "sk_GENERAL_SUBTREE_set__extern"]
19101    pub fn sk_GENERAL_SUBTREE_set(
19102        sk: *mut stack_st_GENERAL_SUBTREE,
19103        i: usize,
19104        p: *mut GENERAL_SUBTREE,
19105    ) -> *mut GENERAL_SUBTREE;
19106}
19107unsafe extern "C" {
19108    #[link_name = "sk_GENERAL_SUBTREE_free__extern"]
19109    pub fn sk_GENERAL_SUBTREE_free(sk: *mut stack_st_GENERAL_SUBTREE);
19110}
19111unsafe extern "C" {
19112    #[link_name = "sk_GENERAL_SUBTREE_pop_free__extern"]
19113    pub fn sk_GENERAL_SUBTREE_pop_free(
19114        sk: *mut stack_st_GENERAL_SUBTREE,
19115        free_func: sk_GENERAL_SUBTREE_free_func,
19116    );
19117}
19118unsafe extern "C" {
19119    #[link_name = "sk_GENERAL_SUBTREE_insert__extern"]
19120    pub fn sk_GENERAL_SUBTREE_insert(
19121        sk: *mut stack_st_GENERAL_SUBTREE,
19122        p: *mut GENERAL_SUBTREE,
19123        where_: usize,
19124    ) -> usize;
19125}
19126unsafe extern "C" {
19127    #[link_name = "sk_GENERAL_SUBTREE_delete__extern"]
19128    pub fn sk_GENERAL_SUBTREE_delete(
19129        sk: *mut stack_st_GENERAL_SUBTREE,
19130        where_: usize,
19131    ) -> *mut GENERAL_SUBTREE;
19132}
19133unsafe extern "C" {
19134    #[link_name = "sk_GENERAL_SUBTREE_delete_ptr__extern"]
19135    pub fn sk_GENERAL_SUBTREE_delete_ptr(
19136        sk: *mut stack_st_GENERAL_SUBTREE,
19137        p: *const GENERAL_SUBTREE,
19138    ) -> *mut GENERAL_SUBTREE;
19139}
19140unsafe extern "C" {
19141    #[link_name = "sk_GENERAL_SUBTREE_delete_if__extern"]
19142    pub fn sk_GENERAL_SUBTREE_delete_if(
19143        sk: *mut stack_st_GENERAL_SUBTREE,
19144        func: sk_GENERAL_SUBTREE_delete_if_func,
19145        data: *mut ::core::ffi::c_void,
19146    );
19147}
19148unsafe extern "C" {
19149    #[link_name = "sk_GENERAL_SUBTREE_find__extern"]
19150    pub fn sk_GENERAL_SUBTREE_find(
19151        sk: *const stack_st_GENERAL_SUBTREE,
19152        out_index: *mut usize,
19153        p: *const GENERAL_SUBTREE,
19154    ) -> ::core::ffi::c_int;
19155}
19156unsafe extern "C" {
19157    #[link_name = "sk_GENERAL_SUBTREE_shift__extern"]
19158    pub fn sk_GENERAL_SUBTREE_shift(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
19159}
19160unsafe extern "C" {
19161    #[link_name = "sk_GENERAL_SUBTREE_push__extern"]
19162    pub fn sk_GENERAL_SUBTREE_push(
19163        sk: *mut stack_st_GENERAL_SUBTREE,
19164        p: *mut GENERAL_SUBTREE,
19165    ) -> usize;
19166}
19167unsafe extern "C" {
19168    #[link_name = "sk_GENERAL_SUBTREE_pop__extern"]
19169    pub fn sk_GENERAL_SUBTREE_pop(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
19170}
19171unsafe extern "C" {
19172    #[link_name = "sk_GENERAL_SUBTREE_dup__extern"]
19173    pub fn sk_GENERAL_SUBTREE_dup(
19174        sk: *const stack_st_GENERAL_SUBTREE,
19175    ) -> *mut stack_st_GENERAL_SUBTREE;
19176}
19177unsafe extern "C" {
19178    #[link_name = "sk_GENERAL_SUBTREE_sort__extern"]
19179    pub fn sk_GENERAL_SUBTREE_sort(sk: *mut stack_st_GENERAL_SUBTREE);
19180}
19181unsafe extern "C" {
19182    #[link_name = "sk_GENERAL_SUBTREE_sort_and_dedup__extern"]
19183    pub fn sk_GENERAL_SUBTREE_sort_and_dedup(
19184        sk: *mut stack_st_GENERAL_SUBTREE,
19185        free_func: sk_GENERAL_SUBTREE_free_func,
19186    );
19187}
19188unsafe extern "C" {
19189    #[link_name = "sk_GENERAL_SUBTREE_is_sorted__extern"]
19190    pub fn sk_GENERAL_SUBTREE_is_sorted(sk: *const stack_st_GENERAL_SUBTREE) -> ::core::ffi::c_int;
19191}
19192unsafe extern "C" {
19193    #[link_name = "sk_GENERAL_SUBTREE_set_cmp_func__extern"]
19194    pub fn sk_GENERAL_SUBTREE_set_cmp_func(
19195        sk: *mut stack_st_GENERAL_SUBTREE,
19196        comp: sk_GENERAL_SUBTREE_cmp_func,
19197    ) -> sk_GENERAL_SUBTREE_cmp_func;
19198}
19199unsafe extern "C" {
19200    #[link_name = "sk_GENERAL_SUBTREE_deep_copy__extern"]
19201    pub fn sk_GENERAL_SUBTREE_deep_copy(
19202        sk: *const stack_st_GENERAL_SUBTREE,
19203        copy_func: sk_GENERAL_SUBTREE_copy_func,
19204        free_func: sk_GENERAL_SUBTREE_free_func,
19205    ) -> *mut stack_st_GENERAL_SUBTREE;
19206}
19207unsafe extern "C" {
19208    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
19209}
19210unsafe extern "C" {
19211    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
19212}
19213#[repr(C)]
19214#[derive(Debug, Copy, Clone)]
19215pub struct NAME_CONSTRAINTS_st {
19216    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
19217    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
19218}
19219unsafe extern "C" {
19220    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
19221}
19222unsafe extern "C" {
19223    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
19224}
19225unsafe extern "C" {
19226    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
19227}
19228#[repr(C)]
19229#[derive(Debug, Copy, Clone)]
19230pub struct ACCESS_DESCRIPTION_st {
19231    pub method: *mut ASN1_OBJECT,
19232    pub location: *mut GENERAL_NAME,
19233}
19234pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
19235#[repr(C)]
19236#[derive(Debug)]
19237pub struct stack_st_ACCESS_DESCRIPTION {
19238    _unused: [u8; 0],
19239}
19240pub type sk_ACCESS_DESCRIPTION_free_func =
19241    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
19242pub type sk_ACCESS_DESCRIPTION_copy_func = ::core::option::Option<
19243    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
19244>;
19245pub type sk_ACCESS_DESCRIPTION_cmp_func = ::core::option::Option<
19246    unsafe extern "C" fn(
19247        arg1: *const *const ACCESS_DESCRIPTION,
19248        arg2: *const *const ACCESS_DESCRIPTION,
19249    ) -> ::core::ffi::c_int,
19250>;
19251pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::core::option::Option<
19252    unsafe extern "C" fn(
19253        arg1: *mut ACCESS_DESCRIPTION,
19254        arg2: *mut ::core::ffi::c_void,
19255    ) -> ::core::ffi::c_int,
19256>;
19257unsafe extern "C" {
19258    #[link_name = "sk_ACCESS_DESCRIPTION_call_free_func__extern"]
19259    pub fn sk_ACCESS_DESCRIPTION_call_free_func(
19260        free_func: OPENSSL_sk_free_func,
19261        ptr: *mut ::core::ffi::c_void,
19262    );
19263}
19264unsafe extern "C" {
19265    #[link_name = "sk_ACCESS_DESCRIPTION_call_copy_func__extern"]
19266    pub fn sk_ACCESS_DESCRIPTION_call_copy_func(
19267        copy_func: OPENSSL_sk_copy_func,
19268        ptr: *const ::core::ffi::c_void,
19269    ) -> *mut ::core::ffi::c_void;
19270}
19271unsafe extern "C" {
19272    #[link_name = "sk_ACCESS_DESCRIPTION_call_cmp_func__extern"]
19273    pub fn sk_ACCESS_DESCRIPTION_call_cmp_func(
19274        cmp_func: OPENSSL_sk_cmp_func,
19275        a: *const ::core::ffi::c_void,
19276        b: *const ::core::ffi::c_void,
19277    ) -> ::core::ffi::c_int;
19278}
19279unsafe extern "C" {
19280    #[link_name = "sk_ACCESS_DESCRIPTION_call_delete_if_func__extern"]
19281    pub fn sk_ACCESS_DESCRIPTION_call_delete_if_func(
19282        func: OPENSSL_sk_delete_if_func,
19283        obj: *mut ::core::ffi::c_void,
19284        data: *mut ::core::ffi::c_void,
19285    ) -> ::core::ffi::c_int;
19286}
19287unsafe extern "C" {
19288    #[link_name = "sk_ACCESS_DESCRIPTION_new__extern"]
19289    pub fn sk_ACCESS_DESCRIPTION_new(
19290        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19291    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19292}
19293unsafe extern "C" {
19294    #[link_name = "sk_ACCESS_DESCRIPTION_new_null__extern"]
19295    pub fn sk_ACCESS_DESCRIPTION_new_null() -> *mut stack_st_ACCESS_DESCRIPTION;
19296}
19297unsafe extern "C" {
19298    #[link_name = "sk_ACCESS_DESCRIPTION_num__extern"]
19299    pub fn sk_ACCESS_DESCRIPTION_num(sk: *const stack_st_ACCESS_DESCRIPTION) -> usize;
19300}
19301unsafe extern "C" {
19302    #[link_name = "sk_ACCESS_DESCRIPTION_zero__extern"]
19303    pub fn sk_ACCESS_DESCRIPTION_zero(sk: *mut stack_st_ACCESS_DESCRIPTION);
19304}
19305unsafe extern "C" {
19306    #[link_name = "sk_ACCESS_DESCRIPTION_value__extern"]
19307    pub fn sk_ACCESS_DESCRIPTION_value(
19308        sk: *const stack_st_ACCESS_DESCRIPTION,
19309        i: usize,
19310    ) -> *mut ACCESS_DESCRIPTION;
19311}
19312unsafe extern "C" {
19313    #[link_name = "sk_ACCESS_DESCRIPTION_last__extern"]
19314    pub fn sk_ACCESS_DESCRIPTION_last(
19315        sk: *const stack_st_ACCESS_DESCRIPTION,
19316    ) -> *mut ACCESS_DESCRIPTION;
19317}
19318unsafe extern "C" {
19319    #[link_name = "sk_ACCESS_DESCRIPTION_set__extern"]
19320    pub fn sk_ACCESS_DESCRIPTION_set(
19321        sk: *mut stack_st_ACCESS_DESCRIPTION,
19322        i: usize,
19323        p: *mut ACCESS_DESCRIPTION,
19324    ) -> *mut ACCESS_DESCRIPTION;
19325}
19326unsafe extern "C" {
19327    #[link_name = "sk_ACCESS_DESCRIPTION_free__extern"]
19328    pub fn sk_ACCESS_DESCRIPTION_free(sk: *mut stack_st_ACCESS_DESCRIPTION);
19329}
19330unsafe extern "C" {
19331    #[link_name = "sk_ACCESS_DESCRIPTION_pop_free__extern"]
19332    pub fn sk_ACCESS_DESCRIPTION_pop_free(
19333        sk: *mut stack_st_ACCESS_DESCRIPTION,
19334        free_func: sk_ACCESS_DESCRIPTION_free_func,
19335    );
19336}
19337unsafe extern "C" {
19338    #[link_name = "sk_ACCESS_DESCRIPTION_insert__extern"]
19339    pub fn sk_ACCESS_DESCRIPTION_insert(
19340        sk: *mut stack_st_ACCESS_DESCRIPTION,
19341        p: *mut ACCESS_DESCRIPTION,
19342        where_: usize,
19343    ) -> usize;
19344}
19345unsafe extern "C" {
19346    #[link_name = "sk_ACCESS_DESCRIPTION_delete__extern"]
19347    pub fn sk_ACCESS_DESCRIPTION_delete(
19348        sk: *mut stack_st_ACCESS_DESCRIPTION,
19349        where_: usize,
19350    ) -> *mut ACCESS_DESCRIPTION;
19351}
19352unsafe extern "C" {
19353    #[link_name = "sk_ACCESS_DESCRIPTION_delete_ptr__extern"]
19354    pub fn sk_ACCESS_DESCRIPTION_delete_ptr(
19355        sk: *mut stack_st_ACCESS_DESCRIPTION,
19356        p: *const ACCESS_DESCRIPTION,
19357    ) -> *mut ACCESS_DESCRIPTION;
19358}
19359unsafe extern "C" {
19360    #[link_name = "sk_ACCESS_DESCRIPTION_delete_if__extern"]
19361    pub fn sk_ACCESS_DESCRIPTION_delete_if(
19362        sk: *mut stack_st_ACCESS_DESCRIPTION,
19363        func: sk_ACCESS_DESCRIPTION_delete_if_func,
19364        data: *mut ::core::ffi::c_void,
19365    );
19366}
19367unsafe extern "C" {
19368    #[link_name = "sk_ACCESS_DESCRIPTION_find__extern"]
19369    pub fn sk_ACCESS_DESCRIPTION_find(
19370        sk: *const stack_st_ACCESS_DESCRIPTION,
19371        out_index: *mut usize,
19372        p: *const ACCESS_DESCRIPTION,
19373    ) -> ::core::ffi::c_int;
19374}
19375unsafe extern "C" {
19376    #[link_name = "sk_ACCESS_DESCRIPTION_shift__extern"]
19377    pub fn sk_ACCESS_DESCRIPTION_shift(
19378        sk: *mut stack_st_ACCESS_DESCRIPTION,
19379    ) -> *mut ACCESS_DESCRIPTION;
19380}
19381unsafe extern "C" {
19382    #[link_name = "sk_ACCESS_DESCRIPTION_push__extern"]
19383    pub fn sk_ACCESS_DESCRIPTION_push(
19384        sk: *mut stack_st_ACCESS_DESCRIPTION,
19385        p: *mut ACCESS_DESCRIPTION,
19386    ) -> usize;
19387}
19388unsafe extern "C" {
19389    #[link_name = "sk_ACCESS_DESCRIPTION_pop__extern"]
19390    pub fn sk_ACCESS_DESCRIPTION_pop(
19391        sk: *mut stack_st_ACCESS_DESCRIPTION,
19392    ) -> *mut ACCESS_DESCRIPTION;
19393}
19394unsafe extern "C" {
19395    #[link_name = "sk_ACCESS_DESCRIPTION_dup__extern"]
19396    pub fn sk_ACCESS_DESCRIPTION_dup(
19397        sk: *const stack_st_ACCESS_DESCRIPTION,
19398    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19399}
19400unsafe extern "C" {
19401    #[link_name = "sk_ACCESS_DESCRIPTION_sort__extern"]
19402    pub fn sk_ACCESS_DESCRIPTION_sort(sk: *mut stack_st_ACCESS_DESCRIPTION);
19403}
19404unsafe extern "C" {
19405    #[link_name = "sk_ACCESS_DESCRIPTION_sort_and_dedup__extern"]
19406    pub fn sk_ACCESS_DESCRIPTION_sort_and_dedup(
19407        sk: *mut stack_st_ACCESS_DESCRIPTION,
19408        free_func: sk_ACCESS_DESCRIPTION_free_func,
19409    );
19410}
19411unsafe extern "C" {
19412    #[link_name = "sk_ACCESS_DESCRIPTION_is_sorted__extern"]
19413    pub fn sk_ACCESS_DESCRIPTION_is_sorted(
19414        sk: *const stack_st_ACCESS_DESCRIPTION,
19415    ) -> ::core::ffi::c_int;
19416}
19417unsafe extern "C" {
19418    #[link_name = "sk_ACCESS_DESCRIPTION_set_cmp_func__extern"]
19419    pub fn sk_ACCESS_DESCRIPTION_set_cmp_func(
19420        sk: *mut stack_st_ACCESS_DESCRIPTION,
19421        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19422    ) -> sk_ACCESS_DESCRIPTION_cmp_func;
19423}
19424unsafe extern "C" {
19425    #[link_name = "sk_ACCESS_DESCRIPTION_deep_copy__extern"]
19426    pub fn sk_ACCESS_DESCRIPTION_deep_copy(
19427        sk: *const stack_st_ACCESS_DESCRIPTION,
19428        copy_func: sk_ACCESS_DESCRIPTION_copy_func,
19429        free_func: sk_ACCESS_DESCRIPTION_free_func,
19430    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19431}
19432unsafe extern "C" {
19433    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
19434}
19435unsafe extern "C" {
19436    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
19437}
19438pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
19439unsafe extern "C" {
19440    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
19441}
19442unsafe extern "C" {
19443    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
19444}
19445unsafe extern "C" {
19446    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
19447}
19448unsafe extern "C" {
19449    pub fn d2i_AUTHORITY_INFO_ACCESS(
19450        out: *mut *mut AUTHORITY_INFO_ACCESS,
19451        inp: *mut *const u8,
19452        len: ::core::ffi::c_long,
19453    ) -> *mut AUTHORITY_INFO_ACCESS;
19454}
19455unsafe extern "C" {
19456    pub fn i2d_AUTHORITY_INFO_ACCESS(
19457        aia: *const AUTHORITY_INFO_ACCESS,
19458        outp: *mut *mut u8,
19459    ) -> ::core::ffi::c_int;
19460}
19461#[repr(C)]
19462#[derive(Copy, Clone)]
19463pub struct DIST_POINT_NAME_st {
19464    pub type_: ::core::ffi::c_int,
19465    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
19466}
19467#[repr(C)]
19468#[derive(Copy, Clone)]
19469pub union DIST_POINT_NAME_st__bindgen_ty_1 {
19470    pub fullname: *mut GENERAL_NAMES,
19471    pub relativename: *mut stack_st_X509_NAME_ENTRY,
19472}
19473pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
19474unsafe extern "C" {
19475    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
19476}
19477unsafe extern "C" {
19478    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
19479}
19480#[repr(C)]
19481#[derive(Debug, Copy, Clone)]
19482pub struct DIST_POINT_st {
19483    pub distpoint: *mut DIST_POINT_NAME,
19484    pub reasons: *mut ASN1_BIT_STRING,
19485    pub CRLissuer: *mut GENERAL_NAMES,
19486}
19487#[repr(C)]
19488#[derive(Debug)]
19489pub struct stack_st_DIST_POINT {
19490    _unused: [u8; 0],
19491}
19492pub type sk_DIST_POINT_free_func =
19493    ::core::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
19494pub type sk_DIST_POINT_copy_func =
19495    ::core::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
19496pub type sk_DIST_POINT_cmp_func = ::core::option::Option<
19497    unsafe extern "C" fn(
19498        arg1: *const *const DIST_POINT,
19499        arg2: *const *const DIST_POINT,
19500    ) -> ::core::ffi::c_int,
19501>;
19502pub type sk_DIST_POINT_delete_if_func = ::core::option::Option<
19503    unsafe extern "C" fn(
19504        arg1: *mut DIST_POINT,
19505        arg2: *mut ::core::ffi::c_void,
19506    ) -> ::core::ffi::c_int,
19507>;
19508unsafe extern "C" {
19509    #[link_name = "sk_DIST_POINT_call_free_func__extern"]
19510    pub fn sk_DIST_POINT_call_free_func(
19511        free_func: OPENSSL_sk_free_func,
19512        ptr: *mut ::core::ffi::c_void,
19513    );
19514}
19515unsafe extern "C" {
19516    #[link_name = "sk_DIST_POINT_call_copy_func__extern"]
19517    pub fn sk_DIST_POINT_call_copy_func(
19518        copy_func: OPENSSL_sk_copy_func,
19519        ptr: *const ::core::ffi::c_void,
19520    ) -> *mut ::core::ffi::c_void;
19521}
19522unsafe extern "C" {
19523    #[link_name = "sk_DIST_POINT_call_cmp_func__extern"]
19524    pub fn sk_DIST_POINT_call_cmp_func(
19525        cmp_func: OPENSSL_sk_cmp_func,
19526        a: *const ::core::ffi::c_void,
19527        b: *const ::core::ffi::c_void,
19528    ) -> ::core::ffi::c_int;
19529}
19530unsafe extern "C" {
19531    #[link_name = "sk_DIST_POINT_call_delete_if_func__extern"]
19532    pub fn sk_DIST_POINT_call_delete_if_func(
19533        func: OPENSSL_sk_delete_if_func,
19534        obj: *mut ::core::ffi::c_void,
19535        data: *mut ::core::ffi::c_void,
19536    ) -> ::core::ffi::c_int;
19537}
19538unsafe extern "C" {
19539    #[link_name = "sk_DIST_POINT_new__extern"]
19540    pub fn sk_DIST_POINT_new(comp: sk_DIST_POINT_cmp_func) -> *mut stack_st_DIST_POINT;
19541}
19542unsafe extern "C" {
19543    #[link_name = "sk_DIST_POINT_new_null__extern"]
19544    pub fn sk_DIST_POINT_new_null() -> *mut stack_st_DIST_POINT;
19545}
19546unsafe extern "C" {
19547    #[link_name = "sk_DIST_POINT_num__extern"]
19548    pub fn sk_DIST_POINT_num(sk: *const stack_st_DIST_POINT) -> usize;
19549}
19550unsafe extern "C" {
19551    #[link_name = "sk_DIST_POINT_zero__extern"]
19552    pub fn sk_DIST_POINT_zero(sk: *mut stack_st_DIST_POINT);
19553}
19554unsafe extern "C" {
19555    #[link_name = "sk_DIST_POINT_value__extern"]
19556    pub fn sk_DIST_POINT_value(sk: *const stack_st_DIST_POINT, i: usize) -> *mut DIST_POINT;
19557}
19558unsafe extern "C" {
19559    #[link_name = "sk_DIST_POINT_last__extern"]
19560    pub fn sk_DIST_POINT_last(sk: *const stack_st_DIST_POINT) -> *mut DIST_POINT;
19561}
19562unsafe extern "C" {
19563    #[link_name = "sk_DIST_POINT_set__extern"]
19564    pub fn sk_DIST_POINT_set(
19565        sk: *mut stack_st_DIST_POINT,
19566        i: usize,
19567        p: *mut DIST_POINT,
19568    ) -> *mut DIST_POINT;
19569}
19570unsafe extern "C" {
19571    #[link_name = "sk_DIST_POINT_free__extern"]
19572    pub fn sk_DIST_POINT_free(sk: *mut stack_st_DIST_POINT);
19573}
19574unsafe extern "C" {
19575    #[link_name = "sk_DIST_POINT_pop_free__extern"]
19576    pub fn sk_DIST_POINT_pop_free(sk: *mut stack_st_DIST_POINT, free_func: sk_DIST_POINT_free_func);
19577}
19578unsafe extern "C" {
19579    #[link_name = "sk_DIST_POINT_insert__extern"]
19580    pub fn sk_DIST_POINT_insert(
19581        sk: *mut stack_st_DIST_POINT,
19582        p: *mut DIST_POINT,
19583        where_: usize,
19584    ) -> usize;
19585}
19586unsafe extern "C" {
19587    #[link_name = "sk_DIST_POINT_delete__extern"]
19588    pub fn sk_DIST_POINT_delete(sk: *mut stack_st_DIST_POINT, where_: usize) -> *mut DIST_POINT;
19589}
19590unsafe extern "C" {
19591    #[link_name = "sk_DIST_POINT_delete_ptr__extern"]
19592    pub fn sk_DIST_POINT_delete_ptr(
19593        sk: *mut stack_st_DIST_POINT,
19594        p: *const DIST_POINT,
19595    ) -> *mut DIST_POINT;
19596}
19597unsafe extern "C" {
19598    #[link_name = "sk_DIST_POINT_delete_if__extern"]
19599    pub fn sk_DIST_POINT_delete_if(
19600        sk: *mut stack_st_DIST_POINT,
19601        func: sk_DIST_POINT_delete_if_func,
19602        data: *mut ::core::ffi::c_void,
19603    );
19604}
19605unsafe extern "C" {
19606    #[link_name = "sk_DIST_POINT_find__extern"]
19607    pub fn sk_DIST_POINT_find(
19608        sk: *const stack_st_DIST_POINT,
19609        out_index: *mut usize,
19610        p: *const DIST_POINT,
19611    ) -> ::core::ffi::c_int;
19612}
19613unsafe extern "C" {
19614    #[link_name = "sk_DIST_POINT_shift__extern"]
19615    pub fn sk_DIST_POINT_shift(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19616}
19617unsafe extern "C" {
19618    #[link_name = "sk_DIST_POINT_push__extern"]
19619    pub fn sk_DIST_POINT_push(sk: *mut stack_st_DIST_POINT, p: *mut DIST_POINT) -> usize;
19620}
19621unsafe extern "C" {
19622    #[link_name = "sk_DIST_POINT_pop__extern"]
19623    pub fn sk_DIST_POINT_pop(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19624}
19625unsafe extern "C" {
19626    #[link_name = "sk_DIST_POINT_dup__extern"]
19627    pub fn sk_DIST_POINT_dup(sk: *const stack_st_DIST_POINT) -> *mut stack_st_DIST_POINT;
19628}
19629unsafe extern "C" {
19630    #[link_name = "sk_DIST_POINT_sort__extern"]
19631    pub fn sk_DIST_POINT_sort(sk: *mut stack_st_DIST_POINT);
19632}
19633unsafe extern "C" {
19634    #[link_name = "sk_DIST_POINT_sort_and_dedup__extern"]
19635    pub fn sk_DIST_POINT_sort_and_dedup(
19636        sk: *mut stack_st_DIST_POINT,
19637        free_func: sk_DIST_POINT_free_func,
19638    );
19639}
19640unsafe extern "C" {
19641    #[link_name = "sk_DIST_POINT_is_sorted__extern"]
19642    pub fn sk_DIST_POINT_is_sorted(sk: *const stack_st_DIST_POINT) -> ::core::ffi::c_int;
19643}
19644unsafe extern "C" {
19645    #[link_name = "sk_DIST_POINT_set_cmp_func__extern"]
19646    pub fn sk_DIST_POINT_set_cmp_func(
19647        sk: *mut stack_st_DIST_POINT,
19648        comp: sk_DIST_POINT_cmp_func,
19649    ) -> sk_DIST_POINT_cmp_func;
19650}
19651unsafe extern "C" {
19652    #[link_name = "sk_DIST_POINT_deep_copy__extern"]
19653    pub fn sk_DIST_POINT_deep_copy(
19654        sk: *const stack_st_DIST_POINT,
19655        copy_func: sk_DIST_POINT_copy_func,
19656        free_func: sk_DIST_POINT_free_func,
19657    ) -> *mut stack_st_DIST_POINT;
19658}
19659unsafe extern "C" {
19660    pub fn DIST_POINT_new() -> *mut DIST_POINT;
19661}
19662unsafe extern "C" {
19663    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
19664}
19665pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
19666unsafe extern "C" {
19667    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
19668}
19669unsafe extern "C" {
19670    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
19671}
19672unsafe extern "C" {
19673    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
19674}
19675unsafe extern "C" {
19676    pub fn d2i_CRL_DIST_POINTS(
19677        out: *mut *mut CRL_DIST_POINTS,
19678        inp: *mut *const u8,
19679        len: ::core::ffi::c_long,
19680    ) -> *mut CRL_DIST_POINTS;
19681}
19682unsafe extern "C" {
19683    pub fn i2d_CRL_DIST_POINTS(
19684        crldp: *const CRL_DIST_POINTS,
19685        outp: *mut *mut u8,
19686    ) -> ::core::ffi::c_int;
19687}
19688#[repr(C)]
19689#[derive(Debug, Copy, Clone)]
19690pub struct ISSUING_DIST_POINT_st {
19691    pub distpoint: *mut DIST_POINT_NAME,
19692    pub onlyuser: ASN1_BOOLEAN,
19693    pub onlyCA: ASN1_BOOLEAN,
19694    pub onlysomereasons: *mut ASN1_BIT_STRING,
19695    pub indirectCRL: ASN1_BOOLEAN,
19696    pub onlyattr: ASN1_BOOLEAN,
19697}
19698unsafe extern "C" {
19699    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
19700}
19701unsafe extern "C" {
19702    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
19703}
19704unsafe extern "C" {
19705    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
19706}
19707unsafe extern "C" {
19708    pub fn d2i_ISSUING_DIST_POINT(
19709        out: *mut *mut ISSUING_DIST_POINT,
19710        inp: *mut *const u8,
19711        len: ::core::ffi::c_long,
19712    ) -> *mut ISSUING_DIST_POINT;
19713}
19714unsafe extern "C" {
19715    pub fn i2d_ISSUING_DIST_POINT(
19716        idp: *const ISSUING_DIST_POINT,
19717        outp: *mut *mut u8,
19718    ) -> ::core::ffi::c_int;
19719}
19720#[repr(C)]
19721#[derive(Debug, Copy, Clone)]
19722pub struct NOTICEREF_st {
19723    pub organization: *mut ASN1_STRING,
19724    pub noticenos: *mut stack_st_ASN1_INTEGER,
19725}
19726pub type NOTICEREF = NOTICEREF_st;
19727unsafe extern "C" {
19728    pub fn NOTICEREF_new() -> *mut NOTICEREF;
19729}
19730unsafe extern "C" {
19731    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
19732}
19733#[repr(C)]
19734#[derive(Debug, Copy, Clone)]
19735pub struct USERNOTICE_st {
19736    pub noticeref: *mut NOTICEREF,
19737    pub exptext: *mut ASN1_STRING,
19738}
19739pub type USERNOTICE = USERNOTICE_st;
19740unsafe extern "C" {
19741    pub fn USERNOTICE_new() -> *mut USERNOTICE;
19742}
19743unsafe extern "C" {
19744    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
19745}
19746#[repr(C)]
19747#[derive(Copy, Clone)]
19748pub struct POLICYQUALINFO_st {
19749    pub pqualid: *mut ASN1_OBJECT,
19750    pub d: POLICYQUALINFO_st__bindgen_ty_1,
19751}
19752#[repr(C)]
19753#[derive(Copy, Clone)]
19754pub union POLICYQUALINFO_st__bindgen_ty_1 {
19755    pub cpsuri: *mut ASN1_IA5STRING,
19756    pub usernotice: *mut USERNOTICE,
19757    pub other: *mut ASN1_TYPE,
19758}
19759pub type POLICYQUALINFO = POLICYQUALINFO_st;
19760#[repr(C)]
19761#[derive(Debug)]
19762pub struct stack_st_POLICYQUALINFO {
19763    _unused: [u8; 0],
19764}
19765pub type sk_POLICYQUALINFO_free_func =
19766    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
19767pub type sk_POLICYQUALINFO_copy_func = ::core::option::Option<
19768    unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO,
19769>;
19770pub type sk_POLICYQUALINFO_cmp_func = ::core::option::Option<
19771    unsafe extern "C" fn(
19772        arg1: *const *const POLICYQUALINFO,
19773        arg2: *const *const POLICYQUALINFO,
19774    ) -> ::core::ffi::c_int,
19775>;
19776pub type sk_POLICYQUALINFO_delete_if_func = ::core::option::Option<
19777    unsafe extern "C" fn(
19778        arg1: *mut POLICYQUALINFO,
19779        arg2: *mut ::core::ffi::c_void,
19780    ) -> ::core::ffi::c_int,
19781>;
19782unsafe extern "C" {
19783    #[link_name = "sk_POLICYQUALINFO_call_free_func__extern"]
19784    pub fn sk_POLICYQUALINFO_call_free_func(
19785        free_func: OPENSSL_sk_free_func,
19786        ptr: *mut ::core::ffi::c_void,
19787    );
19788}
19789unsafe extern "C" {
19790    #[link_name = "sk_POLICYQUALINFO_call_copy_func__extern"]
19791    pub fn sk_POLICYQUALINFO_call_copy_func(
19792        copy_func: OPENSSL_sk_copy_func,
19793        ptr: *const ::core::ffi::c_void,
19794    ) -> *mut ::core::ffi::c_void;
19795}
19796unsafe extern "C" {
19797    #[link_name = "sk_POLICYQUALINFO_call_cmp_func__extern"]
19798    pub fn sk_POLICYQUALINFO_call_cmp_func(
19799        cmp_func: OPENSSL_sk_cmp_func,
19800        a: *const ::core::ffi::c_void,
19801        b: *const ::core::ffi::c_void,
19802    ) -> ::core::ffi::c_int;
19803}
19804unsafe extern "C" {
19805    #[link_name = "sk_POLICYQUALINFO_call_delete_if_func__extern"]
19806    pub fn sk_POLICYQUALINFO_call_delete_if_func(
19807        func: OPENSSL_sk_delete_if_func,
19808        obj: *mut ::core::ffi::c_void,
19809        data: *mut ::core::ffi::c_void,
19810    ) -> ::core::ffi::c_int;
19811}
19812unsafe extern "C" {
19813    #[link_name = "sk_POLICYQUALINFO_new__extern"]
19814    pub fn sk_POLICYQUALINFO_new(comp: sk_POLICYQUALINFO_cmp_func) -> *mut stack_st_POLICYQUALINFO;
19815}
19816unsafe extern "C" {
19817    #[link_name = "sk_POLICYQUALINFO_new_null__extern"]
19818    pub fn sk_POLICYQUALINFO_new_null() -> *mut stack_st_POLICYQUALINFO;
19819}
19820unsafe extern "C" {
19821    #[link_name = "sk_POLICYQUALINFO_num__extern"]
19822    pub fn sk_POLICYQUALINFO_num(sk: *const stack_st_POLICYQUALINFO) -> usize;
19823}
19824unsafe extern "C" {
19825    #[link_name = "sk_POLICYQUALINFO_zero__extern"]
19826    pub fn sk_POLICYQUALINFO_zero(sk: *mut stack_st_POLICYQUALINFO);
19827}
19828unsafe extern "C" {
19829    #[link_name = "sk_POLICYQUALINFO_value__extern"]
19830    pub fn sk_POLICYQUALINFO_value(
19831        sk: *const stack_st_POLICYQUALINFO,
19832        i: usize,
19833    ) -> *mut POLICYQUALINFO;
19834}
19835unsafe extern "C" {
19836    #[link_name = "sk_POLICYQUALINFO_last__extern"]
19837    pub fn sk_POLICYQUALINFO_last(sk: *const stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19838}
19839unsafe extern "C" {
19840    #[link_name = "sk_POLICYQUALINFO_set__extern"]
19841    pub fn sk_POLICYQUALINFO_set(
19842        sk: *mut stack_st_POLICYQUALINFO,
19843        i: usize,
19844        p: *mut POLICYQUALINFO,
19845    ) -> *mut POLICYQUALINFO;
19846}
19847unsafe extern "C" {
19848    #[link_name = "sk_POLICYQUALINFO_free__extern"]
19849    pub fn sk_POLICYQUALINFO_free(sk: *mut stack_st_POLICYQUALINFO);
19850}
19851unsafe extern "C" {
19852    #[link_name = "sk_POLICYQUALINFO_pop_free__extern"]
19853    pub fn sk_POLICYQUALINFO_pop_free(
19854        sk: *mut stack_st_POLICYQUALINFO,
19855        free_func: sk_POLICYQUALINFO_free_func,
19856    );
19857}
19858unsafe extern "C" {
19859    #[link_name = "sk_POLICYQUALINFO_insert__extern"]
19860    pub fn sk_POLICYQUALINFO_insert(
19861        sk: *mut stack_st_POLICYQUALINFO,
19862        p: *mut POLICYQUALINFO,
19863        where_: usize,
19864    ) -> usize;
19865}
19866unsafe extern "C" {
19867    #[link_name = "sk_POLICYQUALINFO_delete__extern"]
19868    pub fn sk_POLICYQUALINFO_delete(
19869        sk: *mut stack_st_POLICYQUALINFO,
19870        where_: usize,
19871    ) -> *mut POLICYQUALINFO;
19872}
19873unsafe extern "C" {
19874    #[link_name = "sk_POLICYQUALINFO_delete_ptr__extern"]
19875    pub fn sk_POLICYQUALINFO_delete_ptr(
19876        sk: *mut stack_st_POLICYQUALINFO,
19877        p: *const POLICYQUALINFO,
19878    ) -> *mut POLICYQUALINFO;
19879}
19880unsafe extern "C" {
19881    #[link_name = "sk_POLICYQUALINFO_delete_if__extern"]
19882    pub fn sk_POLICYQUALINFO_delete_if(
19883        sk: *mut stack_st_POLICYQUALINFO,
19884        func: sk_POLICYQUALINFO_delete_if_func,
19885        data: *mut ::core::ffi::c_void,
19886    );
19887}
19888unsafe extern "C" {
19889    #[link_name = "sk_POLICYQUALINFO_find__extern"]
19890    pub fn sk_POLICYQUALINFO_find(
19891        sk: *const stack_st_POLICYQUALINFO,
19892        out_index: *mut usize,
19893        p: *const POLICYQUALINFO,
19894    ) -> ::core::ffi::c_int;
19895}
19896unsafe extern "C" {
19897    #[link_name = "sk_POLICYQUALINFO_shift__extern"]
19898    pub fn sk_POLICYQUALINFO_shift(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19899}
19900unsafe extern "C" {
19901    #[link_name = "sk_POLICYQUALINFO_push__extern"]
19902    pub fn sk_POLICYQUALINFO_push(
19903        sk: *mut stack_st_POLICYQUALINFO,
19904        p: *mut POLICYQUALINFO,
19905    ) -> usize;
19906}
19907unsafe extern "C" {
19908    #[link_name = "sk_POLICYQUALINFO_pop__extern"]
19909    pub fn sk_POLICYQUALINFO_pop(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19910}
19911unsafe extern "C" {
19912    #[link_name = "sk_POLICYQUALINFO_dup__extern"]
19913    pub fn sk_POLICYQUALINFO_dup(
19914        sk: *const stack_st_POLICYQUALINFO,
19915    ) -> *mut stack_st_POLICYQUALINFO;
19916}
19917unsafe extern "C" {
19918    #[link_name = "sk_POLICYQUALINFO_sort__extern"]
19919    pub fn sk_POLICYQUALINFO_sort(sk: *mut stack_st_POLICYQUALINFO);
19920}
19921unsafe extern "C" {
19922    #[link_name = "sk_POLICYQUALINFO_sort_and_dedup__extern"]
19923    pub fn sk_POLICYQUALINFO_sort_and_dedup(
19924        sk: *mut stack_st_POLICYQUALINFO,
19925        free_func: sk_POLICYQUALINFO_free_func,
19926    );
19927}
19928unsafe extern "C" {
19929    #[link_name = "sk_POLICYQUALINFO_is_sorted__extern"]
19930    pub fn sk_POLICYQUALINFO_is_sorted(sk: *const stack_st_POLICYQUALINFO) -> ::core::ffi::c_int;
19931}
19932unsafe extern "C" {
19933    #[link_name = "sk_POLICYQUALINFO_set_cmp_func__extern"]
19934    pub fn sk_POLICYQUALINFO_set_cmp_func(
19935        sk: *mut stack_st_POLICYQUALINFO,
19936        comp: sk_POLICYQUALINFO_cmp_func,
19937    ) -> sk_POLICYQUALINFO_cmp_func;
19938}
19939unsafe extern "C" {
19940    #[link_name = "sk_POLICYQUALINFO_deep_copy__extern"]
19941    pub fn sk_POLICYQUALINFO_deep_copy(
19942        sk: *const stack_st_POLICYQUALINFO,
19943        copy_func: sk_POLICYQUALINFO_copy_func,
19944        free_func: sk_POLICYQUALINFO_free_func,
19945    ) -> *mut stack_st_POLICYQUALINFO;
19946}
19947unsafe extern "C" {
19948    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
19949}
19950unsafe extern "C" {
19951    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
19952}
19953#[repr(C)]
19954#[derive(Debug, Copy, Clone)]
19955pub struct POLICYINFO_st {
19956    pub policyid: *mut ASN1_OBJECT,
19957    pub qualifiers: *mut stack_st_POLICYQUALINFO,
19958}
19959pub type POLICYINFO = POLICYINFO_st;
19960#[repr(C)]
19961#[derive(Debug)]
19962pub struct stack_st_POLICYINFO {
19963    _unused: [u8; 0],
19964}
19965pub type sk_POLICYINFO_free_func =
19966    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
19967pub type sk_POLICYINFO_copy_func =
19968    ::core::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
19969pub type sk_POLICYINFO_cmp_func = ::core::option::Option<
19970    unsafe extern "C" fn(
19971        arg1: *const *const POLICYINFO,
19972        arg2: *const *const POLICYINFO,
19973    ) -> ::core::ffi::c_int,
19974>;
19975pub type sk_POLICYINFO_delete_if_func = ::core::option::Option<
19976    unsafe extern "C" fn(
19977        arg1: *mut POLICYINFO,
19978        arg2: *mut ::core::ffi::c_void,
19979    ) -> ::core::ffi::c_int,
19980>;
19981unsafe extern "C" {
19982    #[link_name = "sk_POLICYINFO_call_free_func__extern"]
19983    pub fn sk_POLICYINFO_call_free_func(
19984        free_func: OPENSSL_sk_free_func,
19985        ptr: *mut ::core::ffi::c_void,
19986    );
19987}
19988unsafe extern "C" {
19989    #[link_name = "sk_POLICYINFO_call_copy_func__extern"]
19990    pub fn sk_POLICYINFO_call_copy_func(
19991        copy_func: OPENSSL_sk_copy_func,
19992        ptr: *const ::core::ffi::c_void,
19993    ) -> *mut ::core::ffi::c_void;
19994}
19995unsafe extern "C" {
19996    #[link_name = "sk_POLICYINFO_call_cmp_func__extern"]
19997    pub fn sk_POLICYINFO_call_cmp_func(
19998        cmp_func: OPENSSL_sk_cmp_func,
19999        a: *const ::core::ffi::c_void,
20000        b: *const ::core::ffi::c_void,
20001    ) -> ::core::ffi::c_int;
20002}
20003unsafe extern "C" {
20004    #[link_name = "sk_POLICYINFO_call_delete_if_func__extern"]
20005    pub fn sk_POLICYINFO_call_delete_if_func(
20006        func: OPENSSL_sk_delete_if_func,
20007        obj: *mut ::core::ffi::c_void,
20008        data: *mut ::core::ffi::c_void,
20009    ) -> ::core::ffi::c_int;
20010}
20011unsafe extern "C" {
20012    #[link_name = "sk_POLICYINFO_new__extern"]
20013    pub fn sk_POLICYINFO_new(comp: sk_POLICYINFO_cmp_func) -> *mut stack_st_POLICYINFO;
20014}
20015unsafe extern "C" {
20016    #[link_name = "sk_POLICYINFO_new_null__extern"]
20017    pub fn sk_POLICYINFO_new_null() -> *mut stack_st_POLICYINFO;
20018}
20019unsafe extern "C" {
20020    #[link_name = "sk_POLICYINFO_num__extern"]
20021    pub fn sk_POLICYINFO_num(sk: *const stack_st_POLICYINFO) -> usize;
20022}
20023unsafe extern "C" {
20024    #[link_name = "sk_POLICYINFO_zero__extern"]
20025    pub fn sk_POLICYINFO_zero(sk: *mut stack_st_POLICYINFO);
20026}
20027unsafe extern "C" {
20028    #[link_name = "sk_POLICYINFO_value__extern"]
20029    pub fn sk_POLICYINFO_value(sk: *const stack_st_POLICYINFO, i: usize) -> *mut POLICYINFO;
20030}
20031unsafe extern "C" {
20032    #[link_name = "sk_POLICYINFO_last__extern"]
20033    pub fn sk_POLICYINFO_last(sk: *const stack_st_POLICYINFO) -> *mut POLICYINFO;
20034}
20035unsafe extern "C" {
20036    #[link_name = "sk_POLICYINFO_set__extern"]
20037    pub fn sk_POLICYINFO_set(
20038        sk: *mut stack_st_POLICYINFO,
20039        i: usize,
20040        p: *mut POLICYINFO,
20041    ) -> *mut POLICYINFO;
20042}
20043unsafe extern "C" {
20044    #[link_name = "sk_POLICYINFO_free__extern"]
20045    pub fn sk_POLICYINFO_free(sk: *mut stack_st_POLICYINFO);
20046}
20047unsafe extern "C" {
20048    #[link_name = "sk_POLICYINFO_pop_free__extern"]
20049    pub fn sk_POLICYINFO_pop_free(sk: *mut stack_st_POLICYINFO, free_func: sk_POLICYINFO_free_func);
20050}
20051unsafe extern "C" {
20052    #[link_name = "sk_POLICYINFO_insert__extern"]
20053    pub fn sk_POLICYINFO_insert(
20054        sk: *mut stack_st_POLICYINFO,
20055        p: *mut POLICYINFO,
20056        where_: usize,
20057    ) -> usize;
20058}
20059unsafe extern "C" {
20060    #[link_name = "sk_POLICYINFO_delete__extern"]
20061    pub fn sk_POLICYINFO_delete(sk: *mut stack_st_POLICYINFO, where_: usize) -> *mut POLICYINFO;
20062}
20063unsafe extern "C" {
20064    #[link_name = "sk_POLICYINFO_delete_ptr__extern"]
20065    pub fn sk_POLICYINFO_delete_ptr(
20066        sk: *mut stack_st_POLICYINFO,
20067        p: *const POLICYINFO,
20068    ) -> *mut POLICYINFO;
20069}
20070unsafe extern "C" {
20071    #[link_name = "sk_POLICYINFO_delete_if__extern"]
20072    pub fn sk_POLICYINFO_delete_if(
20073        sk: *mut stack_st_POLICYINFO,
20074        func: sk_POLICYINFO_delete_if_func,
20075        data: *mut ::core::ffi::c_void,
20076    );
20077}
20078unsafe extern "C" {
20079    #[link_name = "sk_POLICYINFO_find__extern"]
20080    pub fn sk_POLICYINFO_find(
20081        sk: *const stack_st_POLICYINFO,
20082        out_index: *mut usize,
20083        p: *const POLICYINFO,
20084    ) -> ::core::ffi::c_int;
20085}
20086unsafe extern "C" {
20087    #[link_name = "sk_POLICYINFO_shift__extern"]
20088    pub fn sk_POLICYINFO_shift(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
20089}
20090unsafe extern "C" {
20091    #[link_name = "sk_POLICYINFO_push__extern"]
20092    pub fn sk_POLICYINFO_push(sk: *mut stack_st_POLICYINFO, p: *mut POLICYINFO) -> usize;
20093}
20094unsafe extern "C" {
20095    #[link_name = "sk_POLICYINFO_pop__extern"]
20096    pub fn sk_POLICYINFO_pop(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
20097}
20098unsafe extern "C" {
20099    #[link_name = "sk_POLICYINFO_dup__extern"]
20100    pub fn sk_POLICYINFO_dup(sk: *const stack_st_POLICYINFO) -> *mut stack_st_POLICYINFO;
20101}
20102unsafe extern "C" {
20103    #[link_name = "sk_POLICYINFO_sort__extern"]
20104    pub fn sk_POLICYINFO_sort(sk: *mut stack_st_POLICYINFO);
20105}
20106unsafe extern "C" {
20107    #[link_name = "sk_POLICYINFO_sort_and_dedup__extern"]
20108    pub fn sk_POLICYINFO_sort_and_dedup(
20109        sk: *mut stack_st_POLICYINFO,
20110        free_func: sk_POLICYINFO_free_func,
20111    );
20112}
20113unsafe extern "C" {
20114    #[link_name = "sk_POLICYINFO_is_sorted__extern"]
20115    pub fn sk_POLICYINFO_is_sorted(sk: *const stack_st_POLICYINFO) -> ::core::ffi::c_int;
20116}
20117unsafe extern "C" {
20118    #[link_name = "sk_POLICYINFO_set_cmp_func__extern"]
20119    pub fn sk_POLICYINFO_set_cmp_func(
20120        sk: *mut stack_st_POLICYINFO,
20121        comp: sk_POLICYINFO_cmp_func,
20122    ) -> sk_POLICYINFO_cmp_func;
20123}
20124unsafe extern "C" {
20125    #[link_name = "sk_POLICYINFO_deep_copy__extern"]
20126    pub fn sk_POLICYINFO_deep_copy(
20127        sk: *const stack_st_POLICYINFO,
20128        copy_func: sk_POLICYINFO_copy_func,
20129        free_func: sk_POLICYINFO_free_func,
20130    ) -> *mut stack_st_POLICYINFO;
20131}
20132unsafe extern "C" {
20133    pub fn POLICYINFO_new() -> *mut POLICYINFO;
20134}
20135unsafe extern "C" {
20136    pub fn POLICYINFO_free(info: *mut POLICYINFO);
20137}
20138pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
20139unsafe extern "C" {
20140    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
20141}
20142unsafe extern "C" {
20143    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
20144}
20145unsafe extern "C" {
20146    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
20147}
20148unsafe extern "C" {
20149    pub fn d2i_CERTIFICATEPOLICIES(
20150        out: *mut *mut CERTIFICATEPOLICIES,
20151        inp: *mut *const u8,
20152        len: ::core::ffi::c_long,
20153    ) -> *mut CERTIFICATEPOLICIES;
20154}
20155unsafe extern "C" {
20156    pub fn i2d_CERTIFICATEPOLICIES(
20157        policies: *const CERTIFICATEPOLICIES,
20158        outp: *mut *mut u8,
20159    ) -> ::core::ffi::c_int;
20160}
20161#[repr(C)]
20162#[derive(Debug, Copy, Clone)]
20163pub struct POLICY_MAPPING_st {
20164    pub issuerDomainPolicy: *mut ASN1_OBJECT,
20165    pub subjectDomainPolicy: *mut ASN1_OBJECT,
20166}
20167pub type POLICY_MAPPING = POLICY_MAPPING_st;
20168#[repr(C)]
20169#[derive(Debug)]
20170pub struct stack_st_POLICY_MAPPING {
20171    _unused: [u8; 0],
20172}
20173pub type sk_POLICY_MAPPING_free_func =
20174    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
20175pub type sk_POLICY_MAPPING_copy_func = ::core::option::Option<
20176    unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING,
20177>;
20178pub type sk_POLICY_MAPPING_cmp_func = ::core::option::Option<
20179    unsafe extern "C" fn(
20180        arg1: *const *const POLICY_MAPPING,
20181        arg2: *const *const POLICY_MAPPING,
20182    ) -> ::core::ffi::c_int,
20183>;
20184pub type sk_POLICY_MAPPING_delete_if_func = ::core::option::Option<
20185    unsafe extern "C" fn(
20186        arg1: *mut POLICY_MAPPING,
20187        arg2: *mut ::core::ffi::c_void,
20188    ) -> ::core::ffi::c_int,
20189>;
20190unsafe extern "C" {
20191    #[link_name = "sk_POLICY_MAPPING_call_free_func__extern"]
20192    pub fn sk_POLICY_MAPPING_call_free_func(
20193        free_func: OPENSSL_sk_free_func,
20194        ptr: *mut ::core::ffi::c_void,
20195    );
20196}
20197unsafe extern "C" {
20198    #[link_name = "sk_POLICY_MAPPING_call_copy_func__extern"]
20199    pub fn sk_POLICY_MAPPING_call_copy_func(
20200        copy_func: OPENSSL_sk_copy_func,
20201        ptr: *const ::core::ffi::c_void,
20202    ) -> *mut ::core::ffi::c_void;
20203}
20204unsafe extern "C" {
20205    #[link_name = "sk_POLICY_MAPPING_call_cmp_func__extern"]
20206    pub fn sk_POLICY_MAPPING_call_cmp_func(
20207        cmp_func: OPENSSL_sk_cmp_func,
20208        a: *const ::core::ffi::c_void,
20209        b: *const ::core::ffi::c_void,
20210    ) -> ::core::ffi::c_int;
20211}
20212unsafe extern "C" {
20213    #[link_name = "sk_POLICY_MAPPING_call_delete_if_func__extern"]
20214    pub fn sk_POLICY_MAPPING_call_delete_if_func(
20215        func: OPENSSL_sk_delete_if_func,
20216        obj: *mut ::core::ffi::c_void,
20217        data: *mut ::core::ffi::c_void,
20218    ) -> ::core::ffi::c_int;
20219}
20220unsafe extern "C" {
20221    #[link_name = "sk_POLICY_MAPPING_new__extern"]
20222    pub fn sk_POLICY_MAPPING_new(comp: sk_POLICY_MAPPING_cmp_func) -> *mut stack_st_POLICY_MAPPING;
20223}
20224unsafe extern "C" {
20225    #[link_name = "sk_POLICY_MAPPING_new_null__extern"]
20226    pub fn sk_POLICY_MAPPING_new_null() -> *mut stack_st_POLICY_MAPPING;
20227}
20228unsafe extern "C" {
20229    #[link_name = "sk_POLICY_MAPPING_num__extern"]
20230    pub fn sk_POLICY_MAPPING_num(sk: *const stack_st_POLICY_MAPPING) -> usize;
20231}
20232unsafe extern "C" {
20233    #[link_name = "sk_POLICY_MAPPING_zero__extern"]
20234    pub fn sk_POLICY_MAPPING_zero(sk: *mut stack_st_POLICY_MAPPING);
20235}
20236unsafe extern "C" {
20237    #[link_name = "sk_POLICY_MAPPING_value__extern"]
20238    pub fn sk_POLICY_MAPPING_value(
20239        sk: *const stack_st_POLICY_MAPPING,
20240        i: usize,
20241    ) -> *mut POLICY_MAPPING;
20242}
20243unsafe extern "C" {
20244    #[link_name = "sk_POLICY_MAPPING_last__extern"]
20245    pub fn sk_POLICY_MAPPING_last(sk: *const stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20246}
20247unsafe extern "C" {
20248    #[link_name = "sk_POLICY_MAPPING_set__extern"]
20249    pub fn sk_POLICY_MAPPING_set(
20250        sk: *mut stack_st_POLICY_MAPPING,
20251        i: usize,
20252        p: *mut POLICY_MAPPING,
20253    ) -> *mut POLICY_MAPPING;
20254}
20255unsafe extern "C" {
20256    #[link_name = "sk_POLICY_MAPPING_free__extern"]
20257    pub fn sk_POLICY_MAPPING_free(sk: *mut stack_st_POLICY_MAPPING);
20258}
20259unsafe extern "C" {
20260    #[link_name = "sk_POLICY_MAPPING_pop_free__extern"]
20261    pub fn sk_POLICY_MAPPING_pop_free(
20262        sk: *mut stack_st_POLICY_MAPPING,
20263        free_func: sk_POLICY_MAPPING_free_func,
20264    );
20265}
20266unsafe extern "C" {
20267    #[link_name = "sk_POLICY_MAPPING_insert__extern"]
20268    pub fn sk_POLICY_MAPPING_insert(
20269        sk: *mut stack_st_POLICY_MAPPING,
20270        p: *mut POLICY_MAPPING,
20271        where_: usize,
20272    ) -> usize;
20273}
20274unsafe extern "C" {
20275    #[link_name = "sk_POLICY_MAPPING_delete__extern"]
20276    pub fn sk_POLICY_MAPPING_delete(
20277        sk: *mut stack_st_POLICY_MAPPING,
20278        where_: usize,
20279    ) -> *mut POLICY_MAPPING;
20280}
20281unsafe extern "C" {
20282    #[link_name = "sk_POLICY_MAPPING_delete_ptr__extern"]
20283    pub fn sk_POLICY_MAPPING_delete_ptr(
20284        sk: *mut stack_st_POLICY_MAPPING,
20285        p: *const POLICY_MAPPING,
20286    ) -> *mut POLICY_MAPPING;
20287}
20288unsafe extern "C" {
20289    #[link_name = "sk_POLICY_MAPPING_delete_if__extern"]
20290    pub fn sk_POLICY_MAPPING_delete_if(
20291        sk: *mut stack_st_POLICY_MAPPING,
20292        func: sk_POLICY_MAPPING_delete_if_func,
20293        data: *mut ::core::ffi::c_void,
20294    );
20295}
20296unsafe extern "C" {
20297    #[link_name = "sk_POLICY_MAPPING_find__extern"]
20298    pub fn sk_POLICY_MAPPING_find(
20299        sk: *const stack_st_POLICY_MAPPING,
20300        out_index: *mut usize,
20301        p: *const POLICY_MAPPING,
20302    ) -> ::core::ffi::c_int;
20303}
20304unsafe extern "C" {
20305    #[link_name = "sk_POLICY_MAPPING_shift__extern"]
20306    pub fn sk_POLICY_MAPPING_shift(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20307}
20308unsafe extern "C" {
20309    #[link_name = "sk_POLICY_MAPPING_push__extern"]
20310    pub fn sk_POLICY_MAPPING_push(
20311        sk: *mut stack_st_POLICY_MAPPING,
20312        p: *mut POLICY_MAPPING,
20313    ) -> usize;
20314}
20315unsafe extern "C" {
20316    #[link_name = "sk_POLICY_MAPPING_pop__extern"]
20317    pub fn sk_POLICY_MAPPING_pop(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20318}
20319unsafe extern "C" {
20320    #[link_name = "sk_POLICY_MAPPING_dup__extern"]
20321    pub fn sk_POLICY_MAPPING_dup(
20322        sk: *const stack_st_POLICY_MAPPING,
20323    ) -> *mut stack_st_POLICY_MAPPING;
20324}
20325unsafe extern "C" {
20326    #[link_name = "sk_POLICY_MAPPING_sort__extern"]
20327    pub fn sk_POLICY_MAPPING_sort(sk: *mut stack_st_POLICY_MAPPING);
20328}
20329unsafe extern "C" {
20330    #[link_name = "sk_POLICY_MAPPING_sort_and_dedup__extern"]
20331    pub fn sk_POLICY_MAPPING_sort_and_dedup(
20332        sk: *mut stack_st_POLICY_MAPPING,
20333        free_func: sk_POLICY_MAPPING_free_func,
20334    );
20335}
20336unsafe extern "C" {
20337    #[link_name = "sk_POLICY_MAPPING_is_sorted__extern"]
20338    pub fn sk_POLICY_MAPPING_is_sorted(sk: *const stack_st_POLICY_MAPPING) -> ::core::ffi::c_int;
20339}
20340unsafe extern "C" {
20341    #[link_name = "sk_POLICY_MAPPING_set_cmp_func__extern"]
20342    pub fn sk_POLICY_MAPPING_set_cmp_func(
20343        sk: *mut stack_st_POLICY_MAPPING,
20344        comp: sk_POLICY_MAPPING_cmp_func,
20345    ) -> sk_POLICY_MAPPING_cmp_func;
20346}
20347unsafe extern "C" {
20348    #[link_name = "sk_POLICY_MAPPING_deep_copy__extern"]
20349    pub fn sk_POLICY_MAPPING_deep_copy(
20350        sk: *const stack_st_POLICY_MAPPING,
20351        copy_func: sk_POLICY_MAPPING_copy_func,
20352        free_func: sk_POLICY_MAPPING_free_func,
20353    ) -> *mut stack_st_POLICY_MAPPING;
20354}
20355unsafe extern "C" {
20356    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
20357}
20358unsafe extern "C" {
20359    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
20360}
20361pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
20362unsafe extern "C" {
20363    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
20364}
20365#[repr(C)]
20366#[derive(Debug, Copy, Clone)]
20367pub struct POLICY_CONSTRAINTS_st {
20368    pub requireExplicitPolicy: *mut ASN1_INTEGER,
20369    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
20370}
20371pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
20372unsafe extern "C" {
20373    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
20374}
20375unsafe extern "C" {
20376    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
20377}
20378unsafe extern "C" {
20379    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
20380}
20381#[repr(C)]
20382#[derive(Debug)]
20383pub struct stack_st_X509_ALGOR {
20384    _unused: [u8; 0],
20385}
20386pub type sk_X509_ALGOR_free_func =
20387    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
20388pub type sk_X509_ALGOR_copy_func =
20389    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
20390pub type sk_X509_ALGOR_cmp_func = ::core::option::Option<
20391    unsafe extern "C" fn(
20392        arg1: *const *const X509_ALGOR,
20393        arg2: *const *const X509_ALGOR,
20394    ) -> ::core::ffi::c_int,
20395>;
20396pub type sk_X509_ALGOR_delete_if_func = ::core::option::Option<
20397    unsafe extern "C" fn(
20398        arg1: *mut X509_ALGOR,
20399        arg2: *mut ::core::ffi::c_void,
20400    ) -> ::core::ffi::c_int,
20401>;
20402unsafe extern "C" {
20403    #[link_name = "sk_X509_ALGOR_call_free_func__extern"]
20404    pub fn sk_X509_ALGOR_call_free_func(
20405        free_func: OPENSSL_sk_free_func,
20406        ptr: *mut ::core::ffi::c_void,
20407    );
20408}
20409unsafe extern "C" {
20410    #[link_name = "sk_X509_ALGOR_call_copy_func__extern"]
20411    pub fn sk_X509_ALGOR_call_copy_func(
20412        copy_func: OPENSSL_sk_copy_func,
20413        ptr: *const ::core::ffi::c_void,
20414    ) -> *mut ::core::ffi::c_void;
20415}
20416unsafe extern "C" {
20417    #[link_name = "sk_X509_ALGOR_call_cmp_func__extern"]
20418    pub fn sk_X509_ALGOR_call_cmp_func(
20419        cmp_func: OPENSSL_sk_cmp_func,
20420        a: *const ::core::ffi::c_void,
20421        b: *const ::core::ffi::c_void,
20422    ) -> ::core::ffi::c_int;
20423}
20424unsafe extern "C" {
20425    #[link_name = "sk_X509_ALGOR_call_delete_if_func__extern"]
20426    pub fn sk_X509_ALGOR_call_delete_if_func(
20427        func: OPENSSL_sk_delete_if_func,
20428        obj: *mut ::core::ffi::c_void,
20429        data: *mut ::core::ffi::c_void,
20430    ) -> ::core::ffi::c_int;
20431}
20432unsafe extern "C" {
20433    #[link_name = "sk_X509_ALGOR_new__extern"]
20434    pub fn sk_X509_ALGOR_new(comp: sk_X509_ALGOR_cmp_func) -> *mut stack_st_X509_ALGOR;
20435}
20436unsafe extern "C" {
20437    #[link_name = "sk_X509_ALGOR_new_null__extern"]
20438    pub fn sk_X509_ALGOR_new_null() -> *mut stack_st_X509_ALGOR;
20439}
20440unsafe extern "C" {
20441    #[link_name = "sk_X509_ALGOR_num__extern"]
20442    pub fn sk_X509_ALGOR_num(sk: *const stack_st_X509_ALGOR) -> usize;
20443}
20444unsafe extern "C" {
20445    #[link_name = "sk_X509_ALGOR_zero__extern"]
20446    pub fn sk_X509_ALGOR_zero(sk: *mut stack_st_X509_ALGOR);
20447}
20448unsafe extern "C" {
20449    #[link_name = "sk_X509_ALGOR_value__extern"]
20450    pub fn sk_X509_ALGOR_value(sk: *const stack_st_X509_ALGOR, i: usize) -> *mut X509_ALGOR;
20451}
20452unsafe extern "C" {
20453    #[link_name = "sk_X509_ALGOR_last__extern"]
20454    pub fn sk_X509_ALGOR_last(sk: *const stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20455}
20456unsafe extern "C" {
20457    #[link_name = "sk_X509_ALGOR_set__extern"]
20458    pub fn sk_X509_ALGOR_set(
20459        sk: *mut stack_st_X509_ALGOR,
20460        i: usize,
20461        p: *mut X509_ALGOR,
20462    ) -> *mut X509_ALGOR;
20463}
20464unsafe extern "C" {
20465    #[link_name = "sk_X509_ALGOR_free__extern"]
20466    pub fn sk_X509_ALGOR_free(sk: *mut stack_st_X509_ALGOR);
20467}
20468unsafe extern "C" {
20469    #[link_name = "sk_X509_ALGOR_pop_free__extern"]
20470    pub fn sk_X509_ALGOR_pop_free(sk: *mut stack_st_X509_ALGOR, free_func: sk_X509_ALGOR_free_func);
20471}
20472unsafe extern "C" {
20473    #[link_name = "sk_X509_ALGOR_insert__extern"]
20474    pub fn sk_X509_ALGOR_insert(
20475        sk: *mut stack_st_X509_ALGOR,
20476        p: *mut X509_ALGOR,
20477        where_: usize,
20478    ) -> usize;
20479}
20480unsafe extern "C" {
20481    #[link_name = "sk_X509_ALGOR_delete__extern"]
20482    pub fn sk_X509_ALGOR_delete(sk: *mut stack_st_X509_ALGOR, where_: usize) -> *mut X509_ALGOR;
20483}
20484unsafe extern "C" {
20485    #[link_name = "sk_X509_ALGOR_delete_ptr__extern"]
20486    pub fn sk_X509_ALGOR_delete_ptr(
20487        sk: *mut stack_st_X509_ALGOR,
20488        p: *const X509_ALGOR,
20489    ) -> *mut X509_ALGOR;
20490}
20491unsafe extern "C" {
20492    #[link_name = "sk_X509_ALGOR_delete_if__extern"]
20493    pub fn sk_X509_ALGOR_delete_if(
20494        sk: *mut stack_st_X509_ALGOR,
20495        func: sk_X509_ALGOR_delete_if_func,
20496        data: *mut ::core::ffi::c_void,
20497    );
20498}
20499unsafe extern "C" {
20500    #[link_name = "sk_X509_ALGOR_find__extern"]
20501    pub fn sk_X509_ALGOR_find(
20502        sk: *const stack_st_X509_ALGOR,
20503        out_index: *mut usize,
20504        p: *const X509_ALGOR,
20505    ) -> ::core::ffi::c_int;
20506}
20507unsafe extern "C" {
20508    #[link_name = "sk_X509_ALGOR_shift__extern"]
20509    pub fn sk_X509_ALGOR_shift(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20510}
20511unsafe extern "C" {
20512    #[link_name = "sk_X509_ALGOR_push__extern"]
20513    pub fn sk_X509_ALGOR_push(sk: *mut stack_st_X509_ALGOR, p: *mut X509_ALGOR) -> usize;
20514}
20515unsafe extern "C" {
20516    #[link_name = "sk_X509_ALGOR_pop__extern"]
20517    pub fn sk_X509_ALGOR_pop(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20518}
20519unsafe extern "C" {
20520    #[link_name = "sk_X509_ALGOR_dup__extern"]
20521    pub fn sk_X509_ALGOR_dup(sk: *const stack_st_X509_ALGOR) -> *mut stack_st_X509_ALGOR;
20522}
20523unsafe extern "C" {
20524    #[link_name = "sk_X509_ALGOR_sort__extern"]
20525    pub fn sk_X509_ALGOR_sort(sk: *mut stack_st_X509_ALGOR);
20526}
20527unsafe extern "C" {
20528    #[link_name = "sk_X509_ALGOR_sort_and_dedup__extern"]
20529    pub fn sk_X509_ALGOR_sort_and_dedup(
20530        sk: *mut stack_st_X509_ALGOR,
20531        free_func: sk_X509_ALGOR_free_func,
20532    );
20533}
20534unsafe extern "C" {
20535    #[link_name = "sk_X509_ALGOR_is_sorted__extern"]
20536    pub fn sk_X509_ALGOR_is_sorted(sk: *const stack_st_X509_ALGOR) -> ::core::ffi::c_int;
20537}
20538unsafe extern "C" {
20539    #[link_name = "sk_X509_ALGOR_set_cmp_func__extern"]
20540    pub fn sk_X509_ALGOR_set_cmp_func(
20541        sk: *mut stack_st_X509_ALGOR,
20542        comp: sk_X509_ALGOR_cmp_func,
20543    ) -> sk_X509_ALGOR_cmp_func;
20544}
20545unsafe extern "C" {
20546    #[link_name = "sk_X509_ALGOR_deep_copy__extern"]
20547    pub fn sk_X509_ALGOR_deep_copy(
20548        sk: *const stack_st_X509_ALGOR,
20549        copy_func: sk_X509_ALGOR_copy_func,
20550        free_func: sk_X509_ALGOR_free_func,
20551    ) -> *mut stack_st_X509_ALGOR;
20552}
20553unsafe extern "C" {
20554    pub static X509_ALGOR_it: ASN1_ITEM;
20555}
20556unsafe extern "C" {
20557    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
20558}
20559unsafe extern "C" {
20560    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
20561}
20562unsafe extern "C" {
20563    pub fn X509_ALGOR_copy(dst: *mut X509_ALGOR, src: *const X509_ALGOR) -> ::core::ffi::c_int;
20564}
20565unsafe extern "C" {
20566    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
20567}
20568unsafe extern "C" {
20569    pub fn d2i_X509_ALGOR(
20570        out: *mut *mut X509_ALGOR,
20571        inp: *mut *const u8,
20572        len: ::core::ffi::c_long,
20573    ) -> *mut X509_ALGOR;
20574}
20575unsafe extern "C" {
20576    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::core::ffi::c_int;
20577}
20578unsafe extern "C" {
20579    pub fn X509_ALGOR_set0(
20580        alg: *mut X509_ALGOR,
20581        obj: *mut ASN1_OBJECT,
20582        param_type: ::core::ffi::c_int,
20583        param_value: *mut ::core::ffi::c_void,
20584    ) -> ::core::ffi::c_int;
20585}
20586unsafe extern "C" {
20587    pub fn X509_ALGOR_get0(
20588        out_obj: *mut *const ASN1_OBJECT,
20589        out_param_type: *mut ::core::ffi::c_int,
20590        out_param_value: *mut *const ::core::ffi::c_void,
20591        alg: *const X509_ALGOR,
20592    );
20593}
20594unsafe extern "C" {
20595    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::core::ffi::c_int;
20596}
20597unsafe extern "C" {
20598    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::core::ffi::c_int;
20599}
20600#[repr(C)]
20601#[derive(Debug)]
20602pub struct stack_st_X509_ATTRIBUTE {
20603    _unused: [u8; 0],
20604}
20605pub type sk_X509_ATTRIBUTE_free_func =
20606    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
20607pub type sk_X509_ATTRIBUTE_copy_func = ::core::option::Option<
20608    unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE,
20609>;
20610pub type sk_X509_ATTRIBUTE_cmp_func = ::core::option::Option<
20611    unsafe extern "C" fn(
20612        arg1: *const *const X509_ATTRIBUTE,
20613        arg2: *const *const X509_ATTRIBUTE,
20614    ) -> ::core::ffi::c_int,
20615>;
20616pub type sk_X509_ATTRIBUTE_delete_if_func = ::core::option::Option<
20617    unsafe extern "C" fn(
20618        arg1: *mut X509_ATTRIBUTE,
20619        arg2: *mut ::core::ffi::c_void,
20620    ) -> ::core::ffi::c_int,
20621>;
20622unsafe extern "C" {
20623    #[link_name = "sk_X509_ATTRIBUTE_call_free_func__extern"]
20624    pub fn sk_X509_ATTRIBUTE_call_free_func(
20625        free_func: OPENSSL_sk_free_func,
20626        ptr: *mut ::core::ffi::c_void,
20627    );
20628}
20629unsafe extern "C" {
20630    #[link_name = "sk_X509_ATTRIBUTE_call_copy_func__extern"]
20631    pub fn sk_X509_ATTRIBUTE_call_copy_func(
20632        copy_func: OPENSSL_sk_copy_func,
20633        ptr: *const ::core::ffi::c_void,
20634    ) -> *mut ::core::ffi::c_void;
20635}
20636unsafe extern "C" {
20637    #[link_name = "sk_X509_ATTRIBUTE_call_cmp_func__extern"]
20638    pub fn sk_X509_ATTRIBUTE_call_cmp_func(
20639        cmp_func: OPENSSL_sk_cmp_func,
20640        a: *const ::core::ffi::c_void,
20641        b: *const ::core::ffi::c_void,
20642    ) -> ::core::ffi::c_int;
20643}
20644unsafe extern "C" {
20645    #[link_name = "sk_X509_ATTRIBUTE_call_delete_if_func__extern"]
20646    pub fn sk_X509_ATTRIBUTE_call_delete_if_func(
20647        func: OPENSSL_sk_delete_if_func,
20648        obj: *mut ::core::ffi::c_void,
20649        data: *mut ::core::ffi::c_void,
20650    ) -> ::core::ffi::c_int;
20651}
20652unsafe extern "C" {
20653    #[link_name = "sk_X509_ATTRIBUTE_new__extern"]
20654    pub fn sk_X509_ATTRIBUTE_new(comp: sk_X509_ATTRIBUTE_cmp_func) -> *mut stack_st_X509_ATTRIBUTE;
20655}
20656unsafe extern "C" {
20657    #[link_name = "sk_X509_ATTRIBUTE_new_null__extern"]
20658    pub fn sk_X509_ATTRIBUTE_new_null() -> *mut stack_st_X509_ATTRIBUTE;
20659}
20660unsafe extern "C" {
20661    #[link_name = "sk_X509_ATTRIBUTE_num__extern"]
20662    pub fn sk_X509_ATTRIBUTE_num(sk: *const stack_st_X509_ATTRIBUTE) -> usize;
20663}
20664unsafe extern "C" {
20665    #[link_name = "sk_X509_ATTRIBUTE_zero__extern"]
20666    pub fn sk_X509_ATTRIBUTE_zero(sk: *mut stack_st_X509_ATTRIBUTE);
20667}
20668unsafe extern "C" {
20669    #[link_name = "sk_X509_ATTRIBUTE_value__extern"]
20670    pub fn sk_X509_ATTRIBUTE_value(
20671        sk: *const stack_st_X509_ATTRIBUTE,
20672        i: usize,
20673    ) -> *mut X509_ATTRIBUTE;
20674}
20675unsafe extern "C" {
20676    #[link_name = "sk_X509_ATTRIBUTE_last__extern"]
20677    pub fn sk_X509_ATTRIBUTE_last(sk: *const stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20678}
20679unsafe extern "C" {
20680    #[link_name = "sk_X509_ATTRIBUTE_set__extern"]
20681    pub fn sk_X509_ATTRIBUTE_set(
20682        sk: *mut stack_st_X509_ATTRIBUTE,
20683        i: usize,
20684        p: *mut X509_ATTRIBUTE,
20685    ) -> *mut X509_ATTRIBUTE;
20686}
20687unsafe extern "C" {
20688    #[link_name = "sk_X509_ATTRIBUTE_free__extern"]
20689    pub fn sk_X509_ATTRIBUTE_free(sk: *mut stack_st_X509_ATTRIBUTE);
20690}
20691unsafe extern "C" {
20692    #[link_name = "sk_X509_ATTRIBUTE_pop_free__extern"]
20693    pub fn sk_X509_ATTRIBUTE_pop_free(
20694        sk: *mut stack_st_X509_ATTRIBUTE,
20695        free_func: sk_X509_ATTRIBUTE_free_func,
20696    );
20697}
20698unsafe extern "C" {
20699    #[link_name = "sk_X509_ATTRIBUTE_insert__extern"]
20700    pub fn sk_X509_ATTRIBUTE_insert(
20701        sk: *mut stack_st_X509_ATTRIBUTE,
20702        p: *mut X509_ATTRIBUTE,
20703        where_: usize,
20704    ) -> usize;
20705}
20706unsafe extern "C" {
20707    #[link_name = "sk_X509_ATTRIBUTE_delete__extern"]
20708    pub fn sk_X509_ATTRIBUTE_delete(
20709        sk: *mut stack_st_X509_ATTRIBUTE,
20710        where_: usize,
20711    ) -> *mut X509_ATTRIBUTE;
20712}
20713unsafe extern "C" {
20714    #[link_name = "sk_X509_ATTRIBUTE_delete_ptr__extern"]
20715    pub fn sk_X509_ATTRIBUTE_delete_ptr(
20716        sk: *mut stack_st_X509_ATTRIBUTE,
20717        p: *const X509_ATTRIBUTE,
20718    ) -> *mut X509_ATTRIBUTE;
20719}
20720unsafe extern "C" {
20721    #[link_name = "sk_X509_ATTRIBUTE_delete_if__extern"]
20722    pub fn sk_X509_ATTRIBUTE_delete_if(
20723        sk: *mut stack_st_X509_ATTRIBUTE,
20724        func: sk_X509_ATTRIBUTE_delete_if_func,
20725        data: *mut ::core::ffi::c_void,
20726    );
20727}
20728unsafe extern "C" {
20729    #[link_name = "sk_X509_ATTRIBUTE_find__extern"]
20730    pub fn sk_X509_ATTRIBUTE_find(
20731        sk: *const stack_st_X509_ATTRIBUTE,
20732        out_index: *mut usize,
20733        p: *const X509_ATTRIBUTE,
20734    ) -> ::core::ffi::c_int;
20735}
20736unsafe extern "C" {
20737    #[link_name = "sk_X509_ATTRIBUTE_shift__extern"]
20738    pub fn sk_X509_ATTRIBUTE_shift(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20739}
20740unsafe extern "C" {
20741    #[link_name = "sk_X509_ATTRIBUTE_push__extern"]
20742    pub fn sk_X509_ATTRIBUTE_push(
20743        sk: *mut stack_st_X509_ATTRIBUTE,
20744        p: *mut X509_ATTRIBUTE,
20745    ) -> usize;
20746}
20747unsafe extern "C" {
20748    #[link_name = "sk_X509_ATTRIBUTE_pop__extern"]
20749    pub fn sk_X509_ATTRIBUTE_pop(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20750}
20751unsafe extern "C" {
20752    #[link_name = "sk_X509_ATTRIBUTE_dup__extern"]
20753    pub fn sk_X509_ATTRIBUTE_dup(
20754        sk: *const stack_st_X509_ATTRIBUTE,
20755    ) -> *mut stack_st_X509_ATTRIBUTE;
20756}
20757unsafe extern "C" {
20758    #[link_name = "sk_X509_ATTRIBUTE_sort__extern"]
20759    pub fn sk_X509_ATTRIBUTE_sort(sk: *mut stack_st_X509_ATTRIBUTE);
20760}
20761unsafe extern "C" {
20762    #[link_name = "sk_X509_ATTRIBUTE_sort_and_dedup__extern"]
20763    pub fn sk_X509_ATTRIBUTE_sort_and_dedup(
20764        sk: *mut stack_st_X509_ATTRIBUTE,
20765        free_func: sk_X509_ATTRIBUTE_free_func,
20766    );
20767}
20768unsafe extern "C" {
20769    #[link_name = "sk_X509_ATTRIBUTE_is_sorted__extern"]
20770    pub fn sk_X509_ATTRIBUTE_is_sorted(sk: *const stack_st_X509_ATTRIBUTE) -> ::core::ffi::c_int;
20771}
20772unsafe extern "C" {
20773    #[link_name = "sk_X509_ATTRIBUTE_set_cmp_func__extern"]
20774    pub fn sk_X509_ATTRIBUTE_set_cmp_func(
20775        sk: *mut stack_st_X509_ATTRIBUTE,
20776        comp: sk_X509_ATTRIBUTE_cmp_func,
20777    ) -> sk_X509_ATTRIBUTE_cmp_func;
20778}
20779unsafe extern "C" {
20780    #[link_name = "sk_X509_ATTRIBUTE_deep_copy__extern"]
20781    pub fn sk_X509_ATTRIBUTE_deep_copy(
20782        sk: *const stack_st_X509_ATTRIBUTE,
20783        copy_func: sk_X509_ATTRIBUTE_copy_func,
20784        free_func: sk_X509_ATTRIBUTE_free_func,
20785    ) -> *mut stack_st_X509_ATTRIBUTE;
20786}
20787unsafe extern "C" {
20788    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
20789}
20790unsafe extern "C" {
20791    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20792}
20793unsafe extern "C" {
20794    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
20795}
20796unsafe extern "C" {
20797    pub fn d2i_X509_ATTRIBUTE(
20798        out: *mut *mut X509_ATTRIBUTE,
20799        inp: *mut *const u8,
20800        len: ::core::ffi::c_long,
20801    ) -> *mut X509_ATTRIBUTE;
20802}
20803unsafe extern "C" {
20804    pub fn i2d_X509_ATTRIBUTE(alg: *const X509_ATTRIBUTE, outp: *mut *mut u8)
20805        -> ::core::ffi::c_int;
20806}
20807unsafe extern "C" {
20808    pub fn X509_ATTRIBUTE_create(
20809        nid: ::core::ffi::c_int,
20810        attrtype: ::core::ffi::c_int,
20811        value: *mut ::core::ffi::c_void,
20812    ) -> *mut X509_ATTRIBUTE;
20813}
20814unsafe extern "C" {
20815    pub fn X509_ATTRIBUTE_create_by_NID(
20816        attr: *mut *mut X509_ATTRIBUTE,
20817        nid: ::core::ffi::c_int,
20818        attrtype: ::core::ffi::c_int,
20819        data: *const ::core::ffi::c_void,
20820        len: ::core::ffi::c_int,
20821    ) -> *mut X509_ATTRIBUTE;
20822}
20823unsafe extern "C" {
20824    pub fn X509_ATTRIBUTE_create_by_OBJ(
20825        attr: *mut *mut X509_ATTRIBUTE,
20826        obj: *const ASN1_OBJECT,
20827        attrtype: ::core::ffi::c_int,
20828        data: *const ::core::ffi::c_void,
20829        len: ::core::ffi::c_int,
20830    ) -> *mut X509_ATTRIBUTE;
20831}
20832unsafe extern "C" {
20833    pub fn X509_ATTRIBUTE_create_by_txt(
20834        attr: *mut *mut X509_ATTRIBUTE,
20835        attrname: *const ::core::ffi::c_char,
20836        type_: ::core::ffi::c_int,
20837        bytes: *const ::core::ffi::c_uchar,
20838        len: ::core::ffi::c_int,
20839    ) -> *mut X509_ATTRIBUTE;
20840}
20841unsafe extern "C" {
20842    pub fn X509_ATTRIBUTE_set1_object(
20843        attr: *mut X509_ATTRIBUTE,
20844        obj: *const ASN1_OBJECT,
20845    ) -> ::core::ffi::c_int;
20846}
20847unsafe extern "C" {
20848    pub fn X509_ATTRIBUTE_set1_data(
20849        attr: *mut X509_ATTRIBUTE,
20850        attrtype: ::core::ffi::c_int,
20851        data: *const ::core::ffi::c_void,
20852        len: ::core::ffi::c_int,
20853    ) -> ::core::ffi::c_int;
20854}
20855unsafe extern "C" {
20856    pub fn X509_ATTRIBUTE_get0_data(
20857        attr: *mut X509_ATTRIBUTE,
20858        idx: ::core::ffi::c_int,
20859        attrtype: ::core::ffi::c_int,
20860        unused: *mut ::core::ffi::c_void,
20861    ) -> *mut ::core::ffi::c_void;
20862}
20863unsafe extern "C" {
20864    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::core::ffi::c_int;
20865}
20866unsafe extern "C" {
20867    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
20868}
20869unsafe extern "C" {
20870    pub fn X509_ATTRIBUTE_get0_type(
20871        attr: *mut X509_ATTRIBUTE,
20872        idx: ::core::ffi::c_int,
20873    ) -> *mut ASN1_TYPE;
20874}
20875unsafe extern "C" {
20876    pub fn X509_STORE_new() -> *mut X509_STORE;
20877}
20878unsafe extern "C" {
20879    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::core::ffi::c_int;
20880}
20881unsafe extern "C" {
20882    pub fn X509_STORE_free(store: *mut X509_STORE);
20883}
20884unsafe extern "C" {
20885    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::core::ffi::c_int;
20886}
20887unsafe extern "C" {
20888    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::core::ffi::c_int;
20889}
20890unsafe extern "C" {
20891    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
20892}
20893unsafe extern "C" {
20894    pub fn X509_STORE_set1_param(
20895        store: *mut X509_STORE,
20896        param: *const X509_VERIFY_PARAM,
20897    ) -> ::core::ffi::c_int;
20898}
20899unsafe extern "C" {
20900    pub fn X509_STORE_set_flags(
20901        store: *mut X509_STORE,
20902        flags: ::core::ffi::c_ulong,
20903    ) -> ::core::ffi::c_int;
20904}
20905unsafe extern "C" {
20906    pub fn X509_STORE_set_depth(
20907        store: *mut X509_STORE,
20908        depth: ::core::ffi::c_int,
20909    ) -> ::core::ffi::c_int;
20910}
20911unsafe extern "C" {
20912    pub fn X509_STORE_set_purpose(
20913        store: *mut X509_STORE,
20914        purpose: ::core::ffi::c_int,
20915    ) -> ::core::ffi::c_int;
20916}
20917unsafe extern "C" {
20918    pub fn X509_STORE_set_trust(
20919        store: *mut X509_STORE,
20920        trust: ::core::ffi::c_int,
20921    ) -> ::core::ffi::c_int;
20922}
20923#[repr(C)]
20924#[derive(Debug)]
20925pub struct stack_st_X509_OBJECT {
20926    _unused: [u8; 0],
20927}
20928pub type sk_X509_OBJECT_free_func =
20929    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
20930pub type sk_X509_OBJECT_copy_func =
20931    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
20932pub type sk_X509_OBJECT_cmp_func = ::core::option::Option<
20933    unsafe extern "C" fn(
20934        arg1: *const *const X509_OBJECT,
20935        arg2: *const *const X509_OBJECT,
20936    ) -> ::core::ffi::c_int,
20937>;
20938pub type sk_X509_OBJECT_delete_if_func = ::core::option::Option<
20939    unsafe extern "C" fn(
20940        arg1: *mut X509_OBJECT,
20941        arg2: *mut ::core::ffi::c_void,
20942    ) -> ::core::ffi::c_int,
20943>;
20944unsafe extern "C" {
20945    #[link_name = "sk_X509_OBJECT_call_free_func__extern"]
20946    pub fn sk_X509_OBJECT_call_free_func(
20947        free_func: OPENSSL_sk_free_func,
20948        ptr: *mut ::core::ffi::c_void,
20949    );
20950}
20951unsafe extern "C" {
20952    #[link_name = "sk_X509_OBJECT_call_copy_func__extern"]
20953    pub fn sk_X509_OBJECT_call_copy_func(
20954        copy_func: OPENSSL_sk_copy_func,
20955        ptr: *const ::core::ffi::c_void,
20956    ) -> *mut ::core::ffi::c_void;
20957}
20958unsafe extern "C" {
20959    #[link_name = "sk_X509_OBJECT_call_cmp_func__extern"]
20960    pub fn sk_X509_OBJECT_call_cmp_func(
20961        cmp_func: OPENSSL_sk_cmp_func,
20962        a: *const ::core::ffi::c_void,
20963        b: *const ::core::ffi::c_void,
20964    ) -> ::core::ffi::c_int;
20965}
20966unsafe extern "C" {
20967    #[link_name = "sk_X509_OBJECT_call_delete_if_func__extern"]
20968    pub fn sk_X509_OBJECT_call_delete_if_func(
20969        func: OPENSSL_sk_delete_if_func,
20970        obj: *mut ::core::ffi::c_void,
20971        data: *mut ::core::ffi::c_void,
20972    ) -> ::core::ffi::c_int;
20973}
20974unsafe extern "C" {
20975    #[link_name = "sk_X509_OBJECT_new__extern"]
20976    pub fn sk_X509_OBJECT_new(comp: sk_X509_OBJECT_cmp_func) -> *mut stack_st_X509_OBJECT;
20977}
20978unsafe extern "C" {
20979    #[link_name = "sk_X509_OBJECT_new_null__extern"]
20980    pub fn sk_X509_OBJECT_new_null() -> *mut stack_st_X509_OBJECT;
20981}
20982unsafe extern "C" {
20983    #[link_name = "sk_X509_OBJECT_num__extern"]
20984    pub fn sk_X509_OBJECT_num(sk: *const stack_st_X509_OBJECT) -> usize;
20985}
20986unsafe extern "C" {
20987    #[link_name = "sk_X509_OBJECT_zero__extern"]
20988    pub fn sk_X509_OBJECT_zero(sk: *mut stack_st_X509_OBJECT);
20989}
20990unsafe extern "C" {
20991    #[link_name = "sk_X509_OBJECT_value__extern"]
20992    pub fn sk_X509_OBJECT_value(sk: *const stack_st_X509_OBJECT, i: usize) -> *mut X509_OBJECT;
20993}
20994unsafe extern "C" {
20995    #[link_name = "sk_X509_OBJECT_last__extern"]
20996    pub fn sk_X509_OBJECT_last(sk: *const stack_st_X509_OBJECT) -> *mut X509_OBJECT;
20997}
20998unsafe extern "C" {
20999    #[link_name = "sk_X509_OBJECT_set__extern"]
21000    pub fn sk_X509_OBJECT_set(
21001        sk: *mut stack_st_X509_OBJECT,
21002        i: usize,
21003        p: *mut X509_OBJECT,
21004    ) -> *mut X509_OBJECT;
21005}
21006unsafe extern "C" {
21007    #[link_name = "sk_X509_OBJECT_free__extern"]
21008    pub fn sk_X509_OBJECT_free(sk: *mut stack_st_X509_OBJECT);
21009}
21010unsafe extern "C" {
21011    #[link_name = "sk_X509_OBJECT_pop_free__extern"]
21012    pub fn sk_X509_OBJECT_pop_free(
21013        sk: *mut stack_st_X509_OBJECT,
21014        free_func: sk_X509_OBJECT_free_func,
21015    );
21016}
21017unsafe extern "C" {
21018    #[link_name = "sk_X509_OBJECT_insert__extern"]
21019    pub fn sk_X509_OBJECT_insert(
21020        sk: *mut stack_st_X509_OBJECT,
21021        p: *mut X509_OBJECT,
21022        where_: usize,
21023    ) -> usize;
21024}
21025unsafe extern "C" {
21026    #[link_name = "sk_X509_OBJECT_delete__extern"]
21027    pub fn sk_X509_OBJECT_delete(sk: *mut stack_st_X509_OBJECT, where_: usize) -> *mut X509_OBJECT;
21028}
21029unsafe extern "C" {
21030    #[link_name = "sk_X509_OBJECT_delete_ptr__extern"]
21031    pub fn sk_X509_OBJECT_delete_ptr(
21032        sk: *mut stack_st_X509_OBJECT,
21033        p: *const X509_OBJECT,
21034    ) -> *mut X509_OBJECT;
21035}
21036unsafe extern "C" {
21037    #[link_name = "sk_X509_OBJECT_delete_if__extern"]
21038    pub fn sk_X509_OBJECT_delete_if(
21039        sk: *mut stack_st_X509_OBJECT,
21040        func: sk_X509_OBJECT_delete_if_func,
21041        data: *mut ::core::ffi::c_void,
21042    );
21043}
21044unsafe extern "C" {
21045    #[link_name = "sk_X509_OBJECT_find__extern"]
21046    pub fn sk_X509_OBJECT_find(
21047        sk: *const stack_st_X509_OBJECT,
21048        out_index: *mut usize,
21049        p: *const X509_OBJECT,
21050    ) -> ::core::ffi::c_int;
21051}
21052unsafe extern "C" {
21053    #[link_name = "sk_X509_OBJECT_shift__extern"]
21054    pub fn sk_X509_OBJECT_shift(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
21055}
21056unsafe extern "C" {
21057    #[link_name = "sk_X509_OBJECT_push__extern"]
21058    pub fn sk_X509_OBJECT_push(sk: *mut stack_st_X509_OBJECT, p: *mut X509_OBJECT) -> usize;
21059}
21060unsafe extern "C" {
21061    #[link_name = "sk_X509_OBJECT_pop__extern"]
21062    pub fn sk_X509_OBJECT_pop(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
21063}
21064unsafe extern "C" {
21065    #[link_name = "sk_X509_OBJECT_dup__extern"]
21066    pub fn sk_X509_OBJECT_dup(sk: *const stack_st_X509_OBJECT) -> *mut stack_st_X509_OBJECT;
21067}
21068unsafe extern "C" {
21069    #[link_name = "sk_X509_OBJECT_sort__extern"]
21070    pub fn sk_X509_OBJECT_sort(sk: *mut stack_st_X509_OBJECT);
21071}
21072unsafe extern "C" {
21073    #[link_name = "sk_X509_OBJECT_sort_and_dedup__extern"]
21074    pub fn sk_X509_OBJECT_sort_and_dedup(
21075        sk: *mut stack_st_X509_OBJECT,
21076        free_func: sk_X509_OBJECT_free_func,
21077    );
21078}
21079unsafe extern "C" {
21080    #[link_name = "sk_X509_OBJECT_is_sorted__extern"]
21081    pub fn sk_X509_OBJECT_is_sorted(sk: *const stack_st_X509_OBJECT) -> ::core::ffi::c_int;
21082}
21083unsafe extern "C" {
21084    #[link_name = "sk_X509_OBJECT_set_cmp_func__extern"]
21085    pub fn sk_X509_OBJECT_set_cmp_func(
21086        sk: *mut stack_st_X509_OBJECT,
21087        comp: sk_X509_OBJECT_cmp_func,
21088    ) -> sk_X509_OBJECT_cmp_func;
21089}
21090unsafe extern "C" {
21091    #[link_name = "sk_X509_OBJECT_deep_copy__extern"]
21092    pub fn sk_X509_OBJECT_deep_copy(
21093        sk: *const stack_st_X509_OBJECT,
21094        copy_func: sk_X509_OBJECT_copy_func,
21095        free_func: sk_X509_OBJECT_free_func,
21096    ) -> *mut stack_st_X509_OBJECT;
21097}
21098unsafe extern "C" {
21099    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
21100}
21101unsafe extern "C" {
21102    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
21103}
21104unsafe extern "C" {
21105    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::core::ffi::c_int;
21106}
21107unsafe extern "C" {
21108    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
21109}
21110unsafe extern "C" {
21111    pub fn X509_STORE_get1_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
21112}
21113unsafe extern "C" {
21114    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
21115}
21116unsafe extern "C" {
21117    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
21118}
21119unsafe extern "C" {
21120    pub fn X509_STORE_CTX_init(
21121        ctx: *mut X509_STORE_CTX,
21122        store: *mut X509_STORE,
21123        x509: *mut X509,
21124        chain: *mut stack_st_X509,
21125    ) -> ::core::ffi::c_int;
21126}
21127unsafe extern "C" {
21128    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::core::ffi::c_int;
21129}
21130unsafe extern "C" {
21131    pub fn X509_STORE_CTX_get0_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
21132}
21133unsafe extern "C" {
21134    pub fn X509_STORE_CTX_get1_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
21135}
21136unsafe extern "C" {
21137    pub fn X509_STORE_CTX_get_error(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
21138}
21139unsafe extern "C" {
21140    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::core::ffi::c_int);
21141}
21142unsafe extern "C" {
21143    pub fn X509_verify_cert_error_string(err: ::core::ffi::c_long) -> *const ::core::ffi::c_char;
21144}
21145unsafe extern "C" {
21146    pub fn X509_STORE_CTX_get_error_depth(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
21147}
21148unsafe extern "C" {
21149    pub fn X509_STORE_CTX_get_current_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
21150}
21151unsafe extern "C" {
21152    pub fn X509_STORE_CTX_get0_current_crl(ctx: *const X509_STORE_CTX) -> *mut X509_CRL;
21153}
21154unsafe extern "C" {
21155    pub fn X509_STORE_CTX_get0_store(ctx: *const X509_STORE_CTX) -> *mut X509_STORE;
21156}
21157unsafe extern "C" {
21158    pub fn X509_STORE_CTX_get0_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
21159}
21160unsafe extern "C" {
21161    pub fn X509_STORE_CTX_get0_untrusted(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
21162}
21163unsafe extern "C" {
21164    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21165}
21166unsafe extern "C" {
21167    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21168}
21169unsafe extern "C" {
21170    pub fn X509_STORE_CTX_set_default(
21171        ctx: *mut X509_STORE_CTX,
21172        name: *const ::core::ffi::c_char,
21173    ) -> ::core::ffi::c_int;
21174}
21175unsafe extern "C" {
21176    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21177}
21178unsafe extern "C" {
21179    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21180}
21181unsafe extern "C" {
21182    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::core::ffi::c_ulong);
21183}
21184unsafe extern "C" {
21185    pub fn X509_STORE_CTX_set_time(
21186        ctx: *mut X509_STORE_CTX,
21187        flags: ::core::ffi::c_ulong,
21188        t: time_t,
21189    );
21190}
21191unsafe extern "C" {
21192    pub fn X509_STORE_CTX_set_time_posix(
21193        ctx: *mut X509_STORE_CTX,
21194        flags: ::core::ffi::c_ulong,
21195        t: i64,
21196    );
21197}
21198unsafe extern "C" {
21199    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::core::ffi::c_int);
21200}
21201unsafe extern "C" {
21202    pub fn X509_STORE_CTX_set_purpose(
21203        ctx: *mut X509_STORE_CTX,
21204        purpose: ::core::ffi::c_int,
21205    ) -> ::core::ffi::c_int;
21206}
21207unsafe extern "C" {
21208    pub fn X509_STORE_CTX_set_trust(
21209        ctx: *mut X509_STORE_CTX,
21210        trust: ::core::ffi::c_int,
21211    ) -> ::core::ffi::c_int;
21212}
21213unsafe extern "C" {
21214    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21215}
21216unsafe extern "C" {
21217    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21218}
21219unsafe extern "C" {
21220    pub fn X509_VERIFY_PARAM_inherit(
21221        to: *mut X509_VERIFY_PARAM,
21222        from: *const X509_VERIFY_PARAM,
21223    ) -> ::core::ffi::c_int;
21224}
21225unsafe extern "C" {
21226    pub fn X509_VERIFY_PARAM_set1(
21227        to: *mut X509_VERIFY_PARAM,
21228        from: *const X509_VERIFY_PARAM,
21229    ) -> ::core::ffi::c_int;
21230}
21231unsafe extern "C" {
21232    pub fn X509_VERIFY_PARAM_set_flags(
21233        param: *mut X509_VERIFY_PARAM,
21234        flags: ::core::ffi::c_ulong,
21235    ) -> ::core::ffi::c_int;
21236}
21237unsafe extern "C" {
21238    pub fn X509_VERIFY_PARAM_clear_flags(
21239        param: *mut X509_VERIFY_PARAM,
21240        flags: ::core::ffi::c_ulong,
21241    ) -> ::core::ffi::c_int;
21242}
21243unsafe extern "C" {
21244    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_ulong;
21245}
21246unsafe extern "C" {
21247    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::core::ffi::c_int);
21248}
21249unsafe extern "C" {
21250    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
21251}
21252unsafe extern "C" {
21253    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21254}
21255unsafe extern "C" {
21256    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21257}
21258unsafe extern "C" {
21259    pub fn X509_VERIFY_PARAM_add0_policy(
21260        param: *mut X509_VERIFY_PARAM,
21261        policy: *mut ASN1_OBJECT,
21262    ) -> ::core::ffi::c_int;
21263}
21264unsafe extern "C" {
21265    pub fn X509_VERIFY_PARAM_set1_policies(
21266        param: *mut X509_VERIFY_PARAM,
21267        policies: *const stack_st_ASN1_OBJECT,
21268    ) -> ::core::ffi::c_int;
21269}
21270unsafe extern "C" {
21271    pub fn X509_VERIFY_PARAM_set1_host(
21272        param: *mut X509_VERIFY_PARAM,
21273        name: *const ::core::ffi::c_char,
21274        name_len: usize,
21275    ) -> ::core::ffi::c_int;
21276}
21277unsafe extern "C" {
21278    pub fn X509_VERIFY_PARAM_add1_host(
21279        param: *mut X509_VERIFY_PARAM,
21280        name: *const ::core::ffi::c_char,
21281        name_len: usize,
21282    ) -> ::core::ffi::c_int;
21283}
21284unsafe extern "C" {
21285    pub fn X509_VERIFY_PARAM_set_hostflags(
21286        param: *mut X509_VERIFY_PARAM,
21287        flags: ::core::ffi::c_uint,
21288    );
21289}
21290unsafe extern "C" {
21291    pub fn X509_VERIFY_PARAM_set1_email(
21292        param: *mut X509_VERIFY_PARAM,
21293        email: *const ::core::ffi::c_char,
21294        email_len: usize,
21295    ) -> ::core::ffi::c_int;
21296}
21297unsafe extern "C" {
21298    pub fn X509_VERIFY_PARAM_set1_ip(
21299        param: *mut X509_VERIFY_PARAM,
21300        ip: *const u8,
21301        ip_len: usize,
21302    ) -> ::core::ffi::c_int;
21303}
21304unsafe extern "C" {
21305    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21306        param: *mut X509_VERIFY_PARAM,
21307        ipasc: *const ::core::ffi::c_char,
21308    ) -> ::core::ffi::c_int;
21309}
21310unsafe extern "C" {
21311    pub fn X509_VERIFY_PARAM_set_purpose(
21312        param: *mut X509_VERIFY_PARAM,
21313        purpose: ::core::ffi::c_int,
21314    ) -> ::core::ffi::c_int;
21315}
21316unsafe extern "C" {
21317    pub fn X509_VERIFY_PARAM_set_trust(
21318        param: *mut X509_VERIFY_PARAM,
21319        trust: ::core::ffi::c_int,
21320    ) -> ::core::ffi::c_int;
21321}
21322unsafe extern "C" {
21323    pub fn X509_STORE_load_locations(
21324        store: *mut X509_STORE,
21325        file: *const ::core::ffi::c_char,
21326        dir: *const ::core::ffi::c_char,
21327    ) -> ::core::ffi::c_int;
21328}
21329unsafe extern "C" {
21330    pub fn X509_STORE_add_lookup(
21331        store: *mut X509_STORE,
21332        method: *const X509_LOOKUP_METHOD,
21333    ) -> *mut X509_LOOKUP;
21334}
21335unsafe extern "C" {
21336    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21337}
21338unsafe extern "C" {
21339    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21340}
21341unsafe extern "C" {
21342    pub fn X509_LOOKUP_load_file(
21343        lookup: *mut X509_LOOKUP,
21344        file: *const ::core::ffi::c_char,
21345        type_: ::core::ffi::c_int,
21346    ) -> ::core::ffi::c_int;
21347}
21348unsafe extern "C" {
21349    pub fn X509_LOOKUP_add_dir(
21350        lookup: *mut X509_LOOKUP,
21351        path: *const ::core::ffi::c_char,
21352        type_: ::core::ffi::c_int,
21353    ) -> ::core::ffi::c_int;
21354}
21355unsafe extern "C" {
21356    pub fn X509_LOOKUP_ctrl(
21357        lookup: *mut X509_LOOKUP,
21358        cmd: ::core::ffi::c_int,
21359        argc: *const ::core::ffi::c_char,
21360        argl: ::core::ffi::c_long,
21361        ret: *mut *mut ::core::ffi::c_char,
21362    ) -> ::core::ffi::c_int;
21363}
21364unsafe extern "C" {
21365    pub fn X509_load_cert_file(
21366        lookup: *mut X509_LOOKUP,
21367        file: *const ::core::ffi::c_char,
21368        type_: ::core::ffi::c_int,
21369    ) -> ::core::ffi::c_int;
21370}
21371unsafe extern "C" {
21372    pub fn X509_load_crl_file(
21373        lookup: *mut X509_LOOKUP,
21374        file: *const ::core::ffi::c_char,
21375        type_: ::core::ffi::c_int,
21376    ) -> ::core::ffi::c_int;
21377}
21378unsafe extern "C" {
21379    pub fn X509_load_cert_crl_file(
21380        lookup: *mut X509_LOOKUP,
21381        file: *const ::core::ffi::c_char,
21382        type_: ::core::ffi::c_int,
21383    ) -> ::core::ffi::c_int;
21384}
21385unsafe extern "C" {
21386    pub fn X509_NAME_hash(name: *const X509_NAME) -> u32;
21387}
21388unsafe extern "C" {
21389    pub fn X509_NAME_hash_old(name: *const X509_NAME) -> u32;
21390}
21391unsafe extern "C" {
21392    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::core::ffi::c_int;
21393}
21394unsafe extern "C" {
21395    pub fn X509_get_default_cert_area() -> *const ::core::ffi::c_char;
21396}
21397unsafe extern "C" {
21398    pub fn X509_get_default_cert_dir() -> *const ::core::ffi::c_char;
21399}
21400unsafe extern "C" {
21401    pub fn X509_get_default_cert_file() -> *const ::core::ffi::c_char;
21402}
21403unsafe extern "C" {
21404    pub fn X509_get_default_private_dir() -> *const ::core::ffi::c_char;
21405}
21406unsafe extern "C" {
21407    pub fn X509_get_default_cert_dir_env() -> *const ::core::ffi::c_char;
21408}
21409unsafe extern "C" {
21410    pub fn X509_get_default_cert_file_env() -> *const ::core::ffi::c_char;
21411}
21412#[repr(C)]
21413#[derive(Debug, Copy, Clone)]
21414pub struct Netscape_spki_st {
21415    pub spkac: *mut NETSCAPE_SPKAC,
21416    pub sig_algor: *mut X509_ALGOR,
21417    pub signature: *mut ASN1_BIT_STRING,
21418}
21419unsafe extern "C" {
21420    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21421}
21422unsafe extern "C" {
21423    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21424}
21425unsafe extern "C" {
21426    pub fn d2i_NETSCAPE_SPKI(
21427        out: *mut *mut NETSCAPE_SPKI,
21428        inp: *mut *const u8,
21429        len: ::core::ffi::c_long,
21430    ) -> *mut NETSCAPE_SPKI;
21431}
21432unsafe extern "C" {
21433    pub fn i2d_NETSCAPE_SPKI(spki: *const NETSCAPE_SPKI, outp: *mut *mut u8) -> ::core::ffi::c_int;
21434}
21435unsafe extern "C" {
21436    pub fn NETSCAPE_SPKI_verify(
21437        spki: *mut NETSCAPE_SPKI,
21438        pkey: *mut EVP_PKEY,
21439    ) -> ::core::ffi::c_int;
21440}
21441unsafe extern "C" {
21442    pub fn NETSCAPE_SPKI_b64_decode(
21443        str_: *const ::core::ffi::c_char,
21444        len: ossl_ssize_t,
21445    ) -> *mut NETSCAPE_SPKI;
21446}
21447unsafe extern "C" {
21448    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::core::ffi::c_char;
21449}
21450unsafe extern "C" {
21451    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21452}
21453unsafe extern "C" {
21454    pub fn NETSCAPE_SPKI_set_pubkey(
21455        spki: *mut NETSCAPE_SPKI,
21456        pkey: *mut EVP_PKEY,
21457    ) -> ::core::ffi::c_int;
21458}
21459unsafe extern "C" {
21460    pub fn NETSCAPE_SPKI_sign(
21461        spki: *mut NETSCAPE_SPKI,
21462        pkey: *mut EVP_PKEY,
21463        md: *const EVP_MD,
21464    ) -> ::core::ffi::c_int;
21465}
21466#[repr(C)]
21467#[derive(Debug, Copy, Clone)]
21468pub struct Netscape_spkac_st {
21469    pub pubkey: *mut X509_PUBKEY,
21470    pub challenge: *mut ASN1_IA5STRING,
21471}
21472unsafe extern "C" {
21473    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
21474}
21475unsafe extern "C" {
21476    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
21477}
21478unsafe extern "C" {
21479    pub fn d2i_NETSCAPE_SPKAC(
21480        out: *mut *mut NETSCAPE_SPKAC,
21481        inp: *mut *const u8,
21482        len: ::core::ffi::c_long,
21483    ) -> *mut NETSCAPE_SPKAC;
21484}
21485unsafe extern "C" {
21486    pub fn i2d_NETSCAPE_SPKAC(
21487        spkac: *const NETSCAPE_SPKAC,
21488        outp: *mut *mut u8,
21489    ) -> ::core::ffi::c_int;
21490}
21491#[repr(C)]
21492#[derive(Debug, Copy, Clone)]
21493pub struct rsa_pss_params_st {
21494    pub hashAlgorithm: *mut X509_ALGOR,
21495    pub maskGenAlgorithm: *mut X509_ALGOR,
21496    pub saltLength: *mut ASN1_INTEGER,
21497    pub trailerField: *mut ASN1_INTEGER,
21498    pub maskHash: *mut X509_ALGOR,
21499}
21500unsafe extern "C" {
21501    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
21502}
21503unsafe extern "C" {
21504    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
21505}
21506unsafe extern "C" {
21507    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
21508}
21509unsafe extern "C" {
21510    pub fn d2i_RSA_PSS_PARAMS(
21511        out: *mut *mut RSA_PSS_PARAMS,
21512        inp: *mut *const u8,
21513        len: ::core::ffi::c_long,
21514    ) -> *mut RSA_PSS_PARAMS;
21515}
21516unsafe extern "C" {
21517    pub fn i2d_RSA_PSS_PARAMS(in_: *const RSA_PSS_PARAMS, outp: *mut *mut u8)
21518        -> ::core::ffi::c_int;
21519}
21520unsafe extern "C" {
21521    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
21522}
21523unsafe extern "C" {
21524    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
21525}
21526unsafe extern "C" {
21527    pub fn d2i_PKCS8_PRIV_KEY_INFO(
21528        out: *mut *mut PKCS8_PRIV_KEY_INFO,
21529        inp: *mut *const u8,
21530        len: ::core::ffi::c_long,
21531    ) -> *mut PKCS8_PRIV_KEY_INFO;
21532}
21533unsafe extern "C" {
21534    pub fn i2d_PKCS8_PRIV_KEY_INFO(
21535        key: *const PKCS8_PRIV_KEY_INFO,
21536        outp: *mut *mut u8,
21537    ) -> ::core::ffi::c_int;
21538}
21539unsafe extern "C" {
21540    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
21541}
21542unsafe extern "C" {
21543    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
21544}
21545unsafe extern "C" {
21546    pub fn X509_SIG_new() -> *mut X509_SIG;
21547}
21548unsafe extern "C" {
21549    pub fn X509_SIG_free(key: *mut X509_SIG);
21550}
21551unsafe extern "C" {
21552    pub fn d2i_X509_SIG(
21553        out: *mut *mut X509_SIG,
21554        inp: *mut *const u8,
21555        len: ::core::ffi::c_long,
21556    ) -> *mut X509_SIG;
21557}
21558unsafe extern "C" {
21559    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
21560}
21561unsafe extern "C" {
21562    pub fn X509_SIG_get0(
21563        sig: *const X509_SIG,
21564        out_alg: *mut *const X509_ALGOR,
21565        out_digest: *mut *const ASN1_OCTET_STRING,
21566    );
21567}
21568unsafe extern "C" {
21569    pub fn X509_SIG_getm(
21570        sig: *mut X509_SIG,
21571        out_alg: *mut *mut X509_ALGOR,
21572        out_digest: *mut *mut ASN1_OCTET_STRING,
21573    );
21574}
21575unsafe extern "C" {
21576    pub fn X509_print_ex(
21577        bp: *mut BIO,
21578        x: *const X509,
21579        nmflag: ::core::ffi::c_ulong,
21580        cflag: ::core::ffi::c_ulong,
21581    ) -> ::core::ffi::c_int;
21582}
21583unsafe extern "C" {
21584    pub fn X509_print_ex_fp(
21585        fp: *mut FILE,
21586        x: *const X509,
21587        nmflag: ::core::ffi::c_ulong,
21588        cflag: ::core::ffi::c_ulong,
21589    ) -> ::core::ffi::c_int;
21590}
21591unsafe extern "C" {
21592    pub fn X509_print(bp: *mut BIO, x: *const X509) -> ::core::ffi::c_int;
21593}
21594unsafe extern "C" {
21595    pub fn X509_print_fp(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
21596}
21597unsafe extern "C" {
21598    pub fn X509_CRL_print(bp: *mut BIO, x: *const X509_CRL) -> ::core::ffi::c_int;
21599}
21600unsafe extern "C" {
21601    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *const X509_CRL) -> ::core::ffi::c_int;
21602}
21603unsafe extern "C" {
21604    pub fn X509_REQ_print_ex(
21605        bp: *mut BIO,
21606        x: *const X509_REQ,
21607        nmflag: ::core::ffi::c_ulong,
21608        cflag: ::core::ffi::c_ulong,
21609    ) -> ::core::ffi::c_int;
21610}
21611unsafe extern "C" {
21612    pub fn X509_REQ_print(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21613}
21614unsafe extern "C" {
21615    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21616}
21617unsafe extern "C" {
21618    pub fn X509_NAME_print_ex(
21619        out: *mut BIO,
21620        nm: *const X509_NAME,
21621        indent: ::core::ffi::c_int,
21622        flags: ::core::ffi::c_ulong,
21623    ) -> ::core::ffi::c_int;
21624}
21625unsafe extern "C" {
21626    pub fn X509_NAME_print(
21627        bp: *mut BIO,
21628        name: *const X509_NAME,
21629        obase: ::core::ffi::c_int,
21630    ) -> ::core::ffi::c_int;
21631}
21632unsafe extern "C" {
21633    pub fn X509_NAME_oneline(
21634        name: *const X509_NAME,
21635        buf: *mut ::core::ffi::c_char,
21636        size: ::core::ffi::c_int,
21637    ) -> *mut ::core::ffi::c_char;
21638}
21639unsafe extern "C" {
21640    pub fn X509_NAME_print_ex_fp(
21641        fp: *mut FILE,
21642        nm: *const X509_NAME,
21643        indent: ::core::ffi::c_int,
21644        flags: ::core::ffi::c_ulong,
21645    ) -> ::core::ffi::c_int;
21646}
21647unsafe extern "C" {
21648    pub fn X509_signature_dump(
21649        bio: *mut BIO,
21650        sig: *const ASN1_STRING,
21651        indent: ::core::ffi::c_int,
21652    ) -> ::core::ffi::c_int;
21653}
21654unsafe extern "C" {
21655    pub fn X509_signature_print(
21656        bio: *mut BIO,
21657        alg: *const X509_ALGOR,
21658        sig: *const ASN1_STRING,
21659    ) -> ::core::ffi::c_int;
21660}
21661unsafe extern "C" {
21662    pub fn X509V3_EXT_print(
21663        out: *mut BIO,
21664        ext: *const X509_EXTENSION,
21665        flag: ::core::ffi::c_ulong,
21666        indent: ::core::ffi::c_int,
21667    ) -> ::core::ffi::c_int;
21668}
21669unsafe extern "C" {
21670    pub fn X509V3_EXT_print_fp(
21671        out: *mut FILE,
21672        ext: *const X509_EXTENSION,
21673        flag: ::core::ffi::c_int,
21674        indent: ::core::ffi::c_int,
21675    ) -> ::core::ffi::c_int;
21676}
21677unsafe extern "C" {
21678    pub fn X509V3_extensions_print(
21679        out: *mut BIO,
21680        title: *const ::core::ffi::c_char,
21681        exts: *const stack_st_X509_EXTENSION,
21682        flag: ::core::ffi::c_ulong,
21683        indent: ::core::ffi::c_int,
21684    ) -> ::core::ffi::c_int;
21685}
21686unsafe extern "C" {
21687    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::core::ffi::c_int;
21688}
21689unsafe extern "C" {
21690    pub fn X509_pubkey_digest(
21691        x509: *const X509,
21692        md: *const EVP_MD,
21693        out: *mut u8,
21694        out_len: *mut ::core::ffi::c_uint,
21695    ) -> ::core::ffi::c_int;
21696}
21697unsafe extern "C" {
21698    pub fn X509_digest(
21699        x509: *const X509,
21700        md: *const EVP_MD,
21701        out: *mut u8,
21702        out_len: *mut ::core::ffi::c_uint,
21703    ) -> ::core::ffi::c_int;
21704}
21705unsafe extern "C" {
21706    pub fn X509_CRL_digest(
21707        crl: *const X509_CRL,
21708        md: *const EVP_MD,
21709        out: *mut u8,
21710        out_len: *mut ::core::ffi::c_uint,
21711    ) -> ::core::ffi::c_int;
21712}
21713unsafe extern "C" {
21714    pub fn X509_REQ_digest(
21715        req: *const X509_REQ,
21716        md: *const EVP_MD,
21717        out: *mut u8,
21718        out_len: *mut ::core::ffi::c_uint,
21719    ) -> ::core::ffi::c_int;
21720}
21721unsafe extern "C" {
21722    pub fn X509_NAME_digest(
21723        name: *const X509_NAME,
21724        md: *const EVP_MD,
21725        out: *mut u8,
21726        out_len: *mut ::core::ffi::c_uint,
21727    ) -> ::core::ffi::c_int;
21728}
21729unsafe extern "C" {
21730    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
21731}
21732unsafe extern "C" {
21733    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21734}
21735unsafe extern "C" {
21736    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21737}
21738unsafe extern "C" {
21739    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21740}
21741unsafe extern "C" {
21742    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21743}
21744unsafe extern "C" {
21745    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21746}
21747unsafe extern "C" {
21748    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21749}
21750unsafe extern "C" {
21751    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21752}
21753unsafe extern "C" {
21754    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21755}
21756unsafe extern "C" {
21757    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21758}
21759unsafe extern "C" {
21760    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21761}
21762unsafe extern "C" {
21763    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
21764        bp: *mut BIO,
21765        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21766    ) -> *mut PKCS8_PRIV_KEY_INFO;
21767}
21768unsafe extern "C" {
21769    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21770}
21771unsafe extern "C" {
21772    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
21773}
21774unsafe extern "C" {
21775    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21776}
21777unsafe extern "C" {
21778    pub fn i2d_X509_bio(bp: *mut BIO, x509: *const X509) -> ::core::ffi::c_int;
21779}
21780unsafe extern "C" {
21781    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *const X509_CRL) -> ::core::ffi::c_int;
21782}
21783unsafe extern "C" {
21784    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21785}
21786unsafe extern "C" {
21787    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21788}
21789unsafe extern "C" {
21790    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21791}
21792unsafe extern "C" {
21793    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21794}
21795unsafe extern "C" {
21796    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21797}
21798unsafe extern "C" {
21799    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21800}
21801unsafe extern "C" {
21802    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21803}
21804unsafe extern "C" {
21805    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21806}
21807unsafe extern "C" {
21808    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *const X509_SIG) -> ::core::ffi::c_int;
21809}
21810unsafe extern "C" {
21811    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
21812        bp: *mut BIO,
21813        p8inf: *const PKCS8_PRIV_KEY_INFO,
21814    ) -> ::core::ffi::c_int;
21815}
21816unsafe extern "C" {
21817    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21818}
21819unsafe extern "C" {
21820    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21821}
21822unsafe extern "C" {
21823    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::core::ffi::c_int;
21824}
21825unsafe extern "C" {
21826    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21827}
21828unsafe extern "C" {
21829    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
21830}
21831unsafe extern "C" {
21832    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21833}
21834unsafe extern "C" {
21835    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21836}
21837unsafe extern "C" {
21838    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21839}
21840unsafe extern "C" {
21841    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21842}
21843unsafe extern "C" {
21844    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21845}
21846unsafe extern "C" {
21847    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21848}
21849unsafe extern "C" {
21850    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21851}
21852unsafe extern "C" {
21853    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21854}
21855unsafe extern "C" {
21856    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21857}
21858unsafe extern "C" {
21859    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21860}
21861unsafe extern "C" {
21862    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
21863        fp: *mut FILE,
21864        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21865    ) -> *mut PKCS8_PRIV_KEY_INFO;
21866}
21867unsafe extern "C" {
21868    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21869}
21870unsafe extern "C" {
21871    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21872}
21873unsafe extern "C" {
21874    pub fn i2d_X509_fp(fp: *mut FILE, x509: *const X509) -> ::core::ffi::c_int;
21875}
21876unsafe extern "C" {
21877    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *const X509_CRL) -> ::core::ffi::c_int;
21878}
21879unsafe extern "C" {
21880    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21881}
21882unsafe extern "C" {
21883    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21884}
21885unsafe extern "C" {
21886    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21887}
21888unsafe extern "C" {
21889    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21890}
21891unsafe extern "C" {
21892    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21893}
21894unsafe extern "C" {
21895    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21896}
21897unsafe extern "C" {
21898    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21899}
21900unsafe extern "C" {
21901    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21902}
21903unsafe extern "C" {
21904    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *const X509_SIG) -> ::core::ffi::c_int;
21905}
21906unsafe extern "C" {
21907    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
21908        fp: *mut FILE,
21909        p8inf: *const PKCS8_PRIV_KEY_INFO,
21910    ) -> ::core::ffi::c_int;
21911}
21912unsafe extern "C" {
21913    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21914}
21915unsafe extern "C" {
21916    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21917}
21918unsafe extern "C" {
21919    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21920}
21921unsafe extern "C" {
21922    pub fn X509_find_by_issuer_and_serial(
21923        sk: *const stack_st_X509,
21924        name: *const X509_NAME,
21925        serial: *const ASN1_INTEGER,
21926    ) -> *mut X509;
21927}
21928unsafe extern "C" {
21929    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *const X509_NAME) -> *mut X509;
21930}
21931unsafe extern "C" {
21932    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::core::ffi::c_int;
21933}
21934unsafe extern "C" {
21935    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::core::ffi::c_int;
21936}
21937unsafe extern "C" {
21938    pub fn X509_cmp_time_posix_nonstandard(s: *const ASN1_TIME, t: i64) -> ::core::ffi::c_int;
21939}
21940unsafe extern "C" {
21941    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::core::ffi::c_int;
21942}
21943unsafe extern "C" {
21944    pub fn X509_time_adj(
21945        s: *mut ASN1_TIME,
21946        offset_sec: ::core::ffi::c_long,
21947        t: *const time_t,
21948    ) -> *mut ASN1_TIME;
21949}
21950unsafe extern "C" {
21951    pub fn X509_time_adj_ex(
21952        s: *mut ASN1_TIME,
21953        offset_day: ::core::ffi::c_int,
21954        offset_sec: ::core::ffi::c_long,
21955        t: *const time_t,
21956    ) -> *mut ASN1_TIME;
21957}
21958unsafe extern "C" {
21959    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::core::ffi::c_long) -> *mut ASN1_TIME;
21960}
21961unsafe extern "C" {
21962    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21963}
21964unsafe extern "C" {
21965    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21966}
21967unsafe extern "C" {
21968    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
21969}
21970unsafe extern "C" {
21971    pub fn X509_issuer_name_hash(x509: *const X509) -> u32;
21972}
21973unsafe extern "C" {
21974    pub fn X509_subject_name_hash(x509: *const X509) -> u32;
21975}
21976unsafe extern "C" {
21977    pub fn X509_issuer_name_hash_old(x509: *const X509) -> u32;
21978}
21979unsafe extern "C" {
21980    pub fn X509_subject_name_hash_old(x509: *const X509) -> u32;
21981}
21982unsafe extern "C" {
21983    pub fn X509_get_ex_new_index(
21984        argl: ::core::ffi::c_long,
21985        argp: *mut ::core::ffi::c_void,
21986        unused: *mut CRYPTO_EX_unused,
21987        dup_unused: CRYPTO_EX_dup,
21988        free_func: CRYPTO_EX_free,
21989    ) -> ::core::ffi::c_int;
21990}
21991unsafe extern "C" {
21992    pub fn X509_set_ex_data(
21993        r: *mut X509,
21994        idx: ::core::ffi::c_int,
21995        arg: *mut ::core::ffi::c_void,
21996    ) -> ::core::ffi::c_int;
21997}
21998unsafe extern "C" {
21999    pub fn X509_get_ex_data(r: *mut X509, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
22000}
22001unsafe extern "C" {
22002    pub fn X509_STORE_CTX_get_ex_new_index(
22003        argl: ::core::ffi::c_long,
22004        argp: *mut ::core::ffi::c_void,
22005        unused: *mut CRYPTO_EX_unused,
22006        dup_unused: CRYPTO_EX_dup,
22007        free_func: CRYPTO_EX_free,
22008    ) -> ::core::ffi::c_int;
22009}
22010unsafe extern "C" {
22011    pub fn X509_STORE_CTX_set_ex_data(
22012        ctx: *mut X509_STORE_CTX,
22013        idx: ::core::ffi::c_int,
22014        data: *mut ::core::ffi::c_void,
22015    ) -> ::core::ffi::c_int;
22016}
22017unsafe extern "C" {
22018    pub fn X509_STORE_CTX_get_ex_data(
22019        ctx: *mut X509_STORE_CTX,
22020        idx: ::core::ffi::c_int,
22021    ) -> *mut ::core::ffi::c_void;
22022}
22023unsafe extern "C" {
22024    pub fn ASN1_digest(
22025        i2d: i2d_of_void,
22026        type_: *const EVP_MD,
22027        data: *mut ::core::ffi::c_char,
22028        md: *mut ::core::ffi::c_uchar,
22029        len: *mut ::core::ffi::c_uint,
22030    ) -> ::core::ffi::c_int;
22031}
22032unsafe extern "C" {
22033    pub fn ASN1_item_digest(
22034        it: *const ASN1_ITEM,
22035        type_: *const EVP_MD,
22036        data: *mut ::core::ffi::c_void,
22037        md: *mut ::core::ffi::c_uchar,
22038        len: *mut ::core::ffi::c_uint,
22039    ) -> ::core::ffi::c_int;
22040}
22041unsafe extern "C" {
22042    pub fn ASN1_item_verify(
22043        it: *const ASN1_ITEM,
22044        algor1: *const X509_ALGOR,
22045        signature: *const ASN1_BIT_STRING,
22046        data: *mut ::core::ffi::c_void,
22047        pkey: *mut EVP_PKEY,
22048    ) -> ::core::ffi::c_int;
22049}
22050unsafe extern "C" {
22051    pub fn ASN1_item_sign(
22052        it: *const ASN1_ITEM,
22053        algor1: *mut X509_ALGOR,
22054        algor2: *mut X509_ALGOR,
22055        signature: *mut ASN1_BIT_STRING,
22056        data: *mut ::core::ffi::c_void,
22057        pkey: *mut EVP_PKEY,
22058        type_: *const EVP_MD,
22059    ) -> ::core::ffi::c_int;
22060}
22061unsafe extern "C" {
22062    pub fn ASN1_item_sign_ctx(
22063        it: *const ASN1_ITEM,
22064        algor1: *mut X509_ALGOR,
22065        algor2: *mut X509_ALGOR,
22066        signature: *mut ASN1_BIT_STRING,
22067        asn: *mut ::core::ffi::c_void,
22068        ctx: *mut EVP_MD_CTX,
22069    ) -> ::core::ffi::c_int;
22070}
22071unsafe extern "C" {
22072    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
22073}
22074unsafe extern "C" {
22075    pub fn X509_check_ca(x509: *const X509) -> ::core::ffi::c_int;
22076}
22077unsafe extern "C" {
22078    pub fn X509_check_issued(issuer: *const X509, subject: *const X509) -> ::core::ffi::c_int;
22079}
22080unsafe extern "C" {
22081    pub fn NAME_CONSTRAINTS_check(
22082        x509: *const X509,
22083        nc: *const NAME_CONSTRAINTS,
22084    ) -> ::core::ffi::c_int;
22085}
22086unsafe extern "C" {
22087    pub fn X509_check_host(
22088        x509: *const X509,
22089        chk: *const ::core::ffi::c_char,
22090        chklen: usize,
22091        flags: ::core::ffi::c_uint,
22092        out_peername: *mut *mut ::core::ffi::c_char,
22093    ) -> ::core::ffi::c_int;
22094}
22095unsafe extern "C" {
22096    pub fn X509_check_email(
22097        x509: *const X509,
22098        chk: *const ::core::ffi::c_char,
22099        chklen: usize,
22100        flags: ::core::ffi::c_uint,
22101    ) -> ::core::ffi::c_int;
22102}
22103unsafe extern "C" {
22104    pub fn X509_check_ip(
22105        x509: *const X509,
22106        chk: *const u8,
22107        chklen: usize,
22108        flags: ::core::ffi::c_uint,
22109    ) -> ::core::ffi::c_int;
22110}
22111unsafe extern "C" {
22112    pub fn X509_check_ip_asc(
22113        x509: *const X509,
22114        ipasc: *const ::core::ffi::c_char,
22115        flags: ::core::ffi::c_uint,
22116    ) -> ::core::ffi::c_int;
22117}
22118unsafe extern "C" {
22119    pub fn X509_STORE_CTX_get1_issuer(
22120        out_issuer: *mut *mut X509,
22121        ctx: *mut X509_STORE_CTX,
22122        x509: *const X509,
22123    ) -> ::core::ffi::c_int;
22124}
22125unsafe extern "C" {
22126    pub fn X509_check_purpose(
22127        x509: *mut X509,
22128        purpose: ::core::ffi::c_int,
22129        ca: ::core::ffi::c_int,
22130    ) -> ::core::ffi::c_int;
22131}
22132unsafe extern "C" {
22133    pub fn X509_check_trust(
22134        x509: *mut X509,
22135        id: ::core::ffi::c_int,
22136        flags: ::core::ffi::c_int,
22137    ) -> ::core::ffi::c_int;
22138}
22139unsafe extern "C" {
22140    pub fn X509_STORE_CTX_get1_certs(
22141        ctx: *mut X509_STORE_CTX,
22142        name: *const X509_NAME,
22143    ) -> *mut stack_st_X509;
22144}
22145unsafe extern "C" {
22146    pub fn X509_STORE_CTX_get1_crls(
22147        ctx: *mut X509_STORE_CTX,
22148        name: *const X509_NAME,
22149    ) -> *mut stack_st_X509_CRL;
22150}
22151unsafe extern "C" {
22152    pub fn X509_STORE_CTX_get_by_subject(
22153        ctx: *mut X509_STORE_CTX,
22154        type_: ::core::ffi::c_int,
22155        name: *const X509_NAME,
22156        ret: *mut X509_OBJECT,
22157    ) -> ::core::ffi::c_int;
22158}
22159#[repr(C)]
22160#[derive(Debug, Copy, Clone)]
22161pub struct private_key_st {
22162    pub dec_pkey: *mut EVP_PKEY,
22163}
22164#[repr(C)]
22165#[derive(Debug, Copy, Clone)]
22166pub struct X509_info_st {
22167    pub x509: *mut X509,
22168    pub crl: *mut X509_CRL,
22169    pub x_pkey: *mut X509_PKEY,
22170    pub enc_cipher: EVP_CIPHER_INFO,
22171    pub enc_len: ::core::ffi::c_int,
22172    pub enc_data: *mut ::core::ffi::c_char,
22173}
22174#[repr(C)]
22175#[derive(Debug)]
22176pub struct stack_st_X509_INFO {
22177    _unused: [u8; 0],
22178}
22179pub type sk_X509_INFO_free_func =
22180    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
22181pub type sk_X509_INFO_copy_func =
22182    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
22183pub type sk_X509_INFO_cmp_func = ::core::option::Option<
22184    unsafe extern "C" fn(
22185        arg1: *const *const X509_INFO,
22186        arg2: *const *const X509_INFO,
22187    ) -> ::core::ffi::c_int,
22188>;
22189pub type sk_X509_INFO_delete_if_func = ::core::option::Option<
22190    unsafe extern "C" fn(
22191        arg1: *mut X509_INFO,
22192        arg2: *mut ::core::ffi::c_void,
22193    ) -> ::core::ffi::c_int,
22194>;
22195unsafe extern "C" {
22196    #[link_name = "sk_X509_INFO_call_free_func__extern"]
22197    pub fn sk_X509_INFO_call_free_func(
22198        free_func: OPENSSL_sk_free_func,
22199        ptr: *mut ::core::ffi::c_void,
22200    );
22201}
22202unsafe extern "C" {
22203    #[link_name = "sk_X509_INFO_call_copy_func__extern"]
22204    pub fn sk_X509_INFO_call_copy_func(
22205        copy_func: OPENSSL_sk_copy_func,
22206        ptr: *const ::core::ffi::c_void,
22207    ) -> *mut ::core::ffi::c_void;
22208}
22209unsafe extern "C" {
22210    #[link_name = "sk_X509_INFO_call_cmp_func__extern"]
22211    pub fn sk_X509_INFO_call_cmp_func(
22212        cmp_func: OPENSSL_sk_cmp_func,
22213        a: *const ::core::ffi::c_void,
22214        b: *const ::core::ffi::c_void,
22215    ) -> ::core::ffi::c_int;
22216}
22217unsafe extern "C" {
22218    #[link_name = "sk_X509_INFO_call_delete_if_func__extern"]
22219    pub fn sk_X509_INFO_call_delete_if_func(
22220        func: OPENSSL_sk_delete_if_func,
22221        obj: *mut ::core::ffi::c_void,
22222        data: *mut ::core::ffi::c_void,
22223    ) -> ::core::ffi::c_int;
22224}
22225unsafe extern "C" {
22226    #[link_name = "sk_X509_INFO_new__extern"]
22227    pub fn sk_X509_INFO_new(comp: sk_X509_INFO_cmp_func) -> *mut stack_st_X509_INFO;
22228}
22229unsafe extern "C" {
22230    #[link_name = "sk_X509_INFO_new_null__extern"]
22231    pub fn sk_X509_INFO_new_null() -> *mut stack_st_X509_INFO;
22232}
22233unsafe extern "C" {
22234    #[link_name = "sk_X509_INFO_num__extern"]
22235    pub fn sk_X509_INFO_num(sk: *const stack_st_X509_INFO) -> usize;
22236}
22237unsafe extern "C" {
22238    #[link_name = "sk_X509_INFO_zero__extern"]
22239    pub fn sk_X509_INFO_zero(sk: *mut stack_st_X509_INFO);
22240}
22241unsafe extern "C" {
22242    #[link_name = "sk_X509_INFO_value__extern"]
22243    pub fn sk_X509_INFO_value(sk: *const stack_st_X509_INFO, i: usize) -> *mut X509_INFO;
22244}
22245unsafe extern "C" {
22246    #[link_name = "sk_X509_INFO_last__extern"]
22247    pub fn sk_X509_INFO_last(sk: *const stack_st_X509_INFO) -> *mut X509_INFO;
22248}
22249unsafe extern "C" {
22250    #[link_name = "sk_X509_INFO_set__extern"]
22251    pub fn sk_X509_INFO_set(
22252        sk: *mut stack_st_X509_INFO,
22253        i: usize,
22254        p: *mut X509_INFO,
22255    ) -> *mut X509_INFO;
22256}
22257unsafe extern "C" {
22258    #[link_name = "sk_X509_INFO_free__extern"]
22259    pub fn sk_X509_INFO_free(sk: *mut stack_st_X509_INFO);
22260}
22261unsafe extern "C" {
22262    #[link_name = "sk_X509_INFO_pop_free__extern"]
22263    pub fn sk_X509_INFO_pop_free(sk: *mut stack_st_X509_INFO, free_func: sk_X509_INFO_free_func);
22264}
22265unsafe extern "C" {
22266    #[link_name = "sk_X509_INFO_insert__extern"]
22267    pub fn sk_X509_INFO_insert(
22268        sk: *mut stack_st_X509_INFO,
22269        p: *mut X509_INFO,
22270        where_: usize,
22271    ) -> usize;
22272}
22273unsafe extern "C" {
22274    #[link_name = "sk_X509_INFO_delete__extern"]
22275    pub fn sk_X509_INFO_delete(sk: *mut stack_st_X509_INFO, where_: usize) -> *mut X509_INFO;
22276}
22277unsafe extern "C" {
22278    #[link_name = "sk_X509_INFO_delete_ptr__extern"]
22279    pub fn sk_X509_INFO_delete_ptr(
22280        sk: *mut stack_st_X509_INFO,
22281        p: *const X509_INFO,
22282    ) -> *mut X509_INFO;
22283}
22284unsafe extern "C" {
22285    #[link_name = "sk_X509_INFO_delete_if__extern"]
22286    pub fn sk_X509_INFO_delete_if(
22287        sk: *mut stack_st_X509_INFO,
22288        func: sk_X509_INFO_delete_if_func,
22289        data: *mut ::core::ffi::c_void,
22290    );
22291}
22292unsafe extern "C" {
22293    #[link_name = "sk_X509_INFO_find__extern"]
22294    pub fn sk_X509_INFO_find(
22295        sk: *const stack_st_X509_INFO,
22296        out_index: *mut usize,
22297        p: *const X509_INFO,
22298    ) -> ::core::ffi::c_int;
22299}
22300unsafe extern "C" {
22301    #[link_name = "sk_X509_INFO_shift__extern"]
22302    pub fn sk_X509_INFO_shift(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22303}
22304unsafe extern "C" {
22305    #[link_name = "sk_X509_INFO_push__extern"]
22306    pub fn sk_X509_INFO_push(sk: *mut stack_st_X509_INFO, p: *mut X509_INFO) -> usize;
22307}
22308unsafe extern "C" {
22309    #[link_name = "sk_X509_INFO_pop__extern"]
22310    pub fn sk_X509_INFO_pop(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22311}
22312unsafe extern "C" {
22313    #[link_name = "sk_X509_INFO_dup__extern"]
22314    pub fn sk_X509_INFO_dup(sk: *const stack_st_X509_INFO) -> *mut stack_st_X509_INFO;
22315}
22316unsafe extern "C" {
22317    #[link_name = "sk_X509_INFO_sort__extern"]
22318    pub fn sk_X509_INFO_sort(sk: *mut stack_st_X509_INFO);
22319}
22320unsafe extern "C" {
22321    #[link_name = "sk_X509_INFO_sort_and_dedup__extern"]
22322    pub fn sk_X509_INFO_sort_and_dedup(
22323        sk: *mut stack_st_X509_INFO,
22324        free_func: sk_X509_INFO_free_func,
22325    );
22326}
22327unsafe extern "C" {
22328    #[link_name = "sk_X509_INFO_is_sorted__extern"]
22329    pub fn sk_X509_INFO_is_sorted(sk: *const stack_st_X509_INFO) -> ::core::ffi::c_int;
22330}
22331unsafe extern "C" {
22332    #[link_name = "sk_X509_INFO_set_cmp_func__extern"]
22333    pub fn sk_X509_INFO_set_cmp_func(
22334        sk: *mut stack_st_X509_INFO,
22335        comp: sk_X509_INFO_cmp_func,
22336    ) -> sk_X509_INFO_cmp_func;
22337}
22338unsafe extern "C" {
22339    #[link_name = "sk_X509_INFO_deep_copy__extern"]
22340    pub fn sk_X509_INFO_deep_copy(
22341        sk: *const stack_st_X509_INFO,
22342        copy_func: sk_X509_INFO_copy_func,
22343        free_func: sk_X509_INFO_free_func,
22344    ) -> *mut stack_st_X509_INFO;
22345}
22346unsafe extern "C" {
22347    pub fn X509_INFO_free(info: *mut X509_INFO);
22348}
22349pub type X509V3_EXT_NEW =
22350    ::core::option::Option<unsafe extern "C" fn() -> *mut ::core::ffi::c_void>;
22351pub type X509V3_EXT_FREE =
22352    ::core::option::Option<unsafe extern "C" fn(ext: *mut ::core::ffi::c_void)>;
22353pub type X509V3_EXT_D2I = ::core::option::Option<
22354    unsafe extern "C" fn(
22355        ext: *mut ::core::ffi::c_void,
22356        inp: *mut *const u8,
22357        len: ::core::ffi::c_long,
22358    ) -> *mut ::core::ffi::c_void,
22359>;
22360pub type X509V3_EXT_I2D = ::core::option::Option<
22361    unsafe extern "C" fn(ext: *mut ::core::ffi::c_void, outp: *mut *mut u8) -> ::core::ffi::c_int,
22362>;
22363pub type X509V3_EXT_I2V = ::core::option::Option<
22364    unsafe extern "C" fn(
22365        method: *const X509V3_EXT_METHOD,
22366        ext: *mut ::core::ffi::c_void,
22367        extlist: *mut stack_st_CONF_VALUE,
22368    ) -> *mut stack_st_CONF_VALUE,
22369>;
22370pub type X509V3_EXT_V2I = ::core::option::Option<
22371    unsafe extern "C" fn(
22372        method: *const X509V3_EXT_METHOD,
22373        ctx: *const X509V3_CTX,
22374        values: *const stack_st_CONF_VALUE,
22375    ) -> *mut ::core::ffi::c_void,
22376>;
22377pub type X509V3_EXT_I2S = ::core::option::Option<
22378    unsafe extern "C" fn(
22379        method: *const X509V3_EXT_METHOD,
22380        ext: *mut ::core::ffi::c_void,
22381    ) -> *mut ::core::ffi::c_char,
22382>;
22383pub type X509V3_EXT_S2I = ::core::option::Option<
22384    unsafe extern "C" fn(
22385        method: *const X509V3_EXT_METHOD,
22386        ctx: *const X509V3_CTX,
22387        str_: *const ::core::ffi::c_char,
22388    ) -> *mut ::core::ffi::c_void,
22389>;
22390pub type X509V3_EXT_I2R = ::core::option::Option<
22391    unsafe extern "C" fn(
22392        method: *const X509V3_EXT_METHOD,
22393        ext: *mut ::core::ffi::c_void,
22394        out: *mut BIO,
22395        indent: ::core::ffi::c_int,
22396    ) -> ::core::ffi::c_int,
22397>;
22398pub type X509V3_EXT_R2I = ::core::option::Option<
22399    unsafe extern "C" fn(
22400        method: *const X509V3_EXT_METHOD,
22401        ctx: *const X509V3_CTX,
22402        str_: *const ::core::ffi::c_char,
22403    ) -> *mut ::core::ffi::c_void,
22404>;
22405#[repr(C)]
22406#[derive(Debug, Copy, Clone)]
22407pub struct v3_ext_method {
22408    pub ext_nid: ::core::ffi::c_int,
22409    pub ext_flags: ::core::ffi::c_int,
22410    pub it: *const ASN1_ITEM_st,
22411    pub ext_new: X509V3_EXT_NEW,
22412    pub ext_free: X509V3_EXT_FREE,
22413    pub d2i: X509V3_EXT_D2I,
22414    pub i2d: X509V3_EXT_I2D,
22415    pub i2s: X509V3_EXT_I2S,
22416    pub s2i: X509V3_EXT_S2I,
22417    pub i2v: X509V3_EXT_I2V,
22418    pub v2i: X509V3_EXT_V2I,
22419    pub i2r: X509V3_EXT_I2R,
22420    pub r2i: X509V3_EXT_R2I,
22421    pub usr_data: *mut ::core::ffi::c_void,
22422}
22423unsafe extern "C" {
22424    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
22425}
22426unsafe extern "C" {
22427    pub fn X509V3_EXT_get_nid(nid: ::core::ffi::c_int) -> *const X509V3_EXT_METHOD;
22428}
22429unsafe extern "C" {
22430    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::core::ffi::c_int;
22431}
22432unsafe extern "C" {
22433    pub fn X509V3_EXT_add_alias(
22434        nid_to: ::core::ffi::c_int,
22435        nid_from: ::core::ffi::c_int,
22436    ) -> ::core::ffi::c_int;
22437}
22438#[repr(C)]
22439#[derive(Debug, Copy, Clone)]
22440pub struct v3_ext_ctx {
22441    pub flags: ::core::ffi::c_int,
22442    pub issuer_cert: *const X509,
22443    pub subject_cert: *const X509,
22444    pub subject_req: *const X509_REQ,
22445    pub crl: *const X509_CRL,
22446    pub db: *const CONF,
22447}
22448unsafe extern "C" {
22449    pub fn X509V3_set_ctx(
22450        ctx: *mut X509V3_CTX,
22451        issuer: *const X509,
22452        subject: *const X509,
22453        req: *const X509_REQ,
22454        crl: *const X509_CRL,
22455        flags: ::core::ffi::c_int,
22456    );
22457}
22458unsafe extern "C" {
22459    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
22460}
22461unsafe extern "C" {
22462    pub fn X509V3_EXT_nconf(
22463        conf: *const CONF,
22464        ctx: *const X509V3_CTX,
22465        name: *const ::core::ffi::c_char,
22466        value: *const ::core::ffi::c_char,
22467    ) -> *mut X509_EXTENSION;
22468}
22469unsafe extern "C" {
22470    pub fn X509V3_EXT_nconf_nid(
22471        conf: *const CONF,
22472        ctx: *const X509V3_CTX,
22473        ext_nid: ::core::ffi::c_int,
22474        value: *const ::core::ffi::c_char,
22475    ) -> *mut X509_EXTENSION;
22476}
22477unsafe extern "C" {
22478    pub fn X509V3_EXT_conf_nid(
22479        conf: *mut CRYPTO_MUST_BE_NULL,
22480        ctx: *const X509V3_CTX,
22481        ext_nid: ::core::ffi::c_int,
22482        value: *const ::core::ffi::c_char,
22483    ) -> *mut X509_EXTENSION;
22484}
22485unsafe extern "C" {
22486    pub fn X509V3_EXT_add_nconf_sk(
22487        conf: *const CONF,
22488        ctx: *const X509V3_CTX,
22489        section: *const ::core::ffi::c_char,
22490        sk: *mut *mut stack_st_X509_EXTENSION,
22491    ) -> ::core::ffi::c_int;
22492}
22493unsafe extern "C" {
22494    pub fn X509V3_EXT_add_nconf(
22495        conf: *const CONF,
22496        ctx: *const X509V3_CTX,
22497        section: *const ::core::ffi::c_char,
22498        cert: *mut X509,
22499    ) -> ::core::ffi::c_int;
22500}
22501unsafe extern "C" {
22502    pub fn X509V3_EXT_REQ_add_nconf(
22503        conf: *const CONF,
22504        ctx: *const X509V3_CTX,
22505        section: *const ::core::ffi::c_char,
22506        req: *mut X509_REQ,
22507    ) -> ::core::ffi::c_int;
22508}
22509unsafe extern "C" {
22510    pub fn X509V3_EXT_CRL_add_nconf(
22511        conf: *const CONF,
22512        ctx: *const X509V3_CTX,
22513        section: *const ::core::ffi::c_char,
22514        crl: *mut X509_CRL,
22515    ) -> ::core::ffi::c_int;
22516}
22517unsafe extern "C" {
22518    pub fn i2s_ASN1_OCTET_STRING(
22519        method: *const X509V3_EXT_METHOD,
22520        oct: *const ASN1_OCTET_STRING,
22521    ) -> *mut ::core::ffi::c_char;
22522}
22523unsafe extern "C" {
22524    pub fn s2i_ASN1_OCTET_STRING(
22525        method: *const X509V3_EXT_METHOD,
22526        ctx: *const X509V3_CTX,
22527        str_: *const ::core::ffi::c_char,
22528    ) -> *mut ASN1_OCTET_STRING;
22529}
22530unsafe extern "C" {
22531    pub fn i2s_ASN1_INTEGER(
22532        method: *const X509V3_EXT_METHOD,
22533        aint: *const ASN1_INTEGER,
22534    ) -> *mut ::core::ffi::c_char;
22535}
22536unsafe extern "C" {
22537    pub fn s2i_ASN1_INTEGER(
22538        method: *const X509V3_EXT_METHOD,
22539        value: *const ::core::ffi::c_char,
22540    ) -> *mut ASN1_INTEGER;
22541}
22542unsafe extern "C" {
22543    pub fn i2s_ASN1_ENUMERATED(
22544        method: *const X509V3_EXT_METHOD,
22545        aint: *const ASN1_ENUMERATED,
22546    ) -> *mut ::core::ffi::c_char;
22547}
22548unsafe extern "C" {
22549    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
22550}
22551unsafe extern "C" {
22552    pub fn i2v_GENERAL_NAME(
22553        method: *const X509V3_EXT_METHOD,
22554        gen_: *const GENERAL_NAME,
22555        ret: *mut stack_st_CONF_VALUE,
22556    ) -> *mut stack_st_CONF_VALUE;
22557}
22558unsafe extern "C" {
22559    pub fn i2v_GENERAL_NAMES(
22560        method: *const X509V3_EXT_METHOD,
22561        gen_: *const GENERAL_NAMES,
22562        extlist: *mut stack_st_CONF_VALUE,
22563    ) -> *mut stack_st_CONF_VALUE;
22564}
22565unsafe extern "C" {
22566    pub fn a2i_IPADDRESS(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22567}
22568unsafe extern "C" {
22569    pub fn a2i_IPADDRESS_NC(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22570}
22571unsafe extern "C" {
22572    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
22573}
22574unsafe extern "C" {
22575    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
22576}
22577unsafe extern "C" {
22578    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22579}
22580unsafe extern "C" {
22581    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22582}
22583unsafe extern "C" {
22584    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22585}
22586unsafe extern "C" {
22587    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22588}
22589unsafe extern "C" {
22590    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
22591}
22592unsafe extern "C" {
22593    pub fn X509_NAME_get_text_by_OBJ(
22594        name: *const X509_NAME,
22595        obj: *const ASN1_OBJECT,
22596        buf: *mut ::core::ffi::c_char,
22597        len: ::core::ffi::c_int,
22598    ) -> ::core::ffi::c_int;
22599}
22600unsafe extern "C" {
22601    pub fn X509_NAME_get_text_by_NID(
22602        name: *const X509_NAME,
22603        nid: ::core::ffi::c_int,
22604        buf: *mut ::core::ffi::c_char,
22605        len: ::core::ffi::c_int,
22606    ) -> ::core::ffi::c_int;
22607}
22608unsafe extern "C" {
22609    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *const X509_STORE_CTX) -> *mut X509_STORE_CTX;
22610}
22611unsafe extern "C" {
22612    pub fn X509_OBJECT_free_contents(obj: *mut X509_OBJECT);
22613}
22614unsafe extern "C" {
22615    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
22616}
22617unsafe extern "C" {
22618    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
22619}
22620unsafe extern "C" {
22621    pub fn X509V3_add_standard_extensions() -> ::core::ffi::c_int;
22622}
22623unsafe extern "C" {
22624    pub fn X509_STORE_CTX_get_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
22625}
22626unsafe extern "C" {
22627    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22628}
22629pub type X509_STORE_CTX_verify_cb = ::core::option::Option<
22630    unsafe extern "C" fn(arg1: ::core::ffi::c_int, arg2: *mut X509_STORE_CTX) -> ::core::ffi::c_int,
22631>;
22632unsafe extern "C" {
22633    pub fn X509_STORE_CTX_set_verify_cb(
22634        ctx: *mut X509_STORE_CTX,
22635        verify_cb: ::core::option::Option<
22636            unsafe extern "C" fn(
22637                ok: ::core::ffi::c_int,
22638                ctx: *mut X509_STORE_CTX,
22639            ) -> ::core::ffi::c_int,
22640        >,
22641    );
22642}
22643unsafe extern "C" {
22644    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
22645}
22646unsafe extern "C" {
22647    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22648}
22649unsafe extern "C" {
22650    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
22651}
22652unsafe extern "C" {
22653    pub fn X509_PURPOSE_get_by_sname(sname: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
22654}
22655unsafe extern "C" {
22656    pub fn X509_PURPOSE_get0(id: ::core::ffi::c_int) -> *const X509_PURPOSE;
22657}
22658unsafe extern "C" {
22659    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::core::ffi::c_int;
22660}
22661#[repr(C)]
22662#[derive(Debug, Copy, Clone)]
22663pub struct X509_algor_st {
22664    pub algorithm: *mut ASN1_OBJECT,
22665    pub parameter: *mut ASN1_TYPE,
22666}
22667pub type pem_password_cb = ::core::option::Option<
22668    unsafe extern "C" fn(
22669        out: *mut ::core::ffi::c_char,
22670        max_out: ::core::ffi::c_int,
22671        enc: ::core::ffi::c_int,
22672        userdata: *mut ::core::ffi::c_void,
22673    ) -> ::core::ffi::c_int,
22674>;
22675unsafe extern "C" {
22676    pub fn PEM_def_callback(
22677        buf: *mut ::core::ffi::c_char,
22678        size: ::core::ffi::c_int,
22679        enc: ::core::ffi::c_int,
22680        userdata: *mut ::core::ffi::c_void,
22681    ) -> ::core::ffi::c_int;
22682}
22683unsafe extern "C" {
22684    pub fn PEM_read_bio_X509(
22685        bio: *mut BIO,
22686        out: *mut *mut X509,
22687        cb: pem_password_cb,
22688        userdata: *mut ::core::ffi::c_void,
22689    ) -> *mut X509;
22690}
22691unsafe extern "C" {
22692    pub fn PEM_write_bio_X509(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22693}
22694unsafe extern "C" {
22695    pub fn PEM_read_bio_X509_AUX(
22696        bio: *mut BIO,
22697        out: *mut *mut X509,
22698        cb: pem_password_cb,
22699        userdata: *mut ::core::ffi::c_void,
22700    ) -> *mut X509;
22701}
22702unsafe extern "C" {
22703    pub fn PEM_write_bio_X509_AUX(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22704}
22705unsafe extern "C" {
22706    pub fn PEM_read_bio_X509_CRL(
22707        bio: *mut BIO,
22708        out: *mut *mut X509_CRL,
22709        cb: pem_password_cb,
22710        userdata: *mut ::core::ffi::c_void,
22711    ) -> *mut X509_CRL;
22712}
22713unsafe extern "C" {
22714    pub fn PEM_write_bio_X509_CRL(bio: *mut BIO, in_: *const X509_CRL) -> ::core::ffi::c_int;
22715}
22716unsafe extern "C" {
22717    pub fn PEM_read_bio_X509_REQ(
22718        bio: *mut BIO,
22719        out: *mut *mut X509_REQ,
22720        cb: pem_password_cb,
22721        userdata: *mut ::core::ffi::c_void,
22722    ) -> *mut X509_REQ;
22723}
22724unsafe extern "C" {
22725    pub fn PEM_write_bio_X509_REQ(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22726}
22727unsafe extern "C" {
22728    pub fn PEM_write_bio_X509_REQ_NEW(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22729}
22730unsafe extern "C" {
22731    pub fn PEM_read_bio_PKCS7(
22732        bio: *mut BIO,
22733        out: *mut *mut PKCS7,
22734        cb: pem_password_cb,
22735        userdata: *mut ::core::ffi::c_void,
22736    ) -> *mut PKCS7;
22737}
22738unsafe extern "C" {
22739    pub fn PEM_write_bio_PKCS7(bio: *mut BIO, in_: *const PKCS7) -> ::core::ffi::c_int;
22740}
22741unsafe extern "C" {
22742    pub fn PEM_X509_INFO_read_bio(
22743        bio: *mut BIO,
22744        sk: *mut stack_st_X509_INFO,
22745        cb: pem_password_cb,
22746        userdata: *mut ::core::ffi::c_void,
22747    ) -> *mut stack_st_X509_INFO;
22748}
22749unsafe extern "C" {
22750    pub fn PEM_read_bio_PrivateKey(
22751        bio: *mut BIO,
22752        out: *mut *mut EVP_PKEY,
22753        cb: pem_password_cb,
22754        userdata: *mut ::core::ffi::c_void,
22755    ) -> *mut EVP_PKEY;
22756}
22757unsafe extern "C" {
22758    pub fn PEM_write_bio_PrivateKey(
22759        bio: *mut BIO,
22760        in_: *const EVP_PKEY,
22761        enc: *const EVP_CIPHER,
22762        pass: *const u8,
22763        pass_len: ::core::ffi::c_int,
22764        cb: pem_password_cb,
22765        userdata: *mut ::core::ffi::c_void,
22766    ) -> ::core::ffi::c_int;
22767}
22768unsafe extern "C" {
22769    pub fn PEM_read_bio_PUBKEY(
22770        bio: *mut BIO,
22771        out: *mut *mut EVP_PKEY,
22772        cb: pem_password_cb,
22773        userdata: *mut ::core::ffi::c_void,
22774    ) -> *mut EVP_PKEY;
22775}
22776unsafe extern "C" {
22777    pub fn PEM_write_bio_PUBKEY(bio: *mut BIO, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
22778}
22779unsafe extern "C" {
22780    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
22781        bio: *mut BIO,
22782        in_: *const EVP_PKEY,
22783        nid: ::core::ffi::c_int,
22784        pass: *const ::core::ffi::c_char,
22785        pass_len: ::core::ffi::c_int,
22786        cb: pem_password_cb,
22787        userdata: *mut ::core::ffi::c_void,
22788    ) -> ::core::ffi::c_int;
22789}
22790unsafe extern "C" {
22791    pub fn PEM_write_bio_PKCS8PrivateKey(
22792        bio: *mut BIO,
22793        in_: *const EVP_PKEY,
22794        enc: *const EVP_CIPHER,
22795        pass: *const ::core::ffi::c_char,
22796        pass_len: ::core::ffi::c_int,
22797        cb: pem_password_cb,
22798        userdata: *mut ::core::ffi::c_void,
22799    ) -> ::core::ffi::c_int;
22800}
22801unsafe extern "C" {
22802    pub fn PEM_write_PKCS8PrivateKey_nid(
22803        fp: *mut FILE,
22804        in_: *const EVP_PKEY,
22805        nid: ::core::ffi::c_int,
22806        pass: *const ::core::ffi::c_char,
22807        pass_len: ::core::ffi::c_int,
22808        cb: pem_password_cb,
22809        userdata: *mut ::core::ffi::c_void,
22810    ) -> ::core::ffi::c_int;
22811}
22812unsafe extern "C" {
22813    pub fn PEM_write_PKCS8PrivateKey(
22814        fp: *mut FILE,
22815        in_: *const EVP_PKEY,
22816        enc: *const EVP_CIPHER,
22817        pass: *const ::core::ffi::c_char,
22818        pass_len: ::core::ffi::c_int,
22819        cb: pem_password_cb,
22820        userdata: *mut ::core::ffi::c_void,
22821    ) -> ::core::ffi::c_int;
22822}
22823unsafe extern "C" {
22824    pub fn PEM_read_bio_PKCS8(
22825        bio: *mut BIO,
22826        out: *mut *mut X509_SIG,
22827        cb: pem_password_cb,
22828        userdata: *mut ::core::ffi::c_void,
22829    ) -> *mut X509_SIG;
22830}
22831unsafe extern "C" {
22832    pub fn PEM_write_bio_PKCS8(bio: *mut BIO, in_: *const X509_SIG) -> ::core::ffi::c_int;
22833}
22834unsafe extern "C" {
22835    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
22836        bio: *mut BIO,
22837        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22838        cb: pem_password_cb,
22839        userdata: *mut ::core::ffi::c_void,
22840    ) -> *mut PKCS8_PRIV_KEY_INFO;
22841}
22842unsafe extern "C" {
22843    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
22844        bio: *mut BIO,
22845        in_: *const PKCS8_PRIV_KEY_INFO,
22846    ) -> ::core::ffi::c_int;
22847}
22848unsafe extern "C" {
22849    pub fn PEM_read_bio_RSAPrivateKey(
22850        bio: *mut BIO,
22851        out: *mut *mut RSA,
22852        cb: pem_password_cb,
22853        userdata: *mut ::core::ffi::c_void,
22854    ) -> *mut RSA;
22855}
22856unsafe extern "C" {
22857    pub fn PEM_write_bio_RSAPrivateKey(
22858        bio: *mut BIO,
22859        in_: *const RSA,
22860        enc: *const EVP_CIPHER,
22861        pass: *const u8,
22862        pass_len: ::core::ffi::c_int,
22863        cb: pem_password_cb,
22864        userdata: *mut ::core::ffi::c_void,
22865    ) -> ::core::ffi::c_int;
22866}
22867unsafe extern "C" {
22868    pub fn PEM_read_bio_RSAPublicKey(
22869        bio: *mut BIO,
22870        out: *mut *mut RSA,
22871        cb: pem_password_cb,
22872        userdata: *mut ::core::ffi::c_void,
22873    ) -> *mut RSA;
22874}
22875unsafe extern "C" {
22876    pub fn PEM_write_bio_RSAPublicKey(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22877}
22878unsafe extern "C" {
22879    pub fn PEM_read_bio_RSA_PUBKEY(
22880        bio: *mut BIO,
22881        out: *mut *mut RSA,
22882        cb: pem_password_cb,
22883        userdata: *mut ::core::ffi::c_void,
22884    ) -> *mut RSA;
22885}
22886unsafe extern "C" {
22887    pub fn PEM_write_bio_RSA_PUBKEY(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22888}
22889unsafe extern "C" {
22890    pub fn PEM_read_bio_DSAPrivateKey(
22891        bio: *mut BIO,
22892        out: *mut *mut DSA,
22893        cb: pem_password_cb,
22894        userdata: *mut ::core::ffi::c_void,
22895    ) -> *mut DSA;
22896}
22897unsafe extern "C" {
22898    pub fn PEM_write_bio_DSAPrivateKey(
22899        bio: *mut BIO,
22900        in_: *const DSA,
22901        enc: *const EVP_CIPHER,
22902        pass: *const u8,
22903        pass_len: ::core::ffi::c_int,
22904        cb: pem_password_cb,
22905        userdata: *mut ::core::ffi::c_void,
22906    ) -> ::core::ffi::c_int;
22907}
22908unsafe extern "C" {
22909    pub fn PEM_read_bio_DSA_PUBKEY(
22910        bio: *mut BIO,
22911        out: *mut *mut DSA,
22912        cb: pem_password_cb,
22913        userdata: *mut ::core::ffi::c_void,
22914    ) -> *mut DSA;
22915}
22916unsafe extern "C" {
22917    pub fn PEM_write_bio_DSA_PUBKEY(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22918}
22919unsafe extern "C" {
22920    pub fn PEM_read_bio_DSAparams(
22921        bio: *mut BIO,
22922        out: *mut *mut DSA,
22923        cb: pem_password_cb,
22924        userdata: *mut ::core::ffi::c_void,
22925    ) -> *mut DSA;
22926}
22927unsafe extern "C" {
22928    pub fn PEM_write_bio_DSAparams(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22929}
22930unsafe extern "C" {
22931    pub fn PEM_read_bio_ECPrivateKey(
22932        bio: *mut BIO,
22933        out: *mut *mut EC_KEY,
22934        cb: pem_password_cb,
22935        userdata: *mut ::core::ffi::c_void,
22936    ) -> *mut EC_KEY;
22937}
22938unsafe extern "C" {
22939    pub fn PEM_write_bio_ECPrivateKey(
22940        bio: *mut BIO,
22941        in_: *const EC_KEY,
22942        enc: *const EVP_CIPHER,
22943        pass: *const u8,
22944        pass_len: ::core::ffi::c_int,
22945        cb: pem_password_cb,
22946        userdata: *mut ::core::ffi::c_void,
22947    ) -> ::core::ffi::c_int;
22948}
22949unsafe extern "C" {
22950    pub fn PEM_read_bio_EC_PUBKEY(
22951        bio: *mut BIO,
22952        out: *mut *mut EC_KEY,
22953        cb: pem_password_cb,
22954        userdata: *mut ::core::ffi::c_void,
22955    ) -> *mut EC_KEY;
22956}
22957unsafe extern "C" {
22958    pub fn PEM_write_bio_EC_PUBKEY(bio: *mut BIO, in_: *const EC_KEY) -> ::core::ffi::c_int;
22959}
22960unsafe extern "C" {
22961    pub fn PEM_read_bio_DHparams(
22962        bio: *mut BIO,
22963        out: *mut *mut DH,
22964        cb: pem_password_cb,
22965        userdata: *mut ::core::ffi::c_void,
22966    ) -> *mut DH;
22967}
22968unsafe extern "C" {
22969    pub fn PEM_write_bio_DHparams(bio: *mut BIO, in_: *const DH) -> ::core::ffi::c_int;
22970}
22971unsafe extern "C" {
22972    pub fn PEM_read_X509(
22973        fp: *mut FILE,
22974        out: *mut *mut X509,
22975        cb: pem_password_cb,
22976        userdata: *mut ::core::ffi::c_void,
22977    ) -> *mut X509;
22978}
22979unsafe extern "C" {
22980    pub fn PEM_read_X509_CRL(
22981        fp: *mut FILE,
22982        out: *mut *mut X509_CRL,
22983        cb: pem_password_cb,
22984        userdata: *mut ::core::ffi::c_void,
22985    ) -> *mut X509_CRL;
22986}
22987unsafe extern "C" {
22988    pub fn PEM_read_X509_AUX(
22989        fp: *mut FILE,
22990        out: *mut *mut X509,
22991        cb: pem_password_cb,
22992        userdata: *mut ::core::ffi::c_void,
22993    ) -> *mut X509;
22994}
22995unsafe extern "C" {
22996    pub fn PEM_X509_INFO_read(
22997        fp: *mut FILE,
22998        sk: *mut stack_st_X509_INFO,
22999        cb: pem_password_cb,
23000        userdata: *mut ::core::ffi::c_void,
23001    ) -> *mut stack_st_X509_INFO;
23002}
23003unsafe extern "C" {
23004    pub fn PEM_read_X509_REQ(
23005        fp: *mut FILE,
23006        out: *mut *mut X509_REQ,
23007        cb: pem_password_cb,
23008        userdata: *mut ::core::ffi::c_void,
23009    ) -> *mut X509_REQ;
23010}
23011unsafe extern "C" {
23012    pub fn PEM_read_PKCS7(
23013        fp: *mut FILE,
23014        out: *mut *mut PKCS7,
23015        cb: pem_password_cb,
23016        userdata: *mut ::core::ffi::c_void,
23017    ) -> *mut PKCS7;
23018}
23019unsafe extern "C" {
23020    pub fn PEM_read_PKCS8(
23021        fp: *mut FILE,
23022        out: *mut *mut X509_SIG,
23023        cb: pem_password_cb,
23024        userdata: *mut ::core::ffi::c_void,
23025    ) -> *mut X509_SIG;
23026}
23027unsafe extern "C" {
23028    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
23029        fp: *mut FILE,
23030        out: *mut *mut PKCS8_PRIV_KEY_INFO,
23031        cb: pem_password_cb,
23032        userdata: *mut ::core::ffi::c_void,
23033    ) -> *mut PKCS8_PRIV_KEY_INFO;
23034}
23035unsafe extern "C" {
23036    pub fn PEM_read_RSAPrivateKey(
23037        fp: *mut FILE,
23038        out: *mut *mut RSA,
23039        cb: pem_password_cb,
23040        userdata: *mut ::core::ffi::c_void,
23041    ) -> *mut RSA;
23042}
23043unsafe extern "C" {
23044    pub fn PEM_read_RSAPublicKey(
23045        fp: *mut FILE,
23046        out: *mut *mut RSA,
23047        cb: pem_password_cb,
23048        userdata: *mut ::core::ffi::c_void,
23049    ) -> *mut RSA;
23050}
23051unsafe extern "C" {
23052    pub fn PEM_read_RSA_PUBKEY(
23053        fp: *mut FILE,
23054        out: *mut *mut RSA,
23055        cb: pem_password_cb,
23056        userdata: *mut ::core::ffi::c_void,
23057    ) -> *mut RSA;
23058}
23059unsafe extern "C" {
23060    pub fn PEM_read_DSAPrivateKey(
23061        fp: *mut FILE,
23062        out: *mut *mut DSA,
23063        cb: pem_password_cb,
23064        userdata: *mut ::core::ffi::c_void,
23065    ) -> *mut DSA;
23066}
23067unsafe extern "C" {
23068    pub fn PEM_read_DSA_PUBKEY(
23069        fp: *mut FILE,
23070        out: *mut *mut DSA,
23071        cb: pem_password_cb,
23072        userdata: *mut ::core::ffi::c_void,
23073    ) -> *mut DSA;
23074}
23075unsafe extern "C" {
23076    pub fn PEM_read_DSAparams(
23077        fp: *mut FILE,
23078        out: *mut *mut DSA,
23079        cb: pem_password_cb,
23080        userdata: *mut ::core::ffi::c_void,
23081    ) -> *mut DSA;
23082}
23083unsafe extern "C" {
23084    pub fn PEM_read_ECPrivateKey(
23085        fp: *mut FILE,
23086        out: *mut *mut EC_KEY,
23087        cb: pem_password_cb,
23088        userdata: *mut ::core::ffi::c_void,
23089    ) -> *mut EC_KEY;
23090}
23091unsafe extern "C" {
23092    pub fn PEM_read_EC_PUBKEY(
23093        fp: *mut FILE,
23094        out: *mut *mut EC_KEY,
23095        cb: pem_password_cb,
23096        userdata: *mut ::core::ffi::c_void,
23097    ) -> *mut EC_KEY;
23098}
23099unsafe extern "C" {
23100    pub fn PEM_read_DHparams(
23101        fp: *mut FILE,
23102        out: *mut *mut DH,
23103        cb: pem_password_cb,
23104        userdata: *mut ::core::ffi::c_void,
23105    ) -> *mut DH;
23106}
23107unsafe extern "C" {
23108    pub fn PEM_read_PrivateKey(
23109        fp: *mut FILE,
23110        out: *mut *mut EVP_PKEY,
23111        cb: pem_password_cb,
23112        userdata: *mut ::core::ffi::c_void,
23113    ) -> *mut EVP_PKEY;
23114}
23115unsafe extern "C" {
23116    pub fn PEM_read_PUBKEY(
23117        fp: *mut FILE,
23118        out: *mut *mut EVP_PKEY,
23119        cb: pem_password_cb,
23120        userdata: *mut ::core::ffi::c_void,
23121    ) -> *mut EVP_PKEY;
23122}
23123unsafe extern "C" {
23124    pub fn PEM_write_X509(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
23125}
23126unsafe extern "C" {
23127    pub fn PEM_write_X509_CRL(fp: *mut FILE, in_: *const X509_CRL) -> ::core::ffi::c_int;
23128}
23129unsafe extern "C" {
23130    pub fn PEM_write_X509_AUX(fp: *mut FILE, in_: *const X509) -> ::core::ffi::c_int;
23131}
23132unsafe extern "C" {
23133    pub fn PEM_write_X509_REQ(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
23134}
23135unsafe extern "C" {
23136    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
23137}
23138unsafe extern "C" {
23139    pub fn PEM_write_PKCS7(fp: *mut FILE, in_: *const PKCS7) -> ::core::ffi::c_int;
23140}
23141unsafe extern "C" {
23142    pub fn PEM_write_PKCS8(fp: *mut FILE, in_: *const X509_SIG) -> ::core::ffi::c_int;
23143}
23144unsafe extern "C" {
23145    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
23146        fp: *mut FILE,
23147        in_: *const PKCS8_PRIV_KEY_INFO,
23148    ) -> ::core::ffi::c_int;
23149}
23150unsafe extern "C" {
23151    pub fn PEM_write_RSAPrivateKey(
23152        fp: *mut FILE,
23153        in_: *const RSA,
23154        enc: *const EVP_CIPHER,
23155        pass: *const u8,
23156        pass_len: ::core::ffi::c_int,
23157        cb: pem_password_cb,
23158        userdata: *mut ::core::ffi::c_void,
23159    ) -> ::core::ffi::c_int;
23160}
23161unsafe extern "C" {
23162    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
23163}
23164unsafe extern "C" {
23165    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
23166}
23167unsafe extern "C" {
23168    pub fn PEM_write_DSAPrivateKey(
23169        fp: *mut FILE,
23170        in_: *const DSA,
23171        enc: *const EVP_CIPHER,
23172        pass: *const u8,
23173        pass_len: ::core::ffi::c_int,
23174        cb: pem_password_cb,
23175        userdata: *mut ::core::ffi::c_void,
23176    ) -> ::core::ffi::c_int;
23177}
23178unsafe extern "C" {
23179    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
23180}
23181unsafe extern "C" {
23182    pub fn PEM_write_DSAparams(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
23183}
23184unsafe extern "C" {
23185    pub fn PEM_write_ECPrivateKey(
23186        fp: *mut FILE,
23187        in_: *const EC_KEY,
23188        enc: *const EVP_CIPHER,
23189        pass: *const u8,
23190        pass_len: ::core::ffi::c_int,
23191        cb: pem_password_cb,
23192        userdata: *mut ::core::ffi::c_void,
23193    ) -> ::core::ffi::c_int;
23194}
23195unsafe extern "C" {
23196    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, in_: *const EC_KEY) -> ::core::ffi::c_int;
23197}
23198unsafe extern "C" {
23199    pub fn PEM_write_DHparams(fp: *mut FILE, in_: *const DH) -> ::core::ffi::c_int;
23200}
23201unsafe extern "C" {
23202    pub fn PEM_write_PrivateKey(
23203        fp: *mut FILE,
23204        in_: *const EVP_PKEY,
23205        enc: *const EVP_CIPHER,
23206        pass: *const u8,
23207        pass_len: ::core::ffi::c_int,
23208        cb: pem_password_cb,
23209        userdata: *mut ::core::ffi::c_void,
23210    ) -> ::core::ffi::c_int;
23211}
23212unsafe extern "C" {
23213    pub fn PEM_write_PUBKEY(fp: *mut FILE, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
23214}
23215unsafe extern "C" {
23216    pub fn PEM_read_bio(
23217        bio: *mut BIO,
23218        out_name: *mut *mut ::core::ffi::c_char,
23219        out_header: *mut *mut ::core::ffi::c_char,
23220        out_data: *mut *mut u8,
23221        out_len: *mut ::core::ffi::c_long,
23222    ) -> ::core::ffi::c_int;
23223}
23224unsafe extern "C" {
23225    pub fn PEM_read(
23226        fp: *mut FILE,
23227        out_name: *mut *mut ::core::ffi::c_char,
23228        out_header: *mut *mut ::core::ffi::c_char,
23229        out_data: *mut *mut u8,
23230        out_len: *mut ::core::ffi::c_long,
23231    ) -> ::core::ffi::c_int;
23232}
23233unsafe extern "C" {
23234    pub fn PEM_write_bio(
23235        bio: *mut BIO,
23236        name: *const ::core::ffi::c_char,
23237        hdr: *const ::core::ffi::c_char,
23238        data: *const u8,
23239        len: ::core::ffi::c_long,
23240    ) -> ::core::ffi::c_int;
23241}
23242unsafe extern "C" {
23243    pub fn PEM_write(
23244        fp: *mut FILE,
23245        name: *const ::core::ffi::c_char,
23246        hdr: *const ::core::ffi::c_char,
23247        data: *const u8,
23248        len: ::core::ffi::c_long,
23249    ) -> ::core::ffi::c_int;
23250}
23251unsafe extern "C" {
23252    pub fn PEM_bytes_read_bio(
23253        out_data: *mut *mut u8,
23254        out_len: *mut ::core::ffi::c_long,
23255        out_name: *mut *mut ::core::ffi::c_char,
23256        expected_name: *const ::core::ffi::c_char,
23257        bio: *mut BIO,
23258        cb: pem_password_cb,
23259        userdata: *mut ::core::ffi::c_void,
23260    ) -> ::core::ffi::c_int;
23261}
23262unsafe extern "C" {
23263    pub fn d2i_PKCS8PrivateKey_bio(
23264        bio: *mut BIO,
23265        out: *mut *mut EVP_PKEY,
23266        cb: pem_password_cb,
23267        userdata: *mut ::core::ffi::c_void,
23268    ) -> *mut EVP_PKEY;
23269}
23270unsafe extern "C" {
23271    pub fn i2d_PKCS8PrivateKey_bio(
23272        bio: *mut BIO,
23273        in_: *const EVP_PKEY,
23274        enc: *const EVP_CIPHER,
23275        pass: *const ::core::ffi::c_char,
23276        pass_len: ::core::ffi::c_int,
23277        cb: pem_password_cb,
23278        userdata: *mut ::core::ffi::c_void,
23279    ) -> ::core::ffi::c_int;
23280}
23281unsafe extern "C" {
23282    pub fn i2d_PKCS8PrivateKey_nid_bio(
23283        bio: *mut BIO,
23284        in_: *const EVP_PKEY,
23285        nid: ::core::ffi::c_int,
23286        pass: *const ::core::ffi::c_char,
23287        pass_len: ::core::ffi::c_int,
23288        cb: pem_password_cb,
23289        userdata: *mut ::core::ffi::c_void,
23290    ) -> ::core::ffi::c_int;
23291}
23292unsafe extern "C" {
23293    pub fn i2d_PKCS8PrivateKey_fp(
23294        fp: *mut FILE,
23295        in_: *const EVP_PKEY,
23296        enc: *const EVP_CIPHER,
23297        pass: *const ::core::ffi::c_char,
23298        pass_len: ::core::ffi::c_int,
23299        cb: pem_password_cb,
23300        userdata: *mut ::core::ffi::c_void,
23301    ) -> ::core::ffi::c_int;
23302}
23303unsafe extern "C" {
23304    pub fn i2d_PKCS8PrivateKey_nid_fp(
23305        fp: *mut FILE,
23306        in_: *const EVP_PKEY,
23307        nid: ::core::ffi::c_int,
23308        pass: *const ::core::ffi::c_char,
23309        pass_len: ::core::ffi::c_int,
23310        cb: pem_password_cb,
23311        userdata: *mut ::core::ffi::c_void,
23312    ) -> ::core::ffi::c_int;
23313}
23314unsafe extern "C" {
23315    pub fn d2i_PKCS8PrivateKey_fp(
23316        fp: *mut FILE,
23317        out: *mut *mut EVP_PKEY,
23318        cb: pem_password_cb,
23319        userdata: *mut ::core::ffi::c_void,
23320    ) -> *mut EVP_PKEY;
23321}
23322unsafe extern "C" {
23323    pub fn PEM_ASN1_read_bio(
23324        d2i: d2i_of_void,
23325        name: *const ::core::ffi::c_char,
23326        bio: *mut BIO,
23327        out: *mut *mut ::core::ffi::c_void,
23328        cb: pem_password_cb,
23329        userdata: *mut ::core::ffi::c_void,
23330    ) -> *mut ::core::ffi::c_void;
23331}
23332unsafe extern "C" {
23333    pub fn PEM_ASN1_read(
23334        d2i: d2i_of_void,
23335        name: *const ::core::ffi::c_char,
23336        fp: *mut FILE,
23337        out: *mut *mut ::core::ffi::c_void,
23338        cb: pem_password_cb,
23339        userdata: *mut ::core::ffi::c_void,
23340    ) -> *mut ::core::ffi::c_void;
23341}
23342unsafe extern "C" {
23343    pub fn PEM_ASN1_write_bio(
23344        i2d: i2d_of_void,
23345        name: *const ::core::ffi::c_char,
23346        bio: *mut BIO,
23347        in_: *const ::core::ffi::c_void,
23348        enc: *const EVP_CIPHER,
23349        pass: *const u8,
23350        pass_len: ::core::ffi::c_int,
23351        cb: pem_password_cb,
23352        userdata: *mut ::core::ffi::c_void,
23353    ) -> ::core::ffi::c_int;
23354}
23355unsafe extern "C" {
23356    pub fn PEM_ASN1_write(
23357        i2d: i2d_of_void,
23358        name: *const ::core::ffi::c_char,
23359        fp: *mut FILE,
23360        in_: *const ::core::ffi::c_void,
23361        enc: *const EVP_CIPHER,
23362        pass: *const u8,
23363        pass_len: ::core::ffi::c_int,
23364        callback: pem_password_cb,
23365        userdata: *mut ::core::ffi::c_void,
23366    ) -> ::core::ffi::c_int;
23367}
23368unsafe extern "C" {
23369    pub fn PKCS8_encrypt(
23370        pbe_nid: ::core::ffi::c_int,
23371        cipher: *const EVP_CIPHER,
23372        pass: *const ::core::ffi::c_char,
23373        pass_len: ::core::ffi::c_int,
23374        salt: *const u8,
23375        salt_len: usize,
23376        iterations: ::core::ffi::c_int,
23377        p8inf: *mut PKCS8_PRIV_KEY_INFO,
23378    ) -> *mut X509_SIG;
23379}
23380unsafe extern "C" {
23381    pub fn PKCS8_marshal_encrypted_private_key(
23382        out: *mut CBB,
23383        pbe_nid: ::core::ffi::c_int,
23384        cipher: *const EVP_CIPHER,
23385        pass: *const ::core::ffi::c_char,
23386        pass_len: usize,
23387        salt: *const u8,
23388        salt_len: usize,
23389        iterations: ::core::ffi::c_int,
23390        pkey: *const EVP_PKEY,
23391    ) -> ::core::ffi::c_int;
23392}
23393unsafe extern "C" {
23394    pub fn PKCS8_decrypt(
23395        pkcs8: *mut X509_SIG,
23396        pass: *const ::core::ffi::c_char,
23397        pass_len: ::core::ffi::c_int,
23398    ) -> *mut PKCS8_PRIV_KEY_INFO;
23399}
23400unsafe extern "C" {
23401    pub fn PKCS8_parse_encrypted_private_key(
23402        cbs: *mut CBS,
23403        pass: *const ::core::ffi::c_char,
23404        pass_len: usize,
23405    ) -> *mut EVP_PKEY;
23406}
23407unsafe extern "C" {
23408    pub fn PKCS12_get_key_and_certs(
23409        out_key: *mut *mut EVP_PKEY,
23410        out_certs: *mut stack_st_X509,
23411        in_: *mut CBS,
23412        password: *const ::core::ffi::c_char,
23413    ) -> ::core::ffi::c_int;
23414}
23415unsafe extern "C" {
23416    pub fn PKCS12_PBE_add();
23417}
23418unsafe extern "C" {
23419    pub fn d2i_PKCS12(
23420        out_p12: *mut *mut PKCS12,
23421        ber_bytes: *mut *const u8,
23422        ber_len: usize,
23423    ) -> *mut PKCS12;
23424}
23425unsafe extern "C" {
23426    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23427}
23428unsafe extern "C" {
23429    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23430}
23431unsafe extern "C" {
23432    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::core::ffi::c_int;
23433}
23434unsafe extern "C" {
23435    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::core::ffi::c_int;
23436}
23437unsafe extern "C" {
23438    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::core::ffi::c_int;
23439}
23440unsafe extern "C" {
23441    pub fn PKCS12_parse(
23442        p12: *const PKCS12,
23443        password: *const ::core::ffi::c_char,
23444        out_pkey: *mut *mut EVP_PKEY,
23445        out_cert: *mut *mut X509,
23446        out_ca_certs: *mut *mut stack_st_X509,
23447    ) -> ::core::ffi::c_int;
23448}
23449unsafe extern "C" {
23450    pub fn PKCS12_verify_mac(
23451        p12: *const PKCS12,
23452        password: *const ::core::ffi::c_char,
23453        password_len: ::core::ffi::c_int,
23454    ) -> ::core::ffi::c_int;
23455}
23456unsafe extern "C" {
23457    pub fn PKCS12_create(
23458        password: *const ::core::ffi::c_char,
23459        name: *const ::core::ffi::c_char,
23460        pkey: *const EVP_PKEY,
23461        cert: *mut X509,
23462        chain: *const stack_st_X509,
23463        key_nid: ::core::ffi::c_int,
23464        cert_nid: ::core::ffi::c_int,
23465        iterations: ::core::ffi::c_int,
23466        mac_iterations: ::core::ffi::c_int,
23467        key_type: ::core::ffi::c_int,
23468    ) -> *mut PKCS12;
23469}
23470unsafe extern "C" {
23471    pub fn PKCS12_free(p12: *mut PKCS12);
23472}
23473pub type poly1305_state = [u8; 512usize];
23474unsafe extern "C" {
23475    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
23476}
23477unsafe extern "C" {
23478    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
23479}
23480unsafe extern "C" {
23481    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
23482}
23483unsafe extern "C" {
23484    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23485}
23486unsafe extern "C" {
23487    pub fn RAND_enable_fork_unsafe_buffering(fd: ::core::ffi::c_int);
23488}
23489unsafe extern "C" {
23490    pub fn RAND_disable_fork_unsafe_buffering();
23491}
23492unsafe extern "C" {
23493    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
23494}
23495unsafe extern "C" {
23496    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23497}
23498unsafe extern "C" {
23499    pub fn RAND_seed(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int);
23500}
23501unsafe extern "C" {
23502    pub fn RAND_load_file(
23503        path: *const ::core::ffi::c_char,
23504        num: ::core::ffi::c_long,
23505    ) -> ::core::ffi::c_int;
23506}
23507unsafe extern "C" {
23508    pub fn RAND_file_name(buf: *mut ::core::ffi::c_char, num: usize) -> *const ::core::ffi::c_char;
23509}
23510unsafe extern "C" {
23511    pub fn RAND_add(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int, entropy: f64);
23512}
23513unsafe extern "C" {
23514    pub fn RAND_egd(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
23515}
23516unsafe extern "C" {
23517    pub fn RAND_poll() -> ::core::ffi::c_int;
23518}
23519unsafe extern "C" {
23520    pub fn RAND_status() -> ::core::ffi::c_int;
23521}
23522unsafe extern "C" {
23523    pub fn RAND_cleanup();
23524}
23525#[repr(C)]
23526#[derive(Debug, Copy, Clone)]
23527pub struct rand_meth_st {
23528    pub seed: ::core::option::Option<
23529        unsafe extern "C" fn(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int),
23530    >,
23531    pub bytes: ::core::option::Option<
23532        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23533    >,
23534    pub cleanup: ::core::option::Option<unsafe extern "C" fn()>,
23535    pub add: ::core::option::Option<
23536        unsafe extern "C" fn(
23537            buf: *const ::core::ffi::c_void,
23538            num: ::core::ffi::c_int,
23539            entropy: f64,
23540        ),
23541    >,
23542    pub pseudorand: ::core::option::Option<
23543        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23544    >,
23545    pub status: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
23546}
23547unsafe extern "C" {
23548    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
23549}
23550unsafe extern "C" {
23551    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
23552}
23553unsafe extern "C" {
23554    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
23555}
23556unsafe extern "C" {
23557    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::core::ffi::c_int;
23558}
23559#[repr(C)]
23560#[derive(Debug, Copy, Clone)]
23561pub struct rc4_key_st {
23562    pub x: u32,
23563    pub y: u32,
23564    pub data: [u32; 256usize],
23565}
23566unsafe extern "C" {
23567    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::core::ffi::c_uint, key: *const u8);
23568}
23569unsafe extern "C" {
23570    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
23571}
23572unsafe extern "C" {
23573    pub fn RC4_options() -> *const ::core::ffi::c_char;
23574}
23575#[repr(C)]
23576#[derive(Debug, Copy, Clone)]
23577pub struct RIPEMD160state_st {
23578    pub h: [u32; 5usize],
23579    pub Nl: u32,
23580    pub Nh: u32,
23581    pub data: [u8; 64usize],
23582    pub num: ::core::ffi::c_uint,
23583}
23584unsafe extern "C" {
23585    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23586}
23587unsafe extern "C" {
23588    pub fn RIPEMD160_Update(
23589        ctx: *mut RIPEMD160_CTX,
23590        data: *const ::core::ffi::c_void,
23591        len: usize,
23592    ) -> ::core::ffi::c_int;
23593}
23594unsafe extern "C" {
23595    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23596}
23597unsafe extern "C" {
23598    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
23599}
23600unsafe extern "C" {
23601    pub fn RIPEMD160_Transform(ctx: *mut RIPEMD160_CTX, block: *const u8);
23602}
23603unsafe extern "C" {
23604    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
23605}
23606unsafe extern "C" {
23607    pub fn SLHDSA_SHA2_128S_generate_key_from_seed(
23608        out_public_key: *mut u8,
23609        out_private_key: *mut u8,
23610        seed: *const u8,
23611    );
23612}
23613unsafe extern "C" {
23614    pub fn SLHDSA_SHAKE_256F_generate_key_from_seed(
23615        out_public_key: *mut u8,
23616        out_private_key: *mut u8,
23617        seed: *const u8,
23618    );
23619}
23620unsafe extern "C" {
23621    pub fn SLHDSA_SHA2_128S_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23622}
23623unsafe extern "C" {
23624    pub fn SLHDSA_SHAKE_256F_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23625}
23626unsafe extern "C" {
23627    pub fn SLHDSA_SHA2_128S_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23628}
23629unsafe extern "C" {
23630    pub fn SLHDSA_SHAKE_256F_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23631}
23632unsafe extern "C" {
23633    pub fn SLHDSA_SHA2_128S_sign(
23634        out_signature: *mut u8,
23635        private_key: *const u8,
23636        msg: *const u8,
23637        msg_len: usize,
23638        context: *const u8,
23639        context_len: usize,
23640    ) -> ::core::ffi::c_int;
23641}
23642unsafe extern "C" {
23643    pub fn SLHDSA_SHAKE_256F_sign(
23644        out_signature: *mut u8,
23645        private_key: *const u8,
23646        msg: *const u8,
23647        msg_len: usize,
23648        context: *const u8,
23649        context_len: usize,
23650    ) -> ::core::ffi::c_int;
23651}
23652unsafe extern "C" {
23653    pub fn SLHDSA_SHA2_128S_verify(
23654        signature: *const u8,
23655        signature_len: usize,
23656        public_key: *const u8,
23657        msg: *const u8,
23658        msg_len: usize,
23659        context: *const u8,
23660        context_len: usize,
23661    ) -> ::core::ffi::c_int;
23662}
23663unsafe extern "C" {
23664    pub fn SLHDSA_SHAKE_256F_verify(
23665        signature: *const u8,
23666        signature_len: usize,
23667        public_key: *const u8,
23668        msg: *const u8,
23669        msg_len: usize,
23670        context: *const u8,
23671        context_len: usize,
23672    ) -> ::core::ffi::c_int;
23673}
23674unsafe extern "C" {
23675    pub fn SLHDSA_SHA2_128S_prehash_sign(
23676        out_signature: *mut u8,
23677        private_key: *const u8,
23678        hashed_msg: *const u8,
23679        hashed_msg_len: usize,
23680        hash_nid: ::core::ffi::c_int,
23681        context: *const u8,
23682        context_len: usize,
23683    ) -> ::core::ffi::c_int;
23684}
23685unsafe extern "C" {
23686    pub fn SLHDSA_SHA2_128S_prehash_verify(
23687        signature: *const u8,
23688        signature_len: usize,
23689        public_key: *const u8,
23690        hashed_msg: *const u8,
23691        hashed_msg_len: usize,
23692        hash_nid: ::core::ffi::c_int,
23693        context: *const u8,
23694        context_len: usize,
23695    ) -> ::core::ffi::c_int;
23696}
23697unsafe extern "C" {
23698    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_sign(
23699        out_signature: *mut u8,
23700        private_key: *const u8,
23701        hashed_msg: *const u8,
23702        hashed_msg_len: usize,
23703        hash_nid: ::core::ffi::c_int,
23704        context: *const u8,
23705        context_len: usize,
23706    ) -> ::core::ffi::c_int;
23707}
23708unsafe extern "C" {
23709    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_verify(
23710        signature: *const u8,
23711        signature_len: usize,
23712        public_key: *const u8,
23713        hashed_msg: *const u8,
23714        hashed_msg_len: usize,
23715        hash_nid: ::core::ffi::c_int,
23716        context: *const u8,
23717        context_len: usize,
23718    ) -> ::core::ffi::c_int;
23719}
23720unsafe extern "C" {
23721    pub fn TLS_method() -> *const SSL_METHOD;
23722}
23723unsafe extern "C" {
23724    pub fn DTLS_method() -> *const SSL_METHOD;
23725}
23726unsafe extern "C" {
23727    pub fn TLS_with_buffers_method() -> *const SSL_METHOD;
23728}
23729unsafe extern "C" {
23730    pub fn DTLS_with_buffers_method() -> *const SSL_METHOD;
23731}
23732unsafe extern "C" {
23733    pub fn SSL_CTX_new(method: *const SSL_METHOD) -> *mut SSL_CTX;
23734}
23735unsafe extern "C" {
23736    pub fn SSL_CTX_up_ref(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23737}
23738unsafe extern "C" {
23739    pub fn SSL_CTX_free(ctx: *mut SSL_CTX);
23740}
23741unsafe extern "C" {
23742    pub fn SSL_new(ctx: *mut SSL_CTX) -> *mut SSL;
23743}
23744unsafe extern "C" {
23745    pub fn SSL_free(ssl: *mut SSL);
23746}
23747unsafe extern "C" {
23748    pub fn SSL_get_SSL_CTX(ssl: *const SSL) -> *mut SSL_CTX;
23749}
23750unsafe extern "C" {
23751    pub fn SSL_set_connect_state(ssl: *mut SSL);
23752}
23753unsafe extern "C" {
23754    pub fn SSL_set_accept_state(ssl: *mut SSL);
23755}
23756unsafe extern "C" {
23757    pub fn SSL_is_server(ssl: *const SSL) -> ::core::ffi::c_int;
23758}
23759unsafe extern "C" {
23760    pub fn SSL_is_dtls(ssl: *const SSL) -> ::core::ffi::c_int;
23761}
23762unsafe extern "C" {
23763    pub fn SSL_is_quic(ssl: *const SSL) -> ::core::ffi::c_int;
23764}
23765unsafe extern "C" {
23766    pub fn SSL_set_bio(ssl: *mut SSL, rbio: *mut BIO, wbio: *mut BIO);
23767}
23768unsafe extern "C" {
23769    pub fn SSL_set0_rbio(ssl: *mut SSL, rbio: *mut BIO);
23770}
23771unsafe extern "C" {
23772    pub fn SSL_set0_wbio(ssl: *mut SSL, wbio: *mut BIO);
23773}
23774unsafe extern "C" {
23775    pub fn SSL_get_rbio(ssl: *const SSL) -> *mut BIO;
23776}
23777unsafe extern "C" {
23778    pub fn SSL_get_wbio(ssl: *const SSL) -> *mut BIO;
23779}
23780unsafe extern "C" {
23781    pub fn SSL_get_fd(ssl: *const SSL) -> ::core::ffi::c_int;
23782}
23783unsafe extern "C" {
23784    pub fn SSL_get_rfd(ssl: *const SSL) -> ::core::ffi::c_int;
23785}
23786unsafe extern "C" {
23787    pub fn SSL_get_wfd(ssl: *const SSL) -> ::core::ffi::c_int;
23788}
23789unsafe extern "C" {
23790    pub fn SSL_set_fd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23791}
23792unsafe extern "C" {
23793    pub fn SSL_set_rfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23794}
23795unsafe extern "C" {
23796    pub fn SSL_set_wfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23797}
23798unsafe extern "C" {
23799    pub fn SSL_do_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
23800}
23801unsafe extern "C" {
23802    pub fn SSL_connect(ssl: *mut SSL) -> ::core::ffi::c_int;
23803}
23804unsafe extern "C" {
23805    pub fn SSL_accept(ssl: *mut SSL) -> ::core::ffi::c_int;
23806}
23807unsafe extern "C" {
23808    pub fn SSL_read(
23809        ssl: *mut SSL,
23810        buf: *mut ::core::ffi::c_void,
23811        num: ::core::ffi::c_int,
23812    ) -> ::core::ffi::c_int;
23813}
23814unsafe extern "C" {
23815    pub fn SSL_peek(
23816        ssl: *mut SSL,
23817        buf: *mut ::core::ffi::c_void,
23818        num: ::core::ffi::c_int,
23819    ) -> ::core::ffi::c_int;
23820}
23821unsafe extern "C" {
23822    pub fn SSL_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23823}
23824unsafe extern "C" {
23825    pub fn SSL_has_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23826}
23827unsafe extern "C" {
23828    pub fn SSL_write(
23829        ssl: *mut SSL,
23830        buf: *const ::core::ffi::c_void,
23831        num: ::core::ffi::c_int,
23832    ) -> ::core::ffi::c_int;
23833}
23834unsafe extern "C" {
23835    pub fn SSL_key_update(ssl: *mut SSL, request_type: ::core::ffi::c_int) -> ::core::ffi::c_int;
23836}
23837unsafe extern "C" {
23838    pub fn SSL_shutdown(ssl: *mut SSL) -> ::core::ffi::c_int;
23839}
23840unsafe extern "C" {
23841    pub fn SSL_CTX_set_quiet_shutdown(ctx: *mut SSL_CTX, mode: ::core::ffi::c_int);
23842}
23843unsafe extern "C" {
23844    pub fn SSL_CTX_get_quiet_shutdown(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
23845}
23846unsafe extern "C" {
23847    pub fn SSL_set_quiet_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
23848}
23849unsafe extern "C" {
23850    pub fn SSL_get_quiet_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
23851}
23852unsafe extern "C" {
23853    pub fn SSL_get_error(ssl: *const SSL, ret_code: ::core::ffi::c_int) -> ::core::ffi::c_int;
23854}
23855unsafe extern "C" {
23856    pub fn SSL_error_description(err: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
23857}
23858unsafe extern "C" {
23859    pub fn SSL_set_mtu(ssl: *mut SSL, mtu: ::core::ffi::c_uint) -> ::core::ffi::c_int;
23860}
23861unsafe extern "C" {
23862    pub fn DTLSv1_set_initial_timeout_duration(ssl: *mut SSL, duration_ms: u32);
23863}
23864unsafe extern "C" {
23865    pub fn DTLSv1_get_timeout(ssl: *const SSL, out: *mut timeval) -> ::core::ffi::c_int;
23866}
23867unsafe extern "C" {
23868    pub fn DTLSv1_handle_timeout(ssl: *mut SSL) -> ::core::ffi::c_int;
23869}
23870unsafe extern "C" {
23871    pub fn SSL_CTX_set_min_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23872}
23873unsafe extern "C" {
23874    pub fn SSL_CTX_set_max_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23875}
23876unsafe extern "C" {
23877    pub fn SSL_CTX_get_min_proto_version(ctx: *const SSL_CTX) -> u16;
23878}
23879unsafe extern "C" {
23880    pub fn SSL_CTX_get_max_proto_version(ctx: *const SSL_CTX) -> u16;
23881}
23882unsafe extern "C" {
23883    pub fn SSL_set_min_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23884}
23885unsafe extern "C" {
23886    pub fn SSL_set_max_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23887}
23888unsafe extern "C" {
23889    pub fn SSL_get_min_proto_version(ssl: *const SSL) -> u16;
23890}
23891unsafe extern "C" {
23892    pub fn SSL_get_max_proto_version(ssl: *const SSL) -> u16;
23893}
23894unsafe extern "C" {
23895    pub fn SSL_version(ssl: *const SSL) -> ::core::ffi::c_int;
23896}
23897unsafe extern "C" {
23898    pub fn SSL_CTX_set_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23899}
23900unsafe extern "C" {
23901    pub fn SSL_CTX_clear_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23902}
23903unsafe extern "C" {
23904    pub fn SSL_CTX_get_options(ctx: *const SSL_CTX) -> u32;
23905}
23906unsafe extern "C" {
23907    pub fn SSL_set_options(ssl: *mut SSL, options: u32) -> u32;
23908}
23909unsafe extern "C" {
23910    pub fn SSL_clear_options(ssl: *mut SSL, options: u32) -> u32;
23911}
23912unsafe extern "C" {
23913    pub fn SSL_get_options(ssl: *const SSL) -> u32;
23914}
23915unsafe extern "C" {
23916    pub fn SSL_CTX_set_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23917}
23918unsafe extern "C" {
23919    pub fn SSL_CTX_clear_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23920}
23921unsafe extern "C" {
23922    pub fn SSL_CTX_get_mode(ctx: *const SSL_CTX) -> u32;
23923}
23924unsafe extern "C" {
23925    pub fn SSL_set_mode(ssl: *mut SSL, mode: u32) -> u32;
23926}
23927unsafe extern "C" {
23928    pub fn SSL_clear_mode(ssl: *mut SSL, mode: u32) -> u32;
23929}
23930unsafe extern "C" {
23931    pub fn SSL_get_mode(ssl: *const SSL) -> u32;
23932}
23933unsafe extern "C" {
23934    pub fn SSL_CTX_set1_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
23935}
23936unsafe extern "C" {
23937    pub fn SSL_CREDENTIAL_new_x509() -> *mut SSL_CREDENTIAL;
23938}
23939unsafe extern "C" {
23940    pub fn SSL_CREDENTIAL_up_ref(cred: *mut SSL_CREDENTIAL);
23941}
23942unsafe extern "C" {
23943    pub fn SSL_CREDENTIAL_dup_ref(cred: *const SSL_CREDENTIAL) -> *mut SSL_CREDENTIAL;
23944}
23945unsafe extern "C" {
23946    pub fn SSL_CREDENTIAL_free(cred: *mut SSL_CREDENTIAL);
23947}
23948unsafe extern "C" {
23949    pub fn SSL_CREDENTIAL_is_complete(cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
23950}
23951unsafe extern "C" {
23952    pub fn SSL_CREDENTIAL_set1_private_key(
23953        cred: *mut SSL_CREDENTIAL,
23954        key: *mut EVP_PKEY,
23955    ) -> ::core::ffi::c_int;
23956}
23957unsafe extern "C" {
23958    pub fn SSL_CREDENTIAL_set1_signing_algorithm_prefs(
23959        cred: *mut SSL_CREDENTIAL,
23960        prefs: *const u16,
23961        num_prefs: usize,
23962    ) -> ::core::ffi::c_int;
23963}
23964unsafe extern "C" {
23965    pub fn SSL_CREDENTIAL_set1_cert_chain(
23966        cred: *mut SSL_CREDENTIAL,
23967        certs: *const *mut CRYPTO_BUFFER,
23968        num_certs: usize,
23969    ) -> ::core::ffi::c_int;
23970}
23971unsafe extern "C" {
23972    pub fn SSL_CREDENTIAL_set1_ocsp_response(
23973        cred: *mut SSL_CREDENTIAL,
23974        ocsp: *mut CRYPTO_BUFFER,
23975    ) -> ::core::ffi::c_int;
23976}
23977unsafe extern "C" {
23978    pub fn SSL_CREDENTIAL_set1_certificate_properties(
23979        cred: *mut SSL_CREDENTIAL,
23980        cert_property_list: *mut CRYPTO_BUFFER,
23981    ) -> ::core::ffi::c_int;
23982}
23983unsafe extern "C" {
23984    pub fn SSL_CREDENTIAL_set1_signed_cert_timestamp_list(
23985        cred: *mut SSL_CREDENTIAL,
23986        sct_list: *mut CRYPTO_BUFFER,
23987    ) -> ::core::ffi::c_int;
23988}
23989unsafe extern "C" {
23990    pub fn SSL_CREDENTIAL_set_must_match_issuer(
23991        cred: *mut SSL_CREDENTIAL,
23992        match_: ::core::ffi::c_int,
23993    );
23994}
23995unsafe extern "C" {
23996    pub fn SSL_CREDENTIAL_set1_session_id_context(
23997        cred: *mut SSL_CREDENTIAL,
23998        sid_ctx: *const u8,
23999        sid_ctx_len: usize,
24000    ) -> ::core::ffi::c_int;
24001}
24002unsafe extern "C" {
24003    pub fn SSL_CTX_add1_credential(
24004        ctx: *mut SSL_CTX,
24005        cred: *const SSL_CREDENTIAL,
24006    ) -> ::core::ffi::c_int;
24007}
24008unsafe extern "C" {
24009    pub fn SSL_add1_credential(ssl: *mut SSL, cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
24010}
24011unsafe extern "C" {
24012    pub fn SSL_certs_clear(ssl: *mut SSL);
24013}
24014unsafe extern "C" {
24015    pub fn SSL_get0_selected_credential(ssl: *const SSL) -> *const SSL_CREDENTIAL;
24016}
24017unsafe extern "C" {
24018    pub fn SSL_CTX_use_certificate(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
24019}
24020unsafe extern "C" {
24021    pub fn SSL_use_certificate(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
24022}
24023unsafe extern "C" {
24024    pub fn SSL_CTX_use_PrivateKey(ctx: *mut SSL_CTX, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
24025}
24026unsafe extern "C" {
24027    pub fn SSL_use_PrivateKey(ssl: *mut SSL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
24028}
24029unsafe extern "C" {
24030    pub fn SSL_CTX_set0_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
24031}
24032unsafe extern "C" {
24033    pub fn SSL_CTX_set1_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
24034}
24035unsafe extern "C" {
24036    pub fn SSL_set0_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
24037}
24038unsafe extern "C" {
24039    pub fn SSL_set1_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
24040}
24041unsafe extern "C" {
24042    pub fn SSL_CTX_add0_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
24043}
24044unsafe extern "C" {
24045    pub fn SSL_CTX_add1_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
24046}
24047unsafe extern "C" {
24048    pub fn SSL_add0_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
24049}
24050unsafe extern "C" {
24051    pub fn SSL_CTX_add_extra_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
24052}
24053unsafe extern "C" {
24054    pub fn SSL_add1_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
24055}
24056unsafe extern "C" {
24057    pub fn SSL_CTX_clear_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
24058}
24059unsafe extern "C" {
24060    pub fn SSL_CTX_clear_extra_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
24061}
24062unsafe extern "C" {
24063    pub fn SSL_clear_chain_certs(ssl: *mut SSL) -> ::core::ffi::c_int;
24064}
24065unsafe extern "C" {
24066    pub fn SSL_CTX_set_cert_cb(
24067        ctx: *mut SSL_CTX,
24068        cb: ::core::option::Option<
24069            unsafe extern "C" fn(
24070                ssl: *mut SSL,
24071                arg: *mut ::core::ffi::c_void,
24072            ) -> ::core::ffi::c_int,
24073        >,
24074        arg: *mut ::core::ffi::c_void,
24075    );
24076}
24077unsafe extern "C" {
24078    pub fn SSL_CTX_set_cert_cb_ex(
24079        ctx: *mut SSL_CTX,
24080        cb: ::core::option::Option<
24081            unsafe extern "C" fn(
24082                ssl: *mut SSL,
24083                arg: *mut ::core::ffi::c_void,
24084                out_alert: *mut u8,
24085            ) -> ::core::ffi::c_int,
24086        >,
24087        arg: *mut ::core::ffi::c_void,
24088    );
24089}
24090unsafe extern "C" {
24091    pub fn SSL_set_cert_cb(
24092        ssl: *mut SSL,
24093        cb: ::core::option::Option<
24094            unsafe extern "C" fn(
24095                ssl: *mut SSL,
24096                arg: *mut ::core::ffi::c_void,
24097            ) -> ::core::ffi::c_int,
24098        >,
24099        arg: *mut ::core::ffi::c_void,
24100    );
24101}
24102unsafe extern "C" {
24103    pub fn SSL_set_cert_cb_ex(
24104        ssl: *mut SSL,
24105        cb: ::core::option::Option<
24106            unsafe extern "C" fn(
24107                ssl: *mut SSL,
24108                arg: *mut ::core::ffi::c_void,
24109                out_alert: *mut u8,
24110            ) -> ::core::ffi::c_int,
24111        >,
24112        arg: *mut ::core::ffi::c_void,
24113    );
24114}
24115unsafe extern "C" {
24116    pub fn SSL_get0_certificate_types(ssl: *const SSL, out_types: *mut *const u8) -> usize;
24117}
24118unsafe extern "C" {
24119    pub fn SSL_get0_peer_verify_algorithms(ssl: *const SSL, out_sigalgs: *mut *const u16) -> usize;
24120}
24121unsafe extern "C" {
24122    pub fn SSL_get0_peer_delegation_algorithms(
24123        ssl: *const SSL,
24124        out_sigalgs: *mut *const u16,
24125    ) -> usize;
24126}
24127unsafe extern "C" {
24128    pub fn SSL_CTX_get0_certificate(ctx: *const SSL_CTX) -> *mut X509;
24129}
24130unsafe extern "C" {
24131    pub fn SSL_get_certificate(ssl: *const SSL) -> *mut X509;
24132}
24133unsafe extern "C" {
24134    pub fn SSL_CTX_get0_privatekey(ctx: *const SSL_CTX) -> *mut EVP_PKEY;
24135}
24136unsafe extern "C" {
24137    pub fn SSL_get_privatekey(ssl: *const SSL) -> *mut EVP_PKEY;
24138}
24139unsafe extern "C" {
24140    pub fn SSL_CTX_get0_chain_certs(
24141        ctx: *const SSL_CTX,
24142        out_chain: *mut *mut stack_st_X509,
24143    ) -> ::core::ffi::c_int;
24144}
24145unsafe extern "C" {
24146    pub fn SSL_CTX_get_extra_chain_certs(
24147        ctx: *const SSL_CTX,
24148        out_chain: *mut *mut stack_st_X509,
24149    ) -> ::core::ffi::c_int;
24150}
24151unsafe extern "C" {
24152    pub fn SSL_get0_chain_certs(
24153        ssl: *const SSL,
24154        out_chain: *mut *mut stack_st_X509,
24155    ) -> ::core::ffi::c_int;
24156}
24157unsafe extern "C" {
24158    pub fn SSL_CTX_set_signed_cert_timestamp_list(
24159        ctx: *mut SSL_CTX,
24160        list: *const u8,
24161        list_len: usize,
24162    ) -> ::core::ffi::c_int;
24163}
24164unsafe extern "C" {
24165    pub fn SSL_set_signed_cert_timestamp_list(
24166        ctx: *mut SSL,
24167        list: *const u8,
24168        list_len: usize,
24169    ) -> ::core::ffi::c_int;
24170}
24171unsafe extern "C" {
24172    pub fn SSL_CTX_set_ocsp_response(
24173        ctx: *mut SSL_CTX,
24174        response: *const u8,
24175        response_len: usize,
24176    ) -> ::core::ffi::c_int;
24177}
24178unsafe extern "C" {
24179    pub fn SSL_set_ocsp_response(
24180        ssl: *mut SSL,
24181        response: *const u8,
24182        response_len: usize,
24183    ) -> ::core::ffi::c_int;
24184}
24185unsafe extern "C" {
24186    pub fn SSL_get_signature_algorithm_name(
24187        sigalg: u16,
24188        include_curve: ::core::ffi::c_int,
24189    ) -> *const ::core::ffi::c_char;
24190}
24191unsafe extern "C" {
24192    pub fn SSL_get_all_signature_algorithm_names(
24193        out: *mut *const ::core::ffi::c_char,
24194        max_out: usize,
24195    ) -> usize;
24196}
24197unsafe extern "C" {
24198    pub fn SSL_get_signature_algorithm_key_type(sigalg: u16) -> ::core::ffi::c_int;
24199}
24200unsafe extern "C" {
24201    pub fn SSL_get_signature_algorithm_digest(sigalg: u16) -> *const EVP_MD;
24202}
24203unsafe extern "C" {
24204    pub fn SSL_is_signature_algorithm_rsa_pss(sigalg: u16) -> ::core::ffi::c_int;
24205}
24206unsafe extern "C" {
24207    pub fn SSL_CTX_set_signing_algorithm_prefs(
24208        ctx: *mut SSL_CTX,
24209        prefs: *const u16,
24210        num_prefs: usize,
24211    ) -> ::core::ffi::c_int;
24212}
24213unsafe extern "C" {
24214    pub fn SSL_set_signing_algorithm_prefs(
24215        ssl: *mut SSL,
24216        prefs: *const u16,
24217        num_prefs: usize,
24218    ) -> ::core::ffi::c_int;
24219}
24220unsafe extern "C" {
24221    pub fn SSL_CTX_set_chain_and_key(
24222        ctx: *mut SSL_CTX,
24223        certs: *const *mut CRYPTO_BUFFER,
24224        num_certs: usize,
24225        privkey: *mut EVP_PKEY,
24226        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
24227    ) -> ::core::ffi::c_int;
24228}
24229unsafe extern "C" {
24230    pub fn SSL_set_chain_and_key(
24231        ssl: *mut SSL,
24232        certs: *const *mut CRYPTO_BUFFER,
24233        num_certs: usize,
24234        privkey: *mut EVP_PKEY,
24235        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
24236    ) -> ::core::ffi::c_int;
24237}
24238unsafe extern "C" {
24239    pub fn SSL_CTX_get0_chain(ctx: *const SSL_CTX) -> *const stack_st_CRYPTO_BUFFER;
24240}
24241unsafe extern "C" {
24242    pub fn SSL_get0_chain(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
24243}
24244unsafe extern "C" {
24245    pub fn SSL_CTX_use_RSAPrivateKey(ctx: *mut SSL_CTX, rsa: *mut RSA) -> ::core::ffi::c_int;
24246}
24247unsafe extern "C" {
24248    pub fn SSL_use_RSAPrivateKey(ssl: *mut SSL, rsa: *mut RSA) -> ::core::ffi::c_int;
24249}
24250unsafe extern "C" {
24251    pub fn SSL_CTX_use_certificate_ASN1(
24252        ctx: *mut SSL_CTX,
24253        der_len: usize,
24254        der: *const u8,
24255    ) -> ::core::ffi::c_int;
24256}
24257unsafe extern "C" {
24258    pub fn SSL_use_certificate_ASN1(
24259        ssl: *mut SSL,
24260        der: *const u8,
24261        der_len: usize,
24262    ) -> ::core::ffi::c_int;
24263}
24264unsafe extern "C" {
24265    pub fn SSL_CTX_use_PrivateKey_ASN1(
24266        pk: ::core::ffi::c_int,
24267        ctx: *mut SSL_CTX,
24268        der: *const u8,
24269        der_len: usize,
24270    ) -> ::core::ffi::c_int;
24271}
24272unsafe extern "C" {
24273    pub fn SSL_use_PrivateKey_ASN1(
24274        type_: ::core::ffi::c_int,
24275        ssl: *mut SSL,
24276        der: *const u8,
24277        der_len: usize,
24278    ) -> ::core::ffi::c_int;
24279}
24280unsafe extern "C" {
24281    pub fn SSL_CTX_use_RSAPrivateKey_ASN1(
24282        ctx: *mut SSL_CTX,
24283        der: *const u8,
24284        der_len: usize,
24285    ) -> ::core::ffi::c_int;
24286}
24287unsafe extern "C" {
24288    pub fn SSL_use_RSAPrivateKey_ASN1(
24289        ssl: *mut SSL,
24290        der: *const u8,
24291        der_len: usize,
24292    ) -> ::core::ffi::c_int;
24293}
24294unsafe extern "C" {
24295    pub fn SSL_CTX_use_RSAPrivateKey_file(
24296        ctx: *mut SSL_CTX,
24297        file: *const ::core::ffi::c_char,
24298        type_: ::core::ffi::c_int,
24299    ) -> ::core::ffi::c_int;
24300}
24301unsafe extern "C" {
24302    pub fn SSL_use_RSAPrivateKey_file(
24303        ssl: *mut SSL,
24304        file: *const ::core::ffi::c_char,
24305        type_: ::core::ffi::c_int,
24306    ) -> ::core::ffi::c_int;
24307}
24308unsafe extern "C" {
24309    pub fn SSL_CTX_use_certificate_file(
24310        ctx: *mut SSL_CTX,
24311        file: *const ::core::ffi::c_char,
24312        type_: ::core::ffi::c_int,
24313    ) -> ::core::ffi::c_int;
24314}
24315unsafe extern "C" {
24316    pub fn SSL_use_certificate_file(
24317        ssl: *mut SSL,
24318        file: *const ::core::ffi::c_char,
24319        type_: ::core::ffi::c_int,
24320    ) -> ::core::ffi::c_int;
24321}
24322unsafe extern "C" {
24323    pub fn SSL_CTX_use_PrivateKey_file(
24324        ctx: *mut SSL_CTX,
24325        file: *const ::core::ffi::c_char,
24326        type_: ::core::ffi::c_int,
24327    ) -> ::core::ffi::c_int;
24328}
24329unsafe extern "C" {
24330    pub fn SSL_use_PrivateKey_file(
24331        ssl: *mut SSL,
24332        file: *const ::core::ffi::c_char,
24333        type_: ::core::ffi::c_int,
24334    ) -> ::core::ffi::c_int;
24335}
24336unsafe extern "C" {
24337    pub fn SSL_CTX_use_certificate_chain_file(
24338        ctx: *mut SSL_CTX,
24339        file: *const ::core::ffi::c_char,
24340    ) -> ::core::ffi::c_int;
24341}
24342unsafe extern "C" {
24343    pub fn SSL_CTX_set_default_passwd_cb(ctx: *mut SSL_CTX, cb: pem_password_cb);
24344}
24345unsafe extern "C" {
24346    pub fn SSL_CTX_get_default_passwd_cb(ctx: *const SSL_CTX) -> pem_password_cb;
24347}
24348unsafe extern "C" {
24349    pub fn SSL_CTX_set_default_passwd_cb_userdata(
24350        ctx: *mut SSL_CTX,
24351        data: *mut ::core::ffi::c_void,
24352    );
24353}
24354unsafe extern "C" {
24355    pub fn SSL_CTX_get_default_passwd_cb_userdata(ctx: *const SSL_CTX) -> *mut ::core::ffi::c_void;
24356}
24357pub const ssl_private_key_result_t_ssl_private_key_success: ssl_private_key_result_t = 0;
24358pub const ssl_private_key_result_t_ssl_private_key_retry: ssl_private_key_result_t = 1;
24359pub const ssl_private_key_result_t_ssl_private_key_failure: ssl_private_key_result_t = 2;
24360pub type ssl_private_key_result_t = ::core::ffi::c_uint;
24361#[repr(C)]
24362#[derive(Debug, Copy, Clone)]
24363pub struct ssl_private_key_method_st {
24364    pub sign: ::core::option::Option<
24365        unsafe extern "C" fn(
24366            ssl: *mut SSL,
24367            out: *mut u8,
24368            out_len: *mut usize,
24369            max_out: usize,
24370            signature_algorithm: u16,
24371            in_: *const u8,
24372            in_len: usize,
24373        ) -> ssl_private_key_result_t,
24374    >,
24375    pub decrypt: ::core::option::Option<
24376        unsafe extern "C" fn(
24377            ssl: *mut SSL,
24378            out: *mut u8,
24379            out_len: *mut usize,
24380            max_out: usize,
24381            in_: *const u8,
24382            in_len: usize,
24383        ) -> ssl_private_key_result_t,
24384    >,
24385    pub complete: ::core::option::Option<
24386        unsafe extern "C" fn(
24387            ssl: *mut SSL,
24388            out: *mut u8,
24389            out_len: *mut usize,
24390            max_out: usize,
24391        ) -> ssl_private_key_result_t,
24392    >,
24393}
24394unsafe extern "C" {
24395    pub fn SSL_set_private_key_method(ssl: *mut SSL, key_method: *const SSL_PRIVATE_KEY_METHOD);
24396}
24397unsafe extern "C" {
24398    pub fn SSL_CTX_set_private_key_method(
24399        ctx: *mut SSL_CTX,
24400        key_method: *const SSL_PRIVATE_KEY_METHOD,
24401    );
24402}
24403unsafe extern "C" {
24404    pub fn SSL_CREDENTIAL_set_private_key_method(
24405        cred: *mut SSL_CREDENTIAL,
24406        key_method: *const SSL_PRIVATE_KEY_METHOD,
24407    ) -> ::core::ffi::c_int;
24408}
24409unsafe extern "C" {
24410    pub fn SSL_can_release_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
24411}
24412#[repr(C)]
24413#[derive(Debug)]
24414pub struct stack_st_SSL_CIPHER {
24415    _unused: [u8; 0],
24416}
24417pub type sk_SSL_CIPHER_free_func =
24418    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER)>;
24419pub type sk_SSL_CIPHER_copy_func =
24420    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER) -> *const SSL_CIPHER>;
24421pub type sk_SSL_CIPHER_cmp_func = ::core::option::Option<
24422    unsafe extern "C" fn(
24423        arg1: *const *const SSL_CIPHER,
24424        arg2: *const *const SSL_CIPHER,
24425    ) -> ::core::ffi::c_int,
24426>;
24427pub type sk_SSL_CIPHER_delete_if_func = ::core::option::Option<
24428    unsafe extern "C" fn(
24429        arg1: *const SSL_CIPHER,
24430        arg2: *mut ::core::ffi::c_void,
24431    ) -> ::core::ffi::c_int,
24432>;
24433unsafe extern "C" {
24434    #[link_name = "sk_SSL_CIPHER_call_free_func__extern"]
24435    pub fn sk_SSL_CIPHER_call_free_func(
24436        free_func: OPENSSL_sk_free_func,
24437        ptr: *mut ::core::ffi::c_void,
24438    );
24439}
24440unsafe extern "C" {
24441    #[link_name = "sk_SSL_CIPHER_call_copy_func__extern"]
24442    pub fn sk_SSL_CIPHER_call_copy_func(
24443        copy_func: OPENSSL_sk_copy_func,
24444        ptr: *const ::core::ffi::c_void,
24445    ) -> *mut ::core::ffi::c_void;
24446}
24447unsafe extern "C" {
24448    #[link_name = "sk_SSL_CIPHER_call_cmp_func__extern"]
24449    pub fn sk_SSL_CIPHER_call_cmp_func(
24450        cmp_func: OPENSSL_sk_cmp_func,
24451        a: *const ::core::ffi::c_void,
24452        b: *const ::core::ffi::c_void,
24453    ) -> ::core::ffi::c_int;
24454}
24455unsafe extern "C" {
24456    #[link_name = "sk_SSL_CIPHER_call_delete_if_func__extern"]
24457    pub fn sk_SSL_CIPHER_call_delete_if_func(
24458        func: OPENSSL_sk_delete_if_func,
24459        obj: *mut ::core::ffi::c_void,
24460        data: *mut ::core::ffi::c_void,
24461    ) -> ::core::ffi::c_int;
24462}
24463unsafe extern "C" {
24464    #[link_name = "sk_SSL_CIPHER_new__extern"]
24465    pub fn sk_SSL_CIPHER_new(comp: sk_SSL_CIPHER_cmp_func) -> *mut stack_st_SSL_CIPHER;
24466}
24467unsafe extern "C" {
24468    #[link_name = "sk_SSL_CIPHER_new_null__extern"]
24469    pub fn sk_SSL_CIPHER_new_null() -> *mut stack_st_SSL_CIPHER;
24470}
24471unsafe extern "C" {
24472    #[link_name = "sk_SSL_CIPHER_num__extern"]
24473    pub fn sk_SSL_CIPHER_num(sk: *const stack_st_SSL_CIPHER) -> usize;
24474}
24475unsafe extern "C" {
24476    #[link_name = "sk_SSL_CIPHER_zero__extern"]
24477    pub fn sk_SSL_CIPHER_zero(sk: *mut stack_st_SSL_CIPHER);
24478}
24479unsafe extern "C" {
24480    #[link_name = "sk_SSL_CIPHER_value__extern"]
24481    pub fn sk_SSL_CIPHER_value(sk: *const stack_st_SSL_CIPHER, i: usize) -> *const SSL_CIPHER;
24482}
24483unsafe extern "C" {
24484    #[link_name = "sk_SSL_CIPHER_last__extern"]
24485    pub fn sk_SSL_CIPHER_last(sk: *const stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24486}
24487unsafe extern "C" {
24488    #[link_name = "sk_SSL_CIPHER_set__extern"]
24489    pub fn sk_SSL_CIPHER_set(
24490        sk: *mut stack_st_SSL_CIPHER,
24491        i: usize,
24492        p: *const SSL_CIPHER,
24493    ) -> *const SSL_CIPHER;
24494}
24495unsafe extern "C" {
24496    #[link_name = "sk_SSL_CIPHER_free__extern"]
24497    pub fn sk_SSL_CIPHER_free(sk: *mut stack_st_SSL_CIPHER);
24498}
24499unsafe extern "C" {
24500    #[link_name = "sk_SSL_CIPHER_pop_free__extern"]
24501    pub fn sk_SSL_CIPHER_pop_free(sk: *mut stack_st_SSL_CIPHER, free_func: sk_SSL_CIPHER_free_func);
24502}
24503unsafe extern "C" {
24504    #[link_name = "sk_SSL_CIPHER_insert__extern"]
24505    pub fn sk_SSL_CIPHER_insert(
24506        sk: *mut stack_st_SSL_CIPHER,
24507        p: *const SSL_CIPHER,
24508        where_: usize,
24509    ) -> usize;
24510}
24511unsafe extern "C" {
24512    #[link_name = "sk_SSL_CIPHER_delete__extern"]
24513    pub fn sk_SSL_CIPHER_delete(sk: *mut stack_st_SSL_CIPHER, where_: usize) -> *const SSL_CIPHER;
24514}
24515unsafe extern "C" {
24516    #[link_name = "sk_SSL_CIPHER_delete_ptr__extern"]
24517    pub fn sk_SSL_CIPHER_delete_ptr(
24518        sk: *mut stack_st_SSL_CIPHER,
24519        p: *const SSL_CIPHER,
24520    ) -> *const SSL_CIPHER;
24521}
24522unsafe extern "C" {
24523    #[link_name = "sk_SSL_CIPHER_delete_if__extern"]
24524    pub fn sk_SSL_CIPHER_delete_if(
24525        sk: *mut stack_st_SSL_CIPHER,
24526        func: sk_SSL_CIPHER_delete_if_func,
24527        data: *mut ::core::ffi::c_void,
24528    );
24529}
24530unsafe extern "C" {
24531    #[link_name = "sk_SSL_CIPHER_find__extern"]
24532    pub fn sk_SSL_CIPHER_find(
24533        sk: *const stack_st_SSL_CIPHER,
24534        out_index: *mut usize,
24535        p: *const SSL_CIPHER,
24536    ) -> ::core::ffi::c_int;
24537}
24538unsafe extern "C" {
24539    #[link_name = "sk_SSL_CIPHER_shift__extern"]
24540    pub fn sk_SSL_CIPHER_shift(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24541}
24542unsafe extern "C" {
24543    #[link_name = "sk_SSL_CIPHER_push__extern"]
24544    pub fn sk_SSL_CIPHER_push(sk: *mut stack_st_SSL_CIPHER, p: *const SSL_CIPHER) -> usize;
24545}
24546unsafe extern "C" {
24547    #[link_name = "sk_SSL_CIPHER_pop__extern"]
24548    pub fn sk_SSL_CIPHER_pop(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24549}
24550unsafe extern "C" {
24551    #[link_name = "sk_SSL_CIPHER_dup__extern"]
24552    pub fn sk_SSL_CIPHER_dup(sk: *const stack_st_SSL_CIPHER) -> *mut stack_st_SSL_CIPHER;
24553}
24554unsafe extern "C" {
24555    #[link_name = "sk_SSL_CIPHER_sort__extern"]
24556    pub fn sk_SSL_CIPHER_sort(sk: *mut stack_st_SSL_CIPHER);
24557}
24558unsafe extern "C" {
24559    #[link_name = "sk_SSL_CIPHER_sort_and_dedup__extern"]
24560    pub fn sk_SSL_CIPHER_sort_and_dedup(
24561        sk: *mut stack_st_SSL_CIPHER,
24562        free_func: sk_SSL_CIPHER_free_func,
24563    );
24564}
24565unsafe extern "C" {
24566    #[link_name = "sk_SSL_CIPHER_is_sorted__extern"]
24567    pub fn sk_SSL_CIPHER_is_sorted(sk: *const stack_st_SSL_CIPHER) -> ::core::ffi::c_int;
24568}
24569unsafe extern "C" {
24570    #[link_name = "sk_SSL_CIPHER_set_cmp_func__extern"]
24571    pub fn sk_SSL_CIPHER_set_cmp_func(
24572        sk: *mut stack_st_SSL_CIPHER,
24573        comp: sk_SSL_CIPHER_cmp_func,
24574    ) -> sk_SSL_CIPHER_cmp_func;
24575}
24576unsafe extern "C" {
24577    #[link_name = "sk_SSL_CIPHER_deep_copy__extern"]
24578    pub fn sk_SSL_CIPHER_deep_copy(
24579        sk: *const stack_st_SSL_CIPHER,
24580        copy_func: sk_SSL_CIPHER_copy_func,
24581        free_func: sk_SSL_CIPHER_free_func,
24582    ) -> *mut stack_st_SSL_CIPHER;
24583}
24584unsafe extern "C" {
24585    pub fn SSL_get_cipher_by_value(value: u16) -> *const SSL_CIPHER;
24586}
24587unsafe extern "C" {
24588    pub fn SSL_CIPHER_get_protocol_id(cipher: *const SSL_CIPHER) -> u16;
24589}
24590unsafe extern "C" {
24591    pub fn SSL_CIPHER_is_aead(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24592}
24593unsafe extern "C" {
24594    pub fn SSL_CIPHER_is_block_cipher(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24595}
24596unsafe extern "C" {
24597    pub fn SSL_CIPHER_get_cipher_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24598}
24599unsafe extern "C" {
24600    pub fn SSL_CIPHER_get_digest_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24601}
24602unsafe extern "C" {
24603    pub fn SSL_CIPHER_get_kx_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24604}
24605unsafe extern "C" {
24606    pub fn SSL_CIPHER_get_auth_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24607}
24608unsafe extern "C" {
24609    pub fn SSL_CIPHER_get_handshake_digest(cipher: *const SSL_CIPHER) -> *const EVP_MD;
24610}
24611unsafe extern "C" {
24612    pub fn SSL_CIPHER_get_prf_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24613}
24614unsafe extern "C" {
24615    pub fn SSL_CIPHER_get_min_version(cipher: *const SSL_CIPHER) -> u16;
24616}
24617unsafe extern "C" {
24618    pub fn SSL_CIPHER_get_max_version(cipher: *const SSL_CIPHER) -> u16;
24619}
24620unsafe extern "C" {
24621    pub fn SSL_CIPHER_standard_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24622}
24623unsafe extern "C" {
24624    pub fn SSL_CIPHER_get_kx_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24625}
24626unsafe extern "C" {
24627    pub fn SSL_CIPHER_get_bits(
24628        cipher: *const SSL_CIPHER,
24629        out_alg_bits: *mut ::core::ffi::c_int,
24630    ) -> ::core::ffi::c_int;
24631}
24632unsafe extern "C" {
24633    pub fn SSL_get_all_cipher_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
24634}
24635unsafe extern "C" {
24636    pub fn SSL_get_all_standard_cipher_names(
24637        out: *mut *const ::core::ffi::c_char,
24638        max_out: usize,
24639    ) -> usize;
24640}
24641unsafe extern "C" {
24642    pub fn SSL_CTX_set_strict_cipher_list(
24643        ctx: *mut SSL_CTX,
24644        str_: *const ::core::ffi::c_char,
24645    ) -> ::core::ffi::c_int;
24646}
24647unsafe extern "C" {
24648    pub fn SSL_CTX_set_cipher_list(
24649        ctx: *mut SSL_CTX,
24650        str_: *const ::core::ffi::c_char,
24651    ) -> ::core::ffi::c_int;
24652}
24653unsafe extern "C" {
24654    pub fn SSL_set_strict_cipher_list(
24655        ssl: *mut SSL,
24656        str_: *const ::core::ffi::c_char,
24657    ) -> ::core::ffi::c_int;
24658}
24659unsafe extern "C" {
24660    pub fn SSL_set_cipher_list(
24661        ssl: *mut SSL,
24662        str_: *const ::core::ffi::c_char,
24663    ) -> ::core::ffi::c_int;
24664}
24665unsafe extern "C" {
24666    pub fn SSL_CTX_get_ciphers(ctx: *const SSL_CTX) -> *mut stack_st_SSL_CIPHER;
24667}
24668unsafe extern "C" {
24669    pub fn SSL_CTX_cipher_in_group(ctx: *const SSL_CTX, i: usize) -> ::core::ffi::c_int;
24670}
24671unsafe extern "C" {
24672    pub fn SSL_get_ciphers(ssl: *const SSL) -> *mut stack_st_SSL_CIPHER;
24673}
24674unsafe extern "C" {
24675    pub fn SSL_CTX_set1_tls13_ciphers(
24676        ctx: *mut SSL_CTX,
24677        cipher_ids: *const u16,
24678        flags: *const u32,
24679        num_cipher_ids: usize,
24680    ) -> ::core::ffi::c_int;
24681}
24682unsafe extern "C" {
24683    pub fn SSL_set1_tls13_ciphers(
24684        ssl: *mut SSL,
24685        cipher_ids: *const u16,
24686        flags: *const u32,
24687        num_cipher_ids: usize,
24688    ) -> ::core::ffi::c_int;
24689}
24690unsafe extern "C" {
24691    pub fn SSL_is_init_finished(ssl: *const SSL) -> ::core::ffi::c_int;
24692}
24693unsafe extern "C" {
24694    pub fn SSL_in_init(ssl: *const SSL) -> ::core::ffi::c_int;
24695}
24696unsafe extern "C" {
24697    pub fn SSL_in_false_start(ssl: *const SSL) -> ::core::ffi::c_int;
24698}
24699unsafe extern "C" {
24700    pub fn SSL_get_peer_certificate(ssl: *const SSL) -> *mut X509;
24701}
24702unsafe extern "C" {
24703    pub fn SSL_get_peer_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24704}
24705unsafe extern "C" {
24706    pub fn SSL_get_peer_full_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24707}
24708unsafe extern "C" {
24709    pub fn SSL_get0_peer_certificates(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
24710}
24711unsafe extern "C" {
24712    pub fn SSL_get0_signed_cert_timestamp_list(
24713        ssl: *const SSL,
24714        out: *mut *const u8,
24715        out_len: *mut usize,
24716    );
24717}
24718unsafe extern "C" {
24719    pub fn SSL_get0_ocsp_response(ssl: *const SSL, out: *mut *const u8, out_len: *mut usize);
24720}
24721unsafe extern "C" {
24722    pub fn SSL_get_tls_unique(
24723        ssl: *const SSL,
24724        out: *mut u8,
24725        out_len: *mut usize,
24726        max_out: usize,
24727    ) -> ::core::ffi::c_int;
24728}
24729unsafe extern "C" {
24730    pub fn SSL_get_extms_support(ssl: *const SSL) -> ::core::ffi::c_int;
24731}
24732unsafe extern "C" {
24733    pub fn SSL_get_current_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
24734}
24735unsafe extern "C" {
24736    pub fn SSL_session_reused(ssl: *const SSL) -> ::core::ffi::c_int;
24737}
24738unsafe extern "C" {
24739    pub fn SSL_get_secure_renegotiation_support(ssl: *const SSL) -> ::core::ffi::c_int;
24740}
24741unsafe extern "C" {
24742    pub fn SSL_export_keying_material(
24743        ssl: *const SSL,
24744        out: *mut u8,
24745        out_len: usize,
24746        label: *const ::core::ffi::c_char,
24747        label_len: usize,
24748        context: *const u8,
24749        context_len: usize,
24750        use_context: ::core::ffi::c_int,
24751    ) -> ::core::ffi::c_int;
24752}
24753unsafe extern "C" {
24754    pub fn SSL_SESSION_new(ctx: *const SSL_CTX) -> *mut SSL_SESSION;
24755}
24756unsafe extern "C" {
24757    pub fn SSL_SESSION_up_ref(session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24758}
24759unsafe extern "C" {
24760    pub fn SSL_SESSION_free(session: *mut SSL_SESSION);
24761}
24762unsafe extern "C" {
24763    pub fn SSL_SESSION_to_bytes(
24764        in_: *const SSL_SESSION,
24765        out_data: *mut *mut u8,
24766        out_len: *mut usize,
24767    ) -> ::core::ffi::c_int;
24768}
24769unsafe extern "C" {
24770    pub fn SSL_SESSION_to_bytes_for_ticket(
24771        in_: *const SSL_SESSION,
24772        out_data: *mut *mut u8,
24773        out_len: *mut usize,
24774    ) -> ::core::ffi::c_int;
24775}
24776unsafe extern "C" {
24777    pub fn SSL_SESSION_from_bytes(
24778        in_: *const u8,
24779        in_len: usize,
24780        ctx: *const SSL_CTX,
24781    ) -> *mut SSL_SESSION;
24782}
24783unsafe extern "C" {
24784    pub fn PEM_read_bio_SSL_SESSION(
24785        bio: *mut BIO,
24786        out: *mut *mut SSL_SESSION,
24787        cb: pem_password_cb,
24788        userdata: *mut ::core::ffi::c_void,
24789    ) -> *mut SSL_SESSION;
24790}
24791unsafe extern "C" {
24792    pub fn PEM_read_SSL_SESSION(
24793        fp: *mut FILE,
24794        out: *mut *mut SSL_SESSION,
24795        cb: pem_password_cb,
24796        userdata: *mut ::core::ffi::c_void,
24797    ) -> *mut SSL_SESSION;
24798}
24799unsafe extern "C" {
24800    pub fn PEM_write_bio_SSL_SESSION(bio: *mut BIO, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24801}
24802unsafe extern "C" {
24803    pub fn PEM_write_SSL_SESSION(fp: *mut FILE, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24804}
24805unsafe extern "C" {
24806    pub fn SSL_SESSION_get_version(session: *const SSL_SESSION) -> *const ::core::ffi::c_char;
24807}
24808unsafe extern "C" {
24809    pub fn SSL_SESSION_get_protocol_version(session: *const SSL_SESSION) -> u16;
24810}
24811unsafe extern "C" {
24812    pub fn SSL_SESSION_set_protocol_version(
24813        session: *mut SSL_SESSION,
24814        version: u16,
24815    ) -> ::core::ffi::c_int;
24816}
24817unsafe extern "C" {
24818    pub fn SSL_SESSION_get_id(
24819        session: *const SSL_SESSION,
24820        out_len: *mut ::core::ffi::c_uint,
24821    ) -> *const u8;
24822}
24823unsafe extern "C" {
24824    pub fn SSL_SESSION_set1_id(
24825        session: *mut SSL_SESSION,
24826        sid: *const u8,
24827        sid_len: usize,
24828    ) -> ::core::ffi::c_int;
24829}
24830unsafe extern "C" {
24831    pub fn SSL_SESSION_get_time(session: *const SSL_SESSION) -> u64;
24832}
24833unsafe extern "C" {
24834    pub fn SSL_SESSION_get_timeout(session: *const SSL_SESSION) -> u32;
24835}
24836unsafe extern "C" {
24837    pub fn SSL_SESSION_get0_peer(session: *const SSL_SESSION) -> *mut X509;
24838}
24839unsafe extern "C" {
24840    pub fn SSL_SESSION_get0_peer_certificates(
24841        session: *const SSL_SESSION,
24842    ) -> *const stack_st_CRYPTO_BUFFER;
24843}
24844unsafe extern "C" {
24845    pub fn SSL_SESSION_get0_peer_rpk(session: *const SSL_SESSION) -> *mut EVP_PKEY;
24846}
24847unsafe extern "C" {
24848    pub fn SSL_SESSION_get0_signed_cert_timestamp_list(
24849        session: *const SSL_SESSION,
24850        out: *mut *const u8,
24851        out_len: *mut usize,
24852    );
24853}
24854unsafe extern "C" {
24855    pub fn SSL_SESSION_get0_ocsp_response(
24856        session: *const SSL_SESSION,
24857        out: *mut *const u8,
24858        out_len: *mut usize,
24859    );
24860}
24861unsafe extern "C" {
24862    pub fn SSL_SESSION_get_master_key(
24863        session: *const SSL_SESSION,
24864        out: *mut u8,
24865        max_out: usize,
24866    ) -> usize;
24867}
24868unsafe extern "C" {
24869    pub fn SSL_SESSION_set_time(session: *mut SSL_SESSION, time: u64) -> u64;
24870}
24871unsafe extern "C" {
24872    pub fn SSL_SESSION_set_timeout(session: *mut SSL_SESSION, timeout: u32) -> u32;
24873}
24874unsafe extern "C" {
24875    pub fn SSL_SESSION_get0_id_context(
24876        session: *const SSL_SESSION,
24877        out_len: *mut ::core::ffi::c_uint,
24878    ) -> *const u8;
24879}
24880unsafe extern "C" {
24881    pub fn SSL_SESSION_set1_id_context(
24882        session: *mut SSL_SESSION,
24883        sid_ctx: *const u8,
24884        sid_ctx_len: usize,
24885    ) -> ::core::ffi::c_int;
24886}
24887unsafe extern "C" {
24888    pub fn SSL_SESSION_should_be_single_use(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24889}
24890unsafe extern "C" {
24891    pub fn SSL_SESSION_is_resumable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24892}
24893unsafe extern "C" {
24894    pub fn SSL_SESSION_has_ticket(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24895}
24896unsafe extern "C" {
24897    pub fn SSL_SESSION_get0_ticket(
24898        session: *const SSL_SESSION,
24899        out_ticket: *mut *const u8,
24900        out_len: *mut usize,
24901    );
24902}
24903unsafe extern "C" {
24904    pub fn SSL_SESSION_set_ticket(
24905        session: *mut SSL_SESSION,
24906        ticket: *const u8,
24907        ticket_len: usize,
24908    ) -> ::core::ffi::c_int;
24909}
24910unsafe extern "C" {
24911    pub fn SSL_SESSION_get_ticket_lifetime_hint(session: *const SSL_SESSION) -> u32;
24912}
24913unsafe extern "C" {
24914    pub fn SSL_SESSION_get0_cipher(session: *const SSL_SESSION) -> *const SSL_CIPHER;
24915}
24916unsafe extern "C" {
24917    pub fn SSL_SESSION_has_peer_sha256(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24918}
24919unsafe extern "C" {
24920    pub fn SSL_SESSION_get0_peer_sha256(
24921        session: *const SSL_SESSION,
24922        out_ptr: *mut *const u8,
24923        out_len: *mut usize,
24924    );
24925}
24926unsafe extern "C" {
24927    pub fn SSL_SESSION_is_resumable_across_names(session: *const SSL_SESSION)
24928        -> ::core::ffi::c_int;
24929}
24930unsafe extern "C" {
24931    pub fn SSL_CTX_set_session_cache_mode(
24932        ctx: *mut SSL_CTX,
24933        mode: ::core::ffi::c_int,
24934    ) -> ::core::ffi::c_int;
24935}
24936unsafe extern "C" {
24937    pub fn SSL_CTX_get_session_cache_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
24938}
24939unsafe extern "C" {
24940    pub fn SSL_set_session(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24941}
24942unsafe extern "C" {
24943    pub fn SSL_CTX_set_timeout(ctx: *mut SSL_CTX, timeout: u32) -> u32;
24944}
24945unsafe extern "C" {
24946    pub fn SSL_CTX_set_session_psk_dhe_timeout(ctx: *mut SSL_CTX, timeout: u32);
24947}
24948unsafe extern "C" {
24949    pub fn SSL_CTX_get_timeout(ctx: *const SSL_CTX) -> u32;
24950}
24951unsafe extern "C" {
24952    pub fn SSL_CTX_set_session_id_context(
24953        ctx: *mut SSL_CTX,
24954        sid_ctx: *const u8,
24955        sid_ctx_len: usize,
24956    ) -> ::core::ffi::c_int;
24957}
24958unsafe extern "C" {
24959    pub fn SSL_set_session_id_context(
24960        ssl: *mut SSL,
24961        sid_ctx: *const u8,
24962        sid_ctx_len: usize,
24963    ) -> ::core::ffi::c_int;
24964}
24965unsafe extern "C" {
24966    pub fn SSL_get0_session_id_context(ssl: *const SSL, out_len: *mut usize) -> *const u8;
24967}
24968unsafe extern "C" {
24969    pub fn SSL_CTX_sess_set_cache_size(
24970        ctx: *mut SSL_CTX,
24971        size: ::core::ffi::c_ulong,
24972    ) -> ::core::ffi::c_ulong;
24973}
24974unsafe extern "C" {
24975    pub fn SSL_CTX_sess_get_cache_size(ctx: *const SSL_CTX) -> ::core::ffi::c_ulong;
24976}
24977unsafe extern "C" {
24978    pub fn SSL_CTX_sess_number(ctx: *const SSL_CTX) -> usize;
24979}
24980unsafe extern "C" {
24981    pub fn SSL_CTX_add_session(ctx: *mut SSL_CTX, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24982}
24983unsafe extern "C" {
24984    pub fn SSL_CTX_remove_session(
24985        ctx: *mut SSL_CTX,
24986        session: *mut SSL_SESSION,
24987    ) -> ::core::ffi::c_int;
24988}
24989unsafe extern "C" {
24990    pub fn SSL_CTX_flush_sessions(ctx: *mut SSL_CTX, time: u64);
24991}
24992pub type SSL_new_session_cb = ::core::option::Option<
24993    unsafe extern "C" fn(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int,
24994>;
24995unsafe extern "C" {
24996    pub fn SSL_CTX_sess_set_new_cb(ctx: *mut SSL_CTX, new_session_cb: SSL_new_session_cb);
24997}
24998unsafe extern "C" {
24999    pub fn SSL_CTX_sess_get_new_cb(ctx: *mut SSL_CTX) -> SSL_new_session_cb;
25000}
25001pub type SSL_remove_session_cb =
25002    ::core::option::Option<unsafe extern "C" fn(ctx: *mut SSL_CTX, session: *mut SSL_SESSION)>;
25003unsafe extern "C" {
25004    pub fn SSL_CTX_sess_set_remove_cb(ctx: *mut SSL_CTX, remove_session_cb: SSL_remove_session_cb);
25005}
25006unsafe extern "C" {
25007    pub fn SSL_CTX_sess_get_remove_cb(ctx: *mut SSL_CTX) -> SSL_remove_session_cb;
25008}
25009pub type SSL_get_session_cb = ::core::option::Option<
25010    unsafe extern "C" fn(
25011        ssl: *mut SSL,
25012        id: *const u8,
25013        id_len: ::core::ffi::c_int,
25014        out_copy: *mut ::core::ffi::c_int,
25015    ) -> *mut SSL_SESSION,
25016>;
25017unsafe extern "C" {
25018    pub fn SSL_CTX_sess_set_get_cb(ctx: *mut SSL_CTX, get_session_cb: SSL_get_session_cb);
25019}
25020unsafe extern "C" {
25021    pub fn SSL_CTX_sess_get_get_cb(ctx: *mut SSL_CTX) -> SSL_get_session_cb;
25022}
25023unsafe extern "C" {
25024    pub fn SSL_magic_pending_session_ptr() -> *mut SSL_SESSION;
25025}
25026unsafe extern "C" {
25027    pub fn SSL_CTX_set_resumption_across_names_enabled(
25028        ctx: *mut SSL_CTX,
25029        enabled: ::core::ffi::c_int,
25030    );
25031}
25032unsafe extern "C" {
25033    pub fn SSL_set_resumption_across_names_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
25034}
25035unsafe extern "C" {
25036    pub fn SSL_CTX_get_tlsext_ticket_keys(
25037        ctx: *mut SSL_CTX,
25038        out: *mut ::core::ffi::c_void,
25039        len: usize,
25040    ) -> ::core::ffi::c_int;
25041}
25042unsafe extern "C" {
25043    pub fn SSL_CTX_set_tlsext_ticket_keys(
25044        ctx: *mut SSL_CTX,
25045        in_: *const ::core::ffi::c_void,
25046        len: usize,
25047    ) -> ::core::ffi::c_int;
25048}
25049unsafe extern "C" {
25050    pub fn SSL_CTX_set_tlsext_ticket_key_cb(
25051        ctx: *mut SSL_CTX,
25052        callback: ::core::option::Option<
25053            unsafe extern "C" fn(
25054                ssl: *mut SSL,
25055                key_name: *mut u8,
25056                iv: *mut u8,
25057                ctx: *mut EVP_CIPHER_CTX,
25058                hmac_ctx: *mut HMAC_CTX,
25059                encrypt: ::core::ffi::c_int,
25060            ) -> ::core::ffi::c_int,
25061        >,
25062    ) -> ::core::ffi::c_int;
25063}
25064pub const ssl_ticket_aead_result_t_ssl_ticket_aead_success: ssl_ticket_aead_result_t = 0;
25065pub const ssl_ticket_aead_result_t_ssl_ticket_aead_retry: ssl_ticket_aead_result_t = 1;
25066pub const ssl_ticket_aead_result_t_ssl_ticket_aead_ignore_ticket: ssl_ticket_aead_result_t = 2;
25067pub const ssl_ticket_aead_result_t_ssl_ticket_aead_error: ssl_ticket_aead_result_t = 3;
25068pub type ssl_ticket_aead_result_t = ::core::ffi::c_uint;
25069#[repr(C)]
25070#[derive(Debug, Copy, Clone)]
25071pub struct ssl_ticket_aead_method_st {
25072    pub max_overhead: ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> usize>,
25073    pub seal: ::core::option::Option<
25074        unsafe extern "C" fn(
25075            ssl: *mut SSL,
25076            out: *mut u8,
25077            out_len: *mut usize,
25078            max_out_len: usize,
25079            in_: *const u8,
25080            in_len: usize,
25081        ) -> ::core::ffi::c_int,
25082    >,
25083    pub open: ::core::option::Option<
25084        unsafe extern "C" fn(
25085            ssl: *mut SSL,
25086            out: *mut u8,
25087            out_len: *mut usize,
25088            max_out_len: usize,
25089            in_: *const u8,
25090            in_len: usize,
25091        ) -> ssl_ticket_aead_result_t,
25092    >,
25093}
25094unsafe extern "C" {
25095    pub fn SSL_CTX_set_ticket_aead_method(
25096        ctx: *mut SSL_CTX,
25097        aead_method: *const SSL_TICKET_AEAD_METHOD,
25098    );
25099}
25100unsafe extern "C" {
25101    pub fn SSL_process_tls13_new_session_ticket(
25102        ssl: *mut SSL,
25103        buf: *const u8,
25104        buf_len: usize,
25105    ) -> *mut SSL_SESSION;
25106}
25107unsafe extern "C" {
25108    pub fn SSL_CTX_set_num_tickets(ctx: *mut SSL_CTX, num_tickets: usize) -> ::core::ffi::c_int;
25109}
25110unsafe extern "C" {
25111    pub fn SSL_CTX_get_num_tickets(ctx: *const SSL_CTX) -> usize;
25112}
25113unsafe extern "C" {
25114    pub fn SSL_CTX_set1_group_ids(
25115        ctx: *mut SSL_CTX,
25116        group_ids: *const u16,
25117        num_group_ids: usize,
25118    ) -> ::core::ffi::c_int;
25119}
25120unsafe extern "C" {
25121    pub fn SSL_set1_group_ids(
25122        ssl: *mut SSL,
25123        group_ids: *const u16,
25124        num_group_ids: usize,
25125    ) -> ::core::ffi::c_int;
25126}
25127unsafe extern "C" {
25128    pub fn SSL_CTX_set1_group_ids_with_flags(
25129        ctx: *mut SSL_CTX,
25130        group_ids: *const u16,
25131        flags: *const u32,
25132        num_group_ids: usize,
25133    ) -> ::core::ffi::c_int;
25134}
25135unsafe extern "C" {
25136    pub fn SSL_set1_group_ids_with_flags(
25137        ssl: *mut SSL,
25138        group_ids: *const u16,
25139        flags: *const u32,
25140        num_group_ids: usize,
25141    ) -> ::core::ffi::c_int;
25142}
25143unsafe extern "C" {
25144    pub fn SSL_get_group_id(ssl: *const SSL) -> u16;
25145}
25146unsafe extern "C" {
25147    pub fn SSL_get_group_name(group_id: u16) -> *const ::core::ffi::c_char;
25148}
25149unsafe extern "C" {
25150    pub fn SSL_get_all_group_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
25151}
25152unsafe extern "C" {
25153    pub fn SSL_CTX_set1_groups(
25154        ctx: *mut SSL_CTX,
25155        groups: *const ::core::ffi::c_int,
25156        num_groups: usize,
25157    ) -> ::core::ffi::c_int;
25158}
25159unsafe extern "C" {
25160    pub fn SSL_set1_groups(
25161        ssl: *mut SSL,
25162        groups: *const ::core::ffi::c_int,
25163        num_groups: usize,
25164    ) -> ::core::ffi::c_int;
25165}
25166unsafe extern "C" {
25167    pub fn SSL_CTX_set1_groups_list(
25168        ctx: *mut SSL_CTX,
25169        groups: *const ::core::ffi::c_char,
25170    ) -> ::core::ffi::c_int;
25171}
25172unsafe extern "C" {
25173    pub fn SSL_set1_groups_list(
25174        ssl: *mut SSL,
25175        groups: *const ::core::ffi::c_char,
25176    ) -> ::core::ffi::c_int;
25177}
25178unsafe extern "C" {
25179    pub fn SSL_get_negotiated_group(ssl: *const SSL) -> ::core::ffi::c_int;
25180}
25181unsafe extern "C" {
25182    pub fn SSL_set1_client_key_shares(
25183        ssl: *mut SSL,
25184        group_ids: *const u16,
25185        num_group_ids: usize,
25186    ) -> ::core::ffi::c_int;
25187}
25188unsafe extern "C" {
25189    pub fn SSL_set1_server_supported_groups_hint(
25190        ssl: *mut SSL,
25191        server_groups: *const u16,
25192        num_server_groups: usize,
25193    ) -> ::core::ffi::c_int;
25194}
25195unsafe extern "C" {
25196    pub fn SSL_CTX_set_verify(
25197        ctx: *mut SSL_CTX,
25198        mode: ::core::ffi::c_int,
25199        callback: ::core::option::Option<
25200            unsafe extern "C" fn(
25201                ok: ::core::ffi::c_int,
25202                store_ctx: *mut X509_STORE_CTX,
25203            ) -> ::core::ffi::c_int,
25204        >,
25205    );
25206}
25207unsafe extern "C" {
25208    pub fn SSL_set_verify(
25209        ssl: *mut SSL,
25210        mode: ::core::ffi::c_int,
25211        callback: ::core::option::Option<
25212            unsafe extern "C" fn(
25213                ok: ::core::ffi::c_int,
25214                store_ctx: *mut X509_STORE_CTX,
25215            ) -> ::core::ffi::c_int,
25216        >,
25217    );
25218}
25219pub const ssl_verify_result_t_ssl_verify_ok: ssl_verify_result_t = 0;
25220pub const ssl_verify_result_t_ssl_verify_invalid: ssl_verify_result_t = 1;
25221pub const ssl_verify_result_t_ssl_verify_retry: ssl_verify_result_t = 2;
25222pub type ssl_verify_result_t = ::core::ffi::c_uint;
25223unsafe extern "C" {
25224    pub fn SSL_CTX_set_custom_verify(
25225        ctx: *mut SSL_CTX,
25226        mode: ::core::ffi::c_int,
25227        callback: ::core::option::Option<
25228            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
25229        >,
25230    );
25231}
25232unsafe extern "C" {
25233    pub fn SSL_set_custom_verify(
25234        ssl: *mut SSL,
25235        mode: ::core::ffi::c_int,
25236        callback: ::core::option::Option<
25237            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
25238        >,
25239    );
25240}
25241unsafe extern "C" {
25242    pub fn SSL_CTX_get_verify_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
25243}
25244unsafe extern "C" {
25245    pub fn SSL_get_verify_mode(ssl: *const SSL) -> ::core::ffi::c_int;
25246}
25247unsafe extern "C" {
25248    pub fn SSL_CTX_get_verify_callback(
25249        ctx: *const SSL_CTX,
25250    ) -> ::core::option::Option<
25251        unsafe extern "C" fn(
25252            ctx: ::core::ffi::c_int,
25253            arg1: *mut X509_STORE_CTX,
25254        ) -> ::core::ffi::c_int,
25255    >;
25256}
25257unsafe extern "C" {
25258    pub fn SSL_get_verify_callback(
25259        ssl: *const SSL,
25260    ) -> ::core::option::Option<
25261        unsafe extern "C" fn(
25262            ssl: ::core::ffi::c_int,
25263            arg1: *mut X509_STORE_CTX,
25264        ) -> ::core::ffi::c_int,
25265    >;
25266}
25267unsafe extern "C" {
25268    pub fn SSL_set1_host(ssl: *mut SSL, hostname: *const ::core::ffi::c_char)
25269        -> ::core::ffi::c_int;
25270}
25271unsafe extern "C" {
25272    pub fn SSL_set_hostflags(ssl: *mut SSL, flags: ::core::ffi::c_uint);
25273}
25274unsafe extern "C" {
25275    pub fn SSL_CTX_set_verify_depth(ctx: *mut SSL_CTX, depth: ::core::ffi::c_int);
25276}
25277unsafe extern "C" {
25278    pub fn SSL_set_verify_depth(ssl: *mut SSL, depth: ::core::ffi::c_int);
25279}
25280unsafe extern "C" {
25281    pub fn SSL_CTX_get_verify_depth(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
25282}
25283unsafe extern "C" {
25284    pub fn SSL_get_verify_depth(ssl: *const SSL) -> ::core::ffi::c_int;
25285}
25286unsafe extern "C" {
25287    pub fn SSL_CTX_set1_param(
25288        ctx: *mut SSL_CTX,
25289        param: *const X509_VERIFY_PARAM,
25290    ) -> ::core::ffi::c_int;
25291}
25292unsafe extern "C" {
25293    pub fn SSL_set1_param(ssl: *mut SSL, param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
25294}
25295unsafe extern "C" {
25296    pub fn SSL_CTX_get0_param(ctx: *mut SSL_CTX) -> *mut X509_VERIFY_PARAM;
25297}
25298unsafe extern "C" {
25299    pub fn SSL_get0_param(ssl: *mut SSL) -> *mut X509_VERIFY_PARAM;
25300}
25301unsafe extern "C" {
25302    pub fn SSL_CTX_set_purpose(
25303        ctx: *mut SSL_CTX,
25304        purpose: ::core::ffi::c_int,
25305    ) -> ::core::ffi::c_int;
25306}
25307unsafe extern "C" {
25308    pub fn SSL_set_purpose(ssl: *mut SSL, purpose: ::core::ffi::c_int) -> ::core::ffi::c_int;
25309}
25310unsafe extern "C" {
25311    pub fn SSL_CTX_set_trust(ctx: *mut SSL_CTX, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
25312}
25313unsafe extern "C" {
25314    pub fn SSL_set_trust(ssl: *mut SSL, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
25315}
25316unsafe extern "C" {
25317    pub fn SSL_CTX_set_cert_store(ctx: *mut SSL_CTX, store: *mut X509_STORE);
25318}
25319unsafe extern "C" {
25320    pub fn SSL_CTX_get_cert_store(ctx: *const SSL_CTX) -> *mut X509_STORE;
25321}
25322unsafe extern "C" {
25323    pub fn SSL_CTX_set_default_verify_paths(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
25324}
25325unsafe extern "C" {
25326    pub fn SSL_CTX_load_verify_locations(
25327        ctx: *mut SSL_CTX,
25328        ca_file: *const ::core::ffi::c_char,
25329        ca_dir: *const ::core::ffi::c_char,
25330    ) -> ::core::ffi::c_int;
25331}
25332unsafe extern "C" {
25333    pub fn SSL_get_verify_result(ssl: *const SSL) -> ::core::ffi::c_long;
25334}
25335unsafe extern "C" {
25336    pub fn SSL_alert_from_verify_result(result: ::core::ffi::c_long) -> ::core::ffi::c_int;
25337}
25338unsafe extern "C" {
25339    pub fn SSL_get_ex_data_X509_STORE_CTX_idx() -> ::core::ffi::c_int;
25340}
25341unsafe extern "C" {
25342    pub fn SSL_CTX_set_cert_verify_callback(
25343        ctx: *mut SSL_CTX,
25344        callback: ::core::option::Option<
25345            unsafe extern "C" fn(
25346                store_ctx: *mut X509_STORE_CTX,
25347                arg: *mut ::core::ffi::c_void,
25348            ) -> ::core::ffi::c_int,
25349        >,
25350        arg: *mut ::core::ffi::c_void,
25351    );
25352}
25353unsafe extern "C" {
25354    pub fn SSL_enable_signed_cert_timestamps(ssl: *mut SSL);
25355}
25356unsafe extern "C" {
25357    pub fn SSL_CTX_enable_signed_cert_timestamps(ctx: *mut SSL_CTX);
25358}
25359unsafe extern "C" {
25360    pub fn SSL_enable_ocsp_stapling(ssl: *mut SSL);
25361}
25362unsafe extern "C" {
25363    pub fn SSL_CTX_enable_ocsp_stapling(ctx: *mut SSL_CTX);
25364}
25365unsafe extern "C" {
25366    pub fn SSL_CTX_set0_verify_cert_store(
25367        ctx: *mut SSL_CTX,
25368        store: *mut X509_STORE,
25369    ) -> ::core::ffi::c_int;
25370}
25371unsafe extern "C" {
25372    pub fn SSL_CTX_set1_verify_cert_store(
25373        ctx: *mut SSL_CTX,
25374        store: *mut X509_STORE,
25375    ) -> ::core::ffi::c_int;
25376}
25377unsafe extern "C" {
25378    pub fn SSL_set0_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25379}
25380unsafe extern "C" {
25381    pub fn SSL_set1_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25382}
25383unsafe extern "C" {
25384    pub fn SSL_CTX_set_verify_algorithm_prefs(
25385        ctx: *mut SSL_CTX,
25386        prefs: *const u16,
25387        num_prefs: usize,
25388    ) -> ::core::ffi::c_int;
25389}
25390unsafe extern "C" {
25391    pub fn SSL_set_verify_algorithm_prefs(
25392        ssl: *mut SSL,
25393        prefs: *const u16,
25394        num_prefs: usize,
25395    ) -> ::core::ffi::c_int;
25396}
25397unsafe extern "C" {
25398    pub fn SSL_set_client_CA_list(ssl: *mut SSL, name_list: *mut stack_st_X509_NAME);
25399}
25400unsafe extern "C" {
25401    pub fn SSL_CTX_set_client_CA_list(ctx: *mut SSL_CTX, name_list: *mut stack_st_X509_NAME);
25402}
25403unsafe extern "C" {
25404    pub fn SSL_set0_client_CAs(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25405}
25406unsafe extern "C" {
25407    pub fn SSL_set0_CA_names(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25408}
25409unsafe extern "C" {
25410    pub fn SSL_CTX_set0_client_CAs(ctx: *mut SSL_CTX, name_list: *mut stack_st_CRYPTO_BUFFER);
25411}
25412unsafe extern "C" {
25413    pub fn SSL_get_client_CA_list(ssl: *const SSL) -> *mut stack_st_X509_NAME;
25414}
25415unsafe extern "C" {
25416    pub fn SSL_get0_server_requested_CAs(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
25417}
25418unsafe extern "C" {
25419    pub fn SSL_CTX_get_client_CA_list(ctx: *const SSL_CTX) -> *mut stack_st_X509_NAME;
25420}
25421unsafe extern "C" {
25422    pub fn SSL_add_client_CA(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
25423}
25424unsafe extern "C" {
25425    pub fn SSL_CTX_add_client_CA(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
25426}
25427unsafe extern "C" {
25428    pub fn SSL_load_client_CA_file(file: *const ::core::ffi::c_char) -> *mut stack_st_X509_NAME;
25429}
25430unsafe extern "C" {
25431    pub fn SSL_dup_CA_list(list: *mut stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
25432}
25433unsafe extern "C" {
25434    pub fn SSL_add_file_cert_subjects_to_stack(
25435        out: *mut stack_st_X509_NAME,
25436        file: *const ::core::ffi::c_char,
25437    ) -> ::core::ffi::c_int;
25438}
25439unsafe extern "C" {
25440    pub fn SSL_add_bio_cert_subjects_to_stack(
25441        out: *mut stack_st_X509_NAME,
25442        bio: *mut BIO,
25443    ) -> ::core::ffi::c_int;
25444}
25445unsafe extern "C" {
25446    pub fn SSL_CREDENTIAL_set1_trust_anchor_id(
25447        cred: *mut SSL_CREDENTIAL,
25448        id: *const u8,
25449        id_len: usize,
25450    ) -> ::core::ffi::c_int;
25451}
25452unsafe extern "C" {
25453    pub fn SSL_CREDENTIAL_add1_trust_anchor_group(
25454        cred: *mut SSL_CREDENTIAL,
25455        pattern: *const u8,
25456        pattern_len: usize,
25457    ) -> ::core::ffi::c_int;
25458}
25459unsafe extern "C" {
25460    pub fn SSL_CTX_set1_requested_trust_anchors(
25461        ctx: *mut SSL_CTX,
25462        ids: *const u8,
25463        ids_len: usize,
25464    ) -> ::core::ffi::c_int;
25465}
25466unsafe extern "C" {
25467    pub fn SSL_set1_requested_trust_anchors(
25468        ssl: *mut SSL,
25469        ids: *const u8,
25470        ids_len: usize,
25471    ) -> ::core::ffi::c_int;
25472}
25473unsafe extern "C" {
25474    pub fn SSL_peer_matched_trust_anchor(ssl: *const SSL) -> ::core::ffi::c_int;
25475}
25476unsafe extern "C" {
25477    pub fn SSL_get0_peer_available_trust_anchors(
25478        ssl: *const SSL,
25479        out: *mut *const u8,
25480        out_len: *mut usize,
25481    );
25482}
25483unsafe extern "C" {
25484    pub fn SSL_CTX_set1_available_trust_anchors(
25485        ctx: *mut SSL_CTX,
25486        ids: *const u8,
25487        ids_len: usize,
25488    ) -> ::core::ffi::c_int;
25489}
25490unsafe extern "C" {
25491    pub fn SSL_set1_available_trust_anchors(
25492        ssl: *mut SSL,
25493        ids: *const u8,
25494        ids_len: usize,
25495    ) -> ::core::ffi::c_int;
25496}
25497unsafe extern "C" {
25498    pub fn SSL_set_tlsext_host_name(
25499        ssl: *mut SSL,
25500        name: *const ::core::ffi::c_char,
25501    ) -> ::core::ffi::c_int;
25502}
25503unsafe extern "C" {
25504    pub fn SSL_get_servername(
25505        ssl: *const SSL,
25506        type_: ::core::ffi::c_int,
25507    ) -> *const ::core::ffi::c_char;
25508}
25509unsafe extern "C" {
25510    pub fn SSL_get_servername_type(ssl: *const SSL) -> ::core::ffi::c_int;
25511}
25512unsafe extern "C" {
25513    pub fn SSL_CTX_set_tlsext_servername_callback(
25514        ctx: *mut SSL_CTX,
25515        callback: ::core::option::Option<
25516            unsafe extern "C" fn(
25517                ssl: *mut SSL,
25518                out_alert: *mut ::core::ffi::c_int,
25519                arg: *mut ::core::ffi::c_void,
25520            ) -> ::core::ffi::c_int,
25521        >,
25522    ) -> ::core::ffi::c_int;
25523}
25524unsafe extern "C" {
25525    pub fn SSL_CTX_set_tlsext_servername_arg(
25526        ctx: *mut SSL_CTX,
25527        arg: *mut ::core::ffi::c_void,
25528    ) -> ::core::ffi::c_int;
25529}
25530unsafe extern "C" {
25531    pub fn SSL_set_SSL_CTX(ssl: *mut SSL, ctx: *mut SSL_CTX) -> *mut SSL_CTX;
25532}
25533unsafe extern "C" {
25534    pub fn SSL_CTX_set_alpn_protos(
25535        ctx: *mut SSL_CTX,
25536        protos: *const u8,
25537        protos_len: usize,
25538    ) -> ::core::ffi::c_int;
25539}
25540unsafe extern "C" {
25541    pub fn SSL_set_alpn_protos(
25542        ssl: *mut SSL,
25543        protos: *const u8,
25544        protos_len: usize,
25545    ) -> ::core::ffi::c_int;
25546}
25547unsafe extern "C" {
25548    pub fn SSL_CTX_set_alpn_select_cb(
25549        ctx: *mut SSL_CTX,
25550        cb: ::core::option::Option<
25551            unsafe extern "C" fn(
25552                ssl: *mut SSL,
25553                out: *mut *const u8,
25554                out_len: *mut u8,
25555                in_: *const u8,
25556                in_len: ::core::ffi::c_uint,
25557                arg: *mut ::core::ffi::c_void,
25558            ) -> ::core::ffi::c_int,
25559        >,
25560        arg: *mut ::core::ffi::c_void,
25561    );
25562}
25563unsafe extern "C" {
25564    pub fn SSL_get0_alpn_selected(
25565        ssl: *const SSL,
25566        out_data: *mut *const u8,
25567        out_len: *mut ::core::ffi::c_uint,
25568    );
25569}
25570unsafe extern "C" {
25571    pub fn SSL_CTX_set_allow_unknown_alpn_protos(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25572}
25573unsafe extern "C" {
25574    pub fn SSL_add_application_settings(
25575        ssl: *mut SSL,
25576        proto: *const u8,
25577        proto_len: usize,
25578        settings: *const u8,
25579        settings_len: usize,
25580    ) -> ::core::ffi::c_int;
25581}
25582unsafe extern "C" {
25583    pub fn SSL_get0_peer_application_settings(
25584        ssl: *const SSL,
25585        out_data: *mut *const u8,
25586        out_len: *mut usize,
25587    );
25588}
25589unsafe extern "C" {
25590    pub fn SSL_has_application_settings(ssl: *const SSL) -> ::core::ffi::c_int;
25591}
25592unsafe extern "C" {
25593    pub fn SSL_set_alps_use_new_codepoint(ssl: *mut SSL, use_new: ::core::ffi::c_int);
25594}
25595pub type ssl_cert_compression_func_t = ::core::option::Option<
25596    unsafe extern "C" fn(
25597        ssl: *mut SSL,
25598        out: *mut CBB,
25599        in_: *const u8,
25600        in_len: usize,
25601    ) -> ::core::ffi::c_int,
25602>;
25603pub type ssl_cert_decompression_func_t = ::core::option::Option<
25604    unsafe extern "C" fn(
25605        ssl: *mut SSL,
25606        out: *mut *mut CRYPTO_BUFFER,
25607        uncompressed_len: usize,
25608        in_: *const u8,
25609        in_len: usize,
25610    ) -> ::core::ffi::c_int,
25611>;
25612unsafe extern "C" {
25613    pub fn SSL_CTX_add_cert_compression_alg(
25614        ctx: *mut SSL_CTX,
25615        alg_id: u16,
25616        compress: ssl_cert_compression_func_t,
25617        decompress: ssl_cert_decompression_func_t,
25618    ) -> ::core::ffi::c_int;
25619}
25620unsafe extern "C" {
25621    pub fn SSL_CTX_set_next_protos_advertised_cb(
25622        ctx: *mut SSL_CTX,
25623        cb: ::core::option::Option<
25624            unsafe extern "C" fn(
25625                ssl: *mut SSL,
25626                out: *mut *const u8,
25627                out_len: *mut ::core::ffi::c_uint,
25628                arg: *mut ::core::ffi::c_void,
25629            ) -> ::core::ffi::c_int,
25630        >,
25631        arg: *mut ::core::ffi::c_void,
25632    );
25633}
25634unsafe extern "C" {
25635    pub fn SSL_CTX_set_next_proto_select_cb(
25636        ctx: *mut SSL_CTX,
25637        cb: ::core::option::Option<
25638            unsafe extern "C" fn(
25639                ssl: *mut SSL,
25640                out: *mut *mut u8,
25641                out_len: *mut u8,
25642                in_: *const u8,
25643                in_len: ::core::ffi::c_uint,
25644                arg: *mut ::core::ffi::c_void,
25645            ) -> ::core::ffi::c_int,
25646        >,
25647        arg: *mut ::core::ffi::c_void,
25648    );
25649}
25650unsafe extern "C" {
25651    pub fn SSL_get0_next_proto_negotiated(
25652        ssl: *const SSL,
25653        out_data: *mut *const u8,
25654        out_len: *mut ::core::ffi::c_uint,
25655    );
25656}
25657unsafe extern "C" {
25658    pub fn SSL_select_next_proto(
25659        out: *mut *mut u8,
25660        out_len: *mut u8,
25661        peer: *const u8,
25662        peer_len: ::core::ffi::c_uint,
25663        supported: *const u8,
25664        supported_len: ::core::ffi::c_uint,
25665    ) -> ::core::ffi::c_int;
25666}
25667unsafe extern "C" {
25668    pub fn SSL_CTX_set_tls_channel_id_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25669}
25670unsafe extern "C" {
25671    pub fn SSL_set_tls_channel_id_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
25672}
25673unsafe extern "C" {
25674    pub fn SSL_CTX_set1_tls_channel_id(
25675        ctx: *mut SSL_CTX,
25676        private_key: *mut EVP_PKEY,
25677    ) -> ::core::ffi::c_int;
25678}
25679unsafe extern "C" {
25680    pub fn SSL_set1_tls_channel_id(ssl: *mut SSL, private_key: *mut EVP_PKEY)
25681        -> ::core::ffi::c_int;
25682}
25683unsafe extern "C" {
25684    pub fn SSL_get_tls_channel_id(ssl: *mut SSL, out: *mut u8, max_out: usize) -> usize;
25685}
25686#[repr(C)]
25687#[derive(Debug, Copy, Clone)]
25688pub struct srtp_protection_profile_st {
25689    pub name: *const ::core::ffi::c_char,
25690    pub id: ::core::ffi::c_ulong,
25691}
25692#[repr(C)]
25693#[derive(Debug)]
25694pub struct stack_st_SRTP_PROTECTION_PROFILE {
25695    _unused: [u8; 0],
25696}
25697pub type sk_SRTP_PROTECTION_PROFILE_free_func =
25698    ::core::option::Option<unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE)>;
25699pub type sk_SRTP_PROTECTION_PROFILE_copy_func = ::core::option::Option<
25700    unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE) -> *const SRTP_PROTECTION_PROFILE,
25701>;
25702pub type sk_SRTP_PROTECTION_PROFILE_cmp_func = ::core::option::Option<
25703    unsafe extern "C" fn(
25704        arg1: *const *const SRTP_PROTECTION_PROFILE,
25705        arg2: *const *const SRTP_PROTECTION_PROFILE,
25706    ) -> ::core::ffi::c_int,
25707>;
25708pub type sk_SRTP_PROTECTION_PROFILE_delete_if_func = ::core::option::Option<
25709    unsafe extern "C" fn(
25710        arg1: *const SRTP_PROTECTION_PROFILE,
25711        arg2: *mut ::core::ffi::c_void,
25712    ) -> ::core::ffi::c_int,
25713>;
25714unsafe extern "C" {
25715    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_free_func__extern"]
25716    pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(
25717        free_func: OPENSSL_sk_free_func,
25718        ptr: *mut ::core::ffi::c_void,
25719    );
25720}
25721unsafe extern "C" {
25722    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_copy_func__extern"]
25723    pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(
25724        copy_func: OPENSSL_sk_copy_func,
25725        ptr: *const ::core::ffi::c_void,
25726    ) -> *mut ::core::ffi::c_void;
25727}
25728unsafe extern "C" {
25729    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_cmp_func__extern"]
25730    pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(
25731        cmp_func: OPENSSL_sk_cmp_func,
25732        a: *const ::core::ffi::c_void,
25733        b: *const ::core::ffi::c_void,
25734    ) -> ::core::ffi::c_int;
25735}
25736unsafe extern "C" {
25737    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_delete_if_func__extern"]
25738    pub fn sk_SRTP_PROTECTION_PROFILE_call_delete_if_func(
25739        func: OPENSSL_sk_delete_if_func,
25740        obj: *mut ::core::ffi::c_void,
25741        data: *mut ::core::ffi::c_void,
25742    ) -> ::core::ffi::c_int;
25743}
25744unsafe extern "C" {
25745    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new__extern"]
25746    pub fn sk_SRTP_PROTECTION_PROFILE_new(
25747        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25748    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25749}
25750unsafe extern "C" {
25751    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new_null__extern"]
25752    pub fn sk_SRTP_PROTECTION_PROFILE_new_null() -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25753}
25754unsafe extern "C" {
25755    #[link_name = "sk_SRTP_PROTECTION_PROFILE_num__extern"]
25756    pub fn sk_SRTP_PROTECTION_PROFILE_num(sk: *const stack_st_SRTP_PROTECTION_PROFILE) -> usize;
25757}
25758unsafe extern "C" {
25759    #[link_name = "sk_SRTP_PROTECTION_PROFILE_zero__extern"]
25760    pub fn sk_SRTP_PROTECTION_PROFILE_zero(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25761}
25762unsafe extern "C" {
25763    #[link_name = "sk_SRTP_PROTECTION_PROFILE_value__extern"]
25764    pub fn sk_SRTP_PROTECTION_PROFILE_value(
25765        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25766        i: usize,
25767    ) -> *const SRTP_PROTECTION_PROFILE;
25768}
25769unsafe extern "C" {
25770    #[link_name = "sk_SRTP_PROTECTION_PROFILE_last__extern"]
25771    pub fn sk_SRTP_PROTECTION_PROFILE_last(
25772        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25773    ) -> *const SRTP_PROTECTION_PROFILE;
25774}
25775unsafe extern "C" {
25776    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set__extern"]
25777    pub fn sk_SRTP_PROTECTION_PROFILE_set(
25778        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25779        i: usize,
25780        p: *const SRTP_PROTECTION_PROFILE,
25781    ) -> *const SRTP_PROTECTION_PROFILE;
25782}
25783unsafe extern "C" {
25784    #[link_name = "sk_SRTP_PROTECTION_PROFILE_free__extern"]
25785    pub fn sk_SRTP_PROTECTION_PROFILE_free(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25786}
25787unsafe extern "C" {
25788    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop_free__extern"]
25789    pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(
25790        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25791        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25792    );
25793}
25794unsafe extern "C" {
25795    #[link_name = "sk_SRTP_PROTECTION_PROFILE_insert__extern"]
25796    pub fn sk_SRTP_PROTECTION_PROFILE_insert(
25797        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25798        p: *const SRTP_PROTECTION_PROFILE,
25799        where_: usize,
25800    ) -> usize;
25801}
25802unsafe extern "C" {
25803    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete__extern"]
25804    pub fn sk_SRTP_PROTECTION_PROFILE_delete(
25805        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25806        where_: usize,
25807    ) -> *const SRTP_PROTECTION_PROFILE;
25808}
25809unsafe extern "C" {
25810    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_ptr__extern"]
25811    pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(
25812        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25813        p: *const SRTP_PROTECTION_PROFILE,
25814    ) -> *const SRTP_PROTECTION_PROFILE;
25815}
25816unsafe extern "C" {
25817    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_if__extern"]
25818    pub fn sk_SRTP_PROTECTION_PROFILE_delete_if(
25819        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25820        func: sk_SRTP_PROTECTION_PROFILE_delete_if_func,
25821        data: *mut ::core::ffi::c_void,
25822    );
25823}
25824unsafe extern "C" {
25825    #[link_name = "sk_SRTP_PROTECTION_PROFILE_find__extern"]
25826    pub fn sk_SRTP_PROTECTION_PROFILE_find(
25827        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25828        out_index: *mut usize,
25829        p: *const SRTP_PROTECTION_PROFILE,
25830    ) -> ::core::ffi::c_int;
25831}
25832unsafe extern "C" {
25833    #[link_name = "sk_SRTP_PROTECTION_PROFILE_shift__extern"]
25834    pub fn sk_SRTP_PROTECTION_PROFILE_shift(
25835        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25836    ) -> *const SRTP_PROTECTION_PROFILE;
25837}
25838unsafe extern "C" {
25839    #[link_name = "sk_SRTP_PROTECTION_PROFILE_push__extern"]
25840    pub fn sk_SRTP_PROTECTION_PROFILE_push(
25841        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25842        p: *const SRTP_PROTECTION_PROFILE,
25843    ) -> usize;
25844}
25845unsafe extern "C" {
25846    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop__extern"]
25847    pub fn sk_SRTP_PROTECTION_PROFILE_pop(
25848        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25849    ) -> *const SRTP_PROTECTION_PROFILE;
25850}
25851unsafe extern "C" {
25852    #[link_name = "sk_SRTP_PROTECTION_PROFILE_dup__extern"]
25853    pub fn sk_SRTP_PROTECTION_PROFILE_dup(
25854        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25855    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25856}
25857unsafe extern "C" {
25858    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort__extern"]
25859    pub fn sk_SRTP_PROTECTION_PROFILE_sort(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25860}
25861unsafe extern "C" {
25862    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort_and_dedup__extern"]
25863    pub fn sk_SRTP_PROTECTION_PROFILE_sort_and_dedup(
25864        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25865        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25866    );
25867}
25868unsafe extern "C" {
25869    #[link_name = "sk_SRTP_PROTECTION_PROFILE_is_sorted__extern"]
25870    pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(
25871        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25872    ) -> ::core::ffi::c_int;
25873}
25874unsafe extern "C" {
25875    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set_cmp_func__extern"]
25876    pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(
25877        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25878        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25879    ) -> sk_SRTP_PROTECTION_PROFILE_cmp_func;
25880}
25881unsafe extern "C" {
25882    #[link_name = "sk_SRTP_PROTECTION_PROFILE_deep_copy__extern"]
25883    pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(
25884        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25885        copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func,
25886        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25887    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25888}
25889unsafe extern "C" {
25890    pub fn SSL_CTX_set_srtp_profiles(
25891        ctx: *mut SSL_CTX,
25892        profiles: *const ::core::ffi::c_char,
25893    ) -> ::core::ffi::c_int;
25894}
25895unsafe extern "C" {
25896    pub fn SSL_set_srtp_profiles(
25897        ssl: *mut SSL,
25898        profiles: *const ::core::ffi::c_char,
25899    ) -> ::core::ffi::c_int;
25900}
25901unsafe extern "C" {
25902    pub fn SSL_get_srtp_profiles(ssl: *const SSL) -> *const stack_st_SRTP_PROTECTION_PROFILE;
25903}
25904unsafe extern "C" {
25905    pub fn SSL_get_selected_srtp_profile(ssl: *mut SSL) -> *const SRTP_PROTECTION_PROFILE;
25906}
25907unsafe extern "C" {
25908    pub fn SSL_CREDENTIAL_new_pre_shared_key(
25909        key: *const u8,
25910        key_len: usize,
25911        id: *const u8,
25912        id_len: usize,
25913        md: *const EVP_MD,
25914        context: *const u8,
25915        context_len: usize,
25916    ) -> *mut SSL_CREDENTIAL;
25917}
25918unsafe extern "C" {
25919    pub fn SSL_CREDENTIAL_get0_pre_shared_key_id(
25920        cred: *const SSL_CREDENTIAL,
25921        id_len: *mut usize,
25922    ) -> *const u8;
25923}
25924unsafe extern "C" {
25925    pub fn SSL_CTX_set_psk_client_callback(
25926        ctx: *mut SSL_CTX,
25927        cb: ::core::option::Option<
25928            unsafe extern "C" fn(
25929                ssl: *mut SSL,
25930                hint: *const ::core::ffi::c_char,
25931                identity: *mut ::core::ffi::c_char,
25932                max_identity_len: ::core::ffi::c_uint,
25933                psk: *mut u8,
25934                max_psk_len: ::core::ffi::c_uint,
25935            ) -> ::core::ffi::c_uint,
25936        >,
25937    );
25938}
25939unsafe extern "C" {
25940    pub fn SSL_set_psk_client_callback(
25941        ssl: *mut SSL,
25942        cb: ::core::option::Option<
25943            unsafe extern "C" fn(
25944                ssl: *mut SSL,
25945                hint: *const ::core::ffi::c_char,
25946                identity: *mut ::core::ffi::c_char,
25947                max_identity_len: ::core::ffi::c_uint,
25948                psk: *mut u8,
25949                max_psk_len: ::core::ffi::c_uint,
25950            ) -> ::core::ffi::c_uint,
25951        >,
25952    );
25953}
25954unsafe extern "C" {
25955    pub fn SSL_CTX_set_psk_server_callback(
25956        ctx: *mut SSL_CTX,
25957        cb: ::core::option::Option<
25958            unsafe extern "C" fn(
25959                ssl: *mut SSL,
25960                identity: *const ::core::ffi::c_char,
25961                psk: *mut u8,
25962                max_psk_len: ::core::ffi::c_uint,
25963            ) -> ::core::ffi::c_uint,
25964        >,
25965    );
25966}
25967unsafe extern "C" {
25968    pub fn SSL_set_psk_server_callback(
25969        ssl: *mut SSL,
25970        cb: ::core::option::Option<
25971            unsafe extern "C" fn(
25972                ssl: *mut SSL,
25973                identity: *const ::core::ffi::c_char,
25974                psk: *mut u8,
25975                max_psk_len: ::core::ffi::c_uint,
25976            ) -> ::core::ffi::c_uint,
25977        >,
25978    );
25979}
25980unsafe extern "C" {
25981    pub fn SSL_CTX_use_psk_identity_hint(
25982        ctx: *mut SSL_CTX,
25983        identity_hint: *const ::core::ffi::c_char,
25984    ) -> ::core::ffi::c_int;
25985}
25986unsafe extern "C" {
25987    pub fn SSL_use_psk_identity_hint(
25988        ssl: *mut SSL,
25989        identity_hint: *const ::core::ffi::c_char,
25990    ) -> ::core::ffi::c_int;
25991}
25992unsafe extern "C" {
25993    pub fn SSL_get_psk_identity_hint(ssl: *const SSL) -> *const ::core::ffi::c_char;
25994}
25995unsafe extern "C" {
25996    pub fn SSL_get_psk_identity(ssl: *const SSL) -> *const ::core::ffi::c_char;
25997}
25998unsafe extern "C" {
25999    pub fn SSL_CREDENTIAL_new_delegated() -> *mut SSL_CREDENTIAL;
26000}
26001unsafe extern "C" {
26002    pub fn SSL_CREDENTIAL_set1_delegated_credential(
26003        cred: *mut SSL_CREDENTIAL,
26004        dc: *mut CRYPTO_BUFFER,
26005    ) -> ::core::ffi::c_int;
26006}
26007unsafe extern "C" {
26008    pub fn SSL_CREDENTIAL_new_raw_public_key(pkey: *mut EVP_PKEY) -> *mut SSL_CREDENTIAL;
26009}
26010unsafe extern "C" {
26011    pub fn SSL_CREDENTIAL_new_raw_public_key_custom(
26012        pubkey: *mut EVP_PKEY,
26013        method: *const SSL_PRIVATE_KEY_METHOD,
26014    ) -> *mut SSL_CREDENTIAL;
26015}
26016unsafe extern "C" {
26017    pub fn SSL_CTX_set1_accepted_peer_cert_types(
26018        ctx: *mut SSL_CTX,
26019        values: *const u8,
26020        num_values: usize,
26021    ) -> ::core::ffi::c_int;
26022}
26023unsafe extern "C" {
26024    pub fn SSL_set1_accepted_peer_cert_types(
26025        ssl: *mut SSL,
26026        values: *const u8,
26027        num_values: usize,
26028    ) -> ::core::ffi::c_int;
26029}
26030unsafe extern "C" {
26031    pub fn SSL_CTX_set1_available_client_cert_types(
26032        ctx: *mut SSL_CTX,
26033        values: *const u8,
26034        num_values: usize,
26035    ) -> ::core::ffi::c_int;
26036}
26037unsafe extern "C" {
26038    pub fn SSL_set1_available_client_cert_types(
26039        ssl: *mut SSL,
26040        values: *const u8,
26041        num_values: usize,
26042    ) -> ::core::ffi::c_int;
26043}
26044unsafe extern "C" {
26045    pub fn SSL_get_peer_cert_type(ssl: *const SSL) -> ::core::ffi::c_int;
26046}
26047unsafe extern "C" {
26048    pub fn SSL_get0_peer_rpk(ssl: *const SSL) -> *mut EVP_PKEY;
26049}
26050unsafe extern "C" {
26051    pub fn SSL_spake2plusv1_register(
26052        out_w0: *mut u8,
26053        out_w1: *mut u8,
26054        out_registration_record: *mut u8,
26055        password: *const u8,
26056        password_len: usize,
26057        client_identity: *const u8,
26058        client_identity_len: usize,
26059        server_identity: *const u8,
26060        server_identity_len: usize,
26061    ) -> ::core::ffi::c_int;
26062}
26063unsafe extern "C" {
26064    pub fn SSL_CREDENTIAL_new_spake2plusv1_client(
26065        context: *const u8,
26066        context_len: usize,
26067        client_identity: *const u8,
26068        client_identity_len: usize,
26069        server_identity: *const u8,
26070        server_identity_len: usize,
26071        error_limit: u32,
26072        w0: *const u8,
26073        w0_len: usize,
26074        w1: *const u8,
26075        w1_len: usize,
26076    ) -> *mut SSL_CREDENTIAL;
26077}
26078unsafe extern "C" {
26079    pub fn SSL_CREDENTIAL_new_spake2plusv1_server(
26080        context: *const u8,
26081        context_len: usize,
26082        client_identity: *const u8,
26083        client_identity_len: usize,
26084        server_identity: *const u8,
26085        server_identity_len: usize,
26086        rate_limit: u32,
26087        w0: *const u8,
26088        w0_len: usize,
26089        registration_record: *const u8,
26090        registration_record_len: usize,
26091    ) -> *mut SSL_CREDENTIAL;
26092}
26093pub const ssl_encryption_level_t_ssl_encryption_initial: ssl_encryption_level_t = 0;
26094pub const ssl_encryption_level_t_ssl_encryption_early_data: ssl_encryption_level_t = 1;
26095pub const ssl_encryption_level_t_ssl_encryption_handshake: ssl_encryption_level_t = 2;
26096pub const ssl_encryption_level_t_ssl_encryption_application: ssl_encryption_level_t = 3;
26097pub type ssl_encryption_level_t = ::core::ffi::c_uint;
26098#[repr(C)]
26099#[derive(Debug, Copy, Clone)]
26100pub struct ssl_quic_method_st {
26101    pub set_read_secret: ::core::option::Option<
26102        unsafe extern "C" fn(
26103            ssl: *mut SSL,
26104            level: ssl_encryption_level_t,
26105            cipher: *const SSL_CIPHER,
26106            secret: *const u8,
26107            secret_len: usize,
26108        ) -> ::core::ffi::c_int,
26109    >,
26110    pub set_write_secret: ::core::option::Option<
26111        unsafe extern "C" fn(
26112            ssl: *mut SSL,
26113            level: ssl_encryption_level_t,
26114            cipher: *const SSL_CIPHER,
26115            secret: *const u8,
26116            secret_len: usize,
26117        ) -> ::core::ffi::c_int,
26118    >,
26119    pub add_handshake_data: ::core::option::Option<
26120        unsafe extern "C" fn(
26121            ssl: *mut SSL,
26122            level: ssl_encryption_level_t,
26123            data: *const u8,
26124            len: usize,
26125        ) -> ::core::ffi::c_int,
26126    >,
26127    pub flush_flight:
26128        ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> ::core::ffi::c_int>,
26129    pub send_alert: ::core::option::Option<
26130        unsafe extern "C" fn(
26131            ssl: *mut SSL,
26132            level: ssl_encryption_level_t,
26133            alert: u8,
26134        ) -> ::core::ffi::c_int,
26135    >,
26136}
26137unsafe extern "C" {
26138    pub fn SSL_quic_max_handshake_flight_len(
26139        ssl: *const SSL,
26140        level: ssl_encryption_level_t,
26141    ) -> usize;
26142}
26143unsafe extern "C" {
26144    pub fn SSL_quic_read_level(ssl: *const SSL) -> ssl_encryption_level_t;
26145}
26146unsafe extern "C" {
26147    pub fn SSL_quic_write_level(ssl: *const SSL) -> ssl_encryption_level_t;
26148}
26149unsafe extern "C" {
26150    pub fn SSL_provide_quic_data(
26151        ssl: *mut SSL,
26152        level: ssl_encryption_level_t,
26153        data: *const u8,
26154        len: usize,
26155    ) -> ::core::ffi::c_int;
26156}
26157unsafe extern "C" {
26158    pub fn SSL_process_quic_post_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
26159}
26160unsafe extern "C" {
26161    pub fn SSL_CTX_set_quic_method(
26162        ctx: *mut SSL_CTX,
26163        quic_method: *const SSL_QUIC_METHOD,
26164    ) -> ::core::ffi::c_int;
26165}
26166unsafe extern "C" {
26167    pub fn SSL_set_quic_method(
26168        ssl: *mut SSL,
26169        quic_method: *const SSL_QUIC_METHOD,
26170    ) -> ::core::ffi::c_int;
26171}
26172unsafe extern "C" {
26173    pub fn SSL_set_quic_transport_params(
26174        ssl: *mut SSL,
26175        params: *const u8,
26176        params_len: usize,
26177    ) -> ::core::ffi::c_int;
26178}
26179unsafe extern "C" {
26180    pub fn SSL_get_peer_quic_transport_params(
26181        ssl: *const SSL,
26182        out_params: *mut *const u8,
26183        out_params_len: *mut usize,
26184    );
26185}
26186unsafe extern "C" {
26187    pub fn SSL_set_quic_use_legacy_codepoint(ssl: *mut SSL, use_legacy: ::core::ffi::c_int);
26188}
26189unsafe extern "C" {
26190    pub fn SSL_set_quic_early_data_context(
26191        ssl: *mut SSL,
26192        context: *const u8,
26193        context_len: usize,
26194    ) -> ::core::ffi::c_int;
26195}
26196unsafe extern "C" {
26197    pub fn SSL_CTX_set_early_data_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26198}
26199unsafe extern "C" {
26200    pub fn SSL_set_early_data_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
26201}
26202unsafe extern "C" {
26203    pub fn SSL_in_early_data(ssl: *const SSL) -> ::core::ffi::c_int;
26204}
26205unsafe extern "C" {
26206    pub fn SSL_SESSION_early_data_capable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
26207}
26208unsafe extern "C" {
26209    pub fn SSL_SESSION_copy_without_early_data(session: *mut SSL_SESSION) -> *mut SSL_SESSION;
26210}
26211unsafe extern "C" {
26212    pub fn SSL_early_data_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
26213}
26214unsafe extern "C" {
26215    pub fn SSL_reset_early_data_reject(ssl: *mut SSL);
26216}
26217unsafe extern "C" {
26218    pub fn SSL_get_ticket_age_skew(ssl: *const SSL) -> i32;
26219}
26220pub const ssl_early_data_reason_t_ssl_early_data_unknown: ssl_early_data_reason_t = 0;
26221pub const ssl_early_data_reason_t_ssl_early_data_disabled: ssl_early_data_reason_t = 1;
26222pub const ssl_early_data_reason_t_ssl_early_data_accepted: ssl_early_data_reason_t = 2;
26223pub const ssl_early_data_reason_t_ssl_early_data_protocol_version: ssl_early_data_reason_t = 3;
26224pub const ssl_early_data_reason_t_ssl_early_data_peer_declined: ssl_early_data_reason_t = 4;
26225pub const ssl_early_data_reason_t_ssl_early_data_no_session_offered: ssl_early_data_reason_t = 5;
26226pub const ssl_early_data_reason_t_ssl_early_data_session_not_resumed: ssl_early_data_reason_t = 6;
26227pub const ssl_early_data_reason_t_ssl_early_data_unsupported_for_session: ssl_early_data_reason_t =
26228    7;
26229pub const ssl_early_data_reason_t_ssl_early_data_hello_retry_request: ssl_early_data_reason_t = 8;
26230pub const ssl_early_data_reason_t_ssl_early_data_alpn_mismatch: ssl_early_data_reason_t = 9;
26231pub const ssl_early_data_reason_t_ssl_early_data_channel_id: ssl_early_data_reason_t = 10;
26232pub const ssl_early_data_reason_t_ssl_early_data_ticket_age_skew: ssl_early_data_reason_t = 12;
26233pub const ssl_early_data_reason_t_ssl_early_data_quic_parameter_mismatch: ssl_early_data_reason_t =
26234    13;
26235pub const ssl_early_data_reason_t_ssl_early_data_alps_mismatch: ssl_early_data_reason_t = 14;
26236pub const ssl_early_data_reason_t_ssl_early_data_reason_max_value: ssl_early_data_reason_t = 14;
26237pub type ssl_early_data_reason_t = ::core::ffi::c_uint;
26238unsafe extern "C" {
26239    pub fn SSL_get_early_data_reason(ssl: *const SSL) -> ssl_early_data_reason_t;
26240}
26241unsafe extern "C" {
26242    pub fn SSL_early_data_reason_string(
26243        reason: ssl_early_data_reason_t,
26244    ) -> *const ::core::ffi::c_char;
26245}
26246unsafe extern "C" {
26247    pub fn SSL_set_enable_ech_grease(ssl: *mut SSL, enable: ::core::ffi::c_int);
26248}
26249unsafe extern "C" {
26250    pub fn SSL_set_reject_unusable_ech_config(ssl: *mut SSL, enable: ::core::ffi::c_int);
26251}
26252unsafe extern "C" {
26253    pub fn SSL_set1_ech_config_list(
26254        ssl: *mut SSL,
26255        ech_config_list: *const u8,
26256        ech_config_list_len: usize,
26257    ) -> ::core::ffi::c_int;
26258}
26259unsafe extern "C" {
26260    pub fn SSL_get0_ech_name_override(
26261        ssl: *const SSL,
26262        out_name: *mut *const ::core::ffi::c_char,
26263        out_name_len: *mut usize,
26264    );
26265}
26266unsafe extern "C" {
26267    pub fn SSL_get0_ech_retry_configs(
26268        ssl: *const SSL,
26269        out_retry_configs: *mut *const u8,
26270        out_retry_configs_len: *mut usize,
26271    );
26272}
26273unsafe extern "C" {
26274    pub fn SSL_marshal_ech_config(
26275        out: *mut *mut u8,
26276        out_len: *mut usize,
26277        config_id: u8,
26278        key: *const EVP_HPKE_KEY,
26279        public_name: *const ::core::ffi::c_char,
26280        max_name_len: usize,
26281    ) -> ::core::ffi::c_int;
26282}
26283unsafe extern "C" {
26284    pub fn SSL_ECH_KEYS_new() -> *mut SSL_ECH_KEYS;
26285}
26286unsafe extern "C" {
26287    pub fn SSL_ECH_KEYS_up_ref(keys: *mut SSL_ECH_KEYS);
26288}
26289unsafe extern "C" {
26290    pub fn SSL_ECH_KEYS_free(keys: *mut SSL_ECH_KEYS);
26291}
26292unsafe extern "C" {
26293    pub fn SSL_ECH_KEYS_add(
26294        keys: *mut SSL_ECH_KEYS,
26295        is_retry_config: ::core::ffi::c_int,
26296        ech_config: *const u8,
26297        ech_config_len: usize,
26298        key: *const EVP_HPKE_KEY,
26299    ) -> ::core::ffi::c_int;
26300}
26301unsafe extern "C" {
26302    pub fn SSL_ECH_KEYS_has_duplicate_config_id(keys: *const SSL_ECH_KEYS) -> ::core::ffi::c_int;
26303}
26304unsafe extern "C" {
26305    pub fn SSL_ECH_KEYS_marshal_retry_configs(
26306        keys: *const SSL_ECH_KEYS,
26307        out: *mut *mut u8,
26308        out_len: *mut usize,
26309    ) -> ::core::ffi::c_int;
26310}
26311unsafe extern "C" {
26312    pub fn SSL_CTX_set1_ech_keys(ctx: *mut SSL_CTX, keys: *mut SSL_ECH_KEYS) -> ::core::ffi::c_int;
26313}
26314unsafe extern "C" {
26315    pub fn SSL_ech_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
26316}
26317unsafe extern "C" {
26318    pub fn SSL_alert_type_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26319}
26320unsafe extern "C" {
26321    pub fn SSL_alert_desc_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26322}
26323unsafe extern "C" {
26324    pub fn SSL_send_fatal_alert(ssl: *mut SSL, alert: u8) -> ::core::ffi::c_int;
26325}
26326unsafe extern "C" {
26327    pub fn SSL_set_ex_data(
26328        ssl: *mut SSL,
26329        idx: ::core::ffi::c_int,
26330        data: *mut ::core::ffi::c_void,
26331    ) -> ::core::ffi::c_int;
26332}
26333unsafe extern "C" {
26334    pub fn SSL_get_ex_data(ssl: *const SSL, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
26335}
26336unsafe extern "C" {
26337    pub fn SSL_get_ex_new_index(
26338        argl: ::core::ffi::c_long,
26339        argp: *mut ::core::ffi::c_void,
26340        unused: *mut CRYPTO_EX_unused,
26341        dup_unused: CRYPTO_EX_dup,
26342        free_func: CRYPTO_EX_free,
26343    ) -> ::core::ffi::c_int;
26344}
26345unsafe extern "C" {
26346    pub fn SSL_SESSION_set_ex_data(
26347        session: *mut SSL_SESSION,
26348        idx: ::core::ffi::c_int,
26349        data: *mut ::core::ffi::c_void,
26350    ) -> ::core::ffi::c_int;
26351}
26352unsafe extern "C" {
26353    pub fn SSL_SESSION_get_ex_data(
26354        session: *const SSL_SESSION,
26355        idx: ::core::ffi::c_int,
26356    ) -> *mut ::core::ffi::c_void;
26357}
26358unsafe extern "C" {
26359    pub fn SSL_SESSION_get_ex_new_index(
26360        argl: ::core::ffi::c_long,
26361        argp: *mut ::core::ffi::c_void,
26362        unused: *mut CRYPTO_EX_unused,
26363        dup_unused: CRYPTO_EX_dup,
26364        free_func: CRYPTO_EX_free,
26365    ) -> ::core::ffi::c_int;
26366}
26367unsafe extern "C" {
26368    pub fn SSL_CTX_set_ex_data(
26369        ctx: *mut SSL_CTX,
26370        idx: ::core::ffi::c_int,
26371        data: *mut ::core::ffi::c_void,
26372    ) -> ::core::ffi::c_int;
26373}
26374unsafe extern "C" {
26375    pub fn SSL_CTX_get_ex_data(
26376        ctx: *const SSL_CTX,
26377        idx: ::core::ffi::c_int,
26378    ) -> *mut ::core::ffi::c_void;
26379}
26380unsafe extern "C" {
26381    pub fn SSL_CTX_get_ex_new_index(
26382        argl: ::core::ffi::c_long,
26383        argp: *mut ::core::ffi::c_void,
26384        unused: *mut CRYPTO_EX_unused,
26385        dup_unused: CRYPTO_EX_dup,
26386        free_func: CRYPTO_EX_free,
26387    ) -> ::core::ffi::c_int;
26388}
26389unsafe extern "C" {
26390    pub fn SSL_CREDENTIAL_set_ex_data(
26391        cred: *mut SSL_CREDENTIAL,
26392        idx: ::core::ffi::c_int,
26393        data: *mut ::core::ffi::c_void,
26394    ) -> ::core::ffi::c_int;
26395}
26396unsafe extern "C" {
26397    pub fn SSL_CREDENTIAL_get_ex_data(
26398        cred: *const SSL_CREDENTIAL,
26399        idx: ::core::ffi::c_int,
26400    ) -> *mut ::core::ffi::c_void;
26401}
26402unsafe extern "C" {
26403    pub fn SSL_CREDENTIAL_get_ex_new_index(
26404        argl: ::core::ffi::c_long,
26405        argp: *mut ::core::ffi::c_void,
26406        unused: *mut CRYPTO_EX_unused,
26407        dup_unused: CRYPTO_EX_dup,
26408        free_func: CRYPTO_EX_free,
26409    ) -> ::core::ffi::c_int;
26410}
26411unsafe extern "C" {
26412    pub fn SSL_get_ivs(
26413        ssl: *const SSL,
26414        out_read_iv: *mut *const u8,
26415        out_write_iv: *mut *const u8,
26416        out_iv_len: *mut usize,
26417    ) -> ::core::ffi::c_int;
26418}
26419unsafe extern "C" {
26420    pub fn SSL_get_key_block_len(ssl: *const SSL) -> usize;
26421}
26422unsafe extern "C" {
26423    pub fn SSL_generate_key_block(
26424        ssl: *const SSL,
26425        out: *mut u8,
26426        out_len: usize,
26427    ) -> ::core::ffi::c_int;
26428}
26429unsafe extern "C" {
26430    pub fn SSL_get_read_sequence(ssl: *const SSL) -> u64;
26431}
26432unsafe extern "C" {
26433    pub fn SSL_get_write_sequence(ssl: *const SSL) -> u64;
26434}
26435unsafe extern "C" {
26436    pub fn SSL_CTX_set_record_protocol_version(
26437        ctx: *mut SSL_CTX,
26438        version: ::core::ffi::c_int,
26439    ) -> ::core::ffi::c_int;
26440}
26441unsafe extern "C" {
26442    pub fn SSL_is_dtls_handshake_idle(ssl: *const SSL) -> ::core::ffi::c_int;
26443}
26444unsafe extern "C" {
26445    pub fn SSL_get_dtls_handshake_read_seq(ssl: *const SSL) -> u32;
26446}
26447unsafe extern "C" {
26448    pub fn SSL_get_dtls_handshake_write_seq(ssl: *const SSL) -> u32;
26449}
26450unsafe extern "C" {
26451    pub fn SSL_get_dtls_read_epoch(ssl: *const SSL) -> u16;
26452}
26453unsafe extern "C" {
26454    pub fn SSL_get_dtls_write_epoch(ssl: *const SSL) -> u16;
26455}
26456unsafe extern "C" {
26457    pub fn SSL_get_dtls_read_sequence(ssl: *const SSL, epoch: u16) -> u64;
26458}
26459unsafe extern "C" {
26460    pub fn SSL_get_dtls_write_sequence(ssl: *const SSL, epoch: u16) -> u64;
26461}
26462unsafe extern "C" {
26463    pub fn SSL_get_dtls_read_traffic_secret(
26464        ssl: *const SSL,
26465        out_data: *mut *const u8,
26466        out_len: *mut usize,
26467        epoch: u16,
26468    ) -> ::core::ffi::c_int;
26469}
26470unsafe extern "C" {
26471    pub fn SSL_get_dtls_write_traffic_secret(
26472        ssl: *const SSL,
26473        out_data: *mut *const u8,
26474        out_len: *mut usize,
26475        epoch: u16,
26476    ) -> ::core::ffi::c_int;
26477}
26478unsafe extern "C" {
26479    pub fn SSL_serialize_capabilities(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26480}
26481unsafe extern "C" {
26482    pub fn SSL_request_handshake_hints(
26483        ssl: *mut SSL,
26484        client_hello: *const u8,
26485        client_hello_len: usize,
26486        capabilities: *const u8,
26487        capabilities_len: usize,
26488    ) -> ::core::ffi::c_int;
26489}
26490unsafe extern "C" {
26491    pub fn SSL_serialize_handshake_hints(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26492}
26493unsafe extern "C" {
26494    pub fn SSL_set_handshake_hints(
26495        ssl: *mut SSL,
26496        hints: *const u8,
26497        hints_len: usize,
26498    ) -> ::core::ffi::c_int;
26499}
26500unsafe extern "C" {
26501    pub fn SSL_CTX_set_msg_callback(
26502        ctx: *mut SSL_CTX,
26503        cb: ::core::option::Option<
26504            unsafe extern "C" fn(
26505                is_write: ::core::ffi::c_int,
26506                version: ::core::ffi::c_int,
26507                content_type: ::core::ffi::c_int,
26508                buf: *const ::core::ffi::c_void,
26509                len: usize,
26510                ssl: *mut SSL,
26511                arg: *mut ::core::ffi::c_void,
26512            ),
26513        >,
26514    );
26515}
26516unsafe extern "C" {
26517    pub fn SSL_CTX_set_msg_callback_arg(ctx: *mut SSL_CTX, arg: *mut ::core::ffi::c_void);
26518}
26519unsafe extern "C" {
26520    pub fn SSL_set_msg_callback(
26521        ssl: *mut SSL,
26522        cb: ::core::option::Option<
26523            unsafe extern "C" fn(
26524                write_p: ::core::ffi::c_int,
26525                version: ::core::ffi::c_int,
26526                content_type: ::core::ffi::c_int,
26527                buf: *const ::core::ffi::c_void,
26528                len: usize,
26529                ssl: *mut SSL,
26530                arg: *mut ::core::ffi::c_void,
26531            ),
26532        >,
26533    );
26534}
26535unsafe extern "C" {
26536    pub fn SSL_set_msg_callback_arg(ssl: *mut SSL, arg: *mut ::core::ffi::c_void);
26537}
26538unsafe extern "C" {
26539    pub fn SSL_CTX_set_keylog_callback(
26540        ctx: *mut SSL_CTX,
26541        cb: ::core::option::Option<
26542            unsafe extern "C" fn(ssl: *const SSL, line: *const ::core::ffi::c_char),
26543        >,
26544    );
26545}
26546unsafe extern "C" {
26547    pub fn SSL_CTX_get_keylog_callback(
26548        ctx: *const SSL_CTX,
26549    ) -> ::core::option::Option<
26550        unsafe extern "C" fn(ctx: *const SSL, arg1: *const ::core::ffi::c_char),
26551    >;
26552}
26553unsafe extern "C" {
26554    pub fn SSL_CTX_set_current_time_cb(
26555        ctx: *mut SSL_CTX,
26556        cb: ::core::option::Option<unsafe extern "C" fn(ssl: *const SSL, out_clock: *mut timeval)>,
26557    );
26558}
26559unsafe extern "C" {
26560    pub fn SSL_set_shed_handshake_config(ssl: *mut SSL, enable: ::core::ffi::c_int);
26561}
26562pub const ssl_renegotiate_mode_t_ssl_renegotiate_never: ssl_renegotiate_mode_t = 0;
26563pub const ssl_renegotiate_mode_t_ssl_renegotiate_once: ssl_renegotiate_mode_t = 1;
26564pub const ssl_renegotiate_mode_t_ssl_renegotiate_freely: ssl_renegotiate_mode_t = 2;
26565pub const ssl_renegotiate_mode_t_ssl_renegotiate_ignore: ssl_renegotiate_mode_t = 3;
26566pub const ssl_renegotiate_mode_t_ssl_renegotiate_explicit: ssl_renegotiate_mode_t = 4;
26567pub type ssl_renegotiate_mode_t = ::core::ffi::c_uint;
26568unsafe extern "C" {
26569    pub fn SSL_set_renegotiate_mode(ssl: *mut SSL, mode: ssl_renegotiate_mode_t);
26570}
26571unsafe extern "C" {
26572    pub fn SSL_renegotiate(ssl: *mut SSL) -> ::core::ffi::c_int;
26573}
26574unsafe extern "C" {
26575    pub fn SSL_renegotiate_pending(ssl: *mut SSL) -> ::core::ffi::c_int;
26576}
26577unsafe extern "C" {
26578    pub fn SSL_total_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26579}
26580unsafe extern "C" {
26581    pub fn SSL_CTX_get_max_cert_list(ctx: *const SSL_CTX) -> usize;
26582}
26583unsafe extern "C" {
26584    pub fn SSL_CTX_set_max_cert_list(ctx: *mut SSL_CTX, max_cert_list: usize);
26585}
26586unsafe extern "C" {
26587    pub fn SSL_get_max_cert_list(ssl: *const SSL) -> usize;
26588}
26589unsafe extern "C" {
26590    pub fn SSL_set_max_cert_list(ssl: *mut SSL, max_cert_list: usize);
26591}
26592unsafe extern "C" {
26593    pub fn SSL_CTX_set_max_send_fragment(
26594        ctx: *mut SSL_CTX,
26595        max_send_fragment: usize,
26596    ) -> ::core::ffi::c_int;
26597}
26598unsafe extern "C" {
26599    pub fn SSL_set_max_send_fragment(ssl: *mut SSL, max_send_fragment: usize)
26600        -> ::core::ffi::c_int;
26601}
26602#[repr(C)]
26603#[derive(Debug, Copy, Clone)]
26604pub struct ssl_early_callback_ctx {
26605    pub ssl: *mut SSL,
26606    pub client_hello: *const u8,
26607    pub client_hello_len: usize,
26608    pub version: u16,
26609    pub random: *const u8,
26610    pub random_len: usize,
26611    pub session_id: *const u8,
26612    pub session_id_len: usize,
26613    pub dtls_cookie: *const u8,
26614    pub dtls_cookie_len: usize,
26615    pub cipher_suites: *const u8,
26616    pub cipher_suites_len: usize,
26617    pub compression_methods: *const u8,
26618    pub compression_methods_len: usize,
26619    pub extensions: *const u8,
26620    pub extensions_len: usize,
26621}
26622pub const ssl_select_cert_result_t_ssl_select_cert_success: ssl_select_cert_result_t = 1;
26623pub const ssl_select_cert_result_t_ssl_select_cert_retry: ssl_select_cert_result_t = 0;
26624pub const ssl_select_cert_result_t_ssl_select_cert_error: ssl_select_cert_result_t = -1;
26625pub const ssl_select_cert_result_t_ssl_select_cert_disable_ech: ssl_select_cert_result_t = -2;
26626pub type ssl_select_cert_result_t = ::core::ffi::c_int;
26627unsafe extern "C" {
26628    pub fn SSL_early_callback_ctx_extension_get(
26629        client_hello: *const SSL_CLIENT_HELLO,
26630        extension_type: u16,
26631        out_data: *mut *const u8,
26632        out_len: *mut usize,
26633    ) -> ::core::ffi::c_int;
26634}
26635unsafe extern "C" {
26636    pub fn SSL_CTX_set_select_certificate_cb(
26637        ctx: *mut SSL_CTX,
26638        cb: ::core::option::Option<
26639            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ssl_select_cert_result_t,
26640        >,
26641    );
26642}
26643unsafe extern "C" {
26644    pub fn SSL_CTX_set_dos_protection_cb(
26645        ctx: *mut SSL_CTX,
26646        cb: ::core::option::Option<
26647            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ::core::ffi::c_int,
26648        >,
26649    );
26650}
26651unsafe extern "C" {
26652    pub fn SSL_CTX_set_reverify_on_resume(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26653}
26654unsafe extern "C" {
26655    pub fn SSL_CTX_set_info_callback(
26656        ctx: *mut SSL_CTX,
26657        cb: ::core::option::Option<
26658            unsafe extern "C" fn(
26659                ssl: *const SSL,
26660                type_: ::core::ffi::c_int,
26661                value: ::core::ffi::c_int,
26662            ),
26663        >,
26664    );
26665}
26666unsafe extern "C" {
26667    pub fn SSL_CTX_get_info_callback(
26668        ctx: *mut SSL_CTX,
26669    ) -> ::core::option::Option<
26670        unsafe extern "C" fn(ctx: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26671    >;
26672}
26673unsafe extern "C" {
26674    pub fn SSL_set_info_callback(
26675        ssl: *mut SSL,
26676        cb: ::core::option::Option<
26677            unsafe extern "C" fn(
26678                ssl: *const SSL,
26679                type_: ::core::ffi::c_int,
26680                value: ::core::ffi::c_int,
26681            ),
26682        >,
26683    );
26684}
26685unsafe extern "C" {
26686    pub fn SSL_get_info_callback(
26687        ssl: *const SSL,
26688    ) -> ::core::option::Option<
26689        unsafe extern "C" fn(ssl: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26690    >;
26691}
26692unsafe extern "C" {
26693    pub fn SSL_state_string_long(ssl: *const SSL) -> *const ::core::ffi::c_char;
26694}
26695unsafe extern "C" {
26696    pub fn SSL_get_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
26697}
26698unsafe extern "C" {
26699    pub fn SSL_get_peer_signature_algorithm(ssl: *const SSL) -> u16;
26700}
26701unsafe extern "C" {
26702    pub fn SSL_get_client_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26703}
26704unsafe extern "C" {
26705    pub fn SSL_get_server_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26706}
26707unsafe extern "C" {
26708    pub fn SSL_get_signature_algorithm_used(ssl: *const SSL) -> u16;
26709}
26710unsafe extern "C" {
26711    pub fn SSL_get_pending_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
26712}
26713unsafe extern "C" {
26714    pub fn SSL_set_retain_only_sha256_of_client_certs(ssl: *mut SSL, enable: ::core::ffi::c_int);
26715}
26716unsafe extern "C" {
26717    pub fn SSL_CTX_set_retain_only_sha256_of_client_certs(
26718        ctx: *mut SSL_CTX,
26719        enable: ::core::ffi::c_int,
26720    );
26721}
26722unsafe extern "C" {
26723    pub fn SSL_CTX_set_grease_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26724}
26725unsafe extern "C" {
26726    pub fn SSL_CTX_set_grease_sigalgs_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26727}
26728unsafe extern "C" {
26729    pub fn SSL_CTX_set_permute_extensions(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26730}
26731unsafe extern "C" {
26732    pub fn SSL_set_permute_extensions(ssl: *mut SSL, enabled: ::core::ffi::c_int);
26733}
26734unsafe extern "C" {
26735    pub fn SSL_max_seal_overhead(ssl: *const SSL) -> usize;
26736}
26737unsafe extern "C" {
26738    pub fn SSL_CTX_set_false_start_allowed_without_alpn(
26739        ctx: *mut SSL_CTX,
26740        allowed: ::core::ffi::c_int,
26741    );
26742}
26743unsafe extern "C" {
26744    pub fn SSL_used_hello_retry_request(ssl: *const SSL) -> ::core::ffi::c_int;
26745}
26746unsafe extern "C" {
26747    pub fn SSL_set_jdk11_workaround(ssl: *mut SSL, enable: ::core::ffi::c_int);
26748}
26749unsafe extern "C" {
26750    pub fn SSL_parse_client_hello(
26751        ssl: *const SSL,
26752        out: *mut SSL_CLIENT_HELLO,
26753        in_: *const u8,
26754        len: usize,
26755    ) -> ::core::ffi::c_int;
26756}
26757unsafe extern "C" {
26758    pub fn SSL_library_init() -> ::core::ffi::c_int;
26759}
26760unsafe extern "C" {
26761    pub fn SSL_CIPHER_description(
26762        cipher: *const SSL_CIPHER,
26763        buf: *mut ::core::ffi::c_char,
26764        len: ::core::ffi::c_int,
26765    ) -> *const ::core::ffi::c_char;
26766}
26767unsafe extern "C" {
26768    pub fn SSL_CIPHER_get_version(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26769}
26770unsafe extern "C" {
26771    pub fn SSL_CIPHER_get_id(cipher: *const SSL_CIPHER) -> u32;
26772}
26773unsafe extern "C" {
26774    pub fn SSL_CIPHER_get_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26775}
26776pub type COMP_METHOD = ::core::ffi::c_void;
26777pub type SSL_COMP = ssl_comp_st;
26778#[repr(C)]
26779#[derive(Debug)]
26780pub struct stack_st_SSL_COMP {
26781    _unused: [u8; 0],
26782}
26783unsafe extern "C" {
26784    pub fn SSL_COMP_get_compression_methods() -> *mut stack_st_SSL_COMP;
26785}
26786unsafe extern "C" {
26787    pub fn SSL_COMP_add_compression_method(
26788        id: ::core::ffi::c_int,
26789        cm: *mut COMP_METHOD,
26790    ) -> ::core::ffi::c_int;
26791}
26792unsafe extern "C" {
26793    pub fn SSL_COMP_get_name(comp: *const COMP_METHOD) -> *const ::core::ffi::c_char;
26794}
26795unsafe extern "C" {
26796    pub fn SSL_COMP_get0_name(comp: *const SSL_COMP) -> *const ::core::ffi::c_char;
26797}
26798unsafe extern "C" {
26799    pub fn SSL_COMP_get_id(comp: *const SSL_COMP) -> ::core::ffi::c_int;
26800}
26801unsafe extern "C" {
26802    pub fn SSL_COMP_free_compression_methods();
26803}
26804unsafe extern "C" {
26805    pub fn SSLv23_method() -> *const SSL_METHOD;
26806}
26807unsafe extern "C" {
26808    pub fn TLSv1_method() -> *const SSL_METHOD;
26809}
26810unsafe extern "C" {
26811    pub fn TLSv1_1_method() -> *const SSL_METHOD;
26812}
26813unsafe extern "C" {
26814    pub fn TLSv1_2_method() -> *const SSL_METHOD;
26815}
26816unsafe extern "C" {
26817    pub fn DTLSv1_method() -> *const SSL_METHOD;
26818}
26819unsafe extern "C" {
26820    pub fn DTLSv1_2_method() -> *const SSL_METHOD;
26821}
26822unsafe extern "C" {
26823    pub fn TLS_server_method() -> *const SSL_METHOD;
26824}
26825unsafe extern "C" {
26826    pub fn TLS_client_method() -> *const SSL_METHOD;
26827}
26828unsafe extern "C" {
26829    pub fn SSLv23_server_method() -> *const SSL_METHOD;
26830}
26831unsafe extern "C" {
26832    pub fn SSLv23_client_method() -> *const SSL_METHOD;
26833}
26834unsafe extern "C" {
26835    pub fn TLSv1_server_method() -> *const SSL_METHOD;
26836}
26837unsafe extern "C" {
26838    pub fn TLSv1_client_method() -> *const SSL_METHOD;
26839}
26840unsafe extern "C" {
26841    pub fn TLSv1_1_server_method() -> *const SSL_METHOD;
26842}
26843unsafe extern "C" {
26844    pub fn TLSv1_1_client_method() -> *const SSL_METHOD;
26845}
26846unsafe extern "C" {
26847    pub fn TLSv1_2_server_method() -> *const SSL_METHOD;
26848}
26849unsafe extern "C" {
26850    pub fn TLSv1_2_client_method() -> *const SSL_METHOD;
26851}
26852unsafe extern "C" {
26853    pub fn DTLS_server_method() -> *const SSL_METHOD;
26854}
26855unsafe extern "C" {
26856    pub fn DTLS_client_method() -> *const SSL_METHOD;
26857}
26858unsafe extern "C" {
26859    pub fn DTLSv1_server_method() -> *const SSL_METHOD;
26860}
26861unsafe extern "C" {
26862    pub fn DTLSv1_client_method() -> *const SSL_METHOD;
26863}
26864unsafe extern "C" {
26865    pub fn DTLSv1_2_server_method() -> *const SSL_METHOD;
26866}
26867unsafe extern "C" {
26868    pub fn DTLSv1_2_client_method() -> *const SSL_METHOD;
26869}
26870unsafe extern "C" {
26871    pub fn SSL_clear(ssl: *mut SSL) -> ::core::ffi::c_int;
26872}
26873unsafe extern "C" {
26874    pub fn SSL_CTX_set_tmp_rsa_callback(
26875        ctx: *mut SSL_CTX,
26876        cb: ::core::option::Option<
26877            unsafe extern "C" fn(
26878                ssl: *mut SSL,
26879                is_export: ::core::ffi::c_int,
26880                keylength: ::core::ffi::c_int,
26881            ) -> *mut RSA,
26882        >,
26883    );
26884}
26885unsafe extern "C" {
26886    pub fn SSL_set_tmp_rsa_callback(
26887        ssl: *mut SSL,
26888        cb: ::core::option::Option<
26889            unsafe extern "C" fn(
26890                ssl: *mut SSL,
26891                is_export: ::core::ffi::c_int,
26892                keylength: ::core::ffi::c_int,
26893            ) -> *mut RSA,
26894        >,
26895    );
26896}
26897unsafe extern "C" {
26898    pub fn SSL_CTX_sess_connect(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26899}
26900unsafe extern "C" {
26901    pub fn SSL_CTX_sess_connect_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26902}
26903unsafe extern "C" {
26904    pub fn SSL_CTX_sess_connect_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26905}
26906unsafe extern "C" {
26907    pub fn SSL_CTX_sess_accept(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26908}
26909unsafe extern "C" {
26910    pub fn SSL_CTX_sess_accept_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26911}
26912unsafe extern "C" {
26913    pub fn SSL_CTX_sess_accept_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26914}
26915unsafe extern "C" {
26916    pub fn SSL_CTX_sess_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26917}
26918unsafe extern "C" {
26919    pub fn SSL_CTX_sess_cb_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26920}
26921unsafe extern "C" {
26922    pub fn SSL_CTX_sess_misses(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26923}
26924unsafe extern "C" {
26925    pub fn SSL_CTX_sess_timeouts(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26926}
26927unsafe extern "C" {
26928    pub fn SSL_CTX_sess_cache_full(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26929}
26930unsafe extern "C" {
26931    pub fn SSL_cutthrough_complete(ssl: *const SSL) -> ::core::ffi::c_int;
26932}
26933unsafe extern "C" {
26934    pub fn SSL_num_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26935}
26936unsafe extern "C" {
26937    pub fn SSL_CTX_need_tmp_RSA(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26938}
26939unsafe extern "C" {
26940    pub fn SSL_need_tmp_RSA(ssl: *const SSL) -> ::core::ffi::c_int;
26941}
26942unsafe extern "C" {
26943    pub fn SSL_CTX_set_tmp_rsa(ctx: *mut SSL_CTX, rsa: *const RSA) -> ::core::ffi::c_int;
26944}
26945unsafe extern "C" {
26946    pub fn SSL_set_tmp_rsa(ssl: *mut SSL, rsa: *const RSA) -> ::core::ffi::c_int;
26947}
26948unsafe extern "C" {
26949    pub fn SSL_CTX_get_read_ahead(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26950}
26951unsafe extern "C" {
26952    pub fn SSL_CTX_set_read_ahead(ctx: *mut SSL_CTX, yes: ::core::ffi::c_int)
26953        -> ::core::ffi::c_int;
26954}
26955unsafe extern "C" {
26956    pub fn SSL_get_read_ahead(ssl: *const SSL) -> ::core::ffi::c_int;
26957}
26958unsafe extern "C" {
26959    pub fn SSL_set_read_ahead(ssl: *mut SSL, yes: ::core::ffi::c_int) -> ::core::ffi::c_int;
26960}
26961unsafe extern "C" {
26962    pub fn SSL_set_state(ssl: *mut SSL, state: ::core::ffi::c_int);
26963}
26964unsafe extern "C" {
26965    pub fn SSL_get_shared_ciphers(
26966        ssl: *const SSL,
26967        buf: *mut ::core::ffi::c_char,
26968        len: ::core::ffi::c_int,
26969    ) -> *mut ::core::ffi::c_char;
26970}
26971unsafe extern "C" {
26972    pub fn SSL_get_shared_sigalgs(
26973        ssl: *mut SSL,
26974        idx: ::core::ffi::c_int,
26975        psign: *mut ::core::ffi::c_int,
26976        phash: *mut ::core::ffi::c_int,
26977        psignandhash: *mut ::core::ffi::c_int,
26978        rsig: *mut u8,
26979        rhash: *mut u8,
26980    ) -> ::core::ffi::c_int;
26981}
26982unsafe extern "C" {
26983    pub fn i2d_SSL_SESSION(in_: *const SSL_SESSION, pp: *mut *mut u8) -> ::core::ffi::c_int;
26984}
26985unsafe extern "C" {
26986    pub fn d2i_SSL_SESSION(
26987        out: *mut *mut SSL_SESSION,
26988        inp: *mut *const u8,
26989        len: ::core::ffi::c_long,
26990    ) -> *mut SSL_SESSION;
26991}
26992unsafe extern "C" {
26993    pub fn i2d_SSL_SESSION_bio(bio: *mut BIO, session: *const SSL_SESSION) -> ::core::ffi::c_int;
26994}
26995unsafe extern "C" {
26996    pub fn d2i_SSL_SESSION_bio(bio: *mut BIO, out: *mut *mut SSL_SESSION) -> *mut SSL_SESSION;
26997}
26998unsafe extern "C" {
26999    pub fn ERR_load_SSL_strings();
27000}
27001unsafe extern "C" {
27002    pub fn SSL_load_error_strings();
27003}
27004unsafe extern "C" {
27005    pub fn SSL_CTX_set_tlsext_use_srtp(
27006        ctx: *mut SSL_CTX,
27007        profiles: *const ::core::ffi::c_char,
27008    ) -> ::core::ffi::c_int;
27009}
27010unsafe extern "C" {
27011    pub fn SSL_set_tlsext_use_srtp(
27012        ssl: *mut SSL,
27013        profiles: *const ::core::ffi::c_char,
27014    ) -> ::core::ffi::c_int;
27015}
27016unsafe extern "C" {
27017    pub fn SSL_get_current_compression(ssl: *mut SSL) -> *const COMP_METHOD;
27018}
27019unsafe extern "C" {
27020    pub fn SSL_get_current_expansion(ssl: *mut SSL) -> *const COMP_METHOD;
27021}
27022unsafe extern "C" {
27023    pub fn SSL_get_server_tmp_key(ssl: *mut SSL, out_key: *mut *mut EVP_PKEY)
27024        -> ::core::ffi::c_int;
27025}
27026unsafe extern "C" {
27027    pub fn SSL_get_peer_tmp_key(ssl: *mut SSL, out_key: *mut *mut EVP_PKEY) -> ::core::ffi::c_int;
27028}
27029unsafe extern "C" {
27030    pub fn SSL_CTX_set_tmp_dh(ctx: *mut SSL_CTX, dh: *const DH) -> ::core::ffi::c_int;
27031}
27032unsafe extern "C" {
27033    pub fn SSL_set_tmp_dh(ssl: *mut SSL, dh: *const DH) -> ::core::ffi::c_int;
27034}
27035unsafe extern "C" {
27036    pub fn SSL_CTX_set_tmp_dh_callback(
27037        ctx: *mut SSL_CTX,
27038        cb: ::core::option::Option<
27039            unsafe extern "C" fn(
27040                ssl: *mut SSL,
27041                is_export: ::core::ffi::c_int,
27042                keylength: ::core::ffi::c_int,
27043            ) -> *mut DH,
27044        >,
27045    );
27046}
27047unsafe extern "C" {
27048    pub fn SSL_set_tmp_dh_callback(
27049        ssl: *mut SSL,
27050        cb: ::core::option::Option<
27051            unsafe extern "C" fn(
27052                ssl: *mut SSL,
27053                is_export: ::core::ffi::c_int,
27054                keylength: ::core::ffi::c_int,
27055            ) -> *mut DH,
27056        >,
27057    );
27058}
27059unsafe extern "C" {
27060    pub fn SSL_CTX_set1_sigalgs(
27061        ctx: *mut SSL_CTX,
27062        values: *const ::core::ffi::c_int,
27063        num_values: usize,
27064    ) -> ::core::ffi::c_int;
27065}
27066unsafe extern "C" {
27067    pub fn SSL_set1_sigalgs(
27068        ssl: *mut SSL,
27069        values: *const ::core::ffi::c_int,
27070        num_values: usize,
27071    ) -> ::core::ffi::c_int;
27072}
27073unsafe extern "C" {
27074    pub fn SSL_CTX_set1_sigalgs_list(
27075        ctx: *mut SSL_CTX,
27076        str_: *const ::core::ffi::c_char,
27077    ) -> ::core::ffi::c_int;
27078}
27079unsafe extern "C" {
27080    pub fn SSL_set1_sigalgs_list(
27081        ssl: *mut SSL,
27082        str_: *const ::core::ffi::c_char,
27083    ) -> ::core::ffi::c_int;
27084}
27085#[repr(C)]
27086#[derive(Debug, Copy, Clone)]
27087pub struct ssl_comp_st {
27088    pub id: ::core::ffi::c_int,
27089    pub name: *const ::core::ffi::c_char,
27090    pub method: *mut ::core::ffi::c_char,
27091}
27092pub type sk_SSL_COMP_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut SSL_COMP)>;
27093pub type sk_SSL_COMP_copy_func =
27094    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_COMP) -> *mut SSL_COMP>;
27095pub type sk_SSL_COMP_cmp_func = ::core::option::Option<
27096    unsafe extern "C" fn(
27097        arg1: *const *const SSL_COMP,
27098        arg2: *const *const SSL_COMP,
27099    ) -> ::core::ffi::c_int,
27100>;
27101pub type sk_SSL_COMP_delete_if_func = ::core::option::Option<
27102    unsafe extern "C" fn(arg1: *mut SSL_COMP, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
27103>;
27104unsafe extern "C" {
27105    #[link_name = "sk_SSL_COMP_call_free_func__extern"]
27106    pub fn sk_SSL_COMP_call_free_func(
27107        free_func: OPENSSL_sk_free_func,
27108        ptr: *mut ::core::ffi::c_void,
27109    );
27110}
27111unsafe extern "C" {
27112    #[link_name = "sk_SSL_COMP_call_copy_func__extern"]
27113    pub fn sk_SSL_COMP_call_copy_func(
27114        copy_func: OPENSSL_sk_copy_func,
27115        ptr: *const ::core::ffi::c_void,
27116    ) -> *mut ::core::ffi::c_void;
27117}
27118unsafe extern "C" {
27119    #[link_name = "sk_SSL_COMP_call_cmp_func__extern"]
27120    pub fn sk_SSL_COMP_call_cmp_func(
27121        cmp_func: OPENSSL_sk_cmp_func,
27122        a: *const ::core::ffi::c_void,
27123        b: *const ::core::ffi::c_void,
27124    ) -> ::core::ffi::c_int;
27125}
27126unsafe extern "C" {
27127    #[link_name = "sk_SSL_COMP_call_delete_if_func__extern"]
27128    pub fn sk_SSL_COMP_call_delete_if_func(
27129        func: OPENSSL_sk_delete_if_func,
27130        obj: *mut ::core::ffi::c_void,
27131        data: *mut ::core::ffi::c_void,
27132    ) -> ::core::ffi::c_int;
27133}
27134unsafe extern "C" {
27135    #[link_name = "sk_SSL_COMP_new__extern"]
27136    pub fn sk_SSL_COMP_new(comp: sk_SSL_COMP_cmp_func) -> *mut stack_st_SSL_COMP;
27137}
27138unsafe extern "C" {
27139    #[link_name = "sk_SSL_COMP_new_null__extern"]
27140    pub fn sk_SSL_COMP_new_null() -> *mut stack_st_SSL_COMP;
27141}
27142unsafe extern "C" {
27143    #[link_name = "sk_SSL_COMP_num__extern"]
27144    pub fn sk_SSL_COMP_num(sk: *const stack_st_SSL_COMP) -> usize;
27145}
27146unsafe extern "C" {
27147    #[link_name = "sk_SSL_COMP_zero__extern"]
27148    pub fn sk_SSL_COMP_zero(sk: *mut stack_st_SSL_COMP);
27149}
27150unsafe extern "C" {
27151    #[link_name = "sk_SSL_COMP_value__extern"]
27152    pub fn sk_SSL_COMP_value(sk: *const stack_st_SSL_COMP, i: usize) -> *mut SSL_COMP;
27153}
27154unsafe extern "C" {
27155    #[link_name = "sk_SSL_COMP_last__extern"]
27156    pub fn sk_SSL_COMP_last(sk: *const stack_st_SSL_COMP) -> *mut SSL_COMP;
27157}
27158unsafe extern "C" {
27159    #[link_name = "sk_SSL_COMP_set__extern"]
27160    pub fn sk_SSL_COMP_set(sk: *mut stack_st_SSL_COMP, i: usize, p: *mut SSL_COMP)
27161        -> *mut SSL_COMP;
27162}
27163unsafe extern "C" {
27164    #[link_name = "sk_SSL_COMP_free__extern"]
27165    pub fn sk_SSL_COMP_free(sk: *mut stack_st_SSL_COMP);
27166}
27167unsafe extern "C" {
27168    #[link_name = "sk_SSL_COMP_pop_free__extern"]
27169    pub fn sk_SSL_COMP_pop_free(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
27170}
27171unsafe extern "C" {
27172    #[link_name = "sk_SSL_COMP_insert__extern"]
27173    pub fn sk_SSL_COMP_insert(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP, where_: usize)
27174        -> usize;
27175}
27176unsafe extern "C" {
27177    #[link_name = "sk_SSL_COMP_delete__extern"]
27178    pub fn sk_SSL_COMP_delete(sk: *mut stack_st_SSL_COMP, where_: usize) -> *mut SSL_COMP;
27179}
27180unsafe extern "C" {
27181    #[link_name = "sk_SSL_COMP_delete_ptr__extern"]
27182    pub fn sk_SSL_COMP_delete_ptr(sk: *mut stack_st_SSL_COMP, p: *const SSL_COMP) -> *mut SSL_COMP;
27183}
27184unsafe extern "C" {
27185    #[link_name = "sk_SSL_COMP_delete_if__extern"]
27186    pub fn sk_SSL_COMP_delete_if(
27187        sk: *mut stack_st_SSL_COMP,
27188        func: sk_SSL_COMP_delete_if_func,
27189        data: *mut ::core::ffi::c_void,
27190    );
27191}
27192unsafe extern "C" {
27193    #[link_name = "sk_SSL_COMP_find__extern"]
27194    pub fn sk_SSL_COMP_find(
27195        sk: *const stack_st_SSL_COMP,
27196        out_index: *mut usize,
27197        p: *const SSL_COMP,
27198    ) -> ::core::ffi::c_int;
27199}
27200unsafe extern "C" {
27201    #[link_name = "sk_SSL_COMP_shift__extern"]
27202    pub fn sk_SSL_COMP_shift(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
27203}
27204unsafe extern "C" {
27205    #[link_name = "sk_SSL_COMP_push__extern"]
27206    pub fn sk_SSL_COMP_push(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP) -> usize;
27207}
27208unsafe extern "C" {
27209    #[link_name = "sk_SSL_COMP_pop__extern"]
27210    pub fn sk_SSL_COMP_pop(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
27211}
27212unsafe extern "C" {
27213    #[link_name = "sk_SSL_COMP_dup__extern"]
27214    pub fn sk_SSL_COMP_dup(sk: *const stack_st_SSL_COMP) -> *mut stack_st_SSL_COMP;
27215}
27216unsafe extern "C" {
27217    #[link_name = "sk_SSL_COMP_sort__extern"]
27218    pub fn sk_SSL_COMP_sort(sk: *mut stack_st_SSL_COMP);
27219}
27220unsafe extern "C" {
27221    #[link_name = "sk_SSL_COMP_sort_and_dedup__extern"]
27222    pub fn sk_SSL_COMP_sort_and_dedup(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
27223}
27224unsafe extern "C" {
27225    #[link_name = "sk_SSL_COMP_is_sorted__extern"]
27226    pub fn sk_SSL_COMP_is_sorted(sk: *const stack_st_SSL_COMP) -> ::core::ffi::c_int;
27227}
27228unsafe extern "C" {
27229    #[link_name = "sk_SSL_COMP_set_cmp_func__extern"]
27230    pub fn sk_SSL_COMP_set_cmp_func(
27231        sk: *mut stack_st_SSL_COMP,
27232        comp: sk_SSL_COMP_cmp_func,
27233    ) -> sk_SSL_COMP_cmp_func;
27234}
27235unsafe extern "C" {
27236    #[link_name = "sk_SSL_COMP_deep_copy__extern"]
27237    pub fn sk_SSL_COMP_deep_copy(
27238        sk: *const stack_st_SSL_COMP,
27239        copy_func: sk_SSL_COMP_copy_func,
27240        free_func: sk_SSL_COMP_free_func,
27241    ) -> *mut stack_st_SSL_COMP;
27242}
27243unsafe extern "C" {
27244    pub fn SSL_cache_hit(ssl: *mut SSL) -> ::core::ffi::c_int;
27245}
27246unsafe extern "C" {
27247    pub fn SSL_get_default_timeout(ssl: *const SSL) -> ::core::ffi::c_long;
27248}
27249unsafe extern "C" {
27250    pub fn SSL_get_version(ssl: *const SSL) -> *const ::core::ffi::c_char;
27251}
27252unsafe extern "C" {
27253    pub fn SSL_get_all_version_names(out: *mut *const ::core::ffi::c_char, max_out: usize)
27254        -> usize;
27255}
27256unsafe extern "C" {
27257    pub fn SSL_get_cipher_list(
27258        ssl: *const SSL,
27259        n: ::core::ffi::c_int,
27260    ) -> *const ::core::ffi::c_char;
27261}
27262unsafe extern "C" {
27263    pub fn SSL_CTX_set_client_cert_cb(
27264        ctx: *mut SSL_CTX,
27265        cb: ::core::option::Option<
27266            unsafe extern "C" fn(
27267                ssl: *mut SSL,
27268                out_x509: *mut *mut X509,
27269                out_pkey: *mut *mut EVP_PKEY,
27270            ) -> ::core::ffi::c_int,
27271        >,
27272    );
27273}
27274unsafe extern "C" {
27275    pub fn SSL_want(ssl: *const SSL) -> ::core::ffi::c_int;
27276}
27277unsafe extern "C" {
27278    pub fn SSL_get_finished(ssl: *const SSL, buf: *mut ::core::ffi::c_void, count: usize) -> usize;
27279}
27280unsafe extern "C" {
27281    pub fn SSL_get_peer_finished(
27282        ssl: *const SSL,
27283        buf: *mut ::core::ffi::c_void,
27284        count: usize,
27285    ) -> usize;
27286}
27287unsafe extern "C" {
27288    pub fn SSL_alert_type_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
27289}
27290unsafe extern "C" {
27291    pub fn SSL_alert_desc_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
27292}
27293unsafe extern "C" {
27294    pub fn SSL_state_string(ssl: *const SSL) -> *const ::core::ffi::c_char;
27295}
27296#[repr(C)]
27297#[derive(Debug)]
27298pub struct ssl_conf_ctx_st {
27299    _unused: [u8; 0],
27300}
27301pub type SSL_CONF_CTX = ssl_conf_ctx_st;
27302unsafe extern "C" {
27303    pub fn SSL_state(ssl: *const SSL) -> ::core::ffi::c_int;
27304}
27305unsafe extern "C" {
27306    pub fn SSL_set_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
27307}
27308unsafe extern "C" {
27309    pub fn SSL_CTX_set_tmp_ecdh(ctx: *mut SSL_CTX, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
27310}
27311unsafe extern "C" {
27312    pub fn SSL_set_tmp_ecdh(ssl: *mut SSL, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
27313}
27314unsafe extern "C" {
27315    pub fn SSL_add_dir_cert_subjects_to_stack(
27316        out: *mut stack_st_X509_NAME,
27317        dir: *const ::core::ffi::c_char,
27318    ) -> ::core::ffi::c_int;
27319}
27320unsafe extern "C" {
27321    pub fn SSL_CTX_enable_tls_channel_id(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
27322}
27323unsafe extern "C" {
27324    pub fn SSL_enable_tls_channel_id(ssl: *mut SSL) -> ::core::ffi::c_int;
27325}
27326unsafe extern "C" {
27327    pub fn BIO_f_ssl() -> *const BIO_METHOD;
27328}
27329unsafe extern "C" {
27330    pub fn BIO_set_ssl(
27331        bio: *mut BIO,
27332        ssl: *mut SSL,
27333        take_owership: ::core::ffi::c_int,
27334    ) -> ::core::ffi::c_long;
27335}
27336unsafe extern "C" {
27337    pub fn SSL_get_session(ssl: *const SSL) -> *mut SSL_SESSION;
27338}
27339unsafe extern "C" {
27340    pub fn SSL_get1_session(ssl: *mut SSL) -> *mut SSL_SESSION;
27341}
27342unsafe extern "C" {
27343    pub fn OPENSSL_init_ssl(
27344        opts: u64,
27345        settings: *const OPENSSL_INIT_SETTINGS,
27346    ) -> ::core::ffi::c_int;
27347}
27348unsafe extern "C" {
27349    pub fn SSL_set_tlsext_status_type(
27350        ssl: *mut SSL,
27351        type_: ::core::ffi::c_int,
27352    ) -> ::core::ffi::c_int;
27353}
27354unsafe extern "C" {
27355    pub fn SSL_get_tlsext_status_type(ssl: *const SSL) -> ::core::ffi::c_int;
27356}
27357unsafe extern "C" {
27358    pub fn SSL_set_tlsext_status_ocsp_resp(
27359        ssl: *mut SSL,
27360        resp: *mut u8,
27361        resp_len: usize,
27362    ) -> ::core::ffi::c_int;
27363}
27364unsafe extern "C" {
27365    pub fn SSL_get_tlsext_status_ocsp_resp(ssl: *const SSL, out: *mut *const u8) -> usize;
27366}
27367unsafe extern "C" {
27368    pub fn SSL_CTX_set_tlsext_status_cb(
27369        ctx: *mut SSL_CTX,
27370        callback: ::core::option::Option<
27371            unsafe extern "C" fn(
27372                ssl: *mut SSL,
27373                arg: *mut ::core::ffi::c_void,
27374            ) -> ::core::ffi::c_int,
27375        >,
27376    ) -> ::core::ffi::c_int;
27377}
27378unsafe extern "C" {
27379    pub fn SSL_CTX_set_tlsext_status_arg(
27380        ctx: *mut SSL_CTX,
27381        arg: *mut ::core::ffi::c_void,
27382    ) -> ::core::ffi::c_int;
27383}
27384unsafe extern "C" {
27385    pub fn SSL_get_curve_id(ssl: *const SSL) -> u16;
27386}
27387unsafe extern "C" {
27388    pub fn SSL_get_curve_name(curve_id: u16) -> *const ::core::ffi::c_char;
27389}
27390unsafe extern "C" {
27391    pub fn SSL_get_all_curve_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
27392}
27393unsafe extern "C" {
27394    pub fn SSL_CTX_set1_curves(
27395        ctx: *mut SSL_CTX,
27396        curves: *const ::core::ffi::c_int,
27397        num_curves: usize,
27398    ) -> ::core::ffi::c_int;
27399}
27400unsafe extern "C" {
27401    pub fn SSL_set1_curves(
27402        ssl: *mut SSL,
27403        curves: *const ::core::ffi::c_int,
27404        num_curves: usize,
27405    ) -> ::core::ffi::c_int;
27406}
27407unsafe extern "C" {
27408    pub fn SSL_CTX_set1_curves_list(
27409        ctx: *mut SSL_CTX,
27410        curves: *const ::core::ffi::c_char,
27411    ) -> ::core::ffi::c_int;
27412}
27413unsafe extern "C" {
27414    pub fn SSL_set1_curves_list(
27415        ssl: *mut SSL,
27416        curves: *const ::core::ffi::c_char,
27417    ) -> ::core::ffi::c_int;
27418}
27419unsafe extern "C" {
27420    pub fn SSL_CTX_check_private_key(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27421}
27422unsafe extern "C" {
27423    pub fn SSL_check_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
27424}
27425unsafe extern "C" {
27426    pub fn SSL_CTX_get_security_level(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27427}
27428unsafe extern "C" {
27429    pub fn SSL_CTX_set0_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
27430}
27431pub const ssl_compliance_policy_t_ssl_compliance_policy_none: ssl_compliance_policy_t = 0;
27432pub const ssl_compliance_policy_t_ssl_compliance_policy_fips_202205: ssl_compliance_policy_t = 1;
27433pub const ssl_compliance_policy_t_ssl_compliance_policy_fips_202609: ssl_compliance_policy_t = 2;
27434pub const ssl_compliance_policy_t_ssl_compliance_policy_wpa3_192_202304: ssl_compliance_policy_t =
27435    3;
27436pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa_202407: ssl_compliance_policy_t = 4;
27437pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa1_202603: ssl_compliance_policy_t = 5;
27438pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa2_202603: ssl_compliance_policy_t = 6;
27439pub type ssl_compliance_policy_t = ::core::ffi::c_uint;
27440unsafe extern "C" {
27441    pub fn SSL_CTX_set_compliance_policy(
27442        ctx: *mut SSL_CTX,
27443        policy: ssl_compliance_policy_t,
27444    ) -> ::core::ffi::c_int;
27445}
27446unsafe extern "C" {
27447    pub fn SSL_CTX_get_compliance_policy(ctx: *const SSL_CTX) -> ssl_compliance_policy_t;
27448}
27449unsafe extern "C" {
27450    pub fn SSL_set_compliance_policy(
27451        ssl: *mut SSL,
27452        policy: ssl_compliance_policy_t,
27453    ) -> ::core::ffi::c_int;
27454}
27455unsafe extern "C" {
27456    pub fn SSL_get_compliance_policy(ssl: *const SSL) -> ssl_compliance_policy_t;
27457}
27458unsafe extern "C" {
27459    pub fn SSL_set_server_padding_request(ssl: *mut SSL, num_bytes: u16);
27460}
27461unsafe extern "C" {
27462    pub fn SSL_set_server_padding_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
27463}
27464unsafe extern "C" {
27465    pub fn SSL_server_sent_requested_padding(ssl: *const SSL) -> ::core::ffi::c_int;
27466}
27467unsafe extern "C" {
27468    pub fn CRYPTO_tls1_prf(
27469        digest: *const EVP_MD,
27470        out: *mut u8,
27471        out_len: usize,
27472        secret: *const u8,
27473        secret_len: usize,
27474        label: *const u8,
27475        label_len: usize,
27476        seed1: *const u8,
27477        seed1_len: usize,
27478        seed2: *const u8,
27479        seed2_len: usize,
27480    ) -> ::core::ffi::c_int;
27481}
27482unsafe extern "C" {
27483    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27484}
27485unsafe extern "C" {
27486    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27487}
27488unsafe extern "C" {
27489    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27490}
27491unsafe extern "C" {
27492    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27493}
27494unsafe extern "C" {
27495    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27496}
27497#[repr(C)]
27498#[derive(Debug, Copy, Clone)]
27499pub struct trust_token_st {
27500    pub data: *mut u8,
27501    pub len: usize,
27502}
27503#[repr(C)]
27504#[derive(Debug)]
27505pub struct stack_st_TRUST_TOKEN {
27506    _unused: [u8; 0],
27507}
27508pub type sk_TRUST_TOKEN_free_func =
27509    ::core::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27510pub type sk_TRUST_TOKEN_copy_func =
27511    ::core::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27512pub type sk_TRUST_TOKEN_cmp_func = ::core::option::Option<
27513    unsafe extern "C" fn(
27514        arg1: *const *const TRUST_TOKEN,
27515        arg2: *const *const TRUST_TOKEN,
27516    ) -> ::core::ffi::c_int,
27517>;
27518pub type sk_TRUST_TOKEN_delete_if_func = ::core::option::Option<
27519    unsafe extern "C" fn(
27520        arg1: *mut TRUST_TOKEN,
27521        arg2: *mut ::core::ffi::c_void,
27522    ) -> ::core::ffi::c_int,
27523>;
27524unsafe extern "C" {
27525    #[link_name = "sk_TRUST_TOKEN_call_free_func__extern"]
27526    pub fn sk_TRUST_TOKEN_call_free_func(
27527        free_func: OPENSSL_sk_free_func,
27528        ptr: *mut ::core::ffi::c_void,
27529    );
27530}
27531unsafe extern "C" {
27532    #[link_name = "sk_TRUST_TOKEN_call_copy_func__extern"]
27533    pub fn sk_TRUST_TOKEN_call_copy_func(
27534        copy_func: OPENSSL_sk_copy_func,
27535        ptr: *const ::core::ffi::c_void,
27536    ) -> *mut ::core::ffi::c_void;
27537}
27538unsafe extern "C" {
27539    #[link_name = "sk_TRUST_TOKEN_call_cmp_func__extern"]
27540    pub fn sk_TRUST_TOKEN_call_cmp_func(
27541        cmp_func: OPENSSL_sk_cmp_func,
27542        a: *const ::core::ffi::c_void,
27543        b: *const ::core::ffi::c_void,
27544    ) -> ::core::ffi::c_int;
27545}
27546unsafe extern "C" {
27547    #[link_name = "sk_TRUST_TOKEN_call_delete_if_func__extern"]
27548    pub fn sk_TRUST_TOKEN_call_delete_if_func(
27549        func: OPENSSL_sk_delete_if_func,
27550        obj: *mut ::core::ffi::c_void,
27551        data: *mut ::core::ffi::c_void,
27552    ) -> ::core::ffi::c_int;
27553}
27554unsafe extern "C" {
27555    #[link_name = "sk_TRUST_TOKEN_new__extern"]
27556    pub fn sk_TRUST_TOKEN_new(comp: sk_TRUST_TOKEN_cmp_func) -> *mut stack_st_TRUST_TOKEN;
27557}
27558unsafe extern "C" {
27559    #[link_name = "sk_TRUST_TOKEN_new_null__extern"]
27560    pub fn sk_TRUST_TOKEN_new_null() -> *mut stack_st_TRUST_TOKEN;
27561}
27562unsafe extern "C" {
27563    #[link_name = "sk_TRUST_TOKEN_num__extern"]
27564    pub fn sk_TRUST_TOKEN_num(sk: *const stack_st_TRUST_TOKEN) -> usize;
27565}
27566unsafe extern "C" {
27567    #[link_name = "sk_TRUST_TOKEN_zero__extern"]
27568    pub fn sk_TRUST_TOKEN_zero(sk: *mut stack_st_TRUST_TOKEN);
27569}
27570unsafe extern "C" {
27571    #[link_name = "sk_TRUST_TOKEN_value__extern"]
27572    pub fn sk_TRUST_TOKEN_value(sk: *const stack_st_TRUST_TOKEN, i: usize) -> *mut TRUST_TOKEN;
27573}
27574unsafe extern "C" {
27575    #[link_name = "sk_TRUST_TOKEN_last__extern"]
27576    pub fn sk_TRUST_TOKEN_last(sk: *const stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27577}
27578unsafe extern "C" {
27579    #[link_name = "sk_TRUST_TOKEN_set__extern"]
27580    pub fn sk_TRUST_TOKEN_set(
27581        sk: *mut stack_st_TRUST_TOKEN,
27582        i: usize,
27583        p: *mut TRUST_TOKEN,
27584    ) -> *mut TRUST_TOKEN;
27585}
27586unsafe extern "C" {
27587    #[link_name = "sk_TRUST_TOKEN_free__extern"]
27588    pub fn sk_TRUST_TOKEN_free(sk: *mut stack_st_TRUST_TOKEN);
27589}
27590unsafe extern "C" {
27591    #[link_name = "sk_TRUST_TOKEN_pop_free__extern"]
27592    pub fn sk_TRUST_TOKEN_pop_free(
27593        sk: *mut stack_st_TRUST_TOKEN,
27594        free_func: sk_TRUST_TOKEN_free_func,
27595    );
27596}
27597unsafe extern "C" {
27598    #[link_name = "sk_TRUST_TOKEN_insert__extern"]
27599    pub fn sk_TRUST_TOKEN_insert(
27600        sk: *mut stack_st_TRUST_TOKEN,
27601        p: *mut TRUST_TOKEN,
27602        where_: usize,
27603    ) -> usize;
27604}
27605unsafe extern "C" {
27606    #[link_name = "sk_TRUST_TOKEN_delete__extern"]
27607    pub fn sk_TRUST_TOKEN_delete(sk: *mut stack_st_TRUST_TOKEN, where_: usize) -> *mut TRUST_TOKEN;
27608}
27609unsafe extern "C" {
27610    #[link_name = "sk_TRUST_TOKEN_delete_ptr__extern"]
27611    pub fn sk_TRUST_TOKEN_delete_ptr(
27612        sk: *mut stack_st_TRUST_TOKEN,
27613        p: *const TRUST_TOKEN,
27614    ) -> *mut TRUST_TOKEN;
27615}
27616unsafe extern "C" {
27617    #[link_name = "sk_TRUST_TOKEN_delete_if__extern"]
27618    pub fn sk_TRUST_TOKEN_delete_if(
27619        sk: *mut stack_st_TRUST_TOKEN,
27620        func: sk_TRUST_TOKEN_delete_if_func,
27621        data: *mut ::core::ffi::c_void,
27622    );
27623}
27624unsafe extern "C" {
27625    #[link_name = "sk_TRUST_TOKEN_find__extern"]
27626    pub fn sk_TRUST_TOKEN_find(
27627        sk: *const stack_st_TRUST_TOKEN,
27628        out_index: *mut usize,
27629        p: *const TRUST_TOKEN,
27630    ) -> ::core::ffi::c_int;
27631}
27632unsafe extern "C" {
27633    #[link_name = "sk_TRUST_TOKEN_shift__extern"]
27634    pub fn sk_TRUST_TOKEN_shift(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27635}
27636unsafe extern "C" {
27637    #[link_name = "sk_TRUST_TOKEN_push__extern"]
27638    pub fn sk_TRUST_TOKEN_push(sk: *mut stack_st_TRUST_TOKEN, p: *mut TRUST_TOKEN) -> usize;
27639}
27640unsafe extern "C" {
27641    #[link_name = "sk_TRUST_TOKEN_pop__extern"]
27642    pub fn sk_TRUST_TOKEN_pop(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27643}
27644unsafe extern "C" {
27645    #[link_name = "sk_TRUST_TOKEN_dup__extern"]
27646    pub fn sk_TRUST_TOKEN_dup(sk: *const stack_st_TRUST_TOKEN) -> *mut stack_st_TRUST_TOKEN;
27647}
27648unsafe extern "C" {
27649    #[link_name = "sk_TRUST_TOKEN_sort__extern"]
27650    pub fn sk_TRUST_TOKEN_sort(sk: *mut stack_st_TRUST_TOKEN);
27651}
27652unsafe extern "C" {
27653    #[link_name = "sk_TRUST_TOKEN_sort_and_dedup__extern"]
27654    pub fn sk_TRUST_TOKEN_sort_and_dedup(
27655        sk: *mut stack_st_TRUST_TOKEN,
27656        free_func: sk_TRUST_TOKEN_free_func,
27657    );
27658}
27659unsafe extern "C" {
27660    #[link_name = "sk_TRUST_TOKEN_is_sorted__extern"]
27661    pub fn sk_TRUST_TOKEN_is_sorted(sk: *const stack_st_TRUST_TOKEN) -> ::core::ffi::c_int;
27662}
27663unsafe extern "C" {
27664    #[link_name = "sk_TRUST_TOKEN_set_cmp_func__extern"]
27665    pub fn sk_TRUST_TOKEN_set_cmp_func(
27666        sk: *mut stack_st_TRUST_TOKEN,
27667        comp: sk_TRUST_TOKEN_cmp_func,
27668    ) -> sk_TRUST_TOKEN_cmp_func;
27669}
27670unsafe extern "C" {
27671    #[link_name = "sk_TRUST_TOKEN_deep_copy__extern"]
27672    pub fn sk_TRUST_TOKEN_deep_copy(
27673        sk: *const stack_st_TRUST_TOKEN,
27674        copy_func: sk_TRUST_TOKEN_copy_func,
27675        free_func: sk_TRUST_TOKEN_free_func,
27676    ) -> *mut stack_st_TRUST_TOKEN;
27677}
27678unsafe extern "C" {
27679    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27680}
27681unsafe extern "C" {
27682    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27683}
27684unsafe extern "C" {
27685    pub fn TRUST_TOKEN_generate_key(
27686        method: *const TRUST_TOKEN_METHOD,
27687        out_priv_key: *mut u8,
27688        out_priv_key_len: *mut usize,
27689        max_priv_key_len: usize,
27690        out_pub_key: *mut u8,
27691        out_pub_key_len: *mut usize,
27692        max_pub_key_len: usize,
27693        id: u32,
27694    ) -> ::core::ffi::c_int;
27695}
27696unsafe extern "C" {
27697    pub fn TRUST_TOKEN_derive_key_from_secret(
27698        method: *const TRUST_TOKEN_METHOD,
27699        out_priv_key: *mut u8,
27700        out_priv_key_len: *mut usize,
27701        max_priv_key_len: usize,
27702        out_pub_key: *mut u8,
27703        out_pub_key_len: *mut usize,
27704        max_pub_key_len: usize,
27705        id: u32,
27706        secret: *const u8,
27707        secret_len: usize,
27708    ) -> ::core::ffi::c_int;
27709}
27710unsafe extern "C" {
27711    pub fn TRUST_TOKEN_CLIENT_new(
27712        method: *const TRUST_TOKEN_METHOD,
27713        max_batchsize: usize,
27714    ) -> *mut TRUST_TOKEN_CLIENT;
27715}
27716unsafe extern "C" {
27717    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27718}
27719unsafe extern "C" {
27720    pub fn TRUST_TOKEN_CLIENT_dup_for_testing(
27721        ctx: *const TRUST_TOKEN_CLIENT,
27722    ) -> *mut TRUST_TOKEN_CLIENT;
27723}
27724unsafe extern "C" {
27725    pub fn TRUST_TOKEN_CLIENT_add_key(
27726        ctx: *mut TRUST_TOKEN_CLIENT,
27727        out_key_index: *mut usize,
27728        key: *const u8,
27729        key_len: usize,
27730    ) -> ::core::ffi::c_int;
27731}
27732unsafe extern "C" {
27733    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27734        ctx: *mut TRUST_TOKEN_CLIENT,
27735        key: *mut EVP_PKEY,
27736    ) -> ::core::ffi::c_int;
27737}
27738unsafe extern "C" {
27739    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27740        ctx: *mut TRUST_TOKEN_CLIENT,
27741        out: *mut *mut u8,
27742        out_len: *mut usize,
27743        count: usize,
27744    ) -> ::core::ffi::c_int;
27745}
27746unsafe extern "C" {
27747    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27748        ctx: *mut TRUST_TOKEN_CLIENT,
27749        out: *mut *mut u8,
27750        out_len: *mut usize,
27751        count: usize,
27752        msg: *const u8,
27753        msg_len: usize,
27754    ) -> ::core::ffi::c_int;
27755}
27756unsafe extern "C" {
27757    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27758        ctx: *mut TRUST_TOKEN_CLIENT,
27759        out_key_index: *mut usize,
27760        response: *const u8,
27761        response_len: usize,
27762    ) -> *mut stack_st_TRUST_TOKEN;
27763}
27764unsafe extern "C" {
27765    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27766        ctx: *mut TRUST_TOKEN_CLIENT,
27767        out: *mut *mut u8,
27768        out_len: *mut usize,
27769        token: *const TRUST_TOKEN,
27770        data: *const u8,
27771        data_len: usize,
27772        time: u64,
27773    ) -> ::core::ffi::c_int;
27774}
27775unsafe extern "C" {
27776    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27777        ctx: *mut TRUST_TOKEN_CLIENT,
27778        out_rr: *mut *mut u8,
27779        out_rr_len: *mut usize,
27780        out_sig: *mut *mut u8,
27781        out_sig_len: *mut usize,
27782        response: *const u8,
27783        response_len: usize,
27784    ) -> ::core::ffi::c_int;
27785}
27786unsafe extern "C" {
27787    pub fn TRUST_TOKEN_ISSUER_new(
27788        method: *const TRUST_TOKEN_METHOD,
27789        max_batchsize: usize,
27790    ) -> *mut TRUST_TOKEN_ISSUER;
27791}
27792unsafe extern "C" {
27793    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27794}
27795unsafe extern "C" {
27796    pub fn TRUST_TOKEN_ISSUER_add_key(
27797        ctx: *mut TRUST_TOKEN_ISSUER,
27798        key: *const u8,
27799        key_len: usize,
27800    ) -> ::core::ffi::c_int;
27801}
27802unsafe extern "C" {
27803    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27804        ctx: *mut TRUST_TOKEN_ISSUER,
27805        key: *mut EVP_PKEY,
27806    ) -> ::core::ffi::c_int;
27807}
27808unsafe extern "C" {
27809    pub fn TRUST_TOKEN_ISSUER_issue(
27810        ctx: *const TRUST_TOKEN_ISSUER,
27811        out: *mut *mut u8,
27812        out_len: *mut usize,
27813        out_tokens_issued: *mut usize,
27814        request: *const u8,
27815        request_len: usize,
27816        public_metadata: u32,
27817        private_metadata: u8,
27818        max_issuance: usize,
27819    ) -> ::core::ffi::c_int;
27820}
27821unsafe extern "C" {
27822    pub fn TRUST_TOKEN_ISSUER_redeem(
27823        ctx: *const TRUST_TOKEN_ISSUER,
27824        out_public: *mut u32,
27825        out_private: *mut u8,
27826        out_token: *mut *mut TRUST_TOKEN,
27827        out_client_data: *mut *mut u8,
27828        out_client_data_len: *mut usize,
27829        request: *const u8,
27830        request_len: usize,
27831    ) -> ::core::ffi::c_int;
27832}
27833unsafe extern "C" {
27834    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27835        ctx: *const TRUST_TOKEN_ISSUER,
27836        out_public: *mut u32,
27837        out_private: *mut u8,
27838        out_token: *mut *mut TRUST_TOKEN,
27839        out_client_data: *mut *mut u8,
27840        out_client_data_len: *mut usize,
27841        request: *const u8,
27842        request_len: usize,
27843        msg: *const u8,
27844        msg_len: usize,
27845    ) -> ::core::ffi::c_int;
27846}
27847unsafe extern "C" {
27848    pub fn TRUST_TOKEN_decode_private_metadata(
27849        method: *const TRUST_TOKEN_METHOD,
27850        out_value: *mut u8,
27851        key: *const u8,
27852        key_len: usize,
27853        nonce: *const u8,
27854        nonce_len: usize,
27855        encrypted_bit: u8,
27856    ) -> ::core::ffi::c_int;
27857}
27858pub type __builtin_va_list = [__va_list_tag; 1usize];
27859#[repr(C)]
27860#[derive(Debug, Copy, Clone)]
27861pub struct __va_list_tag {
27862    pub gp_offset: ::core::ffi::c_uint,
27863    pub fp_offset: ::core::ffi::c_uint,
27864    pub overflow_arg_area: *mut ::core::ffi::c_void,
27865    pub reg_save_area: *mut ::core::ffi::c_void,
27866}
27867#[repr(C)]
27868#[derive(Debug, Copy, Clone)]
27869pub struct CRYPTO_dynlock_value {
27870    pub _address: u8,
27871}
27872
27873// LINT.ThenChange(
27874//    //third_party/boringssl/src/include/openssl/aead.h |
27875//    //third_party/boringssl/src/include/openssl/aes.h |
27876//    //third_party/boringssl/src/include/openssl/asn1.h |
27877//    //third_party/boringssl/src/include/openssl/asn1t.h |
27878//    //third_party/boringssl/src/include/openssl/base.h |
27879//    //third_party/boringssl/src/include/openssl/base64.h |
27880//    //third_party/boringssl/src/include/openssl/bio.h |
27881//    //third_party/boringssl/src/include/openssl/blake2.h |
27882//    //third_party/boringssl/src/include/openssl/blowfish.h |
27883//    //third_party/boringssl/src/include/openssl/bn.h |
27884//    //third_party/boringssl/src/include/openssl/buf.h |
27885//    //third_party/boringssl/src/include/openssl/buffer.h |
27886//    //third_party/boringssl/src/include/openssl/bytestring.h |
27887//    //third_party/boringssl/src/include/openssl/cast.h |
27888//    //third_party/boringssl/src/include/openssl/chacha.h |
27889//    //third_party/boringssl/src/include/openssl/cipher.h |
27890//    //third_party/boringssl/src/include/openssl/cmac.h |
27891//    //third_party/boringssl/src/include/openssl/conf.h |
27892//    //third_party/boringssl/src/include/openssl/cpu.h |
27893//    //third_party/boringssl/src/include/openssl/crypto.h |
27894//    //third_party/boringssl/src/include/openssl/ctrdrbg.h |
27895//    //third_party/boringssl/src/include/openssl/curve25519.h |
27896//    //third_party/boringssl/src/include/openssl/des.h |
27897//    //third_party/boringssl/src/include/openssl/dh.h |
27898//    //third_party/boringssl/src/include/openssl/digest.h |
27899//    //third_party/boringssl/src/include/openssl/dsa.h |
27900//    //third_party/boringssl/src/include/openssl/dtls1.h |
27901//    //third_party/boringssl/src/include/openssl/e_os2.h |
27902//    //third_party/boringssl/src/include/openssl/ec.h |
27903//    //third_party/boringssl/src/include/openssl/ec_key.h |
27904//    //third_party/boringssl/src/include/openssl/ecdh.h |
27905//    //third_party/boringssl/src/include/openssl/ecdsa.h |
27906//    //third_party/boringssl/src/include/openssl/engine.h |
27907//    //third_party/boringssl/src/include/openssl/err.h |
27908//    //third_party/boringssl/src/include/openssl/evp.h |
27909//    //third_party/boringssl/src/include/openssl/evp_errors.h |
27910//    //third_party/boringssl/src/include/openssl/ex_data.h |
27911//    //third_party/boringssl/src/include/openssl/hkdf.h |
27912//    //third_party/boringssl/src/include/openssl/hmac.h |
27913//    //third_party/boringssl/src/include/openssl/hpke.h |
27914//    //third_party/boringssl/src/include/openssl/hrss.h |
27915//    //third_party/boringssl/src/include/openssl/is_boringssl.h |
27916//    //third_party/boringssl/src/include/openssl/kdf.h |
27917//    //third_party/boringssl/src/include/openssl/lhash.h |
27918//    //third_party/boringssl/src/include/openssl/md4.h |
27919//    //third_party/boringssl/src/include/openssl/md5.h |
27920//    //third_party/boringssl/src/include/openssl/mem.h |
27921//    //third_party/boringssl/src/include/openssl/mldsa.h |
27922//    //third_party/boringssl/src/include/openssl/mlkem.h |
27923//    //third_party/boringssl/src/include/openssl/nid.h |
27924//    //third_party/boringssl/src/include/openssl/obj.h |
27925//    //third_party/boringssl/src/include/openssl/obj_mac.h |
27926//    //third_party/boringssl/src/include/openssl/objects.h |
27927//    //third_party/boringssl/src/include/openssl/opensslconf.h |
27928//    //third_party/boringssl/src/include/openssl/opensslv.h |
27929//    //third_party/boringssl/src/include/openssl/ossl_typ.h |
27930//    //third_party/boringssl/src/include/openssl/pem.h |
27931//    //third_party/boringssl/src/include/openssl/pkcs12.h |
27932//    //third_party/boringssl/src/include/openssl/pkcs7.h |
27933//    //third_party/boringssl/src/include/openssl/pkcs8.h |
27934//    //third_party/boringssl/src/include/openssl/poly1305.h |
27935//    //third_party/boringssl/src/include/openssl/pool.h |
27936//    //third_party/boringssl/src/include/openssl/rand.h |
27937//    //third_party/boringssl/src/include/openssl/rc4.h |
27938//    //third_party/boringssl/src/include/openssl/ripemd.h |
27939//    //third_party/boringssl/src/include/openssl/rsa.h |
27940//    //third_party/boringssl/src/include/openssl/safestack.h |
27941//    //third_party/boringssl/src/include/openssl/sha.h |
27942//    //third_party/boringssl/src/include/openssl/sha2.h |
27943//    //third_party/boringssl/src/include/openssl/siphash.h |
27944//    //third_party/boringssl/src/include/openssl/slhdsa.h |
27945//    //third_party/boringssl/src/include/openssl/span.h |
27946//    //third_party/boringssl/src/include/openssl/srtp.h |
27947//    //third_party/boringssl/src/include/openssl/ssl.h |
27948//    //third_party/boringssl/src/include/openssl/ssl3.h |
27949//    //third_party/boringssl/src/include/openssl/stack.h |
27950//    //third_party/boringssl/src/include/openssl/target.h |
27951//    //third_party/boringssl/src/include/openssl/thread.h |
27952//    //third_party/boringssl/src/include/openssl/tls1.h |
27953//    //third_party/boringssl/src/include/openssl/tls_prf.h |
27954//    //third_party/boringssl/src/include/openssl/trust_token.h |
27955//    //third_party/boringssl/src/include/openssl/x509.h |
27956//    //third_party/boringssl/src/include/openssl/x509_vfy.h |
27957//    //third_party/boringssl/src/include/openssl/x509v3.h |
27958//    //third_party/boringssl/src/include/openssl/x509v3_errors.h |
27959//    //third_party/boringssl/src/rust/bssl-sys/wrapper.h
27960//)