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_OPERATON_NOT_INITIALIZED: i32 = 126;
1213pub const EVP_AEAD_MAX_KEY_LENGTH: i32 = 80;
1214pub const EVP_AEAD_MAX_NONCE_LENGTH: i32 = 24;
1215pub const EVP_AEAD_MAX_OVERHEAD: i32 = 64;
1216pub const EVP_AEAD_MAX_OPEN_OVERHEAD: i32 = 320;
1217pub const EVP_AEAD_DEFAULT_TAG_LENGTH: i32 = 0;
1218pub const SN_undef: &[u8; 6] = b"UNDEF\0";
1219pub const LN_undef: &[u8; 10] = b"undefined\0";
1220pub const NID_undef: i32 = 0;
1221pub const OBJ_undef: i32 = 0;
1222pub const SN_rsadsi: &[u8; 7] = b"rsadsi\0";
1223pub const LN_rsadsi: &[u8; 24] = b"RSA Data Security, Inc.\0";
1224pub const NID_rsadsi: i32 = 1;
1225pub const SN_pkcs: &[u8; 5] = b"pkcs\0";
1226pub const LN_pkcs: &[u8; 29] = b"RSA Data Security, Inc. PKCS\0";
1227pub const NID_pkcs: i32 = 2;
1228pub const SN_md2: &[u8; 4] = b"MD2\0";
1229pub const LN_md2: &[u8; 4] = b"md2\0";
1230pub const NID_md2: i32 = 3;
1231pub const SN_md5: &[u8; 4] = b"MD5\0";
1232pub const LN_md5: &[u8; 4] = b"md5\0";
1233pub const NID_md5: i32 = 4;
1234pub const SN_rc4: &[u8; 4] = b"RC4\0";
1235pub const LN_rc4: &[u8; 4] = b"rc4\0";
1236pub const NID_rc4: i32 = 5;
1237pub const LN_rsaEncryption: &[u8; 14] = b"rsaEncryption\0";
1238pub const NID_rsaEncryption: i32 = 6;
1239pub const SN_md2WithRSAEncryption: &[u8; 8] = b"RSA-MD2\0";
1240pub const LN_md2WithRSAEncryption: &[u8; 21] = b"md2WithRSAEncryption\0";
1241pub const NID_md2WithRSAEncryption: i32 = 7;
1242pub const SN_md5WithRSAEncryption: &[u8; 8] = b"RSA-MD5\0";
1243pub const LN_md5WithRSAEncryption: &[u8; 21] = b"md5WithRSAEncryption\0";
1244pub const NID_md5WithRSAEncryption: i32 = 8;
1245pub const SN_pbeWithMD2AndDES_CBC: &[u8; 12] = b"PBE-MD2-DES\0";
1246pub const LN_pbeWithMD2AndDES_CBC: &[u8; 21] = b"pbeWithMD2AndDES-CBC\0";
1247pub const NID_pbeWithMD2AndDES_CBC: i32 = 9;
1248pub const SN_pbeWithMD5AndDES_CBC: &[u8; 12] = b"PBE-MD5-DES\0";
1249pub const LN_pbeWithMD5AndDES_CBC: &[u8; 21] = b"pbeWithMD5AndDES-CBC\0";
1250pub const NID_pbeWithMD5AndDES_CBC: i32 = 10;
1251pub const SN_X500: &[u8; 5] = b"X500\0";
1252pub const LN_X500: &[u8; 27] = b"directory services (X.500)\0";
1253pub const NID_X500: i32 = 11;
1254pub const OBJ_ENC_X500: i32 = 85;
1255pub const SN_X509: &[u8; 5] = b"X509\0";
1256pub const NID_X509: i32 = 12;
1257pub const SN_commonName: &[u8; 3] = b"CN\0";
1258pub const LN_commonName: &[u8; 11] = b"commonName\0";
1259pub const NID_commonName: i32 = 13;
1260pub const SN_countryName: &[u8; 2] = b"C\0";
1261pub const LN_countryName: &[u8; 12] = b"countryName\0";
1262pub const NID_countryName: i32 = 14;
1263pub const SN_localityName: &[u8; 2] = b"L\0";
1264pub const LN_localityName: &[u8; 13] = b"localityName\0";
1265pub const NID_localityName: i32 = 15;
1266pub const SN_stateOrProvinceName: &[u8; 3] = b"ST\0";
1267pub const LN_stateOrProvinceName: &[u8; 20] = b"stateOrProvinceName\0";
1268pub const NID_stateOrProvinceName: i32 = 16;
1269pub const SN_organizationName: &[u8; 2] = b"O\0";
1270pub const LN_organizationName: &[u8; 17] = b"organizationName\0";
1271pub const NID_organizationName: i32 = 17;
1272pub const SN_organizationalUnitName: &[u8; 3] = b"OU\0";
1273pub const LN_organizationalUnitName: &[u8; 23] = b"organizationalUnitName\0";
1274pub const NID_organizationalUnitName: i32 = 18;
1275pub const SN_rsa: &[u8; 4] = b"RSA\0";
1276pub const LN_rsa: &[u8; 4] = b"rsa\0";
1277pub const NID_rsa: i32 = 19;
1278pub const SN_pkcs7: &[u8; 6] = b"pkcs7\0";
1279pub const NID_pkcs7: i32 = 20;
1280pub const LN_pkcs7_data: &[u8; 11] = b"pkcs7-data\0";
1281pub const NID_pkcs7_data: i32 = 21;
1282pub const LN_pkcs7_signed: &[u8; 17] = b"pkcs7-signedData\0";
1283pub const NID_pkcs7_signed: i32 = 22;
1284pub const LN_pkcs7_enveloped: &[u8; 20] = b"pkcs7-envelopedData\0";
1285pub const NID_pkcs7_enveloped: i32 = 23;
1286pub const LN_pkcs7_signedAndEnveloped: &[u8; 29] = b"pkcs7-signedAndEnvelopedData\0";
1287pub const NID_pkcs7_signedAndEnveloped: i32 = 24;
1288pub const LN_pkcs7_digest: &[u8; 17] = b"pkcs7-digestData\0";
1289pub const NID_pkcs7_digest: i32 = 25;
1290pub const LN_pkcs7_encrypted: &[u8; 20] = b"pkcs7-encryptedData\0";
1291pub const NID_pkcs7_encrypted: i32 = 26;
1292pub const SN_pkcs3: &[u8; 6] = b"pkcs3\0";
1293pub const NID_pkcs3: i32 = 27;
1294pub const LN_dhKeyAgreement: &[u8; 15] = b"dhKeyAgreement\0";
1295pub const NID_dhKeyAgreement: i32 = 28;
1296pub const SN_des_ecb: &[u8; 8] = b"DES-ECB\0";
1297pub const LN_des_ecb: &[u8; 8] = b"des-ecb\0";
1298pub const NID_des_ecb: i32 = 29;
1299pub const SN_des_cfb64: &[u8; 8] = b"DES-CFB\0";
1300pub const LN_des_cfb64: &[u8; 8] = b"des-cfb\0";
1301pub const NID_des_cfb64: i32 = 30;
1302pub const SN_des_cbc: &[u8; 8] = b"DES-CBC\0";
1303pub const LN_des_cbc: &[u8; 8] = b"des-cbc\0";
1304pub const NID_des_cbc: i32 = 31;
1305pub const SN_des_ede_ecb: &[u8; 8] = b"DES-EDE\0";
1306pub const LN_des_ede_ecb: &[u8; 8] = b"des-ede\0";
1307pub const NID_des_ede_ecb: i32 = 32;
1308pub const SN_des_ede3_ecb: &[u8; 9] = b"DES-EDE3\0";
1309pub const LN_des_ede3_ecb: &[u8; 9] = b"des-ede3\0";
1310pub const NID_des_ede3_ecb: i32 = 33;
1311pub const SN_idea_cbc: &[u8; 9] = b"IDEA-CBC\0";
1312pub const LN_idea_cbc: &[u8; 9] = b"idea-cbc\0";
1313pub const NID_idea_cbc: i32 = 34;
1314pub const SN_idea_cfb64: &[u8; 9] = b"IDEA-CFB\0";
1315pub const LN_idea_cfb64: &[u8; 9] = b"idea-cfb\0";
1316pub const NID_idea_cfb64: i32 = 35;
1317pub const SN_idea_ecb: &[u8; 9] = b"IDEA-ECB\0";
1318pub const LN_idea_ecb: &[u8; 9] = b"idea-ecb\0";
1319pub const NID_idea_ecb: i32 = 36;
1320pub const SN_rc2_cbc: &[u8; 8] = b"RC2-CBC\0";
1321pub const LN_rc2_cbc: &[u8; 8] = b"rc2-cbc\0";
1322pub const NID_rc2_cbc: i32 = 37;
1323pub const SN_rc2_ecb: &[u8; 8] = b"RC2-ECB\0";
1324pub const LN_rc2_ecb: &[u8; 8] = b"rc2-ecb\0";
1325pub const NID_rc2_ecb: i32 = 38;
1326pub const SN_rc2_cfb64: &[u8; 8] = b"RC2-CFB\0";
1327pub const LN_rc2_cfb64: &[u8; 8] = b"rc2-cfb\0";
1328pub const NID_rc2_cfb64: i32 = 39;
1329pub const SN_rc2_ofb64: &[u8; 8] = b"RC2-OFB\0";
1330pub const LN_rc2_ofb64: &[u8; 8] = b"rc2-ofb\0";
1331pub const NID_rc2_ofb64: i32 = 40;
1332pub const SN_sha: &[u8; 4] = b"SHA\0";
1333pub const LN_sha: &[u8; 4] = b"sha\0";
1334pub const NID_sha: i32 = 41;
1335pub const SN_shaWithRSAEncryption: &[u8; 8] = b"RSA-SHA\0";
1336pub const LN_shaWithRSAEncryption: &[u8; 21] = b"shaWithRSAEncryption\0";
1337pub const NID_shaWithRSAEncryption: i32 = 42;
1338pub const SN_des_ede_cbc: &[u8; 12] = b"DES-EDE-CBC\0";
1339pub const LN_des_ede_cbc: &[u8; 12] = b"des-ede-cbc\0";
1340pub const NID_des_ede_cbc: i32 = 43;
1341pub const SN_des_ede3_cbc: &[u8; 13] = b"DES-EDE3-CBC\0";
1342pub const LN_des_ede3_cbc: &[u8; 13] = b"des-ede3-cbc\0";
1343pub const NID_des_ede3_cbc: i32 = 44;
1344pub const SN_des_ofb64: &[u8; 8] = b"DES-OFB\0";
1345pub const LN_des_ofb64: &[u8; 8] = b"des-ofb\0";
1346pub const NID_des_ofb64: i32 = 45;
1347pub const SN_idea_ofb64: &[u8; 9] = b"IDEA-OFB\0";
1348pub const LN_idea_ofb64: &[u8; 9] = b"idea-ofb\0";
1349pub const NID_idea_ofb64: i32 = 46;
1350pub const SN_pkcs9: &[u8; 6] = b"pkcs9\0";
1351pub const NID_pkcs9: i32 = 47;
1352pub const LN_pkcs9_emailAddress: &[u8; 13] = b"emailAddress\0";
1353pub const NID_pkcs9_emailAddress: i32 = 48;
1354pub const LN_pkcs9_unstructuredName: &[u8; 17] = b"unstructuredName\0";
1355pub const NID_pkcs9_unstructuredName: i32 = 49;
1356pub const LN_pkcs9_contentType: &[u8; 12] = b"contentType\0";
1357pub const NID_pkcs9_contentType: i32 = 50;
1358pub const LN_pkcs9_messageDigest: &[u8; 14] = b"messageDigest\0";
1359pub const NID_pkcs9_messageDigest: i32 = 51;
1360pub const LN_pkcs9_signingTime: &[u8; 12] = b"signingTime\0";
1361pub const NID_pkcs9_signingTime: i32 = 52;
1362pub const LN_pkcs9_countersignature: &[u8; 17] = b"countersignature\0";
1363pub const NID_pkcs9_countersignature: i32 = 53;
1364pub const LN_pkcs9_challengePassword: &[u8; 18] = b"challengePassword\0";
1365pub const NID_pkcs9_challengePassword: i32 = 54;
1366pub const LN_pkcs9_unstructuredAddress: &[u8; 20] = b"unstructuredAddress\0";
1367pub const NID_pkcs9_unstructuredAddress: i32 = 55;
1368pub const LN_pkcs9_extCertAttributes: &[u8; 30] = b"extendedCertificateAttributes\0";
1369pub const NID_pkcs9_extCertAttributes: i32 = 56;
1370pub const SN_netscape: &[u8; 9] = b"Netscape\0";
1371pub const LN_netscape: &[u8; 30] = b"Netscape Communications Corp.\0";
1372pub const NID_netscape: i32 = 57;
1373pub const SN_netscape_cert_extension: &[u8; 10] = b"nsCertExt\0";
1374pub const LN_netscape_cert_extension: &[u8; 31] = b"Netscape Certificate Extension\0";
1375pub const NID_netscape_cert_extension: i32 = 58;
1376pub const SN_netscape_data_type: &[u8; 11] = b"nsDataType\0";
1377pub const LN_netscape_data_type: &[u8; 19] = b"Netscape Data Type\0";
1378pub const NID_netscape_data_type: i32 = 59;
1379pub const SN_des_ede_cfb64: &[u8; 12] = b"DES-EDE-CFB\0";
1380pub const LN_des_ede_cfb64: &[u8; 12] = b"des-ede-cfb\0";
1381pub const NID_des_ede_cfb64: i32 = 60;
1382pub const SN_des_ede3_cfb64: &[u8; 13] = b"DES-EDE3-CFB\0";
1383pub const LN_des_ede3_cfb64: &[u8; 13] = b"des-ede3-cfb\0";
1384pub const NID_des_ede3_cfb64: i32 = 61;
1385pub const SN_des_ede_ofb64: &[u8; 12] = b"DES-EDE-OFB\0";
1386pub const LN_des_ede_ofb64: &[u8; 12] = b"des-ede-ofb\0";
1387pub const NID_des_ede_ofb64: i32 = 62;
1388pub const SN_des_ede3_ofb64: &[u8; 13] = b"DES-EDE3-OFB\0";
1389pub const LN_des_ede3_ofb64: &[u8; 13] = b"des-ede3-ofb\0";
1390pub const NID_des_ede3_ofb64: i32 = 63;
1391pub const SN_sha1: &[u8; 5] = b"SHA1\0";
1392pub const LN_sha1: &[u8; 5] = b"sha1\0";
1393pub const NID_sha1: i32 = 64;
1394pub const SN_sha1WithRSAEncryption: &[u8; 9] = b"RSA-SHA1\0";
1395pub const LN_sha1WithRSAEncryption: &[u8; 22] = b"sha1WithRSAEncryption\0";
1396pub const NID_sha1WithRSAEncryption: i32 = 65;
1397pub const SN_dsaWithSHA: &[u8; 8] = b"DSA-SHA\0";
1398pub const LN_dsaWithSHA: &[u8; 11] = b"dsaWithSHA\0";
1399pub const NID_dsaWithSHA: i32 = 66;
1400pub const SN_dsa_2: &[u8; 8] = b"DSA-old\0";
1401pub const LN_dsa_2: &[u8; 18] = b"dsaEncryption-old\0";
1402pub const NID_dsa_2: i32 = 67;
1403pub const SN_pbeWithSHA1AndRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-64\0";
1404pub const LN_pbeWithSHA1AndRC2_CBC: &[u8; 22] = b"pbeWithSHA1AndRC2-CBC\0";
1405pub const NID_pbeWithSHA1AndRC2_CBC: i32 = 68;
1406pub const LN_id_pbkdf2: &[u8; 7] = b"PBKDF2\0";
1407pub const NID_id_pbkdf2: i32 = 69;
1408pub const SN_dsaWithSHA1_2: &[u8; 13] = b"DSA-SHA1-old\0";
1409pub const LN_dsaWithSHA1_2: &[u8; 16] = b"dsaWithSHA1-old\0";
1410pub const NID_dsaWithSHA1_2: i32 = 70;
1411pub const SN_netscape_cert_type: &[u8; 11] = b"nsCertType\0";
1412pub const LN_netscape_cert_type: &[u8; 19] = b"Netscape Cert Type\0";
1413pub const NID_netscape_cert_type: i32 = 71;
1414pub const SN_netscape_base_url: &[u8; 10] = b"nsBaseUrl\0";
1415pub const LN_netscape_base_url: &[u8; 18] = b"Netscape Base Url\0";
1416pub const NID_netscape_base_url: i32 = 72;
1417pub const SN_netscape_revocation_url: &[u8; 16] = b"nsRevocationUrl\0";
1418pub const LN_netscape_revocation_url: &[u8; 24] = b"Netscape Revocation Url\0";
1419pub const NID_netscape_revocation_url: i32 = 73;
1420pub const SN_netscape_ca_revocation_url: &[u8; 18] = b"nsCaRevocationUrl\0";
1421pub const LN_netscape_ca_revocation_url: &[u8; 27] = b"Netscape CA Revocation Url\0";
1422pub const NID_netscape_ca_revocation_url: i32 = 74;
1423pub const SN_netscape_renewal_url: &[u8; 13] = b"nsRenewalUrl\0";
1424pub const LN_netscape_renewal_url: &[u8; 21] = b"Netscape Renewal Url\0";
1425pub const NID_netscape_renewal_url: i32 = 75;
1426pub const SN_netscape_ca_policy_url: &[u8; 14] = b"nsCaPolicyUrl\0";
1427pub const LN_netscape_ca_policy_url: &[u8; 23] = b"Netscape CA Policy Url\0";
1428pub const NID_netscape_ca_policy_url: i32 = 76;
1429pub const SN_netscape_ssl_server_name: &[u8; 16] = b"nsSslServerName\0";
1430pub const LN_netscape_ssl_server_name: &[u8; 25] = b"Netscape SSL Server Name\0";
1431pub const NID_netscape_ssl_server_name: i32 = 77;
1432pub const SN_netscape_comment: &[u8; 10] = b"nsComment\0";
1433pub const LN_netscape_comment: &[u8; 17] = b"Netscape Comment\0";
1434pub const NID_netscape_comment: i32 = 78;
1435pub const SN_netscape_cert_sequence: &[u8; 15] = b"nsCertSequence\0";
1436pub const LN_netscape_cert_sequence: &[u8; 30] = b"Netscape Certificate Sequence\0";
1437pub const NID_netscape_cert_sequence: i32 = 79;
1438pub const SN_desx_cbc: &[u8; 9] = b"DESX-CBC\0";
1439pub const LN_desx_cbc: &[u8; 9] = b"desx-cbc\0";
1440pub const NID_desx_cbc: i32 = 80;
1441pub const SN_id_ce: &[u8; 6] = b"id-ce\0";
1442pub const NID_id_ce: i32 = 81;
1443pub const SN_subject_key_identifier: &[u8; 21] = b"subjectKeyIdentifier\0";
1444pub const LN_subject_key_identifier: &[u8; 30] = b"X509v3 Subject Key Identifier\0";
1445pub const NID_subject_key_identifier: i32 = 82;
1446pub const SN_key_usage: &[u8; 9] = b"keyUsage\0";
1447pub const LN_key_usage: &[u8; 17] = b"X509v3 Key Usage\0";
1448pub const NID_key_usage: i32 = 83;
1449pub const SN_private_key_usage_period: &[u8; 22] = b"privateKeyUsagePeriod\0";
1450pub const LN_private_key_usage_period: &[u8; 32] = b"X509v3 Private Key Usage Period\0";
1451pub const NID_private_key_usage_period: i32 = 84;
1452pub const SN_subject_alt_name: &[u8; 15] = b"subjectAltName\0";
1453pub const LN_subject_alt_name: &[u8; 32] = b"X509v3 Subject Alternative Name\0";
1454pub const NID_subject_alt_name: i32 = 85;
1455pub const SN_issuer_alt_name: &[u8; 14] = b"issuerAltName\0";
1456pub const LN_issuer_alt_name: &[u8; 31] = b"X509v3 Issuer Alternative Name\0";
1457pub const NID_issuer_alt_name: i32 = 86;
1458pub const SN_basic_constraints: &[u8; 17] = b"basicConstraints\0";
1459pub const LN_basic_constraints: &[u8; 25] = b"X509v3 Basic Constraints\0";
1460pub const NID_basic_constraints: i32 = 87;
1461pub const SN_crl_number: &[u8; 10] = b"crlNumber\0";
1462pub const LN_crl_number: &[u8; 18] = b"X509v3 CRL Number\0";
1463pub const NID_crl_number: i32 = 88;
1464pub const SN_certificate_policies: &[u8; 20] = b"certificatePolicies\0";
1465pub const LN_certificate_policies: &[u8; 28] = b"X509v3 Certificate Policies\0";
1466pub const NID_certificate_policies: i32 = 89;
1467pub const SN_authority_key_identifier: &[u8; 23] = b"authorityKeyIdentifier\0";
1468pub const LN_authority_key_identifier: &[u8; 32] = b"X509v3 Authority Key Identifier\0";
1469pub const NID_authority_key_identifier: i32 = 90;
1470pub const SN_bf_cbc: &[u8; 7] = b"BF-CBC\0";
1471pub const LN_bf_cbc: &[u8; 7] = b"bf-cbc\0";
1472pub const NID_bf_cbc: i32 = 91;
1473pub const SN_bf_ecb: &[u8; 7] = b"BF-ECB\0";
1474pub const LN_bf_ecb: &[u8; 7] = b"bf-ecb\0";
1475pub const NID_bf_ecb: i32 = 92;
1476pub const SN_bf_cfb64: &[u8; 7] = b"BF-CFB\0";
1477pub const LN_bf_cfb64: &[u8; 7] = b"bf-cfb\0";
1478pub const NID_bf_cfb64: i32 = 93;
1479pub const SN_bf_ofb64: &[u8; 7] = b"BF-OFB\0";
1480pub const LN_bf_ofb64: &[u8; 7] = b"bf-ofb\0";
1481pub const NID_bf_ofb64: i32 = 94;
1482pub const SN_mdc2: &[u8; 5] = b"MDC2\0";
1483pub const LN_mdc2: &[u8; 5] = b"mdc2\0";
1484pub const NID_mdc2: i32 = 95;
1485pub const SN_mdc2WithRSA: &[u8; 9] = b"RSA-MDC2\0";
1486pub const LN_mdc2WithRSA: &[u8; 12] = b"mdc2WithRSA\0";
1487pub const NID_mdc2WithRSA: i32 = 96;
1488pub const SN_rc4_40: &[u8; 7] = b"RC4-40\0";
1489pub const LN_rc4_40: &[u8; 7] = b"rc4-40\0";
1490pub const NID_rc4_40: i32 = 97;
1491pub const SN_rc2_40_cbc: &[u8; 11] = b"RC2-40-CBC\0";
1492pub const LN_rc2_40_cbc: &[u8; 11] = b"rc2-40-cbc\0";
1493pub const NID_rc2_40_cbc: i32 = 98;
1494pub const SN_givenName: &[u8; 3] = b"GN\0";
1495pub const LN_givenName: &[u8; 10] = b"givenName\0";
1496pub const NID_givenName: i32 = 99;
1497pub const SN_surname: &[u8; 3] = b"SN\0";
1498pub const LN_surname: &[u8; 8] = b"surname\0";
1499pub const NID_surname: i32 = 100;
1500pub const SN_initials: &[u8; 9] = b"initials\0";
1501pub const LN_initials: &[u8; 9] = b"initials\0";
1502pub const NID_initials: i32 = 101;
1503pub const SN_crl_distribution_points: &[u8; 22] = b"crlDistributionPoints\0";
1504pub const LN_crl_distribution_points: &[u8; 31] = b"X509v3 CRL Distribution Points\0";
1505pub const NID_crl_distribution_points: i32 = 103;
1506pub const SN_md5WithRSA: &[u8; 11] = b"RSA-NP-MD5\0";
1507pub const LN_md5WithRSA: &[u8; 11] = b"md5WithRSA\0";
1508pub const NID_md5WithRSA: i32 = 104;
1509pub const LN_serialNumber: &[u8; 13] = b"serialNumber\0";
1510pub const NID_serialNumber: i32 = 105;
1511pub const SN_title: &[u8; 6] = b"title\0";
1512pub const LN_title: &[u8; 6] = b"title\0";
1513pub const NID_title: i32 = 106;
1514pub const LN_description: &[u8; 12] = b"description\0";
1515pub const NID_description: i32 = 107;
1516pub const SN_cast5_cbc: &[u8; 10] = b"CAST5-CBC\0";
1517pub const LN_cast5_cbc: &[u8; 10] = b"cast5-cbc\0";
1518pub const NID_cast5_cbc: i32 = 108;
1519pub const SN_cast5_ecb: &[u8; 10] = b"CAST5-ECB\0";
1520pub const LN_cast5_ecb: &[u8; 10] = b"cast5-ecb\0";
1521pub const NID_cast5_ecb: i32 = 109;
1522pub const SN_cast5_cfb64: &[u8; 10] = b"CAST5-CFB\0";
1523pub const LN_cast5_cfb64: &[u8; 10] = b"cast5-cfb\0";
1524pub const NID_cast5_cfb64: i32 = 110;
1525pub const SN_cast5_ofb64: &[u8; 10] = b"CAST5-OFB\0";
1526pub const LN_cast5_ofb64: &[u8; 10] = b"cast5-ofb\0";
1527pub const NID_cast5_ofb64: i32 = 111;
1528pub const LN_pbeWithMD5AndCast5_CBC: &[u8; 22] = b"pbeWithMD5AndCast5CBC\0";
1529pub const NID_pbeWithMD5AndCast5_CBC: i32 = 112;
1530pub const SN_dsaWithSHA1: &[u8; 9] = b"DSA-SHA1\0";
1531pub const LN_dsaWithSHA1: &[u8; 12] = b"dsaWithSHA1\0";
1532pub const NID_dsaWithSHA1: i32 = 113;
1533pub const SN_md5_sha1: &[u8; 9] = b"MD5-SHA1\0";
1534pub const LN_md5_sha1: &[u8; 9] = b"md5-sha1\0";
1535pub const NID_md5_sha1: i32 = 114;
1536pub const SN_sha1WithRSA: &[u8; 11] = b"RSA-SHA1-2\0";
1537pub const LN_sha1WithRSA: &[u8; 12] = b"sha1WithRSA\0";
1538pub const NID_sha1WithRSA: i32 = 115;
1539pub const SN_dsa: &[u8; 4] = b"DSA\0";
1540pub const LN_dsa: &[u8; 14] = b"dsaEncryption\0";
1541pub const NID_dsa: i32 = 116;
1542pub const SN_ripemd160: &[u8; 10] = b"RIPEMD160\0";
1543pub const LN_ripemd160: &[u8; 10] = b"ripemd160\0";
1544pub const NID_ripemd160: i32 = 117;
1545pub const SN_ripemd160WithRSA: &[u8; 14] = b"RSA-RIPEMD160\0";
1546pub const LN_ripemd160WithRSA: &[u8; 17] = b"ripemd160WithRSA\0";
1547pub const NID_ripemd160WithRSA: i32 = 119;
1548pub const SN_rc5_cbc: &[u8; 8] = b"RC5-CBC\0";
1549pub const LN_rc5_cbc: &[u8; 8] = b"rc5-cbc\0";
1550pub const NID_rc5_cbc: i32 = 120;
1551pub const SN_rc5_ecb: &[u8; 8] = b"RC5-ECB\0";
1552pub const LN_rc5_ecb: &[u8; 8] = b"rc5-ecb\0";
1553pub const NID_rc5_ecb: i32 = 121;
1554pub const SN_rc5_cfb64: &[u8; 8] = b"RC5-CFB\0";
1555pub const LN_rc5_cfb64: &[u8; 8] = b"rc5-cfb\0";
1556pub const NID_rc5_cfb64: i32 = 122;
1557pub const SN_rc5_ofb64: &[u8; 8] = b"RC5-OFB\0";
1558pub const LN_rc5_ofb64: &[u8; 8] = b"rc5-ofb\0";
1559pub const NID_rc5_ofb64: i32 = 123;
1560pub const SN_zlib_compression: &[u8; 5] = b"ZLIB\0";
1561pub const LN_zlib_compression: &[u8; 17] = b"zlib compression\0";
1562pub const NID_zlib_compression: i32 = 125;
1563pub const SN_ext_key_usage: &[u8; 17] = b"extendedKeyUsage\0";
1564pub const LN_ext_key_usage: &[u8; 26] = b"X509v3 Extended Key Usage\0";
1565pub const NID_ext_key_usage: i32 = 126;
1566pub const SN_id_pkix: &[u8; 5] = b"PKIX\0";
1567pub const NID_id_pkix: i32 = 127;
1568pub const SN_id_kp: &[u8; 6] = b"id-kp\0";
1569pub const NID_id_kp: i32 = 128;
1570pub const SN_server_auth: &[u8; 11] = b"serverAuth\0";
1571pub const LN_server_auth: &[u8; 30] = b"TLS Web Server Authentication\0";
1572pub const NID_server_auth: i32 = 129;
1573pub const SN_client_auth: &[u8; 11] = b"clientAuth\0";
1574pub const LN_client_auth: &[u8; 30] = b"TLS Web Client Authentication\0";
1575pub const NID_client_auth: i32 = 130;
1576pub const SN_code_sign: &[u8; 12] = b"codeSigning\0";
1577pub const LN_code_sign: &[u8; 13] = b"Code Signing\0";
1578pub const NID_code_sign: i32 = 131;
1579pub const SN_email_protect: &[u8; 16] = b"emailProtection\0";
1580pub const LN_email_protect: &[u8; 18] = b"E-mail Protection\0";
1581pub const NID_email_protect: i32 = 132;
1582pub const SN_time_stamp: &[u8; 13] = b"timeStamping\0";
1583pub const LN_time_stamp: &[u8; 14] = b"Time Stamping\0";
1584pub const NID_time_stamp: i32 = 133;
1585pub const SN_ms_code_ind: &[u8; 10] = b"msCodeInd\0";
1586pub const LN_ms_code_ind: &[u8; 34] = b"Microsoft Individual Code Signing\0";
1587pub const NID_ms_code_ind: i32 = 134;
1588pub const SN_ms_code_com: &[u8; 10] = b"msCodeCom\0";
1589pub const LN_ms_code_com: &[u8; 34] = b"Microsoft Commercial Code Signing\0";
1590pub const NID_ms_code_com: i32 = 135;
1591pub const SN_ms_ctl_sign: &[u8; 10] = b"msCTLSign\0";
1592pub const LN_ms_ctl_sign: &[u8; 29] = b"Microsoft Trust List Signing\0";
1593pub const NID_ms_ctl_sign: i32 = 136;
1594pub const SN_ms_sgc: &[u8; 6] = b"msSGC\0";
1595pub const LN_ms_sgc: &[u8; 30] = b"Microsoft Server Gated Crypto\0";
1596pub const NID_ms_sgc: i32 = 137;
1597pub const SN_ms_efs: &[u8; 6] = b"msEFS\0";
1598pub const LN_ms_efs: &[u8; 32] = b"Microsoft Encrypted File System\0";
1599pub const NID_ms_efs: i32 = 138;
1600pub const SN_ns_sgc: &[u8; 6] = b"nsSGC\0";
1601pub const LN_ns_sgc: &[u8; 29] = b"Netscape Server Gated Crypto\0";
1602pub const NID_ns_sgc: i32 = 139;
1603pub const SN_delta_crl: &[u8; 9] = b"deltaCRL\0";
1604pub const LN_delta_crl: &[u8; 27] = b"X509v3 Delta CRL Indicator\0";
1605pub const NID_delta_crl: i32 = 140;
1606pub const SN_crl_reason: &[u8; 10] = b"CRLReason\0";
1607pub const LN_crl_reason: &[u8; 23] = b"X509v3 CRL Reason Code\0";
1608pub const NID_crl_reason: i32 = 141;
1609pub const SN_invalidity_date: &[u8; 15] = b"invalidityDate\0";
1610pub const LN_invalidity_date: &[u8; 16] = b"Invalidity Date\0";
1611pub const NID_invalidity_date: i32 = 142;
1612pub const SN_sxnet: &[u8; 8] = b"SXNetID\0";
1613pub const LN_sxnet: &[u8; 19] = b"Strong Extranet ID\0";
1614pub const NID_sxnet: i32 = 143;
1615pub const SN_pbe_WithSHA1And128BitRC4: &[u8; 17] = b"PBE-SHA1-RC4-128\0";
1616pub const LN_pbe_WithSHA1And128BitRC4: &[u8; 24] = b"pbeWithSHA1And128BitRC4\0";
1617pub const NID_pbe_WithSHA1And128BitRC4: i32 = 144;
1618pub const SN_pbe_WithSHA1And40BitRC4: &[u8; 16] = b"PBE-SHA1-RC4-40\0";
1619pub const LN_pbe_WithSHA1And40BitRC4: &[u8; 23] = b"pbeWithSHA1And40BitRC4\0";
1620pub const NID_pbe_WithSHA1And40BitRC4: i32 = 145;
1621pub const SN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-3DES\0";
1622pub const LN_pbe_WithSHA1And3_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And3-KeyTripleDES-CBC\0";
1623pub const NID_pbe_WithSHA1And3_Key_TripleDES_CBC: i32 = 146;
1624pub const SN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 14] = b"PBE-SHA1-2DES\0";
1625pub const LN_pbe_WithSHA1And2_Key_TripleDES_CBC: &[u8; 33] = b"pbeWithSHA1And2-KeyTripleDES-CBC\0";
1626pub const NID_pbe_WithSHA1And2_Key_TripleDES_CBC: i32 = 147;
1627pub const SN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 17] = b"PBE-SHA1-RC2-128\0";
1628pub const LN_pbe_WithSHA1And128BitRC2_CBC: &[u8; 28] = b"pbeWithSHA1And128BitRC2-CBC\0";
1629pub const NID_pbe_WithSHA1And128BitRC2_CBC: i32 = 148;
1630pub const SN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 16] = b"PBE-SHA1-RC2-40\0";
1631pub const LN_pbe_WithSHA1And40BitRC2_CBC: &[u8; 27] = b"pbeWithSHA1And40BitRC2-CBC\0";
1632pub const NID_pbe_WithSHA1And40BitRC2_CBC: i32 = 149;
1633pub const LN_keyBag: &[u8; 7] = b"keyBag\0";
1634pub const NID_keyBag: i32 = 150;
1635pub const LN_pkcs8ShroudedKeyBag: &[u8; 20] = b"pkcs8ShroudedKeyBag\0";
1636pub const NID_pkcs8ShroudedKeyBag: i32 = 151;
1637pub const LN_certBag: &[u8; 8] = b"certBag\0";
1638pub const NID_certBag: i32 = 152;
1639pub const LN_crlBag: &[u8; 7] = b"crlBag\0";
1640pub const NID_crlBag: i32 = 153;
1641pub const LN_secretBag: &[u8; 10] = b"secretBag\0";
1642pub const NID_secretBag: i32 = 154;
1643pub const LN_safeContentsBag: &[u8; 16] = b"safeContentsBag\0";
1644pub const NID_safeContentsBag: i32 = 155;
1645pub const LN_friendlyName: &[u8; 13] = b"friendlyName\0";
1646pub const NID_friendlyName: i32 = 156;
1647pub const LN_localKeyID: &[u8; 11] = b"localKeyID\0";
1648pub const NID_localKeyID: i32 = 157;
1649pub const LN_x509Certificate: &[u8; 16] = b"x509Certificate\0";
1650pub const NID_x509Certificate: i32 = 158;
1651pub const LN_sdsiCertificate: &[u8; 16] = b"sdsiCertificate\0";
1652pub const NID_sdsiCertificate: i32 = 159;
1653pub const LN_x509Crl: &[u8; 8] = b"x509Crl\0";
1654pub const NID_x509Crl: i32 = 160;
1655pub const LN_pbes2: &[u8; 6] = b"PBES2\0";
1656pub const NID_pbes2: i32 = 161;
1657pub const LN_pbmac1: &[u8; 7] = b"PBMAC1\0";
1658pub const NID_pbmac1: i32 = 162;
1659pub const LN_hmacWithSHA1: &[u8; 13] = b"hmacWithSHA1\0";
1660pub const NID_hmacWithSHA1: i32 = 163;
1661pub const SN_id_qt_cps: &[u8; 10] = b"id-qt-cps\0";
1662pub const LN_id_qt_cps: &[u8; 21] = b"Policy Qualifier CPS\0";
1663pub const NID_id_qt_cps: i32 = 164;
1664pub const SN_id_qt_unotice: &[u8; 14] = b"id-qt-unotice\0";
1665pub const LN_id_qt_unotice: &[u8; 29] = b"Policy Qualifier User Notice\0";
1666pub const NID_id_qt_unotice: i32 = 165;
1667pub const SN_rc2_64_cbc: &[u8; 11] = b"RC2-64-CBC\0";
1668pub const LN_rc2_64_cbc: &[u8; 11] = b"rc2-64-cbc\0";
1669pub const NID_rc2_64_cbc: i32 = 166;
1670pub const SN_SMIMECapabilities: &[u8; 11] = b"SMIME-CAPS\0";
1671pub const LN_SMIMECapabilities: &[u8; 20] = b"S/MIME Capabilities\0";
1672pub const NID_SMIMECapabilities: i32 = 167;
1673pub const SN_pbeWithMD2AndRC2_CBC: &[u8; 15] = b"PBE-MD2-RC2-64\0";
1674pub const LN_pbeWithMD2AndRC2_CBC: &[u8; 21] = b"pbeWithMD2AndRC2-CBC\0";
1675pub const NID_pbeWithMD2AndRC2_CBC: i32 = 168;
1676pub const SN_pbeWithMD5AndRC2_CBC: &[u8; 15] = b"PBE-MD5-RC2-64\0";
1677pub const LN_pbeWithMD5AndRC2_CBC: &[u8; 21] = b"pbeWithMD5AndRC2-CBC\0";
1678pub const NID_pbeWithMD5AndRC2_CBC: i32 = 169;
1679pub const SN_pbeWithSHA1AndDES_CBC: &[u8; 13] = b"PBE-SHA1-DES\0";
1680pub const LN_pbeWithSHA1AndDES_CBC: &[u8; 22] = b"pbeWithSHA1AndDES-CBC\0";
1681pub const NID_pbeWithSHA1AndDES_CBC: i32 = 170;
1682pub const SN_ms_ext_req: &[u8; 9] = b"msExtReq\0";
1683pub const LN_ms_ext_req: &[u8; 28] = b"Microsoft Extension Request\0";
1684pub const NID_ms_ext_req: i32 = 171;
1685pub const SN_ext_req: &[u8; 7] = b"extReq\0";
1686pub const LN_ext_req: &[u8; 18] = b"Extension Request\0";
1687pub const NID_ext_req: i32 = 172;
1688pub const SN_name: &[u8; 5] = b"name\0";
1689pub const LN_name: &[u8; 5] = b"name\0";
1690pub const NID_name: i32 = 173;
1691pub const SN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1692pub const LN_dnQualifier: &[u8; 12] = b"dnQualifier\0";
1693pub const NID_dnQualifier: i32 = 174;
1694pub const SN_id_pe: &[u8; 6] = b"id-pe\0";
1695pub const NID_id_pe: i32 = 175;
1696pub const SN_id_ad: &[u8; 6] = b"id-ad\0";
1697pub const NID_id_ad: i32 = 176;
1698pub const SN_info_access: &[u8; 20] = b"authorityInfoAccess\0";
1699pub const LN_info_access: &[u8; 29] = b"Authority Information Access\0";
1700pub const NID_info_access: i32 = 177;
1701pub const SN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1702pub const LN_ad_OCSP: &[u8; 5] = b"OCSP\0";
1703pub const NID_ad_OCSP: i32 = 178;
1704pub const SN_ad_ca_issuers: &[u8; 10] = b"caIssuers\0";
1705pub const LN_ad_ca_issuers: &[u8; 11] = b"CA Issuers\0";
1706pub const NID_ad_ca_issuers: i32 = 179;
1707pub const SN_OCSP_sign: &[u8; 12] = b"OCSPSigning\0";
1708pub const LN_OCSP_sign: &[u8; 13] = b"OCSP Signing\0";
1709pub const NID_OCSP_sign: i32 = 180;
1710pub const SN_iso: &[u8; 4] = b"ISO\0";
1711pub const LN_iso: &[u8; 4] = b"iso\0";
1712pub const NID_iso: i32 = 181;
1713pub const OBJ_iso: i32 = 1;
1714pub const SN_member_body: &[u8; 12] = b"member-body\0";
1715pub const LN_member_body: &[u8; 16] = b"ISO Member Body\0";
1716pub const NID_member_body: i32 = 182;
1717pub const OBJ_ENC_member_body: i32 = 42;
1718pub const SN_ISO_US: &[u8; 7] = b"ISO-US\0";
1719pub const LN_ISO_US: &[u8; 19] = b"ISO US Member Body\0";
1720pub const NID_ISO_US: i32 = 183;
1721pub const SN_X9_57: &[u8; 6] = b"X9-57\0";
1722pub const LN_X9_57: &[u8; 6] = b"X9.57\0";
1723pub const NID_X9_57: i32 = 184;
1724pub const SN_X9cm: &[u8; 5] = b"X9cm\0";
1725pub const LN_X9cm: &[u8; 11] = b"X9.57 CM ?\0";
1726pub const NID_X9cm: i32 = 185;
1727pub const SN_pkcs1: &[u8; 6] = b"pkcs1\0";
1728pub const NID_pkcs1: i32 = 186;
1729pub const SN_pkcs5: &[u8; 6] = b"pkcs5\0";
1730pub const NID_pkcs5: i32 = 187;
1731pub const SN_SMIME: &[u8; 6] = b"SMIME\0";
1732pub const LN_SMIME: &[u8; 7] = b"S/MIME\0";
1733pub const NID_SMIME: i32 = 188;
1734pub const SN_id_smime_mod: &[u8; 13] = b"id-smime-mod\0";
1735pub const NID_id_smime_mod: i32 = 189;
1736pub const SN_id_smime_ct: &[u8; 12] = b"id-smime-ct\0";
1737pub const NID_id_smime_ct: i32 = 190;
1738pub const SN_id_smime_aa: &[u8; 12] = b"id-smime-aa\0";
1739pub const NID_id_smime_aa: i32 = 191;
1740pub const SN_id_smime_alg: &[u8; 13] = b"id-smime-alg\0";
1741pub const NID_id_smime_alg: i32 = 192;
1742pub const SN_id_smime_cd: &[u8; 12] = b"id-smime-cd\0";
1743pub const NID_id_smime_cd: i32 = 193;
1744pub const SN_id_smime_spq: &[u8; 13] = b"id-smime-spq\0";
1745pub const NID_id_smime_spq: i32 = 194;
1746pub const SN_id_smime_cti: &[u8; 13] = b"id-smime-cti\0";
1747pub const NID_id_smime_cti: i32 = 195;
1748pub const SN_id_smime_mod_cms: &[u8; 17] = b"id-smime-mod-cms\0";
1749pub const NID_id_smime_mod_cms: i32 = 196;
1750pub const SN_id_smime_mod_ess: &[u8; 17] = b"id-smime-mod-ess\0";
1751pub const NID_id_smime_mod_ess: i32 = 197;
1752pub const SN_id_smime_mod_oid: &[u8; 17] = b"id-smime-mod-oid\0";
1753pub const NID_id_smime_mod_oid: i32 = 198;
1754pub const SN_id_smime_mod_msg_v3: &[u8; 20] = b"id-smime-mod-msg-v3\0";
1755pub const NID_id_smime_mod_msg_v3: i32 = 199;
1756pub const SN_id_smime_mod_ets_eSignature_88: &[u8; 31] = b"id-smime-mod-ets-eSignature-88\0";
1757pub const NID_id_smime_mod_ets_eSignature_88: i32 = 200;
1758pub const SN_id_smime_mod_ets_eSignature_97: &[u8; 31] = b"id-smime-mod-ets-eSignature-97\0";
1759pub const NID_id_smime_mod_ets_eSignature_97: i32 = 201;
1760pub const SN_id_smime_mod_ets_eSigPolicy_88: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-88\0";
1761pub const NID_id_smime_mod_ets_eSigPolicy_88: i32 = 202;
1762pub const SN_id_smime_mod_ets_eSigPolicy_97: &[u8; 31] = b"id-smime-mod-ets-eSigPolicy-97\0";
1763pub const NID_id_smime_mod_ets_eSigPolicy_97: i32 = 203;
1764pub const SN_id_smime_ct_receipt: &[u8; 20] = b"id-smime-ct-receipt\0";
1765pub const NID_id_smime_ct_receipt: i32 = 204;
1766pub const SN_id_smime_ct_authData: &[u8; 21] = b"id-smime-ct-authData\0";
1767pub const NID_id_smime_ct_authData: i32 = 205;
1768pub const SN_id_smime_ct_publishCert: &[u8; 24] = b"id-smime-ct-publishCert\0";
1769pub const NID_id_smime_ct_publishCert: i32 = 206;
1770pub const SN_id_smime_ct_TSTInfo: &[u8; 20] = b"id-smime-ct-TSTInfo\0";
1771pub const NID_id_smime_ct_TSTInfo: i32 = 207;
1772pub const SN_id_smime_ct_TDTInfo: &[u8; 20] = b"id-smime-ct-TDTInfo\0";
1773pub const NID_id_smime_ct_TDTInfo: i32 = 208;
1774pub const SN_id_smime_ct_contentInfo: &[u8; 24] = b"id-smime-ct-contentInfo\0";
1775pub const NID_id_smime_ct_contentInfo: i32 = 209;
1776pub const SN_id_smime_ct_DVCSRequestData: &[u8; 28] = b"id-smime-ct-DVCSRequestData\0";
1777pub const NID_id_smime_ct_DVCSRequestData: i32 = 210;
1778pub const SN_id_smime_ct_DVCSResponseData: &[u8; 29] = b"id-smime-ct-DVCSResponseData\0";
1779pub const NID_id_smime_ct_DVCSResponseData: i32 = 211;
1780pub const SN_id_smime_aa_receiptRequest: &[u8; 27] = b"id-smime-aa-receiptRequest\0";
1781pub const NID_id_smime_aa_receiptRequest: i32 = 212;
1782pub const SN_id_smime_aa_securityLabel: &[u8; 26] = b"id-smime-aa-securityLabel\0";
1783pub const NID_id_smime_aa_securityLabel: i32 = 213;
1784pub const SN_id_smime_aa_mlExpandHistory: &[u8; 28] = b"id-smime-aa-mlExpandHistory\0";
1785pub const NID_id_smime_aa_mlExpandHistory: i32 = 214;
1786pub const SN_id_smime_aa_contentHint: &[u8; 24] = b"id-smime-aa-contentHint\0";
1787pub const NID_id_smime_aa_contentHint: i32 = 215;
1788pub const SN_id_smime_aa_msgSigDigest: &[u8; 25] = b"id-smime-aa-msgSigDigest\0";
1789pub const NID_id_smime_aa_msgSigDigest: i32 = 216;
1790pub const SN_id_smime_aa_encapContentType: &[u8; 29] = b"id-smime-aa-encapContentType\0";
1791pub const NID_id_smime_aa_encapContentType: i32 = 217;
1792pub const SN_id_smime_aa_contentIdentifier: &[u8; 30] = b"id-smime-aa-contentIdentifier\0";
1793pub const NID_id_smime_aa_contentIdentifier: i32 = 218;
1794pub const SN_id_smime_aa_macValue: &[u8; 21] = b"id-smime-aa-macValue\0";
1795pub const NID_id_smime_aa_macValue: i32 = 219;
1796pub const SN_id_smime_aa_equivalentLabels: &[u8; 29] = b"id-smime-aa-equivalentLabels\0";
1797pub const NID_id_smime_aa_equivalentLabels: i32 = 220;
1798pub const SN_id_smime_aa_contentReference: &[u8; 29] = b"id-smime-aa-contentReference\0";
1799pub const NID_id_smime_aa_contentReference: i32 = 221;
1800pub const SN_id_smime_aa_encrypKeyPref: &[u8; 26] = b"id-smime-aa-encrypKeyPref\0";
1801pub const NID_id_smime_aa_encrypKeyPref: i32 = 222;
1802pub const SN_id_smime_aa_signingCertificate: &[u8; 31] = b"id-smime-aa-signingCertificate\0";
1803pub const NID_id_smime_aa_signingCertificate: i32 = 223;
1804pub const SN_id_smime_aa_smimeEncryptCerts: &[u8; 30] = b"id-smime-aa-smimeEncryptCerts\0";
1805pub const NID_id_smime_aa_smimeEncryptCerts: i32 = 224;
1806pub const SN_id_smime_aa_timeStampToken: &[u8; 27] = b"id-smime-aa-timeStampToken\0";
1807pub const NID_id_smime_aa_timeStampToken: i32 = 225;
1808pub const SN_id_smime_aa_ets_sigPolicyId: &[u8; 28] = b"id-smime-aa-ets-sigPolicyId\0";
1809pub const NID_id_smime_aa_ets_sigPolicyId: i32 = 226;
1810pub const SN_id_smime_aa_ets_commitmentType: &[u8; 31] = b"id-smime-aa-ets-commitmentType\0";
1811pub const NID_id_smime_aa_ets_commitmentType: i32 = 227;
1812pub const SN_id_smime_aa_ets_signerLocation: &[u8; 31] = b"id-smime-aa-ets-signerLocation\0";
1813pub const NID_id_smime_aa_ets_signerLocation: i32 = 228;
1814pub const SN_id_smime_aa_ets_signerAttr: &[u8; 27] = b"id-smime-aa-ets-signerAttr\0";
1815pub const NID_id_smime_aa_ets_signerAttr: i32 = 229;
1816pub const SN_id_smime_aa_ets_otherSigCert: &[u8; 29] = b"id-smime-aa-ets-otherSigCert\0";
1817pub const NID_id_smime_aa_ets_otherSigCert: i32 = 230;
1818pub const SN_id_smime_aa_ets_contentTimestamp: &[u8; 33] = b"id-smime-aa-ets-contentTimestamp\0";
1819pub const NID_id_smime_aa_ets_contentTimestamp: i32 = 231;
1820pub const SN_id_smime_aa_ets_CertificateRefs: &[u8; 32] = b"id-smime-aa-ets-CertificateRefs\0";
1821pub const NID_id_smime_aa_ets_CertificateRefs: i32 = 232;
1822pub const SN_id_smime_aa_ets_RevocationRefs: &[u8; 31] = b"id-smime-aa-ets-RevocationRefs\0";
1823pub const NID_id_smime_aa_ets_RevocationRefs: i32 = 233;
1824pub const SN_id_smime_aa_ets_certValues: &[u8; 27] = b"id-smime-aa-ets-certValues\0";
1825pub const NID_id_smime_aa_ets_certValues: i32 = 234;
1826pub const SN_id_smime_aa_ets_revocationValues: &[u8; 33] = b"id-smime-aa-ets-revocationValues\0";
1827pub const NID_id_smime_aa_ets_revocationValues: i32 = 235;
1828pub const SN_id_smime_aa_ets_escTimeStamp: &[u8; 29] = b"id-smime-aa-ets-escTimeStamp\0";
1829pub const NID_id_smime_aa_ets_escTimeStamp: i32 = 236;
1830pub const SN_id_smime_aa_ets_certCRLTimestamp: &[u8; 33] = b"id-smime-aa-ets-certCRLTimestamp\0";
1831pub const NID_id_smime_aa_ets_certCRLTimestamp: i32 = 237;
1832pub const SN_id_smime_aa_ets_archiveTimeStamp: &[u8; 33] = b"id-smime-aa-ets-archiveTimeStamp\0";
1833pub const NID_id_smime_aa_ets_archiveTimeStamp: i32 = 238;
1834pub const SN_id_smime_aa_signatureType: &[u8; 26] = b"id-smime-aa-signatureType\0";
1835pub const NID_id_smime_aa_signatureType: i32 = 239;
1836pub const SN_id_smime_aa_dvcs_dvc: &[u8; 21] = b"id-smime-aa-dvcs-dvc\0";
1837pub const NID_id_smime_aa_dvcs_dvc: i32 = 240;
1838pub const SN_id_smime_alg_ESDHwith3DES: &[u8; 26] = b"id-smime-alg-ESDHwith3DES\0";
1839pub const NID_id_smime_alg_ESDHwith3DES: i32 = 241;
1840pub const SN_id_smime_alg_ESDHwithRC2: &[u8; 25] = b"id-smime-alg-ESDHwithRC2\0";
1841pub const NID_id_smime_alg_ESDHwithRC2: i32 = 242;
1842pub const SN_id_smime_alg_3DESwrap: &[u8; 22] = b"id-smime-alg-3DESwrap\0";
1843pub const NID_id_smime_alg_3DESwrap: i32 = 243;
1844pub const SN_id_smime_alg_RC2wrap: &[u8; 21] = b"id-smime-alg-RC2wrap\0";
1845pub const NID_id_smime_alg_RC2wrap: i32 = 244;
1846pub const SN_id_smime_alg_ESDH: &[u8; 18] = b"id-smime-alg-ESDH\0";
1847pub const NID_id_smime_alg_ESDH: i32 = 245;
1848pub const SN_id_smime_alg_CMS3DESwrap: &[u8; 25] = b"id-smime-alg-CMS3DESwrap\0";
1849pub const NID_id_smime_alg_CMS3DESwrap: i32 = 246;
1850pub const SN_id_smime_alg_CMSRC2wrap: &[u8; 24] = b"id-smime-alg-CMSRC2wrap\0";
1851pub const NID_id_smime_alg_CMSRC2wrap: i32 = 247;
1852pub const SN_id_smime_cd_ldap: &[u8; 17] = b"id-smime-cd-ldap\0";
1853pub const NID_id_smime_cd_ldap: i32 = 248;
1854pub const SN_id_smime_spq_ets_sqt_uri: &[u8; 25] = b"id-smime-spq-ets-sqt-uri\0";
1855pub const NID_id_smime_spq_ets_sqt_uri: i32 = 249;
1856pub const SN_id_smime_spq_ets_sqt_unotice: &[u8; 29] = b"id-smime-spq-ets-sqt-unotice\0";
1857pub const NID_id_smime_spq_ets_sqt_unotice: i32 = 250;
1858pub const SN_id_smime_cti_ets_proofOfOrigin: &[u8; 31] = b"id-smime-cti-ets-proofOfOrigin\0";
1859pub const NID_id_smime_cti_ets_proofOfOrigin: i32 = 251;
1860pub const SN_id_smime_cti_ets_proofOfReceipt: &[u8; 32] = b"id-smime-cti-ets-proofOfReceipt\0";
1861pub const NID_id_smime_cti_ets_proofOfReceipt: i32 = 252;
1862pub const SN_id_smime_cti_ets_proofOfDelivery: &[u8; 33] = b"id-smime-cti-ets-proofOfDelivery\0";
1863pub const NID_id_smime_cti_ets_proofOfDelivery: i32 = 253;
1864pub const SN_id_smime_cti_ets_proofOfSender: &[u8; 31] = b"id-smime-cti-ets-proofOfSender\0";
1865pub const NID_id_smime_cti_ets_proofOfSender: i32 = 254;
1866pub const SN_id_smime_cti_ets_proofOfApproval: &[u8; 33] = b"id-smime-cti-ets-proofOfApproval\0";
1867pub const NID_id_smime_cti_ets_proofOfApproval: i32 = 255;
1868pub const SN_id_smime_cti_ets_proofOfCreation: &[u8; 33] = b"id-smime-cti-ets-proofOfCreation\0";
1869pub const NID_id_smime_cti_ets_proofOfCreation: i32 = 256;
1870pub const SN_md4: &[u8; 4] = b"MD4\0";
1871pub const LN_md4: &[u8; 4] = b"md4\0";
1872pub const NID_md4: i32 = 257;
1873pub const SN_id_pkix_mod: &[u8; 12] = b"id-pkix-mod\0";
1874pub const NID_id_pkix_mod: i32 = 258;
1875pub const SN_id_qt: &[u8; 6] = b"id-qt\0";
1876pub const NID_id_qt: i32 = 259;
1877pub const SN_id_it: &[u8; 6] = b"id-it\0";
1878pub const NID_id_it: i32 = 260;
1879pub const SN_id_pkip: &[u8; 8] = b"id-pkip\0";
1880pub const NID_id_pkip: i32 = 261;
1881pub const SN_id_alg: &[u8; 7] = b"id-alg\0";
1882pub const NID_id_alg: i32 = 262;
1883pub const SN_id_cmc: &[u8; 7] = b"id-cmc\0";
1884pub const NID_id_cmc: i32 = 263;
1885pub const SN_id_on: &[u8; 6] = b"id-on\0";
1886pub const NID_id_on: i32 = 264;
1887pub const SN_id_pda: &[u8; 7] = b"id-pda\0";
1888pub const NID_id_pda: i32 = 265;
1889pub const SN_id_aca: &[u8; 7] = b"id-aca\0";
1890pub const NID_id_aca: i32 = 266;
1891pub const SN_id_qcs: &[u8; 7] = b"id-qcs\0";
1892pub const NID_id_qcs: i32 = 267;
1893pub const SN_id_cct: &[u8; 7] = b"id-cct\0";
1894pub const NID_id_cct: i32 = 268;
1895pub const SN_id_pkix1_explicit_88: &[u8; 21] = b"id-pkix1-explicit-88\0";
1896pub const NID_id_pkix1_explicit_88: i32 = 269;
1897pub const SN_id_pkix1_implicit_88: &[u8; 21] = b"id-pkix1-implicit-88\0";
1898pub const NID_id_pkix1_implicit_88: i32 = 270;
1899pub const SN_id_pkix1_explicit_93: &[u8; 21] = b"id-pkix1-explicit-93\0";
1900pub const NID_id_pkix1_explicit_93: i32 = 271;
1901pub const SN_id_pkix1_implicit_93: &[u8; 21] = b"id-pkix1-implicit-93\0";
1902pub const NID_id_pkix1_implicit_93: i32 = 272;
1903pub const SN_id_mod_crmf: &[u8; 12] = b"id-mod-crmf\0";
1904pub const NID_id_mod_crmf: i32 = 273;
1905pub const SN_id_mod_cmc: &[u8; 11] = b"id-mod-cmc\0";
1906pub const NID_id_mod_cmc: i32 = 274;
1907pub const SN_id_mod_kea_profile_88: &[u8; 22] = b"id-mod-kea-profile-88\0";
1908pub const NID_id_mod_kea_profile_88: i32 = 275;
1909pub const SN_id_mod_kea_profile_93: &[u8; 22] = b"id-mod-kea-profile-93\0";
1910pub const NID_id_mod_kea_profile_93: i32 = 276;
1911pub const SN_id_mod_cmp: &[u8; 11] = b"id-mod-cmp\0";
1912pub const NID_id_mod_cmp: i32 = 277;
1913pub const SN_id_mod_qualified_cert_88: &[u8; 25] = b"id-mod-qualified-cert-88\0";
1914pub const NID_id_mod_qualified_cert_88: i32 = 278;
1915pub const SN_id_mod_qualified_cert_93: &[u8; 25] = b"id-mod-qualified-cert-93\0";
1916pub const NID_id_mod_qualified_cert_93: i32 = 279;
1917pub const SN_id_mod_attribute_cert: &[u8; 22] = b"id-mod-attribute-cert\0";
1918pub const NID_id_mod_attribute_cert: i32 = 280;
1919pub const SN_id_mod_timestamp_protocol: &[u8; 26] = b"id-mod-timestamp-protocol\0";
1920pub const NID_id_mod_timestamp_protocol: i32 = 281;
1921pub const SN_id_mod_ocsp: &[u8; 12] = b"id-mod-ocsp\0";
1922pub const NID_id_mod_ocsp: i32 = 282;
1923pub const SN_id_mod_dvcs: &[u8; 12] = b"id-mod-dvcs\0";
1924pub const NID_id_mod_dvcs: i32 = 283;
1925pub const SN_id_mod_cmp2000: &[u8; 15] = b"id-mod-cmp2000\0";
1926pub const NID_id_mod_cmp2000: i32 = 284;
1927pub const SN_biometricInfo: &[u8; 14] = b"biometricInfo\0";
1928pub const LN_biometricInfo: &[u8; 15] = b"Biometric Info\0";
1929pub const NID_biometricInfo: i32 = 285;
1930pub const SN_qcStatements: &[u8; 13] = b"qcStatements\0";
1931pub const NID_qcStatements: i32 = 286;
1932pub const SN_ac_auditEntity: &[u8; 15] = b"ac-auditEntity\0";
1933pub const NID_ac_auditEntity: i32 = 287;
1934pub const SN_ac_targeting: &[u8; 13] = b"ac-targeting\0";
1935pub const NID_ac_targeting: i32 = 288;
1936pub const SN_aaControls: &[u8; 11] = b"aaControls\0";
1937pub const NID_aaControls: i32 = 289;
1938pub const SN_sbgp_ipAddrBlock: &[u8; 17] = b"sbgp-ipAddrBlock\0";
1939pub const NID_sbgp_ipAddrBlock: i32 = 290;
1940pub const SN_sbgp_autonomousSysNum: &[u8; 22] = b"sbgp-autonomousSysNum\0";
1941pub const NID_sbgp_autonomousSysNum: i32 = 291;
1942pub const SN_sbgp_routerIdentifier: &[u8; 22] = b"sbgp-routerIdentifier\0";
1943pub const NID_sbgp_routerIdentifier: i32 = 292;
1944pub const SN_textNotice: &[u8; 11] = b"textNotice\0";
1945pub const NID_textNotice: i32 = 293;
1946pub const SN_ipsecEndSystem: &[u8; 15] = b"ipsecEndSystem\0";
1947pub const LN_ipsecEndSystem: &[u8; 17] = b"IPSec End System\0";
1948pub const NID_ipsecEndSystem: i32 = 294;
1949pub const SN_ipsecTunnel: &[u8; 12] = b"ipsecTunnel\0";
1950pub const LN_ipsecTunnel: &[u8; 13] = b"IPSec Tunnel\0";
1951pub const NID_ipsecTunnel: i32 = 295;
1952pub const SN_ipsecUser: &[u8; 10] = b"ipsecUser\0";
1953pub const LN_ipsecUser: &[u8; 11] = b"IPSec User\0";
1954pub const NID_ipsecUser: i32 = 296;
1955pub const SN_dvcs: &[u8; 5] = b"DVCS\0";
1956pub const LN_dvcs: &[u8; 5] = b"dvcs\0";
1957pub const NID_dvcs: i32 = 297;
1958pub const SN_id_it_caProtEncCert: &[u8; 20] = b"id-it-caProtEncCert\0";
1959pub const NID_id_it_caProtEncCert: i32 = 298;
1960pub const SN_id_it_signKeyPairTypes: &[u8; 23] = b"id-it-signKeyPairTypes\0";
1961pub const NID_id_it_signKeyPairTypes: i32 = 299;
1962pub const SN_id_it_encKeyPairTypes: &[u8; 22] = b"id-it-encKeyPairTypes\0";
1963pub const NID_id_it_encKeyPairTypes: i32 = 300;
1964pub const SN_id_it_preferredSymmAlg: &[u8; 23] = b"id-it-preferredSymmAlg\0";
1965pub const NID_id_it_preferredSymmAlg: i32 = 301;
1966pub const SN_id_it_caKeyUpdateInfo: &[u8; 22] = b"id-it-caKeyUpdateInfo\0";
1967pub const NID_id_it_caKeyUpdateInfo: i32 = 302;
1968pub const SN_id_it_currentCRL: &[u8; 17] = b"id-it-currentCRL\0";
1969pub const NID_id_it_currentCRL: i32 = 303;
1970pub const SN_id_it_unsupportedOIDs: &[u8; 22] = b"id-it-unsupportedOIDs\0";
1971pub const NID_id_it_unsupportedOIDs: i32 = 304;
1972pub const SN_id_it_subscriptionRequest: &[u8; 26] = b"id-it-subscriptionRequest\0";
1973pub const NID_id_it_subscriptionRequest: i32 = 305;
1974pub const SN_id_it_subscriptionResponse: &[u8; 27] = b"id-it-subscriptionResponse\0";
1975pub const NID_id_it_subscriptionResponse: i32 = 306;
1976pub const SN_id_it_keyPairParamReq: &[u8; 22] = b"id-it-keyPairParamReq\0";
1977pub const NID_id_it_keyPairParamReq: i32 = 307;
1978pub const SN_id_it_keyPairParamRep: &[u8; 22] = b"id-it-keyPairParamRep\0";
1979pub const NID_id_it_keyPairParamRep: i32 = 308;
1980pub const SN_id_it_revPassphrase: &[u8; 20] = b"id-it-revPassphrase\0";
1981pub const NID_id_it_revPassphrase: i32 = 309;
1982pub const SN_id_it_implicitConfirm: &[u8; 22] = b"id-it-implicitConfirm\0";
1983pub const NID_id_it_implicitConfirm: i32 = 310;
1984pub const SN_id_it_confirmWaitTime: &[u8; 22] = b"id-it-confirmWaitTime\0";
1985pub const NID_id_it_confirmWaitTime: i32 = 311;
1986pub const SN_id_it_origPKIMessage: &[u8; 21] = b"id-it-origPKIMessage\0";
1987pub const NID_id_it_origPKIMessage: i32 = 312;
1988pub const SN_id_regCtrl: &[u8; 11] = b"id-regCtrl\0";
1989pub const NID_id_regCtrl: i32 = 313;
1990pub const SN_id_regInfo: &[u8; 11] = b"id-regInfo\0";
1991pub const NID_id_regInfo: i32 = 314;
1992pub const SN_id_regCtrl_regToken: &[u8; 20] = b"id-regCtrl-regToken\0";
1993pub const NID_id_regCtrl_regToken: i32 = 315;
1994pub const SN_id_regCtrl_authenticator: &[u8; 25] = b"id-regCtrl-authenticator\0";
1995pub const NID_id_regCtrl_authenticator: i32 = 316;
1996pub const SN_id_regCtrl_pkiPublicationInfo: &[u8; 30] = b"id-regCtrl-pkiPublicationInfo\0";
1997pub const NID_id_regCtrl_pkiPublicationInfo: i32 = 317;
1998pub const SN_id_regCtrl_pkiArchiveOptions: &[u8; 29] = b"id-regCtrl-pkiArchiveOptions\0";
1999pub const NID_id_regCtrl_pkiArchiveOptions: i32 = 318;
2000pub const SN_id_regCtrl_oldCertID: &[u8; 21] = b"id-regCtrl-oldCertID\0";
2001pub const NID_id_regCtrl_oldCertID: i32 = 319;
2002pub const SN_id_regCtrl_protocolEncrKey: &[u8; 27] = b"id-regCtrl-protocolEncrKey\0";
2003pub const NID_id_regCtrl_protocolEncrKey: i32 = 320;
2004pub const SN_id_regInfo_utf8Pairs: &[u8; 21] = b"id-regInfo-utf8Pairs\0";
2005pub const NID_id_regInfo_utf8Pairs: i32 = 321;
2006pub const SN_id_regInfo_certReq: &[u8; 19] = b"id-regInfo-certReq\0";
2007pub const NID_id_regInfo_certReq: i32 = 322;
2008pub const SN_id_alg_des40: &[u8; 13] = b"id-alg-des40\0";
2009pub const NID_id_alg_des40: i32 = 323;
2010pub const SN_id_alg_noSignature: &[u8; 19] = b"id-alg-noSignature\0";
2011pub const NID_id_alg_noSignature: i32 = 324;
2012pub const SN_id_alg_dh_sig_hmac_sha1: &[u8; 24] = b"id-alg-dh-sig-hmac-sha1\0";
2013pub const NID_id_alg_dh_sig_hmac_sha1: i32 = 325;
2014pub const SN_id_alg_dh_pop: &[u8; 14] = b"id-alg-dh-pop\0";
2015pub const NID_id_alg_dh_pop: i32 = 326;
2016pub const SN_id_cmc_statusInfo: &[u8; 18] = b"id-cmc-statusInfo\0";
2017pub const NID_id_cmc_statusInfo: i32 = 327;
2018pub const SN_id_cmc_identification: &[u8; 22] = b"id-cmc-identification\0";
2019pub const NID_id_cmc_identification: i32 = 328;
2020pub const SN_id_cmc_identityProof: &[u8; 21] = b"id-cmc-identityProof\0";
2021pub const NID_id_cmc_identityProof: i32 = 329;
2022pub const SN_id_cmc_dataReturn: &[u8; 18] = b"id-cmc-dataReturn\0";
2023pub const NID_id_cmc_dataReturn: i32 = 330;
2024pub const SN_id_cmc_transactionId: &[u8; 21] = b"id-cmc-transactionId\0";
2025pub const NID_id_cmc_transactionId: i32 = 331;
2026pub const SN_id_cmc_senderNonce: &[u8; 19] = b"id-cmc-senderNonce\0";
2027pub const NID_id_cmc_senderNonce: i32 = 332;
2028pub const SN_id_cmc_recipientNonce: &[u8; 22] = b"id-cmc-recipientNonce\0";
2029pub const NID_id_cmc_recipientNonce: i32 = 333;
2030pub const SN_id_cmc_addExtensions: &[u8; 21] = b"id-cmc-addExtensions\0";
2031pub const NID_id_cmc_addExtensions: i32 = 334;
2032pub const SN_id_cmc_encryptedPOP: &[u8; 20] = b"id-cmc-encryptedPOP\0";
2033pub const NID_id_cmc_encryptedPOP: i32 = 335;
2034pub const SN_id_cmc_decryptedPOP: &[u8; 20] = b"id-cmc-decryptedPOP\0";
2035pub const NID_id_cmc_decryptedPOP: i32 = 336;
2036pub const SN_id_cmc_lraPOPWitness: &[u8; 21] = b"id-cmc-lraPOPWitness\0";
2037pub const NID_id_cmc_lraPOPWitness: i32 = 337;
2038pub const SN_id_cmc_getCert: &[u8; 15] = b"id-cmc-getCert\0";
2039pub const NID_id_cmc_getCert: i32 = 338;
2040pub const SN_id_cmc_getCRL: &[u8; 14] = b"id-cmc-getCRL\0";
2041pub const NID_id_cmc_getCRL: i32 = 339;
2042pub const SN_id_cmc_revokeRequest: &[u8; 21] = b"id-cmc-revokeRequest\0";
2043pub const NID_id_cmc_revokeRequest: i32 = 340;
2044pub const SN_id_cmc_regInfo: &[u8; 15] = b"id-cmc-regInfo\0";
2045pub const NID_id_cmc_regInfo: i32 = 341;
2046pub const SN_id_cmc_responseInfo: &[u8; 20] = b"id-cmc-responseInfo\0";
2047pub const NID_id_cmc_responseInfo: i32 = 342;
2048pub const SN_id_cmc_queryPending: &[u8; 20] = b"id-cmc-queryPending\0";
2049pub const NID_id_cmc_queryPending: i32 = 343;
2050pub const SN_id_cmc_popLinkRandom: &[u8; 21] = b"id-cmc-popLinkRandom\0";
2051pub const NID_id_cmc_popLinkRandom: i32 = 344;
2052pub const SN_id_cmc_popLinkWitness: &[u8; 22] = b"id-cmc-popLinkWitness\0";
2053pub const NID_id_cmc_popLinkWitness: i32 = 345;
2054pub const SN_id_cmc_confirmCertAcceptance: &[u8; 29] = b"id-cmc-confirmCertAcceptance\0";
2055pub const NID_id_cmc_confirmCertAcceptance: i32 = 346;
2056pub const SN_id_on_personalData: &[u8; 19] = b"id-on-personalData\0";
2057pub const NID_id_on_personalData: i32 = 347;
2058pub const SN_id_pda_dateOfBirth: &[u8; 19] = b"id-pda-dateOfBirth\0";
2059pub const NID_id_pda_dateOfBirth: i32 = 348;
2060pub const SN_id_pda_placeOfBirth: &[u8; 20] = b"id-pda-placeOfBirth\0";
2061pub const NID_id_pda_placeOfBirth: i32 = 349;
2062pub const SN_id_pda_gender: &[u8; 14] = b"id-pda-gender\0";
2063pub const NID_id_pda_gender: i32 = 351;
2064pub const SN_id_pda_countryOfCitizenship: &[u8; 28] = b"id-pda-countryOfCitizenship\0";
2065pub const NID_id_pda_countryOfCitizenship: i32 = 352;
2066pub const SN_id_pda_countryOfResidence: &[u8; 26] = b"id-pda-countryOfResidence\0";
2067pub const NID_id_pda_countryOfResidence: i32 = 353;
2068pub const SN_id_aca_authenticationInfo: &[u8; 26] = b"id-aca-authenticationInfo\0";
2069pub const NID_id_aca_authenticationInfo: i32 = 354;
2070pub const SN_id_aca_accessIdentity: &[u8; 22] = b"id-aca-accessIdentity\0";
2071pub const NID_id_aca_accessIdentity: i32 = 355;
2072pub const SN_id_aca_chargingIdentity: &[u8; 24] = b"id-aca-chargingIdentity\0";
2073pub const NID_id_aca_chargingIdentity: i32 = 356;
2074pub const SN_id_aca_group: &[u8; 13] = b"id-aca-group\0";
2075pub const NID_id_aca_group: i32 = 357;
2076pub const SN_id_aca_role: &[u8; 12] = b"id-aca-role\0";
2077pub const NID_id_aca_role: i32 = 358;
2078pub const SN_id_qcs_pkixQCSyntax_v1: &[u8; 23] = b"id-qcs-pkixQCSyntax-v1\0";
2079pub const NID_id_qcs_pkixQCSyntax_v1: i32 = 359;
2080pub const SN_id_cct_crs: &[u8; 11] = b"id-cct-crs\0";
2081pub const NID_id_cct_crs: i32 = 360;
2082pub const SN_id_cct_PKIData: &[u8; 15] = b"id-cct-PKIData\0";
2083pub const NID_id_cct_PKIData: i32 = 361;
2084pub const SN_id_cct_PKIResponse: &[u8; 19] = b"id-cct-PKIResponse\0";
2085pub const NID_id_cct_PKIResponse: i32 = 362;
2086pub const SN_ad_timeStamping: &[u8; 16] = b"ad_timestamping\0";
2087pub const LN_ad_timeStamping: &[u8; 17] = b"AD Time Stamping\0";
2088pub const NID_ad_timeStamping: i32 = 363;
2089pub const SN_ad_dvcs: &[u8; 8] = b"AD_DVCS\0";
2090pub const LN_ad_dvcs: &[u8; 8] = b"ad dvcs\0";
2091pub const NID_ad_dvcs: i32 = 364;
2092pub const SN_id_pkix_OCSP_basic: &[u8; 18] = b"basicOCSPResponse\0";
2093pub const LN_id_pkix_OCSP_basic: &[u8; 20] = b"Basic OCSP Response\0";
2094pub const NID_id_pkix_OCSP_basic: i32 = 365;
2095pub const SN_id_pkix_OCSP_Nonce: &[u8; 6] = b"Nonce\0";
2096pub const LN_id_pkix_OCSP_Nonce: &[u8; 11] = b"OCSP Nonce\0";
2097pub const NID_id_pkix_OCSP_Nonce: i32 = 366;
2098pub const SN_id_pkix_OCSP_CrlID: &[u8; 6] = b"CrlID\0";
2099pub const LN_id_pkix_OCSP_CrlID: &[u8; 12] = b"OCSP CRL ID\0";
2100pub const NID_id_pkix_OCSP_CrlID: i32 = 367;
2101pub const SN_id_pkix_OCSP_acceptableResponses: &[u8; 20] = b"acceptableResponses\0";
2102pub const LN_id_pkix_OCSP_acceptableResponses: &[u8; 26] = b"Acceptable OCSP Responses\0";
2103pub const NID_id_pkix_OCSP_acceptableResponses: i32 = 368;
2104pub const SN_id_pkix_OCSP_noCheck: &[u8; 8] = b"noCheck\0";
2105pub const LN_id_pkix_OCSP_noCheck: &[u8; 14] = b"OCSP No Check\0";
2106pub const NID_id_pkix_OCSP_noCheck: i32 = 369;
2107pub const SN_id_pkix_OCSP_archiveCutoff: &[u8; 14] = b"archiveCutoff\0";
2108pub const LN_id_pkix_OCSP_archiveCutoff: &[u8; 20] = b"OCSP Archive Cutoff\0";
2109pub const NID_id_pkix_OCSP_archiveCutoff: i32 = 370;
2110pub const SN_id_pkix_OCSP_serviceLocator: &[u8; 15] = b"serviceLocator\0";
2111pub const LN_id_pkix_OCSP_serviceLocator: &[u8; 21] = b"OCSP Service Locator\0";
2112pub const NID_id_pkix_OCSP_serviceLocator: i32 = 371;
2113pub const SN_id_pkix_OCSP_extendedStatus: &[u8; 15] = b"extendedStatus\0";
2114pub const LN_id_pkix_OCSP_extendedStatus: &[u8; 21] = b"Extended OCSP Status\0";
2115pub const NID_id_pkix_OCSP_extendedStatus: i32 = 372;
2116pub const SN_id_pkix_OCSP_valid: &[u8; 6] = b"valid\0";
2117pub const NID_id_pkix_OCSP_valid: i32 = 373;
2118pub const SN_id_pkix_OCSP_path: &[u8; 5] = b"path\0";
2119pub const NID_id_pkix_OCSP_path: i32 = 374;
2120pub const SN_id_pkix_OCSP_trustRoot: &[u8; 10] = b"trustRoot\0";
2121pub const LN_id_pkix_OCSP_trustRoot: &[u8; 11] = b"Trust Root\0";
2122pub const NID_id_pkix_OCSP_trustRoot: i32 = 375;
2123pub const SN_algorithm: &[u8; 10] = b"algorithm\0";
2124pub const LN_algorithm: &[u8; 10] = b"algorithm\0";
2125pub const NID_algorithm: i32 = 376;
2126pub const SN_rsaSignature: &[u8; 13] = b"rsaSignature\0";
2127pub const NID_rsaSignature: i32 = 377;
2128pub const SN_X500algorithms: &[u8; 15] = b"X500algorithms\0";
2129pub const LN_X500algorithms: &[u8; 32] = b"directory services - algorithms\0";
2130pub const NID_X500algorithms: i32 = 378;
2131pub const SN_org: &[u8; 4] = b"ORG\0";
2132pub const LN_org: &[u8; 4] = b"org\0";
2133pub const NID_org: i32 = 379;
2134pub const OBJ_ENC_org: i32 = 43;
2135pub const SN_dod: &[u8; 4] = b"DOD\0";
2136pub const LN_dod: &[u8; 4] = b"dod\0";
2137pub const NID_dod: i32 = 380;
2138pub const SN_iana: &[u8; 5] = b"IANA\0";
2139pub const LN_iana: &[u8; 5] = b"iana\0";
2140pub const NID_iana: i32 = 381;
2141pub const SN_Directory: &[u8; 10] = b"directory\0";
2142pub const LN_Directory: &[u8; 10] = b"Directory\0";
2143pub const NID_Directory: i32 = 382;
2144pub const SN_Management: &[u8; 5] = b"mgmt\0";
2145pub const LN_Management: &[u8; 11] = b"Management\0";
2146pub const NID_Management: i32 = 383;
2147pub const SN_Experimental: &[u8; 13] = b"experimental\0";
2148pub const LN_Experimental: &[u8; 13] = b"Experimental\0";
2149pub const NID_Experimental: i32 = 384;
2150pub const SN_Private: &[u8; 8] = b"private\0";
2151pub const LN_Private: &[u8; 8] = b"Private\0";
2152pub const NID_Private: i32 = 385;
2153pub const SN_Security: &[u8; 9] = b"security\0";
2154pub const LN_Security: &[u8; 9] = b"Security\0";
2155pub const NID_Security: i32 = 386;
2156pub const SN_SNMPv2: &[u8; 7] = b"snmpv2\0";
2157pub const LN_SNMPv2: &[u8; 7] = b"SNMPv2\0";
2158pub const NID_SNMPv2: i32 = 387;
2159pub const LN_Mail: &[u8; 5] = b"Mail\0";
2160pub const NID_Mail: i32 = 388;
2161pub const SN_Enterprises: &[u8; 12] = b"enterprises\0";
2162pub const LN_Enterprises: &[u8; 12] = b"Enterprises\0";
2163pub const NID_Enterprises: i32 = 389;
2164pub const SN_dcObject: &[u8; 9] = b"dcobject\0";
2165pub const LN_dcObject: &[u8; 9] = b"dcObject\0";
2166pub const NID_dcObject: i32 = 390;
2167pub const SN_domainComponent: &[u8; 3] = b"DC\0";
2168pub const LN_domainComponent: &[u8; 16] = b"domainComponent\0";
2169pub const NID_domainComponent: i32 = 391;
2170pub const SN_Domain: &[u8; 7] = b"domain\0";
2171pub const LN_Domain: &[u8; 7] = b"Domain\0";
2172pub const NID_Domain: i32 = 392;
2173pub const SN_selected_attribute_types: &[u8; 25] = b"selected-attribute-types\0";
2174pub const LN_selected_attribute_types: &[u8; 25] = b"Selected Attribute Types\0";
2175pub const NID_selected_attribute_types: i32 = 394;
2176pub const SN_clearance: &[u8; 10] = b"clearance\0";
2177pub const NID_clearance: i32 = 395;
2178pub const SN_md4WithRSAEncryption: &[u8; 8] = b"RSA-MD4\0";
2179pub const LN_md4WithRSAEncryption: &[u8; 21] = b"md4WithRSAEncryption\0";
2180pub const NID_md4WithRSAEncryption: i32 = 396;
2181pub const SN_ac_proxying: &[u8; 12] = b"ac-proxying\0";
2182pub const NID_ac_proxying: i32 = 397;
2183pub const SN_sinfo_access: &[u8; 18] = b"subjectInfoAccess\0";
2184pub const LN_sinfo_access: &[u8; 27] = b"Subject Information Access\0";
2185pub const NID_sinfo_access: i32 = 398;
2186pub const SN_id_aca_encAttrs: &[u8; 16] = b"id-aca-encAttrs\0";
2187pub const NID_id_aca_encAttrs: i32 = 399;
2188pub const SN_role: &[u8; 5] = b"role\0";
2189pub const LN_role: &[u8; 5] = b"role\0";
2190pub const NID_role: i32 = 400;
2191pub const SN_policy_constraints: &[u8; 18] = b"policyConstraints\0";
2192pub const LN_policy_constraints: &[u8; 26] = b"X509v3 Policy Constraints\0";
2193pub const NID_policy_constraints: i32 = 401;
2194pub const SN_target_information: &[u8; 18] = b"targetInformation\0";
2195pub const LN_target_information: &[u8; 20] = b"X509v3 AC Targeting\0";
2196pub const NID_target_information: i32 = 402;
2197pub const SN_no_rev_avail: &[u8; 11] = b"noRevAvail\0";
2198pub const LN_no_rev_avail: &[u8; 31] = b"X509v3 No Revocation Available\0";
2199pub const NID_no_rev_avail: i32 = 403;
2200pub const SN_ansi_X9_62: &[u8; 11] = b"ansi-X9-62\0";
2201pub const LN_ansi_X9_62: &[u8; 11] = b"ANSI X9.62\0";
2202pub const NID_ansi_X9_62: i32 = 405;
2203pub const SN_X9_62_prime_field: &[u8; 12] = b"prime-field\0";
2204pub const NID_X9_62_prime_field: i32 = 406;
2205pub const SN_X9_62_characteristic_two_field: &[u8; 25] = b"characteristic-two-field\0";
2206pub const NID_X9_62_characteristic_two_field: i32 = 407;
2207pub const SN_X9_62_id_ecPublicKey: &[u8; 15] = b"id-ecPublicKey\0";
2208pub const NID_X9_62_id_ecPublicKey: i32 = 408;
2209pub const SN_X9_62_prime192v1: &[u8; 11] = b"prime192v1\0";
2210pub const NID_X9_62_prime192v1: i32 = 409;
2211pub const SN_X9_62_prime192v2: &[u8; 11] = b"prime192v2\0";
2212pub const NID_X9_62_prime192v2: i32 = 410;
2213pub const SN_X9_62_prime192v3: &[u8; 11] = b"prime192v3\0";
2214pub const NID_X9_62_prime192v3: i32 = 411;
2215pub const SN_X9_62_prime239v1: &[u8; 11] = b"prime239v1\0";
2216pub const NID_X9_62_prime239v1: i32 = 412;
2217pub const SN_X9_62_prime239v2: &[u8; 11] = b"prime239v2\0";
2218pub const NID_X9_62_prime239v2: i32 = 413;
2219pub const SN_X9_62_prime239v3: &[u8; 11] = b"prime239v3\0";
2220pub const NID_X9_62_prime239v3: i32 = 414;
2221pub const SN_X9_62_prime256v1: &[u8; 11] = b"prime256v1\0";
2222pub const NID_X9_62_prime256v1: i32 = 415;
2223pub const SN_ecdsa_with_SHA1: &[u8; 16] = b"ecdsa-with-SHA1\0";
2224pub const NID_ecdsa_with_SHA1: i32 = 416;
2225pub const SN_ms_csp_name: &[u8; 8] = b"CSPName\0";
2226pub const LN_ms_csp_name: &[u8; 19] = b"Microsoft CSP Name\0";
2227pub const NID_ms_csp_name: i32 = 417;
2228pub const SN_aes_128_ecb: &[u8; 12] = b"AES-128-ECB\0";
2229pub const LN_aes_128_ecb: &[u8; 12] = b"aes-128-ecb\0";
2230pub const NID_aes_128_ecb: i32 = 418;
2231pub const SN_aes_128_cbc: &[u8; 12] = b"AES-128-CBC\0";
2232pub const LN_aes_128_cbc: &[u8; 12] = b"aes-128-cbc\0";
2233pub const NID_aes_128_cbc: i32 = 419;
2234pub const SN_aes_128_ofb128: &[u8; 12] = b"AES-128-OFB\0";
2235pub const LN_aes_128_ofb128: &[u8; 12] = b"aes-128-ofb\0";
2236pub const NID_aes_128_ofb128: i32 = 420;
2237pub const SN_aes_128_cfb128: &[u8; 12] = b"AES-128-CFB\0";
2238pub const LN_aes_128_cfb128: &[u8; 12] = b"aes-128-cfb\0";
2239pub const NID_aes_128_cfb128: i32 = 421;
2240pub const SN_aes_192_ecb: &[u8; 12] = b"AES-192-ECB\0";
2241pub const LN_aes_192_ecb: &[u8; 12] = b"aes-192-ecb\0";
2242pub const NID_aes_192_ecb: i32 = 422;
2243pub const SN_aes_192_cbc: &[u8; 12] = b"AES-192-CBC\0";
2244pub const LN_aes_192_cbc: &[u8; 12] = b"aes-192-cbc\0";
2245pub const NID_aes_192_cbc: i32 = 423;
2246pub const SN_aes_192_ofb128: &[u8; 12] = b"AES-192-OFB\0";
2247pub const LN_aes_192_ofb128: &[u8; 12] = b"aes-192-ofb\0";
2248pub const NID_aes_192_ofb128: i32 = 424;
2249pub const SN_aes_192_cfb128: &[u8; 12] = b"AES-192-CFB\0";
2250pub const LN_aes_192_cfb128: &[u8; 12] = b"aes-192-cfb\0";
2251pub const NID_aes_192_cfb128: i32 = 425;
2252pub const SN_aes_256_ecb: &[u8; 12] = b"AES-256-ECB\0";
2253pub const LN_aes_256_ecb: &[u8; 12] = b"aes-256-ecb\0";
2254pub const NID_aes_256_ecb: i32 = 426;
2255pub const SN_aes_256_cbc: &[u8; 12] = b"AES-256-CBC\0";
2256pub const LN_aes_256_cbc: &[u8; 12] = b"aes-256-cbc\0";
2257pub const NID_aes_256_cbc: i32 = 427;
2258pub const SN_aes_256_ofb128: &[u8; 12] = b"AES-256-OFB\0";
2259pub const LN_aes_256_ofb128: &[u8; 12] = b"aes-256-ofb\0";
2260pub const NID_aes_256_ofb128: i32 = 428;
2261pub const SN_aes_256_cfb128: &[u8; 12] = b"AES-256-CFB\0";
2262pub const LN_aes_256_cfb128: &[u8; 12] = b"aes-256-cfb\0";
2263pub const NID_aes_256_cfb128: i32 = 429;
2264pub const SN_hold_instruction_code: &[u8; 20] = b"holdInstructionCode\0";
2265pub const LN_hold_instruction_code: &[u8; 22] = b"Hold Instruction Code\0";
2266pub const NID_hold_instruction_code: i32 = 430;
2267pub const SN_hold_instruction_none: &[u8; 20] = b"holdInstructionNone\0";
2268pub const LN_hold_instruction_none: &[u8; 22] = b"Hold Instruction None\0";
2269pub const NID_hold_instruction_none: i32 = 431;
2270pub const SN_hold_instruction_call_issuer: &[u8; 26] = b"holdInstructionCallIssuer\0";
2271pub const LN_hold_instruction_call_issuer: &[u8; 29] = b"Hold Instruction Call Issuer\0";
2272pub const NID_hold_instruction_call_issuer: i32 = 432;
2273pub const SN_hold_instruction_reject: &[u8; 22] = b"holdInstructionReject\0";
2274pub const LN_hold_instruction_reject: &[u8; 24] = b"Hold Instruction Reject\0";
2275pub const NID_hold_instruction_reject: i32 = 433;
2276pub const SN_data: &[u8; 5] = b"data\0";
2277pub const NID_data: i32 = 434;
2278pub const OBJ_ENC_data: i32 = 9;
2279pub const SN_pss: &[u8; 4] = b"pss\0";
2280pub const NID_pss: i32 = 435;
2281pub const SN_ucl: &[u8; 4] = b"ucl\0";
2282pub const NID_ucl: i32 = 436;
2283pub const SN_pilot: &[u8; 6] = b"pilot\0";
2284pub const NID_pilot: i32 = 437;
2285pub const LN_pilotAttributeType: &[u8; 19] = b"pilotAttributeType\0";
2286pub const NID_pilotAttributeType: i32 = 438;
2287pub const LN_pilotAttributeSyntax: &[u8; 21] = b"pilotAttributeSyntax\0";
2288pub const NID_pilotAttributeSyntax: i32 = 439;
2289pub const LN_pilotObjectClass: &[u8; 17] = b"pilotObjectClass\0";
2290pub const NID_pilotObjectClass: i32 = 440;
2291pub const LN_pilotGroups: &[u8; 12] = b"pilotGroups\0";
2292pub const NID_pilotGroups: i32 = 441;
2293pub const LN_iA5StringSyntax: &[u8; 16] = b"iA5StringSyntax\0";
2294pub const NID_iA5StringSyntax: i32 = 442;
2295pub const LN_caseIgnoreIA5StringSyntax: &[u8; 26] = b"caseIgnoreIA5StringSyntax\0";
2296pub const NID_caseIgnoreIA5StringSyntax: i32 = 443;
2297pub const LN_pilotObject: &[u8; 12] = b"pilotObject\0";
2298pub const NID_pilotObject: i32 = 444;
2299pub const LN_pilotPerson: &[u8; 12] = b"pilotPerson\0";
2300pub const NID_pilotPerson: i32 = 445;
2301pub const SN_account: &[u8; 8] = b"account\0";
2302pub const NID_account: i32 = 446;
2303pub const SN_document: &[u8; 9] = b"document\0";
2304pub const NID_document: i32 = 447;
2305pub const SN_room: &[u8; 5] = b"room\0";
2306pub const NID_room: i32 = 448;
2307pub const LN_documentSeries: &[u8; 15] = b"documentSeries\0";
2308pub const NID_documentSeries: i32 = 449;
2309pub const LN_rFC822localPart: &[u8; 16] = b"rFC822localPart\0";
2310pub const NID_rFC822localPart: i32 = 450;
2311pub const LN_dNSDomain: &[u8; 10] = b"dNSDomain\0";
2312pub const NID_dNSDomain: i32 = 451;
2313pub const LN_domainRelatedObject: &[u8; 20] = b"domainRelatedObject\0";
2314pub const NID_domainRelatedObject: i32 = 452;
2315pub const LN_friendlyCountry: &[u8; 16] = b"friendlyCountry\0";
2316pub const NID_friendlyCountry: i32 = 453;
2317pub const LN_simpleSecurityObject: &[u8; 21] = b"simpleSecurityObject\0";
2318pub const NID_simpleSecurityObject: i32 = 454;
2319pub const LN_pilotOrganization: &[u8; 18] = b"pilotOrganization\0";
2320pub const NID_pilotOrganization: i32 = 455;
2321pub const LN_pilotDSA: &[u8; 9] = b"pilotDSA\0";
2322pub const NID_pilotDSA: i32 = 456;
2323pub const LN_qualityLabelledData: &[u8; 20] = b"qualityLabelledData\0";
2324pub const NID_qualityLabelledData: i32 = 457;
2325pub const SN_userId: &[u8; 4] = b"UID\0";
2326pub const LN_userId: &[u8; 7] = b"userId\0";
2327pub const NID_userId: i32 = 458;
2328pub const LN_textEncodedORAddress: &[u8; 21] = b"textEncodedORAddress\0";
2329pub const NID_textEncodedORAddress: i32 = 459;
2330pub const SN_rfc822Mailbox: &[u8; 5] = b"mail\0";
2331pub const LN_rfc822Mailbox: &[u8; 14] = b"rfc822Mailbox\0";
2332pub const NID_rfc822Mailbox: i32 = 460;
2333pub const SN_info: &[u8; 5] = b"info\0";
2334pub const NID_info: i32 = 461;
2335pub const LN_favouriteDrink: &[u8; 15] = b"favouriteDrink\0";
2336pub const NID_favouriteDrink: i32 = 462;
2337pub const LN_roomNumber: &[u8; 11] = b"roomNumber\0";
2338pub const NID_roomNumber: i32 = 463;
2339pub const SN_photo: &[u8; 6] = b"photo\0";
2340pub const NID_photo: i32 = 464;
2341pub const LN_userClass: &[u8; 10] = b"userClass\0";
2342pub const NID_userClass: i32 = 465;
2343pub const SN_host: &[u8; 5] = b"host\0";
2344pub const NID_host: i32 = 466;
2345pub const SN_manager: &[u8; 8] = b"manager\0";
2346pub const NID_manager: i32 = 467;
2347pub const LN_documentIdentifier: &[u8; 19] = b"documentIdentifier\0";
2348pub const NID_documentIdentifier: i32 = 468;
2349pub const LN_documentTitle: &[u8; 14] = b"documentTitle\0";
2350pub const NID_documentTitle: i32 = 469;
2351pub const LN_documentVersion: &[u8; 16] = b"documentVersion\0";
2352pub const NID_documentVersion: i32 = 470;
2353pub const LN_documentAuthor: &[u8; 15] = b"documentAuthor\0";
2354pub const NID_documentAuthor: i32 = 471;
2355pub const LN_documentLocation: &[u8; 17] = b"documentLocation\0";
2356pub const NID_documentLocation: i32 = 472;
2357pub const LN_homeTelephoneNumber: &[u8; 20] = b"homeTelephoneNumber\0";
2358pub const NID_homeTelephoneNumber: i32 = 473;
2359pub const SN_secretary: &[u8; 10] = b"secretary\0";
2360pub const NID_secretary: i32 = 474;
2361pub const LN_otherMailbox: &[u8; 13] = b"otherMailbox\0";
2362pub const NID_otherMailbox: i32 = 475;
2363pub const LN_lastModifiedTime: &[u8; 17] = b"lastModifiedTime\0";
2364pub const NID_lastModifiedTime: i32 = 476;
2365pub const LN_lastModifiedBy: &[u8; 15] = b"lastModifiedBy\0";
2366pub const NID_lastModifiedBy: i32 = 477;
2367pub const LN_aRecord: &[u8; 8] = b"aRecord\0";
2368pub const NID_aRecord: i32 = 478;
2369pub const LN_pilotAttributeType27: &[u8; 21] = b"pilotAttributeType27\0";
2370pub const NID_pilotAttributeType27: i32 = 479;
2371pub const LN_mXRecord: &[u8; 9] = b"mXRecord\0";
2372pub const NID_mXRecord: i32 = 480;
2373pub const LN_nSRecord: &[u8; 9] = b"nSRecord\0";
2374pub const NID_nSRecord: i32 = 481;
2375pub const LN_sOARecord: &[u8; 10] = b"sOARecord\0";
2376pub const NID_sOARecord: i32 = 482;
2377pub const LN_cNAMERecord: &[u8; 12] = b"cNAMERecord\0";
2378pub const NID_cNAMERecord: i32 = 483;
2379pub const LN_associatedDomain: &[u8; 17] = b"associatedDomain\0";
2380pub const NID_associatedDomain: i32 = 484;
2381pub const LN_associatedName: &[u8; 15] = b"associatedName\0";
2382pub const NID_associatedName: i32 = 485;
2383pub const LN_homePostalAddress: &[u8; 18] = b"homePostalAddress\0";
2384pub const NID_homePostalAddress: i32 = 486;
2385pub const LN_personalTitle: &[u8; 14] = b"personalTitle\0";
2386pub const NID_personalTitle: i32 = 487;
2387pub const LN_mobileTelephoneNumber: &[u8; 22] = b"mobileTelephoneNumber\0";
2388pub const NID_mobileTelephoneNumber: i32 = 488;
2389pub const LN_pagerTelephoneNumber: &[u8; 21] = b"pagerTelephoneNumber\0";
2390pub const NID_pagerTelephoneNumber: i32 = 489;
2391pub const LN_friendlyCountryName: &[u8; 20] = b"friendlyCountryName\0";
2392pub const NID_friendlyCountryName: i32 = 490;
2393pub const LN_organizationalStatus: &[u8; 21] = b"organizationalStatus\0";
2394pub const NID_organizationalStatus: i32 = 491;
2395pub const LN_janetMailbox: &[u8; 13] = b"janetMailbox\0";
2396pub const NID_janetMailbox: i32 = 492;
2397pub const LN_mailPreferenceOption: &[u8; 21] = b"mailPreferenceOption\0";
2398pub const NID_mailPreferenceOption: i32 = 493;
2399pub const LN_buildingName: &[u8; 13] = b"buildingName\0";
2400pub const NID_buildingName: i32 = 494;
2401pub const LN_dSAQuality: &[u8; 11] = b"dSAQuality\0";
2402pub const NID_dSAQuality: i32 = 495;
2403pub const LN_singleLevelQuality: &[u8; 19] = b"singleLevelQuality\0";
2404pub const NID_singleLevelQuality: i32 = 496;
2405pub const LN_subtreeMinimumQuality: &[u8; 22] = b"subtreeMinimumQuality\0";
2406pub const NID_subtreeMinimumQuality: i32 = 497;
2407pub const LN_subtreeMaximumQuality: &[u8; 22] = b"subtreeMaximumQuality\0";
2408pub const NID_subtreeMaximumQuality: i32 = 498;
2409pub const LN_personalSignature: &[u8; 18] = b"personalSignature\0";
2410pub const NID_personalSignature: i32 = 499;
2411pub const LN_dITRedirect: &[u8; 12] = b"dITRedirect\0";
2412pub const NID_dITRedirect: i32 = 500;
2413pub const SN_audio: &[u8; 6] = b"audio\0";
2414pub const NID_audio: i32 = 501;
2415pub const LN_documentPublisher: &[u8; 18] = b"documentPublisher\0";
2416pub const NID_documentPublisher: i32 = 502;
2417pub const LN_x500UniqueIdentifier: &[u8; 21] = b"x500UniqueIdentifier\0";
2418pub const NID_x500UniqueIdentifier: i32 = 503;
2419pub const SN_mime_mhs: &[u8; 9] = b"mime-mhs\0";
2420pub const LN_mime_mhs: &[u8; 9] = b"MIME MHS\0";
2421pub const NID_mime_mhs: i32 = 504;
2422pub const SN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2423pub const LN_mime_mhs_headings: &[u8; 18] = b"mime-mhs-headings\0";
2424pub const NID_mime_mhs_headings: i32 = 505;
2425pub const SN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2426pub const LN_mime_mhs_bodies: &[u8; 16] = b"mime-mhs-bodies\0";
2427pub const NID_mime_mhs_bodies: i32 = 506;
2428pub const SN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2429pub const LN_id_hex_partial_message: &[u8; 23] = b"id-hex-partial-message\0";
2430pub const NID_id_hex_partial_message: i32 = 507;
2431pub const SN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2432pub const LN_id_hex_multipart_message: &[u8; 25] = b"id-hex-multipart-message\0";
2433pub const NID_id_hex_multipart_message: i32 = 508;
2434pub const LN_generationQualifier: &[u8; 20] = b"generationQualifier\0";
2435pub const NID_generationQualifier: i32 = 509;
2436pub const LN_pseudonym: &[u8; 10] = b"pseudonym\0";
2437pub const NID_pseudonym: i32 = 510;
2438pub const SN_id_set: &[u8; 7] = b"id-set\0";
2439pub const LN_id_set: &[u8; 31] = b"Secure Electronic Transactions\0";
2440pub const NID_id_set: i32 = 512;
2441pub const SN_set_ctype: &[u8; 10] = b"set-ctype\0";
2442pub const LN_set_ctype: &[u8; 14] = b"content types\0";
2443pub const NID_set_ctype: i32 = 513;
2444pub const SN_set_msgExt: &[u8; 11] = b"set-msgExt\0";
2445pub const LN_set_msgExt: &[u8; 19] = b"message extensions\0";
2446pub const NID_set_msgExt: i32 = 514;
2447pub const SN_set_attr: &[u8; 9] = b"set-attr\0";
2448pub const NID_set_attr: i32 = 515;
2449pub const SN_set_policy: &[u8; 11] = b"set-policy\0";
2450pub const NID_set_policy: i32 = 516;
2451pub const SN_set_certExt: &[u8; 12] = b"set-certExt\0";
2452pub const LN_set_certExt: &[u8; 23] = b"certificate extensions\0";
2453pub const NID_set_certExt: i32 = 517;
2454pub const SN_set_brand: &[u8; 10] = b"set-brand\0";
2455pub const NID_set_brand: i32 = 518;
2456pub const SN_setct_PANData: &[u8; 14] = b"setct-PANData\0";
2457pub const NID_setct_PANData: i32 = 519;
2458pub const SN_setct_PANToken: &[u8; 15] = b"setct-PANToken\0";
2459pub const NID_setct_PANToken: i32 = 520;
2460pub const SN_setct_PANOnly: &[u8; 14] = b"setct-PANOnly\0";
2461pub const NID_setct_PANOnly: i32 = 521;
2462pub const SN_setct_OIData: &[u8; 13] = b"setct-OIData\0";
2463pub const NID_setct_OIData: i32 = 522;
2464pub const SN_setct_PI: &[u8; 9] = b"setct-PI\0";
2465pub const NID_setct_PI: i32 = 523;
2466pub const SN_setct_PIData: &[u8; 13] = b"setct-PIData\0";
2467pub const NID_setct_PIData: i32 = 524;
2468pub const SN_setct_PIDataUnsigned: &[u8; 21] = b"setct-PIDataUnsigned\0";
2469pub const NID_setct_PIDataUnsigned: i32 = 525;
2470pub const SN_setct_HODInput: &[u8; 15] = b"setct-HODInput\0";
2471pub const NID_setct_HODInput: i32 = 526;
2472pub const SN_setct_AuthResBaggage: &[u8; 21] = b"setct-AuthResBaggage\0";
2473pub const NID_setct_AuthResBaggage: i32 = 527;
2474pub const SN_setct_AuthRevReqBaggage: &[u8; 24] = b"setct-AuthRevReqBaggage\0";
2475pub const NID_setct_AuthRevReqBaggage: i32 = 528;
2476pub const SN_setct_AuthRevResBaggage: &[u8; 24] = b"setct-AuthRevResBaggage\0";
2477pub const NID_setct_AuthRevResBaggage: i32 = 529;
2478pub const SN_setct_CapTokenSeq: &[u8; 18] = b"setct-CapTokenSeq\0";
2479pub const NID_setct_CapTokenSeq: i32 = 530;
2480pub const SN_setct_PInitResData: &[u8; 19] = b"setct-PInitResData\0";
2481pub const NID_setct_PInitResData: i32 = 531;
2482pub const SN_setct_PI_TBS: &[u8; 13] = b"setct-PI-TBS\0";
2483pub const NID_setct_PI_TBS: i32 = 532;
2484pub const SN_setct_PResData: &[u8; 15] = b"setct-PResData\0";
2485pub const NID_setct_PResData: i32 = 533;
2486pub const SN_setct_AuthReqTBS: &[u8; 17] = b"setct-AuthReqTBS\0";
2487pub const NID_setct_AuthReqTBS: i32 = 534;
2488pub const SN_setct_AuthResTBS: &[u8; 17] = b"setct-AuthResTBS\0";
2489pub const NID_setct_AuthResTBS: i32 = 535;
2490pub const SN_setct_AuthResTBSX: &[u8; 18] = b"setct-AuthResTBSX\0";
2491pub const NID_setct_AuthResTBSX: i32 = 536;
2492pub const SN_setct_AuthTokenTBS: &[u8; 19] = b"setct-AuthTokenTBS\0";
2493pub const NID_setct_AuthTokenTBS: i32 = 537;
2494pub const SN_setct_CapTokenData: &[u8; 19] = b"setct-CapTokenData\0";
2495pub const NID_setct_CapTokenData: i32 = 538;
2496pub const SN_setct_CapTokenTBS: &[u8; 18] = b"setct-CapTokenTBS\0";
2497pub const NID_setct_CapTokenTBS: i32 = 539;
2498pub const SN_setct_AcqCardCodeMsg: &[u8; 21] = b"setct-AcqCardCodeMsg\0";
2499pub const NID_setct_AcqCardCodeMsg: i32 = 540;
2500pub const SN_setct_AuthRevReqTBS: &[u8; 20] = b"setct-AuthRevReqTBS\0";
2501pub const NID_setct_AuthRevReqTBS: i32 = 541;
2502pub const SN_setct_AuthRevResData: &[u8; 21] = b"setct-AuthRevResData\0";
2503pub const NID_setct_AuthRevResData: i32 = 542;
2504pub const SN_setct_AuthRevResTBS: &[u8; 20] = b"setct-AuthRevResTBS\0";
2505pub const NID_setct_AuthRevResTBS: i32 = 543;
2506pub const SN_setct_CapReqTBS: &[u8; 16] = b"setct-CapReqTBS\0";
2507pub const NID_setct_CapReqTBS: i32 = 544;
2508pub const SN_setct_CapReqTBSX: &[u8; 17] = b"setct-CapReqTBSX\0";
2509pub const NID_setct_CapReqTBSX: i32 = 545;
2510pub const SN_setct_CapResData: &[u8; 17] = b"setct-CapResData\0";
2511pub const NID_setct_CapResData: i32 = 546;
2512pub const SN_setct_CapRevReqTBS: &[u8; 19] = b"setct-CapRevReqTBS\0";
2513pub const NID_setct_CapRevReqTBS: i32 = 547;
2514pub const SN_setct_CapRevReqTBSX: &[u8; 20] = b"setct-CapRevReqTBSX\0";
2515pub const NID_setct_CapRevReqTBSX: i32 = 548;
2516pub const SN_setct_CapRevResData: &[u8; 20] = b"setct-CapRevResData\0";
2517pub const NID_setct_CapRevResData: i32 = 549;
2518pub const SN_setct_CredReqTBS: &[u8; 17] = b"setct-CredReqTBS\0";
2519pub const NID_setct_CredReqTBS: i32 = 550;
2520pub const SN_setct_CredReqTBSX: &[u8; 18] = b"setct-CredReqTBSX\0";
2521pub const NID_setct_CredReqTBSX: i32 = 551;
2522pub const SN_setct_CredResData: &[u8; 18] = b"setct-CredResData\0";
2523pub const NID_setct_CredResData: i32 = 552;
2524pub const SN_setct_CredRevReqTBS: &[u8; 20] = b"setct-CredRevReqTBS\0";
2525pub const NID_setct_CredRevReqTBS: i32 = 553;
2526pub const SN_setct_CredRevReqTBSX: &[u8; 21] = b"setct-CredRevReqTBSX\0";
2527pub const NID_setct_CredRevReqTBSX: i32 = 554;
2528pub const SN_setct_CredRevResData: &[u8; 21] = b"setct-CredRevResData\0";
2529pub const NID_setct_CredRevResData: i32 = 555;
2530pub const SN_setct_PCertReqData: &[u8; 19] = b"setct-PCertReqData\0";
2531pub const NID_setct_PCertReqData: i32 = 556;
2532pub const SN_setct_PCertResTBS: &[u8; 18] = b"setct-PCertResTBS\0";
2533pub const NID_setct_PCertResTBS: i32 = 557;
2534pub const SN_setct_BatchAdminReqData: &[u8; 24] = b"setct-BatchAdminReqData\0";
2535pub const NID_setct_BatchAdminReqData: i32 = 558;
2536pub const SN_setct_BatchAdminResData: &[u8; 24] = b"setct-BatchAdminResData\0";
2537pub const NID_setct_BatchAdminResData: i32 = 559;
2538pub const SN_setct_CardCInitResTBS: &[u8; 22] = b"setct-CardCInitResTBS\0";
2539pub const NID_setct_CardCInitResTBS: i32 = 560;
2540pub const SN_setct_MeAqCInitResTBS: &[u8; 22] = b"setct-MeAqCInitResTBS\0";
2541pub const NID_setct_MeAqCInitResTBS: i32 = 561;
2542pub const SN_setct_RegFormResTBS: &[u8; 20] = b"setct-RegFormResTBS\0";
2543pub const NID_setct_RegFormResTBS: i32 = 562;
2544pub const SN_setct_CertReqData: &[u8; 18] = b"setct-CertReqData\0";
2545pub const NID_setct_CertReqData: i32 = 563;
2546pub const SN_setct_CertReqTBS: &[u8; 17] = b"setct-CertReqTBS\0";
2547pub const NID_setct_CertReqTBS: i32 = 564;
2548pub const SN_setct_CertResData: &[u8; 18] = b"setct-CertResData\0";
2549pub const NID_setct_CertResData: i32 = 565;
2550pub const SN_setct_CertInqReqTBS: &[u8; 20] = b"setct-CertInqReqTBS\0";
2551pub const NID_setct_CertInqReqTBS: i32 = 566;
2552pub const SN_setct_ErrorTBS: &[u8; 15] = b"setct-ErrorTBS\0";
2553pub const NID_setct_ErrorTBS: i32 = 567;
2554pub const SN_setct_PIDualSignedTBE: &[u8; 22] = b"setct-PIDualSignedTBE\0";
2555pub const NID_setct_PIDualSignedTBE: i32 = 568;
2556pub const SN_setct_PIUnsignedTBE: &[u8; 20] = b"setct-PIUnsignedTBE\0";
2557pub const NID_setct_PIUnsignedTBE: i32 = 569;
2558pub const SN_setct_AuthReqTBE: &[u8; 17] = b"setct-AuthReqTBE\0";
2559pub const NID_setct_AuthReqTBE: i32 = 570;
2560pub const SN_setct_AuthResTBE: &[u8; 17] = b"setct-AuthResTBE\0";
2561pub const NID_setct_AuthResTBE: i32 = 571;
2562pub const SN_setct_AuthResTBEX: &[u8; 18] = b"setct-AuthResTBEX\0";
2563pub const NID_setct_AuthResTBEX: i32 = 572;
2564pub const SN_setct_AuthTokenTBE: &[u8; 19] = b"setct-AuthTokenTBE\0";
2565pub const NID_setct_AuthTokenTBE: i32 = 573;
2566pub const SN_setct_CapTokenTBE: &[u8; 18] = b"setct-CapTokenTBE\0";
2567pub const NID_setct_CapTokenTBE: i32 = 574;
2568pub const SN_setct_CapTokenTBEX: &[u8; 19] = b"setct-CapTokenTBEX\0";
2569pub const NID_setct_CapTokenTBEX: i32 = 575;
2570pub const SN_setct_AcqCardCodeMsgTBE: &[u8; 24] = b"setct-AcqCardCodeMsgTBE\0";
2571pub const NID_setct_AcqCardCodeMsgTBE: i32 = 576;
2572pub const SN_setct_AuthRevReqTBE: &[u8; 20] = b"setct-AuthRevReqTBE\0";
2573pub const NID_setct_AuthRevReqTBE: i32 = 577;
2574pub const SN_setct_AuthRevResTBE: &[u8; 20] = b"setct-AuthRevResTBE\0";
2575pub const NID_setct_AuthRevResTBE: i32 = 578;
2576pub const SN_setct_AuthRevResTBEB: &[u8; 21] = b"setct-AuthRevResTBEB\0";
2577pub const NID_setct_AuthRevResTBEB: i32 = 579;
2578pub const SN_setct_CapReqTBE: &[u8; 16] = b"setct-CapReqTBE\0";
2579pub const NID_setct_CapReqTBE: i32 = 580;
2580pub const SN_setct_CapReqTBEX: &[u8; 17] = b"setct-CapReqTBEX\0";
2581pub const NID_setct_CapReqTBEX: i32 = 581;
2582pub const SN_setct_CapResTBE: &[u8; 16] = b"setct-CapResTBE\0";
2583pub const NID_setct_CapResTBE: i32 = 582;
2584pub const SN_setct_CapRevReqTBE: &[u8; 19] = b"setct-CapRevReqTBE\0";
2585pub const NID_setct_CapRevReqTBE: i32 = 583;
2586pub const SN_setct_CapRevReqTBEX: &[u8; 20] = b"setct-CapRevReqTBEX\0";
2587pub const NID_setct_CapRevReqTBEX: i32 = 584;
2588pub const SN_setct_CapRevResTBE: &[u8; 19] = b"setct-CapRevResTBE\0";
2589pub const NID_setct_CapRevResTBE: i32 = 585;
2590pub const SN_setct_CredReqTBE: &[u8; 17] = b"setct-CredReqTBE\0";
2591pub const NID_setct_CredReqTBE: i32 = 586;
2592pub const SN_setct_CredReqTBEX: &[u8; 18] = b"setct-CredReqTBEX\0";
2593pub const NID_setct_CredReqTBEX: i32 = 587;
2594pub const SN_setct_CredResTBE: &[u8; 17] = b"setct-CredResTBE\0";
2595pub const NID_setct_CredResTBE: i32 = 588;
2596pub const SN_setct_CredRevReqTBE: &[u8; 20] = b"setct-CredRevReqTBE\0";
2597pub const NID_setct_CredRevReqTBE: i32 = 589;
2598pub const SN_setct_CredRevReqTBEX: &[u8; 21] = b"setct-CredRevReqTBEX\0";
2599pub const NID_setct_CredRevReqTBEX: i32 = 590;
2600pub const SN_setct_CredRevResTBE: &[u8; 20] = b"setct-CredRevResTBE\0";
2601pub const NID_setct_CredRevResTBE: i32 = 591;
2602pub const SN_setct_BatchAdminReqTBE: &[u8; 23] = b"setct-BatchAdminReqTBE\0";
2603pub const NID_setct_BatchAdminReqTBE: i32 = 592;
2604pub const SN_setct_BatchAdminResTBE: &[u8; 23] = b"setct-BatchAdminResTBE\0";
2605pub const NID_setct_BatchAdminResTBE: i32 = 593;
2606pub const SN_setct_RegFormReqTBE: &[u8; 20] = b"setct-RegFormReqTBE\0";
2607pub const NID_setct_RegFormReqTBE: i32 = 594;
2608pub const SN_setct_CertReqTBE: &[u8; 17] = b"setct-CertReqTBE\0";
2609pub const NID_setct_CertReqTBE: i32 = 595;
2610pub const SN_setct_CertReqTBEX: &[u8; 18] = b"setct-CertReqTBEX\0";
2611pub const NID_setct_CertReqTBEX: i32 = 596;
2612pub const SN_setct_CertResTBE: &[u8; 17] = b"setct-CertResTBE\0";
2613pub const NID_setct_CertResTBE: i32 = 597;
2614pub const SN_setct_CRLNotificationTBS: &[u8; 25] = b"setct-CRLNotificationTBS\0";
2615pub const NID_setct_CRLNotificationTBS: i32 = 598;
2616pub const SN_setct_CRLNotificationResTBS: &[u8; 28] = b"setct-CRLNotificationResTBS\0";
2617pub const NID_setct_CRLNotificationResTBS: i32 = 599;
2618pub const SN_setct_BCIDistributionTBS: &[u8; 25] = b"setct-BCIDistributionTBS\0";
2619pub const NID_setct_BCIDistributionTBS: i32 = 600;
2620pub const SN_setext_genCrypt: &[u8; 16] = b"setext-genCrypt\0";
2621pub const LN_setext_genCrypt: &[u8; 19] = b"generic cryptogram\0";
2622pub const NID_setext_genCrypt: i32 = 601;
2623pub const SN_setext_miAuth: &[u8; 14] = b"setext-miAuth\0";
2624pub const LN_setext_miAuth: &[u8; 24] = b"merchant initiated auth\0";
2625pub const NID_setext_miAuth: i32 = 602;
2626pub const SN_setext_pinSecure: &[u8; 17] = b"setext-pinSecure\0";
2627pub const NID_setext_pinSecure: i32 = 603;
2628pub const SN_setext_pinAny: &[u8; 14] = b"setext-pinAny\0";
2629pub const NID_setext_pinAny: i32 = 604;
2630pub const SN_setext_track2: &[u8; 14] = b"setext-track2\0";
2631pub const NID_setext_track2: i32 = 605;
2632pub const SN_setext_cv: &[u8; 10] = b"setext-cv\0";
2633pub const LN_setext_cv: &[u8; 24] = b"additional verification\0";
2634pub const NID_setext_cv: i32 = 606;
2635pub const SN_set_policy_root: &[u8; 16] = b"set-policy-root\0";
2636pub const NID_set_policy_root: i32 = 607;
2637pub const SN_setCext_hashedRoot: &[u8; 19] = b"setCext-hashedRoot\0";
2638pub const NID_setCext_hashedRoot: i32 = 608;
2639pub const SN_setCext_certType: &[u8; 17] = b"setCext-certType\0";
2640pub const NID_setCext_certType: i32 = 609;
2641pub const SN_setCext_merchData: &[u8; 18] = b"setCext-merchData\0";
2642pub const NID_setCext_merchData: i32 = 610;
2643pub const SN_setCext_cCertRequired: &[u8; 22] = b"setCext-cCertRequired\0";
2644pub const NID_setCext_cCertRequired: i32 = 611;
2645pub const SN_setCext_tunneling: &[u8; 18] = b"setCext-tunneling\0";
2646pub const NID_setCext_tunneling: i32 = 612;
2647pub const SN_setCext_setExt: &[u8; 15] = b"setCext-setExt\0";
2648pub const NID_setCext_setExt: i32 = 613;
2649pub const SN_setCext_setQualf: &[u8; 17] = b"setCext-setQualf\0";
2650pub const NID_setCext_setQualf: i32 = 614;
2651pub const SN_setCext_PGWYcapabilities: &[u8; 25] = b"setCext-PGWYcapabilities\0";
2652pub const NID_setCext_PGWYcapabilities: i32 = 615;
2653pub const SN_setCext_TokenIdentifier: &[u8; 24] = b"setCext-TokenIdentifier\0";
2654pub const NID_setCext_TokenIdentifier: i32 = 616;
2655pub const SN_setCext_Track2Data: &[u8; 19] = b"setCext-Track2Data\0";
2656pub const NID_setCext_Track2Data: i32 = 617;
2657pub const SN_setCext_TokenType: &[u8; 18] = b"setCext-TokenType\0";
2658pub const NID_setCext_TokenType: i32 = 618;
2659pub const SN_setCext_IssuerCapabilities: &[u8; 27] = b"setCext-IssuerCapabilities\0";
2660pub const NID_setCext_IssuerCapabilities: i32 = 619;
2661pub const SN_setAttr_Cert: &[u8; 13] = b"setAttr-Cert\0";
2662pub const NID_setAttr_Cert: i32 = 620;
2663pub const SN_setAttr_PGWYcap: &[u8; 16] = b"setAttr-PGWYcap\0";
2664pub const LN_setAttr_PGWYcap: &[u8; 29] = b"payment gateway capabilities\0";
2665pub const NID_setAttr_PGWYcap: i32 = 621;
2666pub const SN_setAttr_TokenType: &[u8; 18] = b"setAttr-TokenType\0";
2667pub const NID_setAttr_TokenType: i32 = 622;
2668pub const SN_setAttr_IssCap: &[u8; 15] = b"setAttr-IssCap\0";
2669pub const LN_setAttr_IssCap: &[u8; 20] = b"issuer capabilities\0";
2670pub const NID_setAttr_IssCap: i32 = 623;
2671pub const SN_set_rootKeyThumb: &[u8; 17] = b"set-rootKeyThumb\0";
2672pub const NID_set_rootKeyThumb: i32 = 624;
2673pub const SN_set_addPolicy: &[u8; 14] = b"set-addPolicy\0";
2674pub const NID_set_addPolicy: i32 = 625;
2675pub const SN_setAttr_Token_EMV: &[u8; 18] = b"setAttr-Token-EMV\0";
2676pub const NID_setAttr_Token_EMV: i32 = 626;
2677pub const SN_setAttr_Token_B0Prime: &[u8; 22] = b"setAttr-Token-B0Prime\0";
2678pub const NID_setAttr_Token_B0Prime: i32 = 627;
2679pub const SN_setAttr_IssCap_CVM: &[u8; 19] = b"setAttr-IssCap-CVM\0";
2680pub const NID_setAttr_IssCap_CVM: i32 = 628;
2681pub const SN_setAttr_IssCap_T2: &[u8; 18] = b"setAttr-IssCap-T2\0";
2682pub const NID_setAttr_IssCap_T2: i32 = 629;
2683pub const SN_setAttr_IssCap_Sig: &[u8; 19] = b"setAttr-IssCap-Sig\0";
2684pub const NID_setAttr_IssCap_Sig: i32 = 630;
2685pub const SN_setAttr_GenCryptgrm: &[u8; 20] = b"setAttr-GenCryptgrm\0";
2686pub const LN_setAttr_GenCryptgrm: &[u8; 20] = b"generate cryptogram\0";
2687pub const NID_setAttr_GenCryptgrm: i32 = 631;
2688pub const SN_setAttr_T2Enc: &[u8; 14] = b"setAttr-T2Enc\0";
2689pub const LN_setAttr_T2Enc: &[u8; 18] = b"encrypted track 2\0";
2690pub const NID_setAttr_T2Enc: i32 = 632;
2691pub const SN_setAttr_T2cleartxt: &[u8; 19] = b"setAttr-T2cleartxt\0";
2692pub const LN_setAttr_T2cleartxt: &[u8; 18] = b"cleartext track 2\0";
2693pub const NID_setAttr_T2cleartxt: i32 = 633;
2694pub const SN_setAttr_TokICCsig: &[u8; 18] = b"setAttr-TokICCsig\0";
2695pub const LN_setAttr_TokICCsig: &[u8; 23] = b"ICC or token signature\0";
2696pub const NID_setAttr_TokICCsig: i32 = 634;
2697pub const SN_setAttr_SecDevSig: &[u8; 18] = b"setAttr-SecDevSig\0";
2698pub const LN_setAttr_SecDevSig: &[u8; 24] = b"secure device signature\0";
2699pub const NID_setAttr_SecDevSig: i32 = 635;
2700pub const SN_set_brand_IATA_ATA: &[u8; 19] = b"set-brand-IATA-ATA\0";
2701pub const NID_set_brand_IATA_ATA: i32 = 636;
2702pub const SN_set_brand_Diners: &[u8; 17] = b"set-brand-Diners\0";
2703pub const NID_set_brand_Diners: i32 = 637;
2704pub const SN_set_brand_AmericanExpress: &[u8; 26] = b"set-brand-AmericanExpress\0";
2705pub const NID_set_brand_AmericanExpress: i32 = 638;
2706pub const SN_set_brand_JCB: &[u8; 14] = b"set-brand-JCB\0";
2707pub const NID_set_brand_JCB: i32 = 639;
2708pub const SN_set_brand_Visa: &[u8; 15] = b"set-brand-Visa\0";
2709pub const NID_set_brand_Visa: i32 = 640;
2710pub const SN_set_brand_MasterCard: &[u8; 21] = b"set-brand-MasterCard\0";
2711pub const NID_set_brand_MasterCard: i32 = 641;
2712pub const SN_set_brand_Novus: &[u8; 16] = b"set-brand-Novus\0";
2713pub const NID_set_brand_Novus: i32 = 642;
2714pub const SN_des_cdmf: &[u8; 9] = b"DES-CDMF\0";
2715pub const LN_des_cdmf: &[u8; 9] = b"des-cdmf\0";
2716pub const NID_des_cdmf: i32 = 643;
2717pub const SN_rsaOAEPEncryptionSET: &[u8; 21] = b"rsaOAEPEncryptionSET\0";
2718pub const NID_rsaOAEPEncryptionSET: i32 = 644;
2719pub const SN_itu_t: &[u8; 6] = b"ITU-T\0";
2720pub const LN_itu_t: &[u8; 6] = b"itu-t\0";
2721pub const NID_itu_t: i32 = 645;
2722pub const OBJ_itu_t: i32 = 0;
2723pub const SN_joint_iso_itu_t: &[u8; 16] = b"JOINT-ISO-ITU-T\0";
2724pub const LN_joint_iso_itu_t: &[u8; 16] = b"joint-iso-itu-t\0";
2725pub const NID_joint_iso_itu_t: i32 = 646;
2726pub const OBJ_joint_iso_itu_t: i32 = 2;
2727pub const SN_international_organizations: &[u8; 28] = b"international-organizations\0";
2728pub const LN_international_organizations: &[u8; 28] = b"International Organizations\0";
2729pub const NID_international_organizations: i32 = 647;
2730pub const OBJ_ENC_international_organizations: i32 = 103;
2731pub const SN_ms_smartcard_login: &[u8; 17] = b"msSmartcardLogin\0";
2732pub const LN_ms_smartcard_login: &[u8; 25] = b"Microsoft Smartcardlogin\0";
2733pub const NID_ms_smartcard_login: i32 = 648;
2734pub const SN_ms_upn: &[u8; 6] = b"msUPN\0";
2735pub const LN_ms_upn: &[u8; 35] = b"Microsoft Universal Principal Name\0";
2736pub const NID_ms_upn: i32 = 649;
2737pub const SN_aes_128_cfb1: &[u8; 13] = b"AES-128-CFB1\0";
2738pub const LN_aes_128_cfb1: &[u8; 13] = b"aes-128-cfb1\0";
2739pub const NID_aes_128_cfb1: i32 = 650;
2740pub const SN_aes_192_cfb1: &[u8; 13] = b"AES-192-CFB1\0";
2741pub const LN_aes_192_cfb1: &[u8; 13] = b"aes-192-cfb1\0";
2742pub const NID_aes_192_cfb1: i32 = 651;
2743pub const SN_aes_256_cfb1: &[u8; 13] = b"AES-256-CFB1\0";
2744pub const LN_aes_256_cfb1: &[u8; 13] = b"aes-256-cfb1\0";
2745pub const NID_aes_256_cfb1: i32 = 652;
2746pub const SN_aes_128_cfb8: &[u8; 13] = b"AES-128-CFB8\0";
2747pub const LN_aes_128_cfb8: &[u8; 13] = b"aes-128-cfb8\0";
2748pub const NID_aes_128_cfb8: i32 = 653;
2749pub const SN_aes_192_cfb8: &[u8; 13] = b"AES-192-CFB8\0";
2750pub const LN_aes_192_cfb8: &[u8; 13] = b"aes-192-cfb8\0";
2751pub const NID_aes_192_cfb8: i32 = 654;
2752pub const SN_aes_256_cfb8: &[u8; 13] = b"AES-256-CFB8\0";
2753pub const LN_aes_256_cfb8: &[u8; 13] = b"aes-256-cfb8\0";
2754pub const NID_aes_256_cfb8: i32 = 655;
2755pub const SN_des_cfb1: &[u8; 9] = b"DES-CFB1\0";
2756pub const LN_des_cfb1: &[u8; 9] = b"des-cfb1\0";
2757pub const NID_des_cfb1: i32 = 656;
2758pub const SN_des_cfb8: &[u8; 9] = b"DES-CFB8\0";
2759pub const LN_des_cfb8: &[u8; 9] = b"des-cfb8\0";
2760pub const NID_des_cfb8: i32 = 657;
2761pub const SN_des_ede3_cfb1: &[u8; 14] = b"DES-EDE3-CFB1\0";
2762pub const LN_des_ede3_cfb1: &[u8; 14] = b"des-ede3-cfb1\0";
2763pub const NID_des_ede3_cfb1: i32 = 658;
2764pub const SN_des_ede3_cfb8: &[u8; 14] = b"DES-EDE3-CFB8\0";
2765pub const LN_des_ede3_cfb8: &[u8; 14] = b"des-ede3-cfb8\0";
2766pub const NID_des_ede3_cfb8: i32 = 659;
2767pub const SN_streetAddress: &[u8; 7] = b"street\0";
2768pub const LN_streetAddress: &[u8; 14] = b"streetAddress\0";
2769pub const NID_streetAddress: i32 = 660;
2770pub const LN_postalCode: &[u8; 11] = b"postalCode\0";
2771pub const NID_postalCode: i32 = 661;
2772pub const SN_id_ppl: &[u8; 7] = b"id-ppl\0";
2773pub const NID_id_ppl: i32 = 662;
2774pub const SN_proxyCertInfo: &[u8; 14] = b"proxyCertInfo\0";
2775pub const LN_proxyCertInfo: &[u8; 30] = b"Proxy Certificate Information\0";
2776pub const NID_proxyCertInfo: i32 = 663;
2777pub const SN_id_ppl_anyLanguage: &[u8; 19] = b"id-ppl-anyLanguage\0";
2778pub const LN_id_ppl_anyLanguage: &[u8; 13] = b"Any language\0";
2779pub const NID_id_ppl_anyLanguage: i32 = 664;
2780pub const SN_id_ppl_inheritAll: &[u8; 18] = b"id-ppl-inheritAll\0";
2781pub const LN_id_ppl_inheritAll: &[u8; 12] = b"Inherit all\0";
2782pub const NID_id_ppl_inheritAll: i32 = 665;
2783pub const SN_name_constraints: &[u8; 16] = b"nameConstraints\0";
2784pub const LN_name_constraints: &[u8; 24] = b"X509v3 Name Constraints\0";
2785pub const NID_name_constraints: i32 = 666;
2786pub const SN_Independent: &[u8; 19] = b"id-ppl-independent\0";
2787pub const LN_Independent: &[u8; 12] = b"Independent\0";
2788pub const NID_Independent: i32 = 667;
2789pub const SN_sha256WithRSAEncryption: &[u8; 11] = b"RSA-SHA256\0";
2790pub const LN_sha256WithRSAEncryption: &[u8; 24] = b"sha256WithRSAEncryption\0";
2791pub const NID_sha256WithRSAEncryption: i32 = 668;
2792pub const SN_sha384WithRSAEncryption: &[u8; 11] = b"RSA-SHA384\0";
2793pub const LN_sha384WithRSAEncryption: &[u8; 24] = b"sha384WithRSAEncryption\0";
2794pub const NID_sha384WithRSAEncryption: i32 = 669;
2795pub const SN_sha512WithRSAEncryption: &[u8; 11] = b"RSA-SHA512\0";
2796pub const LN_sha512WithRSAEncryption: &[u8; 24] = b"sha512WithRSAEncryption\0";
2797pub const NID_sha512WithRSAEncryption: i32 = 670;
2798pub const SN_sha224WithRSAEncryption: &[u8; 11] = b"RSA-SHA224\0";
2799pub const LN_sha224WithRSAEncryption: &[u8; 24] = b"sha224WithRSAEncryption\0";
2800pub const NID_sha224WithRSAEncryption: i32 = 671;
2801pub const SN_sha256: &[u8; 7] = b"SHA256\0";
2802pub const LN_sha256: &[u8; 7] = b"sha256\0";
2803pub const NID_sha256: i32 = 672;
2804pub const SN_sha384: &[u8; 7] = b"SHA384\0";
2805pub const LN_sha384: &[u8; 7] = b"sha384\0";
2806pub const NID_sha384: i32 = 673;
2807pub const SN_sha512: &[u8; 7] = b"SHA512\0";
2808pub const LN_sha512: &[u8; 7] = b"sha512\0";
2809pub const NID_sha512: i32 = 674;
2810pub const SN_sha224: &[u8; 7] = b"SHA224\0";
2811pub const LN_sha224: &[u8; 7] = b"sha224\0";
2812pub const NID_sha224: i32 = 675;
2813pub const SN_identified_organization: &[u8; 24] = b"identified-organization\0";
2814pub const NID_identified_organization: i32 = 676;
2815pub const OBJ_ENC_identified_organization: i32 = 43;
2816pub const SN_certicom_arc: &[u8; 13] = b"certicom-arc\0";
2817pub const NID_certicom_arc: i32 = 677;
2818pub const SN_wap: &[u8; 4] = b"wap\0";
2819pub const NID_wap: i32 = 678;
2820pub const SN_wap_wsg: &[u8; 8] = b"wap-wsg\0";
2821pub const NID_wap_wsg: i32 = 679;
2822pub const SN_X9_62_id_characteristic_two_basis: &[u8; 28] = b"id-characteristic-two-basis\0";
2823pub const NID_X9_62_id_characteristic_two_basis: i32 = 680;
2824pub const SN_X9_62_onBasis: &[u8; 8] = b"onBasis\0";
2825pub const NID_X9_62_onBasis: i32 = 681;
2826pub const SN_X9_62_tpBasis: &[u8; 8] = b"tpBasis\0";
2827pub const NID_X9_62_tpBasis: i32 = 682;
2828pub const SN_X9_62_ppBasis: &[u8; 8] = b"ppBasis\0";
2829pub const NID_X9_62_ppBasis: i32 = 683;
2830pub const SN_X9_62_c2pnb163v1: &[u8; 11] = b"c2pnb163v1\0";
2831pub const NID_X9_62_c2pnb163v1: i32 = 684;
2832pub const SN_X9_62_c2pnb163v2: &[u8; 11] = b"c2pnb163v2\0";
2833pub const NID_X9_62_c2pnb163v2: i32 = 685;
2834pub const SN_X9_62_c2pnb163v3: &[u8; 11] = b"c2pnb163v3\0";
2835pub const NID_X9_62_c2pnb163v3: i32 = 686;
2836pub const SN_X9_62_c2pnb176v1: &[u8; 11] = b"c2pnb176v1\0";
2837pub const NID_X9_62_c2pnb176v1: i32 = 687;
2838pub const SN_X9_62_c2tnb191v1: &[u8; 11] = b"c2tnb191v1\0";
2839pub const NID_X9_62_c2tnb191v1: i32 = 688;
2840pub const SN_X9_62_c2tnb191v2: &[u8; 11] = b"c2tnb191v2\0";
2841pub const NID_X9_62_c2tnb191v2: i32 = 689;
2842pub const SN_X9_62_c2tnb191v3: &[u8; 11] = b"c2tnb191v3\0";
2843pub const NID_X9_62_c2tnb191v3: i32 = 690;
2844pub const SN_X9_62_c2onb191v4: &[u8; 11] = b"c2onb191v4\0";
2845pub const NID_X9_62_c2onb191v4: i32 = 691;
2846pub const SN_X9_62_c2onb191v5: &[u8; 11] = b"c2onb191v5\0";
2847pub const NID_X9_62_c2onb191v5: i32 = 692;
2848pub const SN_X9_62_c2pnb208w1: &[u8; 11] = b"c2pnb208w1\0";
2849pub const NID_X9_62_c2pnb208w1: i32 = 693;
2850pub const SN_X9_62_c2tnb239v1: &[u8; 11] = b"c2tnb239v1\0";
2851pub const NID_X9_62_c2tnb239v1: i32 = 694;
2852pub const SN_X9_62_c2tnb239v2: &[u8; 11] = b"c2tnb239v2\0";
2853pub const NID_X9_62_c2tnb239v2: i32 = 695;
2854pub const SN_X9_62_c2tnb239v3: &[u8; 11] = b"c2tnb239v3\0";
2855pub const NID_X9_62_c2tnb239v3: i32 = 696;
2856pub const SN_X9_62_c2onb239v4: &[u8; 11] = b"c2onb239v4\0";
2857pub const NID_X9_62_c2onb239v4: i32 = 697;
2858pub const SN_X9_62_c2onb239v5: &[u8; 11] = b"c2onb239v5\0";
2859pub const NID_X9_62_c2onb239v5: i32 = 698;
2860pub const SN_X9_62_c2pnb272w1: &[u8; 11] = b"c2pnb272w1\0";
2861pub const NID_X9_62_c2pnb272w1: i32 = 699;
2862pub const SN_X9_62_c2pnb304w1: &[u8; 11] = b"c2pnb304w1\0";
2863pub const NID_X9_62_c2pnb304w1: i32 = 700;
2864pub const SN_X9_62_c2tnb359v1: &[u8; 11] = b"c2tnb359v1\0";
2865pub const NID_X9_62_c2tnb359v1: i32 = 701;
2866pub const SN_X9_62_c2pnb368w1: &[u8; 11] = b"c2pnb368w1\0";
2867pub const NID_X9_62_c2pnb368w1: i32 = 702;
2868pub const SN_X9_62_c2tnb431r1: &[u8; 11] = b"c2tnb431r1\0";
2869pub const NID_X9_62_c2tnb431r1: i32 = 703;
2870pub const SN_secp112r1: &[u8; 10] = b"secp112r1\0";
2871pub const NID_secp112r1: i32 = 704;
2872pub const SN_secp112r2: &[u8; 10] = b"secp112r2\0";
2873pub const NID_secp112r2: i32 = 705;
2874pub const SN_secp128r1: &[u8; 10] = b"secp128r1\0";
2875pub const NID_secp128r1: i32 = 706;
2876pub const SN_secp128r2: &[u8; 10] = b"secp128r2\0";
2877pub const NID_secp128r2: i32 = 707;
2878pub const SN_secp160k1: &[u8; 10] = b"secp160k1\0";
2879pub const NID_secp160k1: i32 = 708;
2880pub const SN_secp160r1: &[u8; 10] = b"secp160r1\0";
2881pub const NID_secp160r1: i32 = 709;
2882pub const SN_secp160r2: &[u8; 10] = b"secp160r2\0";
2883pub const NID_secp160r2: i32 = 710;
2884pub const SN_secp192k1: &[u8; 10] = b"secp192k1\0";
2885pub const NID_secp192k1: i32 = 711;
2886pub const SN_secp224k1: &[u8; 10] = b"secp224k1\0";
2887pub const NID_secp224k1: i32 = 712;
2888pub const SN_secp224r1: &[u8; 10] = b"secp224r1\0";
2889pub const NID_secp224r1: i32 = 713;
2890pub const SN_secp256k1: &[u8; 10] = b"secp256k1\0";
2891pub const NID_secp256k1: i32 = 714;
2892pub const SN_secp384r1: &[u8; 10] = b"secp384r1\0";
2893pub const NID_secp384r1: i32 = 715;
2894pub const SN_secp521r1: &[u8; 10] = b"secp521r1\0";
2895pub const NID_secp521r1: i32 = 716;
2896pub const SN_sect113r1: &[u8; 10] = b"sect113r1\0";
2897pub const NID_sect113r1: i32 = 717;
2898pub const SN_sect113r2: &[u8; 10] = b"sect113r2\0";
2899pub const NID_sect113r2: i32 = 718;
2900pub const SN_sect131r1: &[u8; 10] = b"sect131r1\0";
2901pub const NID_sect131r1: i32 = 719;
2902pub const SN_sect131r2: &[u8; 10] = b"sect131r2\0";
2903pub const NID_sect131r2: i32 = 720;
2904pub const SN_sect163k1: &[u8; 10] = b"sect163k1\0";
2905pub const NID_sect163k1: i32 = 721;
2906pub const SN_sect163r1: &[u8; 10] = b"sect163r1\0";
2907pub const NID_sect163r1: i32 = 722;
2908pub const SN_sect163r2: &[u8; 10] = b"sect163r2\0";
2909pub const NID_sect163r2: i32 = 723;
2910pub const SN_sect193r1: &[u8; 10] = b"sect193r1\0";
2911pub const NID_sect193r1: i32 = 724;
2912pub const SN_sect193r2: &[u8; 10] = b"sect193r2\0";
2913pub const NID_sect193r2: i32 = 725;
2914pub const SN_sect233k1: &[u8; 10] = b"sect233k1\0";
2915pub const NID_sect233k1: i32 = 726;
2916pub const SN_sect233r1: &[u8; 10] = b"sect233r1\0";
2917pub const NID_sect233r1: i32 = 727;
2918pub const SN_sect239k1: &[u8; 10] = b"sect239k1\0";
2919pub const NID_sect239k1: i32 = 728;
2920pub const SN_sect283k1: &[u8; 10] = b"sect283k1\0";
2921pub const NID_sect283k1: i32 = 729;
2922pub const SN_sect283r1: &[u8; 10] = b"sect283r1\0";
2923pub const NID_sect283r1: i32 = 730;
2924pub const SN_sect409k1: &[u8; 10] = b"sect409k1\0";
2925pub const NID_sect409k1: i32 = 731;
2926pub const SN_sect409r1: &[u8; 10] = b"sect409r1\0";
2927pub const NID_sect409r1: i32 = 732;
2928pub const SN_sect571k1: &[u8; 10] = b"sect571k1\0";
2929pub const NID_sect571k1: i32 = 733;
2930pub const SN_sect571r1: &[u8; 10] = b"sect571r1\0";
2931pub const NID_sect571r1: i32 = 734;
2932pub const SN_wap_wsg_idm_ecid_wtls1: &[u8; 23] = b"wap-wsg-idm-ecid-wtls1\0";
2933pub const NID_wap_wsg_idm_ecid_wtls1: i32 = 735;
2934pub const SN_wap_wsg_idm_ecid_wtls3: &[u8; 23] = b"wap-wsg-idm-ecid-wtls3\0";
2935pub const NID_wap_wsg_idm_ecid_wtls3: i32 = 736;
2936pub const SN_wap_wsg_idm_ecid_wtls4: &[u8; 23] = b"wap-wsg-idm-ecid-wtls4\0";
2937pub const NID_wap_wsg_idm_ecid_wtls4: i32 = 737;
2938pub const SN_wap_wsg_idm_ecid_wtls5: &[u8; 23] = b"wap-wsg-idm-ecid-wtls5\0";
2939pub const NID_wap_wsg_idm_ecid_wtls5: i32 = 738;
2940pub const SN_wap_wsg_idm_ecid_wtls6: &[u8; 23] = b"wap-wsg-idm-ecid-wtls6\0";
2941pub const NID_wap_wsg_idm_ecid_wtls6: i32 = 739;
2942pub const SN_wap_wsg_idm_ecid_wtls7: &[u8; 23] = b"wap-wsg-idm-ecid-wtls7\0";
2943pub const NID_wap_wsg_idm_ecid_wtls7: i32 = 740;
2944pub const SN_wap_wsg_idm_ecid_wtls8: &[u8; 23] = b"wap-wsg-idm-ecid-wtls8\0";
2945pub const NID_wap_wsg_idm_ecid_wtls8: i32 = 741;
2946pub const SN_wap_wsg_idm_ecid_wtls9: &[u8; 23] = b"wap-wsg-idm-ecid-wtls9\0";
2947pub const NID_wap_wsg_idm_ecid_wtls9: i32 = 742;
2948pub const SN_wap_wsg_idm_ecid_wtls10: &[u8; 24] = b"wap-wsg-idm-ecid-wtls10\0";
2949pub const NID_wap_wsg_idm_ecid_wtls10: i32 = 743;
2950pub const SN_wap_wsg_idm_ecid_wtls11: &[u8; 24] = b"wap-wsg-idm-ecid-wtls11\0";
2951pub const NID_wap_wsg_idm_ecid_wtls11: i32 = 744;
2952pub const SN_wap_wsg_idm_ecid_wtls12: &[u8; 24] = b"wap-wsg-idm-ecid-wtls12\0";
2953pub const NID_wap_wsg_idm_ecid_wtls12: i32 = 745;
2954pub const SN_any_policy: &[u8; 10] = b"anyPolicy\0";
2955pub const LN_any_policy: &[u8; 18] = b"X509v3 Any Policy\0";
2956pub const NID_any_policy: i32 = 746;
2957pub const SN_policy_mappings: &[u8; 15] = b"policyMappings\0";
2958pub const LN_policy_mappings: &[u8; 23] = b"X509v3 Policy Mappings\0";
2959pub const NID_policy_mappings: i32 = 747;
2960pub const SN_inhibit_any_policy: &[u8; 17] = b"inhibitAnyPolicy\0";
2961pub const LN_inhibit_any_policy: &[u8; 26] = b"X509v3 Inhibit Any Policy\0";
2962pub const NID_inhibit_any_policy: i32 = 748;
2963pub const SN_ipsec3: &[u8; 14] = b"Oakley-EC2N-3\0";
2964pub const LN_ipsec3: &[u8; 7] = b"ipsec3\0";
2965pub const NID_ipsec3: i32 = 749;
2966pub const SN_ipsec4: &[u8; 14] = b"Oakley-EC2N-4\0";
2967pub const LN_ipsec4: &[u8; 7] = b"ipsec4\0";
2968pub const NID_ipsec4: i32 = 750;
2969pub const SN_camellia_128_cbc: &[u8; 17] = b"CAMELLIA-128-CBC\0";
2970pub const LN_camellia_128_cbc: &[u8; 17] = b"camellia-128-cbc\0";
2971pub const NID_camellia_128_cbc: i32 = 751;
2972pub const SN_camellia_192_cbc: &[u8; 17] = b"CAMELLIA-192-CBC\0";
2973pub const LN_camellia_192_cbc: &[u8; 17] = b"camellia-192-cbc\0";
2974pub const NID_camellia_192_cbc: i32 = 752;
2975pub const SN_camellia_256_cbc: &[u8; 17] = b"CAMELLIA-256-CBC\0";
2976pub const LN_camellia_256_cbc: &[u8; 17] = b"camellia-256-cbc\0";
2977pub const NID_camellia_256_cbc: i32 = 753;
2978pub const SN_camellia_128_ecb: &[u8; 17] = b"CAMELLIA-128-ECB\0";
2979pub const LN_camellia_128_ecb: &[u8; 17] = b"camellia-128-ecb\0";
2980pub const NID_camellia_128_ecb: i32 = 754;
2981pub const SN_camellia_192_ecb: &[u8; 17] = b"CAMELLIA-192-ECB\0";
2982pub const LN_camellia_192_ecb: &[u8; 17] = b"camellia-192-ecb\0";
2983pub const NID_camellia_192_ecb: i32 = 755;
2984pub const SN_camellia_256_ecb: &[u8; 17] = b"CAMELLIA-256-ECB\0";
2985pub const LN_camellia_256_ecb: &[u8; 17] = b"camellia-256-ecb\0";
2986pub const NID_camellia_256_ecb: i32 = 756;
2987pub const SN_camellia_128_cfb128: &[u8; 17] = b"CAMELLIA-128-CFB\0";
2988pub const LN_camellia_128_cfb128: &[u8; 17] = b"camellia-128-cfb\0";
2989pub const NID_camellia_128_cfb128: i32 = 757;
2990pub const SN_camellia_192_cfb128: &[u8; 17] = b"CAMELLIA-192-CFB\0";
2991pub const LN_camellia_192_cfb128: &[u8; 17] = b"camellia-192-cfb\0";
2992pub const NID_camellia_192_cfb128: i32 = 758;
2993pub const SN_camellia_256_cfb128: &[u8; 17] = b"CAMELLIA-256-CFB\0";
2994pub const LN_camellia_256_cfb128: &[u8; 17] = b"camellia-256-cfb\0";
2995pub const NID_camellia_256_cfb128: i32 = 759;
2996pub const SN_camellia_128_cfb1: &[u8; 18] = b"CAMELLIA-128-CFB1\0";
2997pub const LN_camellia_128_cfb1: &[u8; 18] = b"camellia-128-cfb1\0";
2998pub const NID_camellia_128_cfb1: i32 = 760;
2999pub const SN_camellia_192_cfb1: &[u8; 18] = b"CAMELLIA-192-CFB1\0";
3000pub const LN_camellia_192_cfb1: &[u8; 18] = b"camellia-192-cfb1\0";
3001pub const NID_camellia_192_cfb1: i32 = 761;
3002pub const SN_camellia_256_cfb1: &[u8; 18] = b"CAMELLIA-256-CFB1\0";
3003pub const LN_camellia_256_cfb1: &[u8; 18] = b"camellia-256-cfb1\0";
3004pub const NID_camellia_256_cfb1: i32 = 762;
3005pub const SN_camellia_128_cfb8: &[u8; 18] = b"CAMELLIA-128-CFB8\0";
3006pub const LN_camellia_128_cfb8: &[u8; 18] = b"camellia-128-cfb8\0";
3007pub const NID_camellia_128_cfb8: i32 = 763;
3008pub const SN_camellia_192_cfb8: &[u8; 18] = b"CAMELLIA-192-CFB8\0";
3009pub const LN_camellia_192_cfb8: &[u8; 18] = b"camellia-192-cfb8\0";
3010pub const NID_camellia_192_cfb8: i32 = 764;
3011pub const SN_camellia_256_cfb8: &[u8; 18] = b"CAMELLIA-256-CFB8\0";
3012pub const LN_camellia_256_cfb8: &[u8; 18] = b"camellia-256-cfb8\0";
3013pub const NID_camellia_256_cfb8: i32 = 765;
3014pub const SN_camellia_128_ofb128: &[u8; 17] = b"CAMELLIA-128-OFB\0";
3015pub const LN_camellia_128_ofb128: &[u8; 17] = b"camellia-128-ofb\0";
3016pub const NID_camellia_128_ofb128: i32 = 766;
3017pub const SN_camellia_192_ofb128: &[u8; 17] = b"CAMELLIA-192-OFB\0";
3018pub const LN_camellia_192_ofb128: &[u8; 17] = b"camellia-192-ofb\0";
3019pub const NID_camellia_192_ofb128: i32 = 767;
3020pub const SN_camellia_256_ofb128: &[u8; 17] = b"CAMELLIA-256-OFB\0";
3021pub const LN_camellia_256_ofb128: &[u8; 17] = b"camellia-256-ofb\0";
3022pub const NID_camellia_256_ofb128: i32 = 768;
3023pub const SN_subject_directory_attributes: &[u8; 27] = b"subjectDirectoryAttributes\0";
3024pub const LN_subject_directory_attributes: &[u8; 36] = b"X509v3 Subject Directory Attributes\0";
3025pub const NID_subject_directory_attributes: i32 = 769;
3026pub const SN_issuing_distribution_point: &[u8; 25] = b"issuingDistributionPoint\0";
3027pub const LN_issuing_distribution_point: &[u8; 34] = b"X509v3 Issuing Distribution Point\0";
3028pub const NID_issuing_distribution_point: i32 = 770;
3029pub const SN_certificate_issuer: &[u8; 18] = b"certificateIssuer\0";
3030pub const LN_certificate_issuer: &[u8; 26] = b"X509v3 Certificate Issuer\0";
3031pub const NID_certificate_issuer: i32 = 771;
3032pub const SN_kisa: &[u8; 5] = b"KISA\0";
3033pub const LN_kisa: &[u8; 5] = b"kisa\0";
3034pub const NID_kisa: i32 = 773;
3035pub const SN_seed_ecb: &[u8; 9] = b"SEED-ECB\0";
3036pub const LN_seed_ecb: &[u8; 9] = b"seed-ecb\0";
3037pub const NID_seed_ecb: i32 = 776;
3038pub const SN_seed_cbc: &[u8; 9] = b"SEED-CBC\0";
3039pub const LN_seed_cbc: &[u8; 9] = b"seed-cbc\0";
3040pub const NID_seed_cbc: i32 = 777;
3041pub const SN_seed_ofb128: &[u8; 9] = b"SEED-OFB\0";
3042pub const LN_seed_ofb128: &[u8; 9] = b"seed-ofb\0";
3043pub const NID_seed_ofb128: i32 = 778;
3044pub const SN_seed_cfb128: &[u8; 9] = b"SEED-CFB\0";
3045pub const LN_seed_cfb128: &[u8; 9] = b"seed-cfb\0";
3046pub const NID_seed_cfb128: i32 = 779;
3047pub const SN_hmac_md5: &[u8; 9] = b"HMAC-MD5\0";
3048pub const LN_hmac_md5: &[u8; 9] = b"hmac-md5\0";
3049pub const NID_hmac_md5: i32 = 780;
3050pub const SN_hmac_sha1: &[u8; 10] = b"HMAC-SHA1\0";
3051pub const LN_hmac_sha1: &[u8; 10] = b"hmac-sha1\0";
3052pub const NID_hmac_sha1: i32 = 781;
3053pub const SN_id_PasswordBasedMAC: &[u8; 20] = b"id-PasswordBasedMAC\0";
3054pub const LN_id_PasswordBasedMAC: &[u8; 19] = b"password based MAC\0";
3055pub const NID_id_PasswordBasedMAC: i32 = 782;
3056pub const SN_id_DHBasedMac: &[u8; 14] = b"id-DHBasedMac\0";
3057pub const LN_id_DHBasedMac: &[u8; 25] = b"Diffie-Hellman based MAC\0";
3058pub const NID_id_DHBasedMac: i32 = 783;
3059pub const SN_id_it_suppLangTags: &[u8; 19] = b"id-it-suppLangTags\0";
3060pub const NID_id_it_suppLangTags: i32 = 784;
3061pub const SN_caRepository: &[u8; 13] = b"caRepository\0";
3062pub const LN_caRepository: &[u8; 14] = b"CA Repository\0";
3063pub const NID_caRepository: i32 = 785;
3064pub const SN_id_smime_ct_compressedData: &[u8; 27] = b"id-smime-ct-compressedData\0";
3065pub const NID_id_smime_ct_compressedData: i32 = 786;
3066pub const SN_id_ct_asciiTextWithCRLF: &[u8; 24] = b"id-ct-asciiTextWithCRLF\0";
3067pub const NID_id_ct_asciiTextWithCRLF: i32 = 787;
3068pub const SN_id_aes128_wrap: &[u8; 15] = b"id-aes128-wrap\0";
3069pub const NID_id_aes128_wrap: i32 = 788;
3070pub const SN_id_aes192_wrap: &[u8; 15] = b"id-aes192-wrap\0";
3071pub const NID_id_aes192_wrap: i32 = 789;
3072pub const SN_id_aes256_wrap: &[u8; 15] = b"id-aes256-wrap\0";
3073pub const NID_id_aes256_wrap: i32 = 790;
3074pub const SN_ecdsa_with_Recommended: &[u8; 23] = b"ecdsa-with-Recommended\0";
3075pub const NID_ecdsa_with_Recommended: i32 = 791;
3076pub const SN_ecdsa_with_Specified: &[u8; 21] = b"ecdsa-with-Specified\0";
3077pub const NID_ecdsa_with_Specified: i32 = 792;
3078pub const SN_ecdsa_with_SHA224: &[u8; 18] = b"ecdsa-with-SHA224\0";
3079pub const NID_ecdsa_with_SHA224: i32 = 793;
3080pub const SN_ecdsa_with_SHA256: &[u8; 18] = b"ecdsa-with-SHA256\0";
3081pub const NID_ecdsa_with_SHA256: i32 = 794;
3082pub const SN_ecdsa_with_SHA384: &[u8; 18] = b"ecdsa-with-SHA384\0";
3083pub const NID_ecdsa_with_SHA384: i32 = 795;
3084pub const SN_ecdsa_with_SHA512: &[u8; 18] = b"ecdsa-with-SHA512\0";
3085pub const NID_ecdsa_with_SHA512: i32 = 796;
3086pub const LN_hmacWithMD5: &[u8; 12] = b"hmacWithMD5\0";
3087pub const NID_hmacWithMD5: i32 = 797;
3088pub const LN_hmacWithSHA224: &[u8; 15] = b"hmacWithSHA224\0";
3089pub const NID_hmacWithSHA224: i32 = 798;
3090pub const LN_hmacWithSHA256: &[u8; 15] = b"hmacWithSHA256\0";
3091pub const NID_hmacWithSHA256: i32 = 799;
3092pub const LN_hmacWithSHA384: &[u8; 15] = b"hmacWithSHA384\0";
3093pub const NID_hmacWithSHA384: i32 = 800;
3094pub const LN_hmacWithSHA512: &[u8; 15] = b"hmacWithSHA512\0";
3095pub const NID_hmacWithSHA512: i32 = 801;
3096pub const SN_dsa_with_SHA224: &[u8; 16] = b"dsa_with_SHA224\0";
3097pub const NID_dsa_with_SHA224: i32 = 802;
3098pub const SN_dsa_with_SHA256: &[u8; 16] = b"dsa_with_SHA256\0";
3099pub const NID_dsa_with_SHA256: i32 = 803;
3100pub const SN_whirlpool: &[u8; 10] = b"whirlpool\0";
3101pub const NID_whirlpool: i32 = 804;
3102pub const SN_cryptopro: &[u8; 10] = b"cryptopro\0";
3103pub const NID_cryptopro: i32 = 805;
3104pub const SN_cryptocom: &[u8; 10] = b"cryptocom\0";
3105pub const NID_cryptocom: i32 = 806;
3106pub const SN_id_GostR3411_94_with_GostR3410_2001: &[u8; 36] =
3107    b"id-GostR3411-94-with-GostR3410-2001\0";
3108pub const LN_id_GostR3411_94_with_GostR3410_2001: &[u8; 39] =
3109    b"GOST R 34.11-94 with GOST R 34.10-2001\0";
3110pub const NID_id_GostR3411_94_with_GostR3410_2001: i32 = 807;
3111pub const SN_id_GostR3411_94_with_GostR3410_94: &[u8; 34] = b"id-GostR3411-94-with-GostR3410-94\0";
3112pub const LN_id_GostR3411_94_with_GostR3410_94: &[u8; 37] =
3113    b"GOST R 34.11-94 with GOST R 34.10-94\0";
3114pub const NID_id_GostR3411_94_with_GostR3410_94: i32 = 808;
3115pub const SN_id_GostR3411_94: &[u8; 10] = b"md_gost94\0";
3116pub const LN_id_GostR3411_94: &[u8; 16] = b"GOST R 34.11-94\0";
3117pub const NID_id_GostR3411_94: i32 = 809;
3118pub const SN_id_HMACGostR3411_94: &[u8; 20] = b"id-HMACGostR3411-94\0";
3119pub const LN_id_HMACGostR3411_94: &[u8; 19] = b"HMAC GOST 34.11-94\0";
3120pub const NID_id_HMACGostR3411_94: i32 = 810;
3121pub const SN_id_GostR3410_2001: &[u8; 9] = b"gost2001\0";
3122pub const LN_id_GostR3410_2001: &[u8; 18] = b"GOST R 34.10-2001\0";
3123pub const NID_id_GostR3410_2001: i32 = 811;
3124pub const SN_id_GostR3410_94: &[u8; 7] = b"gost94\0";
3125pub const LN_id_GostR3410_94: &[u8; 16] = b"GOST R 34.10-94\0";
3126pub const NID_id_GostR3410_94: i32 = 812;
3127pub const SN_id_Gost28147_89: &[u8; 7] = b"gost89\0";
3128pub const LN_id_Gost28147_89: &[u8; 14] = b"GOST 28147-89\0";
3129pub const NID_id_Gost28147_89: i32 = 813;
3130pub const SN_gost89_cnt: &[u8; 11] = b"gost89-cnt\0";
3131pub const NID_gost89_cnt: i32 = 814;
3132pub const SN_id_Gost28147_89_MAC: &[u8; 9] = b"gost-mac\0";
3133pub const LN_id_Gost28147_89_MAC: &[u8; 18] = b"GOST 28147-89 MAC\0";
3134pub const NID_id_Gost28147_89_MAC: i32 = 815;
3135pub const SN_id_GostR3411_94_prf: &[u8; 17] = b"prf-gostr3411-94\0";
3136pub const LN_id_GostR3411_94_prf: &[u8; 20] = b"GOST R 34.11-94 PRF\0";
3137pub const NID_id_GostR3411_94_prf: i32 = 816;
3138pub const SN_id_GostR3410_2001DH: &[u8; 20] = b"id-GostR3410-2001DH\0";
3139pub const LN_id_GostR3410_2001DH: &[u8; 21] = b"GOST R 34.10-2001 DH\0";
3140pub const NID_id_GostR3410_2001DH: i32 = 817;
3141pub const SN_id_GostR3410_94DH: &[u8; 18] = b"id-GostR3410-94DH\0";
3142pub const LN_id_GostR3410_94DH: &[u8; 19] = b"GOST R 34.10-94 DH\0";
3143pub const NID_id_GostR3410_94DH: i32 = 818;
3144pub const SN_id_Gost28147_89_CryptoPro_KeyMeshing: &[u8; 37] =
3145    b"id-Gost28147-89-CryptoPro-KeyMeshing\0";
3146pub const NID_id_Gost28147_89_CryptoPro_KeyMeshing: i32 = 819;
3147pub const SN_id_Gost28147_89_None_KeyMeshing: &[u8; 32] = b"id-Gost28147-89-None-KeyMeshing\0";
3148pub const NID_id_Gost28147_89_None_KeyMeshing: i32 = 820;
3149pub const SN_id_GostR3411_94_TestParamSet: &[u8; 29] = b"id-GostR3411-94-TestParamSet\0";
3150pub const NID_id_GostR3411_94_TestParamSet: i32 = 821;
3151pub const SN_id_GostR3411_94_CryptoProParamSet: &[u8; 34] = b"id-GostR3411-94-CryptoProParamSet\0";
3152pub const NID_id_GostR3411_94_CryptoProParamSet: i32 = 822;
3153pub const SN_id_Gost28147_89_TestParamSet: &[u8; 29] = b"id-Gost28147-89-TestParamSet\0";
3154pub const NID_id_Gost28147_89_TestParamSet: i32 = 823;
3155pub const SN_id_Gost28147_89_CryptoPro_A_ParamSet: &[u8; 37] =
3156    b"id-Gost28147-89-CryptoPro-A-ParamSet\0";
3157pub const NID_id_Gost28147_89_CryptoPro_A_ParamSet: i32 = 824;
3158pub const SN_id_Gost28147_89_CryptoPro_B_ParamSet: &[u8; 37] =
3159    b"id-Gost28147-89-CryptoPro-B-ParamSet\0";
3160pub const NID_id_Gost28147_89_CryptoPro_B_ParamSet: i32 = 825;
3161pub const SN_id_Gost28147_89_CryptoPro_C_ParamSet: &[u8; 37] =
3162    b"id-Gost28147-89-CryptoPro-C-ParamSet\0";
3163pub const NID_id_Gost28147_89_CryptoPro_C_ParamSet: i32 = 826;
3164pub const SN_id_Gost28147_89_CryptoPro_D_ParamSet: &[u8; 37] =
3165    b"id-Gost28147-89-CryptoPro-D-ParamSet\0";
3166pub const NID_id_Gost28147_89_CryptoPro_D_ParamSet: i32 = 827;
3167pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: &[u8; 45] =
3168    b"id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet\0";
3169pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet: i32 = 828;
3170pub const SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: &[u8; 45] =
3171    b"id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet\0";
3172pub const NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet: i32 = 829;
3173pub const SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: &[u8; 41] =
3174    b"id-Gost28147-89-CryptoPro-RIC-1-ParamSet\0";
3175pub const NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet: i32 = 830;
3176pub const SN_id_GostR3410_94_TestParamSet: &[u8; 29] = b"id-GostR3410-94-TestParamSet\0";
3177pub const NID_id_GostR3410_94_TestParamSet: i32 = 831;
3178pub const SN_id_GostR3410_94_CryptoPro_A_ParamSet: &[u8; 37] =
3179    b"id-GostR3410-94-CryptoPro-A-ParamSet\0";
3180pub const NID_id_GostR3410_94_CryptoPro_A_ParamSet: i32 = 832;
3181pub const SN_id_GostR3410_94_CryptoPro_B_ParamSet: &[u8; 37] =
3182    b"id-GostR3410-94-CryptoPro-B-ParamSet\0";
3183pub const NID_id_GostR3410_94_CryptoPro_B_ParamSet: i32 = 833;
3184pub const SN_id_GostR3410_94_CryptoPro_C_ParamSet: &[u8; 37] =
3185    b"id-GostR3410-94-CryptoPro-C-ParamSet\0";
3186pub const NID_id_GostR3410_94_CryptoPro_C_ParamSet: i32 = 834;
3187pub const SN_id_GostR3410_94_CryptoPro_D_ParamSet: &[u8; 37] =
3188    b"id-GostR3410-94-CryptoPro-D-ParamSet\0";
3189pub const NID_id_GostR3410_94_CryptoPro_D_ParamSet: i32 = 835;
3190pub const SN_id_GostR3410_94_CryptoPro_XchA_ParamSet: &[u8; 40] =
3191    b"id-GostR3410-94-CryptoPro-XchA-ParamSet\0";
3192pub const NID_id_GostR3410_94_CryptoPro_XchA_ParamSet: i32 = 836;
3193pub const SN_id_GostR3410_94_CryptoPro_XchB_ParamSet: &[u8; 40] =
3194    b"id-GostR3410-94-CryptoPro-XchB-ParamSet\0";
3195pub const NID_id_GostR3410_94_CryptoPro_XchB_ParamSet: i32 = 837;
3196pub const SN_id_GostR3410_94_CryptoPro_XchC_ParamSet: &[u8; 40] =
3197    b"id-GostR3410-94-CryptoPro-XchC-ParamSet\0";
3198pub const NID_id_GostR3410_94_CryptoPro_XchC_ParamSet: i32 = 838;
3199pub const SN_id_GostR3410_2001_TestParamSet: &[u8; 31] = b"id-GostR3410-2001-TestParamSet\0";
3200pub const NID_id_GostR3410_2001_TestParamSet: i32 = 839;
3201pub const SN_id_GostR3410_2001_CryptoPro_A_ParamSet: &[u8; 39] =
3202    b"id-GostR3410-2001-CryptoPro-A-ParamSet\0";
3203pub const NID_id_GostR3410_2001_CryptoPro_A_ParamSet: i32 = 840;
3204pub const SN_id_GostR3410_2001_CryptoPro_B_ParamSet: &[u8; 39] =
3205    b"id-GostR3410-2001-CryptoPro-B-ParamSet\0";
3206pub const NID_id_GostR3410_2001_CryptoPro_B_ParamSet: i32 = 841;
3207pub const SN_id_GostR3410_2001_CryptoPro_C_ParamSet: &[u8; 39] =
3208    b"id-GostR3410-2001-CryptoPro-C-ParamSet\0";
3209pub const NID_id_GostR3410_2001_CryptoPro_C_ParamSet: i32 = 842;
3210pub const SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet: &[u8; 42] =
3211    b"id-GostR3410-2001-CryptoPro-XchA-ParamSet\0";
3212pub const NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: i32 = 843;
3213pub const SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet: &[u8; 42] =
3214    b"id-GostR3410-2001-CryptoPro-XchB-ParamSet\0";
3215pub const NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: i32 = 844;
3216pub const SN_id_GostR3410_94_a: &[u8; 18] = b"id-GostR3410-94-a\0";
3217pub const NID_id_GostR3410_94_a: i32 = 845;
3218pub const SN_id_GostR3410_94_aBis: &[u8; 21] = b"id-GostR3410-94-aBis\0";
3219pub const NID_id_GostR3410_94_aBis: i32 = 846;
3220pub const SN_id_GostR3410_94_b: &[u8; 18] = b"id-GostR3410-94-b\0";
3221pub const NID_id_GostR3410_94_b: i32 = 847;
3222pub const SN_id_GostR3410_94_bBis: &[u8; 21] = b"id-GostR3410-94-bBis\0";
3223pub const NID_id_GostR3410_94_bBis: i32 = 848;
3224pub const SN_id_Gost28147_89_cc: &[u8; 19] = b"id-Gost28147-89-cc\0";
3225pub const LN_id_Gost28147_89_cc: &[u8; 33] = b"GOST 28147-89 Cryptocom ParamSet\0";
3226pub const NID_id_Gost28147_89_cc: i32 = 849;
3227pub const SN_id_GostR3410_94_cc: &[u8; 9] = b"gost94cc\0";
3228pub const LN_id_GostR3410_94_cc: &[u8; 24] = b"GOST 34.10-94 Cryptocom\0";
3229pub const NID_id_GostR3410_94_cc: i32 = 850;
3230pub const SN_id_GostR3410_2001_cc: &[u8; 11] = b"gost2001cc\0";
3231pub const LN_id_GostR3410_2001_cc: &[u8; 26] = b"GOST 34.10-2001 Cryptocom\0";
3232pub const NID_id_GostR3410_2001_cc: i32 = 851;
3233pub const SN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 37] =
3234    b"id-GostR3411-94-with-GostR3410-94-cc\0";
3235pub const LN_id_GostR3411_94_with_GostR3410_94_cc: &[u8; 47] =
3236    b"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom\0";
3237pub const NID_id_GostR3411_94_with_GostR3410_94_cc: i32 = 852;
3238pub const SN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 39] =
3239    b"id-GostR3411-94-with-GostR3410-2001-cc\0";
3240pub const LN_id_GostR3411_94_with_GostR3410_2001_cc: &[u8; 49] =
3241    b"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom\0";
3242pub const NID_id_GostR3411_94_with_GostR3410_2001_cc: i32 = 853;
3243pub const SN_id_GostR3410_2001_ParamSet_cc: &[u8; 30] = b"id-GostR3410-2001-ParamSet-cc\0";
3244pub const LN_id_GostR3410_2001_ParamSet_cc: &[u8; 41] =
3245    b"GOST R 3410-2001 Parameter Set Cryptocom\0";
3246pub const NID_id_GostR3410_2001_ParamSet_cc: i32 = 854;
3247pub const SN_hmac: &[u8; 5] = b"HMAC\0";
3248pub const LN_hmac: &[u8; 5] = b"hmac\0";
3249pub const NID_hmac: i32 = 855;
3250pub const SN_LocalKeySet: &[u8; 12] = b"LocalKeySet\0";
3251pub const LN_LocalKeySet: &[u8; 24] = b"Microsoft Local Key set\0";
3252pub const NID_LocalKeySet: i32 = 856;
3253pub const SN_freshest_crl: &[u8; 12] = b"freshestCRL\0";
3254pub const LN_freshest_crl: &[u8; 20] = b"X509v3 Freshest CRL\0";
3255pub const NID_freshest_crl: i32 = 857;
3256pub const SN_id_on_permanentIdentifier: &[u8; 26] = b"id-on-permanentIdentifier\0";
3257pub const LN_id_on_permanentIdentifier: &[u8; 21] = b"Permanent Identifier\0";
3258pub const NID_id_on_permanentIdentifier: i32 = 858;
3259pub const LN_searchGuide: &[u8; 12] = b"searchGuide\0";
3260pub const NID_searchGuide: i32 = 859;
3261pub const LN_businessCategory: &[u8; 17] = b"businessCategory\0";
3262pub const NID_businessCategory: i32 = 860;
3263pub const LN_postalAddress: &[u8; 14] = b"postalAddress\0";
3264pub const NID_postalAddress: i32 = 861;
3265pub const LN_postOfficeBox: &[u8; 14] = b"postOfficeBox\0";
3266pub const NID_postOfficeBox: i32 = 862;
3267pub const LN_physicalDeliveryOfficeName: &[u8; 27] = b"physicalDeliveryOfficeName\0";
3268pub const NID_physicalDeliveryOfficeName: i32 = 863;
3269pub const LN_telephoneNumber: &[u8; 16] = b"telephoneNumber\0";
3270pub const NID_telephoneNumber: i32 = 864;
3271pub const LN_telexNumber: &[u8; 12] = b"telexNumber\0";
3272pub const NID_telexNumber: i32 = 865;
3273pub const LN_teletexTerminalIdentifier: &[u8; 26] = b"teletexTerminalIdentifier\0";
3274pub const NID_teletexTerminalIdentifier: i32 = 866;
3275pub const LN_facsimileTelephoneNumber: &[u8; 25] = b"facsimileTelephoneNumber\0";
3276pub const NID_facsimileTelephoneNumber: i32 = 867;
3277pub const LN_x121Address: &[u8; 12] = b"x121Address\0";
3278pub const NID_x121Address: i32 = 868;
3279pub const LN_internationaliSDNNumber: &[u8; 24] = b"internationaliSDNNumber\0";
3280pub const NID_internationaliSDNNumber: i32 = 869;
3281pub const LN_registeredAddress: &[u8; 18] = b"registeredAddress\0";
3282pub const NID_registeredAddress: i32 = 870;
3283pub const LN_destinationIndicator: &[u8; 21] = b"destinationIndicator\0";
3284pub const NID_destinationIndicator: i32 = 871;
3285pub const LN_preferredDeliveryMethod: &[u8; 24] = b"preferredDeliveryMethod\0";
3286pub const NID_preferredDeliveryMethod: i32 = 872;
3287pub const LN_presentationAddress: &[u8; 20] = b"presentationAddress\0";
3288pub const NID_presentationAddress: i32 = 873;
3289pub const LN_supportedApplicationContext: &[u8; 28] = b"supportedApplicationContext\0";
3290pub const NID_supportedApplicationContext: i32 = 874;
3291pub const SN_member: &[u8; 7] = b"member\0";
3292pub const NID_member: i32 = 875;
3293pub const SN_owner: &[u8; 6] = b"owner\0";
3294pub const NID_owner: i32 = 876;
3295pub const LN_roleOccupant: &[u8; 13] = b"roleOccupant\0";
3296pub const NID_roleOccupant: i32 = 877;
3297pub const SN_seeAlso: &[u8; 8] = b"seeAlso\0";
3298pub const NID_seeAlso: i32 = 878;
3299pub const LN_userPassword: &[u8; 13] = b"userPassword\0";
3300pub const NID_userPassword: i32 = 879;
3301pub const LN_userCertificate: &[u8; 16] = b"userCertificate\0";
3302pub const NID_userCertificate: i32 = 880;
3303pub const LN_cACertificate: &[u8; 14] = b"cACertificate\0";
3304pub const NID_cACertificate: i32 = 881;
3305pub const LN_authorityRevocationList: &[u8; 24] = b"authorityRevocationList\0";
3306pub const NID_authorityRevocationList: i32 = 882;
3307pub const LN_certificateRevocationList: &[u8; 26] = b"certificateRevocationList\0";
3308pub const NID_certificateRevocationList: i32 = 883;
3309pub const LN_crossCertificatePair: &[u8; 21] = b"crossCertificatePair\0";
3310pub const NID_crossCertificatePair: i32 = 884;
3311pub const LN_enhancedSearchGuide: &[u8; 20] = b"enhancedSearchGuide\0";
3312pub const NID_enhancedSearchGuide: i32 = 885;
3313pub const LN_protocolInformation: &[u8; 20] = b"protocolInformation\0";
3314pub const NID_protocolInformation: i32 = 886;
3315pub const LN_distinguishedName: &[u8; 18] = b"distinguishedName\0";
3316pub const NID_distinguishedName: i32 = 887;
3317pub const LN_uniqueMember: &[u8; 13] = b"uniqueMember\0";
3318pub const NID_uniqueMember: i32 = 888;
3319pub const LN_houseIdentifier: &[u8; 16] = b"houseIdentifier\0";
3320pub const NID_houseIdentifier: i32 = 889;
3321pub const LN_supportedAlgorithms: &[u8; 20] = b"supportedAlgorithms\0";
3322pub const NID_supportedAlgorithms: i32 = 890;
3323pub const LN_deltaRevocationList: &[u8; 20] = b"deltaRevocationList\0";
3324pub const NID_deltaRevocationList: i32 = 891;
3325pub const SN_dmdName: &[u8; 8] = b"dmdName\0";
3326pub const NID_dmdName: i32 = 892;
3327pub const SN_id_alg_PWRI_KEK: &[u8; 16] = b"id-alg-PWRI-KEK\0";
3328pub const NID_id_alg_PWRI_KEK: i32 = 893;
3329pub const SN_cmac: &[u8; 5] = b"CMAC\0";
3330pub const LN_cmac: &[u8; 5] = b"cmac\0";
3331pub const NID_cmac: i32 = 894;
3332pub const SN_aes_128_gcm: &[u8; 14] = b"id-aes128-GCM\0";
3333pub const LN_aes_128_gcm: &[u8; 12] = b"aes-128-gcm\0";
3334pub const NID_aes_128_gcm: i32 = 895;
3335pub const SN_aes_128_ccm: &[u8; 14] = b"id-aes128-CCM\0";
3336pub const LN_aes_128_ccm: &[u8; 12] = b"aes-128-ccm\0";
3337pub const NID_aes_128_ccm: i32 = 896;
3338pub const SN_id_aes128_wrap_pad: &[u8; 19] = b"id-aes128-wrap-pad\0";
3339pub const NID_id_aes128_wrap_pad: i32 = 897;
3340pub const SN_aes_192_gcm: &[u8; 14] = b"id-aes192-GCM\0";
3341pub const LN_aes_192_gcm: &[u8; 12] = b"aes-192-gcm\0";
3342pub const NID_aes_192_gcm: i32 = 898;
3343pub const SN_aes_192_ccm: &[u8; 14] = b"id-aes192-CCM\0";
3344pub const LN_aes_192_ccm: &[u8; 12] = b"aes-192-ccm\0";
3345pub const NID_aes_192_ccm: i32 = 899;
3346pub const SN_id_aes192_wrap_pad: &[u8; 19] = b"id-aes192-wrap-pad\0";
3347pub const NID_id_aes192_wrap_pad: i32 = 900;
3348pub const SN_aes_256_gcm: &[u8; 14] = b"id-aes256-GCM\0";
3349pub const LN_aes_256_gcm: &[u8; 12] = b"aes-256-gcm\0";
3350pub const NID_aes_256_gcm: i32 = 901;
3351pub const SN_aes_256_ccm: &[u8; 14] = b"id-aes256-CCM\0";
3352pub const LN_aes_256_ccm: &[u8; 12] = b"aes-256-ccm\0";
3353pub const NID_aes_256_ccm: i32 = 902;
3354pub const SN_id_aes256_wrap_pad: &[u8; 19] = b"id-aes256-wrap-pad\0";
3355pub const NID_id_aes256_wrap_pad: i32 = 903;
3356pub const SN_aes_128_ctr: &[u8; 12] = b"AES-128-CTR\0";
3357pub const LN_aes_128_ctr: &[u8; 12] = b"aes-128-ctr\0";
3358pub const NID_aes_128_ctr: i32 = 904;
3359pub const SN_aes_192_ctr: &[u8; 12] = b"AES-192-CTR\0";
3360pub const LN_aes_192_ctr: &[u8; 12] = b"aes-192-ctr\0";
3361pub const NID_aes_192_ctr: i32 = 905;
3362pub const SN_aes_256_ctr: &[u8; 12] = b"AES-256-CTR\0";
3363pub const LN_aes_256_ctr: &[u8; 12] = b"aes-256-ctr\0";
3364pub const NID_aes_256_ctr: i32 = 906;
3365pub const SN_id_camellia128_wrap: &[u8; 20] = b"id-camellia128-wrap\0";
3366pub const NID_id_camellia128_wrap: i32 = 907;
3367pub const SN_id_camellia192_wrap: &[u8; 20] = b"id-camellia192-wrap\0";
3368pub const NID_id_camellia192_wrap: i32 = 908;
3369pub const SN_id_camellia256_wrap: &[u8; 20] = b"id-camellia256-wrap\0";
3370pub const NID_id_camellia256_wrap: i32 = 909;
3371pub const SN_anyExtendedKeyUsage: &[u8; 20] = b"anyExtendedKeyUsage\0";
3372pub const LN_anyExtendedKeyUsage: &[u8; 23] = b"Any Extended Key Usage\0";
3373pub const NID_anyExtendedKeyUsage: i32 = 910;
3374pub const SN_mgf1: &[u8; 5] = b"MGF1\0";
3375pub const LN_mgf1: &[u8; 5] = b"mgf1\0";
3376pub const NID_mgf1: i32 = 911;
3377pub const SN_rsassaPss: &[u8; 11] = b"RSASSA-PSS\0";
3378pub const LN_rsassaPss: &[u8; 10] = b"rsassaPss\0";
3379pub const NID_rsassaPss: i32 = 912;
3380pub const SN_aes_128_xts: &[u8; 12] = b"AES-128-XTS\0";
3381pub const LN_aes_128_xts: &[u8; 12] = b"aes-128-xts\0";
3382pub const NID_aes_128_xts: i32 = 913;
3383pub const SN_aes_256_xts: &[u8; 12] = b"AES-256-XTS\0";
3384pub const LN_aes_256_xts: &[u8; 12] = b"aes-256-xts\0";
3385pub const NID_aes_256_xts: i32 = 914;
3386pub const SN_rc4_hmac_md5: &[u8; 13] = b"RC4-HMAC-MD5\0";
3387pub const LN_rc4_hmac_md5: &[u8; 13] = b"rc4-hmac-md5\0";
3388pub const NID_rc4_hmac_md5: i32 = 915;
3389pub const SN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"AES-128-CBC-HMAC-SHA1\0";
3390pub const LN_aes_128_cbc_hmac_sha1: &[u8; 22] = b"aes-128-cbc-hmac-sha1\0";
3391pub const NID_aes_128_cbc_hmac_sha1: i32 = 916;
3392pub const SN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"AES-192-CBC-HMAC-SHA1\0";
3393pub const LN_aes_192_cbc_hmac_sha1: &[u8; 22] = b"aes-192-cbc-hmac-sha1\0";
3394pub const NID_aes_192_cbc_hmac_sha1: i32 = 917;
3395pub const SN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"AES-256-CBC-HMAC-SHA1\0";
3396pub const LN_aes_256_cbc_hmac_sha1: &[u8; 22] = b"aes-256-cbc-hmac-sha1\0";
3397pub const NID_aes_256_cbc_hmac_sha1: i32 = 918;
3398pub const SN_rsaesOaep: &[u8; 11] = b"RSAES-OAEP\0";
3399pub const LN_rsaesOaep: &[u8; 10] = b"rsaesOaep\0";
3400pub const NID_rsaesOaep: i32 = 919;
3401pub const SN_dhpublicnumber: &[u8; 15] = b"dhpublicnumber\0";
3402pub const LN_dhpublicnumber: &[u8; 9] = b"X9.42 DH\0";
3403pub const NID_dhpublicnumber: i32 = 920;
3404pub const SN_brainpoolP160r1: &[u8; 16] = b"brainpoolP160r1\0";
3405pub const NID_brainpoolP160r1: i32 = 921;
3406pub const SN_brainpoolP160t1: &[u8; 16] = b"brainpoolP160t1\0";
3407pub const NID_brainpoolP160t1: i32 = 922;
3408pub const SN_brainpoolP192r1: &[u8; 16] = b"brainpoolP192r1\0";
3409pub const NID_brainpoolP192r1: i32 = 923;
3410pub const SN_brainpoolP192t1: &[u8; 16] = b"brainpoolP192t1\0";
3411pub const NID_brainpoolP192t1: i32 = 924;
3412pub const SN_brainpoolP224r1: &[u8; 16] = b"brainpoolP224r1\0";
3413pub const NID_brainpoolP224r1: i32 = 925;
3414pub const SN_brainpoolP224t1: &[u8; 16] = b"brainpoolP224t1\0";
3415pub const NID_brainpoolP224t1: i32 = 926;
3416pub const SN_brainpoolP256r1: &[u8; 16] = b"brainpoolP256r1\0";
3417pub const NID_brainpoolP256r1: i32 = 927;
3418pub const SN_brainpoolP256t1: &[u8; 16] = b"brainpoolP256t1\0";
3419pub const NID_brainpoolP256t1: i32 = 928;
3420pub const SN_brainpoolP320r1: &[u8; 16] = b"brainpoolP320r1\0";
3421pub const NID_brainpoolP320r1: i32 = 929;
3422pub const SN_brainpoolP320t1: &[u8; 16] = b"brainpoolP320t1\0";
3423pub const NID_brainpoolP320t1: i32 = 930;
3424pub const SN_brainpoolP384r1: &[u8; 16] = b"brainpoolP384r1\0";
3425pub const NID_brainpoolP384r1: i32 = 931;
3426pub const SN_brainpoolP384t1: &[u8; 16] = b"brainpoolP384t1\0";
3427pub const NID_brainpoolP384t1: i32 = 932;
3428pub const SN_brainpoolP512r1: &[u8; 16] = b"brainpoolP512r1\0";
3429pub const NID_brainpoolP512r1: i32 = 933;
3430pub const SN_brainpoolP512t1: &[u8; 16] = b"brainpoolP512t1\0";
3431pub const NID_brainpoolP512t1: i32 = 934;
3432pub const SN_pSpecified: &[u8; 11] = b"PSPECIFIED\0";
3433pub const LN_pSpecified: &[u8; 11] = b"pSpecified\0";
3434pub const NID_pSpecified: i32 = 935;
3435pub const SN_dhSinglePass_stdDH_sha1kdf_scheme: &[u8; 34] = b"dhSinglePass-stdDH-sha1kdf-scheme\0";
3436pub const NID_dhSinglePass_stdDH_sha1kdf_scheme: i32 = 936;
3437pub const SN_dhSinglePass_stdDH_sha224kdf_scheme: &[u8; 36] =
3438    b"dhSinglePass-stdDH-sha224kdf-scheme\0";
3439pub const NID_dhSinglePass_stdDH_sha224kdf_scheme: i32 = 937;
3440pub const SN_dhSinglePass_stdDH_sha256kdf_scheme: &[u8; 36] =
3441    b"dhSinglePass-stdDH-sha256kdf-scheme\0";
3442pub const NID_dhSinglePass_stdDH_sha256kdf_scheme: i32 = 938;
3443pub const SN_dhSinglePass_stdDH_sha384kdf_scheme: &[u8; 36] =
3444    b"dhSinglePass-stdDH-sha384kdf-scheme\0";
3445pub const NID_dhSinglePass_stdDH_sha384kdf_scheme: i32 = 939;
3446pub const SN_dhSinglePass_stdDH_sha512kdf_scheme: &[u8; 36] =
3447    b"dhSinglePass-stdDH-sha512kdf-scheme\0";
3448pub const NID_dhSinglePass_stdDH_sha512kdf_scheme: i32 = 940;
3449pub const SN_dhSinglePass_cofactorDH_sha1kdf_scheme: &[u8; 39] =
3450    b"dhSinglePass-cofactorDH-sha1kdf-scheme\0";
3451pub const NID_dhSinglePass_cofactorDH_sha1kdf_scheme: i32 = 941;
3452pub const SN_dhSinglePass_cofactorDH_sha224kdf_scheme: &[u8; 41] =
3453    b"dhSinglePass-cofactorDH-sha224kdf-scheme\0";
3454pub const NID_dhSinglePass_cofactorDH_sha224kdf_scheme: i32 = 942;
3455pub const SN_dhSinglePass_cofactorDH_sha256kdf_scheme: &[u8; 41] =
3456    b"dhSinglePass-cofactorDH-sha256kdf-scheme\0";
3457pub const NID_dhSinglePass_cofactorDH_sha256kdf_scheme: i32 = 943;
3458pub const SN_dhSinglePass_cofactorDH_sha384kdf_scheme: &[u8; 41] =
3459    b"dhSinglePass-cofactorDH-sha384kdf-scheme\0";
3460pub const NID_dhSinglePass_cofactorDH_sha384kdf_scheme: i32 = 944;
3461pub const SN_dhSinglePass_cofactorDH_sha512kdf_scheme: &[u8; 41] =
3462    b"dhSinglePass-cofactorDH-sha512kdf-scheme\0";
3463pub const NID_dhSinglePass_cofactorDH_sha512kdf_scheme: i32 = 945;
3464pub const SN_dh_std_kdf: &[u8; 11] = b"dh-std-kdf\0";
3465pub const NID_dh_std_kdf: i32 = 946;
3466pub const SN_dh_cofactor_kdf: &[u8; 16] = b"dh-cofactor-kdf\0";
3467pub const NID_dh_cofactor_kdf: i32 = 947;
3468pub const SN_X25519: &[u8; 7] = b"X25519\0";
3469pub const NID_X25519: i32 = 948;
3470pub const SN_ED25519: &[u8; 8] = b"ED25519\0";
3471pub const NID_ED25519: i32 = 949;
3472pub const SN_chacha20_poly1305: &[u8; 18] = b"ChaCha20-Poly1305\0";
3473pub const LN_chacha20_poly1305: &[u8; 18] = b"chacha20-poly1305\0";
3474pub const NID_chacha20_poly1305: i32 = 950;
3475pub const SN_kx_rsa: &[u8; 6] = b"KxRSA\0";
3476pub const LN_kx_rsa: &[u8; 7] = b"kx-rsa\0";
3477pub const NID_kx_rsa: i32 = 951;
3478pub const SN_kx_ecdhe: &[u8; 8] = b"KxECDHE\0";
3479pub const LN_kx_ecdhe: &[u8; 9] = b"kx-ecdhe\0";
3480pub const NID_kx_ecdhe: i32 = 952;
3481pub const SN_kx_psk: &[u8; 6] = b"KxPSK\0";
3482pub const LN_kx_psk: &[u8; 7] = b"kx-psk\0";
3483pub const NID_kx_psk: i32 = 953;
3484pub const SN_auth_rsa: &[u8; 8] = b"AuthRSA\0";
3485pub const LN_auth_rsa: &[u8; 9] = b"auth-rsa\0";
3486pub const NID_auth_rsa: i32 = 954;
3487pub const SN_auth_ecdsa: &[u8; 10] = b"AuthECDSA\0";
3488pub const LN_auth_ecdsa: &[u8; 11] = b"auth-ecdsa\0";
3489pub const NID_auth_ecdsa: i32 = 955;
3490pub const SN_auth_psk: &[u8; 8] = b"AuthPSK\0";
3491pub const LN_auth_psk: &[u8; 9] = b"auth-psk\0";
3492pub const NID_auth_psk: i32 = 956;
3493pub const SN_kx_any: &[u8; 6] = b"KxANY\0";
3494pub const LN_kx_any: &[u8; 7] = b"kx-any\0";
3495pub const NID_kx_any: i32 = 957;
3496pub const SN_auth_any: &[u8; 8] = b"AuthANY\0";
3497pub const LN_auth_any: &[u8; 9] = b"auth-any\0";
3498pub const NID_auth_any: i32 = 958;
3499pub const SN_ED448: &[u8; 6] = b"ED448\0";
3500pub const NID_ED448: i32 = 960;
3501pub const SN_X448: &[u8; 5] = b"X448\0";
3502pub const NID_X448: i32 = 961;
3503pub const SN_sha512_256: &[u8; 11] = b"SHA512-256\0";
3504pub const LN_sha512_256: &[u8; 11] = b"sha512-256\0";
3505pub const NID_sha512_256: i32 = 962;
3506pub const SN_hkdf: &[u8; 5] = b"HKDF\0";
3507pub const LN_hkdf: &[u8; 5] = b"hkdf\0";
3508pub const NID_hkdf: i32 = 963;
3509pub const SN_X25519Kyber768Draft00: &[u8; 22] = b"X25519Kyber768Draft00\0";
3510pub const NID_X25519Kyber768Draft00: i32 = 964;
3511pub const SN_X25519MLKEM768: &[u8; 15] = b"X25519MLKEM768\0";
3512pub const NID_X25519MLKEM768: i32 = 965;
3513pub const SN_ML_KEM_1024: &[u8; 19] = b"id-alg-ml-kem-1024\0";
3514pub const LN_ML_KEM_1024: &[u8; 12] = b"ML-KEM-1024\0";
3515pub const NID_ML_KEM_1024: i32 = 966;
3516pub const SN_ML_DSA_44: &[u8; 13] = b"id-ml-dsa-44\0";
3517pub const LN_ML_DSA_44: &[u8; 10] = b"ML-DSA-44\0";
3518pub const NID_ML_DSA_44: i32 = 967;
3519pub const SN_ML_DSA_65: &[u8; 13] = b"id-ml-dsa-65\0";
3520pub const LN_ML_DSA_65: &[u8; 10] = b"ML-DSA-65\0";
3521pub const NID_ML_DSA_65: i32 = 968;
3522pub const SN_ML_DSA_87: &[u8; 13] = b"id-ml-dsa-87\0";
3523pub const LN_ML_DSA_87: &[u8; 10] = b"ML-DSA-87\0";
3524pub const NID_ML_DSA_87: i32 = 969;
3525pub const SN_ML_KEM_768: &[u8; 18] = b"id-alg-ml-kem-768\0";
3526pub const LN_ML_KEM_768: &[u8; 11] = b"ML-KEM-768\0";
3527pub const NID_ML_KEM_768: i32 = 970;
3528pub const SN_X_Wing: &[u8; 7] = b"X-Wing\0";
3529pub const NID_X_Wing: i32 = 972;
3530pub const SN_alg_mtcProof_draft: &[u8; 19] = b"alg-mtcProof-draft\0";
3531pub const NID_alg_mtcProof_draft: i32 = 976;
3532pub const SN_rdna_trustAnchorID_draft: &[u8; 25] = b"rdna-trustAnchorID-draft\0";
3533pub const NID_rdna_trustAnchorID_draft: i32 = 977;
3534pub const SN_pe_mtcCertificationAuthority_draft: &[u8; 35] =
3535    b"pe-mtcCertificationAuthority-draft\0";
3536pub const NID_pe_mtcCertificationAuthority_draft: i32 = 978;
3537pub const EVP_PKEY_NONE: i32 = 0;
3538pub const EVP_PKEY_RSA: i32 = 6;
3539pub const EVP_PKEY_RSA_PSS: i32 = 912;
3540pub const EVP_PKEY_DSA: i32 = 116;
3541pub const EVP_PKEY_EC: i32 = 408;
3542pub const EVP_PKEY_ED25519: i32 = 949;
3543pub const EVP_PKEY_X25519: i32 = 948;
3544pub const EVP_PKEY_HKDF: i32 = 963;
3545pub const EVP_PKEY_DH: i32 = 28;
3546pub const EVP_PKEY_ML_DSA_44: i32 = 967;
3547pub const EVP_PKEY_ML_DSA_65: i32 = 968;
3548pub const EVP_PKEY_ML_DSA_87: i32 = 969;
3549pub const EVP_PKEY_ML_KEM_768: i32 = 970;
3550pub const EVP_PKEY_ML_KEM_1024: i32 = 966;
3551pub const EVP_PKEY_XWING: i32 = 972;
3552pub const EVP_PKEY_RSA2: i32 = 19;
3553pub const EVP_PKEY_X448: i32 = 961;
3554pub const EVP_PKEY_ED448: i32 = 960;
3555pub const HKDF_R_OUTPUT_TOO_LARGE: i32 = 100;
3556pub const EVP_HPKE_DHKEM_P256_HKDF_SHA256: i32 = 16;
3557pub const EVP_HPKE_DHKEM_X25519_HKDF_SHA256: i32 = 32;
3558pub const EVP_HPKE_XWING: i32 = 25722;
3559pub const EVP_HPKE_MLKEM768: i32 = 65;
3560pub const EVP_HPKE_MLKEM1024: i32 = 66;
3561pub const EVP_HPKE_MAX_PUBLIC_KEY_LENGTH: i32 = 1568;
3562pub const EVP_HPKE_MAX_PRIVATE_KEY_LENGTH: i32 = 64;
3563pub const EVP_HPKE_MAX_ENC_LENGTH: i32 = 1568;
3564pub const EVP_HPKE_HKDF_SHA256: i32 = 1;
3565pub const EVP_HPKE_HKDF_SHA384: i32 = 2;
3566pub const EVP_HPKE_AES_128_GCM: i32 = 1;
3567pub const EVP_HPKE_AES_256_GCM: i32 = 2;
3568pub const EVP_HPKE_CHACHA20_POLY1305: i32 = 3;
3569pub const EVP_HPKE_MAX_OVERHEAD: i32 = 64;
3570pub const HRSS_SAMPLE_BYTES: i32 = 700;
3571pub const HRSS_GENERATE_KEY_BYTES: i32 = 1432;
3572pub const HRSS_ENCAP_BYTES: i32 = 1400;
3573pub const HRSS_PUBLIC_KEY_BYTES: i32 = 1138;
3574pub const HRSS_CIPHERTEXT_BYTES: i32 = 1138;
3575pub const HRSS_KEY_BYTES: i32 = 32;
3576pub const HRSS_POLY3_BYTES: i32 = 140;
3577pub const HRSS_PRIVATE_KEY_BYTES: i32 = 1452;
3578pub const EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND: i32 = 0;
3579pub const EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY: i32 = 1;
3580pub const EVP_PKEY_HKDEF_MODE_EXPAND_ONLY: i32 = 2;
3581pub const MD4_CBLOCK: i32 = 64;
3582pub const MD4_DIGEST_LENGTH: i32 = 16;
3583pub const MD5_CBLOCK: i32 = 64;
3584pub const MD5_DIGEST_LENGTH: i32 = 16;
3585pub const MLDSA_SEED_BYTES: i32 = 32;
3586pub const MLDSA_MU_BYTES: i32 = 64;
3587pub const MLDSA65_PUBLIC_KEY_BYTES: i32 = 1952;
3588pub const MLDSA65_SIGNATURE_BYTES: i32 = 3309;
3589pub const MLDSA87_PUBLIC_KEY_BYTES: i32 = 2592;
3590pub const MLDSA87_SIGNATURE_BYTES: i32 = 4627;
3591pub const MLDSA44_PUBLIC_KEY_BYTES: i32 = 1312;
3592pub const MLDSA44_SIGNATURE_BYTES: i32 = 2420;
3593pub const MLKEM768_PUBLIC_KEY_BYTES: i32 = 1184;
3594pub const MLKEM_SEED_BYTES: i32 = 64;
3595pub const MLKEM768_CIPHERTEXT_BYTES: i32 = 1088;
3596pub const MLKEM_SHARED_SECRET_BYTES: i32 = 32;
3597pub const MLKEM1024_PUBLIC_KEY_BYTES: i32 = 1568;
3598pub const MLKEM1024_CIPHERTEXT_BYTES: i32 = 1568;
3599pub const OBJ_NAME_TYPE_MD_METH: i32 = 1;
3600pub const OBJ_NAME_TYPE_CIPHER_METH: i32 = 2;
3601pub const OBJ_R_UNKNOWN_NID: i32 = 100;
3602pub const OBJ_R_INVALID_OID_STRING: i32 = 101;
3603pub const PKCS7_DETACHED: i32 = 64;
3604pub const PKCS7_TEXT: i32 = 1;
3605pub const PKCS7_NOCERTS: i32 = 2;
3606pub const PKCS7_NOSIGS: i32 = 4;
3607pub const PKCS7_NOCHAIN: i32 = 8;
3608pub const PKCS7_NOINTERN: i32 = 16;
3609pub const PKCS7_NOVERIFY: i32 = 32;
3610pub const PKCS7_BINARY: i32 = 128;
3611pub const PKCS7_NOATTR: i32 = 256;
3612pub const PKCS7_NOSMIMECAP: i32 = 512;
3613pub const PKCS7_STREAM: i32 = 4096;
3614pub const PKCS7_PARTIAL: i32 = 16384;
3615pub const PKCS7_R_BAD_PKCS7_VERSION: i32 = 100;
3616pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA: i32 = 101;
3617pub const PKCS7_R_NO_CERTIFICATES_INCLUDED: i32 = 102;
3618pub const PKCS7_R_NO_CRLS_INCLUDED: i32 = 103;
3619pub const OPENSSL_RSA_MAX_MODULUS_BITS: i32 = 16384;
3620pub const RSA_PKCS1_PADDING: i32 = 1;
3621pub const RSA_NO_PADDING: i32 = 3;
3622pub const RSA_PKCS1_OAEP_PADDING: i32 = 4;
3623pub const RSA_PKCS1_PSS_PADDING: i32 = 6;
3624pub const RSA_PSS_SALTLEN_DIGEST: i32 = -1;
3625pub const RSA_PSS_SALTLEN_AUTO: i32 = -2;
3626pub const RSA_FLAG_OPAQUE: i32 = 1;
3627pub const RSA_FLAG_NO_BLINDING: i32 = 8;
3628pub const RSA_FLAG_EXT_PKEY: i32 = 32;
3629pub const RSA_FLAG_NO_PUBLIC_EXPONENT: i32 = 64;
3630pub const RSA_FLAG_LARGE_PUBLIC_EXPONENT: i32 = 128;
3631pub const RSA_3: i32 = 3;
3632pub const RSA_F4: i32 = 65537;
3633pub const RSA_METHOD_FLAG_NO_CHECK: i32 = 1;
3634pub const RSA_R_BAD_ENCODING: i32 = 100;
3635pub const RSA_R_BAD_E_VALUE: i32 = 101;
3636pub const RSA_R_BAD_FIXED_HEADER_DECRYPT: i32 = 102;
3637pub const RSA_R_BAD_PAD_BYTE_COUNT: i32 = 103;
3638pub const RSA_R_BAD_RSA_PARAMETERS: i32 = 104;
3639pub const RSA_R_BAD_SIGNATURE: i32 = 105;
3640pub const RSA_R_BAD_VERSION: i32 = 106;
3641pub const RSA_R_BLOCK_TYPE_IS_NOT_01: i32 = 107;
3642pub const RSA_R_BN_NOT_INITIALIZED: i32 = 108;
3643pub const RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY: i32 = 109;
3644pub const RSA_R_CRT_PARAMS_ALREADY_GIVEN: i32 = 110;
3645pub const RSA_R_CRT_VALUES_INCORRECT: i32 = 111;
3646pub const RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN: i32 = 112;
3647pub const RSA_R_DATA_TOO_LARGE: i32 = 113;
3648pub const RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE: i32 = 114;
3649pub const RSA_R_DATA_TOO_LARGE_FOR_MODULUS: i32 = 115;
3650pub const RSA_R_DATA_TOO_SMALL: i32 = 116;
3651pub const RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE: i32 = 117;
3652pub const RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY: i32 = 118;
3653pub const RSA_R_D_E_NOT_CONGRUENT_TO_1: i32 = 119;
3654pub const RSA_R_EMPTY_PUBLIC_KEY: i32 = 120;
3655pub const RSA_R_ENCODE_ERROR: i32 = 121;
3656pub const RSA_R_FIRST_OCTET_INVALID: i32 = 122;
3657pub const RSA_R_INCONSISTENT_SET_OF_CRT_VALUES: i32 = 123;
3658pub const RSA_R_INTERNAL_ERROR: i32 = 124;
3659pub const RSA_R_INVALID_MESSAGE_LENGTH: i32 = 125;
3660pub const RSA_R_KEY_SIZE_TOO_SMALL: i32 = 126;
3661pub const RSA_R_LAST_OCTET_INVALID: i32 = 127;
3662pub const RSA_R_MODULUS_TOO_LARGE: i32 = 128;
3663pub const RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES: i32 = 129;
3664pub const RSA_R_NO_PUBLIC_EXPONENT: i32 = 130;
3665pub const RSA_R_NULL_BEFORE_BLOCK_MISSING: i32 = 131;
3666pub const RSA_R_N_NOT_EQUAL_P_Q: i32 = 132;
3667pub const RSA_R_OAEP_DECODING_ERROR: i32 = 133;
3668pub const RSA_R_ONLY_ONE_OF_P_Q_GIVEN: i32 = 134;
3669pub const RSA_R_OUTPUT_BUFFER_TOO_SMALL: i32 = 135;
3670pub const RSA_R_PADDING_CHECK_FAILED: i32 = 136;
3671pub const RSA_R_PKCS_DECODING_ERROR: i32 = 137;
3672pub const RSA_R_SLEN_CHECK_FAILED: i32 = 138;
3673pub const RSA_R_SLEN_RECOVERY_FAILED: i32 = 139;
3674pub const RSA_R_TOO_LONG: i32 = 140;
3675pub const RSA_R_TOO_MANY_ITERATIONS: i32 = 141;
3676pub const RSA_R_UNKNOWN_ALGORITHM_TYPE: i32 = 142;
3677pub const RSA_R_UNKNOWN_PADDING_TYPE: i32 = 143;
3678pub const RSA_R_VALUE_MISSING: i32 = 144;
3679pub const RSA_R_WRONG_SIGNATURE_LENGTH: i32 = 145;
3680pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED: i32 = 146;
3681pub const RSA_R_D_OUT_OF_RANGE: i32 = 147;
3682pub const RSA_R_BLOCK_TYPE_IS_NOT_02: i32 = 148;
3683pub const X509V3_R_BAD_IP_ADDRESS: i32 = 100;
3684pub const X509V3_R_BAD_OBJECT: i32 = 101;
3685pub const X509V3_R_BN_DEC2BN_ERROR: i32 = 102;
3686pub const X509V3_R_BN_TO_ASN1_INTEGER_ERROR: i32 = 103;
3687pub const X509V3_R_CANNOT_FIND_FREE_FUNCTION: i32 = 104;
3688pub const X509V3_R_DIRNAME_ERROR: i32 = 105;
3689pub const X509V3_R_DISTPOINT_ALREADY_SET: i32 = 106;
3690pub const X509V3_R_DUPLICATE_ZONE_ID: i32 = 107;
3691pub const X509V3_R_ERROR_CONVERTING_ZONE: i32 = 108;
3692pub const X509V3_R_ERROR_CREATING_EXTENSION: i32 = 109;
3693pub const X509V3_R_ERROR_IN_EXTENSION: i32 = 110;
3694pub const X509V3_R_EXPECTED_A_SECTION_NAME: i32 = 111;
3695pub const X509V3_R_EXTENSION_EXISTS: i32 = 112;
3696pub const X509V3_R_EXTENSION_NAME_ERROR: i32 = 113;
3697pub const X509V3_R_EXTENSION_NOT_FOUND: i32 = 114;
3698pub const X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED: i32 = 115;
3699pub const X509V3_R_EXTENSION_VALUE_ERROR: i32 = 116;
3700pub const X509V3_R_ILLEGAL_EMPTY_EXTENSION: i32 = 117;
3701pub const X509V3_R_ILLEGAL_HEX_DIGIT: i32 = 118;
3702pub const X509V3_R_INCORRECT_POLICY_SYNTAX_TAG: i32 = 119;
3703pub const X509V3_R_INVALID_BOOLEAN_STRING: i32 = 120;
3704pub const X509V3_R_INVALID_EXTENSION_STRING: i32 = 121;
3705pub const X509V3_R_INVALID_MULTIPLE_RDNS: i32 = 122;
3706pub const X509V3_R_INVALID_NAME: i32 = 123;
3707pub const X509V3_R_INVALID_NULL_ARGUMENT: i32 = 124;
3708pub const X509V3_R_INVALID_NULL_NAME: i32 = 125;
3709pub const X509V3_R_INVALID_NULL_VALUE: i32 = 126;
3710pub const X509V3_R_INVALID_NUMBER: i32 = 127;
3711pub const X509V3_R_INVALID_NUMBERS: i32 = 128;
3712pub const X509V3_R_INVALID_OBJECT_IDENTIFIER: i32 = 129;
3713pub const X509V3_R_INVALID_OPTION: i32 = 130;
3714pub const X509V3_R_INVALID_POLICY_IDENTIFIER: i32 = 131;
3715pub const X509V3_R_INVALID_PROXY_POLICY_SETTING: i32 = 132;
3716pub const X509V3_R_INVALID_PURPOSE: i32 = 133;
3717pub const X509V3_R_INVALID_SECTION: i32 = 134;
3718pub const X509V3_R_INVALID_SYNTAX: i32 = 135;
3719pub const X509V3_R_ISSUER_DECODE_ERROR: i32 = 136;
3720pub const X509V3_R_MISSING_VALUE: i32 = 137;
3721pub const X509V3_R_NEED_ORGANIZATION_AND_NUMBERS: i32 = 138;
3722pub const X509V3_R_NO_CONFIG_DATABASE: i32 = 139;
3723pub const X509V3_R_NO_ISSUER_CERTIFICATE: i32 = 140;
3724pub const X509V3_R_NO_ISSUER_DETAILS: i32 = 141;
3725pub const X509V3_R_NO_POLICY_IDENTIFIER: i32 = 142;
3726pub const X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED: i32 = 143;
3727pub const X509V3_R_NO_PUBLIC_KEY: i32 = 144;
3728pub const X509V3_R_NO_SUBJECT_DETAILS: i32 = 145;
3729pub const X509V3_R_ODD_NUMBER_OF_DIGITS: i32 = 146;
3730pub const X509V3_R_OPERATION_NOT_DEFINED: i32 = 147;
3731pub const X509V3_R_OTHERNAME_ERROR: i32 = 148;
3732pub const X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED: i32 = 149;
3733pub const X509V3_R_POLICY_PATH_LENGTH: i32 = 150;
3734pub const X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED: i32 = 151;
3735pub const X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY: i32 = 152;
3736pub const X509V3_R_SECTION_NOT_FOUND: i32 = 153;
3737pub const X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS: i32 = 154;
3738pub const X509V3_R_UNABLE_TO_GET_ISSUER_KEYID: i32 = 155;
3739pub const X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT: i32 = 156;
3740pub const X509V3_R_UNKNOWN_EXTENSION: i32 = 157;
3741pub const X509V3_R_UNKNOWN_EXTENSION_NAME: i32 = 158;
3742pub const X509V3_R_UNKNOWN_OPTION: i32 = 159;
3743pub const X509V3_R_UNSUPPORTED_OPTION: i32 = 160;
3744pub const X509V3_R_UNSUPPORTED_TYPE: i32 = 161;
3745pub const X509V3_R_USER_TOO_LONG: i32 = 162;
3746pub const X509V3_R_INVALID_VALUE: i32 = 163;
3747pub const X509V3_R_TRAILING_DATA_IN_EXTENSION: i32 = 164;
3748pub const X509_VERSION_1: i32 = 0;
3749pub const X509_VERSION_2: i32 = 1;
3750pub const X509_VERSION_3: i32 = 2;
3751pub const EXFLAG_BCONS: i32 = 1;
3752pub const EXFLAG_KUSAGE: i32 = 2;
3753pub const EXFLAG_XKUSAGE: i32 = 4;
3754pub const EXFLAG_CA: i32 = 16;
3755pub const EXFLAG_SI: i32 = 32;
3756pub const EXFLAG_V1: i32 = 64;
3757pub const EXFLAG_INVALID: i32 = 128;
3758pub const EXFLAG_SET: i32 = 256;
3759pub const EXFLAG_CRITICAL: i32 = 512;
3760pub const EXFLAG_SS: i32 = 8192;
3761pub const X509v3_KU_DIGITAL_SIGNATURE: i32 = 128;
3762pub const X509v3_KU_NON_REPUDIATION: i32 = 64;
3763pub const X509v3_KU_KEY_ENCIPHERMENT: i32 = 32;
3764pub const X509v3_KU_DATA_ENCIPHERMENT: i32 = 16;
3765pub const X509v3_KU_KEY_AGREEMENT: i32 = 8;
3766pub const X509v3_KU_KEY_CERT_SIGN: i32 = 4;
3767pub const X509v3_KU_CRL_SIGN: i32 = 2;
3768pub const X509v3_KU_ENCIPHER_ONLY: i32 = 1;
3769pub const X509v3_KU_DECIPHER_ONLY: i32 = 32768;
3770pub const XKU_SSL_SERVER: i32 = 1;
3771pub const XKU_SSL_CLIENT: i32 = 2;
3772pub const XKU_SMIME: i32 = 4;
3773pub const XKU_CODE_SIGN: i32 = 8;
3774pub const XKU_SGC: i32 = 16;
3775pub const XKU_OCSP_SIGN: i32 = 32;
3776pub const XKU_TIMESTAMP: i32 = 64;
3777pub const XKU_DVCS: i32 = 128;
3778pub const XKU_ANYEKU: i32 = 256;
3779pub const X509_CRL_VERSION_1: i32 = 0;
3780pub const X509_CRL_VERSION_2: i32 = 1;
3781pub const X509_REQ_VERSION_1: i32 = 0;
3782pub const X509V3_ADD_OP_MASK: i32 = 15;
3783pub const X509V3_ADD_DEFAULT: i32 = 0;
3784pub const X509V3_ADD_APPEND: i32 = 1;
3785pub const X509V3_ADD_REPLACE: i32 = 2;
3786pub const X509V3_ADD_REPLACE_EXISTING: i32 = 3;
3787pub const X509V3_ADD_KEEP_EXISTING: i32 = 4;
3788pub const X509V3_ADD_DELETE: i32 = 5;
3789pub const X509V3_ADD_SILENT: i32 = 16;
3790pub const GEN_OTHERNAME: i32 = 0;
3791pub const GEN_EMAIL: i32 = 1;
3792pub const GEN_DNS: i32 = 2;
3793pub const GEN_X400: i32 = 3;
3794pub const GEN_DIRNAME: i32 = 4;
3795pub const GEN_EDIPARTY: i32 = 5;
3796pub const GEN_URI: i32 = 6;
3797pub const GEN_IPADD: i32 = 7;
3798pub const GEN_RID: i32 = 8;
3799pub const X509_LU_NONE: i32 = 0;
3800pub const X509_LU_X509: i32 = 1;
3801pub const X509_LU_CRL: i32 = 2;
3802pub const X509_LU_PKEY: i32 = 3;
3803pub const X509_V_OK: i32 = 0;
3804pub const X509_V_ERR_UNSPECIFIED: i32 = 1;
3805pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: i32 = 2;
3806pub const X509_V_ERR_UNABLE_TO_GET_CRL: i32 = 3;
3807pub const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: i32 = 4;
3808pub const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: i32 = 5;
3809pub const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: i32 = 6;
3810pub const X509_V_ERR_CERT_SIGNATURE_FAILURE: i32 = 7;
3811pub const X509_V_ERR_CRL_SIGNATURE_FAILURE: i32 = 8;
3812pub const X509_V_ERR_CERT_NOT_YET_VALID: i32 = 9;
3813pub const X509_V_ERR_CERT_HAS_EXPIRED: i32 = 10;
3814pub const X509_V_ERR_CRL_NOT_YET_VALID: i32 = 11;
3815pub const X509_V_ERR_CRL_HAS_EXPIRED: i32 = 12;
3816pub const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: i32 = 13;
3817pub const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: i32 = 14;
3818pub const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: i32 = 15;
3819pub const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: i32 = 16;
3820pub const X509_V_ERR_OUT_OF_MEM: i32 = 17;
3821pub const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: i32 = 18;
3822pub const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: i32 = 19;
3823pub const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: i32 = 20;
3824pub const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: i32 = 21;
3825pub const X509_V_ERR_CERT_CHAIN_TOO_LONG: i32 = 22;
3826pub const X509_V_ERR_CERT_REVOKED: i32 = 23;
3827pub const X509_V_ERR_INVALID_CA: i32 = 24;
3828pub const X509_V_ERR_PATH_LENGTH_EXCEEDED: i32 = 25;
3829pub const X509_V_ERR_INVALID_PURPOSE: i32 = 26;
3830pub const X509_V_ERR_CERT_UNTRUSTED: i32 = 27;
3831pub const X509_V_ERR_CERT_REJECTED: i32 = 28;
3832pub const X509_V_ERR_SUBJECT_ISSUER_MISMATCH: i32 = 29;
3833pub const X509_V_ERR_AKID_SKID_MISMATCH: i32 = 30;
3834pub const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: i32 = 31;
3835pub const X509_V_ERR_KEYUSAGE_NO_CERTSIGN: i32 = 32;
3836pub const X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: i32 = 33;
3837pub const X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: i32 = 34;
3838pub const X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: i32 = 35;
3839pub const X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: i32 = 36;
3840pub const X509_V_ERR_INVALID_NON_CA: i32 = 37;
3841pub const X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: i32 = 38;
3842pub const X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: i32 = 39;
3843pub const X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: i32 = 40;
3844pub const X509_V_ERR_INVALID_EXTENSION: i32 = 41;
3845pub const X509_V_ERR_INVALID_POLICY_EXTENSION: i32 = 42;
3846pub const X509_V_ERR_NO_EXPLICIT_POLICY: i32 = 43;
3847pub const X509_V_ERR_DIFFERENT_CRL_SCOPE: i32 = 44;
3848pub const X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: i32 = 45;
3849pub const X509_V_ERR_UNNESTED_RESOURCE: i32 = 46;
3850pub const X509_V_ERR_PERMITTED_VIOLATION: i32 = 47;
3851pub const X509_V_ERR_EXCLUDED_VIOLATION: i32 = 48;
3852pub const X509_V_ERR_SUBTREE_MINMAX: i32 = 49;
3853pub const X509_V_ERR_APPLICATION_VERIFICATION: i32 = 50;
3854pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: i32 = 51;
3855pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: i32 = 52;
3856pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: i32 = 53;
3857pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR: i32 = 54;
3858pub const X509_V_ERR_HOSTNAME_MISMATCH: i32 = 62;
3859pub const X509_V_ERR_EMAIL_MISMATCH: i32 = 63;
3860pub const X509_V_ERR_IP_ADDRESS_MISMATCH: i32 = 64;
3861pub const X509_V_ERR_INVALID_CALL: i32 = 65;
3862pub const X509_V_ERR_STORE_LOOKUP: i32 = 66;
3863pub const X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS: i32 = 67;
3864pub const X509_V_FLAG_CB_ISSUER_CHECK: i32 = 1;
3865pub const X509_V_FLAG_USE_CHECK_TIME: i32 = 2;
3866pub const X509_V_FLAG_CRL_CHECK: i32 = 4;
3867pub const X509_V_FLAG_CRL_CHECK_ALL: i32 = 8;
3868pub const X509_V_FLAG_IGNORE_CRITICAL: i32 = 16;
3869pub const X509_V_FLAG_X509_STRICT: i32 = 0;
3870pub const X509_V_FLAG_ALLOW_PROXY_CERTS: i32 = 64;
3871pub const X509_V_FLAG_POLICY_CHECK: i32 = 128;
3872pub const X509_V_FLAG_EXPLICIT_POLICY: i32 = 256;
3873pub const X509_V_FLAG_INHIBIT_ANY: i32 = 512;
3874pub const X509_V_FLAG_INHIBIT_MAP: i32 = 1024;
3875pub const X509_V_FLAG_NOTIFY_POLICY: i32 = 2048;
3876pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT: i32 = 4096;
3877pub const X509_V_FLAG_USE_DELTAS: i32 = 8192;
3878pub const X509_V_FLAG_CHECK_SS_SIGNATURE: i32 = 16384;
3879pub const X509_V_FLAG_TRUSTED_FIRST: i32 = 0;
3880pub const X509_V_FLAG_PARTIAL_CHAIN: i32 = 524288;
3881pub const X509_V_FLAG_NO_ALT_CHAINS: i32 = 0;
3882pub const X509_V_FLAG_NO_CHECK_TIME: i32 = 2097152;
3883pub const X509_V_FLAG_ALLOW_TIMEZONE_OFFSET: i32 = 16777216;
3884pub const X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05: i32 = 4194304;
3885pub const X509_CHECK_FLAG_NO_WILDCARDS: i32 = 2;
3886pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: i32 = 32;
3887pub const X509_PURPOSE_SSL_CLIENT: i32 = 1;
3888pub const X509_PURPOSE_SSL_SERVER: i32 = 2;
3889pub const X509_PURPOSE_NS_SSL_SERVER: i32 = 3;
3890pub const X509_PURPOSE_SMIME_SIGN: i32 = 4;
3891pub const X509_PURPOSE_SMIME_ENCRYPT: i32 = 5;
3892pub const X509_PURPOSE_CRL_SIGN: i32 = 6;
3893pub const X509_PURPOSE_ANY: i32 = 7;
3894pub const X509_PURPOSE_OCSP_HELPER: i32 = 8;
3895pub const X509_PURPOSE_TIMESTAMP_SIGN: i32 = 9;
3896pub const X509_TRUST_COMPAT: i32 = 1;
3897pub const X509_TRUST_SSL_CLIENT: i32 = 2;
3898pub const X509_TRUST_SSL_SERVER: i32 = 3;
3899pub const X509_TRUST_EMAIL: i32 = 4;
3900pub const X509_TRUST_OBJECT_SIGN: i32 = 5;
3901pub const X509_TRUST_TSA: i32 = 8;
3902pub const X509_FILETYPE_PEM: i32 = 1;
3903pub const X509_FILETYPE_ASN1: i32 = 2;
3904pub const X509_FILETYPE_DEFAULT: i32 = 3;
3905pub const X509_L_FILE_LOAD: i32 = 1;
3906pub const X509_L_ADD_DIR: i32 = 2;
3907pub const X509_FLAG_COMPAT: i32 = 0;
3908pub const X509_FLAG_NO_HEADER: i32 = 1;
3909pub const X509_FLAG_NO_VERSION: i32 = 2;
3910pub const X509_FLAG_NO_SERIAL: i32 = 4;
3911pub const X509_FLAG_NO_SIGNAME: i32 = 8;
3912pub const X509_FLAG_NO_ISSUER: i32 = 16;
3913pub const X509_FLAG_NO_VALIDITY: i32 = 32;
3914pub const X509_FLAG_NO_SUBJECT: i32 = 64;
3915pub const X509_FLAG_NO_PUBKEY: i32 = 128;
3916pub const X509_FLAG_NO_EXTENSIONS: i32 = 256;
3917pub const X509_FLAG_NO_SIGDUMP: i32 = 512;
3918pub const X509_FLAG_NO_AUX: i32 = 1024;
3919pub const X509_FLAG_NO_ATTRIBUTES: i32 = 2048;
3920pub const X509_FLAG_NO_IDS: i32 = 4096;
3921pub const X509V3_EXT_UNKNOWN_MASK: i32 = 983040;
3922pub const X509V3_EXT_DEFAULT: i32 = 0;
3923pub const X509V3_EXT_ERROR_UNKNOWN: i32 = 65536;
3924pub const X509V3_EXT_PARSE_UNKNOWN: i32 = 131072;
3925pub const X509V3_EXT_DUMP_UNKNOWN: i32 = 196608;
3926pub const XN_FLAG_COMPAT: i32 = 0;
3927pub const XN_FLAG_SEP_MASK: i32 = 983040;
3928pub const XN_FLAG_SEP_COMMA_PLUS: i32 = 65536;
3929pub const XN_FLAG_SEP_CPLUS_SPC: i32 = 131072;
3930pub const XN_FLAG_SEP_SPLUS_SPC: i32 = 196608;
3931pub const XN_FLAG_SEP_MULTILINE: i32 = 262144;
3932pub const XN_FLAG_DN_REV: i32 = 1048576;
3933pub const XN_FLAG_FN_MASK: i32 = 6291456;
3934pub const XN_FLAG_FN_SN: i32 = 0;
3935pub const XN_FLAG_SPC_EQ: i32 = 8388608;
3936pub const XN_FLAG_DUMP_UNKNOWN_FIELDS: i32 = 16777216;
3937pub const XN_FLAG_RFC2253: i32 = 17892119;
3938pub const XN_FLAG_ONELINE: i32 = 8520479;
3939pub const X509_TRUST_TRUSTED: i32 = 1;
3940pub const X509_TRUST_REJECTED: i32 = 2;
3941pub const X509_TRUST_UNTRUSTED: i32 = 3;
3942pub const X509V3_EXT_MULTILINE: i32 = 4;
3943pub const X509V3_CTX_TEST: i32 = 1;
3944pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: i32 = 0;
3945pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: i32 = 0;
3946pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: i32 = 0;
3947pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: i32 = 0;
3948pub const NS_SSL_CLIENT: i32 = 128;
3949pub const NS_SSL_SERVER: i32 = 64;
3950pub const NS_SMIME: i32 = 32;
3951pub const NS_OBJSIGN: i32 = 16;
3952pub const NS_SSL_CA: i32 = 4;
3953pub const NS_SMIME_CA: i32 = 2;
3954pub const NS_OBJSIGN_CA: i32 = 1;
3955pub const NS_ANY_CA: i32 = 7;
3956pub const X509_R_AKID_MISMATCH: i32 = 100;
3957pub const X509_R_BAD_PKCS7_VERSION: i32 = 101;
3958pub const X509_R_BAD_X509_FILETYPE: i32 = 102;
3959pub const X509_R_BASE64_DECODE_ERROR: i32 = 103;
3960pub const X509_R_CANT_CHECK_DH_KEY: i32 = 104;
3961pub const X509_R_CERT_ALREADY_IN_HASH_TABLE: i32 = 105;
3962pub const X509_R_CRL_ALREADY_DELTA: i32 = 106;
3963pub const X509_R_CRL_VERIFY_FAILURE: i32 = 107;
3964pub const X509_R_IDP_MISMATCH: i32 = 108;
3965pub const X509_R_INVALID_BIT_STRING_BITS_LEFT: i32 = 109;
3966pub const X509_R_INVALID_DIRECTORY: i32 = 110;
3967pub const X509_R_INVALID_FIELD_NAME: i32 = 111;
3968pub const X509_R_INVALID_PSS_PARAMETERS: i32 = 112;
3969pub const X509_R_INVALID_TRUST: i32 = 113;
3970pub const X509_R_ISSUER_MISMATCH: i32 = 114;
3971pub const X509_R_KEY_TYPE_MISMATCH: i32 = 115;
3972pub const X509_R_KEY_VALUES_MISMATCH: i32 = 116;
3973pub const X509_R_LOADING_CERT_DIR: i32 = 117;
3974pub const X509_R_LOADING_DEFAULTS: i32 = 118;
3975pub const X509_R_NEWER_CRL_NOT_NEWER: i32 = 119;
3976pub const X509_R_NOT_PKCS7_SIGNED_DATA: i32 = 120;
3977pub const X509_R_NO_CERTIFICATES_INCLUDED: i32 = 121;
3978pub const X509_R_NO_CERT_SET_FOR_US_TO_VERIFY: i32 = 122;
3979pub const X509_R_NO_CRLS_INCLUDED: i32 = 123;
3980pub const X509_R_NO_CRL_NUMBER: i32 = 124;
3981pub const X509_R_PUBLIC_KEY_DECODE_ERROR: i32 = 125;
3982pub const X509_R_PUBLIC_KEY_ENCODE_ERROR: i32 = 126;
3983pub const X509_R_SHOULD_RETRY: i32 = 127;
3984pub const X509_R_UNKNOWN_KEY_TYPE: i32 = 128;
3985pub const X509_R_UNKNOWN_NID: i32 = 129;
3986pub const X509_R_UNKNOWN_PURPOSE_ID: i32 = 130;
3987pub const X509_R_UNKNOWN_TRUST_ID: i32 = 131;
3988pub const X509_R_UNSUPPORTED_ALGORITHM: i32 = 132;
3989pub const X509_R_WRONG_LOOKUP_TYPE: i32 = 133;
3990pub const X509_R_WRONG_TYPE: i32 = 134;
3991pub const X509_R_NAME_TOO_LONG: i32 = 135;
3992pub const X509_R_INVALID_PARAMETER: i32 = 136;
3993pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH: i32 = 137;
3994pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER: i32 = 138;
3995pub const X509_R_INVALID_FIELD_FOR_VERSION: i32 = 139;
3996pub const X509_R_INVALID_VERSION: i32 = 140;
3997pub const X509_R_NO_CERTIFICATE_FOUND: i32 = 141;
3998pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND: i32 = 142;
3999pub const X509_R_NO_CRL_FOUND: i32 = 143;
4000pub const X509_R_INVALID_POLICY_EXTENSION: i32 = 144;
4001pub const X509_R_INVALID_MTC_CA: i32 = 145;
4002pub const X509_R_INVALID_MTC_PROOF: i32 = 146;
4003pub const PEM_BUFSIZE: i32 = 1024;
4004pub const PEM_STRING_X509_OLD: &[u8; 17] = b"X509 CERTIFICATE\0";
4005pub const PEM_STRING_X509: &[u8; 12] = b"CERTIFICATE\0";
4006pub const PEM_STRING_X509_PAIR: &[u8; 17] = b"CERTIFICATE PAIR\0";
4007pub const PEM_STRING_X509_TRUSTED: &[u8; 20] = b"TRUSTED CERTIFICATE\0";
4008pub const PEM_STRING_X509_REQ_OLD: &[u8; 24] = b"NEW CERTIFICATE REQUEST\0";
4009pub const PEM_STRING_X509_REQ: &[u8; 20] = b"CERTIFICATE REQUEST\0";
4010pub const PEM_STRING_X509_CRL: &[u8; 9] = b"X509 CRL\0";
4011pub const PEM_STRING_PUBLIC: &[u8; 11] = b"PUBLIC KEY\0";
4012pub const PEM_STRING_RSA: &[u8; 16] = b"RSA PRIVATE KEY\0";
4013pub const PEM_STRING_RSA_PUBLIC: &[u8; 15] = b"RSA PUBLIC KEY\0";
4014pub const PEM_STRING_DSA: &[u8; 16] = b"DSA PRIVATE KEY\0";
4015pub const PEM_STRING_DSA_PUBLIC: &[u8; 15] = b"DSA PUBLIC KEY\0";
4016pub const PEM_STRING_EC: &[u8; 15] = b"EC PRIVATE KEY\0";
4017pub const PEM_STRING_PKCS7: &[u8; 6] = b"PKCS7\0";
4018pub const PEM_STRING_PKCS7_SIGNED: &[u8; 20] = b"PKCS #7 SIGNED DATA\0";
4019pub const PEM_STRING_PKCS8: &[u8; 22] = b"ENCRYPTED PRIVATE KEY\0";
4020pub const PEM_STRING_PKCS8INF: &[u8; 12] = b"PRIVATE KEY\0";
4021pub const PEM_STRING_DHPARAMS: &[u8; 14] = b"DH PARAMETERS\0";
4022pub const PEM_STRING_SSL_SESSION: &[u8; 23] = b"SSL SESSION PARAMETERS\0";
4023pub const PEM_STRING_DSAPARAMS: &[u8; 15] = b"DSA PARAMETERS\0";
4024pub const PEM_STRING_ECDSA_PUBLIC: &[u8; 17] = b"ECDSA PUBLIC KEY\0";
4025pub const PEM_STRING_ECPRIVATEKEY: &[u8; 15] = b"EC PRIVATE KEY\0";
4026pub const PEM_STRING_CMS: &[u8; 4] = b"CMS\0";
4027pub const PEM_STRING_EVP_PKEY: &[u8; 16] = b"ANY PRIVATE KEY\0";
4028pub const PEM_R_BAD_BASE64_DECODE: i32 = 100;
4029pub const PEM_R_BAD_DECRYPT: i32 = 101;
4030pub const PEM_R_BAD_END_LINE: i32 = 102;
4031pub const PEM_R_BAD_IV_CHARS: i32 = 103;
4032pub const PEM_R_BAD_PASSWORD_READ: i32 = 104;
4033pub const PEM_R_CIPHER_IS_NULL: i32 = 105;
4034pub const PEM_R_ERROR_CONVERTING_PRIVATE_KEY: i32 = 106;
4035pub const PEM_R_NOT_DEK_INFO: i32 = 107;
4036pub const PEM_R_NOT_ENCRYPTED: i32 = 108;
4037pub const PEM_R_NOT_PROC_TYPE: i32 = 109;
4038pub const PEM_R_NO_START_LINE: i32 = 110;
4039pub const PEM_R_READ_KEY: i32 = 111;
4040pub const PEM_R_SHORT_HEADER: i32 = 112;
4041pub const PEM_R_UNSUPPORTED_CIPHER: i32 = 113;
4042pub const PEM_R_UNSUPPORTED_ENCRYPTION: i32 = 114;
4043pub const PEM_R_UNSUPPORTED_PROC_TYPE_VERSION: i32 = 115;
4044pub const PEM_R_NO_DATA: i32 = 116;
4045pub const PKCS12_DEFAULT_ITER: i32 = 2048;
4046pub const PKCS8_R_BAD_PKCS12_DATA: i32 = 100;
4047pub const PKCS8_R_BAD_PKCS12_VERSION: i32 = 101;
4048pub const PKCS8_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER: i32 = 102;
4049pub const PKCS8_R_CRYPT_ERROR: i32 = 103;
4050pub const PKCS8_R_DECODE_ERROR: i32 = 104;
4051pub const PKCS8_R_ENCODE_ERROR: i32 = 105;
4052pub const PKCS8_R_ENCRYPT_ERROR: i32 = 106;
4053pub const PKCS8_R_ERROR_SETTING_CIPHER_PARAMS: i32 = 107;
4054pub const PKCS8_R_INCORRECT_PASSWORD: i32 = 108;
4055pub const PKCS8_R_KEYGEN_FAILURE: i32 = 109;
4056pub const PKCS8_R_KEY_GEN_ERROR: i32 = 110;
4057pub const PKCS8_R_METHOD_NOT_SUPPORTED: i32 = 111;
4058pub const PKCS8_R_MISSING_MAC: i32 = 112;
4059pub const PKCS8_R_MULTIPLE_PRIVATE_KEYS_IN_PKCS12: i32 = 113;
4060pub const PKCS8_R_PKCS12_PUBLIC_KEY_INTEGRITY_NOT_SUPPORTED: i32 = 114;
4061pub const PKCS8_R_PKCS12_TOO_DEEPLY_NESTED: i32 = 115;
4062pub const PKCS8_R_PRIVATE_KEY_DECODE_ERROR: i32 = 116;
4063pub const PKCS8_R_PRIVATE_KEY_ENCODE_ERROR: i32 = 117;
4064pub const PKCS8_R_TOO_LONG: i32 = 118;
4065pub const PKCS8_R_UNKNOWN_ALGORITHM: i32 = 119;
4066pub const PKCS8_R_UNKNOWN_CIPHER: i32 = 120;
4067pub const PKCS8_R_UNKNOWN_CIPHER_ALGORITHM: i32 = 121;
4068pub const PKCS8_R_UNKNOWN_DIGEST: i32 = 122;
4069pub const PKCS8_R_UNKNOWN_HASH: i32 = 123;
4070pub const PKCS8_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM: i32 = 124;
4071pub const PKCS8_R_UNSUPPORTED_KEYLENGTH: i32 = 125;
4072pub const PKCS8_R_UNSUPPORTED_SALT_TYPE: i32 = 126;
4073pub const PKCS8_R_UNSUPPORTED_CIPHER: i32 = 127;
4074pub const PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION: i32 = 128;
4075pub const PKCS8_R_BAD_ITERATION_COUNT: i32 = 129;
4076pub const PKCS8_R_UNSUPPORTED_PRF: i32 = 130;
4077pub const PKCS8_R_INVALID_CHARACTERS: i32 = 131;
4078pub const PKCS8_R_UNSUPPORTED_OPTIONS: i32 = 132;
4079pub const PKCS8_R_AMBIGUOUS_FRIENDLY_NAME: i32 = 133;
4080pub const RIPEMD160_CBLOCK: i32 = 64;
4081pub const RIPEMD160_LBLOCK: i32 = 16;
4082pub const RIPEMD160_DIGEST_LENGTH: i32 = 20;
4083pub const SLHDSA_SHA2_128S_SEED_BYTES: i32 = 48;
4084pub const SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES: i32 = 32;
4085pub const SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES: i32 = 64;
4086pub const SLHDSA_SHA2_128S_SIGNATURE_BYTES: i32 = 7856;
4087pub const SLHDSA_SHAKE_256F_SEED_BYTES: i32 = 96;
4088pub const SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES: i32 = 64;
4089pub const SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES: i32 = 128;
4090pub const SLHDSA_SHAKE_256F_SIGNATURE_BYTES: i32 = 49856;
4091pub const SSL2_MT_CLIENT_HELLO: i32 = 1;
4092pub const SSL2_VERSION: i32 = 2;
4093pub const SSL3_CK_RSA_DES_192_CBC3_SHA: i32 = 50331658;
4094pub const SSL3_CK_SCSV: i32 = 50331903;
4095pub const SSL3_CK_FALLBACK_SCSV: i32 = 50353664;
4096pub const SSL3_TXT_RSA_DES_192_CBC3_SHA: &[u8; 13] = b"DES-CBC3-SHA\0";
4097pub const SSL3_SSL_SESSION_ID_LENGTH: i32 = 32;
4098pub const SSL3_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4099pub const SSL3_MASTER_SECRET_SIZE: i32 = 48;
4100pub const SSL3_RANDOM_SIZE: i32 = 32;
4101pub const SSL3_SESSION_ID_SIZE: i32 = 32;
4102pub const SSL3_RT_HEADER_LENGTH: i32 = 5;
4103pub const SSL3_HM_HEADER_LENGTH: i32 = 4;
4104pub const SSL3_ALIGN_PAYLOAD: i32 = 8;
4105pub const SSL3_RT_MAX_MD_SIZE: i32 = 64;
4106pub const SSL_RT_MAX_CIPHER_BLOCK_SIZE: i32 = 16;
4107pub const SSL3_RT_MAX_PLAIN_LENGTH: i32 = 16384;
4108pub const SSL3_RT_MAX_COMPRESSED_OVERHEAD: i32 = 1024;
4109pub const SSL3_RT_MAX_ENCRYPTED_OVERHEAD: i32 = 320;
4110pub const SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD: i32 = 88;
4111pub const SSL3_RT_MAX_COMPRESSED_LENGTH: i32 = 16384;
4112pub const SSL3_RT_MAX_ENCRYPTED_LENGTH: i32 = 16704;
4113pub const SSL3_RT_MAX_PACKET_SIZE: i32 = 16709;
4114pub const SSL3_RT_CHANGE_CIPHER_SPEC: i32 = 20;
4115pub const SSL3_RT_ALERT: i32 = 21;
4116pub const SSL3_RT_HANDSHAKE: i32 = 22;
4117pub const SSL3_RT_APPLICATION_DATA: i32 = 23;
4118pub const SSL3_RT_ACK: i32 = 26;
4119pub const SSL3_RT_HEADER: i32 = 256;
4120pub const SSL3_RT_CLIENT_HELLO_INNER: i32 = 257;
4121pub const SSL3_AL_WARNING: i32 = 1;
4122pub const SSL3_AL_FATAL: i32 = 2;
4123pub const SSL3_AD_CLOSE_NOTIFY: i32 = 0;
4124pub const SSL3_AD_UNEXPECTED_MESSAGE: i32 = 10;
4125pub const SSL3_AD_BAD_RECORD_MAC: i32 = 20;
4126pub const SSL3_AD_DECOMPRESSION_FAILURE: i32 = 30;
4127pub const SSL3_AD_HANDSHAKE_FAILURE: i32 = 40;
4128pub const SSL3_AD_NO_CERTIFICATE: i32 = 41;
4129pub const SSL3_AD_BAD_CERTIFICATE: i32 = 42;
4130pub const SSL3_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4131pub const SSL3_AD_CERTIFICATE_REVOKED: i32 = 44;
4132pub const SSL3_AD_CERTIFICATE_EXPIRED: i32 = 45;
4133pub const SSL3_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4134pub const SSL3_AD_ILLEGAL_PARAMETER: i32 = 47;
4135pub const SSL3_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4136pub const SSL3_CT_RSA_SIGN: i32 = 1;
4137pub const SSL3_MT_HELLO_REQUEST: i32 = 0;
4138pub const SSL3_MT_CLIENT_HELLO: i32 = 1;
4139pub const SSL3_MT_SERVER_HELLO: i32 = 2;
4140pub const SSL3_MT_NEW_SESSION_TICKET: i32 = 4;
4141pub const SSL3_MT_END_OF_EARLY_DATA: i32 = 5;
4142pub const SSL3_MT_ENCRYPTED_EXTENSIONS: i32 = 8;
4143pub const SSL3_MT_CERTIFICATE: i32 = 11;
4144pub const SSL3_MT_SERVER_KEY_EXCHANGE: i32 = 12;
4145pub const SSL3_MT_CERTIFICATE_REQUEST: i32 = 13;
4146pub const SSL3_MT_SERVER_HELLO_DONE: i32 = 14;
4147pub const SSL3_MT_CERTIFICATE_VERIFY: i32 = 15;
4148pub const SSL3_MT_CLIENT_KEY_EXCHANGE: i32 = 16;
4149pub const SSL3_MT_FINISHED: i32 = 20;
4150pub const SSL3_MT_CERTIFICATE_STATUS: i32 = 22;
4151pub const SSL3_MT_SUPPLEMENTAL_DATA: i32 = 23;
4152pub const SSL3_MT_KEY_UPDATE: i32 = 24;
4153pub const SSL3_MT_COMPRESSED_CERTIFICATE: i32 = 25;
4154pub const SSL3_MT_NEXT_PROTO: i32 = 67;
4155pub const SSL3_MT_CHANNEL_ID: i32 = 203;
4156pub const SSL3_MT_MESSAGE_HASH: i32 = 254;
4157pub const DTLS1_MT_HELLO_VERIFY_REQUEST: i32 = 3;
4158pub const SSL3_MT_SERVER_DONE: i32 = 14;
4159pub const SSL3_MT_NEWSESSION_TICKET: i32 = 4;
4160pub const SSL3_MT_CCS: i32 = 1;
4161pub const TLS1_AD_END_OF_EARLY_DATA: i32 = 1;
4162pub const TLS1_AD_DECRYPTION_FAILED: i32 = 21;
4163pub const TLS1_AD_RECORD_OVERFLOW: i32 = 22;
4164pub const TLS1_AD_UNKNOWN_CA: i32 = 48;
4165pub const TLS1_AD_ACCESS_DENIED: i32 = 49;
4166pub const TLS1_AD_DECODE_ERROR: i32 = 50;
4167pub const TLS1_AD_DECRYPT_ERROR: i32 = 51;
4168pub const TLS1_AD_EXPORT_RESTRICTION: i32 = 60;
4169pub const TLS1_AD_PROTOCOL_VERSION: i32 = 70;
4170pub const TLS1_AD_INSUFFICIENT_SECURITY: i32 = 71;
4171pub const TLS1_AD_INTERNAL_ERROR: i32 = 80;
4172pub const TLS1_AD_USER_CANCELLED: i32 = 90;
4173pub const TLS1_AD_NO_RENEGOTIATION: i32 = 100;
4174pub const TLS1_AD_MISSING_EXTENSION: i32 = 109;
4175pub const TLS1_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4176pub const TLS1_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4177pub const TLS1_AD_UNRECOGNIZED_NAME: i32 = 112;
4178pub const TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4179pub const TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4180pub const TLS1_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4181pub const TLS1_AD_CERTIFICATE_REQUIRED: i32 = 116;
4182pub const TLS1_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4183pub const TLS1_AD_ECH_REQUIRED: i32 = 121;
4184pub const TLSEXT_TYPE_server_name: i32 = 0;
4185pub const TLSEXT_TYPE_status_request: i32 = 5;
4186pub const TLSEXT_TYPE_ec_point_formats: i32 = 11;
4187pub const TLSEXT_TYPE_signature_algorithms: i32 = 13;
4188pub const TLSEXT_TYPE_srtp: i32 = 14;
4189pub const TLSEXT_TYPE_application_layer_protocol_negotiation: i32 = 16;
4190pub const TLSEXT_TYPE_client_cert_type: i32 = 19;
4191pub const TLSEXT_TYPE_server_cert_type: i32 = 20;
4192pub const TLSEXT_TYPE_padding: i32 = 21;
4193pub const TLSEXT_TYPE_extended_master_secret: i32 = 23;
4194pub const TLSEXT_TYPE_quic_transport_parameters_legacy: i32 = 65445;
4195pub const TLSEXT_TYPE_quic_transport_parameters: i32 = 57;
4196pub const TLSEXT_TYPE_quic_transport_parameters_standard: i32 = 57;
4197pub const TLSEXT_TYPE_cert_compression: i32 = 27;
4198pub const TLSEXT_TYPE_session_ticket: i32 = 35;
4199pub const TLSEXT_TYPE_supported_groups: i32 = 10;
4200pub const TLSEXT_TYPE_pre_shared_key: i32 = 41;
4201pub const TLSEXT_TYPE_early_data: i32 = 42;
4202pub const TLSEXT_TYPE_supported_versions: i32 = 43;
4203pub const TLSEXT_TYPE_cookie: i32 = 44;
4204pub const TLSEXT_TYPE_psk_key_exchange_modes: i32 = 45;
4205pub const TLSEXT_TYPE_certificate_authorities: i32 = 47;
4206pub const TLSEXT_TYPE_signature_algorithms_cert: i32 = 50;
4207pub const TLSEXT_TYPE_key_share: i32 = 51;
4208pub const TLSEXT_TYPE_renegotiate: i32 = 65281;
4209pub const TLSEXT_TYPE_delegated_credential: i32 = 34;
4210pub const TLSEXT_TYPE_application_settings_old: i32 = 17513;
4211pub const TLSEXT_TYPE_application_settings: i32 = 17613;
4212pub const TLSEXT_TYPE_encrypted_client_hello: i32 = 65037;
4213pub const TLSEXT_TYPE_ech_outer_extensions: i32 = 64768;
4214pub const TLSEXT_TYPE_pake: i32 = 35387;
4215pub const TLSEXT_TYPE_certificate_timestamp: i32 = 18;
4216pub const TLSEXT_TYPE_next_proto_neg: i32 = 13172;
4217pub const TLSEXT_TYPE_channel_id: i32 = 30032;
4218pub const TLSEXT_TYPE_trust_anchors: i32 = 51764;
4219pub const TLSEXT_TYPE_server_padding: i32 = 4832;
4220pub const TLSEXT_TYPE_tls_flags: i32 = 62;
4221pub const TLSEXT_STATUSTYPE_nothing: i32 = -1;
4222pub const TLSEXT_STATUSTYPE_ocsp: i32 = 1;
4223pub const TLSEXT_ECPOINTFORMAT_uncompressed: i32 = 0;
4224pub const TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime: i32 = 1;
4225pub const TLSEXT_signature_anonymous: i32 = 0;
4226pub const TLSEXT_signature_rsa: i32 = 1;
4227pub const TLSEXT_signature_dsa: i32 = 2;
4228pub const TLSEXT_signature_ecdsa: i32 = 3;
4229pub const TLSEXT_hash_none: i32 = 0;
4230pub const TLSEXT_hash_md5: i32 = 1;
4231pub const TLSEXT_hash_sha1: i32 = 2;
4232pub const TLSEXT_hash_sha224: i32 = 3;
4233pub const TLSEXT_hash_sha256: i32 = 4;
4234pub const TLSEXT_hash_sha384: i32 = 5;
4235pub const TLSEXT_hash_sha512: i32 = 6;
4236pub const TLSEXT_cert_compression_zlib: i32 = 1;
4237pub const TLSEXT_cert_compression_brotli: i32 = 2;
4238pub const TLSEXT_MAXLEN_host_name: i32 = 255;
4239pub const TLS1_CK_PSK_WITH_AES_128_CBC_SHA: i32 = 50331788;
4240pub const TLS1_CK_PSK_WITH_AES_256_CBC_SHA: i32 = 50331789;
4241pub const TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 50380853;
4242pub const TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 50380854;
4243pub const TLS1_CK_RSA_WITH_AES_128_SHA: i32 = 50331695;
4244pub const TLS1_CK_RSA_WITH_AES_256_SHA: i32 = 50331701;
4245pub const TLS1_CK_RSA_WITH_AES_128_GCM_SHA256: i32 = 50331804;
4246pub const TLS1_CK_RSA_WITH_AES_256_GCM_SHA384: i32 = 50331805;
4247pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 50380809;
4248pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 50380810;
4249pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 50380819;
4250pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 50380820;
4251pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 50380835;
4252pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 50380839;
4253pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 50380843;
4254pub const TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 50380844;
4255pub const TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 50380847;
4256pub const TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 50380848;
4257pub const TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384040;
4258pub const TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384041;
4259pub const TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 50384044;
4260pub const TLS1_3_CK_AES_128_GCM_SHA256: i32 = 50336513;
4261pub const TLS1_3_CK_AES_256_GCM_SHA384: i32 = 50336514;
4262pub const TLS1_3_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4263pub const TLS1_CK_AES_128_GCM_SHA256: i32 = 50336513;
4264pub const TLS1_CK_AES_256_GCM_SHA384: i32 = 50336514;
4265pub const TLS1_CK_CHACHA20_POLY1305_SHA256: i32 = 50336515;
4266pub const TLS1_TXT_PSK_WITH_AES_128_CBC_SHA: &[u8; 19] = b"PSK-AES128-CBC-SHA\0";
4267pub const TLS1_TXT_PSK_WITH_AES_256_CBC_SHA: &[u8; 19] = b"PSK-AES256-CBC-SHA\0";
4268pub const TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES128-CBC-SHA\0";
4269pub const TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA: &[u8; 25] = b"ECDHE-PSK-AES256-CBC-SHA\0";
4270pub const TLS1_TXT_RSA_WITH_AES_128_SHA: &[u8; 11] = b"AES128-SHA\0";
4271pub const TLS1_TXT_RSA_WITH_AES_256_SHA: &[u8; 11] = b"AES256-SHA\0";
4272pub const TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256: &[u8; 18] = b"AES128-GCM-SHA256\0";
4273pub const TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384: &[u8; 18] = b"AES256-GCM-SHA384\0";
4274pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES128-SHA\0";
4275pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: &[u8; 23] = b"ECDHE-ECDSA-AES256-SHA\0";
4276pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES128-SHA\0";
4277pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA: &[u8; 21] = b"ECDHE-RSA-AES256-SHA\0";
4278pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: &[u8; 26] = b"ECDHE-ECDSA-AES128-SHA256\0";
4279pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA256: &[u8; 24] = b"ECDHE-RSA-AES128-SHA256\0";
4280pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: &[u8; 30] =
4281    b"ECDHE-ECDSA-AES128-GCM-SHA256\0";
4282pub const TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: &[u8; 30] =
4283    b"ECDHE-ECDSA-AES256-GCM-SHA384\0";
4284pub const TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256: &[u8; 28] = b"ECDHE-RSA-AES128-GCM-SHA256\0";
4285pub const TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384: &[u8; 28] = b"ECDHE-RSA-AES256-GCM-SHA384\0";
4286pub const TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4287    b"ECDHE-RSA-CHACHA20-POLY1305\0";
4288pub const TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: &[u8; 30] =
4289    b"ECDHE-ECDSA-CHACHA20-POLY1305\0";
4290pub const TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: &[u8; 28] =
4291    b"ECDHE-PSK-CHACHA20-POLY1305\0";
4292pub const TLS1_3_RFC_AES_128_GCM_SHA256: &[u8; 23] = b"TLS_AES_128_GCM_SHA256\0";
4293pub const TLS1_3_RFC_AES_256_GCM_SHA384: &[u8; 23] = b"TLS_AES_256_GCM_SHA384\0";
4294pub const TLS1_3_RFC_CHACHA20_POLY1305_SHA256: &[u8; 29] = b"TLS_CHACHA20_POLY1305_SHA256\0";
4295pub const TLS_CT_RSA_SIGN: i32 = 1;
4296pub const TLS_CT_DSS_SIGN: i32 = 2;
4297pub const TLS_CT_RSA_FIXED_DH: i32 = 3;
4298pub const TLS_CT_DSS_FIXED_DH: i32 = 4;
4299pub const TLS_CT_ECDSA_SIGN: i32 = 64;
4300pub const TLS_CT_RSA_FIXED_ECDH: i32 = 65;
4301pub const TLS_CT_ECDSA_FIXED_ECDH: i32 = 66;
4302pub const SSL_KEY_UPDATE_REQUESTED: i32 = 1;
4303pub const SSL_KEY_UPDATE_NOT_REQUESTED: i32 = 0;
4304pub const SSL_ERROR_NONE: i32 = 0;
4305pub const SSL_ERROR_SSL: i32 = 1;
4306pub const SSL_ERROR_WANT_READ: i32 = 2;
4307pub const SSL_ERROR_WANT_WRITE: i32 = 3;
4308pub const SSL_ERROR_WANT_X509_LOOKUP: i32 = 4;
4309pub const SSL_ERROR_SYSCALL: i32 = 5;
4310pub const SSL_ERROR_ZERO_RETURN: i32 = 6;
4311pub const SSL_ERROR_WANT_CONNECT: i32 = 7;
4312pub const SSL_ERROR_WANT_ACCEPT: i32 = 8;
4313pub const SSL_ERROR_WANT_CHANNEL_ID_LOOKUP: i32 = 9;
4314pub const SSL_ERROR_PENDING_SESSION: i32 = 11;
4315pub const SSL_ERROR_PENDING_CERTIFICATE: i32 = 12;
4316pub const SSL_ERROR_WANT_PRIVATE_KEY_OPERATION: i32 = 13;
4317pub const SSL_ERROR_PENDING_TICKET: i32 = 14;
4318pub const SSL_ERROR_EARLY_DATA_REJECTED: i32 = 15;
4319pub const SSL_ERROR_WANT_CERTIFICATE_VERIFY: i32 = 16;
4320pub const SSL_ERROR_HANDOFF: i32 = 17;
4321pub const SSL_ERROR_HANDBACK: i32 = 18;
4322pub const SSL_ERROR_WANT_RENEGOTIATE: i32 = 19;
4323pub const SSL_ERROR_HANDSHAKE_HINTS_READY: i32 = 20;
4324pub const DTLS1_VERSION_MAJOR: i32 = 254;
4325pub const SSL3_VERSION_MAJOR: i32 = 3;
4326pub const SSL3_VERSION: i32 = 768;
4327pub const TLS1_VERSION: i32 = 769;
4328pub const TLS1_1_VERSION: i32 = 770;
4329pub const TLS1_2_VERSION: i32 = 771;
4330pub const TLS1_3_VERSION: i32 = 772;
4331pub const DTLS1_VERSION: i32 = 65279;
4332pub const DTLS1_2_VERSION: i32 = 65277;
4333pub const DTLS1_3_VERSION: i32 = 65276;
4334pub const SSL_OP_LEGACY_SERVER_CONNECT: i32 = 4;
4335pub const SSL_OP_NO_QUERY_MTU: i32 = 4096;
4336pub const SSL_OP_NO_TICKET: i32 = 16384;
4337pub const SSL_OP_CIPHER_SERVER_PREFERENCE: i32 = 4194304;
4338pub const SSL_OP_ALL: i32 = 4;
4339pub const SSL_OP_NO_TLSv1: i32 = 67108864;
4340pub const SSL_OP_NO_TLSv1_2: i32 = 134217728;
4341pub const SSL_OP_NO_TLSv1_1: i32 = 268435456;
4342pub const SSL_OP_NO_TLSv1_3: i32 = 536870912;
4343pub const SSL_OP_NO_DTLSv1: i32 = 67108864;
4344pub const SSL_OP_NO_DTLSv1_2: i32 = 134217728;
4345pub const SSL_MODE_ENABLE_PARTIAL_WRITE: i32 = 1;
4346pub const SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER: i32 = 2;
4347pub const SSL_MODE_NO_AUTO_CHAIN: i32 = 8;
4348pub const SSL_MODE_ENABLE_FALSE_START: i32 = 128;
4349pub const SSL_MODE_CBC_RECORD_SPLITTING: i32 = 256;
4350pub const SSL_MODE_NO_SESSION_CREATION: i32 = 512;
4351pub const SSL_MODE_SEND_FALLBACK_SCSV: i32 = 1024;
4352pub const SSL_SIGN_RSA_PKCS1_SHA1: i32 = 513;
4353pub const SSL_SIGN_RSA_PKCS1_SHA256: i32 = 1025;
4354pub const SSL_SIGN_RSA_PKCS1_SHA384: i32 = 1281;
4355pub const SSL_SIGN_RSA_PKCS1_SHA512: i32 = 1537;
4356pub const SSL_SIGN_ECDSA_SHA1: i32 = 515;
4357pub const SSL_SIGN_ECDSA_SECP256R1_SHA256: i32 = 1027;
4358pub const SSL_SIGN_ECDSA_SECP384R1_SHA384: i32 = 1283;
4359pub const SSL_SIGN_ECDSA_SECP521R1_SHA512: i32 = 1539;
4360pub const SSL_SIGN_RSA_PSS_RSAE_SHA256: i32 = 2052;
4361pub const SSL_SIGN_RSA_PSS_RSAE_SHA384: i32 = 2053;
4362pub const SSL_SIGN_RSA_PSS_RSAE_SHA512: i32 = 2054;
4363pub const SSL_SIGN_ED25519: i32 = 2055;
4364pub const SSL_SIGN_ML_DSA_44: i32 = 2308;
4365pub const SSL_SIGN_ML_DSA_65: i32 = 2309;
4366pub const SSL_SIGN_ML_DSA_87: i32 = 2310;
4367pub const SSL_SIGN_RSA_PKCS1_SHA256_LEGACY: i32 = 1056;
4368pub const SSL_SIGN_RSA_PKCS1_MD5_SHA1: i32 = 65281;
4369pub const SSL_FILETYPE_PEM: i32 = 1;
4370pub const SSL_FILETYPE_ASN1: i32 = 2;
4371pub const SSL_CIPHER_AES_128_GCM_SHA256: i32 = 4865;
4372pub const SSL_CIPHER_AES_256_GCM_SHA384: i32 = 4866;
4373pub const SSL_CIPHER_CHACHA20_POLY1305_SHA256: i32 = 4867;
4374pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: i32 = 49195;
4375pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: i32 = 49196;
4376pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_GCM_SHA256: i32 = 49199;
4377pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_GCM_SHA384: i32 = 49200;
4378pub const SSL_CIPHER_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52392;
4379pub const SSL_CIPHER_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: i32 = 52393;
4380pub const SSL_CIPHER_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: i32 = 52396;
4381pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: i32 = 49161;
4382pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: i32 = 49162;
4383pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA: i32 = 49171;
4384pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA: i32 = 49172;
4385pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_128_CBC_SHA: i32 = 49205;
4386pub const SSL_CIPHER_ECDHE_PSK_WITH_AES_256_CBC_SHA: i32 = 49206;
4387pub const SSL_CIPHER_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: i32 = 49187;
4388pub const SSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA256: i32 = 49191;
4389pub const SSL_CIPHER_RSA_WITH_AES_128_GCM_SHA256: i32 = 156;
4390pub const SSL_CIPHER_RSA_WITH_AES_256_GCM_SHA384: i32 = 157;
4391pub const SSL_CIPHER_RSA_WITH_AES_128_CBC_SHA: i32 = 47;
4392pub const SSL_CIPHER_RSA_WITH_AES_256_CBC_SHA: i32 = 53;
4393pub const SSL_CIPHER_PSK_WITH_AES_128_CBC_SHA: i32 = 140;
4394pub const SSL_CIPHER_PSK_WITH_AES_256_CBC_SHA: i32 = 141;
4395pub const SSL_CIPHER_RSA_WITH_3DES_EDE_CBC_SHA: i32 = 10;
4396pub const SSL_CIPHER_EMPTY_RENEGOTIATION_INFO_SCSV: i32 = 255;
4397pub const SSL_CIPHER_FALLBACK_SCSV: i32 = 22016;
4398pub const SSL_DEFAULT_CIPHER_LIST: &[u8; 4] = b"ALL\0";
4399pub const SSL_CIPHER_FLAG_EQUAL_PREFERENCE_WITH_NEXT: i32 = 1;
4400pub const SSL_MAX_SSL_SESSION_ID_LENGTH: i32 = 32;
4401pub const SSL_MAX_MASTER_KEY_LENGTH: i32 = 48;
4402pub const SSL_SESS_CACHE_OFF: i32 = 0;
4403pub const SSL_SESS_CACHE_CLIENT: i32 = 1;
4404pub const SSL_SESS_CACHE_SERVER: i32 = 2;
4405pub const SSL_SESS_CACHE_BOTH: i32 = 3;
4406pub const SSL_SESS_CACHE_NO_AUTO_CLEAR: i32 = 128;
4407pub const SSL_SESS_CACHE_NO_INTERNAL_LOOKUP: i32 = 256;
4408pub const SSL_SESS_CACHE_NO_INTERNAL_STORE: i32 = 512;
4409pub const SSL_SESS_CACHE_NO_INTERNAL: i32 = 768;
4410pub const SSL_DEFAULT_SESSION_TIMEOUT: i32 = 7200;
4411pub const SSL_DEFAULT_SESSION_PSK_DHE_TIMEOUT: i32 = 172800;
4412pub const SSL_DEFAULT_SESSION_AUTH_TIMEOUT: i32 = 604800;
4413pub const SSL_MAX_SID_CTX_LENGTH: i32 = 32;
4414pub const SSL_SESSION_CACHE_MAX_SIZE_DEFAULT: i32 = 20480;
4415pub const SSL_DEFAULT_TICKET_KEY_ROTATION_INTERVAL: i32 = 172800;
4416pub const SSL_TICKET_KEY_NAME_LEN: i32 = 16;
4417pub const SSL_GROUP_SECP256R1: i32 = 23;
4418pub const SSL_GROUP_SECP384R1: i32 = 24;
4419pub const SSL_GROUP_SECP521R1: i32 = 25;
4420pub const SSL_GROUP_X25519: i32 = 29;
4421pub const SSL_GROUP_X25519_MLKEM768: i32 = 4588;
4422pub const SSL_GROUP_MLKEM1024: i32 = 514;
4423pub const SSL_GROUP_FLAG_EQUAL_PREFERENCE_WITH_NEXT: i32 = 1;
4424pub const SSL_VERIFY_NONE: i32 = 0;
4425pub const SSL_VERIFY_PEER: i32 = 1;
4426pub const SSL_VERIFY_FAIL_IF_NO_PEER_CERT: i32 = 2;
4427pub const TLSEXT_NAMETYPE_host_name: i32 = 0;
4428pub const SSL_TLSEXT_ERR_OK: i32 = 0;
4429pub const SSL_TLSEXT_ERR_ALERT_WARNING: i32 = 1;
4430pub const SSL_TLSEXT_ERR_ALERT_FATAL: i32 = 2;
4431pub const SSL_TLSEXT_ERR_NOACK: i32 = 3;
4432pub const OPENSSL_NPN_UNSUPPORTED: i32 = 0;
4433pub const OPENSSL_NPN_NEGOTIATED: i32 = 1;
4434pub const OPENSSL_NPN_NO_OVERLAP: i32 = 2;
4435pub const SRTP_AES128_CM_SHA1_80: i32 = 1;
4436pub const SRTP_AES128_CM_SHA1_32: i32 = 2;
4437pub const SRTP_AES128_F8_SHA1_80: i32 = 3;
4438pub const SRTP_AES128_F8_SHA1_32: i32 = 4;
4439pub const SRTP_NULL_SHA1_80: i32 = 5;
4440pub const SRTP_NULL_SHA1_32: i32 = 6;
4441pub const SRTP_AEAD_AES_128_GCM: i32 = 7;
4442pub const SRTP_AEAD_AES_256_GCM: i32 = 8;
4443pub const PSK_MAX_IDENTITY_LEN: i32 = 128;
4444pub const PSK_MAX_PSK_LEN: i32 = 256;
4445pub const TLSEXT_cert_type_x509: i32 = 0;
4446pub const TLSEXT_cert_type_rpk: i32 = 2;
4447pub const SSL_PAKE_SPAKE2PLUSV1: i32 = 32150;
4448pub const SSL_AD_REASON_OFFSET: i32 = 1000;
4449pub const SSL_AD_CLOSE_NOTIFY: i32 = 0;
4450pub const SSL_AD_UNEXPECTED_MESSAGE: i32 = 10;
4451pub const SSL_AD_BAD_RECORD_MAC: i32 = 20;
4452pub const SSL_AD_DECRYPTION_FAILED: i32 = 21;
4453pub const SSL_AD_RECORD_OVERFLOW: i32 = 22;
4454pub const SSL_AD_DECOMPRESSION_FAILURE: i32 = 30;
4455pub const SSL_AD_HANDSHAKE_FAILURE: i32 = 40;
4456pub const SSL_AD_NO_CERTIFICATE: i32 = 41;
4457pub const SSL_AD_BAD_CERTIFICATE: i32 = 42;
4458pub const SSL_AD_UNSUPPORTED_CERTIFICATE: i32 = 43;
4459pub const SSL_AD_CERTIFICATE_REVOKED: i32 = 44;
4460pub const SSL_AD_CERTIFICATE_EXPIRED: i32 = 45;
4461pub const SSL_AD_CERTIFICATE_UNKNOWN: i32 = 46;
4462pub const SSL_AD_ILLEGAL_PARAMETER: i32 = 47;
4463pub const SSL_AD_UNKNOWN_CA: i32 = 48;
4464pub const SSL_AD_ACCESS_DENIED: i32 = 49;
4465pub const SSL_AD_DECODE_ERROR: i32 = 50;
4466pub const SSL_AD_DECRYPT_ERROR: i32 = 51;
4467pub const SSL_AD_EXPORT_RESTRICTION: i32 = 60;
4468pub const SSL_AD_PROTOCOL_VERSION: i32 = 70;
4469pub const SSL_AD_INSUFFICIENT_SECURITY: i32 = 71;
4470pub const SSL_AD_INTERNAL_ERROR: i32 = 80;
4471pub const SSL_AD_INAPPROPRIATE_FALLBACK: i32 = 86;
4472pub const SSL_AD_USER_CANCELLED: i32 = 90;
4473pub const SSL_AD_NO_RENEGOTIATION: i32 = 100;
4474pub const SSL_AD_MISSING_EXTENSION: i32 = 109;
4475pub const SSL_AD_UNSUPPORTED_EXTENSION: i32 = 110;
4476pub const SSL_AD_CERTIFICATE_UNOBTAINABLE: i32 = 111;
4477pub const SSL_AD_UNRECOGNIZED_NAME: i32 = 112;
4478pub const SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 113;
4479pub const SSL_AD_BAD_CERTIFICATE_HASH_VALUE: i32 = 114;
4480pub const SSL_AD_UNKNOWN_PSK_IDENTITY: i32 = 115;
4481pub const SSL_AD_CERTIFICATE_REQUIRED: i32 = 116;
4482pub const SSL_AD_NO_APPLICATION_PROTOCOL: i32 = 120;
4483pub const SSL_AD_ECH_REQUIRED: i32 = 121;
4484pub const SSL_MAX_CERT_LIST_DEFAULT: i32 = 102400;
4485pub const SSL_ST_CONNECT: i32 = 4096;
4486pub const SSL_ST_ACCEPT: i32 = 8192;
4487pub const SSL_ST_MASK: i32 = 4095;
4488pub const SSL_ST_INIT: i32 = 12288;
4489pub const SSL_ST_OK: i32 = 3;
4490pub const SSL_ST_RENEGOTIATE: i32 = 12292;
4491pub const SSL_ST_BEFORE: i32 = 12293;
4492pub const TLS_ST_OK: i32 = 3;
4493pub const TLS_ST_BEFORE: i32 = 12293;
4494pub const SSL_CB_LOOP: i32 = 1;
4495pub const SSL_CB_EXIT: i32 = 2;
4496pub const SSL_CB_READ: i32 = 4;
4497pub const SSL_CB_WRITE: i32 = 8;
4498pub const SSL_CB_ALERT: i32 = 16384;
4499pub const SSL_CB_READ_ALERT: i32 = 16388;
4500pub const SSL_CB_WRITE_ALERT: i32 = 16392;
4501pub const SSL_CB_ACCEPT_LOOP: i32 = 8193;
4502pub const SSL_CB_ACCEPT_EXIT: i32 = 8194;
4503pub const SSL_CB_CONNECT_LOOP: i32 = 4097;
4504pub const SSL_CB_CONNECT_EXIT: i32 = 4098;
4505pub const SSL_CB_HANDSHAKE_START: i32 = 16;
4506pub const SSL_CB_HANDSHAKE_DONE: i32 = 32;
4507pub const SSL_SENT_SHUTDOWN: i32 = 1;
4508pub const SSL_RECEIVED_SHUTDOWN: i32 = 2;
4509pub const SSL_MODE_HANDSHAKE_CUTTHROUGH: i32 = 128;
4510pub const SSL_MODE_AUTO_RETRY: i32 = 0;
4511pub const SSL_MODE_RELEASE_BUFFERS: i32 = 0;
4512pub const SSL_MODE_SEND_CLIENTHELLO_TIME: i32 = 0;
4513pub const SSL_MODE_SEND_SERVERHELLO_TIME: i32 = 0;
4514pub const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: i32 = 0;
4515pub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: i32 = 0;
4516pub const SSL_OP_EPHEMERAL_RSA: i32 = 0;
4517pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: i32 = 0;
4518pub const SSL_OP_MICROSOFT_SESS_ID_BUG: i32 = 0;
4519pub const SSL_OP_MSIE_SSLV2_RSA_PADDING: i32 = 0;
4520pub const SSL_OP_NETSCAPE_CA_DN_BUG: i32 = 0;
4521pub const SSL_OP_NETSCAPE_CHALLENGE_BUG: i32 = 0;
4522pub const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: i32 = 0;
4523pub const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: i32 = 0;
4524pub const SSL_OP_NO_COMPRESSION: i32 = 0;
4525pub const SSL_OP_NO_RENEGOTIATION: i32 = 0;
4526pub const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: i32 = 0;
4527pub const SSL_OP_NO_SSLv2: i32 = 0;
4528pub const SSL_OP_NO_SSLv3: i32 = 0;
4529pub const SSL_OP_PKCS1_CHECK_1: i32 = 0;
4530pub const SSL_OP_PKCS1_CHECK_2: i32 = 0;
4531pub const SSL_OP_SINGLE_DH_USE: i32 = 0;
4532pub const SSL_OP_SINGLE_ECDH_USE: i32 = 0;
4533pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: i32 = 0;
4534pub const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: i32 = 0;
4535pub const SSL_OP_TLS_BLOCK_PADDING_BUG: i32 = 0;
4536pub const SSL_OP_TLS_D5_BUG: i32 = 0;
4537pub const SSL_OP_TLS_ROLLBACK_BUG: i32 = 0;
4538pub const SSL_VERIFY_CLIENT_ONCE: i32 = 0;
4539pub const SSL_NOTHING: i32 = 0;
4540pub const SSL_WRITING: i32 = 3;
4541pub const SSL_READING: i32 = 2;
4542pub const SSL_TXT_MEDIUM: &[u8; 7] = b"MEDIUM\0";
4543pub const SSL_TXT_HIGH: &[u8; 5] = b"HIGH\0";
4544pub const SSL_TXT_FIPS: &[u8; 5] = b"FIPS\0";
4545pub const SSL_TXT_kRSA: &[u8; 5] = b"kRSA\0";
4546pub const SSL_TXT_kDHE: &[u8; 5] = b"kDHE\0";
4547pub const SSL_TXT_kEDH: &[u8; 5] = b"kEDH\0";
4548pub const SSL_TXT_kECDHE: &[u8; 7] = b"kECDHE\0";
4549pub const SSL_TXT_kEECDH: &[u8; 7] = b"kEECDH\0";
4550pub const SSL_TXT_kPSK: &[u8; 5] = b"kPSK\0";
4551pub const SSL_TXT_aRSA: &[u8; 5] = b"aRSA\0";
4552pub const SSL_TXT_aECDSA: &[u8; 7] = b"aECDSA\0";
4553pub const SSL_TXT_aPSK: &[u8; 5] = b"aPSK\0";
4554pub const SSL_TXT_DH: &[u8; 3] = b"DH\0";
4555pub const SSL_TXT_DHE: &[u8; 4] = b"DHE\0";
4556pub const SSL_TXT_EDH: &[u8; 4] = b"EDH\0";
4557pub const SSL_TXT_RSA: &[u8; 4] = b"RSA\0";
4558pub const SSL_TXT_ECDH: &[u8; 5] = b"ECDH\0";
4559pub const SSL_TXT_ECDHE: &[u8; 6] = b"ECDHE\0";
4560pub const SSL_TXT_EECDH: &[u8; 6] = b"EECDH\0";
4561pub const SSL_TXT_ECDSA: &[u8; 6] = b"ECDSA\0";
4562pub const SSL_TXT_PSK: &[u8; 4] = b"PSK\0";
4563pub const SSL_TXT_3DES: &[u8; 5] = b"3DES\0";
4564pub const SSL_TXT_RC4: &[u8; 4] = b"RC4\0";
4565pub const SSL_TXT_AES128: &[u8; 7] = b"AES128\0";
4566pub const SSL_TXT_AES256: &[u8; 7] = b"AES256\0";
4567pub const SSL_TXT_AES: &[u8; 4] = b"AES\0";
4568pub const SSL_TXT_AES_GCM: &[u8; 7] = b"AESGCM\0";
4569pub const SSL_TXT_CHACHA20: &[u8; 9] = b"CHACHA20\0";
4570pub const SSL_TXT_MD5: &[u8; 4] = b"MD5\0";
4571pub const SSL_TXT_SHA1: &[u8; 5] = b"SHA1\0";
4572pub const SSL_TXT_SHA: &[u8; 4] = b"SHA\0";
4573pub const SSL_TXT_SHA256: &[u8; 7] = b"SHA256\0";
4574pub const SSL_TXT_SHA384: &[u8; 7] = b"SHA384\0";
4575pub const SSL_TXT_SSLV3: &[u8; 6] = b"SSLv3\0";
4576pub const SSL_TXT_TLSV1: &[u8; 6] = b"TLSv1\0";
4577pub const SSL_TXT_TLSV1_1: &[u8; 8] = b"TLSv1.1\0";
4578pub const SSL_TXT_TLSV1_2: &[u8; 8] = b"TLSv1.2\0";
4579pub const SSL_TXT_TLSV1_3: &[u8; 8] = b"TLSv1.3\0";
4580pub const SSL_TXT_ALL: &[u8; 4] = b"ALL\0";
4581pub const SSL_TXT_CMPDEF: &[u8; 20] = b"COMPLEMENTOFDEFAULT\0";
4582pub const OPENSSL_INIT_NO_LOAD_SSL_STRINGS: i32 = 0;
4583pub const OPENSSL_INIT_LOAD_SSL_STRINGS: i32 = 0;
4584pub const OPENSSL_INIT_SSL_DEFAULT: i32 = 0;
4585pub const SSL_SIGN_RSA_PSS_SHA256: i32 = 2052;
4586pub const SSL_SIGN_RSA_PSS_SHA384: i32 = 2053;
4587pub const SSL_SIGN_RSA_PSS_SHA512: i32 = 2054;
4588pub const SSL_CURVE_SECP256R1: i32 = 23;
4589pub const SSL_CURVE_SECP384R1: i32 = 24;
4590pub const SSL_CURVE_SECP521R1: i32 = 25;
4591pub const SSL_CURVE_X25519: i32 = 29;
4592pub const TLSEXT_nid_unknown: i32 = 16777216;
4593pub const SSL_R_APP_DATA_IN_HANDSHAKE: i32 = 100;
4594pub const SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT: i32 = 101;
4595pub const SSL_R_BAD_ALERT: i32 = 102;
4596pub const SSL_R_BAD_CHANGE_CIPHER_SPEC: i32 = 103;
4597pub const SSL_R_BAD_DATA_RETURNED_BY_CALLBACK: i32 = 104;
4598pub const SSL_R_BAD_DH_P_LENGTH: i32 = 105;
4599pub const SSL_R_BAD_DIGEST_LENGTH: i32 = 106;
4600pub const SSL_R_BAD_ECC_CERT: i32 = 107;
4601pub const SSL_R_BAD_ECPOINT: i32 = 108;
4602pub const SSL_R_BAD_HANDSHAKE_RECORD: i32 = 109;
4603pub const SSL_R_BAD_HELLO_REQUEST: i32 = 110;
4604pub const SSL_R_BAD_LENGTH: i32 = 111;
4605pub const SSL_R_BAD_PACKET_LENGTH: i32 = 112;
4606pub const SSL_R_BAD_RSA_ENCRYPT: i32 = 113;
4607pub const SSL_R_BAD_SIGNATURE: i32 = 114;
4608pub const SSL_R_BAD_SRTP_MKI_VALUE: i32 = 115;
4609pub const SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST: i32 = 116;
4610pub const SSL_R_BAD_SSL_FILETYPE: i32 = 117;
4611pub const SSL_R_BAD_WRITE_RETRY: i32 = 118;
4612pub const SSL_R_BIO_NOT_SET: i32 = 119;
4613pub const SSL_R_BN_LIB: i32 = 120;
4614pub const SSL_R_BUFFER_TOO_SMALL: i32 = 121;
4615pub const SSL_R_CA_DN_LENGTH_MISMATCH: i32 = 122;
4616pub const SSL_R_CA_DN_TOO_LONG: i32 = 123;
4617pub const SSL_R_CCS_RECEIVED_EARLY: i32 = 124;
4618pub const SSL_R_CERTIFICATE_VERIFY_FAILED: i32 = 125;
4619pub const SSL_R_CERT_CB_ERROR: i32 = 126;
4620pub const SSL_R_CERT_LENGTH_MISMATCH: i32 = 127;
4621pub const SSL_R_CHANNEL_ID_NOT_P256: i32 = 128;
4622pub const SSL_R_CHANNEL_ID_SIGNATURE_INVALID: i32 = 129;
4623pub const SSL_R_CIPHER_OR_HASH_UNAVAILABLE: i32 = 130;
4624pub const SSL_R_CLIENTHELLO_PARSE_FAILED: i32 = 131;
4625pub const SSL_R_CLIENTHELLO_TLSEXT: i32 = 132;
4626pub const SSL_R_CONNECTION_REJECTED: i32 = 133;
4627pub const SSL_R_CONNECTION_TYPE_NOT_SET: i32 = 134;
4628pub const SSL_R_CUSTOM_EXTENSION_ERROR: i32 = 135;
4629pub const SSL_R_DATA_LENGTH_TOO_LONG: i32 = 136;
4630pub const SSL_R_DECODE_ERROR: i32 = 137;
4631pub const SSL_R_DECRYPTION_FAILED: i32 = 138;
4632pub const SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC: i32 = 139;
4633pub const SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG: i32 = 140;
4634pub const SSL_R_DH_P_TOO_LONG: i32 = 141;
4635pub const SSL_R_DIGEST_CHECK_FAILED: i32 = 142;
4636pub const SSL_R_DTLS_MESSAGE_TOO_BIG: i32 = 143;
4637pub const SSL_R_ECC_CERT_NOT_FOR_SIGNING: i32 = 144;
4638pub const SSL_R_EMS_STATE_INCONSISTENT: i32 = 145;
4639pub const SSL_R_ENCRYPTED_LENGTH_TOO_LONG: i32 = 146;
4640pub const SSL_R_ERROR_ADDING_EXTENSION: i32 = 147;
4641pub const SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST: i32 = 148;
4642pub const SSL_R_ERROR_PARSING_EXTENSION: i32 = 149;
4643pub const SSL_R_EXCESSIVE_MESSAGE_SIZE: i32 = 150;
4644pub const SSL_R_EXTRA_DATA_IN_MESSAGE: i32 = 151;
4645pub const SSL_R_FRAGMENT_MISMATCH: i32 = 152;
4646pub const SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION: i32 = 153;
4647pub const SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO: i32 = 154;
4648pub const SSL_R_HTTPS_PROXY_REQUEST: i32 = 155;
4649pub const SSL_R_HTTP_REQUEST: i32 = 156;
4650pub const SSL_R_INAPPROPRIATE_FALLBACK: i32 = 157;
4651pub const SSL_R_INVALID_COMMAND: i32 = 158;
4652pub const SSL_R_INVALID_MESSAGE: i32 = 159;
4653pub const SSL_R_INVALID_SSL_SESSION: i32 = 160;
4654pub const SSL_R_INVALID_TICKET_KEYS_LENGTH: i32 = 161;
4655pub const SSL_R_LENGTH_MISMATCH: i32 = 162;
4656pub const SSL_R_MISSING_EXTENSION: i32 = 164;
4657pub const SSL_R_MISSING_RSA_CERTIFICATE: i32 = 165;
4658pub const SSL_R_MISSING_TMP_DH_KEY: i32 = 166;
4659pub const SSL_R_MISSING_TMP_ECDH_KEY: i32 = 167;
4660pub const SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS: i32 = 168;
4661pub const SSL_R_MTU_TOO_SMALL: i32 = 169;
4662pub const SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN: i32 = 170;
4663pub const SSL_R_NESTED_GROUP: i32 = 171;
4664pub const SSL_R_NO_CERTIFICATES_RETURNED: i32 = 172;
4665pub const SSL_R_NO_CERTIFICATE_ASSIGNED: i32 = 173;
4666pub const SSL_R_NO_CERTIFICATE_SET: i32 = 174;
4667pub const SSL_R_NO_CIPHERS_AVAILABLE: i32 = 175;
4668pub const SSL_R_NO_CIPHERS_PASSED: i32 = 176;
4669pub const SSL_R_NO_CIPHER_MATCH: i32 = 177;
4670pub const SSL_R_NO_COMPRESSION_SPECIFIED: i32 = 178;
4671pub const SSL_R_NO_METHOD_SPECIFIED: i32 = 179;
4672pub const SSL_R_NO_PRIVATE_KEY_ASSIGNED: i32 = 181;
4673pub const SSL_R_NO_RENEGOTIATION: i32 = 182;
4674pub const SSL_R_NO_REQUIRED_DIGEST: i32 = 183;
4675pub const SSL_R_NO_SHARED_CIPHER: i32 = 184;
4676pub const SSL_R_NULL_SSL_CTX: i32 = 185;
4677pub const SSL_R_NULL_SSL_METHOD_PASSED: i32 = 186;
4678pub const SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED: i32 = 187;
4679pub const SSL_R_OLD_SESSION_VERSION_NOT_RETURNED: i32 = 188;
4680pub const SSL_R_OUTPUT_ALIASES_INPUT: i32 = 189;
4681pub const SSL_R_PARSE_TLSEXT: i32 = 190;
4682pub const SSL_R_PATH_TOO_LONG: i32 = 191;
4683pub const SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE: i32 = 192;
4684pub const SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE: i32 = 193;
4685pub const SSL_R_PROTOCOL_IS_SHUTDOWN: i32 = 194;
4686pub const SSL_R_PSK_IDENTITY_NOT_FOUND: i32 = 195;
4687pub const SSL_R_PSK_NO_CLIENT_CB: i32 = 196;
4688pub const SSL_R_PSK_NO_SERVER_CB: i32 = 197;
4689pub const SSL_R_READ_TIMEOUT_EXPIRED: i32 = 198;
4690pub const SSL_R_RECORD_LENGTH_MISMATCH: i32 = 199;
4691pub const SSL_R_RECORD_TOO_LARGE: i32 = 200;
4692pub const SSL_R_RENEGOTIATION_ENCODING_ERR: i32 = 201;
4693pub const SSL_R_RENEGOTIATION_MISMATCH: i32 = 202;
4694pub const SSL_R_REQUIRED_CIPHER_MISSING: i32 = 203;
4695pub const SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION: i32 = 204;
4696pub const SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION: i32 = 205;
4697pub const SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING: i32 = 206;
4698pub const SSL_R_SERVERHELLO_TLSEXT: i32 = 207;
4699pub const SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED: i32 = 208;
4700pub const SSL_R_SESSION_MAY_NOT_BE_CREATED: i32 = 209;
4701pub const SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER: i32 = 210;
4702pub const SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES: i32 = 211;
4703pub const SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE: i32 = 212;
4704pub const SSL_R_SSL3_EXT_INVALID_SERVERNAME: i32 = 213;
4705pub const SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION: i32 = 214;
4706pub const SSL_R_SSL_HANDSHAKE_FAILURE: i32 = 215;
4707pub const SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG: i32 = 216;
4708pub const SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST: i32 = 217;
4709pub const SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG: i32 = 218;
4710pub const SSL_R_TOO_MANY_EMPTY_FRAGMENTS: i32 = 219;
4711pub const SSL_R_TOO_MANY_WARNING_ALERTS: i32 = 220;
4712pub const SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS: i32 = 221;
4713pub const SSL_R_UNEXPECTED_EXTENSION: i32 = 222;
4714pub const SSL_R_UNEXPECTED_MESSAGE: i32 = 223;
4715pub const SSL_R_UNEXPECTED_OPERATOR_IN_GROUP: i32 = 224;
4716pub const SSL_R_UNEXPECTED_RECORD: i32 = 225;
4717pub const SSL_R_UNINITIALIZED: i32 = 226;
4718pub const SSL_R_UNKNOWN_ALERT_TYPE: i32 = 227;
4719pub const SSL_R_UNKNOWN_CERTIFICATE_TYPE: i32 = 228;
4720pub const SSL_R_UNKNOWN_CIPHER_RETURNED: i32 = 229;
4721pub const SSL_R_UNKNOWN_CIPHER_TYPE: i32 = 230;
4722pub const SSL_R_UNKNOWN_DIGEST: i32 = 231;
4723pub const SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE: i32 = 232;
4724pub const SSL_R_UNKNOWN_PROTOCOL: i32 = 233;
4725pub const SSL_R_UNKNOWN_SSL_VERSION: i32 = 234;
4726pub const SSL_R_UNKNOWN_STATE: i32 = 235;
4727pub const SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED: i32 = 236;
4728pub const SSL_R_UNSUPPORTED_CIPHER: i32 = 237;
4729pub const SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM: i32 = 238;
4730pub const SSL_R_UNSUPPORTED_ELLIPTIC_CURVE: i32 = 239;
4731pub const SSL_R_UNSUPPORTED_PROTOCOL: i32 = 240;
4732pub const SSL_R_WRONG_CERTIFICATE_TYPE: i32 = 241;
4733pub const SSL_R_WRONG_CIPHER_RETURNED: i32 = 242;
4734pub const SSL_R_WRONG_CURVE: i32 = 243;
4735pub const SSL_R_WRONG_MESSAGE_TYPE: i32 = 244;
4736pub const SSL_R_WRONG_SIGNATURE_TYPE: i32 = 245;
4737pub const SSL_R_WRONG_SSL_VERSION: i32 = 246;
4738pub const SSL_R_WRONG_VERSION_NUMBER: i32 = 247;
4739pub const SSL_R_X509_LIB: i32 = 248;
4740pub const SSL_R_X509_VERIFICATION_SETUP_PROBLEMS: i32 = 249;
4741pub const SSL_R_SHUTDOWN_WHILE_IN_INIT: i32 = 250;
4742pub const SSL_R_INVALID_OUTER_RECORD_TYPE: i32 = 251;
4743pub const SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY: i32 = 252;
4744pub const SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS: i32 = 253;
4745pub const SSL_R_DOWNGRADE_DETECTED: i32 = 254;
4746pub const SSL_R_EXCESS_HANDSHAKE_DATA: i32 = 255;
4747pub const SSL_R_INVALID_COMPRESSION_LIST: i32 = 256;
4748pub const SSL_R_DUPLICATE_EXTENSION: i32 = 257;
4749pub const SSL_R_MISSING_KEY_SHARE: i32 = 258;
4750pub const SSL_R_INVALID_ALPN_PROTOCOL: i32 = 259;
4751pub const SSL_R_TOO_MANY_KEY_UPDATES: i32 = 260;
4752pub const SSL_R_BLOCK_CIPHER_PAD_IS_WRONG: i32 = 261;
4753pub const SSL_R_NO_CIPHERS_SPECIFIED: i32 = 262;
4754pub const SSL_R_RENEGOTIATION_EMS_MISMATCH: i32 = 263;
4755pub const SSL_R_DUPLICATE_KEY_SHARE: i32 = 264;
4756pub const SSL_R_NO_GROUPS_SPECIFIED: i32 = 265;
4757pub const SSL_R_NO_SHARED_GROUP: i32 = 266;
4758pub const SSL_R_PRE_SHARED_KEY_MUST_BE_LAST: i32 = 267;
4759pub const SSL_R_OLD_SESSION_PRF_HASH_MISMATCH: i32 = 268;
4760pub const SSL_R_INVALID_SCT_LIST: i32 = 269;
4761pub const SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA: i32 = 270;
4762pub const SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH: i32 = 271;
4763pub const SSL_R_CANNOT_PARSE_LEAF_CERT: i32 = 272;
4764pub const SSL_R_SERVER_CERT_CHANGED: i32 = 273;
4765pub const SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH: i32 = 274;
4766pub const SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD: i32 = 275;
4767pub const SSL_R_TICKET_ENCRYPTION_FAILED: i32 = 276;
4768pub const SSL_R_ALPN_MISMATCH_ON_EARLY_DATA: i32 = 277;
4769pub const SSL_R_WRONG_VERSION_ON_EARLY_DATA: i32 = 278;
4770pub const SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA: i32 = 279;
4771pub const SSL_R_NO_SUPPORTED_VERSIONS_ENABLED: i32 = 280;
4772pub const SSL_R_EMPTY_HELLO_RETRY_REQUEST: i32 = 282;
4773pub const SSL_R_EARLY_DATA_NOT_IN_USE: i32 = 283;
4774pub const SSL_R_HANDSHAKE_NOT_COMPLETE: i32 = 284;
4775pub const SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI: i32 = 285;
4776pub const SSL_R_SERVER_ECHOED_INVALID_SESSION_ID: i32 = 286;
4777pub const SSL_R_PRIVATE_KEY_OPERATION_FAILED: i32 = 287;
4778pub const SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH: i32 = 288;
4779pub const SSL_R_OCSP_CB_ERROR: i32 = 289;
4780pub const SSL_R_SSL_SESSION_ID_TOO_LONG: i32 = 290;
4781pub const SSL_R_APPLICATION_DATA_ON_SHUTDOWN: i32 = 291;
4782pub const SSL_R_CERT_DECOMPRESSION_FAILED: i32 = 292;
4783pub const SSL_R_UNCOMPRESSED_CERT_TOO_LARGE: i32 = 293;
4784pub const SSL_R_UNKNOWN_CERT_COMPRESSION_ALG: i32 = 294;
4785pub const SSL_R_INVALID_SIGNATURE_ALGORITHM: i32 = 295;
4786pub const SSL_R_DUPLICATE_SIGNATURE_ALGORITHM: i32 = 296;
4787pub const SSL_R_TLS13_DOWNGRADE: i32 = 297;
4788pub const SSL_R_QUIC_INTERNAL_ERROR: i32 = 298;
4789pub const SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED: i32 = 299;
4790pub const SSL_R_TOO_MUCH_READ_EARLY_DATA: i32 = 300;
4791pub const SSL_R_INVALID_DELEGATED_CREDENTIAL: i32 = 301;
4792pub const SSL_R_KEY_USAGE_BIT_INCORRECT: i32 = 302;
4793pub const SSL_R_INCONSISTENT_CLIENT_HELLO: i32 = 303;
4794pub const SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA: i32 = 304;
4795pub const SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED: i32 = 305;
4796pub const SSL_R_UNEXPECTED_COMPATIBILITY_MODE: i32 = 306;
4797pub const SSL_R_NO_APPLICATION_PROTOCOL: i32 = 307;
4798pub const SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN: i32 = 308;
4799pub const SSL_R_ALPS_MISMATCH_ON_EARLY_DATA: i32 = 309;
4800pub const SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH: i32 = 310;
4801pub const SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION: i32 = 311;
4802pub const SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG: i32 = 312;
4803pub const SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS: i32 = 313;
4804pub const SSL_R_INVALID_CLIENT_HELLO_INNER: i32 = 314;
4805pub const SSL_R_INVALID_ALPN_PROTOCOL_LIST: i32 = 315;
4806pub const SSL_R_COULD_NOT_PARSE_HINTS: i32 = 316;
4807pub const SSL_R_INVALID_ECH_PUBLIC_NAME: i32 = 317;
4808pub const SSL_R_INVALID_ECH_CONFIG_LIST: i32 = 318;
4809pub const SSL_R_ECH_REJECTED: i32 = 319;
4810pub const SSL_R_INVALID_OUTER_EXTENSION: i32 = 320;
4811pub const SSL_R_INCONSISTENT_ECH_NEGOTIATION: i32 = 321;
4812pub const SSL_R_INVALID_ALPS_CODEPOINT: i32 = 322;
4813pub const SSL_R_NO_MATCHING_ISSUER: i32 = 323;
4814pub const SSL_R_INVALID_SPAKE2PLUSV1_VALUE: i32 = 324;
4815pub const SSL_R_PAKE_EXHAUSTED: i32 = 325;
4816pub const SSL_R_PEER_PAKE_MISMATCH: i32 = 326;
4817pub const SSL_R_UNSUPPORTED_CREDENTIAL_LIST: i32 = 327;
4818pub const SSL_R_INVALID_TRUST_ANCHOR_LIST: i32 = 328;
4819pub const SSL_R_INVALID_CERTIFICATE_PROPERTY_LIST: i32 = 329;
4820pub const SSL_R_DUPLICATE_GROUP: i32 = 330;
4821pub const SSL_R_INVALID_PSK_FOR_CONNECTION: i32 = 331;
4822pub const SSL_R_NO_SUPPORTED_PSK_MODE: i32 = 332;
4823pub const SSL_R_INVALID_CERT_TYPES_LIST: i32 = 333;
4824pub const SSL_R_UNSUPPORTED_CERTIFICATE: i32 = 334;
4825pub const SSL_R_MISSING_KEY: i32 = 335;
4826pub const SSL_R_INVALID_RAW_PUBLIC_KEY: i32 = 336;
4827pub const SSL_R_UNUSABLE_ECH_CONFIG_LIST: i32 = 337;
4828pub const SSL_R_INVALID_CIPHER_FLAGS: i32 = 338;
4829pub const SSL_R_DUPLICATE_CIPHER: i32 = 339;
4830pub const SSL_R_SSLV3_ALERT_CLOSE_NOTIFY: i32 = 1000;
4831pub const SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE: i32 = 1010;
4832pub const SSL_R_SSLV3_ALERT_BAD_RECORD_MAC: i32 = 1020;
4833pub const SSL_R_TLSV1_ALERT_DECRYPTION_FAILED: i32 = 1021;
4834pub const SSL_R_TLSV1_ALERT_RECORD_OVERFLOW: i32 = 1022;
4835pub const SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE: i32 = 1030;
4836pub const SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE: i32 = 1040;
4837pub const SSL_R_SSLV3_ALERT_NO_CERTIFICATE: i32 = 1041;
4838pub const SSL_R_SSLV3_ALERT_BAD_CERTIFICATE: i32 = 1042;
4839pub const SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE: i32 = 1043;
4840pub const SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED: i32 = 1044;
4841pub const SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED: i32 = 1045;
4842pub const SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN: i32 = 1046;
4843pub const SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER: i32 = 1047;
4844pub const SSL_R_TLSV1_ALERT_UNKNOWN_CA: i32 = 1048;
4845pub const SSL_R_TLSV1_ALERT_ACCESS_DENIED: i32 = 1049;
4846pub const SSL_R_TLSV1_ALERT_DECODE_ERROR: i32 = 1050;
4847pub const SSL_R_TLSV1_ALERT_DECRYPT_ERROR: i32 = 1051;
4848pub const SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION: i32 = 1060;
4849pub const SSL_R_TLSV1_ALERT_PROTOCOL_VERSION: i32 = 1070;
4850pub const SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY: i32 = 1071;
4851pub const SSL_R_TLSV1_ALERT_INTERNAL_ERROR: i32 = 1080;
4852pub const SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK: i32 = 1086;
4853pub const SSL_R_TLSV1_ALERT_USER_CANCELLED: i32 = 1090;
4854pub const SSL_R_TLSV1_ALERT_NO_RENEGOTIATION: i32 = 1100;
4855pub const SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION: i32 = 1110;
4856pub const SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE: i32 = 1111;
4857pub const SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME: i32 = 1112;
4858pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE: i32 = 1113;
4859pub const SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE: i32 = 1114;
4860pub const SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY: i32 = 1115;
4861pub const SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED: i32 = 1116;
4862pub const SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL: i32 = 1120;
4863pub const SSL_R_TLSV1_ALERT_ECH_REQUIRED: i32 = 1121;
4864pub const TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE: i32 = 512;
4865pub const TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE: i32 = 512;
4866pub const TRUST_TOKEN_R_KEYGEN_FAILURE: i32 = 100;
4867pub const TRUST_TOKEN_R_BUFFER_TOO_SMALL: i32 = 101;
4868pub const TRUST_TOKEN_R_OVER_BATCHSIZE: i32 = 102;
4869pub const TRUST_TOKEN_R_DECODE_ERROR: i32 = 103;
4870pub const TRUST_TOKEN_R_SRR_SIGNATURE_ERROR: i32 = 104;
4871pub const TRUST_TOKEN_R_DECODE_FAILURE: i32 = 105;
4872pub const TRUST_TOKEN_R_INVALID_METADATA: i32 = 106;
4873pub const TRUST_TOKEN_R_TOO_MANY_KEYS: i32 = 107;
4874pub const TRUST_TOKEN_R_NO_KEYS_CONFIGURED: i32 = 108;
4875pub const TRUST_TOKEN_R_INVALID_KEY_ID: i32 = 109;
4876pub const TRUST_TOKEN_R_INVALID_TOKEN: i32 = 110;
4877pub const TRUST_TOKEN_R_BAD_VALIDITY_CHECK: i32 = 111;
4878pub const TRUST_TOKEN_R_NO_SRR_KEY_CONFIGURED: i32 = 112;
4879pub const TRUST_TOKEN_R_INVALID_METADATA_KEY: i32 = 113;
4880pub const TRUST_TOKEN_R_INVALID_PROOF: i32 = 114;
4881pub const CRL_REASON_NONE: i32 = -1;
4882pub const CRL_REASON_UNSPECIFIED: i32 = 0;
4883pub const CRL_REASON_KEY_COMPROMISE: i32 = 1;
4884pub const CRL_REASON_CA_COMPROMISE: i32 = 2;
4885pub const CRL_REASON_AFFILIATION_CHANGED: i32 = 3;
4886pub const CRL_REASON_SUPERSEDED: i32 = 4;
4887pub const CRL_REASON_CESSATION_OF_OPERATION: i32 = 5;
4888pub const CRL_REASON_CERTIFICATE_HOLD: i32 = 6;
4889pub const CRL_REASON_REMOVE_FROM_CRL: i32 = 8;
4890pub const CRL_REASON_PRIVILEGE_WITHDRAWN: i32 = 9;
4891pub const CRL_REASON_AA_COMPROMISE: i32 = 10;
4892pub const KU_DIGITAL_SIGNATURE: i32 = 128;
4893pub const KU_NON_REPUDIATION: i32 = 64;
4894pub const KU_KEY_ENCIPHERMENT: i32 = 32;
4895pub const KU_DATA_ENCIPHERMENT: i32 = 16;
4896pub const KU_KEY_AGREEMENT: i32 = 8;
4897pub const KU_KEY_CERT_SIGN: i32 = 4;
4898pub const KU_CRL_SIGN: i32 = 2;
4899pub const KU_ENCIPHER_ONLY: i32 = 1;
4900pub const KU_DECIPHER_ONLY: i32 = 32768;
4901pub type __uint64_t = ::core::ffi::c_ulong;
4902pub type __off_t = ::core::ffi::c_long;
4903pub type __off64_t = ::core::ffi::c_long;
4904pub type __time_t = ::core::ffi::c_long;
4905pub type __suseconds_t = ::core::ffi::c_long;
4906pub type time_t = __time_t;
4907#[repr(C)]
4908#[derive(Debug, Copy, Clone)]
4909pub struct timeval {
4910    pub tv_sec: __time_t,
4911    pub tv_usec: __suseconds_t,
4912}
4913pub type ossl_ssize_t = isize;
4914pub type CBS_ASN1_TAG = u32;
4915pub type CRYPTO_THREADID = ::core::ffi::c_int;
4916#[repr(C)]
4917#[derive(Debug)]
4918pub struct asn1_null_st {
4919    _unused: [u8; 0],
4920}
4921pub type ASN1_NULL = asn1_null_st;
4922#[repr(C)]
4923#[derive(Debug)]
4924pub struct crypto_must_be_null_st {
4925    _unused: [u8; 0],
4926}
4927pub type CRYPTO_MUST_BE_NULL = crypto_must_be_null_st;
4928pub type ASN1_BOOLEAN = ::core::ffi::c_int;
4929pub type ASN1_ITEM = ASN1_ITEM_st;
4930#[repr(C)]
4931#[derive(Debug)]
4932pub struct asn1_object_st {
4933    _unused: [u8; 0],
4934}
4935pub type ASN1_OBJECT = asn1_object_st;
4936#[repr(C)]
4937#[derive(Debug)]
4938pub struct asn1_pctx_st {
4939    _unused: [u8; 0],
4940}
4941pub type ASN1_PCTX = asn1_pctx_st;
4942pub type ASN1_BIT_STRING = asn1_string_st;
4943pub type ASN1_BMPSTRING = asn1_string_st;
4944pub type ASN1_ENUMERATED = asn1_string_st;
4945pub type ASN1_GENERALIZEDTIME = asn1_string_st;
4946pub type ASN1_GENERALSTRING = asn1_string_st;
4947pub type ASN1_IA5STRING = asn1_string_st;
4948pub type ASN1_INTEGER = asn1_string_st;
4949pub type ASN1_OCTET_STRING = asn1_string_st;
4950pub type ASN1_PRINTABLESTRING = asn1_string_st;
4951pub type ASN1_STRING = asn1_string_st;
4952pub type ASN1_T61STRING = asn1_string_st;
4953pub type ASN1_TIME = asn1_string_st;
4954pub type ASN1_UNIVERSALSTRING = asn1_string_st;
4955pub type ASN1_UTCTIME = asn1_string_st;
4956pub type ASN1_UTF8STRING = asn1_string_st;
4957pub type ASN1_VISIBLESTRING = asn1_string_st;
4958pub type ASN1_TYPE = asn1_type_st;
4959pub type AUTHORITY_KEYID = AUTHORITY_KEYID_st;
4960pub type BASIC_CONSTRAINTS = BASIC_CONSTRAINTS_st;
4961#[repr(C)]
4962#[derive(Debug)]
4963pub struct CMS_ContentInfo_st {
4964    _unused: [u8; 0],
4965}
4966pub type CMS_ContentInfo = CMS_ContentInfo_st;
4967#[repr(C)]
4968#[derive(Debug)]
4969pub struct CMS_SignerInfo_st {
4970    _unused: [u8; 0],
4971}
4972pub type CMS_SignerInfo = CMS_SignerInfo_st;
4973pub type DIST_POINT = DIST_POINT_st;
4974pub type DSA_SIG = DSA_SIG_st;
4975pub type GENERAL_NAME = GENERAL_NAME_st;
4976pub type ISSUING_DIST_POINT = ISSUING_DIST_POINT_st;
4977pub type NAME_CONSTRAINTS = NAME_CONSTRAINTS_st;
4978pub type NETSCAPE_SPKAC = Netscape_spkac_st;
4979pub type NETSCAPE_SPKI = Netscape_spki_st;
4980pub type RIPEMD160_CTX = RIPEMD160state_st;
4981#[repr(C)]
4982#[derive(Debug)]
4983pub struct X509_VERIFY_PARAM_st {
4984    _unused: [u8; 0],
4985}
4986pub type X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
4987pub type X509_ALGOR = X509_algor_st;
4988#[repr(C)]
4989#[derive(Debug)]
4990pub struct X509_crl_st {
4991    _unused: [u8; 0],
4992}
4993pub type X509_CRL = X509_crl_st;
4994#[repr(C)]
4995#[derive(Debug)]
4996pub struct X509_extension_st {
4997    _unused: [u8; 0],
4998}
4999pub type X509_EXTENSION = X509_extension_st;
5000pub type X509_INFO = X509_info_st;
5001#[repr(C)]
5002#[derive(Debug)]
5003pub struct X509_name_entry_st {
5004    _unused: [u8; 0],
5005}
5006pub type X509_NAME_ENTRY = X509_name_entry_st;
5007#[repr(C)]
5008#[derive(Debug)]
5009pub struct X509_name_st {
5010    _unused: [u8; 0],
5011}
5012pub type X509_NAME = X509_name_st;
5013#[repr(C)]
5014#[derive(Debug)]
5015pub struct X509_pubkey_st {
5016    _unused: [u8; 0],
5017}
5018pub type X509_PUBKEY = X509_pubkey_st;
5019#[repr(C)]
5020#[derive(Debug)]
5021pub struct X509_req_st {
5022    _unused: [u8; 0],
5023}
5024pub type X509_REQ = X509_req_st;
5025#[repr(C)]
5026#[derive(Debug)]
5027pub struct X509_sig_st {
5028    _unused: [u8; 0],
5029}
5030pub type X509_SIG = X509_sig_st;
5031#[repr(C)]
5032#[derive(Debug)]
5033pub struct bignum_ctx {
5034    _unused: [u8; 0],
5035}
5036pub type BN_CTX = bignum_ctx;
5037pub type BIGNUM = bignum_st;
5038#[repr(C)]
5039#[derive(Debug)]
5040pub struct bio_method_st {
5041    _unused: [u8; 0],
5042}
5043pub type BIO_METHOD = bio_method_st;
5044#[repr(C)]
5045#[derive(Debug)]
5046pub struct bio_st {
5047    _unused: [u8; 0],
5048}
5049pub type BIO = bio_st;
5050pub type BLAKE2B_CTX = blake2b_state_st;
5051pub type BN_GENCB = bn_gencb_st;
5052#[repr(C)]
5053#[derive(Debug)]
5054pub struct bn_mont_ctx_st {
5055    _unused: [u8; 0],
5056}
5057pub type BN_MONT_CTX = bn_mont_ctx_st;
5058pub type BUF_MEM = buf_mem_st;
5059pub type CBB = cbb_st;
5060pub type CBS = cbs_st;
5061#[repr(C)]
5062#[derive(Debug)]
5063pub struct cmac_ctx_st {
5064    _unused: [u8; 0],
5065}
5066pub type CMAC_CTX = cmac_ctx_st;
5067#[repr(C)]
5068#[derive(Debug)]
5069pub struct conf_st {
5070    _unused: [u8; 0],
5071}
5072pub type CONF = conf_st;
5073pub type CONF_VALUE = conf_value_st;
5074#[repr(C)]
5075#[derive(Debug)]
5076pub struct crypto_buffer_pool_st {
5077    _unused: [u8; 0],
5078}
5079pub type CRYPTO_BUFFER_POOL = crypto_buffer_pool_st;
5080#[repr(C)]
5081#[derive(Debug)]
5082pub struct crypto_buffer_st {
5083    _unused: [u8; 0],
5084}
5085pub type CRYPTO_BUFFER = crypto_buffer_st;
5086pub type CRYPTO_IVEC = crypto_ivec_st;
5087pub type CRYPTO_IOVEC = crypto_iovec_st;
5088#[repr(C)]
5089#[derive(Debug)]
5090pub struct ctr_drbg_state_st {
5091    _unused: [u8; 0],
5092}
5093pub type CTR_DRBG_STATE = ctr_drbg_state_st;
5094#[repr(C)]
5095#[derive(Debug)]
5096pub struct dh_st {
5097    _unused: [u8; 0],
5098}
5099pub type DH = dh_st;
5100#[repr(C)]
5101#[derive(Debug)]
5102pub struct dsa_st {
5103    _unused: [u8; 0],
5104}
5105pub type DSA = dsa_st;
5106#[repr(C)]
5107#[derive(Debug)]
5108pub struct ec_group_st {
5109    _unused: [u8; 0],
5110}
5111pub type EC_GROUP = ec_group_st;
5112#[repr(C)]
5113#[derive(Debug)]
5114pub struct ec_key_st {
5115    _unused: [u8; 0],
5116}
5117pub type EC_KEY = ec_key_st;
5118#[repr(C)]
5119#[derive(Debug)]
5120pub struct ec_point_st {
5121    _unused: [u8; 0],
5122}
5123pub type EC_POINT = ec_point_st;
5124pub type ECDSA_METHOD = ecdsa_method_st;
5125pub type ECDSA_SIG = ecdsa_sig_st;
5126#[repr(C)]
5127#[derive(Debug)]
5128pub struct engine_st {
5129    _unused: [u8; 0],
5130}
5131pub type ENGINE = engine_st;
5132pub type EVP_MD_CTX = env_md_ctx_st;
5133#[repr(C)]
5134#[derive(Debug)]
5135pub struct env_md_st {
5136    _unused: [u8; 0],
5137}
5138pub type EVP_MD = env_md_st;
5139#[repr(C)]
5140#[derive(Debug)]
5141pub struct evp_aead_st {
5142    _unused: [u8; 0],
5143}
5144pub type EVP_AEAD = evp_aead_st;
5145pub type EVP_AEAD_CTX = evp_aead_ctx_st;
5146pub type EVP_CIPHER_CTX = evp_cipher_ctx_st;
5147#[repr(C)]
5148#[derive(Debug)]
5149pub struct evp_cipher_st {
5150    _unused: [u8; 0],
5151}
5152pub type EVP_CIPHER = evp_cipher_st;
5153pub type EVP_ENCODE_CTX = evp_encode_ctx_st;
5154#[repr(C)]
5155#[derive(Debug)]
5156pub struct evp_hpke_aead_st {
5157    _unused: [u8; 0],
5158}
5159pub type EVP_HPKE_AEAD = evp_hpke_aead_st;
5160pub type EVP_HPKE_CTX = evp_hpke_ctx_st;
5161#[repr(C)]
5162#[derive(Debug)]
5163pub struct evp_hpke_kdf_st {
5164    _unused: [u8; 0],
5165}
5166pub type EVP_HPKE_KDF = evp_hpke_kdf_st;
5167#[repr(C)]
5168#[derive(Debug)]
5169pub struct evp_hpke_kem_st {
5170    _unused: [u8; 0],
5171}
5172pub type EVP_HPKE_KEM = evp_hpke_kem_st;
5173pub type EVP_HPKE_KEY = evp_hpke_key_st;
5174#[repr(C)]
5175#[derive(Debug)]
5176pub struct evp_kem_st {
5177    _unused: [u8; 0],
5178}
5179pub type EVP_KEM = evp_kem_st;
5180#[repr(C)]
5181#[derive(Debug)]
5182pub struct evp_pkey_alg_st {
5183    _unused: [u8; 0],
5184}
5185pub type EVP_PKEY_ALG = evp_pkey_alg_st;
5186#[repr(C)]
5187#[derive(Debug)]
5188pub struct evp_pkey_ctx_st {
5189    _unused: [u8; 0],
5190}
5191pub type EVP_PKEY_CTX = evp_pkey_ctx_st;
5192#[repr(C)]
5193#[derive(Debug)]
5194pub struct evp_pkey_st {
5195    _unused: [u8; 0],
5196}
5197pub type EVP_PKEY = evp_pkey_st;
5198pub type HMAC_CTX = hmac_ctx_st;
5199pub type MD4_CTX = md4_state_st;
5200pub type MD5_CTX = md5_state_st;
5201#[repr(C)]
5202#[derive(Debug)]
5203pub struct ossl_init_settings_st {
5204    _unused: [u8; 0],
5205}
5206pub type OPENSSL_INIT_SETTINGS = ossl_init_settings_st;
5207#[repr(C)]
5208#[derive(Debug)]
5209pub struct ossl_lib_ctx_st {
5210    _unused: [u8; 0],
5211}
5212pub type OSSL_LIB_CTX = ossl_lib_ctx_st;
5213#[repr(C)]
5214#[derive(Debug)]
5215pub struct ossl_param_st {
5216    _unused: [u8; 0],
5217}
5218pub type OSSL_PARAM = ossl_param_st;
5219#[repr(C)]
5220#[derive(Debug)]
5221pub struct pkcs12_st {
5222    _unused: [u8; 0],
5223}
5224pub type PKCS12 = pkcs12_st;
5225#[repr(C)]
5226#[derive(Debug)]
5227pub struct pkcs8_priv_key_info_st {
5228    _unused: [u8; 0],
5229}
5230pub type PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st;
5231pub type X509_PKEY = private_key_st;
5232pub type RAND_METHOD = rand_meth_st;
5233pub type RC4_KEY = rc4_key_st;
5234pub type RSA_METHOD = rsa_meth_st;
5235pub type RSA_PSS_PARAMS = rsa_pss_params_st;
5236#[repr(C)]
5237#[derive(Debug)]
5238pub struct rsa_st {
5239    _unused: [u8; 0],
5240}
5241pub type RSA = rsa_st;
5242pub type SHA256_CTX = sha256_state_st;
5243pub type SHA512_CTX = sha512_state_st;
5244pub type SHA_CTX = sha_state_st;
5245#[repr(C)]
5246#[derive(Debug)]
5247pub struct spake2_ctx_st {
5248    _unused: [u8; 0],
5249}
5250pub type SPAKE2_CTX = spake2_ctx_st;
5251pub type SRTP_PROTECTION_PROFILE = srtp_protection_profile_st;
5252#[repr(C)]
5253#[derive(Debug)]
5254pub struct ssl_cipher_st {
5255    _unused: [u8; 0],
5256}
5257pub type SSL_CIPHER = ssl_cipher_st;
5258#[repr(C)]
5259#[derive(Debug)]
5260pub struct ssl_credential_st {
5261    _unused: [u8; 0],
5262}
5263pub type SSL_CREDENTIAL = ssl_credential_st;
5264#[repr(C)]
5265#[derive(Debug)]
5266pub struct ssl_ctx_st {
5267    _unused: [u8; 0],
5268}
5269pub type SSL_CTX = ssl_ctx_st;
5270pub type SSL_CLIENT_HELLO = ssl_early_callback_ctx;
5271#[repr(C)]
5272#[derive(Debug)]
5273pub struct ssl_ech_keys_st {
5274    _unused: [u8; 0],
5275}
5276pub type SSL_ECH_KEYS = ssl_ech_keys_st;
5277#[repr(C)]
5278#[derive(Debug)]
5279pub struct ssl_method_st {
5280    _unused: [u8; 0],
5281}
5282pub type SSL_METHOD = ssl_method_st;
5283pub type SSL_PRIVATE_KEY_METHOD = ssl_private_key_method_st;
5284pub type SSL_QUIC_METHOD = ssl_quic_method_st;
5285#[repr(C)]
5286#[derive(Debug)]
5287pub struct ssl_session_st {
5288    _unused: [u8; 0],
5289}
5290pub type SSL_SESSION = ssl_session_st;
5291#[repr(C)]
5292#[derive(Debug)]
5293pub struct ssl_st {
5294    _unused: [u8; 0],
5295}
5296pub type SSL = ssl_st;
5297pub type SSL_TICKET_AEAD_METHOD = ssl_ticket_aead_method_st;
5298#[repr(C)]
5299#[derive(Debug)]
5300pub struct st_ERR_FNS {
5301    _unused: [u8; 0],
5302}
5303pub type ERR_FNS = st_ERR_FNS;
5304pub type TRUST_TOKEN = trust_token_st;
5305#[repr(C)]
5306#[derive(Debug)]
5307pub struct trust_token_client_st {
5308    _unused: [u8; 0],
5309}
5310pub type TRUST_TOKEN_CLIENT = trust_token_client_st;
5311#[repr(C)]
5312#[derive(Debug)]
5313pub struct trust_token_issuer_st {
5314    _unused: [u8; 0],
5315}
5316pub type TRUST_TOKEN_ISSUER = trust_token_issuer_st;
5317#[repr(C)]
5318#[derive(Debug)]
5319pub struct trust_token_method_st {
5320    _unused: [u8; 0],
5321}
5322pub type TRUST_TOKEN_METHOD = trust_token_method_st;
5323pub type X509V3_CTX = v3_ext_ctx;
5324pub type X509V3_EXT_METHOD = v3_ext_method;
5325#[repr(C)]
5326#[derive(Debug)]
5327pub struct x509_attributes_st {
5328    _unused: [u8; 0],
5329}
5330pub type X509_ATTRIBUTE = x509_attributes_st;
5331#[repr(C)]
5332#[derive(Debug)]
5333pub struct x509_lookup_st {
5334    _unused: [u8; 0],
5335}
5336pub type X509_LOOKUP = x509_lookup_st;
5337#[repr(C)]
5338#[derive(Debug)]
5339pub struct x509_lookup_method_st {
5340    _unused: [u8; 0],
5341}
5342pub type X509_LOOKUP_METHOD = x509_lookup_method_st;
5343#[repr(C)]
5344#[derive(Debug)]
5345pub struct x509_object_st {
5346    _unused: [u8; 0],
5347}
5348pub type X509_OBJECT = x509_object_st;
5349#[repr(C)]
5350#[derive(Debug)]
5351pub struct x509_purpose_st {
5352    _unused: [u8; 0],
5353}
5354pub type X509_PURPOSE = x509_purpose_st;
5355#[repr(C)]
5356#[derive(Debug)]
5357pub struct x509_revoked_st {
5358    _unused: [u8; 0],
5359}
5360pub type X509_REVOKED = x509_revoked_st;
5361#[repr(C)]
5362#[derive(Debug)]
5363pub struct x509_st {
5364    _unused: [u8; 0],
5365}
5366pub type X509 = x509_st;
5367#[repr(C)]
5368#[derive(Debug)]
5369pub struct x509_store_ctx_st {
5370    _unused: [u8; 0],
5371}
5372pub type X509_STORE_CTX = x509_store_ctx_st;
5373#[repr(C)]
5374#[derive(Debug)]
5375pub struct x509_store_st {
5376    _unused: [u8; 0],
5377}
5378pub type X509_STORE = x509_store_st;
5379pub type OPENSSL_BLOCK = *mut ::core::ffi::c_void;
5380#[repr(C)]
5381#[derive(Debug, Copy, Clone)]
5382pub struct aes_key_st {
5383    pub rd_key: [u32; 60usize],
5384    pub rounds: ::core::ffi::c_uint,
5385}
5386pub type AES_KEY = aes_key_st;
5387unsafe extern "C" {
5388    pub fn AES_set_encrypt_key(
5389        key: *const u8,
5390        bits: ::core::ffi::c_uint,
5391        aeskey: *mut AES_KEY,
5392    ) -> ::core::ffi::c_int;
5393}
5394unsafe extern "C" {
5395    pub fn AES_set_decrypt_key(
5396        key: *const u8,
5397        bits: ::core::ffi::c_uint,
5398        aeskey: *mut AES_KEY,
5399    ) -> ::core::ffi::c_int;
5400}
5401unsafe extern "C" {
5402    pub fn AES_encrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5403}
5404unsafe extern "C" {
5405    pub fn AES_decrypt(in_: *const u8, out: *mut u8, key: *const AES_KEY);
5406}
5407unsafe extern "C" {
5408    pub fn AES_ctr128_encrypt(
5409        in_: *const u8,
5410        out: *mut u8,
5411        len: usize,
5412        key: *const AES_KEY,
5413        ivec: *mut u8,
5414        ecount_buf: *mut u8,
5415        num: *mut ::core::ffi::c_uint,
5416    );
5417}
5418unsafe extern "C" {
5419    pub fn AES_ecb_encrypt(
5420        in_: *const u8,
5421        out: *mut u8,
5422        key: *const AES_KEY,
5423        enc: ::core::ffi::c_int,
5424    );
5425}
5426unsafe extern "C" {
5427    pub fn AES_cbc_encrypt(
5428        in_: *const u8,
5429        out: *mut u8,
5430        len: usize,
5431        key: *const AES_KEY,
5432        ivec: *mut u8,
5433        enc: ::core::ffi::c_int,
5434    );
5435}
5436unsafe extern "C" {
5437    pub fn AES_ofb128_encrypt(
5438        in_: *const u8,
5439        out: *mut u8,
5440        len: usize,
5441        key: *const AES_KEY,
5442        ivec: *mut u8,
5443        num: *mut ::core::ffi::c_int,
5444    );
5445}
5446unsafe extern "C" {
5447    pub fn AES_cfb128_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        enc: ::core::ffi::c_int,
5455    );
5456}
5457unsafe extern "C" {
5458    pub fn AES_wrap_key(
5459        key: *const AES_KEY,
5460        iv: *const u8,
5461        out: *mut u8,
5462        in_: *const u8,
5463        in_len: usize,
5464    ) -> ::core::ffi::c_int;
5465}
5466unsafe extern "C" {
5467    pub fn AES_unwrap_key(
5468        key: *const AES_KEY,
5469        iv: *const u8,
5470        out: *mut u8,
5471        in_: *const u8,
5472        in_len: usize,
5473    ) -> ::core::ffi::c_int;
5474}
5475unsafe extern "C" {
5476    pub fn AES_wrap_key_padded(
5477        key: *const AES_KEY,
5478        out: *mut u8,
5479        out_len: *mut usize,
5480        max_out: usize,
5481        in_: *const u8,
5482        in_len: usize,
5483    ) -> ::core::ffi::c_int;
5484}
5485unsafe extern "C" {
5486    pub fn AES_unwrap_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}
5495#[repr(C)]
5496#[derive(Debug, Copy, Clone)]
5497pub struct tm {
5498    pub tm_sec: ::core::ffi::c_int,
5499    pub tm_min: ::core::ffi::c_int,
5500    pub tm_hour: ::core::ffi::c_int,
5501    pub tm_mday: ::core::ffi::c_int,
5502    pub tm_mon: ::core::ffi::c_int,
5503    pub tm_year: ::core::ffi::c_int,
5504    pub tm_wday: ::core::ffi::c_int,
5505    pub tm_yday: ::core::ffi::c_int,
5506    pub tm_isdst: ::core::ffi::c_int,
5507    pub tm_gmtoff: ::core::ffi::c_long,
5508    pub tm_zone: *const ::core::ffi::c_char,
5509}
5510pub type __gnuc_va_list = __builtin_va_list;
5511pub type FILE = _IO_FILE;
5512#[repr(C)]
5513#[derive(Debug)]
5514pub struct _IO_marker {
5515    _unused: [u8; 0],
5516}
5517#[repr(C)]
5518#[derive(Debug)]
5519pub struct _IO_codecvt {
5520    _unused: [u8; 0],
5521}
5522#[repr(C)]
5523#[derive(Debug)]
5524pub struct _IO_wide_data {
5525    _unused: [u8; 0],
5526}
5527pub type _IO_lock_t = ::core::ffi::c_void;
5528#[repr(C)]
5529#[derive(Debug, Copy, Clone)]
5530pub struct _IO_FILE {
5531    pub _flags: ::core::ffi::c_int,
5532    pub _IO_read_ptr: *mut ::core::ffi::c_char,
5533    pub _IO_read_end: *mut ::core::ffi::c_char,
5534    pub _IO_read_base: *mut ::core::ffi::c_char,
5535    pub _IO_write_base: *mut ::core::ffi::c_char,
5536    pub _IO_write_ptr: *mut ::core::ffi::c_char,
5537    pub _IO_write_end: *mut ::core::ffi::c_char,
5538    pub _IO_buf_base: *mut ::core::ffi::c_char,
5539    pub _IO_buf_end: *mut ::core::ffi::c_char,
5540    pub _IO_save_base: *mut ::core::ffi::c_char,
5541    pub _IO_backup_base: *mut ::core::ffi::c_char,
5542    pub _IO_save_end: *mut ::core::ffi::c_char,
5543    pub _markers: *mut _IO_marker,
5544    pub _chain: *mut _IO_FILE,
5545    pub _fileno: ::core::ffi::c_int,
5546    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
5547    pub _short_backupbuf: [::core::ffi::c_char; 1usize],
5548    pub _old_offset: __off_t,
5549    pub _cur_column: ::core::ffi::c_ushort,
5550    pub _vtable_offset: ::core::ffi::c_schar,
5551    pub _shortbuf: [::core::ffi::c_char; 1usize],
5552    pub _lock: *mut _IO_lock_t,
5553    pub _offset: __off64_t,
5554    pub _codecvt: *mut _IO_codecvt,
5555    pub _wide_data: *mut _IO_wide_data,
5556    pub _freeres_list: *mut _IO_FILE,
5557    pub _freeres_buf: *mut ::core::ffi::c_void,
5558    pub _prevchain: *mut *mut _IO_FILE,
5559    pub _mode: ::core::ffi::c_int,
5560    pub _unused3: ::core::ffi::c_int,
5561    pub _total_written: __uint64_t,
5562    pub _unused2: [::core::ffi::c_char; 8usize],
5563}
5564impl _IO_FILE {
5565    #[inline]
5566    pub fn _flags2(&self) -> ::core::ffi::c_int {
5567        self._bitfield_1.get_const::<0usize, 24u8>() as u32 as _
5568    }
5569    #[inline]
5570    pub fn set__flags2(&mut self, val: ::core::ffi::c_int) {
5571        let val: u32 = val as _;
5572        self._bitfield_1.set_const::<0usize, 24u8>(val as u64)
5573    }
5574    #[inline]
5575    pub unsafe fn _flags2_raw(this: *const Self) -> ::core::ffi::c_int {
5576        unsafe {
5577            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get_const::<0usize, 24u8>(
5578                ::core::ptr::addr_of!((*this)._bitfield_1),
5579            ) as u32 as _
5580        }
5581    }
5582    #[inline]
5583    pub unsafe fn set__flags2_raw(this: *mut Self, val: ::core::ffi::c_int) {
5584        unsafe {
5585            let val: u32 = val as _;
5586            <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set_const::<0usize, 24u8>(
5587                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5588                val as u64,
5589            )
5590        }
5591    }
5592    #[inline]
5593    pub fn new_bitfield_1(_flags2: ::core::ffi::c_int) -> __BindgenBitfieldUnit<[u8; 3usize]> {
5594        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
5595        __bindgen_bitfield_unit.set_const::<0usize, 24u8>({
5596            let _flags2: u32 = _flags2 as _;
5597            _flags2 as u64
5598        });
5599        __bindgen_bitfield_unit
5600    }
5601}
5602pub type va_list = __gnuc_va_list;
5603#[repr(C)]
5604#[derive(Debug, Copy, Clone)]
5605pub struct buf_mem_st {
5606    pub length: usize,
5607    pub data: *mut ::core::ffi::c_char,
5608    pub max: usize,
5609}
5610unsafe extern "C" {
5611    pub fn BUF_MEM_new() -> *mut BUF_MEM;
5612}
5613unsafe extern "C" {
5614    pub fn BUF_MEM_free(buf: *mut BUF_MEM);
5615}
5616unsafe extern "C" {
5617    pub fn BUF_MEM_reserve(buf: *mut BUF_MEM, cap: usize) -> ::core::ffi::c_int;
5618}
5619unsafe extern "C" {
5620    pub fn BUF_MEM_grow(buf: *mut BUF_MEM, len: usize) -> usize;
5621}
5622unsafe extern "C" {
5623    pub fn BUF_MEM_grow_clean(buf: *mut BUF_MEM, len: usize) -> usize;
5624}
5625unsafe extern "C" {
5626    pub fn BUF_MEM_append(
5627        buf: *mut BUF_MEM,
5628        in_: *const ::core::ffi::c_void,
5629        len: usize,
5630    ) -> ::core::ffi::c_int;
5631}
5632unsafe extern "C" {
5633    pub fn BUF_strdup(str_: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
5634}
5635unsafe extern "C" {
5636    pub fn BUF_strnlen(str_: *const ::core::ffi::c_char, max_len: usize) -> usize;
5637}
5638unsafe extern "C" {
5639    pub fn BUF_strndup(str_: *const ::core::ffi::c_char, size: usize) -> *mut ::core::ffi::c_char;
5640}
5641unsafe extern "C" {
5642    pub fn BUF_memdup(data: *const ::core::ffi::c_void, size: usize) -> *mut ::core::ffi::c_void;
5643}
5644unsafe extern "C" {
5645    pub fn BUF_strlcpy(
5646        dst: *mut ::core::ffi::c_char,
5647        src: *const ::core::ffi::c_char,
5648        dst_size: usize,
5649    ) -> usize;
5650}
5651unsafe extern "C" {
5652    pub fn BUF_strlcat(
5653        dst: *mut ::core::ffi::c_char,
5654        src: *const ::core::ffi::c_char,
5655        dst_size: usize,
5656    ) -> usize;
5657}
5658unsafe extern "C" {
5659    #[link_name = "ERR_GET_LIB__extern"]
5660    pub fn ERR_GET_LIB(packed_error: u32) -> ::core::ffi::c_int;
5661}
5662unsafe extern "C" {
5663    #[link_name = "ERR_GET_REASON__extern"]
5664    pub fn ERR_GET_REASON(packed_error: u32) -> ::core::ffi::c_int;
5665}
5666unsafe extern "C" {
5667    #[link_name = "ERR_equals__extern"]
5668    pub fn ERR_equals(
5669        packed_error: u32,
5670        lib: ::core::ffi::c_int,
5671        reason: ::core::ffi::c_int,
5672    ) -> ::core::ffi::c_int;
5673}
5674unsafe extern "C" {
5675    pub fn ERR_get_error() -> u32;
5676}
5677unsafe extern "C" {
5678    pub fn ERR_get_error_line(
5679        file: *mut *const ::core::ffi::c_char,
5680        line: *mut ::core::ffi::c_int,
5681    ) -> u32;
5682}
5683unsafe extern "C" {
5684    pub fn ERR_get_error_line_data(
5685        file: *mut *const ::core::ffi::c_char,
5686        line: *mut ::core::ffi::c_int,
5687        data: *mut *const ::core::ffi::c_char,
5688        flags: *mut ::core::ffi::c_int,
5689    ) -> u32;
5690}
5691unsafe extern "C" {
5692    pub fn ERR_peek_error() -> u32;
5693}
5694unsafe extern "C" {
5695    pub fn ERR_peek_error_line(
5696        file: *mut *const ::core::ffi::c_char,
5697        line: *mut ::core::ffi::c_int,
5698    ) -> u32;
5699}
5700unsafe extern "C" {
5701    pub fn ERR_peek_error_line_data(
5702        file: *mut *const ::core::ffi::c_char,
5703        line: *mut ::core::ffi::c_int,
5704        data: *mut *const ::core::ffi::c_char,
5705        flags: *mut ::core::ffi::c_int,
5706    ) -> u32;
5707}
5708unsafe extern "C" {
5709    pub fn ERR_peek_last_error() -> u32;
5710}
5711unsafe extern "C" {
5712    pub fn ERR_peek_last_error_line(
5713        file: *mut *const ::core::ffi::c_char,
5714        line: *mut ::core::ffi::c_int,
5715    ) -> u32;
5716}
5717unsafe extern "C" {
5718    pub fn ERR_peek_last_error_line_data(
5719        file: *mut *const ::core::ffi::c_char,
5720        line: *mut ::core::ffi::c_int,
5721        data: *mut *const ::core::ffi::c_char,
5722        flags: *mut ::core::ffi::c_int,
5723    ) -> u32;
5724}
5725unsafe extern "C" {
5726    pub fn ERR_error_string_n(
5727        packed_error: u32,
5728        buf: *mut ::core::ffi::c_char,
5729        len: usize,
5730    ) -> *mut ::core::ffi::c_char;
5731}
5732unsafe extern "C" {
5733    pub fn ERR_lib_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5734}
5735unsafe extern "C" {
5736    pub fn ERR_reason_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5737}
5738unsafe extern "C" {
5739    pub fn ERR_lib_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5740}
5741unsafe extern "C" {
5742    pub fn ERR_reason_symbol_name(packed_error: u32) -> *const ::core::ffi::c_char;
5743}
5744pub type ERR_print_errors_callback_t = ::core::option::Option<
5745    unsafe extern "C" fn(
5746        str_: *const ::core::ffi::c_char,
5747        len: usize,
5748        ctx: *mut ::core::ffi::c_void,
5749    ) -> ::core::ffi::c_int,
5750>;
5751unsafe extern "C" {
5752    pub fn ERR_print_errors_cb(
5753        callback: ERR_print_errors_callback_t,
5754        ctx: *mut ::core::ffi::c_void,
5755    );
5756}
5757unsafe extern "C" {
5758    pub fn ERR_print_errors_fp(file: *mut FILE);
5759}
5760unsafe extern "C" {
5761    pub fn ERR_clear_error();
5762}
5763unsafe extern "C" {
5764    pub fn ERR_set_mark() -> ::core::ffi::c_int;
5765}
5766unsafe extern "C" {
5767    pub fn ERR_pop_to_mark() -> ::core::ffi::c_int;
5768}
5769unsafe extern "C" {
5770    pub fn ERR_get_next_error_library() -> ::core::ffi::c_int;
5771}
5772pub const ERR_LIB_NONE: _bindgen_ty_1 = 1;
5773pub const ERR_LIB_SYS: _bindgen_ty_1 = 2;
5774pub const ERR_LIB_BN: _bindgen_ty_1 = 3;
5775pub const ERR_LIB_RSA: _bindgen_ty_1 = 4;
5776pub const ERR_LIB_DH: _bindgen_ty_1 = 5;
5777pub const ERR_LIB_EVP: _bindgen_ty_1 = 6;
5778pub const ERR_LIB_BUF: _bindgen_ty_1 = 7;
5779pub const ERR_LIB_OBJ: _bindgen_ty_1 = 8;
5780pub const ERR_LIB_PEM: _bindgen_ty_1 = 9;
5781pub const ERR_LIB_DSA: _bindgen_ty_1 = 10;
5782pub const ERR_LIB_X509: _bindgen_ty_1 = 11;
5783pub const ERR_LIB_ASN1: _bindgen_ty_1 = 12;
5784pub const ERR_LIB_CONF: _bindgen_ty_1 = 13;
5785pub const ERR_LIB_CRYPTO: _bindgen_ty_1 = 14;
5786pub const ERR_LIB_EC: _bindgen_ty_1 = 15;
5787pub const ERR_LIB_SSL: _bindgen_ty_1 = 16;
5788pub const ERR_LIB_BIO: _bindgen_ty_1 = 17;
5789pub const ERR_LIB_PKCS7: _bindgen_ty_1 = 18;
5790pub const ERR_LIB_PKCS8: _bindgen_ty_1 = 19;
5791pub const ERR_LIB_X509V3: _bindgen_ty_1 = 20;
5792pub const ERR_LIB_RAND: _bindgen_ty_1 = 21;
5793pub const ERR_LIB_ENGINE: _bindgen_ty_1 = 22;
5794pub const ERR_LIB_OCSP: _bindgen_ty_1 = 23;
5795pub const ERR_LIB_UI: _bindgen_ty_1 = 24;
5796pub const ERR_LIB_COMP: _bindgen_ty_1 = 25;
5797pub const ERR_LIB_ECDSA: _bindgen_ty_1 = 26;
5798pub const ERR_LIB_ECDH: _bindgen_ty_1 = 27;
5799pub const ERR_LIB_HMAC: _bindgen_ty_1 = 28;
5800pub const ERR_LIB_DIGEST: _bindgen_ty_1 = 29;
5801pub const ERR_LIB_CIPHER: _bindgen_ty_1 = 30;
5802pub const ERR_LIB_HKDF: _bindgen_ty_1 = 31;
5803pub const ERR_LIB_TRUST_TOKEN: _bindgen_ty_1 = 32;
5804pub const ERR_LIB_CMS: _bindgen_ty_1 = 33;
5805pub const ERR_LIB_USER: _bindgen_ty_1 = 34;
5806pub const ERR_NUM_LIBS: _bindgen_ty_1 = 35;
5807pub type _bindgen_ty_1 = ::core::ffi::c_uint;
5808unsafe extern "C" {
5809    pub fn ERR_load_BIO_strings();
5810}
5811unsafe extern "C" {
5812    pub fn ERR_load_ERR_strings();
5813}
5814unsafe extern "C" {
5815    pub fn ERR_load_crypto_strings();
5816}
5817unsafe extern "C" {
5818    pub fn ERR_load_RAND_strings();
5819}
5820unsafe extern "C" {
5821    pub fn ERR_free_strings();
5822}
5823unsafe extern "C" {
5824    pub fn ERR_remove_state(pid: ::core::ffi::c_ulong);
5825}
5826unsafe extern "C" {
5827    pub fn ERR_remove_thread_state(tid: *const CRYPTO_THREADID);
5828}
5829unsafe extern "C" {
5830    pub fn ERR_func_error_string(packed_error: u32) -> *const ::core::ffi::c_char;
5831}
5832unsafe extern "C" {
5833    pub fn ERR_error_string(
5834        packed_error: u32,
5835        buf: *mut ::core::ffi::c_char,
5836    ) -> *mut ::core::ffi::c_char;
5837}
5838unsafe extern "C" {
5839    #[link_name = "ERR_GET_FUNC__extern"]
5840    pub fn ERR_GET_FUNC(packed_error: u32) -> ::core::ffi::c_int;
5841}
5842unsafe extern "C" {
5843    pub fn ERR_clear_system_error();
5844}
5845unsafe extern "C" {
5846    pub fn ERR_put_error(
5847        library: ::core::ffi::c_int,
5848        unused: ::core::ffi::c_int,
5849        reason: ::core::ffi::c_int,
5850        file: *const ::core::ffi::c_char,
5851        line: ::core::ffi::c_uint,
5852    );
5853}
5854unsafe extern "C" {
5855    pub fn ERR_add_error_data(count: ::core::ffi::c_uint, ...);
5856}
5857unsafe extern "C" {
5858    pub fn ERR_add_error_dataf(format: *const ::core::ffi::c_char, ...);
5859}
5860unsafe extern "C" {
5861    pub fn ERR_set_error_data(data: *mut ::core::ffi::c_char, flags: ::core::ffi::c_int);
5862}
5863#[repr(C)]
5864#[derive(Debug)]
5865pub struct crypto_ex_data_st {
5866    _unused: [u8; 0],
5867}
5868pub type CRYPTO_EX_DATA = crypto_ex_data_st;
5869pub type CRYPTO_EX_free = ::core::option::Option<
5870    unsafe extern "C" fn(
5871        parent: *mut ::core::ffi::c_void,
5872        ptr: *mut ::core::ffi::c_void,
5873        ad: *mut CRYPTO_EX_DATA,
5874        index: ::core::ffi::c_int,
5875        argl: ::core::ffi::c_long,
5876        argp: *mut ::core::ffi::c_void,
5877    ),
5878>;
5879unsafe extern "C" {
5880    pub fn CRYPTO_cleanup_all_ex_data();
5881}
5882pub type CRYPTO_EX_dup = ::core::option::Option<
5883    unsafe extern "C" fn(
5884        to: *mut CRYPTO_EX_DATA,
5885        from: *const CRYPTO_EX_DATA,
5886        from_d: *mut *mut ::core::ffi::c_void,
5887        index: ::core::ffi::c_int,
5888        argl: ::core::ffi::c_long,
5889        argp: *mut ::core::ffi::c_void,
5890    ) -> ::core::ffi::c_int,
5891>;
5892pub type CRYPTO_EX_unused = ::core::ffi::c_int;
5893pub type OPENSSL_sk_free_func =
5894    ::core::option::Option<unsafe extern "C" fn(ptr: *mut ::core::ffi::c_void)>;
5895pub type OPENSSL_sk_copy_func = ::core::option::Option<
5896    unsafe extern "C" fn(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
5897>;
5898pub type OPENSSL_sk_cmp_func = ::core::option::Option<
5899    unsafe extern "C" fn(
5900        a: *const *const ::core::ffi::c_void,
5901        b: *const *const ::core::ffi::c_void,
5902    ) -> ::core::ffi::c_int,
5903>;
5904pub type OPENSSL_sk_delete_if_func = ::core::option::Option<
5905    unsafe extern "C" fn(
5906        obj: *mut ::core::ffi::c_void,
5907        data: *mut ::core::ffi::c_void,
5908    ) -> ::core::ffi::c_int,
5909>;
5910pub type OPENSSL_sk_call_free_func = ::core::option::Option<
5911    unsafe extern "C" fn(arg1: OPENSSL_sk_free_func, arg2: *mut ::core::ffi::c_void),
5912>;
5913pub type OPENSSL_sk_call_copy_func = ::core::option::Option<
5914    unsafe extern "C" fn(
5915        arg1: OPENSSL_sk_copy_func,
5916        arg2: *const ::core::ffi::c_void,
5917    ) -> *mut ::core::ffi::c_void,
5918>;
5919pub type OPENSSL_sk_call_cmp_func = ::core::option::Option<
5920    unsafe extern "C" fn(
5921        arg1: OPENSSL_sk_cmp_func,
5922        arg2: *const ::core::ffi::c_void,
5923        arg3: *const ::core::ffi::c_void,
5924    ) -> ::core::ffi::c_int,
5925>;
5926pub type OPENSSL_sk_call_delete_if_func = ::core::option::Option<
5927    unsafe extern "C" fn(
5928        arg1: OPENSSL_sk_delete_if_func,
5929        arg2: *mut ::core::ffi::c_void,
5930        arg3: *mut ::core::ffi::c_void,
5931    ) -> ::core::ffi::c_int,
5932>;
5933#[repr(C)]
5934#[derive(Debug)]
5935pub struct stack_st {
5936    _unused: [u8; 0],
5937}
5938pub type OPENSSL_STACK = stack_st;
5939unsafe extern "C" {
5940    pub fn OPENSSL_sk_new(comp: OPENSSL_sk_cmp_func) -> *mut OPENSSL_STACK;
5941}
5942unsafe extern "C" {
5943    pub fn OPENSSL_sk_new_null() -> *mut OPENSSL_STACK;
5944}
5945unsafe extern "C" {
5946    pub fn OPENSSL_sk_num(sk: *const OPENSSL_STACK) -> usize;
5947}
5948unsafe extern "C" {
5949    pub fn OPENSSL_sk_zero(sk: *mut OPENSSL_STACK);
5950}
5951unsafe extern "C" {
5952    pub fn OPENSSL_sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
5953}
5954unsafe extern "C" {
5955    pub fn OPENSSL_sk_set(
5956        sk: *mut OPENSSL_STACK,
5957        i: usize,
5958        p: *mut ::core::ffi::c_void,
5959    ) -> *mut ::core::ffi::c_void;
5960}
5961unsafe extern "C" {
5962    pub fn OPENSSL_sk_free(sk: *mut OPENSSL_STACK);
5963}
5964unsafe extern "C" {
5965    pub fn OPENSSL_sk_pop_free_ex(
5966        sk: *mut OPENSSL_STACK,
5967        call_free_func: OPENSSL_sk_call_free_func,
5968        free_func: OPENSSL_sk_free_func,
5969    );
5970}
5971unsafe extern "C" {
5972    pub fn OPENSSL_sk_insert(
5973        sk: *mut OPENSSL_STACK,
5974        p: *mut ::core::ffi::c_void,
5975        where_: usize,
5976    ) -> usize;
5977}
5978unsafe extern "C" {
5979    pub fn OPENSSL_sk_delete(sk: *mut OPENSSL_STACK, where_: usize) -> *mut ::core::ffi::c_void;
5980}
5981unsafe extern "C" {
5982    pub fn OPENSSL_sk_delete_ptr(
5983        sk: *mut OPENSSL_STACK,
5984        p: *const ::core::ffi::c_void,
5985    ) -> *mut ::core::ffi::c_void;
5986}
5987unsafe extern "C" {
5988    pub fn OPENSSL_sk_delete_if(
5989        sk: *mut OPENSSL_STACK,
5990        call_func: OPENSSL_sk_call_delete_if_func,
5991        func: OPENSSL_sk_delete_if_func,
5992        data: *mut ::core::ffi::c_void,
5993    );
5994}
5995unsafe extern "C" {
5996    pub fn OPENSSL_sk_find(
5997        sk: *const OPENSSL_STACK,
5998        out_index: *mut usize,
5999        p: *const ::core::ffi::c_void,
6000        call_cmp_func: OPENSSL_sk_call_cmp_func,
6001    ) -> ::core::ffi::c_int;
6002}
6003unsafe extern "C" {
6004    pub fn OPENSSL_sk_shift(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6005}
6006unsafe extern "C" {
6007    pub fn OPENSSL_sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
6008}
6009unsafe extern "C" {
6010    pub fn OPENSSL_sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6011}
6012unsafe extern "C" {
6013    pub fn OPENSSL_sk_dup(sk: *const OPENSSL_STACK) -> *mut OPENSSL_STACK;
6014}
6015unsafe extern "C" {
6016    pub fn OPENSSL_sk_sort(sk: *mut OPENSSL_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func);
6017}
6018unsafe extern "C" {
6019    pub fn OPENSSL_sk_sort_and_dedup(
6020        sk: *mut OPENSSL_STACK,
6021        call_cmp_func: OPENSSL_sk_call_cmp_func,
6022        call_free_func: OPENSSL_sk_call_free_func,
6023        free_func: OPENSSL_sk_free_func,
6024    );
6025}
6026unsafe extern "C" {
6027    pub fn OPENSSL_sk_is_sorted(sk: *const OPENSSL_STACK) -> ::core::ffi::c_int;
6028}
6029unsafe extern "C" {
6030    pub fn OPENSSL_sk_set_cmp_func(
6031        sk: *mut OPENSSL_STACK,
6032        comp: OPENSSL_sk_cmp_func,
6033    ) -> OPENSSL_sk_cmp_func;
6034}
6035unsafe extern "C" {
6036    pub fn OPENSSL_sk_deep_copy(
6037        sk: *const OPENSSL_STACK,
6038        call_copy_func: OPENSSL_sk_call_copy_func,
6039        copy_func: OPENSSL_sk_copy_func,
6040        call_free_func: OPENSSL_sk_call_free_func,
6041        free_func: OPENSSL_sk_free_func,
6042    ) -> *mut OPENSSL_STACK;
6043}
6044pub type _STACK = OPENSSL_STACK;
6045unsafe extern "C" {
6046    pub fn sk_new_null() -> *mut OPENSSL_STACK;
6047}
6048unsafe extern "C" {
6049    pub fn sk_num(sk: *const OPENSSL_STACK) -> usize;
6050}
6051unsafe extern "C" {
6052    pub fn sk_value(sk: *const OPENSSL_STACK, i: usize) -> *mut ::core::ffi::c_void;
6053}
6054unsafe extern "C" {
6055    pub fn sk_free(sk: *mut OPENSSL_STACK);
6056}
6057unsafe extern "C" {
6058    pub fn sk_push(sk: *mut OPENSSL_STACK, p: *mut ::core::ffi::c_void) -> usize;
6059}
6060unsafe extern "C" {
6061    pub fn sk_pop(sk: *mut OPENSSL_STACK) -> *mut ::core::ffi::c_void;
6062}
6063unsafe extern "C" {
6064    pub fn sk_pop_free_ex(
6065        sk: *mut OPENSSL_STACK,
6066        call_free_func: OPENSSL_sk_call_free_func,
6067        free_func: OPENSSL_sk_free_func,
6068    );
6069}
6070unsafe extern "C" {
6071    pub fn sk_pop_free(sk: *mut OPENSSL_STACK, free_func: OPENSSL_sk_free_func);
6072}
6073pub type OPENSSL_STRING = *mut ::core::ffi::c_char;
6074#[repr(C)]
6075#[derive(Debug)]
6076pub struct stack_st_void {
6077    _unused: [u8; 0],
6078}
6079pub type sk_void_free_func =
6080    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
6081pub type sk_void_copy_func = ::core::option::Option<
6082    unsafe extern "C" fn(arg1: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
6083>;
6084pub type sk_void_cmp_func = ::core::option::Option<
6085    unsafe extern "C" fn(
6086        arg1: *const *const ::core::ffi::c_void,
6087        arg2: *const *const ::core::ffi::c_void,
6088    ) -> ::core::ffi::c_int,
6089>;
6090pub type sk_void_delete_if_func = ::core::option::Option<
6091    unsafe extern "C" fn(
6092        arg1: *mut ::core::ffi::c_void,
6093        arg2: *mut ::core::ffi::c_void,
6094    ) -> ::core::ffi::c_int,
6095>;
6096unsafe extern "C" {
6097    #[link_name = "sk_void_call_free_func__extern"]
6098    pub fn sk_void_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6099}
6100unsafe extern "C" {
6101    #[link_name = "sk_void_call_copy_func__extern"]
6102    pub fn sk_void_call_copy_func(
6103        copy_func: OPENSSL_sk_copy_func,
6104        ptr: *const ::core::ffi::c_void,
6105    ) -> *mut ::core::ffi::c_void;
6106}
6107unsafe extern "C" {
6108    #[link_name = "sk_void_call_cmp_func__extern"]
6109    pub fn sk_void_call_cmp_func(
6110        cmp_func: OPENSSL_sk_cmp_func,
6111        a: *const ::core::ffi::c_void,
6112        b: *const ::core::ffi::c_void,
6113    ) -> ::core::ffi::c_int;
6114}
6115unsafe extern "C" {
6116    #[link_name = "sk_void_call_delete_if_func__extern"]
6117    pub fn sk_void_call_delete_if_func(
6118        func: OPENSSL_sk_delete_if_func,
6119        obj: *mut ::core::ffi::c_void,
6120        data: *mut ::core::ffi::c_void,
6121    ) -> ::core::ffi::c_int;
6122}
6123unsafe extern "C" {
6124    #[link_name = "sk_void_new__extern"]
6125    pub fn sk_void_new(comp: sk_void_cmp_func) -> *mut stack_st_void;
6126}
6127unsafe extern "C" {
6128    #[link_name = "sk_void_new_null__extern"]
6129    pub fn sk_void_new_null() -> *mut stack_st_void;
6130}
6131unsafe extern "C" {
6132    #[link_name = "sk_void_num__extern"]
6133    pub fn sk_void_num(sk: *const stack_st_void) -> usize;
6134}
6135unsafe extern "C" {
6136    #[link_name = "sk_void_zero__extern"]
6137    pub fn sk_void_zero(sk: *mut stack_st_void);
6138}
6139unsafe extern "C" {
6140    #[link_name = "sk_void_value__extern"]
6141    pub fn sk_void_value(sk: *const stack_st_void, i: usize) -> *mut ::core::ffi::c_void;
6142}
6143unsafe extern "C" {
6144    #[link_name = "sk_void_set__extern"]
6145    pub fn sk_void_set(
6146        sk: *mut stack_st_void,
6147        i: usize,
6148        p: *mut ::core::ffi::c_void,
6149    ) -> *mut ::core::ffi::c_void;
6150}
6151unsafe extern "C" {
6152    #[link_name = "sk_void_free__extern"]
6153    pub fn sk_void_free(sk: *mut stack_st_void);
6154}
6155unsafe extern "C" {
6156    #[link_name = "sk_void_pop_free__extern"]
6157    pub fn sk_void_pop_free(sk: *mut stack_st_void, free_func: sk_void_free_func);
6158}
6159unsafe extern "C" {
6160    #[link_name = "sk_void_insert__extern"]
6161    pub fn sk_void_insert(
6162        sk: *mut stack_st_void,
6163        p: *mut ::core::ffi::c_void,
6164        where_: usize,
6165    ) -> usize;
6166}
6167unsafe extern "C" {
6168    #[link_name = "sk_void_delete__extern"]
6169    pub fn sk_void_delete(sk: *mut stack_st_void, where_: usize) -> *mut ::core::ffi::c_void;
6170}
6171unsafe extern "C" {
6172    #[link_name = "sk_void_delete_ptr__extern"]
6173    pub fn sk_void_delete_ptr(
6174        sk: *mut stack_st_void,
6175        p: *const ::core::ffi::c_void,
6176    ) -> *mut ::core::ffi::c_void;
6177}
6178unsafe extern "C" {
6179    #[link_name = "sk_void_delete_if__extern"]
6180    pub fn sk_void_delete_if(
6181        sk: *mut stack_st_void,
6182        func: sk_void_delete_if_func,
6183        data: *mut ::core::ffi::c_void,
6184    );
6185}
6186unsafe extern "C" {
6187    #[link_name = "sk_void_find__extern"]
6188    pub fn sk_void_find(
6189        sk: *const stack_st_void,
6190        out_index: *mut usize,
6191        p: *const ::core::ffi::c_void,
6192    ) -> ::core::ffi::c_int;
6193}
6194unsafe extern "C" {
6195    #[link_name = "sk_void_shift__extern"]
6196    pub fn sk_void_shift(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6197}
6198unsafe extern "C" {
6199    #[link_name = "sk_void_push__extern"]
6200    pub fn sk_void_push(sk: *mut stack_st_void, p: *mut ::core::ffi::c_void) -> usize;
6201}
6202unsafe extern "C" {
6203    #[link_name = "sk_void_pop__extern"]
6204    pub fn sk_void_pop(sk: *mut stack_st_void) -> *mut ::core::ffi::c_void;
6205}
6206unsafe extern "C" {
6207    #[link_name = "sk_void_dup__extern"]
6208    pub fn sk_void_dup(sk: *const stack_st_void) -> *mut stack_st_void;
6209}
6210unsafe extern "C" {
6211    #[link_name = "sk_void_sort__extern"]
6212    pub fn sk_void_sort(sk: *mut stack_st_void);
6213}
6214unsafe extern "C" {
6215    #[link_name = "sk_void_sort_and_dedup__extern"]
6216    pub fn sk_void_sort_and_dedup(sk: *mut stack_st_void, free_func: sk_void_free_func);
6217}
6218unsafe extern "C" {
6219    #[link_name = "sk_void_is_sorted__extern"]
6220    pub fn sk_void_is_sorted(sk: *const stack_st_void) -> ::core::ffi::c_int;
6221}
6222unsafe extern "C" {
6223    #[link_name = "sk_void_set_cmp_func__extern"]
6224    pub fn sk_void_set_cmp_func(sk: *mut stack_st_void, comp: sk_void_cmp_func)
6225        -> sk_void_cmp_func;
6226}
6227unsafe extern "C" {
6228    #[link_name = "sk_void_deep_copy__extern"]
6229    pub fn sk_void_deep_copy(
6230        sk: *const stack_st_void,
6231        copy_func: sk_void_copy_func,
6232        free_func: sk_void_free_func,
6233    ) -> *mut stack_st_void;
6234}
6235#[repr(C)]
6236#[derive(Debug)]
6237pub struct stack_st_OPENSSL_STRING {
6238    _unused: [u8; 0],
6239}
6240pub type sk_OPENSSL_STRING_free_func =
6241    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_char)>;
6242pub type sk_OPENSSL_STRING_copy_func = ::core::option::Option<
6243    unsafe extern "C" fn(arg1: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char,
6244>;
6245pub type sk_OPENSSL_STRING_cmp_func = ::core::option::Option<
6246    unsafe extern "C" fn(
6247        arg1: *const *const ::core::ffi::c_char,
6248        arg2: *const *const ::core::ffi::c_char,
6249    ) -> ::core::ffi::c_int,
6250>;
6251pub type sk_OPENSSL_STRING_delete_if_func = ::core::option::Option<
6252    unsafe extern "C" fn(
6253        arg1: *mut ::core::ffi::c_char,
6254        arg2: *mut ::core::ffi::c_void,
6255    ) -> ::core::ffi::c_int,
6256>;
6257unsafe extern "C" {
6258    #[link_name = "sk_OPENSSL_STRING_call_free_func__extern"]
6259    pub fn sk_OPENSSL_STRING_call_free_func(
6260        free_func: OPENSSL_sk_free_func,
6261        ptr: *mut ::core::ffi::c_void,
6262    );
6263}
6264unsafe extern "C" {
6265    #[link_name = "sk_OPENSSL_STRING_call_copy_func__extern"]
6266    pub fn sk_OPENSSL_STRING_call_copy_func(
6267        copy_func: OPENSSL_sk_copy_func,
6268        ptr: *const ::core::ffi::c_void,
6269    ) -> *mut ::core::ffi::c_void;
6270}
6271unsafe extern "C" {
6272    #[link_name = "sk_OPENSSL_STRING_call_cmp_func__extern"]
6273    pub fn sk_OPENSSL_STRING_call_cmp_func(
6274        cmp_func: OPENSSL_sk_cmp_func,
6275        a: *const ::core::ffi::c_void,
6276        b: *const ::core::ffi::c_void,
6277    ) -> ::core::ffi::c_int;
6278}
6279unsafe extern "C" {
6280    #[link_name = "sk_OPENSSL_STRING_call_delete_if_func__extern"]
6281    pub fn sk_OPENSSL_STRING_call_delete_if_func(
6282        func: OPENSSL_sk_delete_if_func,
6283        obj: *mut ::core::ffi::c_void,
6284        data: *mut ::core::ffi::c_void,
6285    ) -> ::core::ffi::c_int;
6286}
6287unsafe extern "C" {
6288    #[link_name = "sk_OPENSSL_STRING_new__extern"]
6289    pub fn sk_OPENSSL_STRING_new(comp: sk_OPENSSL_STRING_cmp_func) -> *mut stack_st_OPENSSL_STRING;
6290}
6291unsafe extern "C" {
6292    #[link_name = "sk_OPENSSL_STRING_new_null__extern"]
6293    pub fn sk_OPENSSL_STRING_new_null() -> *mut stack_st_OPENSSL_STRING;
6294}
6295unsafe extern "C" {
6296    #[link_name = "sk_OPENSSL_STRING_num__extern"]
6297    pub fn sk_OPENSSL_STRING_num(sk: *const stack_st_OPENSSL_STRING) -> usize;
6298}
6299unsafe extern "C" {
6300    #[link_name = "sk_OPENSSL_STRING_zero__extern"]
6301    pub fn sk_OPENSSL_STRING_zero(sk: *mut stack_st_OPENSSL_STRING);
6302}
6303unsafe extern "C" {
6304    #[link_name = "sk_OPENSSL_STRING_value__extern"]
6305    pub fn sk_OPENSSL_STRING_value(
6306        sk: *const stack_st_OPENSSL_STRING,
6307        i: usize,
6308    ) -> *mut ::core::ffi::c_char;
6309}
6310unsafe extern "C" {
6311    #[link_name = "sk_OPENSSL_STRING_set__extern"]
6312    pub fn sk_OPENSSL_STRING_set(
6313        sk: *mut stack_st_OPENSSL_STRING,
6314        i: usize,
6315        p: *mut ::core::ffi::c_char,
6316    ) -> *mut ::core::ffi::c_char;
6317}
6318unsafe extern "C" {
6319    #[link_name = "sk_OPENSSL_STRING_free__extern"]
6320    pub fn sk_OPENSSL_STRING_free(sk: *mut stack_st_OPENSSL_STRING);
6321}
6322unsafe extern "C" {
6323    #[link_name = "sk_OPENSSL_STRING_pop_free__extern"]
6324    pub fn sk_OPENSSL_STRING_pop_free(
6325        sk: *mut stack_st_OPENSSL_STRING,
6326        free_func: sk_OPENSSL_STRING_free_func,
6327    );
6328}
6329unsafe extern "C" {
6330    #[link_name = "sk_OPENSSL_STRING_insert__extern"]
6331    pub fn sk_OPENSSL_STRING_insert(
6332        sk: *mut stack_st_OPENSSL_STRING,
6333        p: *mut ::core::ffi::c_char,
6334        where_: usize,
6335    ) -> usize;
6336}
6337unsafe extern "C" {
6338    #[link_name = "sk_OPENSSL_STRING_delete__extern"]
6339    pub fn sk_OPENSSL_STRING_delete(
6340        sk: *mut stack_st_OPENSSL_STRING,
6341        where_: usize,
6342    ) -> *mut ::core::ffi::c_char;
6343}
6344unsafe extern "C" {
6345    #[link_name = "sk_OPENSSL_STRING_delete_ptr__extern"]
6346    pub fn sk_OPENSSL_STRING_delete_ptr(
6347        sk: *mut stack_st_OPENSSL_STRING,
6348        p: *const ::core::ffi::c_char,
6349    ) -> *mut ::core::ffi::c_char;
6350}
6351unsafe extern "C" {
6352    #[link_name = "sk_OPENSSL_STRING_delete_if__extern"]
6353    pub fn sk_OPENSSL_STRING_delete_if(
6354        sk: *mut stack_st_OPENSSL_STRING,
6355        func: sk_OPENSSL_STRING_delete_if_func,
6356        data: *mut ::core::ffi::c_void,
6357    );
6358}
6359unsafe extern "C" {
6360    #[link_name = "sk_OPENSSL_STRING_find__extern"]
6361    pub fn sk_OPENSSL_STRING_find(
6362        sk: *const stack_st_OPENSSL_STRING,
6363        out_index: *mut usize,
6364        p: *const ::core::ffi::c_char,
6365    ) -> ::core::ffi::c_int;
6366}
6367unsafe extern "C" {
6368    #[link_name = "sk_OPENSSL_STRING_shift__extern"]
6369    pub fn sk_OPENSSL_STRING_shift(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6370}
6371unsafe extern "C" {
6372    #[link_name = "sk_OPENSSL_STRING_push__extern"]
6373    pub fn sk_OPENSSL_STRING_push(
6374        sk: *mut stack_st_OPENSSL_STRING,
6375        p: *mut ::core::ffi::c_char,
6376    ) -> usize;
6377}
6378unsafe extern "C" {
6379    #[link_name = "sk_OPENSSL_STRING_pop__extern"]
6380    pub fn sk_OPENSSL_STRING_pop(sk: *mut stack_st_OPENSSL_STRING) -> *mut ::core::ffi::c_char;
6381}
6382unsafe extern "C" {
6383    #[link_name = "sk_OPENSSL_STRING_dup__extern"]
6384    pub fn sk_OPENSSL_STRING_dup(
6385        sk: *const stack_st_OPENSSL_STRING,
6386    ) -> *mut stack_st_OPENSSL_STRING;
6387}
6388unsafe extern "C" {
6389    #[link_name = "sk_OPENSSL_STRING_sort__extern"]
6390    pub fn sk_OPENSSL_STRING_sort(sk: *mut stack_st_OPENSSL_STRING);
6391}
6392unsafe extern "C" {
6393    #[link_name = "sk_OPENSSL_STRING_sort_and_dedup__extern"]
6394    pub fn sk_OPENSSL_STRING_sort_and_dedup(
6395        sk: *mut stack_st_OPENSSL_STRING,
6396        free_func: sk_OPENSSL_STRING_free_func,
6397    );
6398}
6399unsafe extern "C" {
6400    #[link_name = "sk_OPENSSL_STRING_is_sorted__extern"]
6401    pub fn sk_OPENSSL_STRING_is_sorted(sk: *const stack_st_OPENSSL_STRING) -> ::core::ffi::c_int;
6402}
6403unsafe extern "C" {
6404    #[link_name = "sk_OPENSSL_STRING_set_cmp_func__extern"]
6405    pub fn sk_OPENSSL_STRING_set_cmp_func(
6406        sk: *mut stack_st_OPENSSL_STRING,
6407        comp: sk_OPENSSL_STRING_cmp_func,
6408    ) -> sk_OPENSSL_STRING_cmp_func;
6409}
6410unsafe extern "C" {
6411    #[link_name = "sk_OPENSSL_STRING_deep_copy__extern"]
6412    pub fn sk_OPENSSL_STRING_deep_copy(
6413        sk: *const stack_st_OPENSSL_STRING,
6414        copy_func: sk_OPENSSL_STRING_copy_func,
6415        free_func: sk_OPENSSL_STRING_free_func,
6416    ) -> *mut stack_st_OPENSSL_STRING;
6417}
6418#[repr(C)]
6419#[derive(Debug)]
6420pub struct stack_st_BIO {
6421    _unused: [u8; 0],
6422}
6423pub type sk_BIO_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut BIO)>;
6424pub type sk_BIO_copy_func =
6425    ::core::option::Option<unsafe extern "C" fn(arg1: *const BIO) -> *mut BIO>;
6426pub type sk_BIO_cmp_func = ::core::option::Option<
6427    unsafe extern "C" fn(arg1: *const *const BIO, arg2: *const *const BIO) -> ::core::ffi::c_int,
6428>;
6429pub type sk_BIO_delete_if_func = ::core::option::Option<
6430    unsafe extern "C" fn(arg1: *mut BIO, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
6431>;
6432unsafe extern "C" {
6433    #[link_name = "sk_BIO_call_free_func__extern"]
6434    pub fn sk_BIO_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
6435}
6436unsafe extern "C" {
6437    #[link_name = "sk_BIO_call_copy_func__extern"]
6438    pub fn sk_BIO_call_copy_func(
6439        copy_func: OPENSSL_sk_copy_func,
6440        ptr: *const ::core::ffi::c_void,
6441    ) -> *mut ::core::ffi::c_void;
6442}
6443unsafe extern "C" {
6444    #[link_name = "sk_BIO_call_cmp_func__extern"]
6445    pub fn sk_BIO_call_cmp_func(
6446        cmp_func: OPENSSL_sk_cmp_func,
6447        a: *const ::core::ffi::c_void,
6448        b: *const ::core::ffi::c_void,
6449    ) -> ::core::ffi::c_int;
6450}
6451unsafe extern "C" {
6452    #[link_name = "sk_BIO_call_delete_if_func__extern"]
6453    pub fn sk_BIO_call_delete_if_func(
6454        func: OPENSSL_sk_delete_if_func,
6455        obj: *mut ::core::ffi::c_void,
6456        data: *mut ::core::ffi::c_void,
6457    ) -> ::core::ffi::c_int;
6458}
6459unsafe extern "C" {
6460    #[link_name = "sk_BIO_new__extern"]
6461    pub fn sk_BIO_new(comp: sk_BIO_cmp_func) -> *mut stack_st_BIO;
6462}
6463unsafe extern "C" {
6464    #[link_name = "sk_BIO_new_null__extern"]
6465    pub fn sk_BIO_new_null() -> *mut stack_st_BIO;
6466}
6467unsafe extern "C" {
6468    #[link_name = "sk_BIO_num__extern"]
6469    pub fn sk_BIO_num(sk: *const stack_st_BIO) -> usize;
6470}
6471unsafe extern "C" {
6472    #[link_name = "sk_BIO_zero__extern"]
6473    pub fn sk_BIO_zero(sk: *mut stack_st_BIO);
6474}
6475unsafe extern "C" {
6476    #[link_name = "sk_BIO_value__extern"]
6477    pub fn sk_BIO_value(sk: *const stack_st_BIO, i: usize) -> *mut BIO;
6478}
6479unsafe extern "C" {
6480    #[link_name = "sk_BIO_set__extern"]
6481    pub fn sk_BIO_set(sk: *mut stack_st_BIO, i: usize, p: *mut BIO) -> *mut BIO;
6482}
6483unsafe extern "C" {
6484    #[link_name = "sk_BIO_free__extern"]
6485    pub fn sk_BIO_free(sk: *mut stack_st_BIO);
6486}
6487unsafe extern "C" {
6488    #[link_name = "sk_BIO_pop_free__extern"]
6489    pub fn sk_BIO_pop_free(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6490}
6491unsafe extern "C" {
6492    #[link_name = "sk_BIO_insert__extern"]
6493    pub fn sk_BIO_insert(sk: *mut stack_st_BIO, p: *mut BIO, where_: usize) -> usize;
6494}
6495unsafe extern "C" {
6496    #[link_name = "sk_BIO_delete__extern"]
6497    pub fn sk_BIO_delete(sk: *mut stack_st_BIO, where_: usize) -> *mut BIO;
6498}
6499unsafe extern "C" {
6500    #[link_name = "sk_BIO_delete_ptr__extern"]
6501    pub fn sk_BIO_delete_ptr(sk: *mut stack_st_BIO, p: *const BIO) -> *mut BIO;
6502}
6503unsafe extern "C" {
6504    #[link_name = "sk_BIO_delete_if__extern"]
6505    pub fn sk_BIO_delete_if(
6506        sk: *mut stack_st_BIO,
6507        func: sk_BIO_delete_if_func,
6508        data: *mut ::core::ffi::c_void,
6509    );
6510}
6511unsafe extern "C" {
6512    #[link_name = "sk_BIO_find__extern"]
6513    pub fn sk_BIO_find(
6514        sk: *const stack_st_BIO,
6515        out_index: *mut usize,
6516        p: *const BIO,
6517    ) -> ::core::ffi::c_int;
6518}
6519unsafe extern "C" {
6520    #[link_name = "sk_BIO_shift__extern"]
6521    pub fn sk_BIO_shift(sk: *mut stack_st_BIO) -> *mut BIO;
6522}
6523unsafe extern "C" {
6524    #[link_name = "sk_BIO_push__extern"]
6525    pub fn sk_BIO_push(sk: *mut stack_st_BIO, p: *mut BIO) -> usize;
6526}
6527unsafe extern "C" {
6528    #[link_name = "sk_BIO_pop__extern"]
6529    pub fn sk_BIO_pop(sk: *mut stack_st_BIO) -> *mut BIO;
6530}
6531unsafe extern "C" {
6532    #[link_name = "sk_BIO_dup__extern"]
6533    pub fn sk_BIO_dup(sk: *const stack_st_BIO) -> *mut stack_st_BIO;
6534}
6535unsafe extern "C" {
6536    #[link_name = "sk_BIO_sort__extern"]
6537    pub fn sk_BIO_sort(sk: *mut stack_st_BIO);
6538}
6539unsafe extern "C" {
6540    #[link_name = "sk_BIO_sort_and_dedup__extern"]
6541    pub fn sk_BIO_sort_and_dedup(sk: *mut stack_st_BIO, free_func: sk_BIO_free_func);
6542}
6543unsafe extern "C" {
6544    #[link_name = "sk_BIO_is_sorted__extern"]
6545    pub fn sk_BIO_is_sorted(sk: *const stack_st_BIO) -> ::core::ffi::c_int;
6546}
6547unsafe extern "C" {
6548    #[link_name = "sk_BIO_set_cmp_func__extern"]
6549    pub fn sk_BIO_set_cmp_func(sk: *mut stack_st_BIO, comp: sk_BIO_cmp_func) -> sk_BIO_cmp_func;
6550}
6551unsafe extern "C" {
6552    #[link_name = "sk_BIO_deep_copy__extern"]
6553    pub fn sk_BIO_deep_copy(
6554        sk: *const stack_st_BIO,
6555        copy_func: sk_BIO_copy_func,
6556        free_func: sk_BIO_free_func,
6557    ) -> *mut stack_st_BIO;
6558}
6559unsafe extern "C" {
6560    pub fn BIO_new(method: *const BIO_METHOD) -> *mut BIO;
6561}
6562unsafe extern "C" {
6563    pub fn BIO_free(bio: *mut BIO) -> ::core::ffi::c_int;
6564}
6565unsafe extern "C" {
6566    pub fn BIO_vfree(bio: *mut BIO);
6567}
6568unsafe extern "C" {
6569    pub fn BIO_up_ref(bio: *mut BIO) -> ::core::ffi::c_int;
6570}
6571unsafe extern "C" {
6572    pub fn BIO_read(
6573        bio: *mut BIO,
6574        data: *mut ::core::ffi::c_void,
6575        len: ::core::ffi::c_int,
6576    ) -> ::core::ffi::c_int;
6577}
6578unsafe extern "C" {
6579    pub fn BIO_gets(
6580        bio: *mut BIO,
6581        buf: *mut ::core::ffi::c_char,
6582        size: ::core::ffi::c_int,
6583    ) -> ::core::ffi::c_int;
6584}
6585unsafe extern "C" {
6586    pub fn BIO_write_ex(
6587        bio: *mut BIO,
6588        data: *const ::core::ffi::c_void,
6589        len: usize,
6590        out_written: *mut usize,
6591    ) -> ::core::ffi::c_int;
6592}
6593unsafe extern "C" {
6594    pub fn BIO_write(
6595        bio: *mut BIO,
6596        data: *const ::core::ffi::c_void,
6597        len: ::core::ffi::c_int,
6598    ) -> ::core::ffi::c_int;
6599}
6600unsafe extern "C" {
6601    pub fn BIO_write_all(
6602        bio: *mut BIO,
6603        data: *const ::core::ffi::c_void,
6604        len: usize,
6605    ) -> ::core::ffi::c_int;
6606}
6607unsafe extern "C" {
6608    pub fn BIO_puts(bio: *mut BIO, buf: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
6609}
6610unsafe extern "C" {
6611    pub fn BIO_flush(bio: *mut BIO) -> ::core::ffi::c_int;
6612}
6613unsafe extern "C" {
6614    pub fn BIO_ctrl(
6615        bio: *mut BIO,
6616        cmd: ::core::ffi::c_int,
6617        larg: ::core::ffi::c_long,
6618        parg: *mut ::core::ffi::c_void,
6619    ) -> ::core::ffi::c_long;
6620}
6621unsafe extern "C" {
6622    pub fn BIO_ptr_ctrl(
6623        bp: *mut BIO,
6624        cmd: ::core::ffi::c_int,
6625        larg: ::core::ffi::c_long,
6626    ) -> *mut ::core::ffi::c_char;
6627}
6628unsafe extern "C" {
6629    pub fn BIO_int_ctrl(
6630        bp: *mut BIO,
6631        cmd: ::core::ffi::c_int,
6632        larg: ::core::ffi::c_long,
6633        iarg: ::core::ffi::c_int,
6634    ) -> ::core::ffi::c_long;
6635}
6636unsafe extern "C" {
6637    pub fn BIO_reset(bio: *mut BIO) -> ::core::ffi::c_int;
6638}
6639unsafe extern "C" {
6640    pub fn BIO_eof(bio: *mut BIO) -> ::core::ffi::c_int;
6641}
6642unsafe extern "C" {
6643    pub fn BIO_set_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6644}
6645unsafe extern "C" {
6646    pub fn BIO_clear_flags(bio: *mut BIO, flags: ::core::ffi::c_int);
6647}
6648unsafe extern "C" {
6649    pub fn BIO_test_flags(bio: *const BIO, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
6650}
6651unsafe extern "C" {
6652    pub fn BIO_should_read(bio: *const BIO) -> ::core::ffi::c_int;
6653}
6654unsafe extern "C" {
6655    pub fn BIO_should_write(bio: *const BIO) -> ::core::ffi::c_int;
6656}
6657unsafe extern "C" {
6658    pub fn BIO_should_retry(bio: *const BIO) -> ::core::ffi::c_int;
6659}
6660unsafe extern "C" {
6661    pub fn BIO_should_io_special(bio: *const BIO) -> ::core::ffi::c_int;
6662}
6663unsafe extern "C" {
6664    pub fn BIO_get_retry_reason(bio: *const BIO) -> ::core::ffi::c_int;
6665}
6666unsafe extern "C" {
6667    pub fn BIO_set_retry_reason(bio: *mut BIO, reason: ::core::ffi::c_int);
6668}
6669unsafe extern "C" {
6670    pub fn BIO_set_retry_read(bio: *mut BIO);
6671}
6672unsafe extern "C" {
6673    pub fn BIO_set_retry_write(bio: *mut BIO);
6674}
6675unsafe extern "C" {
6676    pub fn BIO_get_retry_flags(bio: *mut BIO) -> ::core::ffi::c_int;
6677}
6678unsafe extern "C" {
6679    pub fn BIO_clear_retry_flags(bio: *mut BIO);
6680}
6681unsafe extern "C" {
6682    pub fn BIO_method_type(bio: *const BIO) -> ::core::ffi::c_int;
6683}
6684pub type BIO_info_cb = ::core::option::Option<
6685    unsafe extern "C" fn(
6686        arg1: *mut BIO,
6687        arg2: ::core::ffi::c_int,
6688        arg3: ::core::ffi::c_int,
6689    ) -> ::core::ffi::c_int,
6690>;
6691unsafe extern "C" {
6692    pub fn BIO_callback_ctrl(
6693        bio: *mut BIO,
6694        cmd: ::core::ffi::c_int,
6695        fp: BIO_info_cb,
6696    ) -> ::core::ffi::c_long;
6697}
6698unsafe extern "C" {
6699    pub fn BIO_pending(bio: *const BIO) -> usize;
6700}
6701unsafe extern "C" {
6702    pub fn BIO_ctrl_pending(bio: *const BIO) -> usize;
6703}
6704unsafe extern "C" {
6705    pub fn BIO_wpending(bio: *const BIO) -> usize;
6706}
6707unsafe extern "C" {
6708    pub fn BIO_set_close(bio: *mut BIO, close_flag: ::core::ffi::c_int) -> ::core::ffi::c_int;
6709}
6710unsafe extern "C" {
6711    pub fn BIO_number_read(bio: *const BIO) -> u64;
6712}
6713unsafe extern "C" {
6714    pub fn BIO_number_written(bio: *const BIO) -> u64;
6715}
6716unsafe extern "C" {
6717    pub fn BIO_push(bio: *mut BIO, appended_bio: *mut BIO) -> *mut BIO;
6718}
6719unsafe extern "C" {
6720    pub fn BIO_pop(bio: *mut BIO) -> *mut BIO;
6721}
6722unsafe extern "C" {
6723    pub fn BIO_next(bio: *mut BIO) -> *mut BIO;
6724}
6725unsafe extern "C" {
6726    pub fn BIO_find_type(bio: *mut BIO, type_: ::core::ffi::c_int) -> *mut BIO;
6727}
6728unsafe extern "C" {
6729    pub fn BIO_copy_next_retry(bio: *mut BIO);
6730}
6731unsafe extern "C" {
6732    pub fn BIO_printf(bio: *mut BIO, format: *const ::core::ffi::c_char, ...)
6733        -> ::core::ffi::c_int;
6734}
6735unsafe extern "C" {
6736    pub fn BIO_indent(
6737        bio: *mut BIO,
6738        indent: ::core::ffi::c_uint,
6739        max_indent: ::core::ffi::c_uint,
6740    ) -> ::core::ffi::c_int;
6741}
6742unsafe extern "C" {
6743    pub fn BIO_hexdump(
6744        bio: *mut BIO,
6745        data: *const u8,
6746        len: usize,
6747        indent: ::core::ffi::c_uint,
6748    ) -> ::core::ffi::c_int;
6749}
6750unsafe extern "C" {
6751    pub fn ERR_print_errors(bio: *mut BIO);
6752}
6753unsafe extern "C" {
6754    pub fn BIO_read_asn1(
6755        bio: *mut BIO,
6756        out: *mut *mut u8,
6757        out_len: *mut usize,
6758        max_len: usize,
6759    ) -> ::core::ffi::c_int;
6760}
6761unsafe extern "C" {
6762    pub fn BIO_s_mem() -> *const BIO_METHOD;
6763}
6764unsafe extern "C" {
6765    pub fn BIO_new_mem_buf(buf: *const ::core::ffi::c_void, len: ossl_ssize_t) -> *mut BIO;
6766}
6767unsafe extern "C" {
6768    pub fn BIO_mem_contents(
6769        bio: *const BIO,
6770        out_contents: *mut *const u8,
6771        out_len: *mut usize,
6772    ) -> ::core::ffi::c_int;
6773}
6774unsafe extern "C" {
6775    pub fn BIO_get_mem_data(
6776        bio: *mut BIO,
6777        contents: *mut *mut ::core::ffi::c_char,
6778    ) -> ::core::ffi::c_long;
6779}
6780unsafe extern "C" {
6781    pub fn BIO_get_mem_ptr(bio: *mut BIO, out: *mut *mut BUF_MEM) -> ::core::ffi::c_int;
6782}
6783unsafe extern "C" {
6784    pub fn BIO_set_mem_buf(
6785        bio: *mut BIO,
6786        b: *mut BUF_MEM,
6787        take_ownership: ::core::ffi::c_int,
6788    ) -> ::core::ffi::c_int;
6789}
6790unsafe extern "C" {
6791    pub fn BIO_set_mem_eof_return(
6792        bio: *mut BIO,
6793        eof_value: ::core::ffi::c_int,
6794    ) -> ::core::ffi::c_int;
6795}
6796unsafe extern "C" {
6797    pub fn BIO_s_fd() -> *const BIO_METHOD;
6798}
6799unsafe extern "C" {
6800    pub fn BIO_new_fd(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6801}
6802unsafe extern "C" {
6803    pub fn BIO_set_fd(
6804        bio: *mut BIO,
6805        fd: ::core::ffi::c_int,
6806        close_flag: ::core::ffi::c_int,
6807    ) -> ::core::ffi::c_int;
6808}
6809unsafe extern "C" {
6810    pub fn BIO_get_fd(bio: *mut BIO, out_fd: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
6811}
6812unsafe extern "C" {
6813    pub fn BIO_s_file() -> *const BIO_METHOD;
6814}
6815unsafe extern "C" {
6816    pub fn BIO_new_file(
6817        filename: *const ::core::ffi::c_char,
6818        mode: *const ::core::ffi::c_char,
6819    ) -> *mut BIO;
6820}
6821unsafe extern "C" {
6822    pub fn BIO_new_fp(file: *mut FILE, flags: ::core::ffi::c_int) -> *mut BIO;
6823}
6824unsafe extern "C" {
6825    pub fn BIO_get_fp(bio: *mut BIO, out_file: *mut *mut FILE) -> ::core::ffi::c_int;
6826}
6827unsafe extern "C" {
6828    pub fn BIO_set_fp(
6829        bio: *mut BIO,
6830        file: *mut FILE,
6831        flags: ::core::ffi::c_int,
6832    ) -> ::core::ffi::c_int;
6833}
6834unsafe extern "C" {
6835    pub fn BIO_read_filename(
6836        bio: *mut BIO,
6837        filename: *const ::core::ffi::c_char,
6838    ) -> ::core::ffi::c_int;
6839}
6840unsafe extern "C" {
6841    pub fn BIO_write_filename(
6842        bio: *mut BIO,
6843        filename: *const ::core::ffi::c_char,
6844    ) -> ::core::ffi::c_int;
6845}
6846unsafe extern "C" {
6847    pub fn BIO_append_filename(
6848        bio: *mut BIO,
6849        filename: *const ::core::ffi::c_char,
6850    ) -> ::core::ffi::c_int;
6851}
6852unsafe extern "C" {
6853    pub fn BIO_rw_filename(
6854        bio: *mut BIO,
6855        filename: *const ::core::ffi::c_char,
6856    ) -> ::core::ffi::c_int;
6857}
6858unsafe extern "C" {
6859    pub fn BIO_tell(bio: *mut BIO) -> ::core::ffi::c_long;
6860}
6861unsafe extern "C" {
6862    pub fn BIO_seek(bio: *mut BIO, offset: ::core::ffi::c_long) -> ::core::ffi::c_long;
6863}
6864unsafe extern "C" {
6865    pub fn BIO_s_socket() -> *const BIO_METHOD;
6866}
6867unsafe extern "C" {
6868    pub fn BIO_new_socket(fd: ::core::ffi::c_int, close_flag: ::core::ffi::c_int) -> *mut BIO;
6869}
6870unsafe extern "C" {
6871    pub fn BIO_s_connect() -> *const BIO_METHOD;
6872}
6873unsafe extern "C" {
6874    pub fn BIO_new_connect(host_and_optional_port: *const ::core::ffi::c_char) -> *mut BIO;
6875}
6876unsafe extern "C" {
6877    pub fn BIO_set_conn_hostname(
6878        bio: *mut BIO,
6879        host_and_optional_port: *const ::core::ffi::c_char,
6880    ) -> ::core::ffi::c_int;
6881}
6882unsafe extern "C" {
6883    pub fn BIO_set_conn_port(
6884        bio: *mut BIO,
6885        port_str: *const ::core::ffi::c_char,
6886    ) -> ::core::ffi::c_int;
6887}
6888unsafe extern "C" {
6889    pub fn BIO_set_conn_int_port(
6890        bio: *mut BIO,
6891        port: *const ::core::ffi::c_int,
6892    ) -> ::core::ffi::c_int;
6893}
6894unsafe extern "C" {
6895    pub fn BIO_set_nbio(bio: *mut BIO, on: ::core::ffi::c_int) -> ::core::ffi::c_int;
6896}
6897unsafe extern "C" {
6898    pub fn BIO_do_connect(bio: *mut BIO) -> ::core::ffi::c_int;
6899}
6900unsafe extern "C" {
6901    pub fn BIO_new_bio_pair(
6902        out1: *mut *mut BIO,
6903        writebuf1: usize,
6904        out2: *mut *mut BIO,
6905        writebuf2: usize,
6906    ) -> ::core::ffi::c_int;
6907}
6908unsafe extern "C" {
6909    pub fn BIO_ctrl_get_read_request(bio: *mut BIO) -> usize;
6910}
6911unsafe extern "C" {
6912    pub fn BIO_ctrl_get_write_guarantee(bio: *mut BIO) -> usize;
6913}
6914unsafe extern "C" {
6915    pub fn BIO_shutdown_wr(bio: *mut BIO) -> ::core::ffi::c_int;
6916}
6917unsafe extern "C" {
6918    pub fn BIO_get_new_index() -> ::core::ffi::c_int;
6919}
6920unsafe extern "C" {
6921    pub fn BIO_meth_new(
6922        type_: ::core::ffi::c_int,
6923        name: *const ::core::ffi::c_char,
6924    ) -> *mut BIO_METHOD;
6925}
6926unsafe extern "C" {
6927    pub fn BIO_meth_free(method: *mut BIO_METHOD);
6928}
6929unsafe extern "C" {
6930    pub fn BIO_meth_set_create(
6931        method: *mut BIO_METHOD,
6932        create_func: ::core::option::Option<
6933            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6934        >,
6935    ) -> ::core::ffi::c_int;
6936}
6937unsafe extern "C" {
6938    pub fn BIO_meth_set_destroy(
6939        method: *mut BIO_METHOD,
6940        destroy_func: ::core::option::Option<
6941            unsafe extern "C" fn(arg1: *mut BIO) -> ::core::ffi::c_int,
6942        >,
6943    ) -> ::core::ffi::c_int;
6944}
6945unsafe extern "C" {
6946    pub fn BIO_meth_set_write_ex(
6947        method: *mut BIO_METHOD,
6948        write_ex_func: ::core::option::Option<
6949            unsafe extern "C" fn(
6950                arg1: *mut BIO,
6951                arg2: *const ::core::ffi::c_char,
6952                arg3: usize,
6953                arg4: *mut usize,
6954            ) -> ::core::ffi::c_int,
6955        >,
6956    ) -> ::core::ffi::c_int;
6957}
6958unsafe extern "C" {
6959    pub fn BIO_meth_set_write(
6960        method: *mut BIO_METHOD,
6961        write_func: ::core::option::Option<
6962            unsafe extern "C" fn(
6963                arg1: *mut BIO,
6964                arg2: *const ::core::ffi::c_char,
6965                arg3: ::core::ffi::c_int,
6966            ) -> ::core::ffi::c_int,
6967        >,
6968    ) -> ::core::ffi::c_int;
6969}
6970unsafe extern "C" {
6971    pub fn BIO_meth_set_read(
6972        method: *mut BIO_METHOD,
6973        read_func: ::core::option::Option<
6974            unsafe extern "C" fn(
6975                arg1: *mut BIO,
6976                arg2: *mut ::core::ffi::c_char,
6977                arg3: ::core::ffi::c_int,
6978            ) -> ::core::ffi::c_int,
6979        >,
6980    ) -> ::core::ffi::c_int;
6981}
6982unsafe extern "C" {
6983    pub fn BIO_meth_set_gets(
6984        method: *mut BIO_METHOD,
6985        gets_func: ::core::option::Option<
6986            unsafe extern "C" fn(
6987                arg1: *mut BIO,
6988                arg2: *mut ::core::ffi::c_char,
6989                arg3: ::core::ffi::c_int,
6990            ) -> ::core::ffi::c_int,
6991        >,
6992    ) -> ::core::ffi::c_int;
6993}
6994unsafe extern "C" {
6995    pub fn BIO_meth_set_ctrl(
6996        method: *mut BIO_METHOD,
6997        ctrl_func: ::core::option::Option<
6998            unsafe extern "C" fn(
6999                arg1: *mut BIO,
7000                arg2: ::core::ffi::c_int,
7001                arg3: ::core::ffi::c_long,
7002                arg4: *mut ::core::ffi::c_void,
7003            ) -> ::core::ffi::c_long,
7004        >,
7005    ) -> ::core::ffi::c_int;
7006}
7007unsafe extern "C" {
7008    pub fn BIO_meth_set_callback_ctrl(
7009        method: *mut BIO_METHOD,
7010        callback_ctrl_func: ::core::option::Option<
7011            unsafe extern "C" fn(
7012                arg1: *mut BIO,
7013                arg2: ::core::ffi::c_int,
7014                arg3: BIO_info_cb,
7015            ) -> ::core::ffi::c_long,
7016        >,
7017    ) -> ::core::ffi::c_int;
7018}
7019unsafe extern "C" {
7020    pub fn BIO_set_data(bio: *mut BIO, ptr: *mut ::core::ffi::c_void);
7021}
7022unsafe extern "C" {
7023    pub fn BIO_get_data(bio: *mut BIO) -> *mut ::core::ffi::c_void;
7024}
7025unsafe extern "C" {
7026    pub fn BIO_set_init(bio: *mut BIO, init: ::core::ffi::c_int);
7027}
7028unsafe extern "C" {
7029    pub fn BIO_get_init(bio: *mut BIO) -> ::core::ffi::c_int;
7030}
7031unsafe extern "C" {
7032    pub fn BIO_get_ex_new_index(
7033        argl: ::core::ffi::c_long,
7034        argp: *mut ::core::ffi::c_void,
7035        unused: *mut CRYPTO_EX_unused,
7036        dup_unused: CRYPTO_EX_dup,
7037        free_func: CRYPTO_EX_free,
7038    ) -> ::core::ffi::c_int;
7039}
7040unsafe extern "C" {
7041    pub fn BIO_set_ex_data(
7042        bio: *mut BIO,
7043        idx: ::core::ffi::c_int,
7044        arg: *mut ::core::ffi::c_void,
7045    ) -> ::core::ffi::c_int;
7046}
7047unsafe extern "C" {
7048    pub fn BIO_get_ex_data(bio: *const BIO, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
7049}
7050unsafe extern "C" {
7051    pub fn BIO_free_all(bio: *mut BIO);
7052}
7053pub type bio_info_cb = BIO_info_cb;
7054unsafe extern "C" {
7055    pub fn BIO_f_base64() -> *const BIO_METHOD;
7056}
7057unsafe extern "C" {
7058    pub fn BIO_set_retry_special(bio: *mut BIO);
7059}
7060unsafe extern "C" {
7061    pub fn BIO_set_write_buffer_size(
7062        bio: *mut BIO,
7063        buffer_size: ::core::ffi::c_int,
7064    ) -> ::core::ffi::c_int;
7065}
7066unsafe extern "C" {
7067    pub fn BIO_set_shutdown(bio: *mut BIO, shutdown: ::core::ffi::c_int);
7068}
7069unsafe extern "C" {
7070    pub fn BIO_get_shutdown(bio: *mut BIO) -> ::core::ffi::c_int;
7071}
7072unsafe extern "C" {
7073    pub fn BIO_meth_set_puts(
7074        method: *mut BIO_METHOD,
7075        puts: ::core::option::Option<
7076            unsafe extern "C" fn(
7077                arg1: *mut BIO,
7078                arg2: *const ::core::ffi::c_char,
7079            ) -> ::core::ffi::c_int,
7080        >,
7081    ) -> ::core::ffi::c_int;
7082}
7083unsafe extern "C" {
7084    pub fn BIO_meth_get_write(
7085        method: *const BIO_METHOD,
7086    ) -> ::core::option::Option<
7087        unsafe extern "C" fn(
7088            method: *mut BIO,
7089            arg1: *const ::core::ffi::c_char,
7090            arg2: ::core::ffi::c_int,
7091        ) -> ::core::ffi::c_int,
7092    >;
7093}
7094unsafe extern "C" {
7095    pub fn BIO_meth_get_read(
7096        method: *const BIO_METHOD,
7097    ) -> ::core::option::Option<
7098        unsafe extern "C" fn(
7099            method: *mut BIO,
7100            arg1: *mut ::core::ffi::c_char,
7101            arg2: ::core::ffi::c_int,
7102        ) -> ::core::ffi::c_int,
7103    >;
7104}
7105unsafe extern "C" {
7106    pub fn BIO_meth_get_gets(
7107        method: *const BIO_METHOD,
7108    ) -> ::core::option::Option<
7109        unsafe extern "C" fn(
7110            method: *mut BIO,
7111            arg1: *mut ::core::ffi::c_char,
7112            arg2: ::core::ffi::c_int,
7113        ) -> ::core::ffi::c_int,
7114    >;
7115}
7116unsafe extern "C" {
7117    pub fn BIO_meth_get_puts(
7118        method: *const BIO_METHOD,
7119    ) -> ::core::option::Option<
7120        unsafe extern "C" fn(
7121            method: *mut BIO,
7122            arg1: *const ::core::ffi::c_char,
7123        ) -> ::core::ffi::c_int,
7124    >;
7125}
7126unsafe extern "C" {
7127    pub fn BIO_meth_get_ctrl(
7128        method: *const BIO_METHOD,
7129    ) -> ::core::option::Option<
7130        unsafe extern "C" fn(
7131            method: *mut BIO,
7132            arg1: ::core::ffi::c_int,
7133            arg2: ::core::ffi::c_long,
7134            arg3: *mut ::core::ffi::c_void,
7135        ) -> ::core::ffi::c_long,
7136    >;
7137}
7138unsafe extern "C" {
7139    pub fn BIO_meth_get_create(
7140        method: *const BIO_METHOD,
7141    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7142}
7143unsafe extern "C" {
7144    pub fn BIO_meth_get_destroy(
7145        method: *const BIO_METHOD,
7146    ) -> ::core::option::Option<unsafe extern "C" fn(method: *mut BIO) -> ::core::ffi::c_int>;
7147}
7148unsafe extern "C" {
7149    pub fn BIO_meth_get_callback_ctrl(
7150        method: *const BIO_METHOD,
7151    ) -> ::core::option::Option<
7152        unsafe extern "C" fn(
7153            method: *mut BIO,
7154            arg1: ::core::ffi::c_int,
7155            arg2: BIO_info_cb,
7156        ) -> ::core::ffi::c_long,
7157    >;
7158}
7159pub type BN_ULONG = u64;
7160unsafe extern "C" {
7161    pub fn BN_new() -> *mut BIGNUM;
7162}
7163unsafe extern "C" {
7164    pub fn BN_init(bn: *mut BIGNUM);
7165}
7166unsafe extern "C" {
7167    pub fn BN_free(bn: *mut BIGNUM);
7168}
7169unsafe extern "C" {
7170    pub fn BN_clear_free(bn: *mut BIGNUM);
7171}
7172unsafe extern "C" {
7173    pub fn BN_dup(src: *const BIGNUM) -> *mut BIGNUM;
7174}
7175unsafe extern "C" {
7176    pub fn BN_copy(dest: *mut BIGNUM, src: *const BIGNUM) -> *mut BIGNUM;
7177}
7178unsafe extern "C" {
7179    pub fn BN_clear(bn: *mut BIGNUM);
7180}
7181unsafe extern "C" {
7182    pub fn BN_value_one() -> *const BIGNUM;
7183}
7184unsafe extern "C" {
7185    pub fn BN_num_bits(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7186}
7187unsafe extern "C" {
7188    pub fn BN_num_bytes(bn: *const BIGNUM) -> ::core::ffi::c_uint;
7189}
7190unsafe extern "C" {
7191    pub fn BN_zero(bn: *mut BIGNUM);
7192}
7193unsafe extern "C" {
7194    pub fn BN_one(bn: *mut BIGNUM) -> ::core::ffi::c_int;
7195}
7196unsafe extern "C" {
7197    pub fn BN_set_word(bn: *mut BIGNUM, value: BN_ULONG) -> ::core::ffi::c_int;
7198}
7199unsafe extern "C" {
7200    pub fn BN_set_u64(bn: *mut BIGNUM, value: u64) -> ::core::ffi::c_int;
7201}
7202unsafe extern "C" {
7203    pub fn BN_set_negative(bn: *mut BIGNUM, sign: ::core::ffi::c_int);
7204}
7205unsafe extern "C" {
7206    pub fn BN_is_negative(bn: *const BIGNUM) -> ::core::ffi::c_int;
7207}
7208unsafe extern "C" {
7209    pub fn BN_bin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7210}
7211unsafe extern "C" {
7212    pub fn BN_bn2bin(in_: *const BIGNUM, out: *mut u8) -> usize;
7213}
7214unsafe extern "C" {
7215    pub fn BN_lebin2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7216}
7217unsafe extern "C" {
7218    pub fn BN_bn2le_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7219}
7220unsafe extern "C" {
7221    pub fn BN_bn2bin_padded(out: *mut u8, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7222}
7223unsafe extern "C" {
7224    pub fn BN_bn2cbb_padded(out: *mut CBB, len: usize, in_: *const BIGNUM) -> ::core::ffi::c_int;
7225}
7226unsafe extern "C" {
7227    pub fn BN_bn2hex(bn: *const BIGNUM) -> *mut ::core::ffi::c_char;
7228}
7229unsafe extern "C" {
7230    pub fn BN_hex2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7231        -> ::core::ffi::c_int;
7232}
7233unsafe extern "C" {
7234    pub fn BN_bn2dec(a: *const BIGNUM) -> *mut ::core::ffi::c_char;
7235}
7236unsafe extern "C" {
7237    pub fn BN_dec2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7238        -> ::core::ffi::c_int;
7239}
7240unsafe extern "C" {
7241    pub fn BN_asc2bn(outp: *mut *mut BIGNUM, in_: *const ::core::ffi::c_char)
7242        -> ::core::ffi::c_int;
7243}
7244unsafe extern "C" {
7245    pub fn BN_print(bio: *mut BIO, a: *const BIGNUM) -> ::core::ffi::c_int;
7246}
7247unsafe extern "C" {
7248    pub fn BN_print_fp(fp: *mut FILE, a: *const BIGNUM) -> ::core::ffi::c_int;
7249}
7250unsafe extern "C" {
7251    pub fn BN_get_word(bn: *const BIGNUM) -> BN_ULONG;
7252}
7253unsafe extern "C" {
7254    pub fn BN_get_u64(bn: *const BIGNUM, out: *mut u64) -> ::core::ffi::c_int;
7255}
7256unsafe extern "C" {
7257    pub fn BN_parse_asn1_unsigned(cbs: *mut CBS, ret: *mut BIGNUM) -> ::core::ffi::c_int;
7258}
7259unsafe extern "C" {
7260    pub fn BN_marshal_asn1(cbb: *mut CBB, bn: *const BIGNUM) -> ::core::ffi::c_int;
7261}
7262unsafe extern "C" {
7263    pub fn BN_CTX_new() -> *mut BN_CTX;
7264}
7265unsafe extern "C" {
7266    pub fn BN_CTX_free(ctx: *mut BN_CTX);
7267}
7268unsafe extern "C" {
7269    pub fn BN_CTX_start(ctx: *mut BN_CTX);
7270}
7271unsafe extern "C" {
7272    pub fn BN_CTX_get(ctx: *mut BN_CTX) -> *mut BIGNUM;
7273}
7274unsafe extern "C" {
7275    pub fn BN_CTX_end(ctx: *mut BN_CTX);
7276}
7277unsafe extern "C" {
7278    pub fn BN_add(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7279}
7280unsafe extern "C" {
7281    pub fn BN_uadd(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7282}
7283unsafe extern "C" {
7284    pub fn BN_add_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7285}
7286unsafe extern "C" {
7287    pub fn BN_sub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7288}
7289unsafe extern "C" {
7290    pub fn BN_usub(r: *mut BIGNUM, a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7291}
7292unsafe extern "C" {
7293    pub fn BN_sub_word(a: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7294}
7295unsafe extern "C" {
7296    pub fn BN_mul(
7297        r: *mut BIGNUM,
7298        a: *const BIGNUM,
7299        b: *const BIGNUM,
7300        ctx: *mut BN_CTX,
7301    ) -> ::core::ffi::c_int;
7302}
7303unsafe extern "C" {
7304    pub fn BN_mul_word(bn: *mut BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7305}
7306unsafe extern "C" {
7307    pub fn BN_sqr(r: *mut BIGNUM, a: *const BIGNUM, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
7308}
7309unsafe extern "C" {
7310    pub fn BN_div(
7311        quotient: *mut BIGNUM,
7312        rem: *mut BIGNUM,
7313        numerator: *const BIGNUM,
7314        divisor: *const BIGNUM,
7315        ctx: *mut BN_CTX,
7316    ) -> ::core::ffi::c_int;
7317}
7318unsafe extern "C" {
7319    pub fn BN_div_word(numerator: *mut BIGNUM, divisor: BN_ULONG) -> BN_ULONG;
7320}
7321unsafe extern "C" {
7322    pub fn BN_sqrt(
7323        out_sqrt: *mut BIGNUM,
7324        in_: *const BIGNUM,
7325        ctx: *mut BN_CTX,
7326    ) -> ::core::ffi::c_int;
7327}
7328unsafe extern "C" {
7329    pub fn BN_cmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7330}
7331unsafe extern "C" {
7332    pub fn BN_cmp_word(a: *const BIGNUM, b: BN_ULONG) -> ::core::ffi::c_int;
7333}
7334unsafe extern "C" {
7335    pub fn BN_ucmp(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7336}
7337unsafe extern "C" {
7338    pub fn BN_equal_consttime(a: *const BIGNUM, b: *const BIGNUM) -> ::core::ffi::c_int;
7339}
7340unsafe extern "C" {
7341    pub fn BN_abs_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7342}
7343unsafe extern "C" {
7344    pub fn BN_is_zero(bn: *const BIGNUM) -> ::core::ffi::c_int;
7345}
7346unsafe extern "C" {
7347    pub fn BN_is_one(bn: *const BIGNUM) -> ::core::ffi::c_int;
7348}
7349unsafe extern "C" {
7350    pub fn BN_is_word(bn: *const BIGNUM, w: BN_ULONG) -> ::core::ffi::c_int;
7351}
7352unsafe extern "C" {
7353    pub fn BN_is_odd(bn: *const BIGNUM) -> ::core::ffi::c_int;
7354}
7355unsafe extern "C" {
7356    pub fn BN_is_pow2(a: *const BIGNUM) -> ::core::ffi::c_int;
7357}
7358unsafe extern "C" {
7359    pub fn BN_lshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7360        -> ::core::ffi::c_int;
7361}
7362unsafe extern "C" {
7363    pub fn BN_lshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7364}
7365unsafe extern "C" {
7366    pub fn BN_rshift(r: *mut BIGNUM, a: *const BIGNUM, n: ::core::ffi::c_int)
7367        -> ::core::ffi::c_int;
7368}
7369unsafe extern "C" {
7370    pub fn BN_rshift1(r: *mut BIGNUM, a: *const BIGNUM) -> ::core::ffi::c_int;
7371}
7372unsafe extern "C" {
7373    pub fn BN_set_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7374}
7375unsafe extern "C" {
7376    pub fn BN_clear_bit(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7377}
7378unsafe extern "C" {
7379    pub fn BN_is_bit_set(a: *const BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7380}
7381unsafe extern "C" {
7382    pub fn BN_mask_bits(a: *mut BIGNUM, n: ::core::ffi::c_int) -> ::core::ffi::c_int;
7383}
7384unsafe extern "C" {
7385    pub fn BN_count_low_zero_bits(bn: *const BIGNUM) -> ::core::ffi::c_int;
7386}
7387unsafe extern "C" {
7388    pub fn BN_mod_word(a: *const BIGNUM, w: BN_ULONG) -> BN_ULONG;
7389}
7390unsafe extern "C" {
7391    pub fn BN_mod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7392}
7393unsafe extern "C" {
7394    pub fn BN_nnmod_pow2(r: *mut BIGNUM, a: *const BIGNUM, e: usize) -> ::core::ffi::c_int;
7395}
7396unsafe extern "C" {
7397    pub fn BN_nnmod(
7398        rem: *mut BIGNUM,
7399        numerator: *const BIGNUM,
7400        divisor: *const BIGNUM,
7401        ctx: *mut BN_CTX,
7402    ) -> ::core::ffi::c_int;
7403}
7404unsafe extern "C" {
7405    pub fn BN_mod_add(
7406        r: *mut BIGNUM,
7407        a: *const BIGNUM,
7408        b: *const BIGNUM,
7409        m: *const BIGNUM,
7410        ctx: *mut BN_CTX,
7411    ) -> ::core::ffi::c_int;
7412}
7413unsafe extern "C" {
7414    pub fn BN_mod_add_quick(
7415        r: *mut BIGNUM,
7416        a: *const BIGNUM,
7417        b: *const BIGNUM,
7418        m: *const BIGNUM,
7419    ) -> ::core::ffi::c_int;
7420}
7421unsafe extern "C" {
7422    pub fn BN_mod_sub(
7423        r: *mut BIGNUM,
7424        a: *const BIGNUM,
7425        b: *const BIGNUM,
7426        m: *const BIGNUM,
7427        ctx: *mut BN_CTX,
7428    ) -> ::core::ffi::c_int;
7429}
7430unsafe extern "C" {
7431    pub fn BN_mod_sub_quick(
7432        r: *mut BIGNUM,
7433        a: *const BIGNUM,
7434        b: *const BIGNUM,
7435        m: *const BIGNUM,
7436    ) -> ::core::ffi::c_int;
7437}
7438unsafe extern "C" {
7439    pub fn BN_mod_mul(
7440        r: *mut BIGNUM,
7441        a: *const BIGNUM,
7442        b: *const BIGNUM,
7443        m: *const BIGNUM,
7444        ctx: *mut BN_CTX,
7445    ) -> ::core::ffi::c_int;
7446}
7447unsafe extern "C" {
7448    pub fn BN_mod_sqr(
7449        r: *mut BIGNUM,
7450        a: *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_lshift(
7457        r: *mut BIGNUM,
7458        a: *const BIGNUM,
7459        n: ::core::ffi::c_int,
7460        m: *const BIGNUM,
7461        ctx: *mut BN_CTX,
7462    ) -> ::core::ffi::c_int;
7463}
7464unsafe extern "C" {
7465    pub fn BN_mod_lshift_quick(
7466        r: *mut BIGNUM,
7467        a: *const BIGNUM,
7468        n: ::core::ffi::c_int,
7469        m: *const BIGNUM,
7470    ) -> ::core::ffi::c_int;
7471}
7472unsafe extern "C" {
7473    pub fn BN_mod_lshift1(
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_lshift1_quick(
7482        r: *mut BIGNUM,
7483        a: *const BIGNUM,
7484        m: *const BIGNUM,
7485    ) -> ::core::ffi::c_int;
7486}
7487unsafe extern "C" {
7488    pub fn BN_mod_sqrt(
7489        in_: *mut BIGNUM,
7490        a: *const BIGNUM,
7491        p: *const BIGNUM,
7492        ctx: *mut BN_CTX,
7493    ) -> *mut BIGNUM;
7494}
7495unsafe extern "C" {
7496    pub fn BN_rand(
7497        rnd: *mut BIGNUM,
7498        bits: ::core::ffi::c_int,
7499        top: ::core::ffi::c_int,
7500        bottom: ::core::ffi::c_int,
7501    ) -> ::core::ffi::c_int;
7502}
7503unsafe extern "C" {
7504    pub fn BN_pseudo_rand(
7505        rnd: *mut BIGNUM,
7506        bits: ::core::ffi::c_int,
7507        top: ::core::ffi::c_int,
7508        bottom: ::core::ffi::c_int,
7509    ) -> ::core::ffi::c_int;
7510}
7511unsafe extern "C" {
7512    pub fn BN_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7513}
7514unsafe extern "C" {
7515    pub fn BN_rand_range_ex(
7516        r: *mut BIGNUM,
7517        min_inclusive: BN_ULONG,
7518        max_exclusive: *const BIGNUM,
7519    ) -> ::core::ffi::c_int;
7520}
7521unsafe extern "C" {
7522    pub fn BN_pseudo_rand_range(rnd: *mut BIGNUM, range: *const BIGNUM) -> ::core::ffi::c_int;
7523}
7524#[repr(C)]
7525#[derive(Debug, Copy, Clone)]
7526pub struct bn_gencb_st {
7527    pub arg: *mut ::core::ffi::c_void,
7528    pub callback: ::core::option::Option<
7529        unsafe extern "C" fn(
7530            event: ::core::ffi::c_int,
7531            n: ::core::ffi::c_int,
7532            arg1: *mut bn_gencb_st,
7533        ) -> ::core::ffi::c_int,
7534    >,
7535}
7536unsafe extern "C" {
7537    pub fn BN_GENCB_new() -> *mut BN_GENCB;
7538}
7539unsafe extern "C" {
7540    pub fn BN_GENCB_free(callback: *mut BN_GENCB);
7541}
7542unsafe extern "C" {
7543    pub fn BN_GENCB_set(
7544        callback: *mut BN_GENCB,
7545        f: ::core::option::Option<
7546            unsafe extern "C" fn(
7547                event: ::core::ffi::c_int,
7548                n: ::core::ffi::c_int,
7549                arg1: *mut BN_GENCB,
7550            ) -> ::core::ffi::c_int,
7551        >,
7552        arg: *mut ::core::ffi::c_void,
7553    );
7554}
7555unsafe extern "C" {
7556    pub fn BN_GENCB_call(
7557        callback: *mut BN_GENCB,
7558        event: ::core::ffi::c_int,
7559        n: ::core::ffi::c_int,
7560    ) -> ::core::ffi::c_int;
7561}
7562unsafe extern "C" {
7563    pub fn BN_GENCB_get_arg(callback: *const BN_GENCB) -> *mut ::core::ffi::c_void;
7564}
7565unsafe extern "C" {
7566    pub fn BN_generate_prime_ex(
7567        ret: *mut BIGNUM,
7568        bits: ::core::ffi::c_int,
7569        safe: ::core::ffi::c_int,
7570        add: *const BIGNUM,
7571        rem: *const BIGNUM,
7572        cb: *mut BN_GENCB,
7573    ) -> ::core::ffi::c_int;
7574}
7575pub const bn_primality_result_t_bn_probably_prime: bn_primality_result_t = 0;
7576pub const bn_primality_result_t_bn_composite: bn_primality_result_t = 1;
7577pub const bn_primality_result_t_bn_non_prime_power_composite: bn_primality_result_t = 2;
7578pub type bn_primality_result_t = ::core::ffi::c_uint;
7579unsafe extern "C" {
7580    pub fn BN_enhanced_miller_rabin_primality_test(
7581        out_result: *mut bn_primality_result_t,
7582        w: *const BIGNUM,
7583        checks: ::core::ffi::c_int,
7584        ctx: *mut BN_CTX,
7585        cb: *mut BN_GENCB,
7586    ) -> ::core::ffi::c_int;
7587}
7588unsafe extern "C" {
7589    pub fn BN_primality_test(
7590        is_probably_prime: *mut ::core::ffi::c_int,
7591        candidate: *const BIGNUM,
7592        checks: ::core::ffi::c_int,
7593        ctx: *mut BN_CTX,
7594        do_trial_division: ::core::ffi::c_int,
7595        cb: *mut BN_GENCB,
7596    ) -> ::core::ffi::c_int;
7597}
7598unsafe extern "C" {
7599    pub fn BN_is_prime_fasttest_ex(
7600        candidate: *const BIGNUM,
7601        checks: ::core::ffi::c_int,
7602        ctx: *mut BN_CTX,
7603        do_trial_division: ::core::ffi::c_int,
7604        cb: *mut BN_GENCB,
7605    ) -> ::core::ffi::c_int;
7606}
7607unsafe extern "C" {
7608    pub fn BN_is_prime_ex(
7609        candidate: *const BIGNUM,
7610        checks: ::core::ffi::c_int,
7611        ctx: *mut BN_CTX,
7612        cb: *mut BN_GENCB,
7613    ) -> ::core::ffi::c_int;
7614}
7615unsafe extern "C" {
7616    pub fn BN_gcd(
7617        r: *mut BIGNUM,
7618        a: *const BIGNUM,
7619        b: *const BIGNUM,
7620        ctx: *mut BN_CTX,
7621    ) -> ::core::ffi::c_int;
7622}
7623unsafe extern "C" {
7624    pub fn BN_mod_inverse(
7625        out: *mut BIGNUM,
7626        a: *const BIGNUM,
7627        n: *const BIGNUM,
7628        ctx: *mut BN_CTX,
7629    ) -> *mut BIGNUM;
7630}
7631unsafe extern "C" {
7632    pub fn BN_mod_inverse_blinded(
7633        out: *mut BIGNUM,
7634        out_no_inverse: *mut ::core::ffi::c_int,
7635        a: *const BIGNUM,
7636        mont: *const BN_MONT_CTX,
7637        ctx: *mut BN_CTX,
7638    ) -> ::core::ffi::c_int;
7639}
7640unsafe extern "C" {
7641    pub fn BN_mod_inverse_odd(
7642        out: *mut BIGNUM,
7643        out_no_inverse: *mut ::core::ffi::c_int,
7644        a: *const BIGNUM,
7645        n: *const BIGNUM,
7646        ctx: *mut BN_CTX,
7647    ) -> ::core::ffi::c_int;
7648}
7649unsafe extern "C" {
7650    pub fn BN_MONT_CTX_new_for_modulus(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7651}
7652unsafe extern "C" {
7653    pub fn BN_MONT_CTX_new_consttime(mod_: *const BIGNUM, ctx: *mut BN_CTX) -> *mut BN_MONT_CTX;
7654}
7655unsafe extern "C" {
7656    pub fn BN_MONT_CTX_free(mont: *mut BN_MONT_CTX);
7657}
7658unsafe extern "C" {
7659    pub fn BN_MONT_CTX_copy(to: *mut BN_MONT_CTX, from: *const BN_MONT_CTX) -> *mut BN_MONT_CTX;
7660}
7661unsafe extern "C" {
7662    pub fn BN_to_montgomery(
7663        ret: *mut BIGNUM,
7664        a: *const BIGNUM,
7665        mont: *const BN_MONT_CTX,
7666        ctx: *mut BN_CTX,
7667    ) -> ::core::ffi::c_int;
7668}
7669unsafe extern "C" {
7670    pub fn BN_from_montgomery(
7671        ret: *mut BIGNUM,
7672        a: *const BIGNUM,
7673        mont: *const BN_MONT_CTX,
7674        ctx: *mut BN_CTX,
7675    ) -> ::core::ffi::c_int;
7676}
7677unsafe extern "C" {
7678    pub fn BN_mod_mul_montgomery(
7679        r: *mut BIGNUM,
7680        a: *const BIGNUM,
7681        b: *const BIGNUM,
7682        mont: *const BN_MONT_CTX,
7683        ctx: *mut BN_CTX,
7684    ) -> ::core::ffi::c_int;
7685}
7686unsafe extern "C" {
7687    pub fn BN_exp(
7688        r: *mut BIGNUM,
7689        a: *const BIGNUM,
7690        p: *const BIGNUM,
7691        ctx: *mut BN_CTX,
7692    ) -> ::core::ffi::c_int;
7693}
7694unsafe extern "C" {
7695    pub fn BN_mod_exp(
7696        r: *mut BIGNUM,
7697        a: *const BIGNUM,
7698        p: *const BIGNUM,
7699        m: *const BIGNUM,
7700        ctx: *mut BN_CTX,
7701    ) -> ::core::ffi::c_int;
7702}
7703unsafe extern "C" {
7704    pub fn BN_mod_exp_mont(
7705        r: *mut BIGNUM,
7706        a: *const BIGNUM,
7707        p: *const BIGNUM,
7708        m: *const BIGNUM,
7709        ctx: *mut BN_CTX,
7710        mont: *const BN_MONT_CTX,
7711    ) -> ::core::ffi::c_int;
7712}
7713unsafe extern "C" {
7714    pub fn BN_mod_exp_mont_consttime(
7715        rr: *mut BIGNUM,
7716        a: *const BIGNUM,
7717        p: *const BIGNUM,
7718        m: *const BIGNUM,
7719        ctx: *mut BN_CTX,
7720        mont: *const BN_MONT_CTX,
7721    ) -> ::core::ffi::c_int;
7722}
7723unsafe extern "C" {
7724    pub fn BN_bn2mpi(in_: *const BIGNUM, out: *mut u8) -> usize;
7725}
7726unsafe extern "C" {
7727    pub fn BN_mpi2bn(in_: *const u8, len: usize, out: *mut BIGNUM) -> *mut BIGNUM;
7728}
7729unsafe extern "C" {
7730    pub fn BN_mod_exp_mont_word(
7731        r: *mut BIGNUM,
7732        a: BN_ULONG,
7733        p: *const BIGNUM,
7734        m: *const BIGNUM,
7735        ctx: *mut BN_CTX,
7736        mont: *const BN_MONT_CTX,
7737    ) -> ::core::ffi::c_int;
7738}
7739unsafe extern "C" {
7740    pub fn BN_mod_exp2_mont(
7741        r: *mut BIGNUM,
7742        a1: *const BIGNUM,
7743        p1: *const BIGNUM,
7744        a2: *const BIGNUM,
7745        p2: *const BIGNUM,
7746        m: *const BIGNUM,
7747        ctx: *mut BN_CTX,
7748        mont: *const BN_MONT_CTX,
7749    ) -> ::core::ffi::c_int;
7750}
7751unsafe extern "C" {
7752    pub fn BN_MONT_CTX_new() -> *mut BN_MONT_CTX;
7753}
7754unsafe extern "C" {
7755    pub fn BN_MONT_CTX_set(
7756        mont: *mut BN_MONT_CTX,
7757        mod_: *const BIGNUM,
7758        ctx: *mut BN_CTX,
7759    ) -> ::core::ffi::c_int;
7760}
7761unsafe extern "C" {
7762    pub fn BN_bn2binpad(
7763        in_: *const BIGNUM,
7764        out: *mut u8,
7765        len: ::core::ffi::c_int,
7766    ) -> ::core::ffi::c_int;
7767}
7768unsafe extern "C" {
7769    pub fn BN_bn2lebinpad(
7770        in_: *const BIGNUM,
7771        out: *mut u8,
7772        len: ::core::ffi::c_int,
7773    ) -> ::core::ffi::c_int;
7774}
7775unsafe extern "C" {
7776    pub fn BN_secure_new() -> *mut BIGNUM;
7777}
7778unsafe extern "C" {
7779    pub fn BN_le2bn(in_: *const u8, len: usize, ret: *mut BIGNUM) -> *mut BIGNUM;
7780}
7781#[repr(C)]
7782#[derive(Debug, Copy, Clone)]
7783pub struct bignum_st {
7784    pub d: *mut BN_ULONG,
7785    pub width: ::core::ffi::c_int,
7786    pub dmax: ::core::ffi::c_int,
7787    pub neg: ::core::ffi::c_int,
7788    pub flags: ::core::ffi::c_int,
7789}
7790unsafe extern "C" {
7791    pub fn BN_num_bits_word(l: BN_ULONG) -> ::core::ffi::c_uint;
7792}
7793unsafe extern "C" {
7794    pub fn ASN1_tag2bit(tag: ::core::ffi::c_int) -> ::core::ffi::c_ulong;
7795}
7796unsafe extern "C" {
7797    pub fn ASN1_tag2str(tag: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
7798}
7799pub type d2i_of_void = ::core::option::Option<
7800    unsafe extern "C" fn(
7801        arg1: *mut *mut ::core::ffi::c_void,
7802        arg2: *mut *const ::core::ffi::c_uchar,
7803        arg3: ::core::ffi::c_long,
7804    ) -> *mut ::core::ffi::c_void,
7805>;
7806pub type i2d_of_void = ::core::option::Option<
7807    unsafe extern "C" fn(
7808        arg1: *const ::core::ffi::c_void,
7809        arg2: *mut *mut ::core::ffi::c_uchar,
7810    ) -> ::core::ffi::c_int,
7811>;
7812pub type ASN1_ITEM_EXP = ASN1_ITEM;
7813#[repr(C)]
7814#[derive(Debug)]
7815pub struct ASN1_VALUE_st {
7816    _unused: [u8; 0],
7817}
7818pub type ASN1_VALUE = ASN1_VALUE_st;
7819unsafe extern "C" {
7820    pub fn ASN1_item_new(it: *const ASN1_ITEM) -> *mut ASN1_VALUE;
7821}
7822unsafe extern "C" {
7823    pub fn ASN1_item_free(val: *mut ASN1_VALUE, it: *const ASN1_ITEM);
7824}
7825unsafe extern "C" {
7826    pub fn ASN1_item_d2i(
7827        out: *mut *mut ASN1_VALUE,
7828        inp: *mut *const ::core::ffi::c_uchar,
7829        len: ::core::ffi::c_long,
7830        it: *const ASN1_ITEM,
7831    ) -> *mut ASN1_VALUE;
7832}
7833unsafe extern "C" {
7834    pub fn ASN1_item_i2d(
7835        val: *mut ASN1_VALUE,
7836        outp: *mut *mut ::core::ffi::c_uchar,
7837        it: *const ASN1_ITEM,
7838    ) -> ::core::ffi::c_int;
7839}
7840unsafe extern "C" {
7841    pub fn ASN1_item_dup(
7842        it: *const ASN1_ITEM,
7843        x: *mut ::core::ffi::c_void,
7844    ) -> *mut ::core::ffi::c_void;
7845}
7846unsafe extern "C" {
7847    pub fn ASN1_item_d2i_fp(
7848        it: *const ASN1_ITEM,
7849        in_: *mut FILE,
7850        out: *mut ::core::ffi::c_void,
7851    ) -> *mut ::core::ffi::c_void;
7852}
7853unsafe extern "C" {
7854    pub fn ASN1_item_d2i_bio(
7855        it: *const ASN1_ITEM,
7856        in_: *mut BIO,
7857        out: *mut ::core::ffi::c_void,
7858    ) -> *mut ::core::ffi::c_void;
7859}
7860unsafe extern "C" {
7861    pub fn ASN1_item_i2d_fp(
7862        it: *const ASN1_ITEM,
7863        out: *mut FILE,
7864        in_: *const ::core::ffi::c_void,
7865    ) -> ::core::ffi::c_int;
7866}
7867unsafe extern "C" {
7868    pub fn ASN1_item_i2d_bio(
7869        it: *const ASN1_ITEM,
7870        out: *mut BIO,
7871        in_: *const ::core::ffi::c_void,
7872    ) -> ::core::ffi::c_int;
7873}
7874unsafe extern "C" {
7875    pub fn ASN1_item_unpack(
7876        oct: *const ASN1_STRING,
7877        it: *const ASN1_ITEM,
7878    ) -> *mut ::core::ffi::c_void;
7879}
7880unsafe extern "C" {
7881    pub fn ASN1_item_pack(
7882        obj: *mut ::core::ffi::c_void,
7883        it: *const ASN1_ITEM,
7884        out: *mut *mut ASN1_STRING,
7885    ) -> *mut ASN1_STRING;
7886}
7887unsafe extern "C" {
7888    pub fn d2i_ASN1_BOOLEAN(
7889        out: *mut ASN1_BOOLEAN,
7890        inp: *mut *const ::core::ffi::c_uchar,
7891        len: ::core::ffi::c_long,
7892    ) -> ASN1_BOOLEAN;
7893}
7894unsafe extern "C" {
7895    pub fn i2d_ASN1_BOOLEAN(
7896        a: ASN1_BOOLEAN,
7897        outp: *mut *mut ::core::ffi::c_uchar,
7898    ) -> ::core::ffi::c_int;
7899}
7900unsafe extern "C" {
7901    pub static ASN1_BOOLEAN_it: ASN1_ITEM;
7902}
7903unsafe extern "C" {
7904    pub static ASN1_TBOOLEAN_it: ASN1_ITEM;
7905}
7906unsafe extern "C" {
7907    pub static ASN1_FBOOLEAN_it: ASN1_ITEM;
7908}
7909#[repr(C)]
7910#[derive(Debug, Copy, Clone)]
7911pub struct asn1_string_st {
7912    pub length: ::core::ffi::c_int,
7913    pub type_: ::core::ffi::c_int,
7914    pub data: *mut ::core::ffi::c_uchar,
7915    pub flags: ::core::ffi::c_long,
7916}
7917unsafe extern "C" {
7918    pub fn ASN1_STRING_type_new(type_: ::core::ffi::c_int) -> *mut ASN1_STRING;
7919}
7920unsafe extern "C" {
7921    pub fn ASN1_STRING_new() -> *mut ASN1_STRING;
7922}
7923unsafe extern "C" {
7924    pub fn ASN1_STRING_free(str_: *mut ASN1_STRING);
7925}
7926unsafe extern "C" {
7927    pub fn ASN1_STRING_copy(dst: *mut ASN1_STRING, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7928}
7929unsafe extern "C" {
7930    pub fn ASN1_STRING_dup(str_: *const ASN1_STRING) -> *mut ASN1_STRING;
7931}
7932unsafe extern "C" {
7933    pub fn ASN1_STRING_type(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7934}
7935unsafe extern "C" {
7936    pub fn ASN1_STRING_get0_data(str_: *const ASN1_STRING) -> *const ::core::ffi::c_uchar;
7937}
7938unsafe extern "C" {
7939    pub fn ASN1_STRING_data(str_: *mut ASN1_STRING) -> *mut ::core::ffi::c_uchar;
7940}
7941unsafe extern "C" {
7942    pub fn ASN1_STRING_length(str_: *const ASN1_STRING) -> ::core::ffi::c_int;
7943}
7944unsafe extern "C" {
7945    pub fn ASN1_STRING_cmp(a: *const ASN1_STRING, b: *const ASN1_STRING) -> ::core::ffi::c_int;
7946}
7947unsafe extern "C" {
7948    pub fn ASN1_STRING_set(
7949        str_: *mut ASN1_STRING,
7950        data: *const ::core::ffi::c_void,
7951        len: ossl_ssize_t,
7952    ) -> ::core::ffi::c_int;
7953}
7954unsafe extern "C" {
7955    pub fn ASN1_STRING_set0(
7956        str_: *mut ASN1_STRING,
7957        data: *mut ::core::ffi::c_void,
7958        len: ::core::ffi::c_int,
7959    );
7960}
7961unsafe extern "C" {
7962    pub fn ASN1_BMPSTRING_new() -> *mut ASN1_BMPSTRING;
7963}
7964unsafe extern "C" {
7965    pub fn ASN1_GENERALSTRING_new() -> *mut ASN1_GENERALSTRING;
7966}
7967unsafe extern "C" {
7968    pub fn ASN1_IA5STRING_new() -> *mut ASN1_IA5STRING;
7969}
7970unsafe extern "C" {
7971    pub fn ASN1_OCTET_STRING_new() -> *mut ASN1_OCTET_STRING;
7972}
7973unsafe extern "C" {
7974    pub fn ASN1_PRINTABLESTRING_new() -> *mut ASN1_PRINTABLESTRING;
7975}
7976unsafe extern "C" {
7977    pub fn ASN1_T61STRING_new() -> *mut ASN1_T61STRING;
7978}
7979unsafe extern "C" {
7980    pub fn ASN1_UNIVERSALSTRING_new() -> *mut ASN1_UNIVERSALSTRING;
7981}
7982unsafe extern "C" {
7983    pub fn ASN1_UTF8STRING_new() -> *mut ASN1_UTF8STRING;
7984}
7985unsafe extern "C" {
7986    pub fn ASN1_VISIBLESTRING_new() -> *mut ASN1_VISIBLESTRING;
7987}
7988unsafe extern "C" {
7989    pub fn ASN1_BMPSTRING_free(str_: *mut ASN1_BMPSTRING);
7990}
7991unsafe extern "C" {
7992    pub fn ASN1_GENERALSTRING_free(str_: *mut ASN1_GENERALSTRING);
7993}
7994unsafe extern "C" {
7995    pub fn ASN1_IA5STRING_free(str_: *mut ASN1_IA5STRING);
7996}
7997unsafe extern "C" {
7998    pub fn ASN1_OCTET_STRING_free(str_: *mut ASN1_OCTET_STRING);
7999}
8000unsafe extern "C" {
8001    pub fn ASN1_PRINTABLESTRING_free(str_: *mut ASN1_PRINTABLESTRING);
8002}
8003unsafe extern "C" {
8004    pub fn ASN1_T61STRING_free(str_: *mut ASN1_T61STRING);
8005}
8006unsafe extern "C" {
8007    pub fn ASN1_UNIVERSALSTRING_free(str_: *mut ASN1_UNIVERSALSTRING);
8008}
8009unsafe extern "C" {
8010    pub fn ASN1_UTF8STRING_free(str_: *mut ASN1_UTF8STRING);
8011}
8012unsafe extern "C" {
8013    pub fn ASN1_VISIBLESTRING_free(str_: *mut ASN1_VISIBLESTRING);
8014}
8015unsafe extern "C" {
8016    pub fn d2i_ASN1_BMPSTRING(
8017        out: *mut *mut ASN1_BMPSTRING,
8018        inp: *mut *const u8,
8019        len: ::core::ffi::c_long,
8020    ) -> *mut ASN1_BMPSTRING;
8021}
8022unsafe extern "C" {
8023    pub fn d2i_ASN1_GENERALSTRING(
8024        out: *mut *mut ASN1_GENERALSTRING,
8025        inp: *mut *const u8,
8026        len: ::core::ffi::c_long,
8027    ) -> *mut ASN1_GENERALSTRING;
8028}
8029unsafe extern "C" {
8030    pub fn d2i_ASN1_IA5STRING(
8031        out: *mut *mut ASN1_IA5STRING,
8032        inp: *mut *const u8,
8033        len: ::core::ffi::c_long,
8034    ) -> *mut ASN1_IA5STRING;
8035}
8036unsafe extern "C" {
8037    pub fn d2i_ASN1_OCTET_STRING(
8038        out: *mut *mut ASN1_OCTET_STRING,
8039        inp: *mut *const u8,
8040        len: ::core::ffi::c_long,
8041    ) -> *mut ASN1_OCTET_STRING;
8042}
8043unsafe extern "C" {
8044    pub fn d2i_ASN1_PRINTABLESTRING(
8045        out: *mut *mut ASN1_PRINTABLESTRING,
8046        inp: *mut *const u8,
8047        len: ::core::ffi::c_long,
8048    ) -> *mut ASN1_PRINTABLESTRING;
8049}
8050unsafe extern "C" {
8051    pub fn d2i_ASN1_T61STRING(
8052        out: *mut *mut ASN1_T61STRING,
8053        inp: *mut *const u8,
8054        len: ::core::ffi::c_long,
8055    ) -> *mut ASN1_T61STRING;
8056}
8057unsafe extern "C" {
8058    pub fn d2i_ASN1_UNIVERSALSTRING(
8059        out: *mut *mut ASN1_UNIVERSALSTRING,
8060        inp: *mut *const u8,
8061        len: ::core::ffi::c_long,
8062    ) -> *mut ASN1_UNIVERSALSTRING;
8063}
8064unsafe extern "C" {
8065    pub fn d2i_ASN1_UTF8STRING(
8066        out: *mut *mut ASN1_UTF8STRING,
8067        inp: *mut *const u8,
8068        len: ::core::ffi::c_long,
8069    ) -> *mut ASN1_UTF8STRING;
8070}
8071unsafe extern "C" {
8072    pub fn d2i_ASN1_VISIBLESTRING(
8073        out: *mut *mut ASN1_VISIBLESTRING,
8074        inp: *mut *const u8,
8075        len: ::core::ffi::c_long,
8076    ) -> *mut ASN1_VISIBLESTRING;
8077}
8078unsafe extern "C" {
8079    pub fn i2d_ASN1_BMPSTRING(in_: *const ASN1_BMPSTRING, outp: *mut *mut u8)
8080        -> ::core::ffi::c_int;
8081}
8082unsafe extern "C" {
8083    pub fn i2d_ASN1_GENERALSTRING(
8084        in_: *const ASN1_GENERALSTRING,
8085        outp: *mut *mut u8,
8086    ) -> ::core::ffi::c_int;
8087}
8088unsafe extern "C" {
8089    pub fn i2d_ASN1_IA5STRING(in_: *const ASN1_IA5STRING, outp: *mut *mut u8)
8090        -> ::core::ffi::c_int;
8091}
8092unsafe extern "C" {
8093    pub fn i2d_ASN1_OCTET_STRING(
8094        in_: *const ASN1_OCTET_STRING,
8095        outp: *mut *mut u8,
8096    ) -> ::core::ffi::c_int;
8097}
8098unsafe extern "C" {
8099    pub fn i2d_ASN1_PRINTABLESTRING(
8100        in_: *const ASN1_PRINTABLESTRING,
8101        outp: *mut *mut u8,
8102    ) -> ::core::ffi::c_int;
8103}
8104unsafe extern "C" {
8105    pub fn i2d_ASN1_T61STRING(in_: *const ASN1_T61STRING, outp: *mut *mut u8)
8106        -> ::core::ffi::c_int;
8107}
8108unsafe extern "C" {
8109    pub fn i2d_ASN1_UNIVERSALSTRING(
8110        in_: *const ASN1_UNIVERSALSTRING,
8111        outp: *mut *mut u8,
8112    ) -> ::core::ffi::c_int;
8113}
8114unsafe extern "C" {
8115    pub fn i2d_ASN1_UTF8STRING(
8116        in_: *const ASN1_UTF8STRING,
8117        outp: *mut *mut u8,
8118    ) -> ::core::ffi::c_int;
8119}
8120unsafe extern "C" {
8121    pub fn i2d_ASN1_VISIBLESTRING(
8122        in_: *const ASN1_VISIBLESTRING,
8123        outp: *mut *mut u8,
8124    ) -> ::core::ffi::c_int;
8125}
8126unsafe extern "C" {
8127    pub static ASN1_BMPSTRING_it: ASN1_ITEM;
8128}
8129unsafe extern "C" {
8130    pub static ASN1_GENERALSTRING_it: ASN1_ITEM;
8131}
8132unsafe extern "C" {
8133    pub static ASN1_IA5STRING_it: ASN1_ITEM;
8134}
8135unsafe extern "C" {
8136    pub static ASN1_OCTET_STRING_it: ASN1_ITEM;
8137}
8138unsafe extern "C" {
8139    pub static ASN1_PRINTABLESTRING_it: ASN1_ITEM;
8140}
8141unsafe extern "C" {
8142    pub static ASN1_T61STRING_it: ASN1_ITEM;
8143}
8144unsafe extern "C" {
8145    pub static ASN1_UNIVERSALSTRING_it: ASN1_ITEM;
8146}
8147unsafe extern "C" {
8148    pub static ASN1_UTF8STRING_it: ASN1_ITEM;
8149}
8150unsafe extern "C" {
8151    pub static ASN1_VISIBLESTRING_it: ASN1_ITEM;
8152}
8153unsafe extern "C" {
8154    pub fn ASN1_OCTET_STRING_dup(a: *const ASN1_OCTET_STRING) -> *mut ASN1_OCTET_STRING;
8155}
8156unsafe extern "C" {
8157    pub fn ASN1_OCTET_STRING_cmp(
8158        a: *const ASN1_OCTET_STRING,
8159        b: *const ASN1_OCTET_STRING,
8160    ) -> ::core::ffi::c_int;
8161}
8162unsafe extern "C" {
8163    pub fn ASN1_OCTET_STRING_set(
8164        str_: *mut ASN1_OCTET_STRING,
8165        data: *const ::core::ffi::c_uchar,
8166        len: ::core::ffi::c_int,
8167    ) -> ::core::ffi::c_int;
8168}
8169unsafe extern "C" {
8170    pub fn ASN1_STRING_to_UTF8(
8171        out: *mut *mut ::core::ffi::c_uchar,
8172        in_: *const ASN1_STRING,
8173    ) -> ::core::ffi::c_int;
8174}
8175unsafe extern "C" {
8176    pub fn ASN1_mbstring_copy(
8177        out: *mut *mut ASN1_STRING,
8178        in_: *const u8,
8179        len: ossl_ssize_t,
8180        inform: ::core::ffi::c_int,
8181        mask: ::core::ffi::c_ulong,
8182    ) -> ::core::ffi::c_int;
8183}
8184unsafe extern "C" {
8185    pub fn ASN1_mbstring_ncopy(
8186        out: *mut *mut ASN1_STRING,
8187        in_: *const u8,
8188        len: ossl_ssize_t,
8189        inform: ::core::ffi::c_int,
8190        mask: ::core::ffi::c_ulong,
8191        minsize: ossl_ssize_t,
8192        maxsize: ossl_ssize_t,
8193    ) -> ::core::ffi::c_int;
8194}
8195unsafe extern "C" {
8196    pub fn ASN1_STRING_set_by_NID(
8197        out: *mut *mut ASN1_STRING,
8198        in_: *const ::core::ffi::c_uchar,
8199        len: ossl_ssize_t,
8200        inform: ::core::ffi::c_int,
8201        nid: ::core::ffi::c_int,
8202    ) -> *mut ASN1_STRING;
8203}
8204unsafe extern "C" {
8205    pub fn ASN1_STRING_TABLE_add(
8206        nid: ::core::ffi::c_int,
8207        minsize: ::core::ffi::c_long,
8208        maxsize: ::core::ffi::c_long,
8209        mask: ::core::ffi::c_ulong,
8210        flags: ::core::ffi::c_ulong,
8211    ) -> ::core::ffi::c_int;
8212}
8213unsafe extern "C" {
8214    pub fn DIRECTORYSTRING_new() -> *mut ASN1_STRING;
8215}
8216unsafe extern "C" {
8217    pub fn DIRECTORYSTRING_free(str_: *mut ASN1_STRING);
8218}
8219unsafe extern "C" {
8220    pub fn d2i_DIRECTORYSTRING(
8221        out: *mut *mut ASN1_STRING,
8222        inp: *mut *const u8,
8223        len: ::core::ffi::c_long,
8224    ) -> *mut ASN1_STRING;
8225}
8226unsafe extern "C" {
8227    pub fn i2d_DIRECTORYSTRING(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8228}
8229unsafe extern "C" {
8230    pub fn DISPLAYTEXT_new() -> *mut ASN1_STRING;
8231}
8232unsafe extern "C" {
8233    pub fn DISPLAYTEXT_free(str_: *mut ASN1_STRING);
8234}
8235unsafe extern "C" {
8236    pub fn d2i_DISPLAYTEXT(
8237        out: *mut *mut ASN1_STRING,
8238        inp: *mut *const u8,
8239        len: ::core::ffi::c_long,
8240    ) -> *mut ASN1_STRING;
8241}
8242unsafe extern "C" {
8243    pub fn i2d_DISPLAYTEXT(in_: *const ASN1_STRING, outp: *mut *mut u8) -> ::core::ffi::c_int;
8244}
8245unsafe extern "C" {
8246    pub fn ASN1_BIT_STRING_new() -> *mut ASN1_BIT_STRING;
8247}
8248unsafe extern "C" {
8249    pub fn ASN1_BIT_STRING_free(str_: *mut ASN1_BIT_STRING);
8250}
8251unsafe extern "C" {
8252    pub fn d2i_ASN1_BIT_STRING(
8253        out: *mut *mut ASN1_BIT_STRING,
8254        inp: *mut *const u8,
8255        len: ::core::ffi::c_long,
8256    ) -> *mut ASN1_BIT_STRING;
8257}
8258unsafe extern "C" {
8259    pub fn i2d_ASN1_BIT_STRING(
8260        in_: *const ASN1_BIT_STRING,
8261        outp: *mut *mut u8,
8262    ) -> ::core::ffi::c_int;
8263}
8264unsafe extern "C" {
8265    pub fn c2i_ASN1_BIT_STRING(
8266        out: *mut *mut ASN1_BIT_STRING,
8267        inp: *mut *const u8,
8268        len: ::core::ffi::c_long,
8269    ) -> *mut ASN1_BIT_STRING;
8270}
8271unsafe extern "C" {
8272    pub fn i2c_ASN1_BIT_STRING(
8273        in_: *const ASN1_BIT_STRING,
8274        outp: *mut *mut u8,
8275    ) -> ::core::ffi::c_int;
8276}
8277unsafe extern "C" {
8278    pub static ASN1_BIT_STRING_it: ASN1_ITEM;
8279}
8280unsafe extern "C" {
8281    pub fn ASN1_BIT_STRING_unused_bits(str_: *const ASN1_BIT_STRING) -> u8;
8282}
8283unsafe extern "C" {
8284    pub fn ASN1_BIT_STRING_set(
8285        str_: *mut ASN1_BIT_STRING,
8286        data: *const u8,
8287        length: ossl_ssize_t,
8288    ) -> ::core::ffi::c_int;
8289}
8290unsafe extern "C" {
8291    pub fn ASN1_BIT_STRING_set1(
8292        str_: *mut ASN1_BIT_STRING,
8293        data: *const u8,
8294        length: usize,
8295        unused_bits: ::core::ffi::c_int,
8296    ) -> ::core::ffi::c_int;
8297}
8298unsafe extern "C" {
8299    pub fn ASN1_BIT_STRING_set_bit(
8300        str_: *mut ASN1_BIT_STRING,
8301        n: ::core::ffi::c_int,
8302        value: ::core::ffi::c_int,
8303    ) -> ::core::ffi::c_int;
8304}
8305unsafe extern "C" {
8306    pub fn ASN1_BIT_STRING_get_bit(
8307        str_: *const ASN1_BIT_STRING,
8308        n: ::core::ffi::c_int,
8309    ) -> ::core::ffi::c_int;
8310}
8311unsafe extern "C" {
8312    pub fn ASN1_BIT_STRING_check(
8313        str_: *const ASN1_BIT_STRING,
8314        flags: *const ::core::ffi::c_uchar,
8315        flags_len: ::core::ffi::c_int,
8316    ) -> ::core::ffi::c_int;
8317}
8318#[repr(C)]
8319#[derive(Debug)]
8320pub struct stack_st_ASN1_INTEGER {
8321    _unused: [u8; 0],
8322}
8323pub type sk_ASN1_INTEGER_free_func =
8324    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_INTEGER)>;
8325pub type sk_ASN1_INTEGER_copy_func =
8326    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_INTEGER) -> *mut ASN1_INTEGER>;
8327pub type sk_ASN1_INTEGER_cmp_func = ::core::option::Option<
8328    unsafe extern "C" fn(
8329        arg1: *const *const ASN1_INTEGER,
8330        arg2: *const *const ASN1_INTEGER,
8331    ) -> ::core::ffi::c_int,
8332>;
8333pub type sk_ASN1_INTEGER_delete_if_func = ::core::option::Option<
8334    unsafe extern "C" fn(
8335        arg1: *mut ASN1_INTEGER,
8336        arg2: *mut ::core::ffi::c_void,
8337    ) -> ::core::ffi::c_int,
8338>;
8339unsafe extern "C" {
8340    #[link_name = "sk_ASN1_INTEGER_call_free_func__extern"]
8341    pub fn sk_ASN1_INTEGER_call_free_func(
8342        free_func: OPENSSL_sk_free_func,
8343        ptr: *mut ::core::ffi::c_void,
8344    );
8345}
8346unsafe extern "C" {
8347    #[link_name = "sk_ASN1_INTEGER_call_copy_func__extern"]
8348    pub fn sk_ASN1_INTEGER_call_copy_func(
8349        copy_func: OPENSSL_sk_copy_func,
8350        ptr: *const ::core::ffi::c_void,
8351    ) -> *mut ::core::ffi::c_void;
8352}
8353unsafe extern "C" {
8354    #[link_name = "sk_ASN1_INTEGER_call_cmp_func__extern"]
8355    pub fn sk_ASN1_INTEGER_call_cmp_func(
8356        cmp_func: OPENSSL_sk_cmp_func,
8357        a: *const ::core::ffi::c_void,
8358        b: *const ::core::ffi::c_void,
8359    ) -> ::core::ffi::c_int;
8360}
8361unsafe extern "C" {
8362    #[link_name = "sk_ASN1_INTEGER_call_delete_if_func__extern"]
8363    pub fn sk_ASN1_INTEGER_call_delete_if_func(
8364        func: OPENSSL_sk_delete_if_func,
8365        obj: *mut ::core::ffi::c_void,
8366        data: *mut ::core::ffi::c_void,
8367    ) -> ::core::ffi::c_int;
8368}
8369unsafe extern "C" {
8370    #[link_name = "sk_ASN1_INTEGER_new__extern"]
8371    pub fn sk_ASN1_INTEGER_new(comp: sk_ASN1_INTEGER_cmp_func) -> *mut stack_st_ASN1_INTEGER;
8372}
8373unsafe extern "C" {
8374    #[link_name = "sk_ASN1_INTEGER_new_null__extern"]
8375    pub fn sk_ASN1_INTEGER_new_null() -> *mut stack_st_ASN1_INTEGER;
8376}
8377unsafe extern "C" {
8378    #[link_name = "sk_ASN1_INTEGER_num__extern"]
8379    pub fn sk_ASN1_INTEGER_num(sk: *const stack_st_ASN1_INTEGER) -> usize;
8380}
8381unsafe extern "C" {
8382    #[link_name = "sk_ASN1_INTEGER_zero__extern"]
8383    pub fn sk_ASN1_INTEGER_zero(sk: *mut stack_st_ASN1_INTEGER);
8384}
8385unsafe extern "C" {
8386    #[link_name = "sk_ASN1_INTEGER_value__extern"]
8387    pub fn sk_ASN1_INTEGER_value(sk: *const stack_st_ASN1_INTEGER, i: usize) -> *mut ASN1_INTEGER;
8388}
8389unsafe extern "C" {
8390    #[link_name = "sk_ASN1_INTEGER_set__extern"]
8391    pub fn sk_ASN1_INTEGER_set(
8392        sk: *mut stack_st_ASN1_INTEGER,
8393        i: usize,
8394        p: *mut ASN1_INTEGER,
8395    ) -> *mut ASN1_INTEGER;
8396}
8397unsafe extern "C" {
8398    #[link_name = "sk_ASN1_INTEGER_free__extern"]
8399    pub fn sk_ASN1_INTEGER_free(sk: *mut stack_st_ASN1_INTEGER);
8400}
8401unsafe extern "C" {
8402    #[link_name = "sk_ASN1_INTEGER_pop_free__extern"]
8403    pub fn sk_ASN1_INTEGER_pop_free(
8404        sk: *mut stack_st_ASN1_INTEGER,
8405        free_func: sk_ASN1_INTEGER_free_func,
8406    );
8407}
8408unsafe extern "C" {
8409    #[link_name = "sk_ASN1_INTEGER_insert__extern"]
8410    pub fn sk_ASN1_INTEGER_insert(
8411        sk: *mut stack_st_ASN1_INTEGER,
8412        p: *mut ASN1_INTEGER,
8413        where_: usize,
8414    ) -> usize;
8415}
8416unsafe extern "C" {
8417    #[link_name = "sk_ASN1_INTEGER_delete__extern"]
8418    pub fn sk_ASN1_INTEGER_delete(
8419        sk: *mut stack_st_ASN1_INTEGER,
8420        where_: usize,
8421    ) -> *mut ASN1_INTEGER;
8422}
8423unsafe extern "C" {
8424    #[link_name = "sk_ASN1_INTEGER_delete_ptr__extern"]
8425    pub fn sk_ASN1_INTEGER_delete_ptr(
8426        sk: *mut stack_st_ASN1_INTEGER,
8427        p: *const ASN1_INTEGER,
8428    ) -> *mut ASN1_INTEGER;
8429}
8430unsafe extern "C" {
8431    #[link_name = "sk_ASN1_INTEGER_delete_if__extern"]
8432    pub fn sk_ASN1_INTEGER_delete_if(
8433        sk: *mut stack_st_ASN1_INTEGER,
8434        func: sk_ASN1_INTEGER_delete_if_func,
8435        data: *mut ::core::ffi::c_void,
8436    );
8437}
8438unsafe extern "C" {
8439    #[link_name = "sk_ASN1_INTEGER_find__extern"]
8440    pub fn sk_ASN1_INTEGER_find(
8441        sk: *const stack_st_ASN1_INTEGER,
8442        out_index: *mut usize,
8443        p: *const ASN1_INTEGER,
8444    ) -> ::core::ffi::c_int;
8445}
8446unsafe extern "C" {
8447    #[link_name = "sk_ASN1_INTEGER_shift__extern"]
8448    pub fn sk_ASN1_INTEGER_shift(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8449}
8450unsafe extern "C" {
8451    #[link_name = "sk_ASN1_INTEGER_push__extern"]
8452    pub fn sk_ASN1_INTEGER_push(sk: *mut stack_st_ASN1_INTEGER, p: *mut ASN1_INTEGER) -> usize;
8453}
8454unsafe extern "C" {
8455    #[link_name = "sk_ASN1_INTEGER_pop__extern"]
8456    pub fn sk_ASN1_INTEGER_pop(sk: *mut stack_st_ASN1_INTEGER) -> *mut ASN1_INTEGER;
8457}
8458unsafe extern "C" {
8459    #[link_name = "sk_ASN1_INTEGER_dup__extern"]
8460    pub fn sk_ASN1_INTEGER_dup(sk: *const stack_st_ASN1_INTEGER) -> *mut stack_st_ASN1_INTEGER;
8461}
8462unsafe extern "C" {
8463    #[link_name = "sk_ASN1_INTEGER_sort__extern"]
8464    pub fn sk_ASN1_INTEGER_sort(sk: *mut stack_st_ASN1_INTEGER);
8465}
8466unsafe extern "C" {
8467    #[link_name = "sk_ASN1_INTEGER_sort_and_dedup__extern"]
8468    pub fn sk_ASN1_INTEGER_sort_and_dedup(
8469        sk: *mut stack_st_ASN1_INTEGER,
8470        free_func: sk_ASN1_INTEGER_free_func,
8471    );
8472}
8473unsafe extern "C" {
8474    #[link_name = "sk_ASN1_INTEGER_is_sorted__extern"]
8475    pub fn sk_ASN1_INTEGER_is_sorted(sk: *const stack_st_ASN1_INTEGER) -> ::core::ffi::c_int;
8476}
8477unsafe extern "C" {
8478    #[link_name = "sk_ASN1_INTEGER_set_cmp_func__extern"]
8479    pub fn sk_ASN1_INTEGER_set_cmp_func(
8480        sk: *mut stack_st_ASN1_INTEGER,
8481        comp: sk_ASN1_INTEGER_cmp_func,
8482    ) -> sk_ASN1_INTEGER_cmp_func;
8483}
8484unsafe extern "C" {
8485    #[link_name = "sk_ASN1_INTEGER_deep_copy__extern"]
8486    pub fn sk_ASN1_INTEGER_deep_copy(
8487        sk: *const stack_st_ASN1_INTEGER,
8488        copy_func: sk_ASN1_INTEGER_copy_func,
8489        free_func: sk_ASN1_INTEGER_free_func,
8490    ) -> *mut stack_st_ASN1_INTEGER;
8491}
8492unsafe extern "C" {
8493    pub fn ASN1_INTEGER_new() -> *mut ASN1_INTEGER;
8494}
8495unsafe extern "C" {
8496    pub fn ASN1_INTEGER_free(str_: *mut ASN1_INTEGER);
8497}
8498unsafe extern "C" {
8499    pub fn ASN1_INTEGER_dup(x: *const ASN1_INTEGER) -> *mut ASN1_INTEGER;
8500}
8501unsafe extern "C" {
8502    pub fn d2i_ASN1_INTEGER(
8503        out: *mut *mut ASN1_INTEGER,
8504        inp: *mut *const u8,
8505        len: ::core::ffi::c_long,
8506    ) -> *mut ASN1_INTEGER;
8507}
8508unsafe extern "C" {
8509    pub fn i2d_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8510}
8511unsafe extern "C" {
8512    pub fn c2i_ASN1_INTEGER(
8513        in_: *mut *mut ASN1_INTEGER,
8514        outp: *mut *const u8,
8515        len: ::core::ffi::c_long,
8516    ) -> *mut ASN1_INTEGER;
8517}
8518unsafe extern "C" {
8519    pub fn i2c_ASN1_INTEGER(in_: *const ASN1_INTEGER, outp: *mut *mut u8) -> ::core::ffi::c_int;
8520}
8521unsafe extern "C" {
8522    pub static ASN1_INTEGER_it: ASN1_ITEM;
8523}
8524unsafe extern "C" {
8525    pub fn ASN1_INTEGER_set_uint64(out: *mut ASN1_INTEGER, v: u64) -> ::core::ffi::c_int;
8526}
8527unsafe extern "C" {
8528    pub fn ASN1_INTEGER_set_int64(out: *mut ASN1_INTEGER, v: i64) -> ::core::ffi::c_int;
8529}
8530unsafe extern "C" {
8531    pub fn ASN1_INTEGER_get_uint64(out: *mut u64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8532}
8533unsafe extern "C" {
8534    pub fn ASN1_INTEGER_get_int64(out: *mut i64, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8535}
8536unsafe extern "C" {
8537    pub fn BN_to_ASN1_INTEGER(bn: *const BIGNUM, ai: *mut ASN1_INTEGER) -> *mut ASN1_INTEGER;
8538}
8539unsafe extern "C" {
8540    pub fn ASN1_INTEGER_to_BN(ai: *const ASN1_INTEGER, bn: *mut BIGNUM) -> *mut BIGNUM;
8541}
8542unsafe extern "C" {
8543    pub fn ASN1_INTEGER_cmp(x: *const ASN1_INTEGER, y: *const ASN1_INTEGER) -> ::core::ffi::c_int;
8544}
8545unsafe extern "C" {
8546    pub fn ASN1_ENUMERATED_new() -> *mut ASN1_ENUMERATED;
8547}
8548unsafe extern "C" {
8549    pub fn ASN1_ENUMERATED_free(str_: *mut ASN1_ENUMERATED);
8550}
8551unsafe extern "C" {
8552    pub fn d2i_ASN1_ENUMERATED(
8553        out: *mut *mut ASN1_ENUMERATED,
8554        inp: *mut *const u8,
8555        len: ::core::ffi::c_long,
8556    ) -> *mut ASN1_ENUMERATED;
8557}
8558unsafe extern "C" {
8559    pub fn i2d_ASN1_ENUMERATED(
8560        in_: *const ASN1_ENUMERATED,
8561        outp: *mut *mut u8,
8562    ) -> ::core::ffi::c_int;
8563}
8564unsafe extern "C" {
8565    pub static ASN1_ENUMERATED_it: ASN1_ITEM;
8566}
8567unsafe extern "C" {
8568    pub fn ASN1_ENUMERATED_set_uint64(out: *mut ASN1_ENUMERATED, v: u64) -> ::core::ffi::c_int;
8569}
8570unsafe extern "C" {
8571    pub fn ASN1_ENUMERATED_set_int64(out: *mut ASN1_ENUMERATED, v: i64) -> ::core::ffi::c_int;
8572}
8573unsafe extern "C" {
8574    pub fn ASN1_ENUMERATED_get_uint64(
8575        out: *mut u64,
8576        a: *const ASN1_ENUMERATED,
8577    ) -> ::core::ffi::c_int;
8578}
8579unsafe extern "C" {
8580    pub fn ASN1_ENUMERATED_get_int64(
8581        out: *mut i64,
8582        a: *const ASN1_ENUMERATED,
8583    ) -> ::core::ffi::c_int;
8584}
8585unsafe extern "C" {
8586    pub fn BN_to_ASN1_ENUMERATED(
8587        bn: *const BIGNUM,
8588        ai: *mut ASN1_ENUMERATED,
8589    ) -> *mut ASN1_ENUMERATED;
8590}
8591unsafe extern "C" {
8592    pub fn ASN1_ENUMERATED_to_BN(ai: *const ASN1_ENUMERATED, bn: *mut BIGNUM) -> *mut BIGNUM;
8593}
8594unsafe extern "C" {
8595    pub fn ASN1_UTCTIME_new() -> *mut ASN1_UTCTIME;
8596}
8597unsafe extern "C" {
8598    pub fn ASN1_UTCTIME_free(str_: *mut ASN1_UTCTIME);
8599}
8600unsafe extern "C" {
8601    pub fn d2i_ASN1_UTCTIME(
8602        out: *mut *mut ASN1_UTCTIME,
8603        inp: *mut *const u8,
8604        len: ::core::ffi::c_long,
8605    ) -> *mut ASN1_UTCTIME;
8606}
8607unsafe extern "C" {
8608    pub fn i2d_ASN1_UTCTIME(in_: *const ASN1_UTCTIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8609}
8610unsafe extern "C" {
8611    pub static ASN1_UTCTIME_it: ASN1_ITEM;
8612}
8613unsafe extern "C" {
8614    pub fn ASN1_UTCTIME_check(a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
8615}
8616unsafe extern "C" {
8617    pub fn ASN1_UTCTIME_set(s: *mut ASN1_UTCTIME, posix_time: i64) -> *mut ASN1_UTCTIME;
8618}
8619unsafe extern "C" {
8620    pub fn ASN1_UTCTIME_adj(
8621        s: *mut ASN1_UTCTIME,
8622        posix_time: i64,
8623        offset_day: ::core::ffi::c_int,
8624        offset_sec: ::core::ffi::c_long,
8625    ) -> *mut ASN1_UTCTIME;
8626}
8627unsafe extern "C" {
8628    pub fn ASN1_UTCTIME_set_string(
8629        s: *mut ASN1_UTCTIME,
8630        str_: *const ::core::ffi::c_char,
8631    ) -> ::core::ffi::c_int;
8632}
8633unsafe extern "C" {
8634    pub fn ASN1_GENERALIZEDTIME_new() -> *mut ASN1_GENERALIZEDTIME;
8635}
8636unsafe extern "C" {
8637    pub fn ASN1_GENERALIZEDTIME_free(str_: *mut ASN1_GENERALIZEDTIME);
8638}
8639unsafe extern "C" {
8640    pub fn d2i_ASN1_GENERALIZEDTIME(
8641        out: *mut *mut ASN1_GENERALIZEDTIME,
8642        inp: *mut *const u8,
8643        len: ::core::ffi::c_long,
8644    ) -> *mut ASN1_GENERALIZEDTIME;
8645}
8646unsafe extern "C" {
8647    pub fn i2d_ASN1_GENERALIZEDTIME(
8648        in_: *const ASN1_GENERALIZEDTIME,
8649        outp: *mut *mut u8,
8650    ) -> ::core::ffi::c_int;
8651}
8652unsafe extern "C" {
8653    pub static ASN1_GENERALIZEDTIME_it: ASN1_ITEM;
8654}
8655unsafe extern "C" {
8656    pub fn ASN1_GENERALIZEDTIME_check(a: *const ASN1_GENERALIZEDTIME) -> ::core::ffi::c_int;
8657}
8658unsafe extern "C" {
8659    pub fn ASN1_GENERALIZEDTIME_set(
8660        s: *mut ASN1_GENERALIZEDTIME,
8661        posix_time: i64,
8662    ) -> *mut ASN1_GENERALIZEDTIME;
8663}
8664unsafe extern "C" {
8665    pub fn ASN1_GENERALIZEDTIME_adj(
8666        s: *mut ASN1_GENERALIZEDTIME,
8667        posix_time: i64,
8668        offset_day: ::core::ffi::c_int,
8669        offset_sec: ::core::ffi::c_long,
8670    ) -> *mut ASN1_GENERALIZEDTIME;
8671}
8672unsafe extern "C" {
8673    pub fn ASN1_GENERALIZEDTIME_set_string(
8674        s: *mut ASN1_GENERALIZEDTIME,
8675        str_: *const ::core::ffi::c_char,
8676    ) -> ::core::ffi::c_int;
8677}
8678unsafe extern "C" {
8679    pub fn ASN1_TIME_new() -> *mut ASN1_TIME;
8680}
8681unsafe extern "C" {
8682    pub fn ASN1_TIME_free(str_: *mut ASN1_TIME);
8683}
8684unsafe extern "C" {
8685    pub fn d2i_ASN1_TIME(
8686        out: *mut *mut ASN1_TIME,
8687        inp: *mut *const u8,
8688        len: ::core::ffi::c_long,
8689    ) -> *mut ASN1_TIME;
8690}
8691unsafe extern "C" {
8692    pub fn i2d_ASN1_TIME(in_: *const ASN1_TIME, outp: *mut *mut u8) -> ::core::ffi::c_int;
8693}
8694unsafe extern "C" {
8695    pub fn ASN1_TIME_diff(
8696        out_days: *mut ::core::ffi::c_int,
8697        out_seconds: *mut ::core::ffi::c_int,
8698        from: *const ASN1_TIME,
8699        to: *const ASN1_TIME,
8700    ) -> ::core::ffi::c_int;
8701}
8702unsafe extern "C" {
8703    pub fn ASN1_TIME_set_posix(s: *mut ASN1_TIME, posix_time: i64) -> *mut ASN1_TIME;
8704}
8705unsafe extern "C" {
8706    pub fn ASN1_TIME_set(s: *mut ASN1_TIME, time: time_t) -> *mut ASN1_TIME;
8707}
8708unsafe extern "C" {
8709    pub fn ASN1_TIME_adj(
8710        s: *mut ASN1_TIME,
8711        posix_time: i64,
8712        offset_day: ::core::ffi::c_int,
8713        offset_sec: ::core::ffi::c_long,
8714    ) -> *mut ASN1_TIME;
8715}
8716unsafe extern "C" {
8717    pub fn ASN1_TIME_check(t: *const ASN1_TIME) -> ::core::ffi::c_int;
8718}
8719unsafe extern "C" {
8720    pub fn ASN1_TIME_to_generalizedtime(
8721        t: *const ASN1_TIME,
8722        out: *mut *mut ASN1_GENERALIZEDTIME,
8723    ) -> *mut ASN1_GENERALIZEDTIME;
8724}
8725unsafe extern "C" {
8726    pub fn ASN1_TIME_set_string(
8727        s: *mut ASN1_TIME,
8728        str_: *const ::core::ffi::c_char,
8729    ) -> ::core::ffi::c_int;
8730}
8731unsafe extern "C" {
8732    pub fn ASN1_TIME_set_string_X509(
8733        s: *mut ASN1_TIME,
8734        str_: *const ::core::ffi::c_char,
8735    ) -> ::core::ffi::c_int;
8736}
8737unsafe extern "C" {
8738    pub fn ASN1_TIME_to_time_t(t: *const ASN1_TIME, out: *mut time_t) -> ::core::ffi::c_int;
8739}
8740unsafe extern "C" {
8741    pub fn ASN1_TIME_to_posix(t: *const ASN1_TIME, out: *mut i64) -> ::core::ffi::c_int;
8742}
8743unsafe extern "C" {
8744    pub fn ASN1_TIME_to_posix_nonstandard(t: *const ASN1_TIME, out: *mut i64)
8745        -> ::core::ffi::c_int;
8746}
8747unsafe extern "C" {
8748    pub fn ASN1_NULL_new() -> *mut ASN1_NULL;
8749}
8750unsafe extern "C" {
8751    pub fn ASN1_NULL_free(null: *mut ASN1_NULL);
8752}
8753unsafe extern "C" {
8754    pub fn d2i_ASN1_NULL(
8755        out: *mut *mut ASN1_NULL,
8756        inp: *mut *const u8,
8757        len: ::core::ffi::c_long,
8758    ) -> *mut ASN1_NULL;
8759}
8760unsafe extern "C" {
8761    pub fn i2d_ASN1_NULL(in_: *const ASN1_NULL, outp: *mut *mut u8) -> ::core::ffi::c_int;
8762}
8763unsafe extern "C" {
8764    pub static ASN1_NULL_it: ASN1_ITEM;
8765}
8766#[repr(C)]
8767#[derive(Debug)]
8768pub struct stack_st_ASN1_OBJECT {
8769    _unused: [u8; 0],
8770}
8771pub type sk_ASN1_OBJECT_free_func =
8772    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_OBJECT)>;
8773pub type sk_ASN1_OBJECT_copy_func =
8774    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_OBJECT) -> *mut ASN1_OBJECT>;
8775pub type sk_ASN1_OBJECT_cmp_func = ::core::option::Option<
8776    unsafe extern "C" fn(
8777        arg1: *const *const ASN1_OBJECT,
8778        arg2: *const *const ASN1_OBJECT,
8779    ) -> ::core::ffi::c_int,
8780>;
8781pub type sk_ASN1_OBJECT_delete_if_func = ::core::option::Option<
8782    unsafe extern "C" fn(
8783        arg1: *mut ASN1_OBJECT,
8784        arg2: *mut ::core::ffi::c_void,
8785    ) -> ::core::ffi::c_int,
8786>;
8787unsafe extern "C" {
8788    #[link_name = "sk_ASN1_OBJECT_call_free_func__extern"]
8789    pub fn sk_ASN1_OBJECT_call_free_func(
8790        free_func: OPENSSL_sk_free_func,
8791        ptr: *mut ::core::ffi::c_void,
8792    );
8793}
8794unsafe extern "C" {
8795    #[link_name = "sk_ASN1_OBJECT_call_copy_func__extern"]
8796    pub fn sk_ASN1_OBJECT_call_copy_func(
8797        copy_func: OPENSSL_sk_copy_func,
8798        ptr: *const ::core::ffi::c_void,
8799    ) -> *mut ::core::ffi::c_void;
8800}
8801unsafe extern "C" {
8802    #[link_name = "sk_ASN1_OBJECT_call_cmp_func__extern"]
8803    pub fn sk_ASN1_OBJECT_call_cmp_func(
8804        cmp_func: OPENSSL_sk_cmp_func,
8805        a: *const ::core::ffi::c_void,
8806        b: *const ::core::ffi::c_void,
8807    ) -> ::core::ffi::c_int;
8808}
8809unsafe extern "C" {
8810    #[link_name = "sk_ASN1_OBJECT_call_delete_if_func__extern"]
8811    pub fn sk_ASN1_OBJECT_call_delete_if_func(
8812        func: OPENSSL_sk_delete_if_func,
8813        obj: *mut ::core::ffi::c_void,
8814        data: *mut ::core::ffi::c_void,
8815    ) -> ::core::ffi::c_int;
8816}
8817unsafe extern "C" {
8818    #[link_name = "sk_ASN1_OBJECT_new__extern"]
8819    pub fn sk_ASN1_OBJECT_new(comp: sk_ASN1_OBJECT_cmp_func) -> *mut stack_st_ASN1_OBJECT;
8820}
8821unsafe extern "C" {
8822    #[link_name = "sk_ASN1_OBJECT_new_null__extern"]
8823    pub fn sk_ASN1_OBJECT_new_null() -> *mut stack_st_ASN1_OBJECT;
8824}
8825unsafe extern "C" {
8826    #[link_name = "sk_ASN1_OBJECT_num__extern"]
8827    pub fn sk_ASN1_OBJECT_num(sk: *const stack_st_ASN1_OBJECT) -> usize;
8828}
8829unsafe extern "C" {
8830    #[link_name = "sk_ASN1_OBJECT_zero__extern"]
8831    pub fn sk_ASN1_OBJECT_zero(sk: *mut stack_st_ASN1_OBJECT);
8832}
8833unsafe extern "C" {
8834    #[link_name = "sk_ASN1_OBJECT_value__extern"]
8835    pub fn sk_ASN1_OBJECT_value(sk: *const stack_st_ASN1_OBJECT, i: usize) -> *mut ASN1_OBJECT;
8836}
8837unsafe extern "C" {
8838    #[link_name = "sk_ASN1_OBJECT_set__extern"]
8839    pub fn sk_ASN1_OBJECT_set(
8840        sk: *mut stack_st_ASN1_OBJECT,
8841        i: usize,
8842        p: *mut ASN1_OBJECT,
8843    ) -> *mut ASN1_OBJECT;
8844}
8845unsafe extern "C" {
8846    #[link_name = "sk_ASN1_OBJECT_free__extern"]
8847    pub fn sk_ASN1_OBJECT_free(sk: *mut stack_st_ASN1_OBJECT);
8848}
8849unsafe extern "C" {
8850    #[link_name = "sk_ASN1_OBJECT_pop_free__extern"]
8851    pub fn sk_ASN1_OBJECT_pop_free(
8852        sk: *mut stack_st_ASN1_OBJECT,
8853        free_func: sk_ASN1_OBJECT_free_func,
8854    );
8855}
8856unsafe extern "C" {
8857    #[link_name = "sk_ASN1_OBJECT_insert__extern"]
8858    pub fn sk_ASN1_OBJECT_insert(
8859        sk: *mut stack_st_ASN1_OBJECT,
8860        p: *mut ASN1_OBJECT,
8861        where_: usize,
8862    ) -> usize;
8863}
8864unsafe extern "C" {
8865    #[link_name = "sk_ASN1_OBJECT_delete__extern"]
8866    pub fn sk_ASN1_OBJECT_delete(sk: *mut stack_st_ASN1_OBJECT, where_: usize) -> *mut ASN1_OBJECT;
8867}
8868unsafe extern "C" {
8869    #[link_name = "sk_ASN1_OBJECT_delete_ptr__extern"]
8870    pub fn sk_ASN1_OBJECT_delete_ptr(
8871        sk: *mut stack_st_ASN1_OBJECT,
8872        p: *const ASN1_OBJECT,
8873    ) -> *mut ASN1_OBJECT;
8874}
8875unsafe extern "C" {
8876    #[link_name = "sk_ASN1_OBJECT_delete_if__extern"]
8877    pub fn sk_ASN1_OBJECT_delete_if(
8878        sk: *mut stack_st_ASN1_OBJECT,
8879        func: sk_ASN1_OBJECT_delete_if_func,
8880        data: *mut ::core::ffi::c_void,
8881    );
8882}
8883unsafe extern "C" {
8884    #[link_name = "sk_ASN1_OBJECT_find__extern"]
8885    pub fn sk_ASN1_OBJECT_find(
8886        sk: *const stack_st_ASN1_OBJECT,
8887        out_index: *mut usize,
8888        p: *const ASN1_OBJECT,
8889    ) -> ::core::ffi::c_int;
8890}
8891unsafe extern "C" {
8892    #[link_name = "sk_ASN1_OBJECT_shift__extern"]
8893    pub fn sk_ASN1_OBJECT_shift(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8894}
8895unsafe extern "C" {
8896    #[link_name = "sk_ASN1_OBJECT_push__extern"]
8897    pub fn sk_ASN1_OBJECT_push(sk: *mut stack_st_ASN1_OBJECT, p: *mut ASN1_OBJECT) -> usize;
8898}
8899unsafe extern "C" {
8900    #[link_name = "sk_ASN1_OBJECT_pop__extern"]
8901    pub fn sk_ASN1_OBJECT_pop(sk: *mut stack_st_ASN1_OBJECT) -> *mut ASN1_OBJECT;
8902}
8903unsafe extern "C" {
8904    #[link_name = "sk_ASN1_OBJECT_dup__extern"]
8905    pub fn sk_ASN1_OBJECT_dup(sk: *const stack_st_ASN1_OBJECT) -> *mut stack_st_ASN1_OBJECT;
8906}
8907unsafe extern "C" {
8908    #[link_name = "sk_ASN1_OBJECT_sort__extern"]
8909    pub fn sk_ASN1_OBJECT_sort(sk: *mut stack_st_ASN1_OBJECT);
8910}
8911unsafe extern "C" {
8912    #[link_name = "sk_ASN1_OBJECT_sort_and_dedup__extern"]
8913    pub fn sk_ASN1_OBJECT_sort_and_dedup(
8914        sk: *mut stack_st_ASN1_OBJECT,
8915        free_func: sk_ASN1_OBJECT_free_func,
8916    );
8917}
8918unsafe extern "C" {
8919    #[link_name = "sk_ASN1_OBJECT_is_sorted__extern"]
8920    pub fn sk_ASN1_OBJECT_is_sorted(sk: *const stack_st_ASN1_OBJECT) -> ::core::ffi::c_int;
8921}
8922unsafe extern "C" {
8923    #[link_name = "sk_ASN1_OBJECT_set_cmp_func__extern"]
8924    pub fn sk_ASN1_OBJECT_set_cmp_func(
8925        sk: *mut stack_st_ASN1_OBJECT,
8926        comp: sk_ASN1_OBJECT_cmp_func,
8927    ) -> sk_ASN1_OBJECT_cmp_func;
8928}
8929unsafe extern "C" {
8930    #[link_name = "sk_ASN1_OBJECT_deep_copy__extern"]
8931    pub fn sk_ASN1_OBJECT_deep_copy(
8932        sk: *const stack_st_ASN1_OBJECT,
8933        copy_func: sk_ASN1_OBJECT_copy_func,
8934        free_func: sk_ASN1_OBJECT_free_func,
8935    ) -> *mut stack_st_ASN1_OBJECT;
8936}
8937unsafe extern "C" {
8938    pub fn ASN1_OBJECT_create(
8939        nid: ::core::ffi::c_int,
8940        data: *const u8,
8941        len: usize,
8942        sn: *const ::core::ffi::c_char,
8943        ln: *const ::core::ffi::c_char,
8944    ) -> *mut ASN1_OBJECT;
8945}
8946unsafe extern "C" {
8947    pub fn ASN1_OBJECT_free(a: *mut ASN1_OBJECT);
8948}
8949unsafe extern "C" {
8950    pub fn d2i_ASN1_OBJECT(
8951        out: *mut *mut ASN1_OBJECT,
8952        inp: *mut *const u8,
8953        len: ::core::ffi::c_long,
8954    ) -> *mut ASN1_OBJECT;
8955}
8956unsafe extern "C" {
8957    pub fn i2d_ASN1_OBJECT(in_: *const ASN1_OBJECT, outp: *mut *mut u8) -> ::core::ffi::c_int;
8958}
8959unsafe extern "C" {
8960    pub fn c2i_ASN1_OBJECT(
8961        out: *mut *mut ASN1_OBJECT,
8962        inp: *mut *const u8,
8963        len: ::core::ffi::c_long,
8964    ) -> *mut ASN1_OBJECT;
8965}
8966unsafe extern "C" {
8967    pub static ASN1_OBJECT_it: ASN1_ITEM;
8968}
8969#[repr(C)]
8970#[derive(Copy, Clone)]
8971pub struct asn1_type_st {
8972    pub type_: ::core::ffi::c_int,
8973    pub value: asn1_type_st__bindgen_ty_1,
8974}
8975#[repr(C)]
8976#[derive(Copy, Clone)]
8977pub union asn1_type_st__bindgen_ty_1 {
8978    pub ptr: *mut ::core::ffi::c_char,
8979    pub boolean: ASN1_BOOLEAN,
8980    pub asn1_string: *mut ASN1_STRING,
8981    pub object: *mut ASN1_OBJECT,
8982    pub integer: *mut ASN1_INTEGER,
8983    pub enumerated: *mut ASN1_ENUMERATED,
8984    pub bit_string: *mut ASN1_BIT_STRING,
8985    pub octet_string: *mut ASN1_OCTET_STRING,
8986    pub printablestring: *mut ASN1_PRINTABLESTRING,
8987    pub t61string: *mut ASN1_T61STRING,
8988    pub ia5string: *mut ASN1_IA5STRING,
8989    pub generalstring: *mut ASN1_GENERALSTRING,
8990    pub bmpstring: *mut ASN1_BMPSTRING,
8991    pub universalstring: *mut ASN1_UNIVERSALSTRING,
8992    pub utctime: *mut ASN1_UTCTIME,
8993    pub generalizedtime: *mut ASN1_GENERALIZEDTIME,
8994    pub visiblestring: *mut ASN1_VISIBLESTRING,
8995    pub utf8string: *mut ASN1_UTF8STRING,
8996    pub set: *mut ASN1_STRING,
8997    pub sequence: *mut ASN1_STRING,
8998    pub asn1_value: *mut ASN1_VALUE,
8999}
9000#[repr(C)]
9001#[derive(Debug)]
9002pub struct stack_st_ASN1_TYPE {
9003    _unused: [u8; 0],
9004}
9005pub type sk_ASN1_TYPE_free_func =
9006    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_TYPE)>;
9007pub type sk_ASN1_TYPE_copy_func =
9008    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_TYPE) -> *mut ASN1_TYPE>;
9009pub type sk_ASN1_TYPE_cmp_func = ::core::option::Option<
9010    unsafe extern "C" fn(
9011        arg1: *const *const ASN1_TYPE,
9012        arg2: *const *const ASN1_TYPE,
9013    ) -> ::core::ffi::c_int,
9014>;
9015pub type sk_ASN1_TYPE_delete_if_func = ::core::option::Option<
9016    unsafe extern "C" fn(
9017        arg1: *mut ASN1_TYPE,
9018        arg2: *mut ::core::ffi::c_void,
9019    ) -> ::core::ffi::c_int,
9020>;
9021unsafe extern "C" {
9022    #[link_name = "sk_ASN1_TYPE_call_free_func__extern"]
9023    pub fn sk_ASN1_TYPE_call_free_func(
9024        free_func: OPENSSL_sk_free_func,
9025        ptr: *mut ::core::ffi::c_void,
9026    );
9027}
9028unsafe extern "C" {
9029    #[link_name = "sk_ASN1_TYPE_call_copy_func__extern"]
9030    pub fn sk_ASN1_TYPE_call_copy_func(
9031        copy_func: OPENSSL_sk_copy_func,
9032        ptr: *const ::core::ffi::c_void,
9033    ) -> *mut ::core::ffi::c_void;
9034}
9035unsafe extern "C" {
9036    #[link_name = "sk_ASN1_TYPE_call_cmp_func__extern"]
9037    pub fn sk_ASN1_TYPE_call_cmp_func(
9038        cmp_func: OPENSSL_sk_cmp_func,
9039        a: *const ::core::ffi::c_void,
9040        b: *const ::core::ffi::c_void,
9041    ) -> ::core::ffi::c_int;
9042}
9043unsafe extern "C" {
9044    #[link_name = "sk_ASN1_TYPE_call_delete_if_func__extern"]
9045    pub fn sk_ASN1_TYPE_call_delete_if_func(
9046        func: OPENSSL_sk_delete_if_func,
9047        obj: *mut ::core::ffi::c_void,
9048        data: *mut ::core::ffi::c_void,
9049    ) -> ::core::ffi::c_int;
9050}
9051unsafe extern "C" {
9052    #[link_name = "sk_ASN1_TYPE_new__extern"]
9053    pub fn sk_ASN1_TYPE_new(comp: sk_ASN1_TYPE_cmp_func) -> *mut stack_st_ASN1_TYPE;
9054}
9055unsafe extern "C" {
9056    #[link_name = "sk_ASN1_TYPE_new_null__extern"]
9057    pub fn sk_ASN1_TYPE_new_null() -> *mut stack_st_ASN1_TYPE;
9058}
9059unsafe extern "C" {
9060    #[link_name = "sk_ASN1_TYPE_num__extern"]
9061    pub fn sk_ASN1_TYPE_num(sk: *const stack_st_ASN1_TYPE) -> usize;
9062}
9063unsafe extern "C" {
9064    #[link_name = "sk_ASN1_TYPE_zero__extern"]
9065    pub fn sk_ASN1_TYPE_zero(sk: *mut stack_st_ASN1_TYPE);
9066}
9067unsafe extern "C" {
9068    #[link_name = "sk_ASN1_TYPE_value__extern"]
9069    pub fn sk_ASN1_TYPE_value(sk: *const stack_st_ASN1_TYPE, i: usize) -> *mut ASN1_TYPE;
9070}
9071unsafe extern "C" {
9072    #[link_name = "sk_ASN1_TYPE_set__extern"]
9073    pub fn sk_ASN1_TYPE_set(
9074        sk: *mut stack_st_ASN1_TYPE,
9075        i: usize,
9076        p: *mut ASN1_TYPE,
9077    ) -> *mut ASN1_TYPE;
9078}
9079unsafe extern "C" {
9080    #[link_name = "sk_ASN1_TYPE_free__extern"]
9081    pub fn sk_ASN1_TYPE_free(sk: *mut stack_st_ASN1_TYPE);
9082}
9083unsafe extern "C" {
9084    #[link_name = "sk_ASN1_TYPE_pop_free__extern"]
9085    pub fn sk_ASN1_TYPE_pop_free(sk: *mut stack_st_ASN1_TYPE, free_func: sk_ASN1_TYPE_free_func);
9086}
9087unsafe extern "C" {
9088    #[link_name = "sk_ASN1_TYPE_insert__extern"]
9089    pub fn sk_ASN1_TYPE_insert(
9090        sk: *mut stack_st_ASN1_TYPE,
9091        p: *mut ASN1_TYPE,
9092        where_: usize,
9093    ) -> usize;
9094}
9095unsafe extern "C" {
9096    #[link_name = "sk_ASN1_TYPE_delete__extern"]
9097    pub fn sk_ASN1_TYPE_delete(sk: *mut stack_st_ASN1_TYPE, where_: usize) -> *mut ASN1_TYPE;
9098}
9099unsafe extern "C" {
9100    #[link_name = "sk_ASN1_TYPE_delete_ptr__extern"]
9101    pub fn sk_ASN1_TYPE_delete_ptr(
9102        sk: *mut stack_st_ASN1_TYPE,
9103        p: *const ASN1_TYPE,
9104    ) -> *mut ASN1_TYPE;
9105}
9106unsafe extern "C" {
9107    #[link_name = "sk_ASN1_TYPE_delete_if__extern"]
9108    pub fn sk_ASN1_TYPE_delete_if(
9109        sk: *mut stack_st_ASN1_TYPE,
9110        func: sk_ASN1_TYPE_delete_if_func,
9111        data: *mut ::core::ffi::c_void,
9112    );
9113}
9114unsafe extern "C" {
9115    #[link_name = "sk_ASN1_TYPE_find__extern"]
9116    pub fn sk_ASN1_TYPE_find(
9117        sk: *const stack_st_ASN1_TYPE,
9118        out_index: *mut usize,
9119        p: *const ASN1_TYPE,
9120    ) -> ::core::ffi::c_int;
9121}
9122unsafe extern "C" {
9123    #[link_name = "sk_ASN1_TYPE_shift__extern"]
9124    pub fn sk_ASN1_TYPE_shift(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9125}
9126unsafe extern "C" {
9127    #[link_name = "sk_ASN1_TYPE_push__extern"]
9128    pub fn sk_ASN1_TYPE_push(sk: *mut stack_st_ASN1_TYPE, p: *mut ASN1_TYPE) -> usize;
9129}
9130unsafe extern "C" {
9131    #[link_name = "sk_ASN1_TYPE_pop__extern"]
9132    pub fn sk_ASN1_TYPE_pop(sk: *mut stack_st_ASN1_TYPE) -> *mut ASN1_TYPE;
9133}
9134unsafe extern "C" {
9135    #[link_name = "sk_ASN1_TYPE_dup__extern"]
9136    pub fn sk_ASN1_TYPE_dup(sk: *const stack_st_ASN1_TYPE) -> *mut stack_st_ASN1_TYPE;
9137}
9138unsafe extern "C" {
9139    #[link_name = "sk_ASN1_TYPE_sort__extern"]
9140    pub fn sk_ASN1_TYPE_sort(sk: *mut stack_st_ASN1_TYPE);
9141}
9142unsafe extern "C" {
9143    #[link_name = "sk_ASN1_TYPE_sort_and_dedup__extern"]
9144    pub fn sk_ASN1_TYPE_sort_and_dedup(
9145        sk: *mut stack_st_ASN1_TYPE,
9146        free_func: sk_ASN1_TYPE_free_func,
9147    );
9148}
9149unsafe extern "C" {
9150    #[link_name = "sk_ASN1_TYPE_is_sorted__extern"]
9151    pub fn sk_ASN1_TYPE_is_sorted(sk: *const stack_st_ASN1_TYPE) -> ::core::ffi::c_int;
9152}
9153unsafe extern "C" {
9154    #[link_name = "sk_ASN1_TYPE_set_cmp_func__extern"]
9155    pub fn sk_ASN1_TYPE_set_cmp_func(
9156        sk: *mut stack_st_ASN1_TYPE,
9157        comp: sk_ASN1_TYPE_cmp_func,
9158    ) -> sk_ASN1_TYPE_cmp_func;
9159}
9160unsafe extern "C" {
9161    #[link_name = "sk_ASN1_TYPE_deep_copy__extern"]
9162    pub fn sk_ASN1_TYPE_deep_copy(
9163        sk: *const stack_st_ASN1_TYPE,
9164        copy_func: sk_ASN1_TYPE_copy_func,
9165        free_func: sk_ASN1_TYPE_free_func,
9166    ) -> *mut stack_st_ASN1_TYPE;
9167}
9168unsafe extern "C" {
9169    pub fn ASN1_TYPE_new() -> *mut ASN1_TYPE;
9170}
9171unsafe extern "C" {
9172    pub fn ASN1_TYPE_free(a: *mut ASN1_TYPE);
9173}
9174unsafe extern "C" {
9175    pub fn d2i_ASN1_TYPE(
9176        out: *mut *mut ASN1_TYPE,
9177        inp: *mut *const u8,
9178        len: ::core::ffi::c_long,
9179    ) -> *mut ASN1_TYPE;
9180}
9181unsafe extern "C" {
9182    pub fn i2d_ASN1_TYPE(in_: *const ASN1_TYPE, outp: *mut *mut u8) -> ::core::ffi::c_int;
9183}
9184unsafe extern "C" {
9185    pub static ASN1_ANY_it: ASN1_ITEM;
9186}
9187unsafe extern "C" {
9188    pub fn ASN1_TYPE_get(a: *const ASN1_TYPE) -> ::core::ffi::c_int;
9189}
9190unsafe extern "C" {
9191    pub fn ASN1_TYPE_set(
9192        a: *mut ASN1_TYPE,
9193        type_: ::core::ffi::c_int,
9194        value: *mut ::core::ffi::c_void,
9195    );
9196}
9197unsafe extern "C" {
9198    pub fn ASN1_TYPE_set1(
9199        a: *mut ASN1_TYPE,
9200        type_: ::core::ffi::c_int,
9201        value: *const ::core::ffi::c_void,
9202    ) -> ::core::ffi::c_int;
9203}
9204unsafe extern "C" {
9205    pub fn ASN1_TYPE_cmp(a: *const ASN1_TYPE, b: *const ASN1_TYPE) -> ::core::ffi::c_int;
9206}
9207pub type ASN1_SEQUENCE_ANY = stack_st_ASN1_TYPE;
9208unsafe extern "C" {
9209    pub fn d2i_ASN1_SEQUENCE_ANY(
9210        out: *mut *mut ASN1_SEQUENCE_ANY,
9211        inp: *mut *const u8,
9212        len: ::core::ffi::c_long,
9213    ) -> *mut ASN1_SEQUENCE_ANY;
9214}
9215unsafe extern "C" {
9216    pub fn i2d_ASN1_SEQUENCE_ANY(
9217        in_: *const ASN1_SEQUENCE_ANY,
9218        outp: *mut *mut u8,
9219    ) -> ::core::ffi::c_int;
9220}
9221unsafe extern "C" {
9222    pub fn d2i_ASN1_SET_ANY(
9223        out: *mut *mut ASN1_SEQUENCE_ANY,
9224        inp: *mut *const u8,
9225        len: ::core::ffi::c_long,
9226    ) -> *mut ASN1_SEQUENCE_ANY;
9227}
9228unsafe extern "C" {
9229    pub fn i2d_ASN1_SET_ANY(
9230        in_: *const ASN1_SEQUENCE_ANY,
9231        outp: *mut *mut u8,
9232    ) -> ::core::ffi::c_int;
9233}
9234unsafe extern "C" {
9235    pub fn ASN1_UTCTIME_print(out: *mut BIO, a: *const ASN1_UTCTIME) -> ::core::ffi::c_int;
9236}
9237unsafe extern "C" {
9238    pub fn ASN1_GENERALIZEDTIME_print(
9239        out: *mut BIO,
9240        a: *const ASN1_GENERALIZEDTIME,
9241    ) -> ::core::ffi::c_int;
9242}
9243unsafe extern "C" {
9244    pub fn ASN1_TIME_print(out: *mut BIO, a: *const ASN1_TIME) -> ::core::ffi::c_int;
9245}
9246unsafe extern "C" {
9247    pub fn ASN1_STRING_print(out: *mut BIO, str_: *const ASN1_STRING) -> ::core::ffi::c_int;
9248}
9249unsafe extern "C" {
9250    pub fn ASN1_STRING_print_ex(
9251        out: *mut BIO,
9252        str_: *const ASN1_STRING,
9253        flags: ::core::ffi::c_ulong,
9254    ) -> ::core::ffi::c_int;
9255}
9256unsafe extern "C" {
9257    pub fn ASN1_STRING_print_ex_fp(
9258        fp: *mut FILE,
9259        str_: *const ASN1_STRING,
9260        flags: ::core::ffi::c_ulong,
9261    ) -> ::core::ffi::c_int;
9262}
9263unsafe extern "C" {
9264    pub fn i2a_ASN1_INTEGER(bp: *mut BIO, a: *const ASN1_INTEGER) -> ::core::ffi::c_int;
9265}
9266unsafe extern "C" {
9267    pub fn i2a_ASN1_ENUMERATED(bp: *mut BIO, a: *const ASN1_ENUMERATED) -> ::core::ffi::c_int;
9268}
9269unsafe extern "C" {
9270    pub fn i2a_ASN1_OBJECT(bp: *mut BIO, a: *const ASN1_OBJECT) -> ::core::ffi::c_int;
9271}
9272unsafe extern "C" {
9273    pub fn i2a_ASN1_STRING(
9274        bp: *mut BIO,
9275        a: *const ASN1_STRING,
9276        type_: ::core::ffi::c_int,
9277    ) -> ::core::ffi::c_int;
9278}
9279unsafe extern "C" {
9280    pub fn i2t_ASN1_OBJECT(
9281        buf: *mut ::core::ffi::c_char,
9282        buf_len: ::core::ffi::c_int,
9283        a: *const ASN1_OBJECT,
9284    ) -> ::core::ffi::c_int;
9285}
9286unsafe extern "C" {
9287    pub fn ASN1_get_object(
9288        inp: *mut *const ::core::ffi::c_uchar,
9289        out_length: *mut ::core::ffi::c_long,
9290        out_tag: *mut ::core::ffi::c_int,
9291        out_class: *mut ::core::ffi::c_int,
9292        max_len: ::core::ffi::c_long,
9293    ) -> ::core::ffi::c_int;
9294}
9295unsafe extern "C" {
9296    pub fn ASN1_put_object(
9297        outp: *mut *mut ::core::ffi::c_uchar,
9298        constructed: ::core::ffi::c_int,
9299        length: ::core::ffi::c_int,
9300        tag: ::core::ffi::c_int,
9301        xclass: ::core::ffi::c_int,
9302    );
9303}
9304unsafe extern "C" {
9305    pub fn ASN1_put_eoc(outp: *mut *mut ::core::ffi::c_uchar) -> ::core::ffi::c_int;
9306}
9307unsafe extern "C" {
9308    pub fn ASN1_object_size(
9309        constructed: ::core::ffi::c_int,
9310        length: ::core::ffi::c_int,
9311        tag: ::core::ffi::c_int,
9312    ) -> ::core::ffi::c_int;
9313}
9314unsafe extern "C" {
9315    pub fn ASN1_BIT_STRING_num_bytes(
9316        str_: *const ASN1_BIT_STRING,
9317        out: *mut usize,
9318    ) -> ::core::ffi::c_int;
9319}
9320unsafe extern "C" {
9321    pub fn ASN1_STRING_set_default_mask(mask: ::core::ffi::c_ulong);
9322}
9323unsafe extern "C" {
9324    pub fn ASN1_STRING_set_default_mask_asc(p: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
9325}
9326unsafe extern "C" {
9327    pub fn ASN1_STRING_get_default_mask() -> ::core::ffi::c_ulong;
9328}
9329unsafe extern "C" {
9330    pub fn ASN1_STRING_TABLE_cleanup();
9331}
9332unsafe extern "C" {
9333    pub fn ASN1_INTEGER_set(a: *mut ASN1_INTEGER, v: ::core::ffi::c_long) -> ::core::ffi::c_int;
9334}
9335unsafe extern "C" {
9336    pub fn ASN1_ENUMERATED_set(
9337        a: *mut ASN1_ENUMERATED,
9338        v: ::core::ffi::c_long,
9339    ) -> ::core::ffi::c_int;
9340}
9341unsafe extern "C" {
9342    pub fn ASN1_INTEGER_get(a: *const ASN1_INTEGER) -> ::core::ffi::c_long;
9343}
9344unsafe extern "C" {
9345    pub fn ASN1_ENUMERATED_get(a: *const ASN1_ENUMERATED) -> ::core::ffi::c_long;
9346}
9347pub type ASN1_TEMPLATE = ASN1_TEMPLATE_st;
9348#[repr(C)]
9349#[derive(Debug)]
9350pub struct ASN1_TLC_st {
9351    _unused: [u8; 0],
9352}
9353pub type ASN1_TLC = ASN1_TLC_st;
9354#[repr(C)]
9355#[derive(Debug, Copy, Clone)]
9356pub struct ASN1_TEMPLATE_st {
9357    pub flags: u32,
9358    pub tag: ::core::ffi::c_int,
9359    pub offset: ::core::ffi::c_ulong,
9360    pub field_name: *const ::core::ffi::c_char,
9361    pub item: *const ASN1_ITEM_st,
9362}
9363pub type ASN1_ADB_TABLE = ASN1_ADB_TABLE_st;
9364pub type ASN1_ADB = ASN1_ADB_st;
9365#[repr(C)]
9366#[derive(Debug, Copy, Clone)]
9367pub struct ASN1_ADB_st {
9368    pub flags: u32,
9369    pub offset: ::core::ffi::c_ulong,
9370    pub unused: *mut CRYPTO_MUST_BE_NULL,
9371    pub tbl: *const ASN1_ADB_TABLE,
9372    pub tblcount: ::core::ffi::c_long,
9373    pub default_tt: *const ASN1_TEMPLATE,
9374    pub null_tt: *const ASN1_TEMPLATE,
9375}
9376#[repr(C)]
9377#[derive(Debug, Copy, Clone)]
9378pub struct ASN1_ADB_TABLE_st {
9379    pub value: ::core::ffi::c_int,
9380    pub tt: ASN1_TEMPLATE,
9381}
9382#[repr(C)]
9383#[derive(Debug, Copy, Clone)]
9384pub struct ASN1_ITEM_st {
9385    pub itype: ::core::ffi::c_char,
9386    pub utype: ::core::ffi::c_int,
9387    pub templates: *const ASN1_TEMPLATE,
9388    pub tcount: ::core::ffi::c_long,
9389    pub funcs: *const ::core::ffi::c_void,
9390    pub size: ::core::ffi::c_long,
9391    pub sname: *const ::core::ffi::c_char,
9392}
9393pub type ASN1_aux_cb = ::core::option::Option<
9394    unsafe extern "C" fn(
9395        operation: ::core::ffi::c_int,
9396        in_: *mut *mut ASN1_VALUE,
9397        it: *const ASN1_ITEM,
9398        exarg: *mut ::core::ffi::c_void,
9399    ) -> ::core::ffi::c_int,
9400>;
9401#[repr(C)]
9402#[derive(Debug, Copy, Clone)]
9403pub struct ASN1_AUX_st {
9404    pub app_data: *mut ::core::ffi::c_void,
9405    pub flags: u32,
9406    pub ref_offset: ::core::ffi::c_int,
9407    pub asn1_cb: ASN1_aux_cb,
9408    pub enc_offset: ::core::ffi::c_int,
9409}
9410pub type ASN1_AUX = ASN1_AUX_st;
9411unsafe extern "C" {
9412    pub static ASN1_SEQUENCE_it: ASN1_ITEM;
9413}
9414#[repr(C)]
9415#[derive(Debug)]
9416pub struct stack_st_ASN1_VALUE {
9417    _unused: [u8; 0],
9418}
9419pub type sk_ASN1_VALUE_free_func =
9420    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ASN1_VALUE)>;
9421pub type sk_ASN1_VALUE_copy_func =
9422    ::core::option::Option<unsafe extern "C" fn(arg1: *const ASN1_VALUE) -> *mut ASN1_VALUE>;
9423pub type sk_ASN1_VALUE_cmp_func = ::core::option::Option<
9424    unsafe extern "C" fn(
9425        arg1: *const *const ASN1_VALUE,
9426        arg2: *const *const ASN1_VALUE,
9427    ) -> ::core::ffi::c_int,
9428>;
9429pub type sk_ASN1_VALUE_delete_if_func = ::core::option::Option<
9430    unsafe extern "C" fn(
9431        arg1: *mut ASN1_VALUE,
9432        arg2: *mut ::core::ffi::c_void,
9433    ) -> ::core::ffi::c_int,
9434>;
9435unsafe extern "C" {
9436    #[link_name = "sk_ASN1_VALUE_call_free_func__extern"]
9437    pub fn sk_ASN1_VALUE_call_free_func(
9438        free_func: OPENSSL_sk_free_func,
9439        ptr: *mut ::core::ffi::c_void,
9440    );
9441}
9442unsafe extern "C" {
9443    #[link_name = "sk_ASN1_VALUE_call_copy_func__extern"]
9444    pub fn sk_ASN1_VALUE_call_copy_func(
9445        copy_func: OPENSSL_sk_copy_func,
9446        ptr: *const ::core::ffi::c_void,
9447    ) -> *mut ::core::ffi::c_void;
9448}
9449unsafe extern "C" {
9450    #[link_name = "sk_ASN1_VALUE_call_cmp_func__extern"]
9451    pub fn sk_ASN1_VALUE_call_cmp_func(
9452        cmp_func: OPENSSL_sk_cmp_func,
9453        a: *const ::core::ffi::c_void,
9454        b: *const ::core::ffi::c_void,
9455    ) -> ::core::ffi::c_int;
9456}
9457unsafe extern "C" {
9458    #[link_name = "sk_ASN1_VALUE_call_delete_if_func__extern"]
9459    pub fn sk_ASN1_VALUE_call_delete_if_func(
9460        func: OPENSSL_sk_delete_if_func,
9461        obj: *mut ::core::ffi::c_void,
9462        data: *mut ::core::ffi::c_void,
9463    ) -> ::core::ffi::c_int;
9464}
9465unsafe extern "C" {
9466    #[link_name = "sk_ASN1_VALUE_new__extern"]
9467    pub fn sk_ASN1_VALUE_new(comp: sk_ASN1_VALUE_cmp_func) -> *mut stack_st_ASN1_VALUE;
9468}
9469unsafe extern "C" {
9470    #[link_name = "sk_ASN1_VALUE_new_null__extern"]
9471    pub fn sk_ASN1_VALUE_new_null() -> *mut stack_st_ASN1_VALUE;
9472}
9473unsafe extern "C" {
9474    #[link_name = "sk_ASN1_VALUE_num__extern"]
9475    pub fn sk_ASN1_VALUE_num(sk: *const stack_st_ASN1_VALUE) -> usize;
9476}
9477unsafe extern "C" {
9478    #[link_name = "sk_ASN1_VALUE_zero__extern"]
9479    pub fn sk_ASN1_VALUE_zero(sk: *mut stack_st_ASN1_VALUE);
9480}
9481unsafe extern "C" {
9482    #[link_name = "sk_ASN1_VALUE_value__extern"]
9483    pub fn sk_ASN1_VALUE_value(sk: *const stack_st_ASN1_VALUE, i: usize) -> *mut ASN1_VALUE;
9484}
9485unsafe extern "C" {
9486    #[link_name = "sk_ASN1_VALUE_set__extern"]
9487    pub fn sk_ASN1_VALUE_set(
9488        sk: *mut stack_st_ASN1_VALUE,
9489        i: usize,
9490        p: *mut ASN1_VALUE,
9491    ) -> *mut ASN1_VALUE;
9492}
9493unsafe extern "C" {
9494    #[link_name = "sk_ASN1_VALUE_free__extern"]
9495    pub fn sk_ASN1_VALUE_free(sk: *mut stack_st_ASN1_VALUE);
9496}
9497unsafe extern "C" {
9498    #[link_name = "sk_ASN1_VALUE_pop_free__extern"]
9499    pub fn sk_ASN1_VALUE_pop_free(sk: *mut stack_st_ASN1_VALUE, free_func: sk_ASN1_VALUE_free_func);
9500}
9501unsafe extern "C" {
9502    #[link_name = "sk_ASN1_VALUE_insert__extern"]
9503    pub fn sk_ASN1_VALUE_insert(
9504        sk: *mut stack_st_ASN1_VALUE,
9505        p: *mut ASN1_VALUE,
9506        where_: usize,
9507    ) -> usize;
9508}
9509unsafe extern "C" {
9510    #[link_name = "sk_ASN1_VALUE_delete__extern"]
9511    pub fn sk_ASN1_VALUE_delete(sk: *mut stack_st_ASN1_VALUE, where_: usize) -> *mut ASN1_VALUE;
9512}
9513unsafe extern "C" {
9514    #[link_name = "sk_ASN1_VALUE_delete_ptr__extern"]
9515    pub fn sk_ASN1_VALUE_delete_ptr(
9516        sk: *mut stack_st_ASN1_VALUE,
9517        p: *const ASN1_VALUE,
9518    ) -> *mut ASN1_VALUE;
9519}
9520unsafe extern "C" {
9521    #[link_name = "sk_ASN1_VALUE_delete_if__extern"]
9522    pub fn sk_ASN1_VALUE_delete_if(
9523        sk: *mut stack_st_ASN1_VALUE,
9524        func: sk_ASN1_VALUE_delete_if_func,
9525        data: *mut ::core::ffi::c_void,
9526    );
9527}
9528unsafe extern "C" {
9529    #[link_name = "sk_ASN1_VALUE_find__extern"]
9530    pub fn sk_ASN1_VALUE_find(
9531        sk: *const stack_st_ASN1_VALUE,
9532        out_index: *mut usize,
9533        p: *const ASN1_VALUE,
9534    ) -> ::core::ffi::c_int;
9535}
9536unsafe extern "C" {
9537    #[link_name = "sk_ASN1_VALUE_shift__extern"]
9538    pub fn sk_ASN1_VALUE_shift(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9539}
9540unsafe extern "C" {
9541    #[link_name = "sk_ASN1_VALUE_push__extern"]
9542    pub fn sk_ASN1_VALUE_push(sk: *mut stack_st_ASN1_VALUE, p: *mut ASN1_VALUE) -> usize;
9543}
9544unsafe extern "C" {
9545    #[link_name = "sk_ASN1_VALUE_pop__extern"]
9546    pub fn sk_ASN1_VALUE_pop(sk: *mut stack_st_ASN1_VALUE) -> *mut ASN1_VALUE;
9547}
9548unsafe extern "C" {
9549    #[link_name = "sk_ASN1_VALUE_dup__extern"]
9550    pub fn sk_ASN1_VALUE_dup(sk: *const stack_st_ASN1_VALUE) -> *mut stack_st_ASN1_VALUE;
9551}
9552unsafe extern "C" {
9553    #[link_name = "sk_ASN1_VALUE_sort__extern"]
9554    pub fn sk_ASN1_VALUE_sort(sk: *mut stack_st_ASN1_VALUE);
9555}
9556unsafe extern "C" {
9557    #[link_name = "sk_ASN1_VALUE_sort_and_dedup__extern"]
9558    pub fn sk_ASN1_VALUE_sort_and_dedup(
9559        sk: *mut stack_st_ASN1_VALUE,
9560        free_func: sk_ASN1_VALUE_free_func,
9561    );
9562}
9563unsafe extern "C" {
9564    #[link_name = "sk_ASN1_VALUE_is_sorted__extern"]
9565    pub fn sk_ASN1_VALUE_is_sorted(sk: *const stack_st_ASN1_VALUE) -> ::core::ffi::c_int;
9566}
9567unsafe extern "C" {
9568    #[link_name = "sk_ASN1_VALUE_set_cmp_func__extern"]
9569    pub fn sk_ASN1_VALUE_set_cmp_func(
9570        sk: *mut stack_st_ASN1_VALUE,
9571        comp: sk_ASN1_VALUE_cmp_func,
9572    ) -> sk_ASN1_VALUE_cmp_func;
9573}
9574unsafe extern "C" {
9575    #[link_name = "sk_ASN1_VALUE_deep_copy__extern"]
9576    pub fn sk_ASN1_VALUE_deep_copy(
9577        sk: *const stack_st_ASN1_VALUE,
9578        copy_func: sk_ASN1_VALUE_copy_func,
9579        free_func: sk_ASN1_VALUE_free_func,
9580    ) -> *mut stack_st_ASN1_VALUE;
9581}
9582unsafe extern "C" {
9583    pub fn EVP_EncodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> usize;
9584}
9585unsafe extern "C" {
9586    pub fn EVP_EncodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9587}
9588unsafe extern "C" {
9589    pub fn EVP_DecodedLength(out_len: *mut usize, len: usize) -> ::core::ffi::c_int;
9590}
9591unsafe extern "C" {
9592    pub fn EVP_DecodeBase64(
9593        out: *mut u8,
9594        out_len: *mut usize,
9595        max_out: usize,
9596        in_: *const u8,
9597        in_len: usize,
9598    ) -> ::core::ffi::c_int;
9599}
9600unsafe extern "C" {
9601    pub fn EVP_ENCODE_CTX_new() -> *mut EVP_ENCODE_CTX;
9602}
9603unsafe extern "C" {
9604    pub fn EVP_ENCODE_CTX_free(ctx: *mut EVP_ENCODE_CTX);
9605}
9606unsafe extern "C" {
9607    pub fn EVP_EncodeInit(ctx: *mut EVP_ENCODE_CTX);
9608}
9609unsafe extern "C" {
9610    pub fn EVP_EncodeUpdate(
9611        ctx: *mut EVP_ENCODE_CTX,
9612        out: *mut u8,
9613        out_len: *mut ::core::ffi::c_int,
9614        in_: *const u8,
9615        in_len: usize,
9616    );
9617}
9618unsafe extern "C" {
9619    pub fn EVP_EncodeFinal(
9620        ctx: *mut EVP_ENCODE_CTX,
9621        out: *mut u8,
9622        out_len: *mut ::core::ffi::c_int,
9623    );
9624}
9625unsafe extern "C" {
9626    pub fn EVP_DecodeInit(ctx: *mut EVP_ENCODE_CTX);
9627}
9628unsafe extern "C" {
9629    pub fn EVP_DecodeUpdate(
9630        ctx: *mut EVP_ENCODE_CTX,
9631        out: *mut u8,
9632        out_len: *mut ::core::ffi::c_int,
9633        in_: *const u8,
9634        in_len: usize,
9635    ) -> ::core::ffi::c_int;
9636}
9637unsafe extern "C" {
9638    pub fn EVP_DecodeFinal(
9639        ctx: *mut EVP_ENCODE_CTX,
9640        out: *mut u8,
9641        out_len: *mut ::core::ffi::c_int,
9642    ) -> ::core::ffi::c_int;
9643}
9644unsafe extern "C" {
9645    pub fn EVP_DecodeBlock(dst: *mut u8, src: *const u8, src_len: usize) -> ::core::ffi::c_int;
9646}
9647#[repr(C)]
9648#[derive(Debug, Copy, Clone)]
9649pub struct evp_encode_ctx_st {
9650    pub data_used: ::core::ffi::c_uint,
9651    pub data: [u8; 48usize],
9652    pub eof_seen: ::core::ffi::c_char,
9653    pub error_encountered: ::core::ffi::c_char,
9654}
9655#[repr(C)]
9656#[derive(Debug, Copy, Clone)]
9657pub struct blake2b_state_st {
9658    pub h: [u64; 8usize],
9659    pub t_low: u64,
9660    pub t_high: u32,
9661    pub block_used: u32,
9662    pub block: [u8; 128usize],
9663}
9664unsafe extern "C" {
9665    pub fn BLAKE2B256_Init(b2b: *mut BLAKE2B_CTX);
9666}
9667unsafe extern "C" {
9668    pub fn BLAKE2B256_Update(b2b: *mut BLAKE2B_CTX, data: *const ::core::ffi::c_void, len: usize);
9669}
9670unsafe extern "C" {
9671    pub fn BLAKE2B256_Final(out: *mut u8, b2b: *mut BLAKE2B_CTX);
9672}
9673unsafe extern "C" {
9674    pub fn BLAKE2B256(data: *const u8, len: usize, out: *mut u8);
9675}
9676#[repr(C)]
9677#[derive(Debug, Copy, Clone)]
9678pub struct bf_key_st {
9679    pub P: [u32; 18usize],
9680    pub S: [u32; 1024usize],
9681}
9682pub type BF_KEY = bf_key_st;
9683unsafe extern "C" {
9684    pub fn BF_set_key(key: *mut BF_KEY, len: usize, data: *const u8);
9685}
9686unsafe extern "C" {
9687    pub fn BF_encrypt(data: *mut u32, key: *const BF_KEY);
9688}
9689unsafe extern "C" {
9690    pub fn BF_decrypt(data: *mut u32, key: *const BF_KEY);
9691}
9692unsafe extern "C" {
9693    pub fn BF_ecb_encrypt(
9694        in_: *const u8,
9695        out: *mut u8,
9696        key: *const BF_KEY,
9697        enc: ::core::ffi::c_int,
9698    );
9699}
9700unsafe extern "C" {
9701    pub fn BF_cbc_encrypt(
9702        in_: *const u8,
9703        out: *mut u8,
9704        length: usize,
9705        schedule: *const BF_KEY,
9706        ivec: *mut u8,
9707        enc: ::core::ffi::c_int,
9708    );
9709}
9710#[repr(C)]
9711#[derive(Debug, Copy, Clone)]
9712pub struct cbs_st {
9713    pub data: *const u8,
9714    pub len: usize,
9715}
9716unsafe extern "C" {
9717    #[link_name = "CBS_init__extern"]
9718    pub fn CBS_init(cbs: *mut CBS, data: *const u8, len: usize);
9719}
9720unsafe extern "C" {
9721    pub fn CBS_skip(cbs: *mut CBS, len: usize) -> ::core::ffi::c_int;
9722}
9723unsafe extern "C" {
9724    #[link_name = "CBS_data__extern"]
9725    pub fn CBS_data(cbs: *const CBS) -> *const u8;
9726}
9727unsafe extern "C" {
9728    #[link_name = "CBS_len__extern"]
9729    pub fn CBS_len(cbs: *const CBS) -> usize;
9730}
9731unsafe extern "C" {
9732    pub fn CBS_stow(
9733        cbs: *const CBS,
9734        out_ptr: *mut *mut u8,
9735        out_len: *mut usize,
9736    ) -> ::core::ffi::c_int;
9737}
9738unsafe extern "C" {
9739    pub fn CBS_strdup(
9740        cbs: *const CBS,
9741        out_ptr: *mut *mut ::core::ffi::c_char,
9742    ) -> ::core::ffi::c_int;
9743}
9744unsafe extern "C" {
9745    pub fn CBS_contains_zero_byte(cbs: *const CBS) -> ::core::ffi::c_int;
9746}
9747unsafe extern "C" {
9748    pub fn CBS_mem_equal(cbs: *const CBS, data: *const u8, len: usize) -> ::core::ffi::c_int;
9749}
9750unsafe extern "C" {
9751    pub fn CBS_get_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9752}
9753unsafe extern "C" {
9754    pub fn CBS_get_u16(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9755}
9756unsafe extern "C" {
9757    pub fn CBS_get_u16le(cbs: *mut CBS, out: *mut u16) -> ::core::ffi::c_int;
9758}
9759unsafe extern "C" {
9760    pub fn CBS_get_u24(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9761}
9762unsafe extern "C" {
9763    pub fn CBS_get_u32(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9764}
9765unsafe extern "C" {
9766    pub fn CBS_get_u32le(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
9767}
9768unsafe extern "C" {
9769    pub fn CBS_get_u48(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9770}
9771unsafe extern "C" {
9772    pub fn CBS_get_u64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9773}
9774unsafe extern "C" {
9775    pub fn CBS_get_u64le(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9776}
9777unsafe extern "C" {
9778    pub fn CBS_get_last_u8(cbs: *mut CBS, out: *mut u8) -> ::core::ffi::c_int;
9779}
9780unsafe extern "C" {
9781    pub fn CBS_get_bytes(cbs: *mut CBS, out: *mut CBS, len: usize) -> ::core::ffi::c_int;
9782}
9783unsafe extern "C" {
9784    pub fn CBS_copy_bytes(cbs: *mut CBS, out: *mut u8, len: usize) -> ::core::ffi::c_int;
9785}
9786unsafe extern "C" {
9787    pub fn CBS_get_u8_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9788}
9789unsafe extern "C" {
9790    pub fn CBS_get_u16_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9791}
9792unsafe extern "C" {
9793    pub fn CBS_get_u24_length_prefixed(cbs: *mut CBS, out: *mut CBS) -> ::core::ffi::c_int;
9794}
9795unsafe extern "C" {
9796    pub fn CBS_get_until_first(cbs: *mut CBS, out: *mut CBS, c: u8) -> ::core::ffi::c_int;
9797}
9798unsafe extern "C" {
9799    pub fn CBS_get_until_first_of(
9800        cbs: *mut CBS,
9801        out: *mut CBS,
9802        chars: *const ::core::ffi::c_char,
9803    ) -> ::core::ffi::c_int;
9804}
9805unsafe extern "C" {
9806    pub fn CBS_get_until_first_not_of(
9807        cbs: *mut CBS,
9808        out: *mut CBS,
9809        chars: *const ::core::ffi::c_char,
9810    ) -> ::core::ffi::c_int;
9811}
9812unsafe extern "C" {
9813    pub fn CBS_get_u64_decimal(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9814}
9815unsafe extern "C" {
9816    pub fn CBS_get_asn1(
9817        cbs: *mut CBS,
9818        out: *mut CBS,
9819        tag_value: CBS_ASN1_TAG,
9820    ) -> ::core::ffi::c_int;
9821}
9822unsafe extern "C" {
9823    pub fn CBS_get_asn1_element(
9824        cbs: *mut CBS,
9825        out: *mut CBS,
9826        tag_value: CBS_ASN1_TAG,
9827    ) -> ::core::ffi::c_int;
9828}
9829unsafe extern "C" {
9830    pub fn CBS_peek_any_asn1_tag(cbs: *const CBS) -> CBS_ASN1_TAG;
9831}
9832unsafe extern "C" {
9833    pub fn CBS_peek_asn1_tag(cbs: *const CBS, tag_value: CBS_ASN1_TAG) -> ::core::ffi::c_int;
9834}
9835unsafe extern "C" {
9836    pub fn CBS_get_any_asn1(
9837        cbs: *mut CBS,
9838        out: *mut CBS,
9839        out_tag: *mut CBS_ASN1_TAG,
9840    ) -> ::core::ffi::c_int;
9841}
9842unsafe extern "C" {
9843    pub fn CBS_get_any_asn1_element(
9844        cbs: *mut CBS,
9845        out: *mut CBS,
9846        out_tag: *mut CBS_ASN1_TAG,
9847        out_header_len: *mut usize,
9848    ) -> ::core::ffi::c_int;
9849}
9850unsafe extern "C" {
9851    pub fn CBS_get_any_ber_asn1_element(
9852        cbs: *mut CBS,
9853        out: *mut CBS,
9854        out_tag: *mut CBS_ASN1_TAG,
9855        out_header_len: *mut usize,
9856        out_ber_found: *mut ::core::ffi::c_int,
9857        out_indefinite: *mut ::core::ffi::c_int,
9858    ) -> ::core::ffi::c_int;
9859}
9860unsafe extern "C" {
9861    pub fn CBS_get_asn1_uint64(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9862}
9863unsafe extern "C" {
9864    pub fn CBS_get_asn1_uint64_with_tag(
9865        cbs: *mut CBS,
9866        out: *mut u64,
9867        tag: CBS_ASN1_TAG,
9868    ) -> ::core::ffi::c_int;
9869}
9870unsafe extern "C" {
9871    pub fn CBS_get_asn1_int64(cbs: *mut CBS, out: *mut i64) -> ::core::ffi::c_int;
9872}
9873unsafe extern "C" {
9874    pub fn CBS_get_asn1_int64_with_tag(
9875        cbs: *mut CBS,
9876        out: *mut i64,
9877        tag: CBS_ASN1_TAG,
9878    ) -> ::core::ffi::c_int;
9879}
9880unsafe extern "C" {
9881    pub fn CBS_get_asn1_bool(cbs: *mut CBS, out: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
9882}
9883unsafe extern "C" {
9884    pub fn CBS_get_optional_asn1(
9885        cbs: *mut CBS,
9886        out: *mut CBS,
9887        out_present: *mut ::core::ffi::c_int,
9888        tag: CBS_ASN1_TAG,
9889    ) -> ::core::ffi::c_int;
9890}
9891unsafe extern "C" {
9892    pub fn CBS_get_optional_asn1_octet_string(
9893        cbs: *mut CBS,
9894        out: *mut CBS,
9895        out_present: *mut ::core::ffi::c_int,
9896        tag: CBS_ASN1_TAG,
9897    ) -> ::core::ffi::c_int;
9898}
9899unsafe extern "C" {
9900    pub fn CBS_get_optional_asn1_uint64(
9901        cbs: *mut CBS,
9902        out: *mut u64,
9903        tag: CBS_ASN1_TAG,
9904        default_value: u64,
9905    ) -> ::core::ffi::c_int;
9906}
9907unsafe extern "C" {
9908    pub fn CBS_get_optional_asn1_bool(
9909        cbs: *mut CBS,
9910        out: *mut ::core::ffi::c_int,
9911        tag: CBS_ASN1_TAG,
9912        default_value: ::core::ffi::c_int,
9913    ) -> ::core::ffi::c_int;
9914}
9915unsafe extern "C" {
9916    pub fn CBS_is_valid_asn1_bitstring(cbs: *const CBS) -> ::core::ffi::c_int;
9917}
9918unsafe extern "C" {
9919    pub fn CBS_asn1_bitstring_has_bit(
9920        cbs: *const CBS,
9921        bit: ::core::ffi::c_uint,
9922    ) -> ::core::ffi::c_int;
9923}
9924unsafe extern "C" {
9925    pub fn CBS_is_valid_asn1_integer(
9926        cbs: *const CBS,
9927        out_is_negative: *mut ::core::ffi::c_int,
9928    ) -> ::core::ffi::c_int;
9929}
9930unsafe extern "C" {
9931    pub fn CBS_is_unsigned_asn1_integer(cbs: *const CBS) -> ::core::ffi::c_int;
9932}
9933unsafe extern "C" {
9934    pub fn CBS_is_valid_asn1_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9935}
9936unsafe extern "C" {
9937    pub fn CBS_asn1_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9938}
9939unsafe extern "C" {
9940    pub fn CBS_is_valid_asn1_relative_oid(cbs: *const CBS) -> ::core::ffi::c_int;
9941}
9942unsafe extern "C" {
9943    pub fn CBS_asn1_relative_oid_to_text(cbs: *const CBS) -> *mut ::core::ffi::c_char;
9944}
9945unsafe extern "C" {
9946    pub fn CBS_get_asn1_oid_component(cbs: *mut CBS, out: *mut u64) -> ::core::ffi::c_int;
9947}
9948unsafe extern "C" {
9949    pub fn CBS_parse_generalized_time(
9950        cbs: *const CBS,
9951        out_tm: *mut tm,
9952        allow_timezone_offset: ::core::ffi::c_int,
9953    ) -> ::core::ffi::c_int;
9954}
9955unsafe extern "C" {
9956    pub fn CBS_parse_utc_time(
9957        cbs: *const CBS,
9958        out_tm: *mut tm,
9959        allow_timezone_offset: ::core::ffi::c_int,
9960    ) -> ::core::ffi::c_int;
9961}
9962#[repr(C)]
9963#[derive(Debug, Copy, Clone)]
9964pub struct cbb_buffer_st {
9965    pub buf: *mut u8,
9966    pub len: usize,
9967    pub cap: usize,
9968    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9969    pub __bindgen_padding_0: [u8; 7usize],
9970}
9971impl cbb_buffer_st {
9972    #[inline]
9973    pub fn can_resize(&self) -> ::core::ffi::c_uint {
9974        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
9975    }
9976    #[inline]
9977    pub fn set_can_resize(&mut self, val: ::core::ffi::c_uint) {
9978        let val: u32 = val as _;
9979        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
9980    }
9981    #[inline]
9982    pub unsafe fn can_resize_raw(this: *const Self) -> ::core::ffi::c_uint {
9983        unsafe {
9984            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
9985                ::core::ptr::addr_of!((*this)._bitfield_1),
9986            ) as u32 as _
9987        }
9988    }
9989    #[inline]
9990    pub unsafe fn set_can_resize_raw(this: *mut Self, val: ::core::ffi::c_uint) {
9991        unsafe {
9992            let val: u32 = val as _;
9993            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
9994                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9995                val as u64,
9996            )
9997        }
9998    }
9999    #[inline]
10000    pub fn error(&self) -> ::core::ffi::c_uint {
10001        self._bitfield_1.get_const::<1usize, 1u8>() as u32 as _
10002    }
10003    #[inline]
10004    pub fn set_error(&mut self, val: ::core::ffi::c_uint) {
10005        let val: u32 = val as _;
10006        self._bitfield_1.set_const::<1usize, 1u8>(val as u64)
10007    }
10008    #[inline]
10009    pub unsafe fn error_raw(this: *const Self) -> ::core::ffi::c_uint {
10010        unsafe {
10011            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<1usize, 1u8>(
10012                ::core::ptr::addr_of!((*this)._bitfield_1),
10013            ) as u32 as _
10014        }
10015    }
10016    #[inline]
10017    pub unsafe fn set_error_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10018        unsafe {
10019            let val: u32 = val as _;
10020            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<1usize, 1u8>(
10021                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10022                val as u64,
10023            )
10024        }
10025    }
10026    #[inline]
10027    pub fn new_bitfield_1(
10028        can_resize: ::core::ffi::c_uint,
10029        error: ::core::ffi::c_uint,
10030    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10031        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10032        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10033            let can_resize: u32 = can_resize as _;
10034            can_resize as u64
10035        });
10036        __bindgen_bitfield_unit.set_const::<1usize, 1u8>({
10037            let error: u32 = error as _;
10038            error as u64
10039        });
10040        __bindgen_bitfield_unit
10041    }
10042}
10043#[repr(C)]
10044#[derive(Debug, Copy, Clone)]
10045pub struct cbb_child_st {
10046    pub base: *mut cbb_buffer_st,
10047    pub offset: usize,
10048    pub pending_len_len: u8,
10049    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10050    pub __bindgen_padding_0: [u16; 3usize],
10051}
10052impl cbb_child_st {
10053    #[inline]
10054    pub fn pending_is_asn1(&self) -> ::core::ffi::c_uint {
10055        self._bitfield_1.get_const::<0usize, 1u8>() as u32 as _
10056    }
10057    #[inline]
10058    pub fn set_pending_is_asn1(&mut self, val: ::core::ffi::c_uint) {
10059        let val: u32 = val as _;
10060        self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
10061    }
10062    #[inline]
10063    pub unsafe fn pending_is_asn1_raw(this: *const Self) -> ::core::ffi::c_uint {
10064        unsafe {
10065            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
10066                ::core::ptr::addr_of!((*this)._bitfield_1),
10067            ) as u32 as _
10068        }
10069    }
10070    #[inline]
10071    pub unsafe fn set_pending_is_asn1_raw(this: *mut Self, val: ::core::ffi::c_uint) {
10072        unsafe {
10073            let val: u32 = val as _;
10074            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
10075                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10076                val as u64,
10077            )
10078        }
10079    }
10080    #[inline]
10081    pub fn new_bitfield_1(
10082        pending_is_asn1: ::core::ffi::c_uint,
10083    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10084        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10085        __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
10086            let pending_is_asn1: u32 = pending_is_asn1 as _;
10087            pending_is_asn1 as u64
10088        });
10089        __bindgen_bitfield_unit
10090    }
10091}
10092#[repr(C)]
10093#[derive(Copy, Clone)]
10094pub struct cbb_st {
10095    pub child: *mut CBB,
10096    pub is_child: ::core::ffi::c_char,
10097    pub u: cbb_st__bindgen_ty_1,
10098}
10099#[repr(C)]
10100#[derive(Copy, Clone)]
10101pub union cbb_st__bindgen_ty_1 {
10102    pub base: cbb_buffer_st,
10103    pub child: cbb_child_st,
10104}
10105unsafe extern "C" {
10106    pub fn CBB_zero(cbb: *mut CBB);
10107}
10108unsafe extern "C" {
10109    pub fn CBB_init(cbb: *mut CBB, initial_capacity: usize) -> ::core::ffi::c_int;
10110}
10111unsafe extern "C" {
10112    pub fn CBB_init_fixed(cbb: *mut CBB, buf: *mut u8, len: usize) -> ::core::ffi::c_int;
10113}
10114unsafe extern "C" {
10115    pub fn CBB_cleanup(cbb: *mut CBB);
10116}
10117unsafe extern "C" {
10118    pub fn CBB_finish(
10119        cbb: *mut CBB,
10120        out_data: *mut *mut u8,
10121        out_len: *mut usize,
10122    ) -> ::core::ffi::c_int;
10123}
10124unsafe extern "C" {
10125    pub fn CBB_flush(cbb: *mut CBB) -> ::core::ffi::c_int;
10126}
10127unsafe extern "C" {
10128    pub fn CBB_data(cbb: *const CBB) -> *mut u8;
10129}
10130unsafe extern "C" {
10131    pub fn CBB_len(cbb: *const CBB) -> usize;
10132}
10133unsafe extern "C" {
10134    pub fn CBB_add_u8_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB) -> ::core::ffi::c_int;
10135}
10136unsafe extern "C" {
10137    pub fn CBB_add_u16_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10138        -> ::core::ffi::c_int;
10139}
10140unsafe extern "C" {
10141    pub fn CBB_add_u24_length_prefixed(cbb: *mut CBB, out_contents: *mut CBB)
10142        -> ::core::ffi::c_int;
10143}
10144unsafe extern "C" {
10145    pub fn CBB_add_asn1(
10146        cbb: *mut CBB,
10147        out_contents: *mut CBB,
10148        tag: CBS_ASN1_TAG,
10149    ) -> ::core::ffi::c_int;
10150}
10151unsafe extern "C" {
10152    pub fn CBB_add_bytes(cbb: *mut CBB, data: *const u8, len: usize) -> ::core::ffi::c_int;
10153}
10154unsafe extern "C" {
10155    pub fn CBB_add_zeros(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10156}
10157unsafe extern "C" {
10158    pub fn CBB_add_space(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10159}
10160unsafe extern "C" {
10161    pub fn CBB_reserve(cbb: *mut CBB, out_data: *mut *mut u8, len: usize) -> ::core::ffi::c_int;
10162}
10163unsafe extern "C" {
10164    pub fn CBB_did_write(cbb: *mut CBB, len: usize) -> ::core::ffi::c_int;
10165}
10166unsafe extern "C" {
10167    pub fn CBB_add_u8(cbb: *mut CBB, value: u8) -> ::core::ffi::c_int;
10168}
10169unsafe extern "C" {
10170    pub fn CBB_add_u16(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10171}
10172unsafe extern "C" {
10173    pub fn CBB_add_u16le(cbb: *mut CBB, value: u16) -> ::core::ffi::c_int;
10174}
10175unsafe extern "C" {
10176    pub fn CBB_add_u24(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10177}
10178unsafe extern "C" {
10179    pub fn CBB_add_u32(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10180}
10181unsafe extern "C" {
10182    pub fn CBB_add_u32le(cbb: *mut CBB, value: u32) -> ::core::ffi::c_int;
10183}
10184unsafe extern "C" {
10185    pub fn CBB_add_u48(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10186}
10187unsafe extern "C" {
10188    pub fn CBB_add_u64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10189}
10190unsafe extern "C" {
10191    pub fn CBB_add_u64le(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10192}
10193unsafe extern "C" {
10194    pub fn CBB_discard(cbb: *mut CBB, len: usize);
10195}
10196unsafe extern "C" {
10197    pub fn CBB_discard_child(cbb: *mut CBB);
10198}
10199unsafe extern "C" {
10200    pub fn CBB_add_asn1_element(
10201        cbb: *mut CBB,
10202        tag: CBS_ASN1_TAG,
10203        data: *const u8,
10204        data_len: usize,
10205    ) -> ::core::ffi::c_int;
10206}
10207unsafe extern "C" {
10208    pub fn CBB_add_asn1_uint64(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10209}
10210unsafe extern "C" {
10211    pub fn CBB_add_asn1_uint64_with_tag(
10212        cbb: *mut CBB,
10213        value: u64,
10214        tag: CBS_ASN1_TAG,
10215    ) -> ::core::ffi::c_int;
10216}
10217unsafe extern "C" {
10218    pub fn CBB_add_asn1_int64(cbb: *mut CBB, value: i64) -> ::core::ffi::c_int;
10219}
10220unsafe extern "C" {
10221    pub fn CBB_add_asn1_int64_with_tag(
10222        cbb: *mut CBB,
10223        value: i64,
10224        tag: CBS_ASN1_TAG,
10225    ) -> ::core::ffi::c_int;
10226}
10227unsafe extern "C" {
10228    pub fn CBB_add_asn1_octet_string(
10229        cbb: *mut CBB,
10230        data: *const u8,
10231        data_len: usize,
10232    ) -> ::core::ffi::c_int;
10233}
10234unsafe extern "C" {
10235    pub fn CBB_add_asn1_bool(cbb: *mut CBB, value: ::core::ffi::c_int) -> ::core::ffi::c_int;
10236}
10237unsafe extern "C" {
10238    pub fn CBB_add_asn1_oid_from_text(
10239        cbb: *mut CBB,
10240        text: *const ::core::ffi::c_char,
10241        len: usize,
10242    ) -> ::core::ffi::c_int;
10243}
10244unsafe extern "C" {
10245    pub fn CBB_add_asn1_relative_oid_from_text(
10246        cbb: *mut CBB,
10247        text: *const ::core::ffi::c_char,
10248        len: usize,
10249    ) -> ::core::ffi::c_int;
10250}
10251unsafe extern "C" {
10252    pub fn CBB_add_asn1_relative_oid_from_der_to_text(
10253        cbb: *mut CBB,
10254        data: *const u8,
10255        data_len: usize,
10256    ) -> ::core::ffi::c_int;
10257}
10258unsafe extern "C" {
10259    pub fn CBB_add_asn1_oid_component(cbb: *mut CBB, value: u64) -> ::core::ffi::c_int;
10260}
10261unsafe extern "C" {
10262    pub fn CBB_flush_asn1_set_of(cbb: *mut CBB) -> ::core::ffi::c_int;
10263}
10264unsafe extern "C" {
10265    pub fn CBS_get_utf8(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10266}
10267unsafe extern "C" {
10268    pub fn CBS_get_latin1(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10269}
10270unsafe extern "C" {
10271    pub fn CBS_get_ucs2_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10272}
10273unsafe extern "C" {
10274    pub fn CBS_get_utf32_be(cbs: *mut CBS, out: *mut u32) -> ::core::ffi::c_int;
10275}
10276unsafe extern "C" {
10277    pub fn CBB_get_utf8_len(u: u32) -> usize;
10278}
10279unsafe extern "C" {
10280    pub fn CBB_add_utf8(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10281}
10282unsafe extern "C" {
10283    pub fn CBB_add_latin1(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10284}
10285unsafe extern "C" {
10286    pub fn CBB_add_ucs2_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10287}
10288unsafe extern "C" {
10289    pub fn CBB_add_utf32_be(cbb: *mut CBB, u: u32) -> ::core::ffi::c_int;
10290}
10291#[repr(C)]
10292#[derive(Debug, Copy, Clone)]
10293pub struct cast_key_st {
10294    pub data: [u32; 32usize],
10295    pub short_key: ::core::ffi::c_int,
10296}
10297pub type CAST_KEY = cast_key_st;
10298unsafe extern "C" {
10299    pub fn CAST_set_key(key: *mut CAST_KEY, len: usize, data: *const u8);
10300}
10301unsafe extern "C" {
10302    pub fn CAST_ecb_encrypt(
10303        in_: *const u8,
10304        out: *mut u8,
10305        key: *const CAST_KEY,
10306        enc: ::core::ffi::c_int,
10307    );
10308}
10309unsafe extern "C" {
10310    pub fn CAST_encrypt(data: *mut u32, key: *const CAST_KEY);
10311}
10312unsafe extern "C" {
10313    pub fn CAST_decrypt(data: *mut u32, key: *const CAST_KEY);
10314}
10315unsafe extern "C" {
10316    pub fn CAST_cbc_encrypt(
10317        in_: *const u8,
10318        out: *mut u8,
10319        length: usize,
10320        ks: *const CAST_KEY,
10321        iv: *mut u8,
10322        enc: ::core::ffi::c_int,
10323    );
10324}
10325unsafe extern "C" {
10326    pub fn CAST_cfb64_encrypt(
10327        in_: *const u8,
10328        out: *mut u8,
10329        length: usize,
10330        schedule: *const CAST_KEY,
10331        ivec: *mut u8,
10332        num: *mut ::core::ffi::c_int,
10333        enc: ::core::ffi::c_int,
10334    );
10335}
10336unsafe extern "C" {
10337    pub fn CRYPTO_chacha_20(
10338        out: *mut u8,
10339        in_: *const u8,
10340        in_len: usize,
10341        key: *const u8,
10342        nonce: *const u8,
10343        counter: u32,
10344    );
10345}
10346unsafe extern "C" {
10347    pub fn EVP_rc4() -> *const EVP_CIPHER;
10348}
10349unsafe extern "C" {
10350    pub fn EVP_des_cbc() -> *const EVP_CIPHER;
10351}
10352unsafe extern "C" {
10353    pub fn EVP_des_ecb() -> *const EVP_CIPHER;
10354}
10355unsafe extern "C" {
10356    pub fn EVP_des_ede() -> *const EVP_CIPHER;
10357}
10358unsafe extern "C" {
10359    pub fn EVP_des_ede3() -> *const EVP_CIPHER;
10360}
10361unsafe extern "C" {
10362    pub fn EVP_des_ede_cbc() -> *const EVP_CIPHER;
10363}
10364unsafe extern "C" {
10365    pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER;
10366}
10367unsafe extern "C" {
10368    pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
10369}
10370unsafe extern "C" {
10371    pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER;
10372}
10373unsafe extern "C" {
10374    pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
10375}
10376unsafe extern "C" {
10377    pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER;
10378}
10379unsafe extern "C" {
10380    pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
10381}
10382unsafe extern "C" {
10383    pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER;
10384}
10385unsafe extern "C" {
10386    pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
10387}
10388unsafe extern "C" {
10389    pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER;
10390}
10391unsafe extern "C" {
10392    pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
10393}
10394unsafe extern "C" {
10395    pub fn EVP_enc_null() -> *const EVP_CIPHER;
10396}
10397unsafe extern "C" {
10398    pub fn EVP_rc2_cbc() -> *const EVP_CIPHER;
10399}
10400unsafe extern "C" {
10401    pub fn EVP_rc2_40_cbc() -> *const EVP_CIPHER;
10402}
10403unsafe extern "C" {
10404    pub fn EVP_get_cipherbynid(nid: ::core::ffi::c_int) -> *const EVP_CIPHER;
10405}
10406unsafe extern "C" {
10407    pub fn EVP_CIPHER_CTX_init(ctx: *mut EVP_CIPHER_CTX);
10408}
10409unsafe extern "C" {
10410    pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX;
10411}
10412unsafe extern "C" {
10413    pub fn EVP_CIPHER_CTX_cleanup(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10414}
10415unsafe extern "C" {
10416    pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX);
10417}
10418unsafe extern "C" {
10419    pub fn EVP_CIPHER_CTX_copy(
10420        out: *mut EVP_CIPHER_CTX,
10421        in_: *const EVP_CIPHER_CTX,
10422    ) -> ::core::ffi::c_int;
10423}
10424unsafe extern "C" {
10425    pub fn EVP_CIPHER_CTX_reset(ctx: *mut EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10426}
10427unsafe extern "C" {
10428    pub fn EVP_CipherInit_ex(
10429        ctx: *mut EVP_CIPHER_CTX,
10430        cipher: *const EVP_CIPHER,
10431        engine: *mut ENGINE,
10432        key: *const u8,
10433        iv: *const u8,
10434        enc: ::core::ffi::c_int,
10435    ) -> ::core::ffi::c_int;
10436}
10437unsafe extern "C" {
10438    pub fn EVP_EncryptInit_ex(
10439        ctx: *mut EVP_CIPHER_CTX,
10440        cipher: *const EVP_CIPHER,
10441        impl_: *mut ENGINE,
10442        key: *const u8,
10443        iv: *const u8,
10444    ) -> ::core::ffi::c_int;
10445}
10446unsafe extern "C" {
10447    pub fn EVP_DecryptInit_ex(
10448        ctx: *mut EVP_CIPHER_CTX,
10449        cipher: *const EVP_CIPHER,
10450        impl_: *mut ENGINE,
10451        key: *const u8,
10452        iv: *const u8,
10453    ) -> ::core::ffi::c_int;
10454}
10455unsafe extern "C" {
10456    pub fn EVP_EncryptUpdate_ex(
10457        ctx: *mut EVP_CIPHER_CTX,
10458        out: *mut u8,
10459        out_len: *mut usize,
10460        max_out_len: usize,
10461        in_: *const u8,
10462        in_len: usize,
10463    ) -> ::core::ffi::c_int;
10464}
10465unsafe extern "C" {
10466    pub fn EVP_EncryptFinal_ex2(
10467        ctx: *mut EVP_CIPHER_CTX,
10468        out: *mut u8,
10469        out_len: *mut usize,
10470        max_out_len: usize,
10471    ) -> ::core::ffi::c_int;
10472}
10473unsafe extern "C" {
10474    pub fn EVP_DecryptUpdate_ex(
10475        ctx: *mut EVP_CIPHER_CTX,
10476        out: *mut u8,
10477        out_len: *mut usize,
10478        max_out_len: usize,
10479        in_: *const u8,
10480        in_len: usize,
10481    ) -> ::core::ffi::c_int;
10482}
10483unsafe extern "C" {
10484    pub fn EVP_DecryptFinal_ex2(
10485        ctx: *mut EVP_CIPHER_CTX,
10486        out: *mut u8,
10487        out_len: *mut usize,
10488        max_out_len: usize,
10489    ) -> ::core::ffi::c_int;
10490}
10491unsafe extern "C" {
10492    pub fn EVP_CipherUpdate_ex(
10493        ctx: *mut EVP_CIPHER_CTX,
10494        out: *mut u8,
10495        out_len: *mut usize,
10496        max_out_len: usize,
10497        in_: *const u8,
10498        in_len: usize,
10499    ) -> ::core::ffi::c_int;
10500}
10501unsafe extern "C" {
10502    pub fn EVP_CipherUpdateAAD(
10503        ctx: *mut EVP_CIPHER_CTX,
10504        in_: *const u8,
10505        in_len: usize,
10506    ) -> ::core::ffi::c_int;
10507}
10508unsafe extern "C" {
10509    pub fn EVP_CipherFinal_ex2(
10510        ctx: *mut EVP_CIPHER_CTX,
10511        out: *mut u8,
10512        out_len: *mut usize,
10513        max_out_len: usize,
10514    ) -> ::core::ffi::c_int;
10515}
10516unsafe extern "C" {
10517    pub fn EVP_CIPHER_CTX_max_next_update(ctx: *const EVP_CIPHER_CTX, in_len: usize) -> usize;
10518}
10519unsafe extern "C" {
10520    pub fn EVP_CIPHER_CTX_max_final(ctx: *const EVP_CIPHER_CTX) -> usize;
10521}
10522unsafe extern "C" {
10523    pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER;
10524}
10525unsafe extern "C" {
10526    pub fn EVP_CIPHER_CTX_nid(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10527}
10528unsafe extern "C" {
10529    pub fn EVP_CIPHER_CTX_encrypting(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_int;
10530}
10531unsafe extern "C" {
10532    pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10533}
10534unsafe extern "C" {
10535    pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10536}
10537unsafe extern "C" {
10538    pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> ::core::ffi::c_uint;
10539}
10540unsafe extern "C" {
10541    pub fn EVP_CIPHER_CTX_get_app_data(ctx: *const EVP_CIPHER_CTX) -> *mut ::core::ffi::c_void;
10542}
10543unsafe extern "C" {
10544    pub fn EVP_CIPHER_CTX_set_app_data(ctx: *mut EVP_CIPHER_CTX, data: *mut ::core::ffi::c_void);
10545}
10546unsafe extern "C" {
10547    pub fn EVP_CIPHER_CTX_flags(ctx: *const EVP_CIPHER_CTX) -> u32;
10548}
10549unsafe extern "C" {
10550    pub fn EVP_CIPHER_CTX_mode(ctx: *const EVP_CIPHER_CTX) -> u32;
10551}
10552unsafe extern "C" {
10553    pub fn EVP_CIPHER_CTX_ctrl(
10554        ctx: *mut EVP_CIPHER_CTX,
10555        command: ::core::ffi::c_int,
10556        arg: ::core::ffi::c_int,
10557        ptr: *mut ::core::ffi::c_void,
10558    ) -> ::core::ffi::c_int;
10559}
10560unsafe extern "C" {
10561    pub fn EVP_CIPHER_CTX_set_padding(
10562        ctx: *mut EVP_CIPHER_CTX,
10563        pad: ::core::ffi::c_int,
10564    ) -> ::core::ffi::c_int;
10565}
10566unsafe extern "C" {
10567    pub fn EVP_CIPHER_CTX_set_key_length(
10568        ctx: *mut EVP_CIPHER_CTX,
10569        key_len: ::core::ffi::c_uint,
10570    ) -> ::core::ffi::c_int;
10571}
10572unsafe extern "C" {
10573    pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> ::core::ffi::c_int;
10574}
10575unsafe extern "C" {
10576    pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10577}
10578unsafe extern "C" {
10579    pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10580}
10581unsafe extern "C" {
10582    pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> ::core::ffi::c_uint;
10583}
10584unsafe extern "C" {
10585    pub fn EVP_CIPHER_flags(cipher: *const EVP_CIPHER) -> u32;
10586}
10587unsafe extern "C" {
10588    pub fn EVP_CIPHER_mode(cipher: *const EVP_CIPHER) -> u32;
10589}
10590unsafe extern "C" {
10591    pub fn EVP_BytesToKey(
10592        type_: *const EVP_CIPHER,
10593        md: *const EVP_MD,
10594        salt: *const u8,
10595        data: *const u8,
10596        data_len: usize,
10597        count: ::core::ffi::c_uint,
10598        key: *mut u8,
10599        iv: *mut u8,
10600    ) -> ::core::ffi::c_int;
10601}
10602unsafe extern "C" {
10603    pub fn EVP_CipherInit(
10604        ctx: *mut EVP_CIPHER_CTX,
10605        cipher: *const EVP_CIPHER,
10606        key: *const u8,
10607        iv: *const u8,
10608        enc: ::core::ffi::c_int,
10609    ) -> ::core::ffi::c_int;
10610}
10611unsafe extern "C" {
10612    pub fn EVP_EncryptInit(
10613        ctx: *mut EVP_CIPHER_CTX,
10614        cipher: *const EVP_CIPHER,
10615        key: *const u8,
10616        iv: *const u8,
10617    ) -> ::core::ffi::c_int;
10618}
10619unsafe extern "C" {
10620    pub fn EVP_DecryptInit(
10621        ctx: *mut EVP_CIPHER_CTX,
10622        cipher: *const EVP_CIPHER,
10623        key: *const u8,
10624        iv: *const u8,
10625    ) -> ::core::ffi::c_int;
10626}
10627unsafe extern "C" {
10628    pub fn EVP_CipherUpdate(
10629        ctx: *mut EVP_CIPHER_CTX,
10630        out: *mut u8,
10631        out_len: *mut ::core::ffi::c_int,
10632        in_: *const u8,
10633        in_len: ::core::ffi::c_int,
10634    ) -> ::core::ffi::c_int;
10635}
10636unsafe extern "C" {
10637    pub fn EVP_EncryptUpdate(
10638        ctx: *mut EVP_CIPHER_CTX,
10639        out: *mut u8,
10640        out_len: *mut ::core::ffi::c_int,
10641        in_: *const u8,
10642        in_len: ::core::ffi::c_int,
10643    ) -> ::core::ffi::c_int;
10644}
10645unsafe extern "C" {
10646    pub fn EVP_DecryptUpdate(
10647        ctx: *mut EVP_CIPHER_CTX,
10648        out: *mut u8,
10649        out_len: *mut ::core::ffi::c_int,
10650        in_: *const u8,
10651        in_len: ::core::ffi::c_int,
10652    ) -> ::core::ffi::c_int;
10653}
10654unsafe extern "C" {
10655    pub fn EVP_CipherFinal(
10656        ctx: *mut EVP_CIPHER_CTX,
10657        out: *mut u8,
10658        out_len: *mut ::core::ffi::c_int,
10659    ) -> ::core::ffi::c_int;
10660}
10661unsafe extern "C" {
10662    pub fn EVP_CipherFinal_ex(
10663        ctx: *mut EVP_CIPHER_CTX,
10664        out: *mut u8,
10665        out_len: *mut ::core::ffi::c_int,
10666    ) -> ::core::ffi::c_int;
10667}
10668unsafe extern "C" {
10669    pub fn EVP_EncryptFinal(
10670        ctx: *mut EVP_CIPHER_CTX,
10671        out: *mut u8,
10672        out_len: *mut ::core::ffi::c_int,
10673    ) -> ::core::ffi::c_int;
10674}
10675unsafe extern "C" {
10676    pub fn EVP_EncryptFinal_ex(
10677        ctx: *mut EVP_CIPHER_CTX,
10678        out: *mut u8,
10679        out_len: *mut ::core::ffi::c_int,
10680    ) -> ::core::ffi::c_int;
10681}
10682unsafe extern "C" {
10683    pub fn EVP_DecryptFinal(
10684        ctx: *mut EVP_CIPHER_CTX,
10685        out: *mut u8,
10686        out_len: *mut ::core::ffi::c_int,
10687    ) -> ::core::ffi::c_int;
10688}
10689unsafe extern "C" {
10690    pub fn EVP_DecryptFinal_ex(
10691        ctx: *mut EVP_CIPHER_CTX,
10692        out: *mut u8,
10693        out_len: *mut ::core::ffi::c_int,
10694    ) -> ::core::ffi::c_int;
10695}
10696unsafe extern "C" {
10697    pub fn EVP_Cipher(
10698        ctx: *mut EVP_CIPHER_CTX,
10699        out: *mut u8,
10700        in_: *const u8,
10701        in_len: usize,
10702    ) -> ::core::ffi::c_int;
10703}
10704unsafe extern "C" {
10705    pub fn EVP_add_cipher_alias(
10706        a: *const ::core::ffi::c_char,
10707        b: *const ::core::ffi::c_char,
10708    ) -> ::core::ffi::c_int;
10709}
10710unsafe extern "C" {
10711    pub fn EVP_get_cipherbyname(name: *const ::core::ffi::c_char) -> *const EVP_CIPHER;
10712}
10713unsafe extern "C" {
10714    pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
10715}
10716unsafe extern "C" {
10717    pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
10718}
10719unsafe extern "C" {
10720    pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER;
10721}
10722unsafe extern "C" {
10723    pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER;
10724}
10725unsafe extern "C" {
10726    pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER;
10727}
10728unsafe extern "C" {
10729    pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER;
10730}
10731unsafe extern "C" {
10732    pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER;
10733}
10734unsafe extern "C" {
10735    pub fn EVP_des_ede3_ecb() -> *const EVP_CIPHER;
10736}
10737unsafe extern "C" {
10738    pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
10739}
10740unsafe extern "C" {
10741    pub fn EVP_aes_128_cfb() -> *const EVP_CIPHER;
10742}
10743unsafe extern "C" {
10744    pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER;
10745}
10746unsafe extern "C" {
10747    pub fn EVP_aes_192_cfb() -> *const EVP_CIPHER;
10748}
10749unsafe extern "C" {
10750    pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
10751}
10752unsafe extern "C" {
10753    pub fn EVP_aes_256_cfb() -> *const EVP_CIPHER;
10754}
10755unsafe extern "C" {
10756    pub fn EVP_bf_ecb() -> *const EVP_CIPHER;
10757}
10758unsafe extern "C" {
10759    pub fn EVP_bf_cbc() -> *const EVP_CIPHER;
10760}
10761unsafe extern "C" {
10762    pub fn EVP_bf_cfb() -> *const EVP_CIPHER;
10763}
10764unsafe extern "C" {
10765    pub fn EVP_cast5_ecb() -> *const EVP_CIPHER;
10766}
10767unsafe extern "C" {
10768    pub fn EVP_cast5_cbc() -> *const EVP_CIPHER;
10769}
10770unsafe extern "C" {
10771    pub fn EVP_CIPHER_CTX_set_flags(ctx: *const EVP_CIPHER_CTX, flags: u32);
10772}
10773#[repr(C)]
10774#[derive(Debug, Copy, Clone)]
10775pub struct evp_cipher_ctx_st {
10776    pub cipher: *const EVP_CIPHER,
10777    pub app_data: *mut ::core::ffi::c_void,
10778    pub cipher_data: *mut ::core::ffi::c_void,
10779    pub key_len: ::core::ffi::c_uint,
10780    pub encrypt: ::core::ffi::c_int,
10781    pub flags: u32,
10782    pub oiv: [u8; 16usize],
10783    pub iv: [u8; 16usize],
10784    pub buf: [u8; 32usize],
10785    pub buf_len: ::core::ffi::c_int,
10786    pub num: ::core::ffi::c_uint,
10787    pub final_used: ::core::ffi::c_int,
10788    pub final_: [u8; 32usize],
10789}
10790#[repr(C)]
10791#[derive(Debug, Copy, Clone)]
10792pub struct evp_cipher_info_st {
10793    pub cipher: *const EVP_CIPHER,
10794    pub iv: [::core::ffi::c_uchar; 16usize],
10795}
10796pub type EVP_CIPHER_INFO = evp_cipher_info_st;
10797unsafe extern "C" {
10798    pub fn AES_CMAC(
10799        out: *mut u8,
10800        key: *const u8,
10801        key_len: usize,
10802        in_: *const u8,
10803        in_len: usize,
10804    ) -> ::core::ffi::c_int;
10805}
10806unsafe extern "C" {
10807    pub fn CMAC_CTX_new() -> *mut CMAC_CTX;
10808}
10809unsafe extern "C" {
10810    pub fn CMAC_CTX_free(ctx: *mut CMAC_CTX);
10811}
10812unsafe extern "C" {
10813    pub fn CMAC_CTX_copy(out: *mut CMAC_CTX, in_: *const CMAC_CTX) -> ::core::ffi::c_int;
10814}
10815unsafe extern "C" {
10816    pub fn CMAC_Init(
10817        ctx: *mut CMAC_CTX,
10818        key: *const ::core::ffi::c_void,
10819        key_len: usize,
10820        cipher: *const EVP_CIPHER,
10821        engine: *mut ENGINE,
10822    ) -> ::core::ffi::c_int;
10823}
10824unsafe extern "C" {
10825    pub fn CMAC_Reset(ctx: *mut CMAC_CTX) -> ::core::ffi::c_int;
10826}
10827unsafe extern "C" {
10828    pub fn CMAC_Update(ctx: *mut CMAC_CTX, in_: *const u8, in_len: usize) -> ::core::ffi::c_int;
10829}
10830unsafe extern "C" {
10831    pub fn CMAC_Final(ctx: *mut CMAC_CTX, out: *mut u8, out_len: *mut usize) -> ::core::ffi::c_int;
10832}
10833#[repr(C)]
10834#[derive(Debug, Copy, Clone)]
10835pub struct conf_value_st {
10836    pub section: *mut ::core::ffi::c_char,
10837    pub name: *mut ::core::ffi::c_char,
10838    pub value: *mut ::core::ffi::c_char,
10839}
10840#[repr(C)]
10841#[derive(Debug)]
10842pub struct stack_st_CONF_VALUE {
10843    _unused: [u8; 0],
10844}
10845pub type sk_CONF_VALUE_free_func =
10846    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CONF_VALUE)>;
10847pub type sk_CONF_VALUE_copy_func =
10848    ::core::option::Option<unsafe extern "C" fn(arg1: *const CONF_VALUE) -> *mut CONF_VALUE>;
10849pub type sk_CONF_VALUE_cmp_func = ::core::option::Option<
10850    unsafe extern "C" fn(
10851        arg1: *const *const CONF_VALUE,
10852        arg2: *const *const CONF_VALUE,
10853    ) -> ::core::ffi::c_int,
10854>;
10855pub type sk_CONF_VALUE_delete_if_func = ::core::option::Option<
10856    unsafe extern "C" fn(
10857        arg1: *mut CONF_VALUE,
10858        arg2: *mut ::core::ffi::c_void,
10859    ) -> ::core::ffi::c_int,
10860>;
10861unsafe extern "C" {
10862    #[link_name = "sk_CONF_VALUE_call_free_func__extern"]
10863    pub fn sk_CONF_VALUE_call_free_func(
10864        free_func: OPENSSL_sk_free_func,
10865        ptr: *mut ::core::ffi::c_void,
10866    );
10867}
10868unsafe extern "C" {
10869    #[link_name = "sk_CONF_VALUE_call_copy_func__extern"]
10870    pub fn sk_CONF_VALUE_call_copy_func(
10871        copy_func: OPENSSL_sk_copy_func,
10872        ptr: *const ::core::ffi::c_void,
10873    ) -> *mut ::core::ffi::c_void;
10874}
10875unsafe extern "C" {
10876    #[link_name = "sk_CONF_VALUE_call_cmp_func__extern"]
10877    pub fn sk_CONF_VALUE_call_cmp_func(
10878        cmp_func: OPENSSL_sk_cmp_func,
10879        a: *const ::core::ffi::c_void,
10880        b: *const ::core::ffi::c_void,
10881    ) -> ::core::ffi::c_int;
10882}
10883unsafe extern "C" {
10884    #[link_name = "sk_CONF_VALUE_call_delete_if_func__extern"]
10885    pub fn sk_CONF_VALUE_call_delete_if_func(
10886        func: OPENSSL_sk_delete_if_func,
10887        obj: *mut ::core::ffi::c_void,
10888        data: *mut ::core::ffi::c_void,
10889    ) -> ::core::ffi::c_int;
10890}
10891unsafe extern "C" {
10892    #[link_name = "sk_CONF_VALUE_new__extern"]
10893    pub fn sk_CONF_VALUE_new(comp: sk_CONF_VALUE_cmp_func) -> *mut stack_st_CONF_VALUE;
10894}
10895unsafe extern "C" {
10896    #[link_name = "sk_CONF_VALUE_new_null__extern"]
10897    pub fn sk_CONF_VALUE_new_null() -> *mut stack_st_CONF_VALUE;
10898}
10899unsafe extern "C" {
10900    #[link_name = "sk_CONF_VALUE_num__extern"]
10901    pub fn sk_CONF_VALUE_num(sk: *const stack_st_CONF_VALUE) -> usize;
10902}
10903unsafe extern "C" {
10904    #[link_name = "sk_CONF_VALUE_zero__extern"]
10905    pub fn sk_CONF_VALUE_zero(sk: *mut stack_st_CONF_VALUE);
10906}
10907unsafe extern "C" {
10908    #[link_name = "sk_CONF_VALUE_value__extern"]
10909    pub fn sk_CONF_VALUE_value(sk: *const stack_st_CONF_VALUE, i: usize) -> *mut CONF_VALUE;
10910}
10911unsafe extern "C" {
10912    #[link_name = "sk_CONF_VALUE_set__extern"]
10913    pub fn sk_CONF_VALUE_set(
10914        sk: *mut stack_st_CONF_VALUE,
10915        i: usize,
10916        p: *mut CONF_VALUE,
10917    ) -> *mut CONF_VALUE;
10918}
10919unsafe extern "C" {
10920    #[link_name = "sk_CONF_VALUE_free__extern"]
10921    pub fn sk_CONF_VALUE_free(sk: *mut stack_st_CONF_VALUE);
10922}
10923unsafe extern "C" {
10924    #[link_name = "sk_CONF_VALUE_pop_free__extern"]
10925    pub fn sk_CONF_VALUE_pop_free(sk: *mut stack_st_CONF_VALUE, free_func: sk_CONF_VALUE_free_func);
10926}
10927unsafe extern "C" {
10928    #[link_name = "sk_CONF_VALUE_insert__extern"]
10929    pub fn sk_CONF_VALUE_insert(
10930        sk: *mut stack_st_CONF_VALUE,
10931        p: *mut CONF_VALUE,
10932        where_: usize,
10933    ) -> usize;
10934}
10935unsafe extern "C" {
10936    #[link_name = "sk_CONF_VALUE_delete__extern"]
10937    pub fn sk_CONF_VALUE_delete(sk: *mut stack_st_CONF_VALUE, where_: usize) -> *mut CONF_VALUE;
10938}
10939unsafe extern "C" {
10940    #[link_name = "sk_CONF_VALUE_delete_ptr__extern"]
10941    pub fn sk_CONF_VALUE_delete_ptr(
10942        sk: *mut stack_st_CONF_VALUE,
10943        p: *const CONF_VALUE,
10944    ) -> *mut CONF_VALUE;
10945}
10946unsafe extern "C" {
10947    #[link_name = "sk_CONF_VALUE_delete_if__extern"]
10948    pub fn sk_CONF_VALUE_delete_if(
10949        sk: *mut stack_st_CONF_VALUE,
10950        func: sk_CONF_VALUE_delete_if_func,
10951        data: *mut ::core::ffi::c_void,
10952    );
10953}
10954unsafe extern "C" {
10955    #[link_name = "sk_CONF_VALUE_find__extern"]
10956    pub fn sk_CONF_VALUE_find(
10957        sk: *const stack_st_CONF_VALUE,
10958        out_index: *mut usize,
10959        p: *const CONF_VALUE,
10960    ) -> ::core::ffi::c_int;
10961}
10962unsafe extern "C" {
10963    #[link_name = "sk_CONF_VALUE_shift__extern"]
10964    pub fn sk_CONF_VALUE_shift(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
10965}
10966unsafe extern "C" {
10967    #[link_name = "sk_CONF_VALUE_push__extern"]
10968    pub fn sk_CONF_VALUE_push(sk: *mut stack_st_CONF_VALUE, p: *mut CONF_VALUE) -> usize;
10969}
10970unsafe extern "C" {
10971    #[link_name = "sk_CONF_VALUE_pop__extern"]
10972    pub fn sk_CONF_VALUE_pop(sk: *mut stack_st_CONF_VALUE) -> *mut CONF_VALUE;
10973}
10974unsafe extern "C" {
10975    #[link_name = "sk_CONF_VALUE_dup__extern"]
10976    pub fn sk_CONF_VALUE_dup(sk: *const stack_st_CONF_VALUE) -> *mut stack_st_CONF_VALUE;
10977}
10978unsafe extern "C" {
10979    #[link_name = "sk_CONF_VALUE_sort__extern"]
10980    pub fn sk_CONF_VALUE_sort(sk: *mut stack_st_CONF_VALUE);
10981}
10982unsafe extern "C" {
10983    #[link_name = "sk_CONF_VALUE_sort_and_dedup__extern"]
10984    pub fn sk_CONF_VALUE_sort_and_dedup(
10985        sk: *mut stack_st_CONF_VALUE,
10986        free_func: sk_CONF_VALUE_free_func,
10987    );
10988}
10989unsafe extern "C" {
10990    #[link_name = "sk_CONF_VALUE_is_sorted__extern"]
10991    pub fn sk_CONF_VALUE_is_sorted(sk: *const stack_st_CONF_VALUE) -> ::core::ffi::c_int;
10992}
10993unsafe extern "C" {
10994    #[link_name = "sk_CONF_VALUE_set_cmp_func__extern"]
10995    pub fn sk_CONF_VALUE_set_cmp_func(
10996        sk: *mut stack_st_CONF_VALUE,
10997        comp: sk_CONF_VALUE_cmp_func,
10998    ) -> sk_CONF_VALUE_cmp_func;
10999}
11000unsafe extern "C" {
11001    #[link_name = "sk_CONF_VALUE_deep_copy__extern"]
11002    pub fn sk_CONF_VALUE_deep_copy(
11003        sk: *const stack_st_CONF_VALUE,
11004        copy_func: sk_CONF_VALUE_copy_func,
11005        free_func: sk_CONF_VALUE_free_func,
11006    ) -> *mut stack_st_CONF_VALUE;
11007}
11008unsafe extern "C" {
11009    pub fn NCONF_new(method: *mut ::core::ffi::c_void) -> *mut CONF;
11010}
11011unsafe extern "C" {
11012    pub fn NCONF_free(conf: *mut CONF);
11013}
11014unsafe extern "C" {
11015    pub fn NCONF_load(
11016        conf: *mut CONF,
11017        filename: *const ::core::ffi::c_char,
11018        out_error_line: *mut ::core::ffi::c_long,
11019    ) -> ::core::ffi::c_int;
11020}
11021unsafe extern "C" {
11022    pub fn NCONF_load_bio(
11023        conf: *mut CONF,
11024        bio: *mut BIO,
11025        out_error_line: *mut ::core::ffi::c_long,
11026    ) -> ::core::ffi::c_int;
11027}
11028unsafe extern "C" {
11029    pub fn NCONF_get_section(
11030        conf: *const CONF,
11031        section: *const ::core::ffi::c_char,
11032    ) -> *const stack_st_CONF_VALUE;
11033}
11034unsafe extern "C" {
11035    pub fn NCONF_get_string(
11036        conf: *const CONF,
11037        section: *const ::core::ffi::c_char,
11038        name: *const ::core::ffi::c_char,
11039    ) -> *const ::core::ffi::c_char;
11040}
11041unsafe extern "C" {
11042    pub fn CONF_modules_load_file(
11043        filename: *const ::core::ffi::c_char,
11044        appname: *const ::core::ffi::c_char,
11045        flags: ::core::ffi::c_ulong,
11046    ) -> ::core::ffi::c_int;
11047}
11048unsafe extern "C" {
11049    pub fn CONF_modules_unload(all: ::core::ffi::c_int);
11050}
11051unsafe extern "C" {
11052    pub fn CONF_modules_free();
11053}
11054unsafe extern "C" {
11055    pub fn OPENSSL_config(config_name: *const ::core::ffi::c_char);
11056}
11057unsafe extern "C" {
11058    pub fn OPENSSL_no_config();
11059}
11060unsafe extern "C" {
11061    pub fn SHA224_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11062}
11063unsafe extern "C" {
11064    pub fn SHA224_Update(
11065        sha: *mut SHA256_CTX,
11066        data: *const ::core::ffi::c_void,
11067        len: usize,
11068    ) -> ::core::ffi::c_int;
11069}
11070unsafe extern "C" {
11071    pub fn SHA224_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11072}
11073unsafe extern "C" {
11074    pub fn SHA224(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11075}
11076unsafe extern "C" {
11077    pub fn SHA256_Init(sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11078}
11079unsafe extern "C" {
11080    pub fn SHA256_Update(
11081        sha: *mut SHA256_CTX,
11082        data: *const ::core::ffi::c_void,
11083        len: usize,
11084    ) -> ::core::ffi::c_int;
11085}
11086unsafe extern "C" {
11087    pub fn SHA256_Final(out: *mut u8, sha: *mut SHA256_CTX) -> ::core::ffi::c_int;
11088}
11089unsafe extern "C" {
11090    pub fn SHA256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11091}
11092unsafe extern "C" {
11093    pub fn SHA256_Transform(sha: *mut SHA256_CTX, block: *const u8);
11094}
11095unsafe extern "C" {
11096    pub fn SHA256_TransformBlocks(state: *mut u32, data: *const u8, num_blocks: usize);
11097}
11098#[repr(C)]
11099#[derive(Debug, Copy, Clone)]
11100pub struct sha256_state_st {
11101    pub h: [u32; 8usize],
11102    pub Nl: u32,
11103    pub Nh: u32,
11104    pub data: [u8; 64usize],
11105    pub num: ::core::ffi::c_uint,
11106    pub md_len: ::core::ffi::c_uint,
11107}
11108unsafe extern "C" {
11109    pub fn SHA384_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11110}
11111unsafe extern "C" {
11112    pub fn SHA384_Update(
11113        sha: *mut SHA512_CTX,
11114        data: *const ::core::ffi::c_void,
11115        len: usize,
11116    ) -> ::core::ffi::c_int;
11117}
11118unsafe extern "C" {
11119    pub fn SHA384_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11120}
11121unsafe extern "C" {
11122    pub fn SHA384(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11123}
11124unsafe extern "C" {
11125    pub fn SHA512_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11126}
11127unsafe extern "C" {
11128    pub fn SHA512_Update(
11129        sha: *mut SHA512_CTX,
11130        data: *const ::core::ffi::c_void,
11131        len: usize,
11132    ) -> ::core::ffi::c_int;
11133}
11134unsafe extern "C" {
11135    pub fn SHA512_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11136}
11137unsafe extern "C" {
11138    pub fn SHA512(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11139}
11140unsafe extern "C" {
11141    pub fn SHA512_Transform(sha: *mut SHA512_CTX, block: *const u8);
11142}
11143#[repr(C)]
11144#[derive(Debug, Copy, Clone)]
11145pub struct sha512_state_st {
11146    pub h: [u64; 8usize],
11147    pub num: u16,
11148    pub md_len: u16,
11149    pub bytes_so_far_high: u32,
11150    pub bytes_so_far_low: u64,
11151    pub p: [u8; 128usize],
11152}
11153unsafe extern "C" {
11154    pub fn SHA512_256_Init(sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11155}
11156unsafe extern "C" {
11157    pub fn SHA512_256_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 SHA512_256_Final(out: *mut u8, sha: *mut SHA512_CTX) -> ::core::ffi::c_int;
11165}
11166unsafe extern "C" {
11167    pub fn SHA512_256(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11168}
11169unsafe extern "C" {
11170    pub fn SHA1_Init(sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11171}
11172unsafe extern "C" {
11173    pub fn SHA1_Update(
11174        sha: *mut SHA_CTX,
11175        data: *const ::core::ffi::c_void,
11176        len: usize,
11177    ) -> ::core::ffi::c_int;
11178}
11179unsafe extern "C" {
11180    pub fn SHA1_Final(out: *mut u8, sha: *mut SHA_CTX) -> ::core::ffi::c_int;
11181}
11182unsafe extern "C" {
11183    pub fn SHA1(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
11184}
11185unsafe extern "C" {
11186    pub fn SHA1_Transform(sha: *mut SHA_CTX, block: *const u8);
11187}
11188#[repr(C)]
11189#[derive(Copy, Clone)]
11190pub struct sha_state_st {
11191    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1,
11192    pub Nl: u32,
11193    pub Nh: u32,
11194    pub data: [u8; 64usize],
11195    pub num: ::core::ffi::c_uint,
11196}
11197#[repr(C)]
11198#[derive(Copy, Clone)]
11199pub union sha_state_st__bindgen_ty_1 {
11200    pub h: [u32; 5usize],
11201    pub __bindgen_anon_1: sha_state_st__bindgen_ty_1__bindgen_ty_1,
11202}
11203#[repr(C)]
11204#[derive(Debug, Copy, Clone)]
11205pub struct sha_state_st__bindgen_ty_1__bindgen_ty_1 {
11206    pub h0: u32,
11207    pub h1: u32,
11208    pub h2: u32,
11209    pub h3: u32,
11210    pub h4: u32,
11211}
11212unsafe extern "C" {
11213    pub fn CRYPTO_fips_186_2_prf(out: *mut u8, out_len: usize, xkey: *const u8);
11214}
11215unsafe extern "C" {
11216    pub fn OPENSSL_malloc(size: usize) -> *mut ::core::ffi::c_void;
11217}
11218unsafe extern "C" {
11219    pub fn OPENSSL_zalloc(size: usize) -> *mut ::core::ffi::c_void;
11220}
11221unsafe extern "C" {
11222    pub fn OPENSSL_calloc(num: usize, size: usize) -> *mut ::core::ffi::c_void;
11223}
11224unsafe extern "C" {
11225    pub fn OPENSSL_realloc(
11226        ptr: *mut ::core::ffi::c_void,
11227        new_size: usize,
11228    ) -> *mut ::core::ffi::c_void;
11229}
11230unsafe extern "C" {
11231    pub fn OPENSSL_free(ptr: *mut ::core::ffi::c_void);
11232}
11233unsafe extern "C" {
11234    pub fn OPENSSL_cleanse(ptr: *mut ::core::ffi::c_void, len: usize);
11235}
11236unsafe extern "C" {
11237    pub fn CRYPTO_memcmp(
11238        a: *const ::core::ffi::c_void,
11239        b: *const ::core::ffi::c_void,
11240        len: usize,
11241    ) -> ::core::ffi::c_int;
11242}
11243unsafe extern "C" {
11244    pub fn OPENSSL_hash32(ptr: *const ::core::ffi::c_void, len: usize) -> u32;
11245}
11246unsafe extern "C" {
11247    pub fn OPENSSL_strhash(s: *const ::core::ffi::c_char) -> u32;
11248}
11249unsafe extern "C" {
11250    pub fn OPENSSL_strdup(s: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
11251}
11252unsafe extern "C" {
11253    pub fn OPENSSL_strnlen(s: *const ::core::ffi::c_char, len: usize) -> usize;
11254}
11255unsafe extern "C" {
11256    pub fn OPENSSL_isalpha(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11257}
11258unsafe extern "C" {
11259    pub fn OPENSSL_isdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11260}
11261unsafe extern "C" {
11262    pub fn OPENSSL_isxdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11263}
11264unsafe extern "C" {
11265    pub fn OPENSSL_fromxdigit(out: *mut u8, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11266}
11267unsafe extern "C" {
11268    pub fn OPENSSL_isalnum(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11269}
11270unsafe extern "C" {
11271    pub fn OPENSSL_tolower(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11272}
11273unsafe extern "C" {
11274    pub fn OPENSSL_isspace(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
11275}
11276unsafe extern "C" {
11277    pub fn OPENSSL_strcasecmp(
11278        a: *const ::core::ffi::c_char,
11279        b: *const ::core::ffi::c_char,
11280    ) -> ::core::ffi::c_int;
11281}
11282unsafe extern "C" {
11283    pub fn OPENSSL_strncasecmp(
11284        a: *const ::core::ffi::c_char,
11285        b: *const ::core::ffi::c_char,
11286        n: usize,
11287    ) -> ::core::ffi::c_int;
11288}
11289unsafe extern "C" {
11290    pub fn BIO_snprintf(
11291        buf: *mut ::core::ffi::c_char,
11292        n: usize,
11293        format: *const ::core::ffi::c_char,
11294        ...
11295    ) -> ::core::ffi::c_int;
11296}
11297unsafe extern "C" {
11298    pub fn BIO_vsnprintf(
11299        buf: *mut ::core::ffi::c_char,
11300        n: usize,
11301        format: *const ::core::ffi::c_char,
11302        args: *mut __va_list_tag,
11303    ) -> ::core::ffi::c_int;
11304}
11305unsafe extern "C" {
11306    pub fn OPENSSL_vasprintf(
11307        str_: *mut *mut ::core::ffi::c_char,
11308        format: *const ::core::ffi::c_char,
11309        args: *mut __va_list_tag,
11310    ) -> ::core::ffi::c_int;
11311}
11312unsafe extern "C" {
11313    pub fn OPENSSL_asprintf(
11314        str_: *mut *mut ::core::ffi::c_char,
11315        format: *const ::core::ffi::c_char,
11316        ...
11317    ) -> ::core::ffi::c_int;
11318}
11319unsafe extern "C" {
11320    pub fn OPENSSL_strndup(
11321        str_: *const ::core::ffi::c_char,
11322        size: usize,
11323    ) -> *mut ::core::ffi::c_char;
11324}
11325unsafe extern "C" {
11326    pub fn OPENSSL_memdup(
11327        data: *const ::core::ffi::c_void,
11328        size: usize,
11329    ) -> *mut ::core::ffi::c_void;
11330}
11331unsafe extern "C" {
11332    pub fn OPENSSL_strlcpy(
11333        dst: *mut ::core::ffi::c_char,
11334        src: *const ::core::ffi::c_char,
11335        dst_size: usize,
11336    ) -> usize;
11337}
11338unsafe extern "C" {
11339    pub fn OPENSSL_strlcat(
11340        dst: *mut ::core::ffi::c_char,
11341        src: *const ::core::ffi::c_char,
11342        dst_size: usize,
11343    ) -> usize;
11344}
11345unsafe extern "C" {
11346    pub fn CRYPTO_malloc(
11347        size: usize,
11348        file: *const ::core::ffi::c_char,
11349        line: ::core::ffi::c_int,
11350    ) -> *mut ::core::ffi::c_void;
11351}
11352unsafe extern "C" {
11353    pub fn CRYPTO_realloc(
11354        ptr: *mut ::core::ffi::c_void,
11355        new_size: usize,
11356        file: *const ::core::ffi::c_char,
11357        line: ::core::ffi::c_int,
11358    ) -> *mut ::core::ffi::c_void;
11359}
11360unsafe extern "C" {
11361    pub fn CRYPTO_free(
11362        ptr: *mut ::core::ffi::c_void,
11363        file: *const ::core::ffi::c_char,
11364        line: ::core::ffi::c_int,
11365    );
11366}
11367unsafe extern "C" {
11368    pub fn OPENSSL_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11369}
11370unsafe extern "C" {
11371    pub fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) -> ::core::ffi::c_int;
11372}
11373unsafe extern "C" {
11374    pub fn CRYPTO_secure_malloc_initialized() -> ::core::ffi::c_int;
11375}
11376unsafe extern "C" {
11377    pub fn CRYPTO_secure_used() -> usize;
11378}
11379unsafe extern "C" {
11380    pub fn OPENSSL_secure_malloc(size: usize) -> *mut ::core::ffi::c_void;
11381}
11382unsafe extern "C" {
11383    pub fn OPENSSL_secure_clear_free(ptr: *mut ::core::ffi::c_void, len: usize);
11384}
11385unsafe extern "C" {
11386    pub fn CRYPTO_num_locks() -> ::core::ffi::c_int;
11387}
11388unsafe extern "C" {
11389    pub fn CRYPTO_set_locking_callback(
11390        func: ::core::option::Option<
11391            unsafe extern "C" fn(
11392                mode: ::core::ffi::c_int,
11393                lock_num: ::core::ffi::c_int,
11394                file: *const ::core::ffi::c_char,
11395                line: ::core::ffi::c_int,
11396            ),
11397        >,
11398    );
11399}
11400unsafe extern "C" {
11401    pub fn CRYPTO_set_add_lock_callback(
11402        func: ::core::option::Option<
11403            unsafe extern "C" fn(
11404                num: *mut ::core::ffi::c_int,
11405                amount: ::core::ffi::c_int,
11406                lock_num: ::core::ffi::c_int,
11407                file: *const ::core::ffi::c_char,
11408                line: ::core::ffi::c_int,
11409            ) -> ::core::ffi::c_int,
11410        >,
11411    );
11412}
11413unsafe extern "C" {
11414    pub fn CRYPTO_get_locking_callback() -> ::core::option::Option<
11415        unsafe extern "C" fn(
11416            arg1: ::core::ffi::c_int,
11417            arg2: ::core::ffi::c_int,
11418            arg3: *const ::core::ffi::c_char,
11419            arg4: ::core::ffi::c_int,
11420        ),
11421    >;
11422}
11423unsafe extern "C" {
11424    pub fn CRYPTO_get_lock_name(lock_num: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11425}
11426unsafe extern "C" {
11427    pub fn CRYPTO_THREADID_set_callback(
11428        threadid_func: ::core::option::Option<unsafe extern "C" fn(threadid: *mut CRYPTO_THREADID)>,
11429    ) -> ::core::ffi::c_int;
11430}
11431unsafe extern "C" {
11432    pub fn CRYPTO_THREADID_set_numeric(id: *mut CRYPTO_THREADID, val: ::core::ffi::c_ulong);
11433}
11434unsafe extern "C" {
11435    pub fn CRYPTO_THREADID_set_pointer(id: *mut CRYPTO_THREADID, ptr: *mut ::core::ffi::c_void);
11436}
11437unsafe extern "C" {
11438    pub fn CRYPTO_THREADID_current(id: *mut CRYPTO_THREADID);
11439}
11440unsafe extern "C" {
11441    pub fn CRYPTO_set_id_callback(
11442        func: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_ulong>,
11443    );
11444}
11445#[repr(C)]
11446#[derive(Debug, Copy, Clone)]
11447pub struct CRYPTO_dynlock {
11448    pub references: ::core::ffi::c_int,
11449    pub data: *mut CRYPTO_dynlock_value,
11450}
11451unsafe extern "C" {
11452    pub fn CRYPTO_set_dynlock_create_callback(
11453        dyn_create_function: ::core::option::Option<
11454            unsafe extern "C" fn(
11455                file: *const ::core::ffi::c_char,
11456                line: ::core::ffi::c_int,
11457            ) -> *mut CRYPTO_dynlock_value,
11458        >,
11459    );
11460}
11461unsafe extern "C" {
11462    pub fn CRYPTO_set_dynlock_lock_callback(
11463        dyn_lock_function: ::core::option::Option<
11464            unsafe extern "C" fn(
11465                mode: ::core::ffi::c_int,
11466                l: *mut CRYPTO_dynlock_value,
11467                file: *const ::core::ffi::c_char,
11468                line: ::core::ffi::c_int,
11469            ),
11470        >,
11471    );
11472}
11473unsafe extern "C" {
11474    pub fn CRYPTO_set_dynlock_destroy_callback(
11475        dyn_destroy_function: ::core::option::Option<
11476            unsafe extern "C" fn(
11477                l: *mut CRYPTO_dynlock_value,
11478                file: *const ::core::ffi::c_char,
11479                line: ::core::ffi::c_int,
11480            ),
11481        >,
11482    );
11483}
11484unsafe extern "C" {
11485    pub fn CRYPTO_get_dynlock_create_callback() -> ::core::option::Option<
11486        unsafe extern "C" fn(
11487            arg1: *const ::core::ffi::c_char,
11488            arg2: ::core::ffi::c_int,
11489        ) -> *mut CRYPTO_dynlock_value,
11490    >;
11491}
11492unsafe extern "C" {
11493    pub fn CRYPTO_get_dynlock_lock_callback() -> ::core::option::Option<
11494        unsafe extern "C" fn(
11495            arg1: ::core::ffi::c_int,
11496            arg2: *mut CRYPTO_dynlock_value,
11497            arg3: *const ::core::ffi::c_char,
11498            arg4: ::core::ffi::c_int,
11499        ),
11500    >;
11501}
11502unsafe extern "C" {
11503    pub fn CRYPTO_get_dynlock_destroy_callback() -> ::core::option::Option<
11504        unsafe extern "C" fn(
11505            arg1: *mut CRYPTO_dynlock_value,
11506            arg2: *const ::core::ffi::c_char,
11507            arg3: ::core::ffi::c_int,
11508        ),
11509    >;
11510}
11511unsafe extern "C" {
11512    pub fn CRYPTO_is_confidential_build() -> ::core::ffi::c_int;
11513}
11514unsafe extern "C" {
11515    pub fn CRYPTO_has_asm() -> ::core::ffi::c_int;
11516}
11517unsafe extern "C" {
11518    pub fn BORINGSSL_self_test() -> ::core::ffi::c_int;
11519}
11520unsafe extern "C" {
11521    pub fn BORINGSSL_self_test_all() -> ::core::ffi::c_int;
11522}
11523unsafe extern "C" {
11524    pub fn BORINGSSL_integrity_test() -> ::core::ffi::c_int;
11525}
11526unsafe extern "C" {
11527    pub fn CRYPTO_pre_sandbox_init();
11528}
11529unsafe extern "C" {
11530    pub fn FIPS_mode() -> ::core::ffi::c_int;
11531}
11532pub const fips_counter_t_fips_counter_evp_aes_128_gcm: fips_counter_t = 0;
11533pub const fips_counter_t_fips_counter_evp_aes_256_gcm: fips_counter_t = 1;
11534pub const fips_counter_t_fips_counter_evp_aes_128_ctr: fips_counter_t = 2;
11535pub const fips_counter_t_fips_counter_evp_aes_256_ctr: fips_counter_t = 3;
11536pub const fips_counter_t_fips_counter_max: fips_counter_t = 3;
11537pub type fips_counter_t = ::core::ffi::c_uint;
11538unsafe extern "C" {
11539    pub fn FIPS_read_counter(counter: fips_counter_t) -> usize;
11540}
11541unsafe extern "C" {
11542    pub fn OpenSSL_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11543}
11544unsafe extern "C" {
11545    pub fn SSLeay_version(which: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
11546}
11547unsafe extern "C" {
11548    pub fn SSLeay() -> ::core::ffi::c_ulong;
11549}
11550unsafe extern "C" {
11551    pub fn OpenSSL_version_num() -> ::core::ffi::c_ulong;
11552}
11553unsafe extern "C" {
11554    pub fn CRYPTO_malloc_init() -> ::core::ffi::c_int;
11555}
11556unsafe extern "C" {
11557    pub fn OPENSSL_malloc_init() -> ::core::ffi::c_int;
11558}
11559unsafe extern "C" {
11560    pub fn ENGINE_load_builtin_engines();
11561}
11562unsafe extern "C" {
11563    pub fn ENGINE_register_all_complete() -> ::core::ffi::c_int;
11564}
11565unsafe extern "C" {
11566    pub fn ENGINE_cleanup();
11567}
11568unsafe extern "C" {
11569    pub fn OPENSSL_load_builtin_modules();
11570}
11571unsafe extern "C" {
11572    pub fn OPENSSL_init_crypto(
11573        opts: u64,
11574        settings: *const OPENSSL_INIT_SETTINGS,
11575    ) -> ::core::ffi::c_int;
11576}
11577unsafe extern "C" {
11578    pub fn OPENSSL_cleanup();
11579}
11580unsafe extern "C" {
11581    pub fn FIPS_mode_set(on: ::core::ffi::c_int) -> ::core::ffi::c_int;
11582}
11583unsafe extern "C" {
11584    pub fn FIPS_module_name() -> *const ::core::ffi::c_char;
11585}
11586unsafe extern "C" {
11587    pub fn FIPS_module_hash() -> *const u8;
11588}
11589unsafe extern "C" {
11590    pub fn FIPS_version() -> u32;
11591}
11592unsafe extern "C" {
11593    pub fn FIPS_query_algorithm_status(algorithm: *const ::core::ffi::c_char)
11594        -> ::core::ffi::c_int;
11595}
11596unsafe extern "C" {
11597    pub fn CRYPTO_library_init();
11598}
11599unsafe extern "C" {
11600    pub fn CTR_DRBG_new(
11601        entropy: *const u8,
11602        personalization: *const u8,
11603        personalization_len: usize,
11604    ) -> *mut CTR_DRBG_STATE;
11605}
11606unsafe extern "C" {
11607    pub fn CTR_DRBG_new_df(
11608        entropy: *const u8,
11609        entropy_len: usize,
11610        nonce: *const u8,
11611        personalization: *const u8,
11612        personalization_len: usize,
11613    ) -> *mut CTR_DRBG_STATE;
11614}
11615unsafe extern "C" {
11616    pub fn CTR_DRBG_free(state: *mut CTR_DRBG_STATE);
11617}
11618unsafe extern "C" {
11619    pub fn CTR_DRBG_reseed(
11620        drbg: *mut CTR_DRBG_STATE,
11621        entropy: *const u8,
11622        additional_data: *const u8,
11623        additional_data_len: usize,
11624    ) -> ::core::ffi::c_int;
11625}
11626unsafe extern "C" {
11627    pub fn CTR_DRBG_reseed_ex(
11628        drbg: *mut CTR_DRBG_STATE,
11629        entropy: *const u8,
11630        entropy_len: usize,
11631        additional_data: *const u8,
11632        additional_data_len: usize,
11633    ) -> ::core::ffi::c_int;
11634}
11635unsafe extern "C" {
11636    pub fn CTR_DRBG_generate(
11637        drbg: *mut CTR_DRBG_STATE,
11638        out: *mut u8,
11639        out_len: usize,
11640        additional_data: *const u8,
11641        additional_data_len: usize,
11642    ) -> ::core::ffi::c_int;
11643}
11644unsafe extern "C" {
11645    pub fn CTR_DRBG_clear(drbg: *mut CTR_DRBG_STATE);
11646}
11647unsafe extern "C" {
11648    pub fn X25519_keypair(out_public_value: *mut u8, out_private_key: *mut u8);
11649}
11650unsafe extern "C" {
11651    pub fn X25519(
11652        out_shared_key: *mut u8,
11653        private_key: *const u8,
11654        peer_public_value: *const u8,
11655    ) -> ::core::ffi::c_int;
11656}
11657unsafe extern "C" {
11658    pub fn X25519_public_from_private(out_public_value: *mut u8, private_key: *const u8);
11659}
11660unsafe extern "C" {
11661    pub fn ED25519_keypair(out_public_key: *mut u8, out_private_key: *mut u8);
11662}
11663unsafe extern "C" {
11664    pub fn ED25519_sign(
11665        out_sig: *mut u8,
11666        message: *const u8,
11667        message_len: usize,
11668        private_key: *const u8,
11669    ) -> ::core::ffi::c_int;
11670}
11671unsafe extern "C" {
11672    pub fn ED25519_verify(
11673        message: *const u8,
11674        message_len: usize,
11675        signature: *const u8,
11676        public_key: *const u8,
11677    ) -> ::core::ffi::c_int;
11678}
11679unsafe extern "C" {
11680    pub fn ED25519_keypair_from_seed(
11681        out_public_key: *mut u8,
11682        out_private_key: *mut u8,
11683        seed: *const u8,
11684    );
11685}
11686pub const spake2_role_t_spake2_role_alice: spake2_role_t = 0;
11687pub const spake2_role_t_spake2_role_bob: spake2_role_t = 1;
11688pub type spake2_role_t = ::core::ffi::c_uint;
11689unsafe extern "C" {
11690    pub fn SPAKE2_CTX_new(
11691        my_role: spake2_role_t,
11692        my_name: *const u8,
11693        my_name_len: usize,
11694        their_name: *const u8,
11695        their_name_len: usize,
11696    ) -> *mut SPAKE2_CTX;
11697}
11698unsafe extern "C" {
11699    pub fn SPAKE2_CTX_free(ctx: *mut SPAKE2_CTX);
11700}
11701unsafe extern "C" {
11702    pub fn SPAKE2_generate_msg(
11703        ctx: *mut SPAKE2_CTX,
11704        out: *mut u8,
11705        out_len: *mut usize,
11706        max_out_len: usize,
11707        password: *const u8,
11708        password_len: usize,
11709    ) -> ::core::ffi::c_int;
11710}
11711unsafe extern "C" {
11712    pub fn SPAKE2_process_msg(
11713        ctx: *mut SPAKE2_CTX,
11714        out_key: *mut u8,
11715        out_key_len: *mut usize,
11716        max_out_key_len: usize,
11717        their_msg: *const u8,
11718        their_msg_len: usize,
11719    ) -> ::core::ffi::c_int;
11720}
11721#[repr(C)]
11722#[derive(Debug, Copy, Clone)]
11723pub struct DES_cblock_st {
11724    pub bytes: [u8; 8usize],
11725}
11726pub type DES_cblock = DES_cblock_st;
11727#[repr(C)]
11728#[derive(Debug, Copy, Clone)]
11729pub struct DES_ks {
11730    pub subkeys: [[u32; 2usize]; 16usize],
11731}
11732pub type DES_key_schedule = DES_ks;
11733unsafe extern "C" {
11734    pub fn DES_set_key(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11735}
11736unsafe extern "C" {
11737    pub fn DES_set_odd_parity(key: *mut DES_cblock);
11738}
11739unsafe extern "C" {
11740    pub fn DES_ecb_encrypt(
11741        in_: *const DES_cblock,
11742        out: *mut DES_cblock,
11743        schedule: *const DES_key_schedule,
11744        is_encrypt: ::core::ffi::c_int,
11745    );
11746}
11747unsafe extern "C" {
11748    pub fn DES_ncbc_encrypt(
11749        in_: *const u8,
11750        out: *mut u8,
11751        len: usize,
11752        schedule: *const DES_key_schedule,
11753        ivec: *mut DES_cblock,
11754        enc: ::core::ffi::c_int,
11755    );
11756}
11757unsafe extern "C" {
11758    pub fn DES_ecb3_encrypt(
11759        input: *const DES_cblock,
11760        output: *mut DES_cblock,
11761        ks1: *const DES_key_schedule,
11762        ks2: *const DES_key_schedule,
11763        ks3: *const DES_key_schedule,
11764        enc: ::core::ffi::c_int,
11765    );
11766}
11767unsafe extern "C" {
11768    pub fn DES_ede3_cbc_encrypt(
11769        in_: *const u8,
11770        out: *mut u8,
11771        len: usize,
11772        ks1: *const DES_key_schedule,
11773        ks2: *const DES_key_schedule,
11774        ks3: *const DES_key_schedule,
11775        ivec: *mut DES_cblock,
11776        enc: ::core::ffi::c_int,
11777    );
11778}
11779unsafe extern "C" {
11780    pub fn DES_ede2_cbc_encrypt(
11781        in_: *const u8,
11782        out: *mut u8,
11783        len: usize,
11784        ks1: *const DES_key_schedule,
11785        ks2: *const DES_key_schedule,
11786        ivec: *mut DES_cblock,
11787        enc: ::core::ffi::c_int,
11788    );
11789}
11790unsafe extern "C" {
11791    pub fn DES_set_key_unchecked(key: *const DES_cblock, schedule: *mut DES_key_schedule);
11792}
11793unsafe extern "C" {
11794    pub fn DES_ede3_cfb64_encrypt(
11795        in_: *const u8,
11796        out: *mut u8,
11797        length: ::core::ffi::c_long,
11798        ks1: *mut DES_key_schedule,
11799        ks2: *mut DES_key_schedule,
11800        ks3: *mut DES_key_schedule,
11801        ivec: *mut DES_cblock,
11802        num: *mut ::core::ffi::c_int,
11803        enc: ::core::ffi::c_int,
11804    );
11805}
11806unsafe extern "C" {
11807    pub fn DES_ede3_cfb_encrypt(
11808        in_: *const u8,
11809        out: *mut u8,
11810        numbits: ::core::ffi::c_int,
11811        length: ::core::ffi::c_long,
11812        ks1: *mut DES_key_schedule,
11813        ks2: *mut DES_key_schedule,
11814        ks3: *mut DES_key_schedule,
11815        ivec: *mut DES_cblock,
11816        enc: ::core::ffi::c_int,
11817    );
11818}
11819unsafe extern "C" {
11820    pub fn DH_new() -> *mut DH;
11821}
11822unsafe extern "C" {
11823    pub fn DH_free(dh: *mut DH);
11824}
11825unsafe extern "C" {
11826    pub fn DH_up_ref(dh: *mut DH) -> ::core::ffi::c_int;
11827}
11828unsafe extern "C" {
11829    pub fn DH_bits(dh: *const DH) -> ::core::ffi::c_uint;
11830}
11831unsafe extern "C" {
11832    pub fn DH_size(dh: *const DH) -> ::core::ffi::c_int;
11833}
11834unsafe extern "C" {
11835    pub fn DH_get0_pub_key(dh: *const DH) -> *const BIGNUM;
11836}
11837unsafe extern "C" {
11838    pub fn DH_get0_priv_key(dh: *const DH) -> *const BIGNUM;
11839}
11840unsafe extern "C" {
11841    pub fn DH_get0_p(dh: *const DH) -> *const BIGNUM;
11842}
11843unsafe extern "C" {
11844    pub fn DH_get0_q(dh: *const DH) -> *const BIGNUM;
11845}
11846unsafe extern "C" {
11847    pub fn DH_get0_g(dh: *const DH) -> *const BIGNUM;
11848}
11849unsafe extern "C" {
11850    pub fn DH_get0_key(
11851        dh: *const DH,
11852        out_pub_key: *mut *const BIGNUM,
11853        out_priv_key: *mut *const BIGNUM,
11854    );
11855}
11856unsafe extern "C" {
11857    pub fn DH_set0_key(
11858        dh: *mut DH,
11859        pub_key: *mut BIGNUM,
11860        priv_key: *mut BIGNUM,
11861    ) -> ::core::ffi::c_int;
11862}
11863unsafe extern "C" {
11864    pub fn DH_get0_pqg(
11865        dh: *const DH,
11866        out_p: *mut *const BIGNUM,
11867        out_q: *mut *const BIGNUM,
11868        out_g: *mut *const BIGNUM,
11869    );
11870}
11871unsafe extern "C" {
11872    pub fn DH_set0_pqg(
11873        dh: *mut DH,
11874        p: *mut BIGNUM,
11875        q: *mut BIGNUM,
11876        g: *mut BIGNUM,
11877    ) -> ::core::ffi::c_int;
11878}
11879unsafe extern "C" {
11880    pub fn DH_set_length(dh: *mut DH, priv_length: ::core::ffi::c_uint) -> ::core::ffi::c_int;
11881}
11882unsafe extern "C" {
11883    pub fn DH_get_rfc7919_2048() -> *mut DH;
11884}
11885unsafe extern "C" {
11886    pub fn BN_get_rfc3526_prime_1536(ret: *mut BIGNUM) -> *mut BIGNUM;
11887}
11888unsafe extern "C" {
11889    pub fn BN_get_rfc3526_prime_2048(ret: *mut BIGNUM) -> *mut BIGNUM;
11890}
11891unsafe extern "C" {
11892    pub fn BN_get_rfc3526_prime_3072(ret: *mut BIGNUM) -> *mut BIGNUM;
11893}
11894unsafe extern "C" {
11895    pub fn BN_get_rfc3526_prime_4096(ret: *mut BIGNUM) -> *mut BIGNUM;
11896}
11897unsafe extern "C" {
11898    pub fn BN_get_rfc3526_prime_6144(ret: *mut BIGNUM) -> *mut BIGNUM;
11899}
11900unsafe extern "C" {
11901    pub fn BN_get_rfc3526_prime_8192(ret: *mut BIGNUM) -> *mut BIGNUM;
11902}
11903unsafe extern "C" {
11904    pub fn DH_generate_parameters_ex(
11905        dh: *mut DH,
11906        prime_bits: ::core::ffi::c_int,
11907        generator: ::core::ffi::c_int,
11908        cb: *mut BN_GENCB,
11909    ) -> ::core::ffi::c_int;
11910}
11911unsafe extern "C" {
11912    pub fn DH_generate_key(dh: *mut DH) -> ::core::ffi::c_int;
11913}
11914unsafe extern "C" {
11915    pub fn DH_compute_key_padded(
11916        out: *mut u8,
11917        peers_key: *const BIGNUM,
11918        dh: *mut DH,
11919    ) -> ::core::ffi::c_int;
11920}
11921unsafe extern "C" {
11922    pub fn DH_compute_key_hashed(
11923        dh: *mut DH,
11924        out: *mut u8,
11925        out_len: *mut usize,
11926        max_out_len: usize,
11927        peers_key: *const BIGNUM,
11928        digest: *const EVP_MD,
11929    ) -> ::core::ffi::c_int;
11930}
11931unsafe extern "C" {
11932    pub fn DH_check(dh: *const DH, out_flags: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
11933}
11934unsafe extern "C" {
11935    pub fn DH_check_pub_key(
11936        dh: *const DH,
11937        pub_key: *const BIGNUM,
11938        out_flags: *mut ::core::ffi::c_int,
11939    ) -> ::core::ffi::c_int;
11940}
11941unsafe extern "C" {
11942    pub fn DHparams_dup(dh: *const DH) -> *mut DH;
11943}
11944unsafe extern "C" {
11945    pub fn DH_parse_parameters(cbs: *mut CBS) -> *mut DH;
11946}
11947unsafe extern "C" {
11948    pub fn DH_marshal_parameters(cbb: *mut CBB, dh: *const DH) -> ::core::ffi::c_int;
11949}
11950unsafe extern "C" {
11951    pub fn DH_generate_parameters(
11952        prime_len: ::core::ffi::c_int,
11953        generator: ::core::ffi::c_int,
11954        callback: ::core::option::Option<
11955            unsafe extern "C" fn(
11956                arg1: ::core::ffi::c_int,
11957                arg2: ::core::ffi::c_int,
11958                arg3: *mut ::core::ffi::c_void,
11959            ),
11960        >,
11961        cb_arg: *mut ::core::ffi::c_void,
11962    ) -> *mut DH;
11963}
11964unsafe extern "C" {
11965    pub fn d2i_DHparams(
11966        ret: *mut *mut DH,
11967        inp: *mut *const ::core::ffi::c_uchar,
11968        len: ::core::ffi::c_long,
11969    ) -> *mut DH;
11970}
11971unsafe extern "C" {
11972    pub fn i2d_DHparams(in_: *const DH, outp: *mut *mut ::core::ffi::c_uchar)
11973        -> ::core::ffi::c_int;
11974}
11975unsafe extern "C" {
11976    pub fn DH_compute_key(
11977        out: *mut u8,
11978        peers_key: *const BIGNUM,
11979        dh: *mut DH,
11980    ) -> ::core::ffi::c_int;
11981}
11982unsafe extern "C" {
11983    pub fn EVP_md4() -> *const EVP_MD;
11984}
11985unsafe extern "C" {
11986    pub fn EVP_md5() -> *const EVP_MD;
11987}
11988unsafe extern "C" {
11989    pub fn EVP_sha1() -> *const EVP_MD;
11990}
11991unsafe extern "C" {
11992    pub fn EVP_sha224() -> *const EVP_MD;
11993}
11994unsafe extern "C" {
11995    pub fn EVP_sha256() -> *const EVP_MD;
11996}
11997unsafe extern "C" {
11998    pub fn EVP_sha384() -> *const EVP_MD;
11999}
12000unsafe extern "C" {
12001    pub fn EVP_sha512() -> *const EVP_MD;
12002}
12003unsafe extern "C" {
12004    pub fn EVP_sha512_256() -> *const EVP_MD;
12005}
12006unsafe extern "C" {
12007    pub fn EVP_blake2b256() -> *const EVP_MD;
12008}
12009unsafe extern "C" {
12010    pub fn EVP_md5_sha1() -> *const EVP_MD;
12011}
12012unsafe extern "C" {
12013    pub fn EVP_get_digestbynid(nid: ::core::ffi::c_int) -> *const EVP_MD;
12014}
12015unsafe extern "C" {
12016    pub fn EVP_get_digestbyobj(obj: *const ASN1_OBJECT) -> *const EVP_MD;
12017}
12018unsafe extern "C" {
12019    pub fn EVP_MD_CTX_init(ctx: *mut EVP_MD_CTX);
12020}
12021unsafe extern "C" {
12022    pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
12023}
12024unsafe extern "C" {
12025    pub fn EVP_MD_CTX_cleanup(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12026}
12027unsafe extern "C" {
12028    pub fn EVP_MD_CTX_cleanse(ctx: *mut EVP_MD_CTX);
12029}
12030unsafe extern "C" {
12031    pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
12032}
12033unsafe extern "C" {
12034    pub fn EVP_MD_CTX_copy_ex(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12035}
12036unsafe extern "C" {
12037    pub fn EVP_MD_CTX_move(out: *mut EVP_MD_CTX, in_: *mut EVP_MD_CTX);
12038}
12039unsafe extern "C" {
12040    pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
12041}
12042unsafe extern "C" {
12043    pub fn EVP_DigestInit_ex(
12044        ctx: *mut EVP_MD_CTX,
12045        type_: *const EVP_MD,
12046        engine: *mut ENGINE,
12047    ) -> ::core::ffi::c_int;
12048}
12049unsafe extern "C" {
12050    pub fn EVP_DigestUpdate(
12051        ctx: *mut EVP_MD_CTX,
12052        data: *const ::core::ffi::c_void,
12053        len: usize,
12054    ) -> ::core::ffi::c_int;
12055}
12056unsafe extern "C" {
12057    pub fn EVP_DigestFinal_ex(
12058        ctx: *mut EVP_MD_CTX,
12059        md_out: *mut u8,
12060        out_size: *mut ::core::ffi::c_uint,
12061    ) -> ::core::ffi::c_int;
12062}
12063unsafe extern "C" {
12064    pub fn EVP_DigestFinal(
12065        ctx: *mut EVP_MD_CTX,
12066        md_out: *mut u8,
12067        out_size: *mut ::core::ffi::c_uint,
12068    ) -> ::core::ffi::c_int;
12069}
12070unsafe extern "C" {
12071    pub fn EVP_Digest(
12072        data: *const ::core::ffi::c_void,
12073        len: usize,
12074        md_out: *mut u8,
12075        md_out_size: *mut ::core::ffi::c_uint,
12076        type_: *const EVP_MD,
12077        impl_: *mut ENGINE,
12078    ) -> ::core::ffi::c_int;
12079}
12080unsafe extern "C" {
12081    pub fn EVP_MD_type(md: *const EVP_MD) -> ::core::ffi::c_int;
12082}
12083unsafe extern "C" {
12084    pub fn EVP_MD_flags(md: *const EVP_MD) -> u32;
12085}
12086unsafe extern "C" {
12087    pub fn EVP_MD_size(md: *const EVP_MD) -> usize;
12088}
12089unsafe extern "C" {
12090    pub fn EVP_MD_block_size(md: *const EVP_MD) -> usize;
12091}
12092unsafe extern "C" {
12093    pub fn EVP_MD_CTX_get0_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12094}
12095unsafe extern "C" {
12096    pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD;
12097}
12098unsafe extern "C" {
12099    pub fn EVP_MD_CTX_size(ctx: *const EVP_MD_CTX) -> usize;
12100}
12101unsafe extern "C" {
12102    pub fn EVP_MD_CTX_block_size(ctx: *const EVP_MD_CTX) -> usize;
12103}
12104unsafe extern "C" {
12105    pub fn EVP_MD_CTX_type(ctx: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12106}
12107unsafe extern "C" {
12108    pub fn EVP_MD_CTX_pkey_ctx(ctx: *const EVP_MD_CTX) -> *mut EVP_PKEY_CTX;
12109}
12110unsafe extern "C" {
12111    pub fn EVP_parse_digest_algorithm(cbs: *mut CBS) -> *const EVP_MD;
12112}
12113unsafe extern "C" {
12114    pub fn EVP_parse_digest_algorithm_nid(cbs: *mut CBS) -> ::core::ffi::c_int;
12115}
12116unsafe extern "C" {
12117    pub fn EVP_marshal_digest_algorithm(cbb: *mut CBB, md: *const EVP_MD) -> ::core::ffi::c_int;
12118}
12119unsafe extern "C" {
12120    pub fn EVP_marshal_digest_algorithm_no_params(
12121        cbb: *mut CBB,
12122        md: *const EVP_MD,
12123    ) -> ::core::ffi::c_int;
12124}
12125unsafe extern "C" {
12126    pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
12127}
12128unsafe extern "C" {
12129    pub fn EVP_MD_CTX_copy(out: *mut EVP_MD_CTX, in_: *const EVP_MD_CTX) -> ::core::ffi::c_int;
12130}
12131unsafe extern "C" {
12132    pub fn EVP_add_digest(digest: *const EVP_MD) -> ::core::ffi::c_int;
12133}
12134unsafe extern "C" {
12135    pub fn EVP_get_digestbyname(name: *const ::core::ffi::c_char) -> *const EVP_MD;
12136}
12137unsafe extern "C" {
12138    pub fn EVP_dss1() -> *const EVP_MD;
12139}
12140unsafe extern "C" {
12141    pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
12142}
12143unsafe extern "C" {
12144    pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
12145}
12146unsafe extern "C" {
12147    pub fn EVP_DigestFinalXOF(ctx: *mut EVP_MD_CTX, out: *mut u8, len: usize)
12148        -> ::core::ffi::c_int;
12149}
12150unsafe extern "C" {
12151    pub fn EVP_MD_meth_get_flags(md: *const EVP_MD) -> u32;
12152}
12153unsafe extern "C" {
12154    pub fn EVP_MD_CTX_set_flags(ctx: *mut EVP_MD_CTX, flags: ::core::ffi::c_int);
12155}
12156unsafe extern "C" {
12157    pub fn EVP_MD_nid(md: *const EVP_MD) -> ::core::ffi::c_int;
12158}
12159unsafe extern "C" {
12160    pub fn EVP_MD_fetch(
12161        libctx: *mut OSSL_LIB_CTX,
12162        name: *const ::core::ffi::c_char,
12163        propq: *const ::core::ffi::c_char,
12164    ) -> *mut EVP_MD;
12165}
12166unsafe extern "C" {
12167    pub fn EVP_MD_up_ref(md: *mut EVP_MD) -> ::core::ffi::c_int;
12168}
12169unsafe extern "C" {
12170    pub fn EVP_MD_free(md: *mut EVP_MD);
12171}
12172unsafe extern "C" {
12173    pub fn EVP_Q_digest(
12174        libctx: *mut OSSL_LIB_CTX,
12175        name: *const ::core::ffi::c_char,
12176        propq: *const ::core::ffi::c_char,
12177        in_: *const ::core::ffi::c_void,
12178        in_len: usize,
12179        out: *mut u8,
12180        out_len: *mut usize,
12181    ) -> ::core::ffi::c_int;
12182}
12183#[repr(C)]
12184#[derive(Debug)]
12185pub struct evp_md_pctx_ops {
12186    _unused: [u8; 0],
12187}
12188#[repr(C)]
12189#[derive(Copy, Clone)]
12190pub struct env_md_ctx_st {
12191    pub __bindgen_anon_1: env_md_ctx_st__bindgen_ty_1,
12192    pub digest: *const EVP_MD,
12193    pub pctx: *mut EVP_PKEY_CTX,
12194    pub pctx_ops: *const evp_md_pctx_ops,
12195}
12196#[repr(C)]
12197#[derive(Copy, Clone)]
12198pub union env_md_ctx_st__bindgen_ty_1 {
12199    pub md_data: [u8; 208usize],
12200    pub alignment: u64,
12201}
12202unsafe extern "C" {
12203    pub fn DSA_new() -> *mut DSA;
12204}
12205unsafe extern "C" {
12206    pub fn DSA_free(dsa: *mut DSA);
12207}
12208unsafe extern "C" {
12209    pub fn DSA_up_ref(dsa: *mut DSA) -> ::core::ffi::c_int;
12210}
12211unsafe extern "C" {
12212    pub fn DSA_bits(dsa: *const DSA) -> ::core::ffi::c_uint;
12213}
12214unsafe extern "C" {
12215    pub fn DSA_get0_pub_key(dsa: *const DSA) -> *const BIGNUM;
12216}
12217unsafe extern "C" {
12218    pub fn DSA_get0_priv_key(dsa: *const DSA) -> *const BIGNUM;
12219}
12220unsafe extern "C" {
12221    pub fn DSA_get0_p(dsa: *const DSA) -> *const BIGNUM;
12222}
12223unsafe extern "C" {
12224    pub fn DSA_get0_q(dsa: *const DSA) -> *const BIGNUM;
12225}
12226unsafe extern "C" {
12227    pub fn DSA_get0_g(dsa: *const DSA) -> *const BIGNUM;
12228}
12229unsafe extern "C" {
12230    pub fn DSA_get0_key(
12231        dsa: *const DSA,
12232        out_pub_key: *mut *const BIGNUM,
12233        out_priv_key: *mut *const BIGNUM,
12234    );
12235}
12236unsafe extern "C" {
12237    pub fn DSA_get0_pqg(
12238        dsa: *const DSA,
12239        out_p: *mut *const BIGNUM,
12240        out_q: *mut *const BIGNUM,
12241        out_g: *mut *const BIGNUM,
12242    );
12243}
12244unsafe extern "C" {
12245    pub fn DSA_set0_key(
12246        dsa: *mut DSA,
12247        pub_key: *mut BIGNUM,
12248        priv_key: *mut BIGNUM,
12249    ) -> ::core::ffi::c_int;
12250}
12251unsafe extern "C" {
12252    pub fn DSA_set0_pqg(
12253        dsa: *mut DSA,
12254        p: *mut BIGNUM,
12255        q: *mut BIGNUM,
12256        g: *mut BIGNUM,
12257    ) -> ::core::ffi::c_int;
12258}
12259unsafe extern "C" {
12260    pub fn DSA_generate_parameters_ex(
12261        dsa: *mut DSA,
12262        bits: ::core::ffi::c_uint,
12263        seed: *const u8,
12264        seed_len: usize,
12265        out_counter: *mut ::core::ffi::c_int,
12266        out_h: *mut ::core::ffi::c_ulong,
12267        cb: *mut BN_GENCB,
12268    ) -> ::core::ffi::c_int;
12269}
12270unsafe extern "C" {
12271    pub fn DSAparams_dup(dsa: *const DSA) -> *mut DSA;
12272}
12273unsafe extern "C" {
12274    pub fn DSA_generate_key(dsa: *mut DSA) -> ::core::ffi::c_int;
12275}
12276#[repr(C)]
12277#[derive(Debug, Copy, Clone)]
12278pub struct DSA_SIG_st {
12279    pub r: *mut BIGNUM,
12280    pub s: *mut BIGNUM,
12281}
12282unsafe extern "C" {
12283    pub fn DSA_SIG_new() -> *mut DSA_SIG;
12284}
12285unsafe extern "C" {
12286    pub fn DSA_SIG_free(sig: *mut DSA_SIG);
12287}
12288unsafe extern "C" {
12289    pub fn DSA_SIG_get0(sig: *const DSA_SIG, out_r: *mut *const BIGNUM, out_s: *mut *const BIGNUM);
12290}
12291unsafe extern "C" {
12292    pub fn DSA_SIG_set0(sig: *mut DSA_SIG, r: *mut BIGNUM, s: *mut BIGNUM) -> ::core::ffi::c_int;
12293}
12294unsafe extern "C" {
12295    pub fn DSA_do_sign(digest: *const u8, digest_len: usize, dsa: *const DSA) -> *mut DSA_SIG;
12296}
12297unsafe extern "C" {
12298    pub fn DSA_do_verify(
12299        digest: *const u8,
12300        digest_len: usize,
12301        sig: *const DSA_SIG,
12302        dsa: *const DSA,
12303    ) -> ::core::ffi::c_int;
12304}
12305unsafe extern "C" {
12306    pub fn DSA_do_check_signature(
12307        out_valid: *mut ::core::ffi::c_int,
12308        digest: *const u8,
12309        digest_len: usize,
12310        sig: *const DSA_SIG,
12311        dsa: *const DSA,
12312    ) -> ::core::ffi::c_int;
12313}
12314unsafe extern "C" {
12315    pub fn DSA_sign(
12316        type_: ::core::ffi::c_int,
12317        digest: *const u8,
12318        digest_len: usize,
12319        out_sig: *mut u8,
12320        out_siglen: *mut ::core::ffi::c_uint,
12321        dsa: *const DSA,
12322    ) -> ::core::ffi::c_int;
12323}
12324unsafe extern "C" {
12325    pub fn DSA_verify(
12326        type_: ::core::ffi::c_int,
12327        digest: *const u8,
12328        digest_len: usize,
12329        sig: *const u8,
12330        sig_len: usize,
12331        dsa: *const DSA,
12332    ) -> ::core::ffi::c_int;
12333}
12334unsafe extern "C" {
12335    pub fn DSA_check_signature(
12336        out_valid: *mut ::core::ffi::c_int,
12337        digest: *const u8,
12338        digest_len: usize,
12339        sig: *const u8,
12340        sig_len: usize,
12341        dsa: *const DSA,
12342    ) -> ::core::ffi::c_int;
12343}
12344unsafe extern "C" {
12345    pub fn DSA_size(dsa: *const DSA) -> ::core::ffi::c_int;
12346}
12347unsafe extern "C" {
12348    pub fn DSA_SIG_parse(cbs: *mut CBS) -> *mut DSA_SIG;
12349}
12350unsafe extern "C" {
12351    pub fn DSA_SIG_marshal(cbb: *mut CBB, sig: *const DSA_SIG) -> ::core::ffi::c_int;
12352}
12353unsafe extern "C" {
12354    pub fn DSA_parse_public_key(cbs: *mut CBS) -> *mut DSA;
12355}
12356unsafe extern "C" {
12357    pub fn DSA_marshal_public_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12358}
12359unsafe extern "C" {
12360    pub fn DSA_parse_private_key(cbs: *mut CBS) -> *mut DSA;
12361}
12362unsafe extern "C" {
12363    pub fn DSA_marshal_private_key(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12364}
12365unsafe extern "C" {
12366    pub fn DSA_parse_parameters(cbs: *mut CBS) -> *mut DSA;
12367}
12368unsafe extern "C" {
12369    pub fn DSA_marshal_parameters(cbb: *mut CBB, dsa: *const DSA) -> ::core::ffi::c_int;
12370}
12371unsafe extern "C" {
12372    pub fn DSA_dup_DH(dsa: *const DSA) -> *mut DH;
12373}
12374unsafe extern "C" {
12375    pub fn DSA_get_ex_new_index(
12376        argl: ::core::ffi::c_long,
12377        argp: *mut ::core::ffi::c_void,
12378        unused: *mut CRYPTO_EX_unused,
12379        dup_unused: CRYPTO_EX_dup,
12380        free_func: CRYPTO_EX_free,
12381    ) -> ::core::ffi::c_int;
12382}
12383unsafe extern "C" {
12384    pub fn DSA_set_ex_data(
12385        dsa: *mut DSA,
12386        idx: ::core::ffi::c_int,
12387        arg: *mut ::core::ffi::c_void,
12388    ) -> ::core::ffi::c_int;
12389}
12390unsafe extern "C" {
12391    pub fn DSA_get_ex_data(dsa: *const DSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
12392}
12393unsafe extern "C" {
12394    pub fn d2i_DSA_SIG(
12395        out_sig: *mut *mut DSA_SIG,
12396        inp: *mut *const u8,
12397        len: ::core::ffi::c_long,
12398    ) -> *mut DSA_SIG;
12399}
12400unsafe extern "C" {
12401    pub fn i2d_DSA_SIG(in_: *const DSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
12402}
12403unsafe extern "C" {
12404    pub fn d2i_DSAPublicKey(
12405        out: *mut *mut DSA,
12406        inp: *mut *const u8,
12407        len: ::core::ffi::c_long,
12408    ) -> *mut DSA;
12409}
12410unsafe extern "C" {
12411    pub fn i2d_DSAPublicKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12412}
12413unsafe extern "C" {
12414    pub fn d2i_DSAPrivateKey(
12415        out: *mut *mut DSA,
12416        inp: *mut *const u8,
12417        len: ::core::ffi::c_long,
12418    ) -> *mut DSA;
12419}
12420unsafe extern "C" {
12421    pub fn i2d_DSAPrivateKey(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12422}
12423unsafe extern "C" {
12424    pub fn d2i_DSAparams(
12425        out: *mut *mut DSA,
12426        inp: *mut *const u8,
12427        len: ::core::ffi::c_long,
12428    ) -> *mut DSA;
12429}
12430unsafe extern "C" {
12431    pub fn i2d_DSAparams(in_: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
12432}
12433unsafe extern "C" {
12434    pub fn DSA_generate_parameters(
12435        bits: ::core::ffi::c_int,
12436        seed: *mut ::core::ffi::c_uchar,
12437        seed_len: ::core::ffi::c_int,
12438        counter_ret: *mut ::core::ffi::c_int,
12439        h_ret: *mut ::core::ffi::c_ulong,
12440        callback: ::core::option::Option<
12441            unsafe extern "C" fn(
12442                arg1: ::core::ffi::c_int,
12443                arg2: ::core::ffi::c_int,
12444                arg3: *mut ::core::ffi::c_void,
12445            ),
12446        >,
12447        cb_arg: *mut ::core::ffi::c_void,
12448    ) -> *mut DSA;
12449}
12450#[repr(u32)]
12451#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12452pub enum point_conversion_form_t {
12453    POINT_CONVERSION_COMPRESSED = 2,
12454    POINT_CONVERSION_UNCOMPRESSED = 4,
12455    POINT_CONVERSION_HYBRID = 6,
12456}
12457unsafe extern "C" {
12458    pub fn EC_group_p224() -> *const EC_GROUP;
12459}
12460unsafe extern "C" {
12461    pub fn EC_group_p256() -> *const EC_GROUP;
12462}
12463unsafe extern "C" {
12464    pub fn EC_group_p384() -> *const EC_GROUP;
12465}
12466unsafe extern "C" {
12467    pub fn EC_group_p521() -> *const EC_GROUP;
12468}
12469unsafe extern "C" {
12470    pub fn EC_GROUP_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_GROUP;
12471}
12472unsafe extern "C" {
12473    pub fn EC_GROUP_cmp(
12474        a: *const EC_GROUP,
12475        b: *const EC_GROUP,
12476        ignored: *mut BN_CTX,
12477    ) -> ::core::ffi::c_int;
12478}
12479unsafe extern "C" {
12480    pub fn EC_GROUP_get0_generator(group: *const EC_GROUP) -> *const EC_POINT;
12481}
12482unsafe extern "C" {
12483    pub fn EC_GROUP_get0_order(group: *const EC_GROUP) -> *const BIGNUM;
12484}
12485unsafe extern "C" {
12486    pub fn EC_GROUP_order_bits(group: *const EC_GROUP) -> ::core::ffi::c_int;
12487}
12488unsafe extern "C" {
12489    pub fn EC_GROUP_get_cofactor(
12490        group: *const EC_GROUP,
12491        cofactor: *mut BIGNUM,
12492        ctx: *mut BN_CTX,
12493    ) -> ::core::ffi::c_int;
12494}
12495unsafe extern "C" {
12496    pub fn EC_GROUP_get_curve_GFp(
12497        group: *const EC_GROUP,
12498        out_p: *mut BIGNUM,
12499        out_a: *mut BIGNUM,
12500        out_b: *mut BIGNUM,
12501        ctx: *mut BN_CTX,
12502    ) -> ::core::ffi::c_int;
12503}
12504unsafe extern "C" {
12505    pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> ::core::ffi::c_int;
12506}
12507unsafe extern "C" {
12508    pub fn EC_GROUP_get_degree(group: *const EC_GROUP) -> ::core::ffi::c_uint;
12509}
12510unsafe extern "C" {
12511    pub fn EC_curve_nid2nist(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
12512}
12513unsafe extern "C" {
12514    pub fn EC_curve_nist2nid(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
12515}
12516unsafe extern "C" {
12517    pub fn EC_POINT_new(group: *const EC_GROUP) -> *mut EC_POINT;
12518}
12519unsafe extern "C" {
12520    pub fn EC_POINT_free(point: *mut EC_POINT);
12521}
12522unsafe extern "C" {
12523    pub fn EC_POINT_copy(dest: *mut EC_POINT, src: *const EC_POINT) -> ::core::ffi::c_int;
12524}
12525unsafe extern "C" {
12526    pub fn EC_POINT_dup(src: *const EC_POINT, group: *const EC_GROUP) -> *mut EC_POINT;
12527}
12528unsafe extern "C" {
12529    pub fn EC_POINT_set_to_infinity(
12530        group: *const EC_GROUP,
12531        point: *mut EC_POINT,
12532    ) -> ::core::ffi::c_int;
12533}
12534unsafe extern "C" {
12535    pub fn EC_POINT_is_at_infinity(
12536        group: *const EC_GROUP,
12537        point: *const EC_POINT,
12538    ) -> ::core::ffi::c_int;
12539}
12540unsafe extern "C" {
12541    pub fn EC_POINT_is_on_curve(
12542        group: *const EC_GROUP,
12543        point: *const EC_POINT,
12544        ctx: *mut BN_CTX,
12545    ) -> ::core::ffi::c_int;
12546}
12547unsafe extern "C" {
12548    pub fn EC_POINT_cmp(
12549        group: *const EC_GROUP,
12550        a: *const EC_POINT,
12551        b: *const EC_POINT,
12552        ctx: *mut BN_CTX,
12553    ) -> ::core::ffi::c_int;
12554}
12555unsafe extern "C" {
12556    pub fn EC_POINT_get_affine_coordinates_GFp(
12557        group: *const EC_GROUP,
12558        point: *const EC_POINT,
12559        x: *mut BIGNUM,
12560        y: *mut BIGNUM,
12561        ctx: *mut BN_CTX,
12562    ) -> ::core::ffi::c_int;
12563}
12564unsafe extern "C" {
12565    pub fn EC_POINT_get_affine_coordinates(
12566        group: *const EC_GROUP,
12567        point: *const EC_POINT,
12568        x: *mut BIGNUM,
12569        y: *mut BIGNUM,
12570        ctx: *mut BN_CTX,
12571    ) -> ::core::ffi::c_int;
12572}
12573unsafe extern "C" {
12574    pub fn EC_POINT_set_affine_coordinates_GFp(
12575        group: *const EC_GROUP,
12576        point: *mut EC_POINT,
12577        x: *const BIGNUM,
12578        y: *const BIGNUM,
12579        ctx: *mut BN_CTX,
12580    ) -> ::core::ffi::c_int;
12581}
12582unsafe extern "C" {
12583    pub fn EC_POINT_set_affine_coordinates(
12584        group: *const EC_GROUP,
12585        point: *mut EC_POINT,
12586        x: *const BIGNUM,
12587        y: *const BIGNUM,
12588        ctx: *mut BN_CTX,
12589    ) -> ::core::ffi::c_int;
12590}
12591unsafe extern "C" {
12592    pub fn EC_POINT_point2oct(
12593        group: *const EC_GROUP,
12594        point: *const EC_POINT,
12595        form: point_conversion_form_t,
12596        buf: *mut u8,
12597        max_out: usize,
12598        ctx: *mut BN_CTX,
12599    ) -> usize;
12600}
12601unsafe extern "C" {
12602    pub fn EC_POINT_point2buf(
12603        group: *const EC_GROUP,
12604        point: *const EC_POINT,
12605        form: point_conversion_form_t,
12606        out_buf: *mut *mut u8,
12607        ctx: *mut BN_CTX,
12608    ) -> usize;
12609}
12610unsafe extern "C" {
12611    pub fn EC_POINT_point2cbb(
12612        out: *mut CBB,
12613        group: *const EC_GROUP,
12614        point: *const EC_POINT,
12615        form: point_conversion_form_t,
12616        ctx: *mut BN_CTX,
12617    ) -> ::core::ffi::c_int;
12618}
12619unsafe extern "C" {
12620    pub fn EC_POINT_oct2point(
12621        group: *const EC_GROUP,
12622        point: *mut EC_POINT,
12623        buf: *const u8,
12624        len: usize,
12625        ctx: *mut BN_CTX,
12626    ) -> ::core::ffi::c_int;
12627}
12628unsafe extern "C" {
12629    pub fn EC_POINT_set_compressed_coordinates_GFp(
12630        group: *const EC_GROUP,
12631        point: *mut EC_POINT,
12632        x: *const BIGNUM,
12633        y_bit: ::core::ffi::c_int,
12634        ctx: *mut BN_CTX,
12635    ) -> ::core::ffi::c_int;
12636}
12637unsafe extern "C" {
12638    pub fn EC_POINT_add(
12639        group: *const EC_GROUP,
12640        r: *mut EC_POINT,
12641        a: *const EC_POINT,
12642        b: *const EC_POINT,
12643        ctx: *mut BN_CTX,
12644    ) -> ::core::ffi::c_int;
12645}
12646unsafe extern "C" {
12647    pub fn EC_POINT_dbl(
12648        group: *const EC_GROUP,
12649        r: *mut EC_POINT,
12650        a: *const EC_POINT,
12651        ctx: *mut BN_CTX,
12652    ) -> ::core::ffi::c_int;
12653}
12654unsafe extern "C" {
12655    pub fn EC_POINT_invert(
12656        group: *const EC_GROUP,
12657        a: *mut EC_POINT,
12658        ctx: *mut BN_CTX,
12659    ) -> ::core::ffi::c_int;
12660}
12661unsafe extern "C" {
12662    pub fn EC_POINT_mul(
12663        group: *const EC_GROUP,
12664        r: *mut EC_POINT,
12665        n: *const BIGNUM,
12666        q: *const EC_POINT,
12667        m: *const BIGNUM,
12668        ctx: *mut BN_CTX,
12669    ) -> ::core::ffi::c_int;
12670}
12671unsafe extern "C" {
12672    pub fn EC_hash_to_curve_p256_xmd_sha256_sswu(
12673        group: *const EC_GROUP,
12674        out: *mut EC_POINT,
12675        dst: *const u8,
12676        dst_len: usize,
12677        msg: *const u8,
12678        msg_len: usize,
12679    ) -> ::core::ffi::c_int;
12680}
12681unsafe extern "C" {
12682    pub fn EC_hash_to_curve_p384_xmd_sha384_sswu(
12683        group: *const EC_GROUP,
12684        out: *mut EC_POINT,
12685        dst: *const u8,
12686        dst_len: usize,
12687        msg: *const u8,
12688        msg_len: usize,
12689    ) -> ::core::ffi::c_int;
12690}
12691unsafe extern "C" {
12692    pub fn EC_encode_to_curve_p256_xmd_sha256_sswu(
12693        group: *const EC_GROUP,
12694        out: *mut EC_POINT,
12695        dst: *const u8,
12696        dst_len: usize,
12697        msg: *const u8,
12698        msg_len: usize,
12699    ) -> ::core::ffi::c_int;
12700}
12701unsafe extern "C" {
12702    pub fn EC_encode_to_curve_p384_xmd_sha384_sswu(
12703        group: *const EC_GROUP,
12704        out: *mut EC_POINT,
12705        dst: *const u8,
12706        dst_len: usize,
12707        msg: *const u8,
12708        msg_len: usize,
12709    ) -> ::core::ffi::c_int;
12710}
12711unsafe extern "C" {
12712    pub fn EC_wpa3_sae_hash_to_curve_p256(
12713        group: *const EC_GROUP,
12714        out: *mut EC_POINT,
12715        salt: *const u8,
12716        salt_len: usize,
12717        ikm: *const u8,
12718        ikm_len: usize,
12719    ) -> ::core::ffi::c_int;
12720}
12721unsafe extern "C" {
12722    pub fn EC_wpa3_sae_hunt_and_peck_p256(
12723        group: *const EC_GROUP,
12724        out: *mut EC_POINT,
12725        salt: *const u8,
12726        salt_len: usize,
12727        password: *const u8,
12728        password_len: usize,
12729        min_iterations: u8,
12730    ) -> ::core::ffi::c_int;
12731}
12732unsafe extern "C" {
12733    pub fn EC_GROUP_free(group: *mut EC_GROUP);
12734}
12735unsafe extern "C" {
12736    pub fn EC_GROUP_dup(group: *const EC_GROUP) -> *mut EC_GROUP;
12737}
12738unsafe extern "C" {
12739    pub fn EC_GROUP_new_curve_GFp(
12740        p: *const BIGNUM,
12741        a: *const BIGNUM,
12742        b: *const BIGNUM,
12743        ctx: *mut BN_CTX,
12744    ) -> *mut EC_GROUP;
12745}
12746unsafe extern "C" {
12747    pub fn EC_GROUP_set_generator(
12748        group: *mut EC_GROUP,
12749        generator: *const EC_POINT,
12750        order: *const BIGNUM,
12751        cofactor: *const BIGNUM,
12752    ) -> ::core::ffi::c_int;
12753}
12754unsafe extern "C" {
12755    pub fn EC_GROUP_get_order(
12756        group: *const EC_GROUP,
12757        order: *mut BIGNUM,
12758        ctx: *mut BN_CTX,
12759    ) -> ::core::ffi::c_int;
12760}
12761unsafe extern "C" {
12762    pub fn EC_GROUP_set_asn1_flag(group: *mut EC_GROUP, flag: ::core::ffi::c_int);
12763}
12764unsafe extern "C" {
12765    pub fn EC_GROUP_get_asn1_flag(group: *const EC_GROUP) -> ::core::ffi::c_int;
12766}
12767#[repr(C)]
12768#[derive(Debug)]
12769pub struct ec_method_st {
12770    _unused: [u8; 0],
12771}
12772pub type EC_METHOD = ec_method_st;
12773unsafe extern "C" {
12774    pub fn EC_GROUP_method_of(group: *const EC_GROUP) -> *const EC_METHOD;
12775}
12776unsafe extern "C" {
12777    pub fn EC_METHOD_get_field_type(meth: *const EC_METHOD) -> ::core::ffi::c_int;
12778}
12779unsafe extern "C" {
12780    pub fn EC_GROUP_set_point_conversion_form(group: *mut EC_GROUP, form: point_conversion_form_t);
12781}
12782#[repr(C)]
12783#[derive(Debug, Copy, Clone)]
12784pub struct EC_builtin_curve {
12785    pub nid: ::core::ffi::c_int,
12786    pub comment: *const ::core::ffi::c_char,
12787}
12788unsafe extern "C" {
12789    pub fn EC_get_builtin_curves(out_curves: *mut EC_builtin_curve, max_num_curves: usize)
12790        -> usize;
12791}
12792unsafe extern "C" {
12793    pub fn EC_POINT_clear_free(point: *mut EC_POINT);
12794}
12795unsafe extern "C" {
12796    pub fn ENGINE_new() -> *mut ENGINE;
12797}
12798unsafe extern "C" {
12799    pub fn ENGINE_free(engine: *mut ENGINE) -> ::core::ffi::c_int;
12800}
12801unsafe extern "C" {
12802    pub fn ENGINE_set_RSA_method(
12803        engine: *mut ENGINE,
12804        method: *const RSA_METHOD,
12805        method_size: usize,
12806    ) -> ::core::ffi::c_int;
12807}
12808unsafe extern "C" {
12809    pub fn ENGINE_get_RSA_method(engine: *const ENGINE) -> *mut RSA_METHOD;
12810}
12811unsafe extern "C" {
12812    pub fn ENGINE_set_ECDSA_method(
12813        engine: *mut ENGINE,
12814        method: *const ECDSA_METHOD,
12815        method_size: usize,
12816    ) -> ::core::ffi::c_int;
12817}
12818unsafe extern "C" {
12819    pub fn ENGINE_get_ECDSA_method(engine: *const ENGINE) -> *mut ECDSA_METHOD;
12820}
12821unsafe extern "C" {
12822    pub fn METHOD_ref(method: *mut ::core::ffi::c_void);
12823}
12824unsafe extern "C" {
12825    pub fn METHOD_unref(method: *mut ::core::ffi::c_void);
12826}
12827#[repr(C)]
12828#[derive(Debug, Copy, Clone)]
12829pub struct openssl_method_common_st {
12830    pub references: ::core::ffi::c_int,
12831    pub is_static: ::core::ffi::c_char,
12832}
12833unsafe extern "C" {
12834    pub fn EC_KEY_new() -> *mut EC_KEY;
12835}
12836unsafe extern "C" {
12837    pub fn EC_KEY_new_method(engine: *const ENGINE) -> *mut EC_KEY;
12838}
12839unsafe extern "C" {
12840    pub fn EC_KEY_new_by_curve_name(nid: ::core::ffi::c_int) -> *mut EC_KEY;
12841}
12842unsafe extern "C" {
12843    pub fn EC_KEY_free(key: *mut EC_KEY);
12844}
12845unsafe extern "C" {
12846    pub fn EC_KEY_dup(src: *const EC_KEY) -> *mut EC_KEY;
12847}
12848unsafe extern "C" {
12849    pub fn EC_KEY_up_ref(key: *mut EC_KEY) -> ::core::ffi::c_int;
12850}
12851unsafe extern "C" {
12852    pub fn EC_KEY_is_opaque(key: *const EC_KEY) -> ::core::ffi::c_int;
12853}
12854unsafe extern "C" {
12855    pub fn EC_KEY_get0_group(key: *const EC_KEY) -> *const EC_GROUP;
12856}
12857unsafe extern "C" {
12858    pub fn EC_KEY_set_group(key: *mut EC_KEY, group: *const EC_GROUP) -> ::core::ffi::c_int;
12859}
12860unsafe extern "C" {
12861    pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM;
12862}
12863unsafe extern "C" {
12864    pub fn EC_KEY_set_private_key(key: *mut EC_KEY, priv_: *const BIGNUM) -> ::core::ffi::c_int;
12865}
12866unsafe extern "C" {
12867    pub fn EC_KEY_get0_public_key(key: *const EC_KEY) -> *const EC_POINT;
12868}
12869unsafe extern "C" {
12870    pub fn EC_KEY_set_public_key(key: *mut EC_KEY, pub_: *const EC_POINT) -> ::core::ffi::c_int;
12871}
12872unsafe extern "C" {
12873    pub fn EC_KEY_get_enc_flags(key: *const EC_KEY) -> ::core::ffi::c_uint;
12874}
12875unsafe extern "C" {
12876    pub fn EC_KEY_set_enc_flags(key: *mut EC_KEY, flags: ::core::ffi::c_uint);
12877}
12878unsafe extern "C" {
12879    pub fn EC_KEY_get_conv_form(key: *const EC_KEY) -> point_conversion_form_t;
12880}
12881unsafe extern "C" {
12882    pub fn EC_KEY_set_conv_form(key: *mut EC_KEY, cform: point_conversion_form_t);
12883}
12884unsafe extern "C" {
12885    pub fn EC_KEY_check_key(key: *const EC_KEY) -> ::core::ffi::c_int;
12886}
12887unsafe extern "C" {
12888    pub fn EC_KEY_check_fips(key: *const EC_KEY) -> ::core::ffi::c_int;
12889}
12890unsafe extern "C" {
12891    pub fn EC_KEY_set_public_key_affine_coordinates(
12892        key: *mut EC_KEY,
12893        x: *const BIGNUM,
12894        y: *const BIGNUM,
12895    ) -> ::core::ffi::c_int;
12896}
12897unsafe extern "C" {
12898    pub fn EC_KEY_oct2key(
12899        key: *mut EC_KEY,
12900        in_: *const u8,
12901        len: usize,
12902        ctx: *mut BN_CTX,
12903    ) -> ::core::ffi::c_int;
12904}
12905unsafe extern "C" {
12906    pub fn EC_KEY_key2buf(
12907        key: *const EC_KEY,
12908        form: point_conversion_form_t,
12909        out_buf: *mut *mut u8,
12910        ctx: *mut BN_CTX,
12911    ) -> usize;
12912}
12913unsafe extern "C" {
12914    pub fn EC_KEY_oct2priv(key: *mut EC_KEY, in_: *const u8, len: usize) -> ::core::ffi::c_int;
12915}
12916unsafe extern "C" {
12917    pub fn EC_KEY_priv2oct(key: *const EC_KEY, out: *mut u8, max_out: usize) -> usize;
12918}
12919unsafe extern "C" {
12920    pub fn EC_KEY_priv2buf(key: *const EC_KEY, out_buf: *mut *mut u8) -> usize;
12921}
12922unsafe extern "C" {
12923    pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> ::core::ffi::c_int;
12924}
12925unsafe extern "C" {
12926    pub fn EC_KEY_generate_key_fips(key: *mut EC_KEY) -> ::core::ffi::c_int;
12927}
12928unsafe extern "C" {
12929    pub fn EC_KEY_derive_from_secret(
12930        group: *const EC_GROUP,
12931        secret: *const u8,
12932        secret_len: usize,
12933    ) -> *mut EC_KEY;
12934}
12935unsafe extern "C" {
12936    pub fn EC_KEY_parse_private_key(cbs: *mut CBS, group: *const EC_GROUP) -> *mut EC_KEY;
12937}
12938unsafe extern "C" {
12939    pub fn EC_KEY_marshal_private_key(
12940        cbb: *mut CBB,
12941        key: *const EC_KEY,
12942        enc_flags: ::core::ffi::c_uint,
12943    ) -> ::core::ffi::c_int;
12944}
12945unsafe extern "C" {
12946    pub fn EC_KEY_parse_curve_name(cbs: *mut CBS) -> *mut EC_GROUP;
12947}
12948unsafe extern "C" {
12949    pub fn EC_KEY_marshal_curve_name(cbb: *mut CBB, group: *const EC_GROUP) -> ::core::ffi::c_int;
12950}
12951unsafe extern "C" {
12952    pub fn EC_KEY_parse_parameters(cbs: *mut CBS) -> *mut EC_GROUP;
12953}
12954unsafe extern "C" {
12955    pub fn EC_KEY_get_ex_new_index(
12956        argl: ::core::ffi::c_long,
12957        argp: *mut ::core::ffi::c_void,
12958        unused: *mut CRYPTO_EX_unused,
12959        dup_unused: CRYPTO_EX_dup,
12960        free_func: CRYPTO_EX_free,
12961    ) -> ::core::ffi::c_int;
12962}
12963unsafe extern "C" {
12964    pub fn EC_KEY_set_ex_data(
12965        r: *mut EC_KEY,
12966        idx: ::core::ffi::c_int,
12967        arg: *mut ::core::ffi::c_void,
12968    ) -> ::core::ffi::c_int;
12969}
12970unsafe extern "C" {
12971    pub fn EC_KEY_get_ex_data(
12972        r: *const EC_KEY,
12973        idx: ::core::ffi::c_int,
12974    ) -> *mut ::core::ffi::c_void;
12975}
12976#[repr(C)]
12977#[derive(Debug, Copy, Clone)]
12978pub struct ecdsa_method_st {
12979    pub common: openssl_method_common_st,
12980    pub app_data: *mut ::core::ffi::c_void,
12981    pub init: ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
12982    pub finish:
12983        ::core::option::Option<unsafe extern "C" fn(key: *mut EC_KEY) -> ::core::ffi::c_int>,
12984    pub sign: ::core::option::Option<
12985        unsafe extern "C" fn(
12986            digest: *const u8,
12987            digest_len: usize,
12988            sig: *mut u8,
12989            sig_len: *mut ::core::ffi::c_uint,
12990            eckey: *mut EC_KEY,
12991        ) -> ::core::ffi::c_int,
12992    >,
12993    pub flags: ::core::ffi::c_int,
12994}
12995unsafe extern "C" {
12996    pub fn EC_KEY_set_asn1_flag(key: *mut EC_KEY, flag: ::core::ffi::c_int);
12997}
12998unsafe extern "C" {
12999    pub fn d2i_ECPrivateKey(
13000        out_key: *mut *mut EC_KEY,
13001        inp: *mut *const u8,
13002        len: ::core::ffi::c_long,
13003    ) -> *mut EC_KEY;
13004}
13005unsafe extern "C" {
13006    pub fn i2d_ECPrivateKey(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
13007}
13008unsafe extern "C" {
13009    pub fn d2i_ECPKParameters(
13010        out: *mut *mut EC_GROUP,
13011        inp: *mut *const u8,
13012        len: ::core::ffi::c_long,
13013    ) -> *mut EC_GROUP;
13014}
13015unsafe extern "C" {
13016    pub fn i2d_ECPKParameters(group: *const EC_GROUP, outp: *mut *mut u8) -> ::core::ffi::c_int;
13017}
13018unsafe extern "C" {
13019    pub fn d2i_ECParameters(
13020        out_key: *mut *mut EC_KEY,
13021        inp: *mut *const u8,
13022        len: ::core::ffi::c_long,
13023    ) -> *mut EC_KEY;
13024}
13025unsafe extern "C" {
13026    pub fn i2d_ECParameters(key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
13027}
13028unsafe extern "C" {
13029    pub fn o2i_ECPublicKey(
13030        out_key: *mut *mut EC_KEY,
13031        inp: *mut *const u8,
13032        len: ::core::ffi::c_long,
13033    ) -> *mut EC_KEY;
13034}
13035unsafe extern "C" {
13036    pub fn i2o_ECPublicKey(
13037        key: *const EC_KEY,
13038        outp: *mut *mut ::core::ffi::c_uchar,
13039    ) -> ::core::ffi::c_int;
13040}
13041unsafe extern "C" {
13042    pub fn ECDH_compute_key(
13043        out: *mut ::core::ffi::c_void,
13044        outlen: usize,
13045        pub_key: *const EC_POINT,
13046        priv_key: *const EC_KEY,
13047        kdf: ::core::option::Option<
13048            unsafe extern "C" fn(
13049                in_: *const ::core::ffi::c_void,
13050                inlen: usize,
13051                out: *mut ::core::ffi::c_void,
13052                outlen: *mut usize,
13053            ) -> *mut ::core::ffi::c_void,
13054        >,
13055    ) -> ::core::ffi::c_int;
13056}
13057unsafe extern "C" {
13058    pub fn ECDH_compute_key_fips(
13059        out: *mut u8,
13060        out_len: usize,
13061        pub_key: *const EC_POINT,
13062        priv_key: *const EC_KEY,
13063    ) -> ::core::ffi::c_int;
13064}
13065unsafe extern "C" {
13066    pub fn ECDSA_sign(
13067        type_: ::core::ffi::c_int,
13068        digest: *const u8,
13069        digest_len: usize,
13070        sig: *mut u8,
13071        sig_len: *mut ::core::ffi::c_uint,
13072        key: *const EC_KEY,
13073    ) -> ::core::ffi::c_int;
13074}
13075unsafe extern "C" {
13076    pub fn ECDSA_verify(
13077        type_: ::core::ffi::c_int,
13078        digest: *const u8,
13079        digest_len: usize,
13080        sig: *const u8,
13081        sig_len: usize,
13082        key: *const EC_KEY,
13083    ) -> ::core::ffi::c_int;
13084}
13085unsafe extern "C" {
13086    pub fn ECDSA_size(key: *const EC_KEY) -> usize;
13087}
13088#[repr(C)]
13089#[derive(Debug, Copy, Clone)]
13090pub struct ecdsa_sig_st {
13091    pub r: *mut BIGNUM,
13092    pub s: *mut BIGNUM,
13093}
13094unsafe extern "C" {
13095    pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
13096}
13097unsafe extern "C" {
13098    pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
13099}
13100unsafe extern "C" {
13101    pub fn ECDSA_SIG_get0_r(sig: *const ECDSA_SIG) -> *const BIGNUM;
13102}
13103unsafe extern "C" {
13104    pub fn ECDSA_SIG_get0_s(sig: *const ECDSA_SIG) -> *const BIGNUM;
13105}
13106unsafe extern "C" {
13107    pub fn ECDSA_SIG_get0(
13108        sig: *const ECDSA_SIG,
13109        out_r: *mut *const BIGNUM,
13110        out_s: *mut *const BIGNUM,
13111    );
13112}
13113unsafe extern "C" {
13114    pub fn ECDSA_SIG_set0(
13115        sig: *mut ECDSA_SIG,
13116        r: *mut BIGNUM,
13117        s: *mut BIGNUM,
13118    ) -> ::core::ffi::c_int;
13119}
13120unsafe extern "C" {
13121    pub fn ECDSA_do_sign(
13122        digest: *const u8,
13123        digest_len: usize,
13124        key: *const EC_KEY,
13125    ) -> *mut ECDSA_SIG;
13126}
13127unsafe extern "C" {
13128    pub fn ECDSA_do_verify(
13129        digest: *const u8,
13130        digest_len: usize,
13131        sig: *const ECDSA_SIG,
13132        key: *const EC_KEY,
13133    ) -> ::core::ffi::c_int;
13134}
13135unsafe extern "C" {
13136    pub fn ECDSA_SIG_parse(cbs: *mut CBS) -> *mut ECDSA_SIG;
13137}
13138unsafe extern "C" {
13139    pub fn ECDSA_SIG_from_bytes(in_: *const u8, in_len: usize) -> *mut ECDSA_SIG;
13140}
13141unsafe extern "C" {
13142    pub fn ECDSA_SIG_marshal(cbb: *mut CBB, sig: *const ECDSA_SIG) -> ::core::ffi::c_int;
13143}
13144unsafe extern "C" {
13145    pub fn ECDSA_SIG_to_bytes(
13146        out_bytes: *mut *mut u8,
13147        out_len: *mut usize,
13148        sig: *const ECDSA_SIG,
13149    ) -> ::core::ffi::c_int;
13150}
13151unsafe extern "C" {
13152    pub fn ECDSA_SIG_max_len(order_len: usize) -> usize;
13153}
13154unsafe extern "C" {
13155    pub fn ECDSA_sign_p1363(
13156        digest: *const u8,
13157        digest_len: usize,
13158        sig: *mut u8,
13159        out_sig_len: *mut usize,
13160        max_sig_len: usize,
13161        key: *const EC_KEY,
13162    ) -> ::core::ffi::c_int;
13163}
13164unsafe extern "C" {
13165    pub fn ECDSA_verify_p1363(
13166        digest: *const u8,
13167        digest_len: usize,
13168        sig: *const u8,
13169        sig_len: usize,
13170        key: *const EC_KEY,
13171    ) -> ::core::ffi::c_int;
13172}
13173unsafe extern "C" {
13174    pub fn ECDSA_size_p1363(key: *const EC_KEY) -> usize;
13175}
13176unsafe extern "C" {
13177    pub fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(
13178        digest: *const u8,
13179        digest_len: usize,
13180        eckey: *const EC_KEY,
13181        nonce: *const u8,
13182        nonce_len: usize,
13183    ) -> *mut ECDSA_SIG;
13184}
13185unsafe extern "C" {
13186    pub fn d2i_ECDSA_SIG(
13187        out: *mut *mut ECDSA_SIG,
13188        inp: *mut *const u8,
13189        len: ::core::ffi::c_long,
13190    ) -> *mut ECDSA_SIG;
13191}
13192unsafe extern "C" {
13193    pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
13194}
13195unsafe extern "C" {
13196    pub fn EVP_aead_aes_128_gcm() -> *const EVP_AEAD;
13197}
13198unsafe extern "C" {
13199    pub fn EVP_aead_aes_192_gcm() -> *const EVP_AEAD;
13200}
13201unsafe extern "C" {
13202    pub fn EVP_aead_aes_256_gcm() -> *const EVP_AEAD;
13203}
13204unsafe extern "C" {
13205    pub fn EVP_aead_chacha20_poly1305() -> *const EVP_AEAD;
13206}
13207unsafe extern "C" {
13208    pub fn EVP_aead_xchacha20_poly1305() -> *const EVP_AEAD;
13209}
13210unsafe extern "C" {
13211    pub fn EVP_aead_aes_128_ctr_hmac_sha256() -> *const EVP_AEAD;
13212}
13213unsafe extern "C" {
13214    pub fn EVP_aead_aes_256_ctr_hmac_sha256() -> *const EVP_AEAD;
13215}
13216unsafe extern "C" {
13217    pub fn EVP_aead_aes_128_gcm_siv() -> *const EVP_AEAD;
13218}
13219unsafe extern "C" {
13220    pub fn EVP_aead_aes_256_gcm_siv() -> *const EVP_AEAD;
13221}
13222unsafe extern "C" {
13223    pub fn EVP_aead_aes_128_gcm_randnonce() -> *const EVP_AEAD;
13224}
13225unsafe extern "C" {
13226    pub fn EVP_aead_aes_256_gcm_randnonce() -> *const EVP_AEAD;
13227}
13228unsafe extern "C" {
13229    pub fn EVP_aead_aes_128_ccm_bluetooth() -> *const EVP_AEAD;
13230}
13231unsafe extern "C" {
13232    pub fn EVP_aead_aes_128_ccm_bluetooth_8() -> *const EVP_AEAD;
13233}
13234unsafe extern "C" {
13235    pub fn EVP_aead_aes_128_ccm_matter() -> *const EVP_AEAD;
13236}
13237unsafe extern "C" {
13238    pub fn EVP_has_aes_hardware() -> ::core::ffi::c_int;
13239}
13240unsafe extern "C" {
13241    pub fn EVP_aead_aes_128_eax() -> *const EVP_AEAD;
13242}
13243unsafe extern "C" {
13244    pub fn EVP_aead_aes_256_eax() -> *const EVP_AEAD;
13245}
13246unsafe extern "C" {
13247    pub fn EVP_AEAD_key_length(aead: *const EVP_AEAD) -> usize;
13248}
13249unsafe extern "C" {
13250    pub fn EVP_AEAD_nonce_length(aead: *const EVP_AEAD) -> usize;
13251}
13252unsafe extern "C" {
13253    pub fn EVP_AEAD_max_overhead(aead: *const EVP_AEAD) -> usize;
13254}
13255unsafe extern "C" {
13256    pub fn EVP_AEAD_max_tag_len(aead: *const EVP_AEAD) -> usize;
13257}
13258#[repr(C)]
13259#[derive(Copy, Clone)]
13260pub union evp_aead_ctx_st_state {
13261    pub opaque: [u8; 560usize],
13262    pub alignment: u64,
13263}
13264#[repr(C)]
13265#[derive(Copy, Clone)]
13266pub struct evp_aead_ctx_st {
13267    pub aead: *const EVP_AEAD,
13268    pub state: evp_aead_ctx_st_state,
13269    pub tag_len: u8,
13270}
13271unsafe extern "C" {
13272    pub fn EVP_AEAD_CTX_zero(ctx: *mut EVP_AEAD_CTX);
13273}
13274unsafe extern "C" {
13275    pub fn EVP_AEAD_CTX_new(
13276        aead: *const EVP_AEAD,
13277        key: *const u8,
13278        key_len: usize,
13279        tag_len: usize,
13280    ) -> *mut EVP_AEAD_CTX;
13281}
13282unsafe extern "C" {
13283    pub fn EVP_AEAD_CTX_free(ctx: *mut EVP_AEAD_CTX);
13284}
13285unsafe extern "C" {
13286    pub fn EVP_AEAD_CTX_init(
13287        ctx: *mut EVP_AEAD_CTX,
13288        aead: *const EVP_AEAD,
13289        key: *const u8,
13290        key_len: usize,
13291        tag_len: usize,
13292        impl_: *mut ENGINE,
13293    ) -> ::core::ffi::c_int;
13294}
13295unsafe extern "C" {
13296    pub fn EVP_AEAD_CTX_cleanup(ctx: *mut EVP_AEAD_CTX);
13297}
13298unsafe extern "C" {
13299    pub fn EVP_AEAD_CTX_seal(
13300        ctx: *const EVP_AEAD_CTX,
13301        out: *mut u8,
13302        out_len: *mut usize,
13303        max_out_len: usize,
13304        nonce: *const u8,
13305        nonce_len: usize,
13306        in_: *const u8,
13307        in_len: usize,
13308        ad: *const u8,
13309        ad_len: usize,
13310    ) -> ::core::ffi::c_int;
13311}
13312unsafe extern "C" {
13313    pub fn EVP_AEAD_CTX_open(
13314        ctx: *const EVP_AEAD_CTX,
13315        out: *mut u8,
13316        out_len: *mut usize,
13317        max_out_len: usize,
13318        nonce: *const u8,
13319        nonce_len: usize,
13320        in_: *const u8,
13321        in_len: usize,
13322        ad: *const u8,
13323        ad_len: usize,
13324    ) -> ::core::ffi::c_int;
13325}
13326unsafe extern "C" {
13327    pub fn EVP_AEAD_CTX_seal_scatter(
13328        ctx: *const EVP_AEAD_CTX,
13329        out: *mut u8,
13330        out_tag: *mut u8,
13331        out_tag_len: *mut usize,
13332        max_out_tag_len: usize,
13333        nonce: *const u8,
13334        nonce_len: usize,
13335        in_: *const u8,
13336        in_len: usize,
13337        extra_in: *const u8,
13338        extra_in_len: usize,
13339        ad: *const u8,
13340        ad_len: usize,
13341    ) -> ::core::ffi::c_int;
13342}
13343unsafe extern "C" {
13344    pub fn EVP_AEAD_CTX_open_gather(
13345        ctx: *const EVP_AEAD_CTX,
13346        out: *mut u8,
13347        nonce: *const u8,
13348        nonce_len: usize,
13349        in_: *const u8,
13350        in_len: usize,
13351        in_tag: *const u8,
13352        in_tag_len: usize,
13353        ad: *const u8,
13354        ad_len: usize,
13355    ) -> ::core::ffi::c_int;
13356}
13357#[repr(C)]
13358#[derive(Debug, Copy, Clone)]
13359pub struct crypto_ivec_st {
13360    pub in_: *const u8,
13361    pub len: usize,
13362}
13363#[repr(C)]
13364#[derive(Debug, Copy, Clone)]
13365pub struct crypto_iovec_st {
13366    pub out: *mut u8,
13367    pub in_: *const u8,
13368    pub len: usize,
13369}
13370unsafe extern "C" {
13371    pub fn EVP_AEAD_CTX_sealv(
13372        ctx: *const EVP_AEAD_CTX,
13373        iovec: *const CRYPTO_IOVEC,
13374        num_iovec: usize,
13375        out_tag: *mut u8,
13376        out_tag_len: *mut usize,
13377        max_out_tag_len: usize,
13378        nonce: *const u8,
13379        nonce_len: usize,
13380        aadvec: *const CRYPTO_IVEC,
13381        num_aadvec: usize,
13382    ) -> ::core::ffi::c_int;
13383}
13384unsafe extern "C" {
13385    pub fn EVP_AEAD_CTX_openv(
13386        ctx: *const EVP_AEAD_CTX,
13387        iovec: *const CRYPTO_IOVEC,
13388        num_iovec: usize,
13389        out_total_bytes: *mut usize,
13390        nonce: *const u8,
13391        nonce_len: usize,
13392        aadvec: *const CRYPTO_IVEC,
13393        num_aadvec: usize,
13394    ) -> ::core::ffi::c_int;
13395}
13396unsafe extern "C" {
13397    pub fn EVP_AEAD_CTX_openv_detached(
13398        ctx: *const EVP_AEAD_CTX,
13399        iovec: *const CRYPTO_IOVEC,
13400        num_iovec: usize,
13401        nonce: *const u8,
13402        nonce_len: usize,
13403        in_tag: *const u8,
13404        in_tag_len: usize,
13405        aadvec: *const CRYPTO_IVEC,
13406        num_aadvec: usize,
13407    ) -> ::core::ffi::c_int;
13408}
13409unsafe extern "C" {
13410    pub fn EVP_AEAD_CTX_aead(ctx: *const EVP_AEAD_CTX) -> *const EVP_AEAD;
13411}
13412unsafe extern "C" {
13413    pub fn EVP_aead_aes_128_cbc_sha1_tls() -> *const EVP_AEAD;
13414}
13415unsafe extern "C" {
13416    pub fn EVP_aead_aes_128_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13417}
13418unsafe extern "C" {
13419    pub fn EVP_aead_aes_128_cbc_sha256_tls() -> *const EVP_AEAD;
13420}
13421unsafe extern "C" {
13422    pub fn EVP_aead_aes_256_cbc_sha1_tls() -> *const EVP_AEAD;
13423}
13424unsafe extern "C" {
13425    pub fn EVP_aead_aes_256_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13426}
13427unsafe extern "C" {
13428    pub fn EVP_aead_des_ede3_cbc_sha1_tls() -> *const EVP_AEAD;
13429}
13430unsafe extern "C" {
13431    pub fn EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv() -> *const EVP_AEAD;
13432}
13433unsafe extern "C" {
13434    pub fn EVP_aead_aes_128_gcm_tls12() -> *const EVP_AEAD;
13435}
13436unsafe extern "C" {
13437    pub fn EVP_aead_aes_256_gcm_tls12() -> *const EVP_AEAD;
13438}
13439unsafe extern "C" {
13440    pub fn EVP_aead_aes_128_gcm_tls13() -> *const EVP_AEAD;
13441}
13442unsafe extern "C" {
13443    pub fn EVP_aead_aes_256_gcm_tls13() -> *const EVP_AEAD;
13444}
13445pub const evp_aead_direction_t_evp_aead_open: evp_aead_direction_t = 0;
13446pub const evp_aead_direction_t_evp_aead_seal: evp_aead_direction_t = 1;
13447pub type evp_aead_direction_t = ::core::ffi::c_uint;
13448unsafe extern "C" {
13449    pub fn EVP_AEAD_CTX_init_with_direction(
13450        ctx: *mut EVP_AEAD_CTX,
13451        aead: *const EVP_AEAD,
13452        key: *const u8,
13453        key_len: usize,
13454        tag_len: usize,
13455        dir: evp_aead_direction_t,
13456    ) -> ::core::ffi::c_int;
13457}
13458unsafe extern "C" {
13459    pub fn EVP_AEAD_CTX_get_iv(
13460        ctx: *const EVP_AEAD_CTX,
13461        out_iv: *mut *const u8,
13462        out_len: *mut usize,
13463    ) -> ::core::ffi::c_int;
13464}
13465unsafe extern "C" {
13466    pub fn EVP_AEAD_CTX_tag_len(
13467        ctx: *const EVP_AEAD_CTX,
13468        out_tag_len: *mut usize,
13469        in_len: usize,
13470        extra_in_len: usize,
13471    ) -> ::core::ffi::c_int;
13472}
13473unsafe extern "C" {
13474    pub fn EVP_PKEY_new() -> *mut EVP_PKEY;
13475}
13476unsafe extern "C" {
13477    pub fn EVP_PKEY_free(pkey: *mut EVP_PKEY);
13478}
13479unsafe extern "C" {
13480    pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
13481}
13482unsafe extern "C" {
13483    pub fn EVP_PKEY_dup_ref(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13484}
13485unsafe extern "C" {
13486    pub fn EVP_PKEY_is_opaque(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13487}
13488unsafe extern "C" {
13489    pub fn EVP_PKEY_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13490}
13491unsafe extern "C" {
13492    pub fn EVP_PKEY_copy_parameters(to: *mut EVP_PKEY, from: *const EVP_PKEY)
13493        -> ::core::ffi::c_int;
13494}
13495unsafe extern "C" {
13496    pub fn EVP_PKEY_missing_parameters(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13497}
13498unsafe extern "C" {
13499    pub fn EVP_PKEY_parameters_eq(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
13500}
13501unsafe extern "C" {
13502    pub fn EVP_PKEY_size(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13503}
13504unsafe extern "C" {
13505    pub fn EVP_PKEY_bits(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13506}
13507unsafe extern "C" {
13508    pub fn EVP_PKEY_has_public(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13509}
13510unsafe extern "C" {
13511    pub fn EVP_PKEY_has_private(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13512}
13513unsafe extern "C" {
13514    pub fn EVP_PKEY_copy_public(pkey: *const EVP_PKEY) -> *mut EVP_PKEY;
13515}
13516unsafe extern "C" {
13517    pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
13518}
13519unsafe extern "C" {
13520    pub fn EVP_pkey_rsa() -> *const EVP_PKEY_ALG;
13521}
13522unsafe extern "C" {
13523    pub fn EVP_pkey_ec_p224() -> *const EVP_PKEY_ALG;
13524}
13525unsafe extern "C" {
13526    pub fn EVP_pkey_ec_p256() -> *const EVP_PKEY_ALG;
13527}
13528unsafe extern "C" {
13529    pub fn EVP_pkey_ec_p384() -> *const EVP_PKEY_ALG;
13530}
13531unsafe extern "C" {
13532    pub fn EVP_pkey_ec_p521() -> *const EVP_PKEY_ALG;
13533}
13534unsafe extern "C" {
13535    pub fn EVP_pkey_x25519() -> *const EVP_PKEY_ALG;
13536}
13537unsafe extern "C" {
13538    pub fn EVP_pkey_ed25519() -> *const EVP_PKEY_ALG;
13539}
13540unsafe extern "C" {
13541    pub fn EVP_pkey_ml_dsa_44() -> *const EVP_PKEY_ALG;
13542}
13543unsafe extern "C" {
13544    pub fn EVP_pkey_ml_dsa_65() -> *const EVP_PKEY_ALG;
13545}
13546unsafe extern "C" {
13547    pub fn EVP_pkey_ml_dsa_87() -> *const EVP_PKEY_ALG;
13548}
13549unsafe extern "C" {
13550    pub fn EVP_pkey_ml_kem_768() -> *const EVP_PKEY_ALG;
13551}
13552unsafe extern "C" {
13553    pub fn EVP_pkey_ml_kem_1024() -> *const EVP_PKEY_ALG;
13554}
13555unsafe extern "C" {
13556    pub fn EVP_pkey_xwing() -> *const EVP_PKEY_ALG;
13557}
13558unsafe extern "C" {
13559    pub fn EVP_pkey_dsa() -> *const EVP_PKEY_ALG;
13560}
13561unsafe extern "C" {
13562    pub fn EVP_pkey_rsa_pss_sha256() -> *const EVP_PKEY_ALG;
13563}
13564unsafe extern "C" {
13565    pub fn EVP_pkey_rsa_pss_sha384() -> *const EVP_PKEY_ALG;
13566}
13567unsafe extern "C" {
13568    pub fn EVP_pkey_rsa_pss_sha512() -> *const EVP_PKEY_ALG;
13569}
13570unsafe extern "C" {
13571    pub fn EVP_PKEY_set1_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13572}
13573unsafe extern "C" {
13574    pub fn EVP_PKEY_assign_RSA(pkey: *mut EVP_PKEY, key: *mut RSA) -> ::core::ffi::c_int;
13575}
13576unsafe extern "C" {
13577    pub fn EVP_PKEY_get0_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13578}
13579unsafe extern "C" {
13580    pub fn EVP_PKEY_get1_RSA(pkey: *const EVP_PKEY) -> *mut RSA;
13581}
13582unsafe extern "C" {
13583    pub fn EVP_PKEY_set1_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13584}
13585unsafe extern "C" {
13586    pub fn EVP_PKEY_assign_DSA(pkey: *mut EVP_PKEY, key: *mut DSA) -> ::core::ffi::c_int;
13587}
13588unsafe extern "C" {
13589    pub fn EVP_PKEY_get0_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13590}
13591unsafe extern "C" {
13592    pub fn EVP_PKEY_get1_DSA(pkey: *const EVP_PKEY) -> *mut DSA;
13593}
13594unsafe extern "C" {
13595    pub fn EVP_PKEY_set1_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13596}
13597unsafe extern "C" {
13598    pub fn EVP_PKEY_assign_EC_KEY(pkey: *mut EVP_PKEY, key: *mut EC_KEY) -> ::core::ffi::c_int;
13599}
13600unsafe extern "C" {
13601    pub fn EVP_PKEY_get0_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13602}
13603unsafe extern "C" {
13604    pub fn EVP_PKEY_get1_EC_KEY(pkey: *const EVP_PKEY) -> *mut EC_KEY;
13605}
13606unsafe extern "C" {
13607    pub fn EVP_PKEY_set1_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13608}
13609unsafe extern "C" {
13610    pub fn EVP_PKEY_assign_DH(pkey: *mut EVP_PKEY, key: *mut DH) -> ::core::ffi::c_int;
13611}
13612unsafe extern "C" {
13613    pub fn EVP_PKEY_get0_DH(pkey: *const EVP_PKEY) -> *mut DH;
13614}
13615unsafe extern "C" {
13616    pub fn EVP_PKEY_get1_DH(pkey: *const EVP_PKEY) -> *mut DH;
13617}
13618unsafe extern "C" {
13619    pub fn EVP_PKEY_from_subject_public_key_info(
13620        in_: *const u8,
13621        len: usize,
13622        algs: *const *const EVP_PKEY_ALG,
13623        num_algs: usize,
13624    ) -> *mut EVP_PKEY;
13625}
13626unsafe extern "C" {
13627    pub fn EVP_parse_public_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13628}
13629unsafe extern "C" {
13630    pub fn EVP_marshal_public_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13631}
13632unsafe extern "C" {
13633    pub fn EVP_PKEY_from_private_key_info(
13634        in_: *const u8,
13635        len: usize,
13636        algs: *const *const EVP_PKEY_ALG,
13637        num_algs: usize,
13638    ) -> *mut EVP_PKEY;
13639}
13640unsafe extern "C" {
13641    pub fn EVP_parse_private_key(cbs: *mut CBS) -> *mut EVP_PKEY;
13642}
13643unsafe extern "C" {
13644    pub fn EVP_marshal_private_key(cbb: *mut CBB, key: *const EVP_PKEY) -> ::core::ffi::c_int;
13645}
13646unsafe extern "C" {
13647    pub fn EVP_PKEY_from_raw_private_key(
13648        alg: *const EVP_PKEY_ALG,
13649        in_: *const u8,
13650        len: usize,
13651    ) -> *mut EVP_PKEY;
13652}
13653unsafe extern "C" {
13654    pub fn EVP_PKEY_from_private_seed(
13655        alg: *const EVP_PKEY_ALG,
13656        in_: *const u8,
13657        len: usize,
13658    ) -> *mut EVP_PKEY;
13659}
13660unsafe extern "C" {
13661    pub fn EVP_PKEY_from_raw_public_key(
13662        alg: *const EVP_PKEY_ALG,
13663        in_: *const u8,
13664        len: usize,
13665    ) -> *mut EVP_PKEY;
13666}
13667unsafe extern "C" {
13668    pub fn EVP_PKEY_get_raw_private_key(
13669        pkey: *const EVP_PKEY,
13670        out: *mut u8,
13671        out_len: *mut usize,
13672    ) -> ::core::ffi::c_int;
13673}
13674unsafe extern "C" {
13675    pub fn EVP_PKEY_get_private_seed(
13676        pkey: *const EVP_PKEY,
13677        out: *mut u8,
13678        out_len: *mut usize,
13679    ) -> ::core::ffi::c_int;
13680}
13681unsafe extern "C" {
13682    pub fn EVP_PKEY_get_raw_public_key(
13683        pkey: *const EVP_PKEY,
13684        out: *mut u8,
13685        out_len: *mut usize,
13686    ) -> ::core::ffi::c_int;
13687}
13688unsafe extern "C" {
13689    pub fn EVP_PKEY_generate_from_alg(alg: *const EVP_PKEY_ALG) -> *mut EVP_PKEY;
13690}
13691unsafe extern "C" {
13692    pub fn EVP_DigestSignInit(
13693        ctx: *mut EVP_MD_CTX,
13694        pctx: *mut *mut EVP_PKEY_CTX,
13695        type_: *const EVP_MD,
13696        e: *mut ENGINE,
13697        pkey: *mut EVP_PKEY,
13698    ) -> ::core::ffi::c_int;
13699}
13700unsafe extern "C" {
13701    pub fn EVP_DigestSignUpdate(
13702        ctx: *mut EVP_MD_CTX,
13703        data: *const ::core::ffi::c_void,
13704        len: usize,
13705    ) -> ::core::ffi::c_int;
13706}
13707unsafe extern "C" {
13708    pub fn EVP_DigestSignFinal(
13709        ctx: *mut EVP_MD_CTX,
13710        out_sig: *mut u8,
13711        out_sig_len: *mut usize,
13712    ) -> ::core::ffi::c_int;
13713}
13714unsafe extern "C" {
13715    pub fn EVP_DigestSign(
13716        ctx: *mut EVP_MD_CTX,
13717        out_sig: *mut u8,
13718        out_sig_len: *mut usize,
13719        data: *const u8,
13720        data_len: usize,
13721    ) -> ::core::ffi::c_int;
13722}
13723unsafe extern "C" {
13724    pub fn EVP_DigestVerifyInit(
13725        ctx: *mut EVP_MD_CTX,
13726        pctx: *mut *mut EVP_PKEY_CTX,
13727        type_: *const EVP_MD,
13728        e: *mut ENGINE,
13729        pkey: *mut EVP_PKEY,
13730    ) -> ::core::ffi::c_int;
13731}
13732unsafe extern "C" {
13733    pub fn EVP_DigestVerifyUpdate(
13734        ctx: *mut EVP_MD_CTX,
13735        data: *const ::core::ffi::c_void,
13736        len: usize,
13737    ) -> ::core::ffi::c_int;
13738}
13739unsafe extern "C" {
13740    pub fn EVP_DigestVerifyFinal(
13741        ctx: *mut EVP_MD_CTX,
13742        sig: *const u8,
13743        sig_len: usize,
13744    ) -> ::core::ffi::c_int;
13745}
13746unsafe extern "C" {
13747    pub fn EVP_DigestVerify(
13748        ctx: *mut EVP_MD_CTX,
13749        sig: *const u8,
13750        sig_len: usize,
13751        data: *const u8,
13752        len: usize,
13753    ) -> ::core::ffi::c_int;
13754}
13755unsafe extern "C" {
13756    pub fn EVP_SignInit_ex(
13757        ctx: *mut EVP_MD_CTX,
13758        type_: *const EVP_MD,
13759        impl_: *mut ENGINE,
13760    ) -> ::core::ffi::c_int;
13761}
13762unsafe extern "C" {
13763    pub fn EVP_SignInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13764}
13765unsafe extern "C" {
13766    pub fn EVP_SignUpdate(
13767        ctx: *mut EVP_MD_CTX,
13768        data: *const ::core::ffi::c_void,
13769        len: usize,
13770    ) -> ::core::ffi::c_int;
13771}
13772unsafe extern "C" {
13773    pub fn EVP_SignFinal(
13774        ctx: *const EVP_MD_CTX,
13775        sig: *mut u8,
13776        out_sig_len: *mut ::core::ffi::c_uint,
13777        pkey: *mut EVP_PKEY,
13778    ) -> ::core::ffi::c_int;
13779}
13780unsafe extern "C" {
13781    pub fn EVP_VerifyInit_ex(
13782        ctx: *mut EVP_MD_CTX,
13783        type_: *const EVP_MD,
13784        impl_: *mut ENGINE,
13785    ) -> ::core::ffi::c_int;
13786}
13787unsafe extern "C" {
13788    pub fn EVP_VerifyInit(ctx: *mut EVP_MD_CTX, type_: *const EVP_MD) -> ::core::ffi::c_int;
13789}
13790unsafe extern "C" {
13791    pub fn EVP_VerifyUpdate(
13792        ctx: *mut EVP_MD_CTX,
13793        data: *const ::core::ffi::c_void,
13794        len: usize,
13795    ) -> ::core::ffi::c_int;
13796}
13797unsafe extern "C" {
13798    pub fn EVP_VerifyFinal(
13799        ctx: *mut EVP_MD_CTX,
13800        sig: *const u8,
13801        sig_len: usize,
13802        pkey: *mut EVP_PKEY,
13803    ) -> ::core::ffi::c_int;
13804}
13805unsafe extern "C" {
13806    pub fn EVP_PKEY_print_public(
13807        out: *mut BIO,
13808        pkey: *const EVP_PKEY,
13809        indent: ::core::ffi::c_int,
13810        pctx: *mut ASN1_PCTX,
13811    ) -> ::core::ffi::c_int;
13812}
13813unsafe extern "C" {
13814    pub fn EVP_PKEY_print_private(
13815        out: *mut BIO,
13816        pkey: *const EVP_PKEY,
13817        indent: ::core::ffi::c_int,
13818        pctx: *mut ASN1_PCTX,
13819    ) -> ::core::ffi::c_int;
13820}
13821unsafe extern "C" {
13822    pub fn EVP_PKEY_print_params(
13823        out: *mut BIO,
13824        pkey: *const EVP_PKEY,
13825        indent: ::core::ffi::c_int,
13826        pctx: *mut ASN1_PCTX,
13827    ) -> ::core::ffi::c_int;
13828}
13829unsafe extern "C" {
13830    pub fn PKCS5_PBKDF2_HMAC(
13831        password: *const ::core::ffi::c_char,
13832        password_len: usize,
13833        salt: *const u8,
13834        salt_len: usize,
13835        iterations: u32,
13836        digest: *const EVP_MD,
13837        key_len: usize,
13838        out_key: *mut u8,
13839    ) -> ::core::ffi::c_int;
13840}
13841unsafe extern "C" {
13842    pub fn PKCS5_PBKDF2_HMAC_SHA1(
13843        password: *const ::core::ffi::c_char,
13844        password_len: usize,
13845        salt: *const u8,
13846        salt_len: usize,
13847        iterations: u32,
13848        key_len: usize,
13849        out_key: *mut u8,
13850    ) -> ::core::ffi::c_int;
13851}
13852unsafe extern "C" {
13853    pub fn EVP_PBE_scrypt(
13854        password: *const ::core::ffi::c_char,
13855        password_len: usize,
13856        salt: *const u8,
13857        salt_len: usize,
13858        N: u64,
13859        r: u64,
13860        p: u64,
13861        max_mem: usize,
13862        out_key: *mut u8,
13863        key_len: usize,
13864    ) -> ::core::ffi::c_int;
13865}
13866unsafe extern "C" {
13867    pub fn EVP_PKEY_CTX_new(pkey: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13868}
13869unsafe extern "C" {
13870    pub fn EVP_PKEY_CTX_new_id(id: ::core::ffi::c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX;
13871}
13872unsafe extern "C" {
13873    pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX);
13874}
13875unsafe extern "C" {
13876    pub fn EVP_PKEY_CTX_dup(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY_CTX;
13877}
13878unsafe extern "C" {
13879    pub fn EVP_PKEY_CTX_get0_pkey(ctx: *mut EVP_PKEY_CTX) -> *mut EVP_PKEY;
13880}
13881unsafe extern "C" {
13882    pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13883}
13884unsafe extern "C" {
13885    pub fn EVP_PKEY_sign(
13886        ctx: *mut EVP_PKEY_CTX,
13887        sig: *mut u8,
13888        sig_len: *mut usize,
13889        digest: *const u8,
13890        digest_len: usize,
13891    ) -> ::core::ffi::c_int;
13892}
13893unsafe extern "C" {
13894    pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13895}
13896unsafe extern "C" {
13897    pub fn EVP_PKEY_verify(
13898        ctx: *mut EVP_PKEY_CTX,
13899        sig: *const u8,
13900        sig_len: usize,
13901        digest: *const u8,
13902        digest_len: usize,
13903    ) -> ::core::ffi::c_int;
13904}
13905unsafe extern "C" {
13906    pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13907}
13908unsafe extern "C" {
13909    pub fn EVP_PKEY_encrypt(
13910        ctx: *mut EVP_PKEY_CTX,
13911        out: *mut u8,
13912        out_len: *mut usize,
13913        in_: *const u8,
13914        in_len: usize,
13915    ) -> ::core::ffi::c_int;
13916}
13917unsafe extern "C" {
13918    pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13919}
13920unsafe extern "C" {
13921    pub fn EVP_PKEY_decrypt(
13922        ctx: *mut EVP_PKEY_CTX,
13923        out: *mut u8,
13924        out_len: *mut usize,
13925        in_: *const u8,
13926        in_len: usize,
13927    ) -> ::core::ffi::c_int;
13928}
13929unsafe extern "C" {
13930    pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13931}
13932unsafe extern "C" {
13933    pub fn EVP_PKEY_verify_recover(
13934        ctx: *mut EVP_PKEY_CTX,
13935        out: *mut u8,
13936        out_len: *mut usize,
13937        sig: *const u8,
13938        siglen: usize,
13939    ) -> ::core::ffi::c_int;
13940}
13941unsafe extern "C" {
13942    pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13943}
13944unsafe extern "C" {
13945    pub fn EVP_PKEY_derive_set_peer(
13946        ctx: *mut EVP_PKEY_CTX,
13947        peer: *mut EVP_PKEY,
13948    ) -> ::core::ffi::c_int;
13949}
13950unsafe extern "C" {
13951    pub fn EVP_PKEY_derive(
13952        ctx: *mut EVP_PKEY_CTX,
13953        key: *mut u8,
13954        out_key_len: *mut usize,
13955    ) -> ::core::ffi::c_int;
13956}
13957unsafe extern "C" {
13958    pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13959}
13960unsafe extern "C" {
13961    pub fn EVP_PKEY_keygen(
13962        ctx: *mut EVP_PKEY_CTX,
13963        out_pkey: *mut *mut EVP_PKEY,
13964    ) -> ::core::ffi::c_int;
13965}
13966unsafe extern "C" {
13967    pub fn EVP_PKEY_paramgen_init(ctx: *mut EVP_PKEY_CTX) -> ::core::ffi::c_int;
13968}
13969unsafe extern "C" {
13970    pub fn EVP_PKEY_paramgen(
13971        ctx: *mut EVP_PKEY_CTX,
13972        out_pkey: *mut *mut EVP_PKEY,
13973    ) -> ::core::ffi::c_int;
13974}
13975unsafe extern "C" {
13976    pub fn EVP_PKEY_encapsulate_init(
13977        ctx: *mut EVP_PKEY_CTX,
13978        params: *const OSSL_PARAM,
13979    ) -> ::core::ffi::c_int;
13980}
13981unsafe extern "C" {
13982    pub fn EVP_PKEY_encapsulate(
13983        ctx: *mut EVP_PKEY_CTX,
13984        out_ciphertext: *mut u8,
13985        out_ciphertext_len: *mut usize,
13986        out_secret: *mut u8,
13987        out_secret_len: *mut usize,
13988    ) -> ::core::ffi::c_int;
13989}
13990unsafe extern "C" {
13991    pub fn EVP_PKEY_decapsulate_init(
13992        ctx: *mut EVP_PKEY_CTX,
13993        params: *const OSSL_PARAM,
13994    ) -> ::core::ffi::c_int;
13995}
13996unsafe extern "C" {
13997    pub fn EVP_PKEY_decapsulate(
13998        ctx: *mut EVP_PKEY_CTX,
13999        out_secret: *mut u8,
14000        out_secret_len: *mut usize,
14001        ciphertext: *const u8,
14002        ciphertext_len: usize,
14003    ) -> ::core::ffi::c_int;
14004}
14005unsafe extern "C" {
14006    pub fn EVP_PKEY_CTX_set_signature_md(
14007        ctx: *mut EVP_PKEY_CTX,
14008        md: *const EVP_MD,
14009    ) -> ::core::ffi::c_int;
14010}
14011unsafe extern "C" {
14012    pub fn EVP_PKEY_CTX_get_signature_md(
14013        ctx: *mut EVP_PKEY_CTX,
14014        out_md: *mut *const EVP_MD,
14015    ) -> ::core::ffi::c_int;
14016}
14017unsafe extern "C" {
14018    pub fn EVP_PKEY_CTX_set1_signature_context_string(
14019        ctx: *mut EVP_PKEY_CTX,
14020        context: *const u8,
14021        context_len: usize,
14022    ) -> ::core::ffi::c_int;
14023}
14024unsafe extern "C" {
14025    pub fn EVP_RSA_gen(bits: ::core::ffi::c_uint) -> *mut EVP_PKEY;
14026}
14027unsafe extern "C" {
14028    pub fn EVP_PKEY_from_rsa_public_key(
14029        alg: *const EVP_PKEY_ALG,
14030        in_: *const u8,
14031        len: usize,
14032    ) -> *mut EVP_PKEY;
14033}
14034unsafe extern "C" {
14035    pub fn EVP_PKEY_from_rsa_private_key(
14036        alg: *const EVP_PKEY_ALG,
14037        in_: *const u8,
14038        len: usize,
14039    ) -> *mut EVP_PKEY;
14040}
14041unsafe extern "C" {
14042    pub fn EVP_PKEY_marshal_rsa_public_key(
14043        cbb: *mut CBB,
14044        key: *const EVP_PKEY,
14045    ) -> ::core::ffi::c_int;
14046}
14047unsafe extern "C" {
14048    pub fn EVP_PKEY_marshal_rsa_private_key(
14049        cbb: *mut CBB,
14050        key: *const EVP_PKEY,
14051    ) -> ::core::ffi::c_int;
14052}
14053unsafe extern "C" {
14054    pub fn EVP_PKEY_CTX_set_rsa_padding(
14055        ctx: *mut EVP_PKEY_CTX,
14056        padding: ::core::ffi::c_int,
14057    ) -> ::core::ffi::c_int;
14058}
14059unsafe extern "C" {
14060    pub fn EVP_PKEY_CTX_get_rsa_padding(
14061        ctx: *mut EVP_PKEY_CTX,
14062        out_padding: *mut ::core::ffi::c_int,
14063    ) -> ::core::ffi::c_int;
14064}
14065unsafe extern "C" {
14066    pub fn EVP_PKEY_CTX_set_rsa_pss_saltlen(
14067        ctx: *mut EVP_PKEY_CTX,
14068        salt_len: ::core::ffi::c_int,
14069    ) -> ::core::ffi::c_int;
14070}
14071unsafe extern "C" {
14072    pub fn EVP_PKEY_CTX_get_rsa_pss_saltlen(
14073        ctx: *mut EVP_PKEY_CTX,
14074        out_salt_len: *mut ::core::ffi::c_int,
14075    ) -> ::core::ffi::c_int;
14076}
14077unsafe extern "C" {
14078    pub fn EVP_PKEY_CTX_set_rsa_keygen_bits(
14079        ctx: *mut EVP_PKEY_CTX,
14080        bits: ::core::ffi::c_int,
14081    ) -> ::core::ffi::c_int;
14082}
14083unsafe extern "C" {
14084    pub fn EVP_PKEY_CTX_set_rsa_keygen_pubexp(
14085        ctx: *mut EVP_PKEY_CTX,
14086        e: *mut BIGNUM,
14087    ) -> ::core::ffi::c_int;
14088}
14089unsafe extern "C" {
14090    pub fn EVP_PKEY_CTX_set_rsa_oaep_md(
14091        ctx: *mut EVP_PKEY_CTX,
14092        md: *const EVP_MD,
14093    ) -> ::core::ffi::c_int;
14094}
14095unsafe extern "C" {
14096    pub fn EVP_PKEY_CTX_get_rsa_oaep_md(
14097        ctx: *mut EVP_PKEY_CTX,
14098        out_md: *mut *const EVP_MD,
14099    ) -> ::core::ffi::c_int;
14100}
14101unsafe extern "C" {
14102    pub fn EVP_PKEY_CTX_set_rsa_mgf1_md(
14103        ctx: *mut EVP_PKEY_CTX,
14104        md: *const EVP_MD,
14105    ) -> ::core::ffi::c_int;
14106}
14107unsafe extern "C" {
14108    pub fn EVP_PKEY_CTX_get_rsa_mgf1_md(
14109        ctx: *mut EVP_PKEY_CTX,
14110        out_md: *mut *const EVP_MD,
14111    ) -> ::core::ffi::c_int;
14112}
14113unsafe extern "C" {
14114    pub fn EVP_PKEY_CTX_set0_rsa_oaep_label(
14115        ctx: *mut EVP_PKEY_CTX,
14116        label: *mut u8,
14117        label_len: usize,
14118    ) -> ::core::ffi::c_int;
14119}
14120unsafe extern "C" {
14121    pub fn EVP_PKEY_CTX_get0_rsa_oaep_label(
14122        ctx: *mut EVP_PKEY_CTX,
14123        out_label: *mut *const u8,
14124    ) -> ::core::ffi::c_int;
14125}
14126unsafe extern "C" {
14127    pub fn EVP_PKEY_from_ec_uncompressed_point(
14128        alg: *const EVP_PKEY_ALG,
14129        in_: *const u8,
14130        len: usize,
14131    ) -> *mut EVP_PKEY;
14132}
14133unsafe extern "C" {
14134    pub fn EVP_PKEY_from_ec_compressed_point(
14135        alg: *const EVP_PKEY_ALG,
14136        in_: *const u8,
14137        len: usize,
14138    ) -> *mut EVP_PKEY;
14139}
14140unsafe extern "C" {
14141    pub fn EVP_PKEY_marshal_ec_uncompressed_point(
14142        cbb: *mut CBB,
14143        key: *const EVP_PKEY,
14144    ) -> ::core::ffi::c_int;
14145}
14146unsafe extern "C" {
14147    pub fn EVP_PKEY_marshal_ec_compressed_point(
14148        cbb: *mut CBB,
14149        key: *const EVP_PKEY,
14150    ) -> ::core::ffi::c_int;
14151}
14152unsafe extern "C" {
14153    pub fn EVP_PKEY_from_ec_private_scalar(
14154        alg: *const EVP_PKEY_ALG,
14155        in_: *const u8,
14156        len: usize,
14157    ) -> *mut EVP_PKEY;
14158}
14159unsafe extern "C" {
14160    pub fn EVP_PKEY_marshal_ec_private_scalar(
14161        cbb: *mut CBB,
14162        key: *const EVP_PKEY,
14163    ) -> ::core::ffi::c_int;
14164}
14165unsafe extern "C" {
14166    pub fn EVP_PKEY_get_ec_curve_nid(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14167}
14168unsafe extern "C" {
14169    pub fn EVP_PKEY_get_ec_point_conv_form(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14170}
14171unsafe extern "C" {
14172    pub fn EVP_PKEY_CTX_set_ec_paramgen_curve_nid(
14173        ctx: *mut EVP_PKEY_CTX,
14174        nid: ::core::ffi::c_int,
14175    ) -> ::core::ffi::c_int;
14176}
14177unsafe extern "C" {
14178    pub fn EVP_PKEY_CTX_set_dh_pad(
14179        ctx: *mut EVP_PKEY_CTX,
14180        pad: ::core::ffi::c_int,
14181    ) -> ::core::ffi::c_int;
14182}
14183unsafe extern "C" {
14184    pub fn EVP_kem_ml_kem_768() -> *const EVP_KEM;
14185}
14186unsafe extern "C" {
14187    pub fn EVP_kem_ml_kem_1024() -> *const EVP_KEM;
14188}
14189unsafe extern "C" {
14190    pub fn EVP_kem_xwing() -> *const EVP_KEM;
14191}
14192unsafe extern "C" {
14193    pub fn EVP_KEM_ciphertext_len(kem: *const EVP_KEM) -> usize;
14194}
14195unsafe extern "C" {
14196    pub fn EVP_KEM_secret_len(kem: *const EVP_KEM) -> usize;
14197}
14198unsafe extern "C" {
14199    pub fn EVP_KEM_encap(
14200        kem: *const EVP_KEM,
14201        out_ciphertext: *mut u8,
14202        ciphertext_len: usize,
14203        out_secret: *mut u8,
14204        secret_len: usize,
14205        peer_key: *const EVP_PKEY,
14206    ) -> ::core::ffi::c_int;
14207}
14208unsafe extern "C" {
14209    pub fn EVP_KEM_decap(
14210        kem: *const EVP_KEM,
14211        out_secret: *mut u8,
14212        secret_len: usize,
14213        ciphertext: *const u8,
14214        ciphertext_len: usize,
14215        key: *const EVP_PKEY,
14216    ) -> ::core::ffi::c_int;
14217}
14218unsafe extern "C" {
14219    pub fn EVP_PKEY_get0(pkey: *const EVP_PKEY) -> *mut ::core::ffi::c_void;
14220}
14221unsafe extern "C" {
14222    pub fn OpenSSL_add_all_algorithms();
14223}
14224unsafe extern "C" {
14225    pub fn OPENSSL_add_all_algorithms_conf();
14226}
14227unsafe extern "C" {
14228    pub fn OpenSSL_add_all_ciphers();
14229}
14230unsafe extern "C" {
14231    pub fn OpenSSL_add_all_digests();
14232}
14233unsafe extern "C" {
14234    pub fn EVP_cleanup();
14235}
14236unsafe extern "C" {
14237    pub fn EVP_default_properties_is_fips_enabled(libctx: *mut OSSL_LIB_CTX) -> ::core::ffi::c_int;
14238}
14239unsafe extern "C" {
14240    pub fn EVP_CIPHER_do_all_sorted(
14241        callback: ::core::option::Option<
14242            unsafe extern "C" fn(
14243                cipher: *const EVP_CIPHER,
14244                name: *const ::core::ffi::c_char,
14245                unused: *const ::core::ffi::c_char,
14246                arg: *mut ::core::ffi::c_void,
14247            ),
14248        >,
14249        arg: *mut ::core::ffi::c_void,
14250    );
14251}
14252unsafe extern "C" {
14253    pub fn EVP_MD_do_all_sorted(
14254        callback: ::core::option::Option<
14255            unsafe extern "C" fn(
14256                md: *const EVP_MD,
14257                name: *const ::core::ffi::c_char,
14258                unused: *const ::core::ffi::c_char,
14259                arg: *mut ::core::ffi::c_void,
14260            ),
14261        >,
14262        arg: *mut ::core::ffi::c_void,
14263    );
14264}
14265unsafe extern "C" {
14266    pub fn EVP_MD_do_all(
14267        callback: ::core::option::Option<
14268            unsafe extern "C" fn(
14269                md: *const EVP_MD,
14270                name: *const ::core::ffi::c_char,
14271                unused: *const ::core::ffi::c_char,
14272                arg: *mut ::core::ffi::c_void,
14273            ),
14274        >,
14275        arg: *mut ::core::ffi::c_void,
14276    );
14277}
14278unsafe extern "C" {
14279    pub fn EVP_MD_do_all_provided(
14280        libctx: *mut OSSL_LIB_CTX,
14281        callback: ::core::option::Option<
14282            unsafe extern "C" fn(md: *mut EVP_MD, arg: *mut ::core::ffi::c_void),
14283        >,
14284        arg: *mut ::core::ffi::c_void,
14285    );
14286}
14287unsafe extern "C" {
14288    pub fn i2d_PrivateKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14289}
14290unsafe extern "C" {
14291    pub fn i2d_PublicKey(key: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14292}
14293unsafe extern "C" {
14294    pub fn d2i_PrivateKey(
14295        type_: ::core::ffi::c_int,
14296        out: *mut *mut EVP_PKEY,
14297        inp: *mut *const u8,
14298        len: ::core::ffi::c_long,
14299    ) -> *mut EVP_PKEY;
14300}
14301unsafe extern "C" {
14302    pub fn d2i_AutoPrivateKey(
14303        out: *mut *mut EVP_PKEY,
14304        inp: *mut *const u8,
14305        len: ::core::ffi::c_long,
14306    ) -> *mut EVP_PKEY;
14307}
14308unsafe extern "C" {
14309    pub fn d2i_PublicKey(
14310        type_: ::core::ffi::c_int,
14311        out: *mut *mut EVP_PKEY,
14312        inp: *mut *const u8,
14313        len: ::core::ffi::c_long,
14314    ) -> *mut EVP_PKEY;
14315}
14316unsafe extern "C" {
14317    pub fn EVP_PKEY_CTX_set_ec_param_enc(
14318        ctx: *mut EVP_PKEY_CTX,
14319        encoding: ::core::ffi::c_int,
14320    ) -> ::core::ffi::c_int;
14321}
14322unsafe extern "C" {
14323    pub fn EVP_PKEY_set_type(pkey: *mut EVP_PKEY, type_: ::core::ffi::c_int) -> ::core::ffi::c_int;
14324}
14325unsafe extern "C" {
14326    pub fn EVP_PKEY_set1_tls_encodedpoint(
14327        pkey: *mut EVP_PKEY,
14328        in_: *const u8,
14329        len: usize,
14330    ) -> ::core::ffi::c_int;
14331}
14332unsafe extern "C" {
14333    pub fn EVP_PKEY_get1_tls_encodedpoint(pkey: *const EVP_PKEY, out_ptr: *mut *mut u8) -> usize;
14334}
14335unsafe extern "C" {
14336    pub fn EVP_PKEY_base_id(pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
14337}
14338unsafe extern "C" {
14339    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_md(
14340        ctx: *mut EVP_PKEY_CTX,
14341        md: *const EVP_MD,
14342    ) -> ::core::ffi::c_int;
14343}
14344unsafe extern "C" {
14345    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(
14346        ctx: *mut EVP_PKEY_CTX,
14347        salt_len: ::core::ffi::c_int,
14348    ) -> ::core::ffi::c_int;
14349}
14350unsafe extern "C" {
14351    pub fn EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(
14352        ctx: *mut EVP_PKEY_CTX,
14353        md: *const EVP_MD,
14354    ) -> ::core::ffi::c_int;
14355}
14356unsafe extern "C" {
14357    pub fn i2d_PUBKEY(pkey: *const EVP_PKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14358}
14359unsafe extern "C" {
14360    pub fn d2i_PUBKEY(
14361        out: *mut *mut EVP_PKEY,
14362        inp: *mut *const u8,
14363        len: ::core::ffi::c_long,
14364    ) -> *mut EVP_PKEY;
14365}
14366unsafe extern "C" {
14367    pub fn i2d_RSA_PUBKEY(rsa: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14368}
14369unsafe extern "C" {
14370    pub fn d2i_RSA_PUBKEY(
14371        out: *mut *mut RSA,
14372        inp: *mut *const u8,
14373        len: ::core::ffi::c_long,
14374    ) -> *mut RSA;
14375}
14376unsafe extern "C" {
14377    pub fn i2d_DSA_PUBKEY(dsa: *const DSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
14378}
14379unsafe extern "C" {
14380    pub fn d2i_DSA_PUBKEY(
14381        out: *mut *mut DSA,
14382        inp: *mut *const u8,
14383        len: ::core::ffi::c_long,
14384    ) -> *mut DSA;
14385}
14386unsafe extern "C" {
14387    pub fn i2d_EC_PUBKEY(ec_key: *const EC_KEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
14388}
14389unsafe extern "C" {
14390    pub fn d2i_EC_PUBKEY(
14391        out: *mut *mut EC_KEY,
14392        inp: *mut *const u8,
14393        len: ::core::ffi::c_long,
14394    ) -> *mut EC_KEY;
14395}
14396unsafe extern "C" {
14397    pub fn EVP_PKEY_CTX_set_dsa_paramgen_bits(
14398        ctx: *mut EVP_PKEY_CTX,
14399        nbits: ::core::ffi::c_int,
14400    ) -> ::core::ffi::c_int;
14401}
14402unsafe extern "C" {
14403    pub fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(
14404        ctx: *mut EVP_PKEY_CTX,
14405        qbits: ::core::ffi::c_int,
14406    ) -> ::core::ffi::c_int;
14407}
14408unsafe extern "C" {
14409    pub fn EVP_PKEY_assign(
14410        pkey: *mut EVP_PKEY,
14411        type_: ::core::ffi::c_int,
14412        key: *mut ::core::ffi::c_void,
14413    ) -> ::core::ffi::c_int;
14414}
14415unsafe extern "C" {
14416    pub fn EVP_PKEY_type(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
14417}
14418unsafe extern "C" {
14419    pub fn EVP_PKEY_new_raw_private_key(
14420        type_: ::core::ffi::c_int,
14421        unused: *mut ENGINE,
14422        in_: *const u8,
14423        len: usize,
14424    ) -> *mut EVP_PKEY;
14425}
14426unsafe extern "C" {
14427    pub fn EVP_PKEY_new_raw_public_key(
14428        type_: ::core::ffi::c_int,
14429        unused: *mut ENGINE,
14430        in_: *const u8,
14431        len: usize,
14432    ) -> *mut EVP_PKEY;
14433}
14434unsafe extern "C" {
14435    pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14436}
14437unsafe extern "C" {
14438    pub fn EVP_PKEY_cmp_parameters(a: *const EVP_PKEY, b: *const EVP_PKEY) -> ::core::ffi::c_int;
14439}
14440unsafe extern "C" {
14441    pub fn HKDF(
14442        out_key: *mut u8,
14443        out_len: usize,
14444        digest: *const EVP_MD,
14445        secret: *const u8,
14446        secret_len: usize,
14447        salt: *const u8,
14448        salt_len: usize,
14449        info: *const u8,
14450        info_len: usize,
14451    ) -> ::core::ffi::c_int;
14452}
14453unsafe extern "C" {
14454    pub fn HKDF_extract(
14455        out_key: *mut u8,
14456        out_len: *mut usize,
14457        digest: *const EVP_MD,
14458        secret: *const u8,
14459        secret_len: usize,
14460        salt: *const u8,
14461        salt_len: usize,
14462    ) -> ::core::ffi::c_int;
14463}
14464unsafe extern "C" {
14465    pub fn HKDF_expand(
14466        out_key: *mut u8,
14467        out_len: usize,
14468        digest: *const EVP_MD,
14469        prk: *const u8,
14470        prk_len: usize,
14471        info: *const u8,
14472        info_len: usize,
14473    ) -> ::core::ffi::c_int;
14474}
14475unsafe extern "C" {
14476    pub fn HMAC(
14477        evp_md: *const EVP_MD,
14478        key: *const ::core::ffi::c_void,
14479        key_len: usize,
14480        data: *const u8,
14481        data_len: usize,
14482        out: *mut u8,
14483        out_len: *mut ::core::ffi::c_uint,
14484    ) -> *mut u8;
14485}
14486unsafe extern "C" {
14487    pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
14488}
14489unsafe extern "C" {
14490    pub fn HMAC_CTX_new() -> *mut HMAC_CTX;
14491}
14492unsafe extern "C" {
14493    pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
14494}
14495unsafe extern "C" {
14496    pub fn HMAC_CTX_cleanse(ctx: *mut HMAC_CTX);
14497}
14498unsafe extern "C" {
14499    pub fn HMAC_CTX_free(ctx: *mut HMAC_CTX);
14500}
14501unsafe extern "C" {
14502    pub fn HMAC_Init_ex(
14503        ctx: *mut HMAC_CTX,
14504        key: *const ::core::ffi::c_void,
14505        key_len: usize,
14506        md: *const EVP_MD,
14507        impl_: *mut ENGINE,
14508    ) -> ::core::ffi::c_int;
14509}
14510unsafe extern "C" {
14511    pub fn HMAC_Update(ctx: *mut HMAC_CTX, data: *const u8, data_len: usize) -> ::core::ffi::c_int;
14512}
14513unsafe extern "C" {
14514    pub fn HMAC_Final(
14515        ctx: *mut HMAC_CTX,
14516        out: *mut u8,
14517        out_len: *mut ::core::ffi::c_uint,
14518    ) -> ::core::ffi::c_int;
14519}
14520unsafe extern "C" {
14521    pub fn HMAC_size(ctx: *const HMAC_CTX) -> usize;
14522}
14523unsafe extern "C" {
14524    pub fn HMAC_CTX_get_md(ctx: *const HMAC_CTX) -> *const EVP_MD;
14525}
14526unsafe extern "C" {
14527    pub fn HMAC_CTX_copy_ex(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14528}
14529unsafe extern "C" {
14530    pub fn HMAC_CTX_reset(ctx: *mut HMAC_CTX);
14531}
14532unsafe extern "C" {
14533    pub fn HMAC_Init(
14534        ctx: *mut HMAC_CTX,
14535        key: *const ::core::ffi::c_void,
14536        key_len: ::core::ffi::c_int,
14537        md: *const EVP_MD,
14538    ) -> ::core::ffi::c_int;
14539}
14540unsafe extern "C" {
14541    pub fn HMAC_CTX_copy(dest: *mut HMAC_CTX, src: *const HMAC_CTX) -> ::core::ffi::c_int;
14542}
14543#[repr(C)]
14544#[derive(Copy, Clone)]
14545pub struct hmac_ctx_st {
14546    pub md: *const EVP_MD,
14547    pub md_ctx: EVP_MD_CTX,
14548    pub i_ctx: EVP_MD_CTX,
14549    pub o_ctx: EVP_MD_CTX,
14550}
14551unsafe extern "C" {
14552    pub fn EVP_hpke_x25519_hkdf_sha256() -> *const EVP_HPKE_KEM;
14553}
14554unsafe extern "C" {
14555    pub fn EVP_hpke_p256_hkdf_sha256() -> *const EVP_HPKE_KEM;
14556}
14557unsafe extern "C" {
14558    pub fn EVP_hpke_xwing() -> *const EVP_HPKE_KEM;
14559}
14560unsafe extern "C" {
14561    pub fn EVP_hpke_mlkem768() -> *const EVP_HPKE_KEM;
14562}
14563unsafe extern "C" {
14564    pub fn EVP_hpke_mlkem1024() -> *const EVP_HPKE_KEM;
14565}
14566unsafe extern "C" {
14567    pub fn EVP_HPKE_KEM_id(kem: *const EVP_HPKE_KEM) -> u16;
14568}
14569unsafe extern "C" {
14570    pub fn EVP_HPKE_KEM_public_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14571}
14572unsafe extern "C" {
14573    pub fn EVP_HPKE_KEM_private_key_len(kem: *const EVP_HPKE_KEM) -> usize;
14574}
14575unsafe extern "C" {
14576    pub fn EVP_HPKE_KEM_enc_len(kem: *const EVP_HPKE_KEM) -> usize;
14577}
14578unsafe extern "C" {
14579    pub fn EVP_hpke_hkdf_sha256() -> *const EVP_HPKE_KDF;
14580}
14581unsafe extern "C" {
14582    pub fn EVP_hpke_hkdf_sha384() -> *const EVP_HPKE_KDF;
14583}
14584unsafe extern "C" {
14585    pub fn EVP_HPKE_KDF_id(kdf: *const EVP_HPKE_KDF) -> u16;
14586}
14587unsafe extern "C" {
14588    pub fn EVP_HPKE_KDF_hkdf_md(kdf: *const EVP_HPKE_KDF) -> *const EVP_MD;
14589}
14590unsafe extern "C" {
14591    pub fn EVP_hpke_aes_128_gcm() -> *const EVP_HPKE_AEAD;
14592}
14593unsafe extern "C" {
14594    pub fn EVP_hpke_aes_256_gcm() -> *const EVP_HPKE_AEAD;
14595}
14596unsafe extern "C" {
14597    pub fn EVP_hpke_chacha20_poly1305() -> *const EVP_HPKE_AEAD;
14598}
14599unsafe extern "C" {
14600    pub fn EVP_HPKE_AEAD_id(aead: *const EVP_HPKE_AEAD) -> u16;
14601}
14602unsafe extern "C" {
14603    pub fn EVP_HPKE_AEAD_aead(aead: *const EVP_HPKE_AEAD) -> *const EVP_AEAD;
14604}
14605unsafe extern "C" {
14606    pub fn EVP_HPKE_KEY_zero(key: *mut EVP_HPKE_KEY);
14607}
14608unsafe extern "C" {
14609    pub fn EVP_HPKE_KEY_cleanup(key: *mut EVP_HPKE_KEY);
14610}
14611unsafe extern "C" {
14612    pub fn EVP_HPKE_KEY_new() -> *mut EVP_HPKE_KEY;
14613}
14614unsafe extern "C" {
14615    pub fn EVP_HPKE_KEY_free(key: *mut EVP_HPKE_KEY);
14616}
14617unsafe extern "C" {
14618    pub fn EVP_HPKE_KEY_copy(
14619        dst: *mut EVP_HPKE_KEY,
14620        src: *const EVP_HPKE_KEY,
14621    ) -> ::core::ffi::c_int;
14622}
14623unsafe extern "C" {
14624    pub fn EVP_HPKE_KEY_move(out: *mut EVP_HPKE_KEY, in_: *mut EVP_HPKE_KEY);
14625}
14626unsafe extern "C" {
14627    pub fn EVP_HPKE_KEY_init(
14628        key: *mut EVP_HPKE_KEY,
14629        kem: *const EVP_HPKE_KEM,
14630        priv_key: *const u8,
14631        priv_key_len: usize,
14632    ) -> ::core::ffi::c_int;
14633}
14634unsafe extern "C" {
14635    pub fn EVP_HPKE_KEY_generate(
14636        key: *mut EVP_HPKE_KEY,
14637        kem: *const EVP_HPKE_KEM,
14638    ) -> ::core::ffi::c_int;
14639}
14640unsafe extern "C" {
14641    pub fn EVP_HPKE_KEY_derive(
14642        key: *mut EVP_HPKE_KEY,
14643        kem: *const EVP_HPKE_KEM,
14644        ikm: *const u8,
14645        ikm_len: usize,
14646    ) -> ::core::ffi::c_int;
14647}
14648unsafe extern "C" {
14649    pub fn EVP_HPKE_KEY_kem(key: *const EVP_HPKE_KEY) -> *const EVP_HPKE_KEM;
14650}
14651unsafe extern "C" {
14652    pub fn EVP_HPKE_KEY_public_key(
14653        key: *const EVP_HPKE_KEY,
14654        out: *mut u8,
14655        out_len: *mut usize,
14656        max_out: usize,
14657    ) -> ::core::ffi::c_int;
14658}
14659unsafe extern "C" {
14660    pub fn EVP_HPKE_KEY_private_key(
14661        key: *const EVP_HPKE_KEY,
14662        out: *mut u8,
14663        out_len: *mut usize,
14664        max_out: usize,
14665    ) -> ::core::ffi::c_int;
14666}
14667unsafe extern "C" {
14668    pub fn EVP_HPKE_CTX_zero(ctx: *mut EVP_HPKE_CTX);
14669}
14670unsafe extern "C" {
14671    pub fn EVP_HPKE_CTX_cleanup(ctx: *mut EVP_HPKE_CTX);
14672}
14673unsafe extern "C" {
14674    pub fn EVP_HPKE_CTX_new() -> *mut EVP_HPKE_CTX;
14675}
14676unsafe extern "C" {
14677    pub fn EVP_HPKE_CTX_free(ctx: *mut EVP_HPKE_CTX);
14678}
14679unsafe extern "C" {
14680    pub fn EVP_HPKE_CTX_setup_sender(
14681        ctx: *mut EVP_HPKE_CTX,
14682        out_enc: *mut u8,
14683        out_enc_len: *mut usize,
14684        max_enc: usize,
14685        kem: *const EVP_HPKE_KEM,
14686        kdf: *const EVP_HPKE_KDF,
14687        aead: *const EVP_HPKE_AEAD,
14688        peer_public_key: *const u8,
14689        peer_public_key_len: usize,
14690        info: *const u8,
14691        info_len: usize,
14692    ) -> ::core::ffi::c_int;
14693}
14694unsafe extern "C" {
14695    pub fn EVP_HPKE_CTX_setup_sender_with_seed_for_testing(
14696        ctx: *mut EVP_HPKE_CTX,
14697        out_enc: *mut u8,
14698        out_enc_len: *mut usize,
14699        max_enc: usize,
14700        kem: *const EVP_HPKE_KEM,
14701        kdf: *const EVP_HPKE_KDF,
14702        aead: *const EVP_HPKE_AEAD,
14703        peer_public_key: *const u8,
14704        peer_public_key_len: usize,
14705        info: *const u8,
14706        info_len: usize,
14707        seed: *const u8,
14708        seed_len: usize,
14709    ) -> ::core::ffi::c_int;
14710}
14711unsafe extern "C" {
14712    pub fn EVP_HPKE_CTX_setup_recipient(
14713        ctx: *mut EVP_HPKE_CTX,
14714        key: *const EVP_HPKE_KEY,
14715        kdf: *const EVP_HPKE_KDF,
14716        aead: *const EVP_HPKE_AEAD,
14717        enc: *const u8,
14718        enc_len: usize,
14719        info: *const u8,
14720        info_len: usize,
14721    ) -> ::core::ffi::c_int;
14722}
14723unsafe extern "C" {
14724    pub fn EVP_HPKE_CTX_setup_auth_sender(
14725        ctx: *mut EVP_HPKE_CTX,
14726        out_enc: *mut u8,
14727        out_enc_len: *mut usize,
14728        max_enc: usize,
14729        key: *const EVP_HPKE_KEY,
14730        kdf: *const EVP_HPKE_KDF,
14731        aead: *const EVP_HPKE_AEAD,
14732        peer_public_key: *const u8,
14733        peer_public_key_len: usize,
14734        info: *const u8,
14735        info_len: usize,
14736    ) -> ::core::ffi::c_int;
14737}
14738unsafe extern "C" {
14739    pub fn EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing(
14740        ctx: *mut EVP_HPKE_CTX,
14741        out_enc: *mut u8,
14742        out_enc_len: *mut usize,
14743        max_enc: usize,
14744        key: *const EVP_HPKE_KEY,
14745        kdf: *const EVP_HPKE_KDF,
14746        aead: *const EVP_HPKE_AEAD,
14747        peer_public_key: *const u8,
14748        peer_public_key_len: usize,
14749        info: *const u8,
14750        info_len: usize,
14751        seed: *const u8,
14752        seed_len: usize,
14753    ) -> ::core::ffi::c_int;
14754}
14755unsafe extern "C" {
14756    pub fn EVP_HPKE_CTX_setup_auth_recipient(
14757        ctx: *mut EVP_HPKE_CTX,
14758        key: *const EVP_HPKE_KEY,
14759        kdf: *const EVP_HPKE_KDF,
14760        aead: *const EVP_HPKE_AEAD,
14761        enc: *const u8,
14762        enc_len: usize,
14763        info: *const u8,
14764        info_len: usize,
14765        peer_public_key: *const u8,
14766        peer_public_key_len: usize,
14767    ) -> ::core::ffi::c_int;
14768}
14769unsafe extern "C" {
14770    pub fn EVP_HPKE_CTX_open(
14771        ctx: *mut EVP_HPKE_CTX,
14772        out: *mut u8,
14773        out_len: *mut usize,
14774        max_out_len: usize,
14775        in_: *const u8,
14776        in_len: usize,
14777        ad: *const u8,
14778        ad_len: usize,
14779    ) -> ::core::ffi::c_int;
14780}
14781unsafe extern "C" {
14782    pub fn EVP_HPKE_CTX_seal(
14783        ctx: *mut EVP_HPKE_CTX,
14784        out: *mut u8,
14785        out_len: *mut usize,
14786        max_out_len: usize,
14787        in_: *const u8,
14788        in_len: usize,
14789        ad: *const u8,
14790        ad_len: usize,
14791    ) -> ::core::ffi::c_int;
14792}
14793unsafe extern "C" {
14794    pub fn EVP_HPKE_CTX_export(
14795        ctx: *const EVP_HPKE_CTX,
14796        out: *mut u8,
14797        secret_len: usize,
14798        context: *const u8,
14799        context_len: usize,
14800    ) -> ::core::ffi::c_int;
14801}
14802unsafe extern "C" {
14803    pub fn EVP_HPKE_CTX_max_overhead(ctx: *const EVP_HPKE_CTX) -> usize;
14804}
14805unsafe extern "C" {
14806    pub fn EVP_HPKE_CTX_kem(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KEM;
14807}
14808unsafe extern "C" {
14809    pub fn EVP_HPKE_CTX_aead(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_AEAD;
14810}
14811unsafe extern "C" {
14812    pub fn EVP_HPKE_CTX_kdf(ctx: *const EVP_HPKE_CTX) -> *const EVP_HPKE_KDF;
14813}
14814#[repr(C)]
14815#[derive(Copy, Clone)]
14816pub struct evp_hpke_ctx_st {
14817    pub kem: *const EVP_HPKE_KEM,
14818    pub aead: *const EVP_HPKE_AEAD,
14819    pub kdf: *const EVP_HPKE_KDF,
14820    pub aead_ctx: EVP_AEAD_CTX,
14821    pub base_nonce: [u8; 24usize],
14822    pub exporter_secret: [u8; 64usize],
14823    pub seq: u64,
14824    pub is_sender: ::core::ffi::c_int,
14825}
14826#[repr(C)]
14827#[derive(Debug, Copy, Clone)]
14828pub struct evp_hpke_key_st {
14829    pub kem: *const EVP_HPKE_KEM,
14830    pub private_key: [u8; 64usize],
14831    pub public_key: [u8; 1568usize],
14832}
14833#[repr(C)]
14834#[derive(Debug, Copy, Clone)]
14835pub struct HRSS_private_key {
14836    pub opaque: [u8; 1808usize],
14837}
14838#[repr(C)]
14839#[derive(Debug, Copy, Clone)]
14840pub struct HRSS_public_key {
14841    pub opaque: [u8; 1424usize],
14842}
14843unsafe extern "C" {
14844    pub fn HRSS_generate_key(
14845        out_pub: *mut HRSS_public_key,
14846        out_priv: *mut HRSS_private_key,
14847        input: *const u8,
14848    ) -> ::core::ffi::c_int;
14849}
14850unsafe extern "C" {
14851    pub fn HRSS_encap(
14852        out_ciphertext: *mut u8,
14853        out_shared_key: *mut u8,
14854        in_pub: *const HRSS_public_key,
14855        in_: *const u8,
14856    ) -> ::core::ffi::c_int;
14857}
14858unsafe extern "C" {
14859    pub fn HRSS_decap(
14860        out_shared_key: *mut u8,
14861        in_priv: *const HRSS_private_key,
14862        ciphertext: *const u8,
14863        ciphertext_len: usize,
14864    ) -> ::core::ffi::c_int;
14865}
14866unsafe extern "C" {
14867    pub fn HRSS_marshal_public_key(out: *mut u8, in_pub: *const HRSS_public_key);
14868}
14869unsafe extern "C" {
14870    pub fn HRSS_parse_public_key(out: *mut HRSS_public_key, in_: *const u8) -> ::core::ffi::c_int;
14871}
14872unsafe extern "C" {
14873    pub fn EVP_PKEY_CTX_hkdf_mode(
14874        ctx: *mut EVP_PKEY_CTX,
14875        mode: ::core::ffi::c_int,
14876    ) -> ::core::ffi::c_int;
14877}
14878unsafe extern "C" {
14879    pub fn EVP_PKEY_CTX_set_hkdf_md(
14880        ctx: *mut EVP_PKEY_CTX,
14881        md: *const EVP_MD,
14882    ) -> ::core::ffi::c_int;
14883}
14884unsafe extern "C" {
14885    pub fn EVP_PKEY_CTX_set1_hkdf_key(
14886        ctx: *mut EVP_PKEY_CTX,
14887        key: *const u8,
14888        key_len: usize,
14889    ) -> ::core::ffi::c_int;
14890}
14891unsafe extern "C" {
14892    pub fn EVP_PKEY_CTX_set1_hkdf_salt(
14893        ctx: *mut EVP_PKEY_CTX,
14894        salt: *const u8,
14895        salt_len: usize,
14896    ) -> ::core::ffi::c_int;
14897}
14898unsafe extern "C" {
14899    pub fn EVP_PKEY_CTX_add1_hkdf_info(
14900        ctx: *mut EVP_PKEY_CTX,
14901        info: *const u8,
14902        info_len: usize,
14903    ) -> ::core::ffi::c_int;
14904}
14905unsafe extern "C" {
14906    pub fn MD4_Init(md4: *mut MD4_CTX) -> ::core::ffi::c_int;
14907}
14908unsafe extern "C" {
14909    pub fn MD4_Update(
14910        md4: *mut MD4_CTX,
14911        data: *const ::core::ffi::c_void,
14912        len: usize,
14913    ) -> ::core::ffi::c_int;
14914}
14915unsafe extern "C" {
14916    pub fn MD4_Final(out: *mut u8, md4: *mut MD4_CTX) -> ::core::ffi::c_int;
14917}
14918unsafe extern "C" {
14919    pub fn MD4(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
14920}
14921unsafe extern "C" {
14922    pub fn MD4_Transform(md4: *mut MD4_CTX, block: *const u8);
14923}
14924#[repr(C)]
14925#[derive(Debug, Copy, Clone)]
14926pub struct md4_state_st {
14927    pub h: [u32; 4usize],
14928    pub Nl: u32,
14929    pub Nh: u32,
14930    pub data: [u8; 64usize],
14931    pub num: ::core::ffi::c_uint,
14932}
14933unsafe extern "C" {
14934    pub fn MD5_Init(md5: *mut MD5_CTX) -> ::core::ffi::c_int;
14935}
14936unsafe extern "C" {
14937    pub fn MD5_Update(
14938        md5: *mut MD5_CTX,
14939        data: *const ::core::ffi::c_void,
14940        len: usize,
14941    ) -> ::core::ffi::c_int;
14942}
14943unsafe extern "C" {
14944    pub fn MD5_Final(out: *mut u8, md5: *mut MD5_CTX) -> ::core::ffi::c_int;
14945}
14946unsafe extern "C" {
14947    pub fn MD5(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
14948}
14949unsafe extern "C" {
14950    pub fn MD5_Transform(md5: *mut MD5_CTX, block: *const u8);
14951}
14952#[repr(C)]
14953#[derive(Debug, Copy, Clone)]
14954pub struct md5_state_st {
14955    pub h: [u32; 4usize],
14956    pub Nl: u32,
14957    pub Nh: u32,
14958    pub data: [u8; 64usize],
14959    pub num: ::core::ffi::c_uint,
14960}
14961#[repr(C)]
14962#[derive(Copy, Clone)]
14963pub struct MLDSA65_private_key {
14964    pub opaque: MLDSA65_private_key__bindgen_ty_1,
14965}
14966#[repr(C)]
14967#[derive(Copy, Clone)]
14968pub union MLDSA65_private_key__bindgen_ty_1 {
14969    pub bytes: [u8; 23680usize],
14970    pub alignment: u32,
14971}
14972#[repr(C)]
14973#[derive(Copy, Clone)]
14974pub struct MLDSA65_public_key {
14975    pub opaque: MLDSA65_public_key__bindgen_ty_1,
14976}
14977#[repr(C)]
14978#[derive(Copy, Clone)]
14979pub union MLDSA65_public_key__bindgen_ty_1 {
14980    pub bytes: [u8; 6240usize],
14981    pub alignment: u32,
14982}
14983#[repr(C)]
14984#[derive(Copy, Clone)]
14985pub struct MLDSA65_prehash {
14986    pub opaque: MLDSA65_prehash__bindgen_ty_1,
14987}
14988#[repr(C)]
14989#[derive(Copy, Clone)]
14990pub union MLDSA65_prehash__bindgen_ty_1 {
14991    pub bytes: [u8; 240usize],
14992    pub alignment: u64,
14993}
14994unsafe extern "C" {
14995    pub fn MLDSA65_generate_key(
14996        out_encoded_public_key: *mut u8,
14997        out_seed: *mut u8,
14998        out_private_key: *mut MLDSA65_private_key,
14999    ) -> ::core::ffi::c_int;
15000}
15001unsafe extern "C" {
15002    pub fn MLDSA65_private_key_from_seed(
15003        out_private_key: *mut MLDSA65_private_key,
15004        seed: *const u8,
15005        seed_len: usize,
15006    ) -> ::core::ffi::c_int;
15007}
15008unsafe extern "C" {
15009    pub fn MLDSA65_public_from_private(
15010        out_public_key: *mut MLDSA65_public_key,
15011        private_key: *const MLDSA65_private_key,
15012    ) -> ::core::ffi::c_int;
15013}
15014unsafe extern "C" {
15015    pub fn MLDSA65_sign(
15016        out_encoded_signature: *mut u8,
15017        private_key: *const MLDSA65_private_key,
15018        msg: *const u8,
15019        msg_len: usize,
15020        context: *const u8,
15021        context_len: usize,
15022    ) -> ::core::ffi::c_int;
15023}
15024unsafe extern "C" {
15025    pub fn MLDSA65_verify(
15026        public_key: *const MLDSA65_public_key,
15027        signature: *const u8,
15028        signature_len: usize,
15029        msg: *const u8,
15030        msg_len: usize,
15031        context: *const u8,
15032        context_len: usize,
15033    ) -> ::core::ffi::c_int;
15034}
15035unsafe extern "C" {
15036    pub fn MLDSA65_prehash_init(
15037        out_state: *mut MLDSA65_prehash,
15038        public_key: *const MLDSA65_public_key,
15039        context: *const u8,
15040        context_len: usize,
15041    ) -> ::core::ffi::c_int;
15042}
15043unsafe extern "C" {
15044    pub fn MLDSA65_prehash_update(
15045        inout_state: *mut MLDSA65_prehash,
15046        msg: *const u8,
15047        msg_len: usize,
15048    );
15049}
15050unsafe extern "C" {
15051    pub fn MLDSA65_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA65_prehash);
15052}
15053unsafe extern "C" {
15054    pub fn MLDSA65_sign_message_representative(
15055        out_encoded_signature: *mut u8,
15056        private_key: *const MLDSA65_private_key,
15057        msg_rep: *const u8,
15058    ) -> ::core::ffi::c_int;
15059}
15060unsafe extern "C" {
15061    pub fn MLDSA65_verify_message_representative(
15062        public_key: *const MLDSA65_public_key,
15063        signature: *const u8,
15064        signature_len: usize,
15065        msg_rep: *const u8,
15066    ) -> ::core::ffi::c_int;
15067}
15068unsafe extern "C" {
15069    pub fn MLDSA65_marshal_public_key(
15070        out: *mut CBB,
15071        public_key: *const MLDSA65_public_key,
15072    ) -> ::core::ffi::c_int;
15073}
15074unsafe extern "C" {
15075    pub fn MLDSA65_parse_public_key(
15076        public_key: *mut MLDSA65_public_key,
15077        in_: *mut CBS,
15078    ) -> ::core::ffi::c_int;
15079}
15080#[repr(C)]
15081#[derive(Copy, Clone)]
15082pub struct MLDSA87_private_key {
15083    pub opaque: MLDSA87_private_key__bindgen_ty_1,
15084}
15085#[repr(C)]
15086#[derive(Copy, Clone)]
15087pub union MLDSA87_private_key__bindgen_ty_1 {
15088    pub bytes: [u8; 31872usize],
15089    pub alignment: u32,
15090}
15091#[repr(C)]
15092#[derive(Copy, Clone)]
15093pub struct MLDSA87_public_key {
15094    pub opaque: MLDSA87_public_key__bindgen_ty_1,
15095}
15096#[repr(C)]
15097#[derive(Copy, Clone)]
15098pub union MLDSA87_public_key__bindgen_ty_1 {
15099    pub bytes: [u8; 8288usize],
15100    pub alignment: u32,
15101}
15102#[repr(C)]
15103#[derive(Copy, Clone)]
15104pub struct MLDSA87_prehash {
15105    pub opaque: MLDSA87_prehash__bindgen_ty_1,
15106}
15107#[repr(C)]
15108#[derive(Copy, Clone)]
15109pub union MLDSA87_prehash__bindgen_ty_1 {
15110    pub bytes: [u8; 240usize],
15111    pub alignment: u64,
15112}
15113unsafe extern "C" {
15114    pub fn MLDSA87_generate_key(
15115        out_encoded_public_key: *mut u8,
15116        out_seed: *mut u8,
15117        out_private_key: *mut MLDSA87_private_key,
15118    ) -> ::core::ffi::c_int;
15119}
15120unsafe extern "C" {
15121    pub fn MLDSA87_private_key_from_seed(
15122        out_private_key: *mut MLDSA87_private_key,
15123        seed: *const u8,
15124        seed_len: usize,
15125    ) -> ::core::ffi::c_int;
15126}
15127unsafe extern "C" {
15128    pub fn MLDSA87_public_from_private(
15129        out_public_key: *mut MLDSA87_public_key,
15130        private_key: *const MLDSA87_private_key,
15131    ) -> ::core::ffi::c_int;
15132}
15133unsafe extern "C" {
15134    pub fn MLDSA87_sign(
15135        out_encoded_signature: *mut u8,
15136        private_key: *const MLDSA87_private_key,
15137        msg: *const u8,
15138        msg_len: usize,
15139        context: *const u8,
15140        context_len: usize,
15141    ) -> ::core::ffi::c_int;
15142}
15143unsafe extern "C" {
15144    pub fn MLDSA87_verify(
15145        public_key: *const MLDSA87_public_key,
15146        signature: *const u8,
15147        signature_len: usize,
15148        msg: *const u8,
15149        msg_len: usize,
15150        context: *const u8,
15151        context_len: usize,
15152    ) -> ::core::ffi::c_int;
15153}
15154unsafe extern "C" {
15155    pub fn MLDSA87_prehash_init(
15156        out_state: *mut MLDSA87_prehash,
15157        public_key: *const MLDSA87_public_key,
15158        context: *const u8,
15159        context_len: usize,
15160    ) -> ::core::ffi::c_int;
15161}
15162unsafe extern "C" {
15163    pub fn MLDSA87_prehash_update(
15164        inout_state: *mut MLDSA87_prehash,
15165        msg: *const u8,
15166        msg_len: usize,
15167    );
15168}
15169unsafe extern "C" {
15170    pub fn MLDSA87_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA87_prehash);
15171}
15172unsafe extern "C" {
15173    pub fn MLDSA87_sign_message_representative(
15174        out_encoded_signature: *mut u8,
15175        private_key: *const MLDSA87_private_key,
15176        msg_rep: *const u8,
15177    ) -> ::core::ffi::c_int;
15178}
15179unsafe extern "C" {
15180    pub fn MLDSA87_verify_message_representative(
15181        public_key: *const MLDSA87_public_key,
15182        signature: *const u8,
15183        signature_len: usize,
15184        msg_rep: *const u8,
15185    ) -> ::core::ffi::c_int;
15186}
15187unsafe extern "C" {
15188    pub fn MLDSA87_marshal_public_key(
15189        out: *mut CBB,
15190        public_key: *const MLDSA87_public_key,
15191    ) -> ::core::ffi::c_int;
15192}
15193unsafe extern "C" {
15194    pub fn MLDSA87_parse_public_key(
15195        public_key: *mut MLDSA87_public_key,
15196        in_: *mut CBS,
15197    ) -> ::core::ffi::c_int;
15198}
15199#[repr(C)]
15200#[derive(Copy, Clone)]
15201pub struct MLDSA44_private_key {
15202    pub opaque: MLDSA44_private_key__bindgen_ty_1,
15203}
15204#[repr(C)]
15205#[derive(Copy, Clone)]
15206pub union MLDSA44_private_key__bindgen_ty_1 {
15207    pub bytes: [u8; 16512usize],
15208    pub alignment: u32,
15209}
15210#[repr(C)]
15211#[derive(Copy, Clone)]
15212pub struct MLDSA44_public_key {
15213    pub opaque: MLDSA44_public_key__bindgen_ty_1,
15214}
15215#[repr(C)]
15216#[derive(Copy, Clone)]
15217pub union MLDSA44_public_key__bindgen_ty_1 {
15218    pub bytes: [u8; 4192usize],
15219    pub alignment: u32,
15220}
15221#[repr(C)]
15222#[derive(Copy, Clone)]
15223pub struct MLDSA44_prehash {
15224    pub opaque: MLDSA44_prehash__bindgen_ty_1,
15225}
15226#[repr(C)]
15227#[derive(Copy, Clone)]
15228pub union MLDSA44_prehash__bindgen_ty_1 {
15229    pub bytes: [u8; 240usize],
15230    pub alignment: u64,
15231}
15232unsafe extern "C" {
15233    pub fn MLDSA44_generate_key(
15234        out_encoded_public_key: *mut u8,
15235        out_seed: *mut u8,
15236        out_private_key: *mut MLDSA44_private_key,
15237    ) -> ::core::ffi::c_int;
15238}
15239unsafe extern "C" {
15240    pub fn MLDSA44_private_key_from_seed(
15241        out_private_key: *mut MLDSA44_private_key,
15242        seed: *const u8,
15243        seed_len: usize,
15244    ) -> ::core::ffi::c_int;
15245}
15246unsafe extern "C" {
15247    pub fn MLDSA44_public_from_private(
15248        out_public_key: *mut MLDSA44_public_key,
15249        private_key: *const MLDSA44_private_key,
15250    ) -> ::core::ffi::c_int;
15251}
15252unsafe extern "C" {
15253    pub fn MLDSA44_sign(
15254        out_encoded_signature: *mut u8,
15255        private_key: *const MLDSA44_private_key,
15256        msg: *const u8,
15257        msg_len: usize,
15258        context: *const u8,
15259        context_len: usize,
15260    ) -> ::core::ffi::c_int;
15261}
15262unsafe extern "C" {
15263    pub fn MLDSA44_verify(
15264        public_key: *const MLDSA44_public_key,
15265        signature: *const u8,
15266        signature_len: usize,
15267        msg: *const u8,
15268        msg_len: usize,
15269        context: *const u8,
15270        context_len: usize,
15271    ) -> ::core::ffi::c_int;
15272}
15273unsafe extern "C" {
15274    pub fn MLDSA44_prehash_init(
15275        out_state: *mut MLDSA44_prehash,
15276        public_key: *const MLDSA44_public_key,
15277        context: *const u8,
15278        context_len: usize,
15279    ) -> ::core::ffi::c_int;
15280}
15281unsafe extern "C" {
15282    pub fn MLDSA44_prehash_update(
15283        inout_state: *mut MLDSA44_prehash,
15284        msg: *const u8,
15285        msg_len: usize,
15286    );
15287}
15288unsafe extern "C" {
15289    pub fn MLDSA44_prehash_finalize(out_msg_rep: *mut u8, inout_state: *mut MLDSA44_prehash);
15290}
15291unsafe extern "C" {
15292    pub fn MLDSA44_sign_message_representative(
15293        out_encoded_signature: *mut u8,
15294        private_key: *const MLDSA44_private_key,
15295        msg_rep: *const u8,
15296    ) -> ::core::ffi::c_int;
15297}
15298unsafe extern "C" {
15299    pub fn MLDSA44_verify_message_representative(
15300        public_key: *const MLDSA44_public_key,
15301        signature: *const u8,
15302        signature_len: usize,
15303        msg_rep: *const u8,
15304    ) -> ::core::ffi::c_int;
15305}
15306unsafe extern "C" {
15307    pub fn MLDSA44_marshal_public_key(
15308        out: *mut CBB,
15309        public_key: *const MLDSA44_public_key,
15310    ) -> ::core::ffi::c_int;
15311}
15312unsafe extern "C" {
15313    pub fn MLDSA44_parse_public_key(
15314        public_key: *mut MLDSA44_public_key,
15315        in_: *mut CBS,
15316    ) -> ::core::ffi::c_int;
15317}
15318#[repr(C)]
15319#[derive(Copy, Clone)]
15320pub struct MLKEM768_public_key {
15321    pub opaque: MLKEM768_public_key__bindgen_ty_1,
15322}
15323#[repr(C)]
15324#[derive(Copy, Clone)]
15325pub union MLKEM768_public_key__bindgen_ty_1 {
15326    pub bytes: [u8; 6208usize],
15327    pub alignment: u16,
15328}
15329#[repr(C)]
15330#[derive(Copy, Clone)]
15331pub struct MLKEM768_private_key {
15332    pub opaque: MLKEM768_private_key__bindgen_ty_1,
15333}
15334#[repr(C)]
15335#[derive(Copy, Clone)]
15336pub union MLKEM768_private_key__bindgen_ty_1 {
15337    pub bytes: [u8; 7776usize],
15338    pub alignment: u16,
15339}
15340unsafe extern "C" {
15341    pub fn MLKEM768_generate_key(
15342        out_encoded_public_key: *mut u8,
15343        optional_out_seed: *mut u8,
15344        out_private_key: *mut MLKEM768_private_key,
15345    );
15346}
15347unsafe extern "C" {
15348    pub fn MLKEM768_private_key_from_seed(
15349        out_private_key: *mut MLKEM768_private_key,
15350        seed: *const u8,
15351        seed_len: usize,
15352    ) -> ::core::ffi::c_int;
15353}
15354unsafe extern "C" {
15355    pub fn MLKEM768_public_from_private(
15356        out_public_key: *mut MLKEM768_public_key,
15357        private_key: *const MLKEM768_private_key,
15358    );
15359}
15360unsafe extern "C" {
15361    pub fn MLKEM768_encap(
15362        out_ciphertext: *mut u8,
15363        out_shared_secret: *mut u8,
15364        public_key: *const MLKEM768_public_key,
15365    );
15366}
15367unsafe extern "C" {
15368    pub fn MLKEM768_decap(
15369        out_shared_secret: *mut u8,
15370        ciphertext: *const u8,
15371        ciphertext_len: usize,
15372        private_key: *const MLKEM768_private_key,
15373    ) -> ::core::ffi::c_int;
15374}
15375unsafe extern "C" {
15376    pub fn MLKEM768_marshal_public_key(
15377        out: *mut CBB,
15378        public_key: *const MLKEM768_public_key,
15379    ) -> ::core::ffi::c_int;
15380}
15381unsafe extern "C" {
15382    pub fn MLKEM768_parse_public_key(
15383        out_public_key: *mut MLKEM768_public_key,
15384        in_: *mut CBS,
15385    ) -> ::core::ffi::c_int;
15386}
15387#[repr(C)]
15388#[derive(Copy, Clone)]
15389pub struct MLKEM1024_public_key {
15390    pub opaque: MLKEM1024_public_key__bindgen_ty_1,
15391}
15392#[repr(C)]
15393#[derive(Copy, Clone)]
15394pub union MLKEM1024_public_key__bindgen_ty_1 {
15395    pub bytes: [u8; 10304usize],
15396    pub alignment: u16,
15397}
15398#[repr(C)]
15399#[derive(Copy, Clone)]
15400pub struct MLKEM1024_private_key {
15401    pub opaque: MLKEM1024_private_key__bindgen_ty_1,
15402}
15403#[repr(C)]
15404#[derive(Copy, Clone)]
15405pub union MLKEM1024_private_key__bindgen_ty_1 {
15406    pub bytes: [u8; 12384usize],
15407    pub alignment: u16,
15408}
15409unsafe extern "C" {
15410    pub fn MLKEM1024_generate_key(
15411        out_encoded_public_key: *mut u8,
15412        optional_out_seed: *mut u8,
15413        out_private_key: *mut MLKEM1024_private_key,
15414    );
15415}
15416unsafe extern "C" {
15417    pub fn MLKEM1024_private_key_from_seed(
15418        out_private_key: *mut MLKEM1024_private_key,
15419        seed: *const u8,
15420        seed_len: usize,
15421    ) -> ::core::ffi::c_int;
15422}
15423unsafe extern "C" {
15424    pub fn MLKEM1024_public_from_private(
15425        out_public_key: *mut MLKEM1024_public_key,
15426        private_key: *const MLKEM1024_private_key,
15427    );
15428}
15429unsafe extern "C" {
15430    pub fn MLKEM1024_encap(
15431        out_ciphertext: *mut u8,
15432        out_shared_secret: *mut u8,
15433        public_key: *const MLKEM1024_public_key,
15434    );
15435}
15436unsafe extern "C" {
15437    pub fn MLKEM1024_decap(
15438        out_shared_secret: *mut u8,
15439        ciphertext: *const u8,
15440        ciphertext_len: usize,
15441        private_key: *const MLKEM1024_private_key,
15442    ) -> ::core::ffi::c_int;
15443}
15444unsafe extern "C" {
15445    pub fn MLKEM1024_marshal_public_key(
15446        out: *mut CBB,
15447        public_key: *const MLKEM1024_public_key,
15448    ) -> ::core::ffi::c_int;
15449}
15450unsafe extern "C" {
15451    pub fn MLKEM1024_parse_public_key(
15452        out_public_key: *mut MLKEM1024_public_key,
15453        in_: *mut CBS,
15454    ) -> ::core::ffi::c_int;
15455}
15456unsafe extern "C" {
15457    pub fn OBJ_dup(obj: *const ASN1_OBJECT) -> *mut ASN1_OBJECT;
15458}
15459unsafe extern "C" {
15460    pub fn OBJ_cmp(a: *const ASN1_OBJECT, b: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15461}
15462unsafe extern "C" {
15463    pub fn OBJ_get0_data(obj: *const ASN1_OBJECT) -> *const u8;
15464}
15465unsafe extern "C" {
15466    pub fn OBJ_length(obj: *const ASN1_OBJECT) -> usize;
15467}
15468unsafe extern "C" {
15469    pub fn OBJ_obj2nid(obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
15470}
15471unsafe extern "C" {
15472    pub fn OBJ_cbs2nid(cbs: *const CBS) -> ::core::ffi::c_int;
15473}
15474unsafe extern "C" {
15475    pub fn OBJ_sn2nid(short_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15476}
15477unsafe extern "C" {
15478    pub fn OBJ_ln2nid(long_name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15479}
15480unsafe extern "C" {
15481    pub fn OBJ_txt2nid(s: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
15482}
15483unsafe extern "C" {
15484    pub fn OBJ_nid2obj(nid: ::core::ffi::c_int) -> *mut ASN1_OBJECT;
15485}
15486unsafe extern "C" {
15487    pub fn OBJ_get_undef() -> *const ASN1_OBJECT;
15488}
15489unsafe extern "C" {
15490    pub fn OBJ_nid2sn(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15491}
15492unsafe extern "C" {
15493    pub fn OBJ_nid2ln(nid: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
15494}
15495unsafe extern "C" {
15496    pub fn OBJ_nid2cbb(out: *mut CBB, nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
15497}
15498unsafe extern "C" {
15499    pub fn OBJ_txt2obj(
15500        s: *const ::core::ffi::c_char,
15501        dont_search_names: ::core::ffi::c_int,
15502    ) -> *mut ASN1_OBJECT;
15503}
15504unsafe extern "C" {
15505    pub fn OBJ_obj2txt(
15506        out: *mut ::core::ffi::c_char,
15507        out_len: ::core::ffi::c_int,
15508        obj: *const ASN1_OBJECT,
15509        always_return_oid: ::core::ffi::c_int,
15510    ) -> ::core::ffi::c_int;
15511}
15512unsafe extern "C" {
15513    pub fn OBJ_create(
15514        oid: *const ::core::ffi::c_char,
15515        short_name: *const ::core::ffi::c_char,
15516        long_name: *const ::core::ffi::c_char,
15517    ) -> ::core::ffi::c_int;
15518}
15519unsafe extern "C" {
15520    pub fn OBJ_find_sigid_algs(
15521        sign_nid: ::core::ffi::c_int,
15522        out_digest_nid: *mut ::core::ffi::c_int,
15523        out_pkey_nid: *mut ::core::ffi::c_int,
15524    ) -> ::core::ffi::c_int;
15525}
15526unsafe extern "C" {
15527    pub fn OBJ_find_sigid_by_algs(
15528        out_sign_nid: *mut ::core::ffi::c_int,
15529        digest_nid: ::core::ffi::c_int,
15530        pkey_nid: ::core::ffi::c_int,
15531    ) -> ::core::ffi::c_int;
15532}
15533#[repr(C)]
15534#[derive(Debug, Copy, Clone)]
15535pub struct obj_name_st {
15536    pub type_: ::core::ffi::c_int,
15537    pub alias: ::core::ffi::c_int,
15538    pub name: *const ::core::ffi::c_char,
15539    pub data: *const ::core::ffi::c_char,
15540}
15541pub type OBJ_NAME = obj_name_st;
15542unsafe extern "C" {
15543    pub fn OBJ_NAME_do_all_sorted(
15544        type_: ::core::ffi::c_int,
15545        callback: ::core::option::Option<
15546            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15547        >,
15548        arg: *mut ::core::ffi::c_void,
15549    );
15550}
15551unsafe extern "C" {
15552    pub fn OBJ_NAME_do_all(
15553        type_: ::core::ffi::c_int,
15554        callback: ::core::option::Option<
15555            unsafe extern "C" fn(arg1: *const OBJ_NAME, arg: *mut ::core::ffi::c_void),
15556        >,
15557        arg: *mut ::core::ffi::c_void,
15558    );
15559}
15560unsafe extern "C" {
15561    pub fn OBJ_cleanup();
15562}
15563#[repr(C)]
15564#[derive(Debug)]
15565pub struct stack_st_CRYPTO_BUFFER {
15566    _unused: [u8; 0],
15567}
15568#[repr(C)]
15569#[derive(Debug)]
15570pub struct stack_st_X509 {
15571    _unused: [u8; 0],
15572}
15573#[repr(C)]
15574#[derive(Debug)]
15575pub struct stack_st_X509_CRL {
15576    _unused: [u8; 0],
15577}
15578unsafe extern "C" {
15579    pub fn PKCS7_get_raw_certificates(
15580        out_certs: *mut stack_st_CRYPTO_BUFFER,
15581        cbs: *mut CBS,
15582        pool: *mut CRYPTO_BUFFER_POOL,
15583    ) -> ::core::ffi::c_int;
15584}
15585unsafe extern "C" {
15586    pub fn PKCS7_get_certificates(
15587        out_certs: *mut stack_st_X509,
15588        cbs: *mut CBS,
15589    ) -> ::core::ffi::c_int;
15590}
15591unsafe extern "C" {
15592    pub fn PKCS7_bundle_raw_certificates(
15593        out: *mut CBB,
15594        certs: *const stack_st_CRYPTO_BUFFER,
15595    ) -> ::core::ffi::c_int;
15596}
15597unsafe extern "C" {
15598    pub fn PKCS7_bundle_certificates(
15599        out: *mut CBB,
15600        certs: *const stack_st_X509,
15601    ) -> ::core::ffi::c_int;
15602}
15603unsafe extern "C" {
15604    pub fn PKCS7_get_CRLs(out_crls: *mut stack_st_X509_CRL, cbs: *mut CBS) -> ::core::ffi::c_int;
15605}
15606unsafe extern "C" {
15607    pub fn PKCS7_bundle_CRLs(out: *mut CBB, crls: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
15608}
15609unsafe extern "C" {
15610    pub fn PKCS7_get_PEM_certificates(
15611        out_certs: *mut stack_st_X509,
15612        pem_bio: *mut BIO,
15613    ) -> ::core::ffi::c_int;
15614}
15615unsafe extern "C" {
15616    pub fn PKCS7_get_PEM_CRLs(
15617        out_crls: *mut stack_st_X509_CRL,
15618        pem_bio: *mut BIO,
15619    ) -> ::core::ffi::c_int;
15620}
15621#[repr(C)]
15622#[derive(Debug, Copy, Clone)]
15623pub struct PKCS7_SIGNED {
15624    pub cert: *mut stack_st_X509,
15625    pub crl: *mut stack_st_X509_CRL,
15626}
15627#[repr(C)]
15628#[derive(Debug, Copy, Clone)]
15629pub struct PKCS7_SIGN_ENVELOPE {
15630    pub cert: *mut stack_st_X509,
15631    pub crl: *mut stack_st_X509_CRL,
15632}
15633pub type PKCS7_ENVELOPE = ::core::ffi::c_void;
15634pub type PKCS7_DIGEST = ::core::ffi::c_void;
15635pub type PKCS7_ENCRYPT = ::core::ffi::c_void;
15636pub type PKCS7_SIGNER_INFO = ::core::ffi::c_void;
15637#[repr(C)]
15638#[derive(Copy, Clone)]
15639pub struct PKCS7 {
15640    pub ber_bytes: *mut u8,
15641    pub ber_len: usize,
15642    pub type_: *mut ASN1_OBJECT,
15643    pub d: PKCS7__bindgen_ty_1,
15644}
15645#[repr(C)]
15646#[derive(Copy, Clone)]
15647pub union PKCS7__bindgen_ty_1 {
15648    pub ptr: *mut ::core::ffi::c_char,
15649    pub data: *mut ASN1_OCTET_STRING,
15650    pub sign: *mut PKCS7_SIGNED,
15651    pub enveloped: *mut PKCS7_ENVELOPE,
15652    pub signed_and_enveloped: *mut PKCS7_SIGN_ENVELOPE,
15653    pub digest: *mut PKCS7_DIGEST,
15654    pub encrypted: *mut PKCS7_ENCRYPT,
15655    pub other: *mut ASN1_TYPE,
15656}
15657unsafe extern "C" {
15658    pub fn d2i_PKCS7(out: *mut *mut PKCS7, inp: *mut *const u8, len: usize) -> *mut PKCS7;
15659}
15660unsafe extern "C" {
15661    pub fn d2i_PKCS7_bio(bio: *mut BIO, out: *mut *mut PKCS7) -> *mut PKCS7;
15662}
15663unsafe extern "C" {
15664    pub fn i2d_PKCS7(p7: *const PKCS7, out: *mut *mut u8) -> ::core::ffi::c_int;
15665}
15666unsafe extern "C" {
15667    pub fn i2d_PKCS7_bio(bio: *mut BIO, p7: *const PKCS7) -> ::core::ffi::c_int;
15668}
15669unsafe extern "C" {
15670    pub fn PKCS7_free(p7: *mut PKCS7);
15671}
15672unsafe extern "C" {
15673    pub fn PKCS7_type_is_data(p7: *const PKCS7) -> ::core::ffi::c_int;
15674}
15675unsafe extern "C" {
15676    pub fn PKCS7_type_is_digest(p7: *const PKCS7) -> ::core::ffi::c_int;
15677}
15678unsafe extern "C" {
15679    pub fn PKCS7_type_is_encrypted(p7: *const PKCS7) -> ::core::ffi::c_int;
15680}
15681unsafe extern "C" {
15682    pub fn PKCS7_type_is_enveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15683}
15684unsafe extern "C" {
15685    pub fn PKCS7_type_is_signed(p7: *const PKCS7) -> ::core::ffi::c_int;
15686}
15687unsafe extern "C" {
15688    pub fn PKCS7_type_is_signedAndEnveloped(p7: *const PKCS7) -> ::core::ffi::c_int;
15689}
15690unsafe extern "C" {
15691    pub fn PKCS7_sign(
15692        sign_cert: *mut X509,
15693        pkey: *mut EVP_PKEY,
15694        certs: *mut stack_st_X509,
15695        data: *mut BIO,
15696        flags: ::core::ffi::c_int,
15697    ) -> *mut PKCS7;
15698}
15699pub type sk_CRYPTO_BUFFER_free_func =
15700    ::core::option::Option<unsafe extern "C" fn(arg1: *mut CRYPTO_BUFFER)>;
15701pub type sk_CRYPTO_BUFFER_copy_func =
15702    ::core::option::Option<unsafe extern "C" fn(arg1: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER>;
15703pub type sk_CRYPTO_BUFFER_cmp_func = ::core::option::Option<
15704    unsafe extern "C" fn(
15705        arg1: *const *const CRYPTO_BUFFER,
15706        arg2: *const *const CRYPTO_BUFFER,
15707    ) -> ::core::ffi::c_int,
15708>;
15709pub type sk_CRYPTO_BUFFER_delete_if_func = ::core::option::Option<
15710    unsafe extern "C" fn(
15711        arg1: *mut CRYPTO_BUFFER,
15712        arg2: *mut ::core::ffi::c_void,
15713    ) -> ::core::ffi::c_int,
15714>;
15715unsafe extern "C" {
15716    #[link_name = "sk_CRYPTO_BUFFER_call_free_func__extern"]
15717    pub fn sk_CRYPTO_BUFFER_call_free_func(
15718        free_func: OPENSSL_sk_free_func,
15719        ptr: *mut ::core::ffi::c_void,
15720    );
15721}
15722unsafe extern "C" {
15723    #[link_name = "sk_CRYPTO_BUFFER_call_copy_func__extern"]
15724    pub fn sk_CRYPTO_BUFFER_call_copy_func(
15725        copy_func: OPENSSL_sk_copy_func,
15726        ptr: *const ::core::ffi::c_void,
15727    ) -> *mut ::core::ffi::c_void;
15728}
15729unsafe extern "C" {
15730    #[link_name = "sk_CRYPTO_BUFFER_call_cmp_func__extern"]
15731    pub fn sk_CRYPTO_BUFFER_call_cmp_func(
15732        cmp_func: OPENSSL_sk_cmp_func,
15733        a: *const ::core::ffi::c_void,
15734        b: *const ::core::ffi::c_void,
15735    ) -> ::core::ffi::c_int;
15736}
15737unsafe extern "C" {
15738    #[link_name = "sk_CRYPTO_BUFFER_call_delete_if_func__extern"]
15739    pub fn sk_CRYPTO_BUFFER_call_delete_if_func(
15740        func: OPENSSL_sk_delete_if_func,
15741        obj: *mut ::core::ffi::c_void,
15742        data: *mut ::core::ffi::c_void,
15743    ) -> ::core::ffi::c_int;
15744}
15745unsafe extern "C" {
15746    #[link_name = "sk_CRYPTO_BUFFER_new__extern"]
15747    pub fn sk_CRYPTO_BUFFER_new(comp: sk_CRYPTO_BUFFER_cmp_func) -> *mut stack_st_CRYPTO_BUFFER;
15748}
15749unsafe extern "C" {
15750    #[link_name = "sk_CRYPTO_BUFFER_new_null__extern"]
15751    pub fn sk_CRYPTO_BUFFER_new_null() -> *mut stack_st_CRYPTO_BUFFER;
15752}
15753unsafe extern "C" {
15754    #[link_name = "sk_CRYPTO_BUFFER_num__extern"]
15755    pub fn sk_CRYPTO_BUFFER_num(sk: *const stack_st_CRYPTO_BUFFER) -> usize;
15756}
15757unsafe extern "C" {
15758    #[link_name = "sk_CRYPTO_BUFFER_zero__extern"]
15759    pub fn sk_CRYPTO_BUFFER_zero(sk: *mut stack_st_CRYPTO_BUFFER);
15760}
15761unsafe extern "C" {
15762    #[link_name = "sk_CRYPTO_BUFFER_value__extern"]
15763    pub fn sk_CRYPTO_BUFFER_value(
15764        sk: *const stack_st_CRYPTO_BUFFER,
15765        i: usize,
15766    ) -> *mut CRYPTO_BUFFER;
15767}
15768unsafe extern "C" {
15769    #[link_name = "sk_CRYPTO_BUFFER_set__extern"]
15770    pub fn sk_CRYPTO_BUFFER_set(
15771        sk: *mut stack_st_CRYPTO_BUFFER,
15772        i: usize,
15773        p: *mut CRYPTO_BUFFER,
15774    ) -> *mut CRYPTO_BUFFER;
15775}
15776unsafe extern "C" {
15777    #[link_name = "sk_CRYPTO_BUFFER_free__extern"]
15778    pub fn sk_CRYPTO_BUFFER_free(sk: *mut stack_st_CRYPTO_BUFFER);
15779}
15780unsafe extern "C" {
15781    #[link_name = "sk_CRYPTO_BUFFER_pop_free__extern"]
15782    pub fn sk_CRYPTO_BUFFER_pop_free(
15783        sk: *mut stack_st_CRYPTO_BUFFER,
15784        free_func: sk_CRYPTO_BUFFER_free_func,
15785    );
15786}
15787unsafe extern "C" {
15788    #[link_name = "sk_CRYPTO_BUFFER_insert__extern"]
15789    pub fn sk_CRYPTO_BUFFER_insert(
15790        sk: *mut stack_st_CRYPTO_BUFFER,
15791        p: *mut CRYPTO_BUFFER,
15792        where_: usize,
15793    ) -> usize;
15794}
15795unsafe extern "C" {
15796    #[link_name = "sk_CRYPTO_BUFFER_delete__extern"]
15797    pub fn sk_CRYPTO_BUFFER_delete(
15798        sk: *mut stack_st_CRYPTO_BUFFER,
15799        where_: usize,
15800    ) -> *mut CRYPTO_BUFFER;
15801}
15802unsafe extern "C" {
15803    #[link_name = "sk_CRYPTO_BUFFER_delete_ptr__extern"]
15804    pub fn sk_CRYPTO_BUFFER_delete_ptr(
15805        sk: *mut stack_st_CRYPTO_BUFFER,
15806        p: *const CRYPTO_BUFFER,
15807    ) -> *mut CRYPTO_BUFFER;
15808}
15809unsafe extern "C" {
15810    #[link_name = "sk_CRYPTO_BUFFER_delete_if__extern"]
15811    pub fn sk_CRYPTO_BUFFER_delete_if(
15812        sk: *mut stack_st_CRYPTO_BUFFER,
15813        func: sk_CRYPTO_BUFFER_delete_if_func,
15814        data: *mut ::core::ffi::c_void,
15815    );
15816}
15817unsafe extern "C" {
15818    #[link_name = "sk_CRYPTO_BUFFER_find__extern"]
15819    pub fn sk_CRYPTO_BUFFER_find(
15820        sk: *const stack_st_CRYPTO_BUFFER,
15821        out_index: *mut usize,
15822        p: *const CRYPTO_BUFFER,
15823    ) -> ::core::ffi::c_int;
15824}
15825unsafe extern "C" {
15826    #[link_name = "sk_CRYPTO_BUFFER_shift__extern"]
15827    pub fn sk_CRYPTO_BUFFER_shift(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15828}
15829unsafe extern "C" {
15830    #[link_name = "sk_CRYPTO_BUFFER_push__extern"]
15831    pub fn sk_CRYPTO_BUFFER_push(sk: *mut stack_st_CRYPTO_BUFFER, p: *mut CRYPTO_BUFFER) -> usize;
15832}
15833unsafe extern "C" {
15834    #[link_name = "sk_CRYPTO_BUFFER_pop__extern"]
15835    pub fn sk_CRYPTO_BUFFER_pop(sk: *mut stack_st_CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15836}
15837unsafe extern "C" {
15838    #[link_name = "sk_CRYPTO_BUFFER_dup__extern"]
15839    pub fn sk_CRYPTO_BUFFER_dup(sk: *const stack_st_CRYPTO_BUFFER) -> *mut stack_st_CRYPTO_BUFFER;
15840}
15841unsafe extern "C" {
15842    #[link_name = "sk_CRYPTO_BUFFER_sort__extern"]
15843    pub fn sk_CRYPTO_BUFFER_sort(sk: *mut stack_st_CRYPTO_BUFFER);
15844}
15845unsafe extern "C" {
15846    #[link_name = "sk_CRYPTO_BUFFER_sort_and_dedup__extern"]
15847    pub fn sk_CRYPTO_BUFFER_sort_and_dedup(
15848        sk: *mut stack_st_CRYPTO_BUFFER,
15849        free_func: sk_CRYPTO_BUFFER_free_func,
15850    );
15851}
15852unsafe extern "C" {
15853    #[link_name = "sk_CRYPTO_BUFFER_is_sorted__extern"]
15854    pub fn sk_CRYPTO_BUFFER_is_sorted(sk: *const stack_st_CRYPTO_BUFFER) -> ::core::ffi::c_int;
15855}
15856unsafe extern "C" {
15857    #[link_name = "sk_CRYPTO_BUFFER_set_cmp_func__extern"]
15858    pub fn sk_CRYPTO_BUFFER_set_cmp_func(
15859        sk: *mut stack_st_CRYPTO_BUFFER,
15860        comp: sk_CRYPTO_BUFFER_cmp_func,
15861    ) -> sk_CRYPTO_BUFFER_cmp_func;
15862}
15863unsafe extern "C" {
15864    #[link_name = "sk_CRYPTO_BUFFER_deep_copy__extern"]
15865    pub fn sk_CRYPTO_BUFFER_deep_copy(
15866        sk: *const stack_st_CRYPTO_BUFFER,
15867        copy_func: sk_CRYPTO_BUFFER_copy_func,
15868        free_func: sk_CRYPTO_BUFFER_free_func,
15869    ) -> *mut stack_st_CRYPTO_BUFFER;
15870}
15871unsafe extern "C" {
15872    pub fn CRYPTO_BUFFER_POOL_new() -> *mut CRYPTO_BUFFER_POOL;
15873}
15874unsafe extern "C" {
15875    pub fn CRYPTO_BUFFER_POOL_free(pool: *mut CRYPTO_BUFFER_POOL);
15876}
15877unsafe extern "C" {
15878    pub fn CRYPTO_BUFFER_POOL_up_ref(pool: *mut CRYPTO_BUFFER_POOL) -> ::core::ffi::c_int;
15879}
15880unsafe extern "C" {
15881    pub fn CRYPTO_BUFFER_new(
15882        data: *const u8,
15883        len: usize,
15884        pool: *mut CRYPTO_BUFFER_POOL,
15885    ) -> *mut CRYPTO_BUFFER;
15886}
15887unsafe extern "C" {
15888    pub fn CRYPTO_BUFFER_alloc(out_data: *mut *mut u8, len: usize) -> *mut CRYPTO_BUFFER;
15889}
15890unsafe extern "C" {
15891    pub fn CRYPTO_BUFFER_new_from_CBS(
15892        cbs: *const CBS,
15893        pool: *mut CRYPTO_BUFFER_POOL,
15894    ) -> *mut CRYPTO_BUFFER;
15895}
15896unsafe extern "C" {
15897    pub fn CRYPTO_BUFFER_new_from_static_data_unsafe(
15898        data: *const u8,
15899        len: usize,
15900        pool: *mut CRYPTO_BUFFER_POOL,
15901    ) -> *mut CRYPTO_BUFFER;
15902}
15903unsafe extern "C" {
15904    pub fn CRYPTO_BUFFER_free(buf: *mut CRYPTO_BUFFER);
15905}
15906unsafe extern "C" {
15907    pub fn CRYPTO_BUFFER_up_ref(buf: *mut CRYPTO_BUFFER) -> ::core::ffi::c_int;
15908}
15909unsafe extern "C" {
15910    pub fn CRYPTO_BUFFER_dup_ref(buf: *const CRYPTO_BUFFER) -> *mut CRYPTO_BUFFER;
15911}
15912unsafe extern "C" {
15913    pub fn CRYPTO_BUFFER_data(buf: *const CRYPTO_BUFFER) -> *const u8;
15914}
15915unsafe extern "C" {
15916    pub fn CRYPTO_BUFFER_len(buf: *const CRYPTO_BUFFER) -> usize;
15917}
15918unsafe extern "C" {
15919    pub fn CRYPTO_BUFFER_init_CBS(buf: *const CRYPTO_BUFFER, out: *mut CBS);
15920}
15921unsafe extern "C" {
15922    pub fn RSA_new_public_key(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
15923}
15924unsafe extern "C" {
15925    pub fn RSA_new_private_key(
15926        n: *const BIGNUM,
15927        e: *const BIGNUM,
15928        d: *const BIGNUM,
15929        p: *const BIGNUM,
15930        q: *const BIGNUM,
15931        dmp1: *const BIGNUM,
15932        dmq1: *const BIGNUM,
15933        iqmp: *const BIGNUM,
15934    ) -> *mut RSA;
15935}
15936unsafe extern "C" {
15937    pub fn RSA_new() -> *mut RSA;
15938}
15939unsafe extern "C" {
15940    pub fn RSA_new_method(engine: *const ENGINE) -> *mut RSA;
15941}
15942unsafe extern "C" {
15943    pub fn RSA_free(rsa: *mut RSA);
15944}
15945unsafe extern "C" {
15946    pub fn RSA_up_ref(rsa: *mut RSA) -> ::core::ffi::c_int;
15947}
15948unsafe extern "C" {
15949    pub fn RSA_bits(rsa: *const RSA) -> ::core::ffi::c_uint;
15950}
15951unsafe extern "C" {
15952    pub fn RSA_get0_n(rsa: *const RSA) -> *const BIGNUM;
15953}
15954unsafe extern "C" {
15955    pub fn RSA_get0_e(rsa: *const RSA) -> *const BIGNUM;
15956}
15957unsafe extern "C" {
15958    pub fn RSA_get0_d(rsa: *const RSA) -> *const BIGNUM;
15959}
15960unsafe extern "C" {
15961    pub fn RSA_get0_p(rsa: *const RSA) -> *const BIGNUM;
15962}
15963unsafe extern "C" {
15964    pub fn RSA_get0_q(rsa: *const RSA) -> *const BIGNUM;
15965}
15966unsafe extern "C" {
15967    pub fn RSA_get0_dmp1(rsa: *const RSA) -> *const BIGNUM;
15968}
15969unsafe extern "C" {
15970    pub fn RSA_get0_dmq1(rsa: *const RSA) -> *const BIGNUM;
15971}
15972unsafe extern "C" {
15973    pub fn RSA_get0_iqmp(rsa: *const RSA) -> *const BIGNUM;
15974}
15975unsafe extern "C" {
15976    pub fn RSA_get0_key(
15977        rsa: *const RSA,
15978        out_n: *mut *const BIGNUM,
15979        out_e: *mut *const BIGNUM,
15980        out_d: *mut *const BIGNUM,
15981    );
15982}
15983unsafe extern "C" {
15984    pub fn RSA_get0_factors(rsa: *const RSA, out_p: *mut *const BIGNUM, out_q: *mut *const BIGNUM);
15985}
15986unsafe extern "C" {
15987    pub fn RSA_get0_crt_params(
15988        rsa: *const RSA,
15989        out_dmp1: *mut *const BIGNUM,
15990        out_dmq1: *mut *const BIGNUM,
15991        out_iqmp: *mut *const BIGNUM,
15992    );
15993}
15994unsafe extern "C" {
15995    pub fn RSA_set0_key(
15996        rsa: *mut RSA,
15997        n: *mut BIGNUM,
15998        e: *mut BIGNUM,
15999        d: *mut BIGNUM,
16000    ) -> ::core::ffi::c_int;
16001}
16002unsafe extern "C" {
16003    pub fn RSA_set0_factors(rsa: *mut RSA, p: *mut BIGNUM, q: *mut BIGNUM) -> ::core::ffi::c_int;
16004}
16005unsafe extern "C" {
16006    pub fn RSA_set0_crt_params(
16007        rsa: *mut RSA,
16008        dmp1: *mut BIGNUM,
16009        dmq1: *mut BIGNUM,
16010        iqmp: *mut BIGNUM,
16011    ) -> ::core::ffi::c_int;
16012}
16013unsafe extern "C" {
16014    pub fn RSA_generate_key_ex(
16015        rsa: *mut RSA,
16016        bits: ::core::ffi::c_int,
16017        e: *const BIGNUM,
16018        cb: *mut BN_GENCB,
16019    ) -> ::core::ffi::c_int;
16020}
16021unsafe extern "C" {
16022    pub fn RSA_generate_key_fips(
16023        rsa: *mut RSA,
16024        bits: ::core::ffi::c_int,
16025        cb: *mut BN_GENCB,
16026    ) -> ::core::ffi::c_int;
16027}
16028unsafe extern "C" {
16029    pub fn RSA_encrypt(
16030        rsa: *mut RSA,
16031        out_len: *mut usize,
16032        out: *mut u8,
16033        max_out: usize,
16034        in_: *const u8,
16035        in_len: usize,
16036        padding: ::core::ffi::c_int,
16037    ) -> ::core::ffi::c_int;
16038}
16039unsafe extern "C" {
16040    pub fn RSA_decrypt(
16041        rsa: *mut RSA,
16042        out_len: *mut usize,
16043        out: *mut u8,
16044        max_out: usize,
16045        in_: *const u8,
16046        in_len: usize,
16047        padding: ::core::ffi::c_int,
16048    ) -> ::core::ffi::c_int;
16049}
16050unsafe extern "C" {
16051    pub fn RSA_public_encrypt(
16052        flen: usize,
16053        from: *const u8,
16054        to: *mut u8,
16055        rsa: *mut RSA,
16056        padding: ::core::ffi::c_int,
16057    ) -> ::core::ffi::c_int;
16058}
16059unsafe extern "C" {
16060    pub fn RSA_private_decrypt(
16061        flen: usize,
16062        from: *const u8,
16063        to: *mut u8,
16064        rsa: *mut RSA,
16065        padding: ::core::ffi::c_int,
16066    ) -> ::core::ffi::c_int;
16067}
16068unsafe extern "C" {
16069    pub fn RSA_sign(
16070        hash_nid: ::core::ffi::c_int,
16071        digest: *const u8,
16072        digest_len: usize,
16073        out: *mut u8,
16074        out_len: *mut ::core::ffi::c_uint,
16075        rsa: *mut RSA,
16076    ) -> ::core::ffi::c_int;
16077}
16078unsafe extern "C" {
16079    pub fn RSA_sign_pss_mgf1(
16080        rsa: *mut RSA,
16081        out_len: *mut usize,
16082        out: *mut u8,
16083        max_out: usize,
16084        digest: *const u8,
16085        digest_len: usize,
16086        md: *const EVP_MD,
16087        mgf1_md: *const EVP_MD,
16088        salt_len: ::core::ffi::c_int,
16089    ) -> ::core::ffi::c_int;
16090}
16091unsafe extern "C" {
16092    pub fn RSA_sign_raw(
16093        rsa: *mut RSA,
16094        out_len: *mut usize,
16095        out: *mut u8,
16096        max_out: usize,
16097        in_: *const u8,
16098        in_len: usize,
16099        padding: ::core::ffi::c_int,
16100    ) -> ::core::ffi::c_int;
16101}
16102unsafe extern "C" {
16103    pub fn RSA_verify(
16104        hash_nid: ::core::ffi::c_int,
16105        digest: *const u8,
16106        digest_len: usize,
16107        sig: *const u8,
16108        sig_len: usize,
16109        rsa: *mut RSA,
16110    ) -> ::core::ffi::c_int;
16111}
16112unsafe extern "C" {
16113    pub fn RSA_verify_pss_mgf1(
16114        rsa: *mut RSA,
16115        digest: *const u8,
16116        digest_len: usize,
16117        md: *const EVP_MD,
16118        mgf1_md: *const EVP_MD,
16119        salt_len: ::core::ffi::c_int,
16120        sig: *const u8,
16121        sig_len: usize,
16122    ) -> ::core::ffi::c_int;
16123}
16124unsafe extern "C" {
16125    pub fn RSA_verify_raw(
16126        rsa: *mut RSA,
16127        out_len: *mut usize,
16128        out: *mut u8,
16129        max_out: usize,
16130        in_: *const u8,
16131        in_len: usize,
16132        padding: ::core::ffi::c_int,
16133    ) -> ::core::ffi::c_int;
16134}
16135unsafe extern "C" {
16136    pub fn RSA_private_encrypt(
16137        flen: usize,
16138        from: *const u8,
16139        to: *mut u8,
16140        rsa: *mut RSA,
16141        padding: ::core::ffi::c_int,
16142    ) -> ::core::ffi::c_int;
16143}
16144unsafe extern "C" {
16145    pub fn RSA_public_decrypt(
16146        flen: usize,
16147        from: *const u8,
16148        to: *mut u8,
16149        rsa: *mut RSA,
16150        padding: ::core::ffi::c_int,
16151    ) -> ::core::ffi::c_int;
16152}
16153unsafe extern "C" {
16154    pub fn RSA_size(rsa: *const RSA) -> ::core::ffi::c_uint;
16155}
16156unsafe extern "C" {
16157    pub fn RSA_is_opaque(rsa: *const RSA) -> ::core::ffi::c_int;
16158}
16159unsafe extern "C" {
16160    pub fn RSAPublicKey_dup(rsa: *const RSA) -> *mut RSA;
16161}
16162unsafe extern "C" {
16163    pub fn RSAPrivateKey_dup(rsa: *const RSA) -> *mut RSA;
16164}
16165unsafe extern "C" {
16166    pub fn RSA_check_key(rsa: *const RSA) -> ::core::ffi::c_int;
16167}
16168unsafe extern "C" {
16169    pub fn RSA_check_fips(key: *mut RSA) -> ::core::ffi::c_int;
16170}
16171unsafe extern "C" {
16172    pub fn RSA_verify_PKCS1_PSS_mgf1(
16173        rsa: *const RSA,
16174        mHash: *const u8,
16175        Hash: *const EVP_MD,
16176        mgf1Hash: *const EVP_MD,
16177        EM: *const u8,
16178        sLen: ::core::ffi::c_int,
16179    ) -> ::core::ffi::c_int;
16180}
16181unsafe extern "C" {
16182    pub fn RSA_padding_add_PKCS1_PSS_mgf1(
16183        rsa: *const RSA,
16184        EM: *mut u8,
16185        mHash: *const u8,
16186        Hash: *const EVP_MD,
16187        mgf1Hash: *const EVP_MD,
16188        sLen: ::core::ffi::c_int,
16189    ) -> ::core::ffi::c_int;
16190}
16191unsafe extern "C" {
16192    pub fn RSA_padding_add_PKCS1_OAEP_mgf1(
16193        to: *mut u8,
16194        to_len: usize,
16195        from: *const u8,
16196        from_len: usize,
16197        param: *const u8,
16198        param_len: usize,
16199        md: *const EVP_MD,
16200        mgf1md: *const EVP_MD,
16201    ) -> ::core::ffi::c_int;
16202}
16203unsafe extern "C" {
16204    pub fn RSA_add_pkcs1_prefix(
16205        out_msg: *mut *mut u8,
16206        out_msg_len: *mut usize,
16207        is_alloced: *mut ::core::ffi::c_int,
16208        hash_nid: ::core::ffi::c_int,
16209        digest: *const u8,
16210        digest_len: usize,
16211    ) -> ::core::ffi::c_int;
16212}
16213unsafe extern "C" {
16214    pub fn RSA_parse_public_key(cbs: *mut CBS) -> *mut RSA;
16215}
16216unsafe extern "C" {
16217    pub fn RSA_public_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16218}
16219unsafe extern "C" {
16220    pub fn RSA_marshal_public_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16221}
16222unsafe extern "C" {
16223    pub fn RSA_public_key_to_bytes(
16224        out_bytes: *mut *mut u8,
16225        out_len: *mut usize,
16226        rsa: *const RSA,
16227    ) -> ::core::ffi::c_int;
16228}
16229unsafe extern "C" {
16230    pub fn RSA_parse_private_key(cbs: *mut CBS) -> *mut RSA;
16231}
16232unsafe extern "C" {
16233    pub fn RSA_private_key_from_bytes(in_: *const u8, in_len: usize) -> *mut RSA;
16234}
16235unsafe extern "C" {
16236    pub fn RSA_marshal_private_key(cbb: *mut CBB, rsa: *const RSA) -> ::core::ffi::c_int;
16237}
16238unsafe extern "C" {
16239    pub fn RSA_private_key_to_bytes(
16240        out_bytes: *mut *mut u8,
16241        out_len: *mut usize,
16242        rsa: *const RSA,
16243    ) -> ::core::ffi::c_int;
16244}
16245unsafe extern "C" {
16246    pub fn RSA_new_private_key_no_crt(
16247        n: *const BIGNUM,
16248        e: *const BIGNUM,
16249        d: *const BIGNUM,
16250    ) -> *mut RSA;
16251}
16252unsafe extern "C" {
16253    pub fn RSA_new_private_key_no_e(n: *const BIGNUM, d: *const BIGNUM) -> *mut RSA;
16254}
16255unsafe extern "C" {
16256    pub fn RSA_new_public_key_large_e(n: *const BIGNUM, e: *const BIGNUM) -> *mut RSA;
16257}
16258unsafe extern "C" {
16259    pub fn RSA_new_private_key_large_e(
16260        n: *const BIGNUM,
16261        e: *const BIGNUM,
16262        d: *const BIGNUM,
16263        p: *const BIGNUM,
16264        q: *const BIGNUM,
16265        dmp1: *const BIGNUM,
16266        dmq1: *const BIGNUM,
16267        iqmp: *const BIGNUM,
16268    ) -> *mut RSA;
16269}
16270unsafe extern "C" {
16271    pub fn RSA_get_ex_new_index(
16272        argl: ::core::ffi::c_long,
16273        argp: *mut ::core::ffi::c_void,
16274        unused: *mut CRYPTO_EX_unused,
16275        dup_unused: CRYPTO_EX_dup,
16276        free_func: CRYPTO_EX_free,
16277    ) -> ::core::ffi::c_int;
16278}
16279unsafe extern "C" {
16280    pub fn RSA_set_ex_data(
16281        rsa: *mut RSA,
16282        idx: ::core::ffi::c_int,
16283        arg: *mut ::core::ffi::c_void,
16284    ) -> ::core::ffi::c_int;
16285}
16286unsafe extern "C" {
16287    pub fn RSA_get_ex_data(rsa: *const RSA, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
16288}
16289unsafe extern "C" {
16290    pub fn RSA_flags(rsa: *const RSA) -> ::core::ffi::c_int;
16291}
16292unsafe extern "C" {
16293    pub fn RSA_test_flags(rsa: *const RSA, flags: ::core::ffi::c_int) -> ::core::ffi::c_int;
16294}
16295unsafe extern "C" {
16296    pub fn RSA_blinding_on(rsa: *mut RSA, ctx: *mut BN_CTX) -> ::core::ffi::c_int;
16297}
16298unsafe extern "C" {
16299    pub fn RSA_blinding_off(rsa: *mut RSA);
16300}
16301unsafe extern "C" {
16302    pub fn RSA_generate_key(
16303        bits: ::core::ffi::c_int,
16304        e: u64,
16305        callback: *mut ::core::ffi::c_void,
16306        cb_arg: *mut ::core::ffi::c_void,
16307    ) -> *mut RSA;
16308}
16309unsafe extern "C" {
16310    pub fn d2i_RSAPublicKey(
16311        out: *mut *mut RSA,
16312        inp: *mut *const u8,
16313        len: ::core::ffi::c_long,
16314    ) -> *mut RSA;
16315}
16316unsafe extern "C" {
16317    pub fn i2d_RSAPublicKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16318}
16319unsafe extern "C" {
16320    pub fn d2i_RSAPrivateKey(
16321        out: *mut *mut RSA,
16322        inp: *mut *const u8,
16323        len: ::core::ffi::c_long,
16324    ) -> *mut RSA;
16325}
16326unsafe extern "C" {
16327    pub fn i2d_RSAPrivateKey(in_: *const RSA, outp: *mut *mut u8) -> ::core::ffi::c_int;
16328}
16329unsafe extern "C" {
16330    pub fn RSA_padding_add_PKCS1_PSS(
16331        rsa: *const RSA,
16332        EM: *mut u8,
16333        mHash: *const u8,
16334        Hash: *const EVP_MD,
16335        sLen: ::core::ffi::c_int,
16336    ) -> ::core::ffi::c_int;
16337}
16338unsafe extern "C" {
16339    pub fn RSA_verify_PKCS1_PSS(
16340        rsa: *const RSA,
16341        mHash: *const u8,
16342        Hash: *const EVP_MD,
16343        EM: *const u8,
16344        sLen: ::core::ffi::c_int,
16345    ) -> ::core::ffi::c_int;
16346}
16347unsafe extern "C" {
16348    pub fn RSA_padding_add_PKCS1_OAEP(
16349        to: *mut u8,
16350        to_len: usize,
16351        from: *const u8,
16352        from_len: usize,
16353        param: *const u8,
16354        param_len: usize,
16355    ) -> ::core::ffi::c_int;
16356}
16357unsafe extern "C" {
16358    pub fn RSA_print(
16359        bio: *mut BIO,
16360        rsa: *const RSA,
16361        indent: ::core::ffi::c_int,
16362    ) -> ::core::ffi::c_int;
16363}
16364unsafe extern "C" {
16365    pub fn RSA_get0_pss_params(rsa: *const RSA) -> *const RSA_PSS_PARAMS;
16366}
16367unsafe extern "C" {
16368    pub fn RSA_new_method_no_e(engine: *const ENGINE, n: *const BIGNUM) -> *mut RSA;
16369}
16370#[repr(C)]
16371#[derive(Debug, Copy, Clone)]
16372pub struct rsa_meth_st {
16373    pub common: openssl_method_common_st,
16374    pub app_data: *mut ::core::ffi::c_void,
16375    pub init: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16376    pub finish: ::core::option::Option<unsafe extern "C" fn(rsa: *mut RSA) -> ::core::ffi::c_int>,
16377    pub sign: ::core::option::Option<
16378        unsafe extern "C" fn(
16379            type_: ::core::ffi::c_int,
16380            m: *const u8,
16381            m_length: ::core::ffi::c_uint,
16382            sigret: *mut u8,
16383            siglen: *mut ::core::ffi::c_uint,
16384            rsa: *const RSA,
16385        ) -> ::core::ffi::c_int,
16386    >,
16387    pub sign_raw: ::core::option::Option<
16388        unsafe extern "C" fn(
16389            rsa: *mut RSA,
16390            out_len: *mut usize,
16391            out: *mut u8,
16392            max_out: usize,
16393            in_: *const u8,
16394            in_len: usize,
16395            padding: ::core::ffi::c_int,
16396        ) -> ::core::ffi::c_int,
16397    >,
16398    pub decrypt: ::core::option::Option<
16399        unsafe extern "C" fn(
16400            rsa: *mut RSA,
16401            out_len: *mut usize,
16402            out: *mut u8,
16403            max_out: usize,
16404            in_: *const u8,
16405            in_len: usize,
16406            padding: ::core::ffi::c_int,
16407        ) -> ::core::ffi::c_int,
16408    >,
16409    pub private_transform: ::core::option::Option<
16410        unsafe extern "C" fn(
16411            rsa: *mut RSA,
16412            out: *mut u8,
16413            in_: *const u8,
16414            len: usize,
16415        ) -> ::core::ffi::c_int,
16416    >,
16417    pub flags: ::core::ffi::c_int,
16418}
16419pub type sk_X509_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509)>;
16420pub type sk_X509_copy_func =
16421    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509) -> *mut X509>;
16422pub type sk_X509_cmp_func = ::core::option::Option<
16423    unsafe extern "C" fn(arg1: *const *const X509, arg2: *const *const X509) -> ::core::ffi::c_int,
16424>;
16425pub type sk_X509_delete_if_func = ::core::option::Option<
16426    unsafe extern "C" fn(arg1: *mut X509, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
16427>;
16428unsafe extern "C" {
16429    #[link_name = "sk_X509_call_free_func__extern"]
16430    pub fn sk_X509_call_free_func(free_func: OPENSSL_sk_free_func, ptr: *mut ::core::ffi::c_void);
16431}
16432unsafe extern "C" {
16433    #[link_name = "sk_X509_call_copy_func__extern"]
16434    pub fn sk_X509_call_copy_func(
16435        copy_func: OPENSSL_sk_copy_func,
16436        ptr: *const ::core::ffi::c_void,
16437    ) -> *mut ::core::ffi::c_void;
16438}
16439unsafe extern "C" {
16440    #[link_name = "sk_X509_call_cmp_func__extern"]
16441    pub fn sk_X509_call_cmp_func(
16442        cmp_func: OPENSSL_sk_cmp_func,
16443        a: *const ::core::ffi::c_void,
16444        b: *const ::core::ffi::c_void,
16445    ) -> ::core::ffi::c_int;
16446}
16447unsafe extern "C" {
16448    #[link_name = "sk_X509_call_delete_if_func__extern"]
16449    pub fn sk_X509_call_delete_if_func(
16450        func: OPENSSL_sk_delete_if_func,
16451        obj: *mut ::core::ffi::c_void,
16452        data: *mut ::core::ffi::c_void,
16453    ) -> ::core::ffi::c_int;
16454}
16455unsafe extern "C" {
16456    #[link_name = "sk_X509_new__extern"]
16457    pub fn sk_X509_new(comp: sk_X509_cmp_func) -> *mut stack_st_X509;
16458}
16459unsafe extern "C" {
16460    #[link_name = "sk_X509_new_null__extern"]
16461    pub fn sk_X509_new_null() -> *mut stack_st_X509;
16462}
16463unsafe extern "C" {
16464    #[link_name = "sk_X509_num__extern"]
16465    pub fn sk_X509_num(sk: *const stack_st_X509) -> usize;
16466}
16467unsafe extern "C" {
16468    #[link_name = "sk_X509_zero__extern"]
16469    pub fn sk_X509_zero(sk: *mut stack_st_X509);
16470}
16471unsafe extern "C" {
16472    #[link_name = "sk_X509_value__extern"]
16473    pub fn sk_X509_value(sk: *const stack_st_X509, i: usize) -> *mut X509;
16474}
16475unsafe extern "C" {
16476    #[link_name = "sk_X509_set__extern"]
16477    pub fn sk_X509_set(sk: *mut stack_st_X509, i: usize, p: *mut X509) -> *mut X509;
16478}
16479unsafe extern "C" {
16480    #[link_name = "sk_X509_free__extern"]
16481    pub fn sk_X509_free(sk: *mut stack_st_X509);
16482}
16483unsafe extern "C" {
16484    #[link_name = "sk_X509_pop_free__extern"]
16485    pub fn sk_X509_pop_free(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16486}
16487unsafe extern "C" {
16488    #[link_name = "sk_X509_insert__extern"]
16489    pub fn sk_X509_insert(sk: *mut stack_st_X509, p: *mut X509, where_: usize) -> usize;
16490}
16491unsafe extern "C" {
16492    #[link_name = "sk_X509_delete__extern"]
16493    pub fn sk_X509_delete(sk: *mut stack_st_X509, where_: usize) -> *mut X509;
16494}
16495unsafe extern "C" {
16496    #[link_name = "sk_X509_delete_ptr__extern"]
16497    pub fn sk_X509_delete_ptr(sk: *mut stack_st_X509, p: *const X509) -> *mut X509;
16498}
16499unsafe extern "C" {
16500    #[link_name = "sk_X509_delete_if__extern"]
16501    pub fn sk_X509_delete_if(
16502        sk: *mut stack_st_X509,
16503        func: sk_X509_delete_if_func,
16504        data: *mut ::core::ffi::c_void,
16505    );
16506}
16507unsafe extern "C" {
16508    #[link_name = "sk_X509_find__extern"]
16509    pub fn sk_X509_find(
16510        sk: *const stack_st_X509,
16511        out_index: *mut usize,
16512        p: *const X509,
16513    ) -> ::core::ffi::c_int;
16514}
16515unsafe extern "C" {
16516    #[link_name = "sk_X509_shift__extern"]
16517    pub fn sk_X509_shift(sk: *mut stack_st_X509) -> *mut X509;
16518}
16519unsafe extern "C" {
16520    #[link_name = "sk_X509_push__extern"]
16521    pub fn sk_X509_push(sk: *mut stack_st_X509, p: *mut X509) -> usize;
16522}
16523unsafe extern "C" {
16524    #[link_name = "sk_X509_pop__extern"]
16525    pub fn sk_X509_pop(sk: *mut stack_st_X509) -> *mut X509;
16526}
16527unsafe extern "C" {
16528    #[link_name = "sk_X509_dup__extern"]
16529    pub fn sk_X509_dup(sk: *const stack_st_X509) -> *mut stack_st_X509;
16530}
16531unsafe extern "C" {
16532    #[link_name = "sk_X509_sort__extern"]
16533    pub fn sk_X509_sort(sk: *mut stack_st_X509);
16534}
16535unsafe extern "C" {
16536    #[link_name = "sk_X509_sort_and_dedup__extern"]
16537    pub fn sk_X509_sort_and_dedup(sk: *mut stack_st_X509, free_func: sk_X509_free_func);
16538}
16539unsafe extern "C" {
16540    #[link_name = "sk_X509_is_sorted__extern"]
16541    pub fn sk_X509_is_sorted(sk: *const stack_st_X509) -> ::core::ffi::c_int;
16542}
16543unsafe extern "C" {
16544    #[link_name = "sk_X509_set_cmp_func__extern"]
16545    pub fn sk_X509_set_cmp_func(sk: *mut stack_st_X509, comp: sk_X509_cmp_func)
16546        -> sk_X509_cmp_func;
16547}
16548unsafe extern "C" {
16549    #[link_name = "sk_X509_deep_copy__extern"]
16550    pub fn sk_X509_deep_copy(
16551        sk: *const stack_st_X509,
16552        copy_func: sk_X509_copy_func,
16553        free_func: sk_X509_free_func,
16554    ) -> *mut stack_st_X509;
16555}
16556unsafe extern "C" {
16557    pub static X509_it: ASN1_ITEM;
16558}
16559unsafe extern "C" {
16560    pub fn X509_up_ref(x509: *mut X509) -> ::core::ffi::c_int;
16561}
16562unsafe extern "C" {
16563    pub fn X509_dup_ref(x509: *const X509) -> *mut X509;
16564}
16565unsafe extern "C" {
16566    pub fn X509_chain_up_ref(chain: *mut stack_st_X509) -> *mut stack_st_X509;
16567}
16568unsafe extern "C" {
16569    pub fn X509_dup(x509: *const X509) -> *mut X509;
16570}
16571unsafe extern "C" {
16572    pub fn X509_free(x509: *mut X509);
16573}
16574unsafe extern "C" {
16575    pub fn d2i_X509(
16576        out: *mut *mut X509,
16577        inp: *mut *const u8,
16578        len: ::core::ffi::c_long,
16579    ) -> *mut X509;
16580}
16581unsafe extern "C" {
16582    pub fn X509_parse_with_algorithms(
16583        buf: *mut CRYPTO_BUFFER,
16584        algs: *const *const EVP_PKEY_ALG,
16585        num_algs: usize,
16586    ) -> *mut X509;
16587}
16588unsafe extern "C" {
16589    pub fn X509_parse_from_buffer(buf: *mut CRYPTO_BUFFER) -> *mut X509;
16590}
16591unsafe extern "C" {
16592    pub fn i2d_X509(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16593}
16594unsafe extern "C" {
16595    pub fn X509_get_version(x509: *const X509) -> ::core::ffi::c_long;
16596}
16597unsafe extern "C" {
16598    pub fn X509_get0_serialNumber(x509: *const X509) -> *const ASN1_INTEGER;
16599}
16600unsafe extern "C" {
16601    pub fn X509_get0_notBefore(x509: *const X509) -> *const ASN1_TIME;
16602}
16603unsafe extern "C" {
16604    pub fn X509_get0_notAfter(x509: *const X509) -> *const ASN1_TIME;
16605}
16606unsafe extern "C" {
16607    pub fn X509_get_issuer_name(x509: *const X509) -> *mut X509_NAME;
16608}
16609unsafe extern "C" {
16610    pub fn X509_get_subject_name(x509: *const X509) -> *mut X509_NAME;
16611}
16612unsafe extern "C" {
16613    pub fn X509_get_X509_PUBKEY(x509: *const X509) -> *mut X509_PUBKEY;
16614}
16615unsafe extern "C" {
16616    pub fn X509_get0_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16617}
16618unsafe extern "C" {
16619    pub fn X509_get_pubkey(x509: *const X509) -> *mut EVP_PKEY;
16620}
16621unsafe extern "C" {
16622    pub fn X509_get0_pubkey_bitstr(x509: *const X509) -> *mut ASN1_BIT_STRING;
16623}
16624unsafe extern "C" {
16625    pub fn X509_check_private_key(x509: *const X509, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
16626}
16627unsafe extern "C" {
16628    pub fn X509_get0_uids(
16629        x509: *const X509,
16630        out_issuer_uid: *mut *const ASN1_BIT_STRING,
16631        out_subject_uid: *mut *const ASN1_BIT_STRING,
16632    );
16633}
16634unsafe extern "C" {
16635    pub fn X509_get_extension_flags(x509: *mut X509) -> u32;
16636}
16637unsafe extern "C" {
16638    pub fn X509_get_pathlen(x509: *mut X509) -> ::core::ffi::c_long;
16639}
16640unsafe extern "C" {
16641    pub fn X509_get_key_usage(x509: *mut X509) -> u32;
16642}
16643unsafe extern "C" {
16644    pub fn X509_get_extended_key_usage(x509: *mut X509) -> u32;
16645}
16646unsafe extern "C" {
16647    pub fn X509_get0_subject_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16648}
16649unsafe extern "C" {
16650    pub fn X509_get0_authority_key_id(x509: *mut X509) -> *const ASN1_OCTET_STRING;
16651}
16652#[repr(C)]
16653#[derive(Debug)]
16654pub struct stack_st_GENERAL_NAME {
16655    _unused: [u8; 0],
16656}
16657pub type sk_GENERAL_NAME_free_func =
16658    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_NAME)>;
16659pub type sk_GENERAL_NAME_copy_func =
16660    ::core::option::Option<unsafe extern "C" fn(arg1: *const GENERAL_NAME) -> *mut GENERAL_NAME>;
16661pub type sk_GENERAL_NAME_cmp_func = ::core::option::Option<
16662    unsafe extern "C" fn(
16663        arg1: *const *const GENERAL_NAME,
16664        arg2: *const *const GENERAL_NAME,
16665    ) -> ::core::ffi::c_int,
16666>;
16667pub type sk_GENERAL_NAME_delete_if_func = ::core::option::Option<
16668    unsafe extern "C" fn(
16669        arg1: *mut GENERAL_NAME,
16670        arg2: *mut ::core::ffi::c_void,
16671    ) -> ::core::ffi::c_int,
16672>;
16673unsafe extern "C" {
16674    #[link_name = "sk_GENERAL_NAME_call_free_func__extern"]
16675    pub fn sk_GENERAL_NAME_call_free_func(
16676        free_func: OPENSSL_sk_free_func,
16677        ptr: *mut ::core::ffi::c_void,
16678    );
16679}
16680unsafe extern "C" {
16681    #[link_name = "sk_GENERAL_NAME_call_copy_func__extern"]
16682    pub fn sk_GENERAL_NAME_call_copy_func(
16683        copy_func: OPENSSL_sk_copy_func,
16684        ptr: *const ::core::ffi::c_void,
16685    ) -> *mut ::core::ffi::c_void;
16686}
16687unsafe extern "C" {
16688    #[link_name = "sk_GENERAL_NAME_call_cmp_func__extern"]
16689    pub fn sk_GENERAL_NAME_call_cmp_func(
16690        cmp_func: OPENSSL_sk_cmp_func,
16691        a: *const ::core::ffi::c_void,
16692        b: *const ::core::ffi::c_void,
16693    ) -> ::core::ffi::c_int;
16694}
16695unsafe extern "C" {
16696    #[link_name = "sk_GENERAL_NAME_call_delete_if_func__extern"]
16697    pub fn sk_GENERAL_NAME_call_delete_if_func(
16698        func: OPENSSL_sk_delete_if_func,
16699        obj: *mut ::core::ffi::c_void,
16700        data: *mut ::core::ffi::c_void,
16701    ) -> ::core::ffi::c_int;
16702}
16703unsafe extern "C" {
16704    #[link_name = "sk_GENERAL_NAME_new__extern"]
16705    pub fn sk_GENERAL_NAME_new(comp: sk_GENERAL_NAME_cmp_func) -> *mut stack_st_GENERAL_NAME;
16706}
16707unsafe extern "C" {
16708    #[link_name = "sk_GENERAL_NAME_new_null__extern"]
16709    pub fn sk_GENERAL_NAME_new_null() -> *mut stack_st_GENERAL_NAME;
16710}
16711unsafe extern "C" {
16712    #[link_name = "sk_GENERAL_NAME_num__extern"]
16713    pub fn sk_GENERAL_NAME_num(sk: *const stack_st_GENERAL_NAME) -> usize;
16714}
16715unsafe extern "C" {
16716    #[link_name = "sk_GENERAL_NAME_zero__extern"]
16717    pub fn sk_GENERAL_NAME_zero(sk: *mut stack_st_GENERAL_NAME);
16718}
16719unsafe extern "C" {
16720    #[link_name = "sk_GENERAL_NAME_value__extern"]
16721    pub fn sk_GENERAL_NAME_value(sk: *const stack_st_GENERAL_NAME, i: usize) -> *mut GENERAL_NAME;
16722}
16723unsafe extern "C" {
16724    #[link_name = "sk_GENERAL_NAME_set__extern"]
16725    pub fn sk_GENERAL_NAME_set(
16726        sk: *mut stack_st_GENERAL_NAME,
16727        i: usize,
16728        p: *mut GENERAL_NAME,
16729    ) -> *mut GENERAL_NAME;
16730}
16731unsafe extern "C" {
16732    #[link_name = "sk_GENERAL_NAME_free__extern"]
16733    pub fn sk_GENERAL_NAME_free(sk: *mut stack_st_GENERAL_NAME);
16734}
16735unsafe extern "C" {
16736    #[link_name = "sk_GENERAL_NAME_pop_free__extern"]
16737    pub fn sk_GENERAL_NAME_pop_free(
16738        sk: *mut stack_st_GENERAL_NAME,
16739        free_func: sk_GENERAL_NAME_free_func,
16740    );
16741}
16742unsafe extern "C" {
16743    #[link_name = "sk_GENERAL_NAME_insert__extern"]
16744    pub fn sk_GENERAL_NAME_insert(
16745        sk: *mut stack_st_GENERAL_NAME,
16746        p: *mut GENERAL_NAME,
16747        where_: usize,
16748    ) -> usize;
16749}
16750unsafe extern "C" {
16751    #[link_name = "sk_GENERAL_NAME_delete__extern"]
16752    pub fn sk_GENERAL_NAME_delete(
16753        sk: *mut stack_st_GENERAL_NAME,
16754        where_: usize,
16755    ) -> *mut GENERAL_NAME;
16756}
16757unsafe extern "C" {
16758    #[link_name = "sk_GENERAL_NAME_delete_ptr__extern"]
16759    pub fn sk_GENERAL_NAME_delete_ptr(
16760        sk: *mut stack_st_GENERAL_NAME,
16761        p: *const GENERAL_NAME,
16762    ) -> *mut GENERAL_NAME;
16763}
16764unsafe extern "C" {
16765    #[link_name = "sk_GENERAL_NAME_delete_if__extern"]
16766    pub fn sk_GENERAL_NAME_delete_if(
16767        sk: *mut stack_st_GENERAL_NAME,
16768        func: sk_GENERAL_NAME_delete_if_func,
16769        data: *mut ::core::ffi::c_void,
16770    );
16771}
16772unsafe extern "C" {
16773    #[link_name = "sk_GENERAL_NAME_find__extern"]
16774    pub fn sk_GENERAL_NAME_find(
16775        sk: *const stack_st_GENERAL_NAME,
16776        out_index: *mut usize,
16777        p: *const GENERAL_NAME,
16778    ) -> ::core::ffi::c_int;
16779}
16780unsafe extern "C" {
16781    #[link_name = "sk_GENERAL_NAME_shift__extern"]
16782    pub fn sk_GENERAL_NAME_shift(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16783}
16784unsafe extern "C" {
16785    #[link_name = "sk_GENERAL_NAME_push__extern"]
16786    pub fn sk_GENERAL_NAME_push(sk: *mut stack_st_GENERAL_NAME, p: *mut GENERAL_NAME) -> usize;
16787}
16788unsafe extern "C" {
16789    #[link_name = "sk_GENERAL_NAME_pop__extern"]
16790    pub fn sk_GENERAL_NAME_pop(sk: *mut stack_st_GENERAL_NAME) -> *mut GENERAL_NAME;
16791}
16792unsafe extern "C" {
16793    #[link_name = "sk_GENERAL_NAME_dup__extern"]
16794    pub fn sk_GENERAL_NAME_dup(sk: *const stack_st_GENERAL_NAME) -> *mut stack_st_GENERAL_NAME;
16795}
16796unsafe extern "C" {
16797    #[link_name = "sk_GENERAL_NAME_sort__extern"]
16798    pub fn sk_GENERAL_NAME_sort(sk: *mut stack_st_GENERAL_NAME);
16799}
16800unsafe extern "C" {
16801    #[link_name = "sk_GENERAL_NAME_sort_and_dedup__extern"]
16802    pub fn sk_GENERAL_NAME_sort_and_dedup(
16803        sk: *mut stack_st_GENERAL_NAME,
16804        free_func: sk_GENERAL_NAME_free_func,
16805    );
16806}
16807unsafe extern "C" {
16808    #[link_name = "sk_GENERAL_NAME_is_sorted__extern"]
16809    pub fn sk_GENERAL_NAME_is_sorted(sk: *const stack_st_GENERAL_NAME) -> ::core::ffi::c_int;
16810}
16811unsafe extern "C" {
16812    #[link_name = "sk_GENERAL_NAME_set_cmp_func__extern"]
16813    pub fn sk_GENERAL_NAME_set_cmp_func(
16814        sk: *mut stack_st_GENERAL_NAME,
16815        comp: sk_GENERAL_NAME_cmp_func,
16816    ) -> sk_GENERAL_NAME_cmp_func;
16817}
16818unsafe extern "C" {
16819    #[link_name = "sk_GENERAL_NAME_deep_copy__extern"]
16820    pub fn sk_GENERAL_NAME_deep_copy(
16821        sk: *const stack_st_GENERAL_NAME,
16822        copy_func: sk_GENERAL_NAME_copy_func,
16823        free_func: sk_GENERAL_NAME_free_func,
16824    ) -> *mut stack_st_GENERAL_NAME;
16825}
16826pub type GENERAL_NAMES = stack_st_GENERAL_NAME;
16827unsafe extern "C" {
16828    pub fn X509_get0_authority_issuer(x509: *mut X509) -> *const GENERAL_NAMES;
16829}
16830unsafe extern "C" {
16831    pub fn X509_get0_authority_serial(x509: *mut X509) -> *const ASN1_INTEGER;
16832}
16833#[repr(C)]
16834#[derive(Debug)]
16835pub struct stack_st_X509_EXTENSION {
16836    _unused: [u8; 0],
16837}
16838unsafe extern "C" {
16839    pub fn X509_get0_extensions(x509: *const X509) -> *const stack_st_X509_EXTENSION;
16840}
16841unsafe extern "C" {
16842    pub fn X509_get_ext_count(x: *const X509) -> ::core::ffi::c_int;
16843}
16844unsafe extern "C" {
16845    pub fn X509_get_ext_by_NID(
16846        x: *const X509,
16847        nid: ::core::ffi::c_int,
16848        lastpos: ::core::ffi::c_int,
16849    ) -> ::core::ffi::c_int;
16850}
16851unsafe extern "C" {
16852    pub fn X509_get_ext_by_OBJ(
16853        x: *const X509,
16854        obj: *const ASN1_OBJECT,
16855        lastpos: ::core::ffi::c_int,
16856    ) -> ::core::ffi::c_int;
16857}
16858unsafe extern "C" {
16859    pub fn X509_get_ext_by_critical(
16860        x: *const X509,
16861        crit: ::core::ffi::c_int,
16862        lastpos: ::core::ffi::c_int,
16863    ) -> ::core::ffi::c_int;
16864}
16865unsafe extern "C" {
16866    pub fn X509_get_ext(x: *const X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
16867}
16868unsafe extern "C" {
16869    pub fn X509_get_ext_d2i(
16870        x509: *const X509,
16871        nid: ::core::ffi::c_int,
16872        out_critical: *mut ::core::ffi::c_int,
16873        out_idx: *mut ::core::ffi::c_int,
16874    ) -> *mut ::core::ffi::c_void;
16875}
16876unsafe extern "C" {
16877    pub fn X509_get0_tbs_sigalg(x509: *const X509) -> *const X509_ALGOR;
16878}
16879unsafe extern "C" {
16880    pub fn X509_get0_signature(
16881        out_sig: *mut *const ASN1_BIT_STRING,
16882        out_alg: *mut *const X509_ALGOR,
16883        x509: *const X509,
16884    );
16885}
16886unsafe extern "C" {
16887    pub fn X509_get_signature_nid(x509: *const X509) -> ::core::ffi::c_int;
16888}
16889unsafe extern "C" {
16890    pub fn i2d_X509_tbs(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16891}
16892unsafe extern "C" {
16893    pub fn X509_verify(x509: *const X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
16894}
16895unsafe extern "C" {
16896    pub fn X509_get1_email(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
16897}
16898unsafe extern "C" {
16899    pub fn X509_get1_ocsp(x509: *const X509) -> *mut stack_st_OPENSSL_STRING;
16900}
16901unsafe extern "C" {
16902    pub fn X509_email_free(sk: *mut stack_st_OPENSSL_STRING);
16903}
16904unsafe extern "C" {
16905    pub fn X509_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
16906}
16907unsafe extern "C" {
16908    pub fn X509_new() -> *mut X509;
16909}
16910unsafe extern "C" {
16911    pub fn X509_set_version(x509: *mut X509, version: ::core::ffi::c_long) -> ::core::ffi::c_int;
16912}
16913unsafe extern "C" {
16914    pub fn X509_set_serialNumber(
16915        x509: *mut X509,
16916        serial: *const ASN1_INTEGER,
16917    ) -> ::core::ffi::c_int;
16918}
16919unsafe extern "C" {
16920    pub fn X509_set1_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
16921}
16922unsafe extern "C" {
16923    pub fn X509_set1_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
16924}
16925unsafe extern "C" {
16926    pub fn X509_getm_notBefore(x509: *mut X509) -> *mut ASN1_TIME;
16927}
16928unsafe extern "C" {
16929    pub fn X509_getm_notAfter(x: *mut X509) -> *mut ASN1_TIME;
16930}
16931unsafe extern "C" {
16932    pub fn X509_set_issuer_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
16933}
16934unsafe extern "C" {
16935    pub fn X509_set_subject_name(x509: *mut X509, name: *const X509_NAME) -> ::core::ffi::c_int;
16936}
16937unsafe extern "C" {
16938    pub fn X509_set_pubkey(x509: *mut X509, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
16939}
16940unsafe extern "C" {
16941    pub fn X509_delete_ext(x: *mut X509, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
16942}
16943unsafe extern "C" {
16944    pub fn X509_add_ext(
16945        x: *mut X509,
16946        ex: *const X509_EXTENSION,
16947        loc: ::core::ffi::c_int,
16948    ) -> ::core::ffi::c_int;
16949}
16950unsafe extern "C" {
16951    pub fn X509_add1_ext_i2d(
16952        x: *mut X509,
16953        nid: ::core::ffi::c_int,
16954        value: *mut ::core::ffi::c_void,
16955        crit: ::core::ffi::c_int,
16956        flags: ::core::ffi::c_ulong,
16957    ) -> ::core::ffi::c_int;
16958}
16959unsafe extern "C" {
16960    pub fn X509_sign(x509: *mut X509, pkey: *mut EVP_PKEY, md: *const EVP_MD)
16961        -> ::core::ffi::c_int;
16962}
16963unsafe extern "C" {
16964    pub fn X509_sign_ctx(x509: *mut X509, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
16965}
16966unsafe extern "C" {
16967    pub fn i2d_re_X509_tbs(x509: *mut X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16968}
16969unsafe extern "C" {
16970    pub fn X509_set1_signature_algo(x509: *mut X509, algo: *const X509_ALGOR)
16971        -> ::core::ffi::c_int;
16972}
16973unsafe extern "C" {
16974    pub fn X509_set1_signature_value(
16975        x509: *mut X509,
16976        sig: *const u8,
16977        sig_len: usize,
16978    ) -> ::core::ffi::c_int;
16979}
16980unsafe extern "C" {
16981    pub fn i2d_X509_AUX(x509: *const X509, outp: *mut *mut u8) -> ::core::ffi::c_int;
16982}
16983unsafe extern "C" {
16984    pub fn d2i_X509_AUX(
16985        x509: *mut *mut X509,
16986        inp: *mut *const u8,
16987        length: ::core::ffi::c_long,
16988    ) -> *mut X509;
16989}
16990unsafe extern "C" {
16991    pub fn X509_alias_set1(
16992        x509: *mut X509,
16993        name: *const u8,
16994        len: ossl_ssize_t,
16995    ) -> ::core::ffi::c_int;
16996}
16997unsafe extern "C" {
16998    pub fn X509_keyid_set1(x509: *mut X509, id: *const u8, len: ossl_ssize_t)
16999        -> ::core::ffi::c_int;
17000}
17001unsafe extern "C" {
17002    pub fn X509_alias_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
17003}
17004unsafe extern "C" {
17005    pub fn X509_keyid_get0(x509: *const X509, out_len: *mut ::core::ffi::c_int) -> *const u8;
17006}
17007unsafe extern "C" {
17008    pub fn X509_add1_trust_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
17009}
17010unsafe extern "C" {
17011    pub fn X509_add1_reject_object(x509: *mut X509, obj: *const ASN1_OBJECT) -> ::core::ffi::c_int;
17012}
17013unsafe extern "C" {
17014    pub fn X509_trust_clear(x509: *mut X509);
17015}
17016unsafe extern "C" {
17017    pub fn X509_reject_clear(x509: *mut X509);
17018}
17019pub type sk_X509_CRL_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_CRL)>;
17020pub type sk_X509_CRL_copy_func =
17021    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_CRL) -> *mut X509_CRL>;
17022pub type sk_X509_CRL_cmp_func = ::core::option::Option<
17023    unsafe extern "C" fn(
17024        arg1: *const *const X509_CRL,
17025        arg2: *const *const X509_CRL,
17026    ) -> ::core::ffi::c_int,
17027>;
17028pub type sk_X509_CRL_delete_if_func = ::core::option::Option<
17029    unsafe extern "C" fn(arg1: *mut X509_CRL, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
17030>;
17031unsafe extern "C" {
17032    #[link_name = "sk_X509_CRL_call_free_func__extern"]
17033    pub fn sk_X509_CRL_call_free_func(
17034        free_func: OPENSSL_sk_free_func,
17035        ptr: *mut ::core::ffi::c_void,
17036    );
17037}
17038unsafe extern "C" {
17039    #[link_name = "sk_X509_CRL_call_copy_func__extern"]
17040    pub fn sk_X509_CRL_call_copy_func(
17041        copy_func: OPENSSL_sk_copy_func,
17042        ptr: *const ::core::ffi::c_void,
17043    ) -> *mut ::core::ffi::c_void;
17044}
17045unsafe extern "C" {
17046    #[link_name = "sk_X509_CRL_call_cmp_func__extern"]
17047    pub fn sk_X509_CRL_call_cmp_func(
17048        cmp_func: OPENSSL_sk_cmp_func,
17049        a: *const ::core::ffi::c_void,
17050        b: *const ::core::ffi::c_void,
17051    ) -> ::core::ffi::c_int;
17052}
17053unsafe extern "C" {
17054    #[link_name = "sk_X509_CRL_call_delete_if_func__extern"]
17055    pub fn sk_X509_CRL_call_delete_if_func(
17056        func: OPENSSL_sk_delete_if_func,
17057        obj: *mut ::core::ffi::c_void,
17058        data: *mut ::core::ffi::c_void,
17059    ) -> ::core::ffi::c_int;
17060}
17061unsafe extern "C" {
17062    #[link_name = "sk_X509_CRL_new__extern"]
17063    pub fn sk_X509_CRL_new(comp: sk_X509_CRL_cmp_func) -> *mut stack_st_X509_CRL;
17064}
17065unsafe extern "C" {
17066    #[link_name = "sk_X509_CRL_new_null__extern"]
17067    pub fn sk_X509_CRL_new_null() -> *mut stack_st_X509_CRL;
17068}
17069unsafe extern "C" {
17070    #[link_name = "sk_X509_CRL_num__extern"]
17071    pub fn sk_X509_CRL_num(sk: *const stack_st_X509_CRL) -> usize;
17072}
17073unsafe extern "C" {
17074    #[link_name = "sk_X509_CRL_zero__extern"]
17075    pub fn sk_X509_CRL_zero(sk: *mut stack_st_X509_CRL);
17076}
17077unsafe extern "C" {
17078    #[link_name = "sk_X509_CRL_value__extern"]
17079    pub fn sk_X509_CRL_value(sk: *const stack_st_X509_CRL, i: usize) -> *mut X509_CRL;
17080}
17081unsafe extern "C" {
17082    #[link_name = "sk_X509_CRL_set__extern"]
17083    pub fn sk_X509_CRL_set(sk: *mut stack_st_X509_CRL, i: usize, p: *mut X509_CRL)
17084        -> *mut X509_CRL;
17085}
17086unsafe extern "C" {
17087    #[link_name = "sk_X509_CRL_free__extern"]
17088    pub fn sk_X509_CRL_free(sk: *mut stack_st_X509_CRL);
17089}
17090unsafe extern "C" {
17091    #[link_name = "sk_X509_CRL_pop_free__extern"]
17092    pub fn sk_X509_CRL_pop_free(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
17093}
17094unsafe extern "C" {
17095    #[link_name = "sk_X509_CRL_insert__extern"]
17096    pub fn sk_X509_CRL_insert(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL, where_: usize)
17097        -> usize;
17098}
17099unsafe extern "C" {
17100    #[link_name = "sk_X509_CRL_delete__extern"]
17101    pub fn sk_X509_CRL_delete(sk: *mut stack_st_X509_CRL, where_: usize) -> *mut X509_CRL;
17102}
17103unsafe extern "C" {
17104    #[link_name = "sk_X509_CRL_delete_ptr__extern"]
17105    pub fn sk_X509_CRL_delete_ptr(sk: *mut stack_st_X509_CRL, p: *const X509_CRL) -> *mut X509_CRL;
17106}
17107unsafe extern "C" {
17108    #[link_name = "sk_X509_CRL_delete_if__extern"]
17109    pub fn sk_X509_CRL_delete_if(
17110        sk: *mut stack_st_X509_CRL,
17111        func: sk_X509_CRL_delete_if_func,
17112        data: *mut ::core::ffi::c_void,
17113    );
17114}
17115unsafe extern "C" {
17116    #[link_name = "sk_X509_CRL_find__extern"]
17117    pub fn sk_X509_CRL_find(
17118        sk: *const stack_st_X509_CRL,
17119        out_index: *mut usize,
17120        p: *const X509_CRL,
17121    ) -> ::core::ffi::c_int;
17122}
17123unsafe extern "C" {
17124    #[link_name = "sk_X509_CRL_shift__extern"]
17125    pub fn sk_X509_CRL_shift(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17126}
17127unsafe extern "C" {
17128    #[link_name = "sk_X509_CRL_push__extern"]
17129    pub fn sk_X509_CRL_push(sk: *mut stack_st_X509_CRL, p: *mut X509_CRL) -> usize;
17130}
17131unsafe extern "C" {
17132    #[link_name = "sk_X509_CRL_pop__extern"]
17133    pub fn sk_X509_CRL_pop(sk: *mut stack_st_X509_CRL) -> *mut X509_CRL;
17134}
17135unsafe extern "C" {
17136    #[link_name = "sk_X509_CRL_dup__extern"]
17137    pub fn sk_X509_CRL_dup(sk: *const stack_st_X509_CRL) -> *mut stack_st_X509_CRL;
17138}
17139unsafe extern "C" {
17140    #[link_name = "sk_X509_CRL_sort__extern"]
17141    pub fn sk_X509_CRL_sort(sk: *mut stack_st_X509_CRL);
17142}
17143unsafe extern "C" {
17144    #[link_name = "sk_X509_CRL_sort_and_dedup__extern"]
17145    pub fn sk_X509_CRL_sort_and_dedup(sk: *mut stack_st_X509_CRL, free_func: sk_X509_CRL_free_func);
17146}
17147unsafe extern "C" {
17148    #[link_name = "sk_X509_CRL_is_sorted__extern"]
17149    pub fn sk_X509_CRL_is_sorted(sk: *const stack_st_X509_CRL) -> ::core::ffi::c_int;
17150}
17151unsafe extern "C" {
17152    #[link_name = "sk_X509_CRL_set_cmp_func__extern"]
17153    pub fn sk_X509_CRL_set_cmp_func(
17154        sk: *mut stack_st_X509_CRL,
17155        comp: sk_X509_CRL_cmp_func,
17156    ) -> sk_X509_CRL_cmp_func;
17157}
17158unsafe extern "C" {
17159    #[link_name = "sk_X509_CRL_deep_copy__extern"]
17160    pub fn sk_X509_CRL_deep_copy(
17161        sk: *const stack_st_X509_CRL,
17162        copy_func: sk_X509_CRL_copy_func,
17163        free_func: sk_X509_CRL_free_func,
17164    ) -> *mut stack_st_X509_CRL;
17165}
17166#[repr(C)]
17167#[derive(Debug)]
17168pub struct stack_st_X509_REVOKED {
17169    _unused: [u8; 0],
17170}
17171pub type sk_X509_REVOKED_free_func =
17172    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_REVOKED)>;
17173pub type sk_X509_REVOKED_copy_func =
17174    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_REVOKED) -> *mut X509_REVOKED>;
17175pub type sk_X509_REVOKED_cmp_func = ::core::option::Option<
17176    unsafe extern "C" fn(
17177        arg1: *const *const X509_REVOKED,
17178        arg2: *const *const X509_REVOKED,
17179    ) -> ::core::ffi::c_int,
17180>;
17181pub type sk_X509_REVOKED_delete_if_func = ::core::option::Option<
17182    unsafe extern "C" fn(
17183        arg1: *mut X509_REVOKED,
17184        arg2: *mut ::core::ffi::c_void,
17185    ) -> ::core::ffi::c_int,
17186>;
17187unsafe extern "C" {
17188    #[link_name = "sk_X509_REVOKED_call_free_func__extern"]
17189    pub fn sk_X509_REVOKED_call_free_func(
17190        free_func: OPENSSL_sk_free_func,
17191        ptr: *mut ::core::ffi::c_void,
17192    );
17193}
17194unsafe extern "C" {
17195    #[link_name = "sk_X509_REVOKED_call_copy_func__extern"]
17196    pub fn sk_X509_REVOKED_call_copy_func(
17197        copy_func: OPENSSL_sk_copy_func,
17198        ptr: *const ::core::ffi::c_void,
17199    ) -> *mut ::core::ffi::c_void;
17200}
17201unsafe extern "C" {
17202    #[link_name = "sk_X509_REVOKED_call_cmp_func__extern"]
17203    pub fn sk_X509_REVOKED_call_cmp_func(
17204        cmp_func: OPENSSL_sk_cmp_func,
17205        a: *const ::core::ffi::c_void,
17206        b: *const ::core::ffi::c_void,
17207    ) -> ::core::ffi::c_int;
17208}
17209unsafe extern "C" {
17210    #[link_name = "sk_X509_REVOKED_call_delete_if_func__extern"]
17211    pub fn sk_X509_REVOKED_call_delete_if_func(
17212        func: OPENSSL_sk_delete_if_func,
17213        obj: *mut ::core::ffi::c_void,
17214        data: *mut ::core::ffi::c_void,
17215    ) -> ::core::ffi::c_int;
17216}
17217unsafe extern "C" {
17218    #[link_name = "sk_X509_REVOKED_new__extern"]
17219    pub fn sk_X509_REVOKED_new(comp: sk_X509_REVOKED_cmp_func) -> *mut stack_st_X509_REVOKED;
17220}
17221unsafe extern "C" {
17222    #[link_name = "sk_X509_REVOKED_new_null__extern"]
17223    pub fn sk_X509_REVOKED_new_null() -> *mut stack_st_X509_REVOKED;
17224}
17225unsafe extern "C" {
17226    #[link_name = "sk_X509_REVOKED_num__extern"]
17227    pub fn sk_X509_REVOKED_num(sk: *const stack_st_X509_REVOKED) -> usize;
17228}
17229unsafe extern "C" {
17230    #[link_name = "sk_X509_REVOKED_zero__extern"]
17231    pub fn sk_X509_REVOKED_zero(sk: *mut stack_st_X509_REVOKED);
17232}
17233unsafe extern "C" {
17234    #[link_name = "sk_X509_REVOKED_value__extern"]
17235    pub fn sk_X509_REVOKED_value(sk: *const stack_st_X509_REVOKED, i: usize) -> *mut X509_REVOKED;
17236}
17237unsafe extern "C" {
17238    #[link_name = "sk_X509_REVOKED_set__extern"]
17239    pub fn sk_X509_REVOKED_set(
17240        sk: *mut stack_st_X509_REVOKED,
17241        i: usize,
17242        p: *mut X509_REVOKED,
17243    ) -> *mut X509_REVOKED;
17244}
17245unsafe extern "C" {
17246    #[link_name = "sk_X509_REVOKED_free__extern"]
17247    pub fn sk_X509_REVOKED_free(sk: *mut stack_st_X509_REVOKED);
17248}
17249unsafe extern "C" {
17250    #[link_name = "sk_X509_REVOKED_pop_free__extern"]
17251    pub fn sk_X509_REVOKED_pop_free(
17252        sk: *mut stack_st_X509_REVOKED,
17253        free_func: sk_X509_REVOKED_free_func,
17254    );
17255}
17256unsafe extern "C" {
17257    #[link_name = "sk_X509_REVOKED_insert__extern"]
17258    pub fn sk_X509_REVOKED_insert(
17259        sk: *mut stack_st_X509_REVOKED,
17260        p: *mut X509_REVOKED,
17261        where_: usize,
17262    ) -> usize;
17263}
17264unsafe extern "C" {
17265    #[link_name = "sk_X509_REVOKED_delete__extern"]
17266    pub fn sk_X509_REVOKED_delete(
17267        sk: *mut stack_st_X509_REVOKED,
17268        where_: usize,
17269    ) -> *mut X509_REVOKED;
17270}
17271unsafe extern "C" {
17272    #[link_name = "sk_X509_REVOKED_delete_ptr__extern"]
17273    pub fn sk_X509_REVOKED_delete_ptr(
17274        sk: *mut stack_st_X509_REVOKED,
17275        p: *const X509_REVOKED,
17276    ) -> *mut X509_REVOKED;
17277}
17278unsafe extern "C" {
17279    #[link_name = "sk_X509_REVOKED_delete_if__extern"]
17280    pub fn sk_X509_REVOKED_delete_if(
17281        sk: *mut stack_st_X509_REVOKED,
17282        func: sk_X509_REVOKED_delete_if_func,
17283        data: *mut ::core::ffi::c_void,
17284    );
17285}
17286unsafe extern "C" {
17287    #[link_name = "sk_X509_REVOKED_find__extern"]
17288    pub fn sk_X509_REVOKED_find(
17289        sk: *const stack_st_X509_REVOKED,
17290        out_index: *mut usize,
17291        p: *const X509_REVOKED,
17292    ) -> ::core::ffi::c_int;
17293}
17294unsafe extern "C" {
17295    #[link_name = "sk_X509_REVOKED_shift__extern"]
17296    pub fn sk_X509_REVOKED_shift(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17297}
17298unsafe extern "C" {
17299    #[link_name = "sk_X509_REVOKED_push__extern"]
17300    pub fn sk_X509_REVOKED_push(sk: *mut stack_st_X509_REVOKED, p: *mut X509_REVOKED) -> usize;
17301}
17302unsafe extern "C" {
17303    #[link_name = "sk_X509_REVOKED_pop__extern"]
17304    pub fn sk_X509_REVOKED_pop(sk: *mut stack_st_X509_REVOKED) -> *mut X509_REVOKED;
17305}
17306unsafe extern "C" {
17307    #[link_name = "sk_X509_REVOKED_dup__extern"]
17308    pub fn sk_X509_REVOKED_dup(sk: *const stack_st_X509_REVOKED) -> *mut stack_st_X509_REVOKED;
17309}
17310unsafe extern "C" {
17311    #[link_name = "sk_X509_REVOKED_sort__extern"]
17312    pub fn sk_X509_REVOKED_sort(sk: *mut stack_st_X509_REVOKED);
17313}
17314unsafe extern "C" {
17315    #[link_name = "sk_X509_REVOKED_sort_and_dedup__extern"]
17316    pub fn sk_X509_REVOKED_sort_and_dedup(
17317        sk: *mut stack_st_X509_REVOKED,
17318        free_func: sk_X509_REVOKED_free_func,
17319    );
17320}
17321unsafe extern "C" {
17322    #[link_name = "sk_X509_REVOKED_is_sorted__extern"]
17323    pub fn sk_X509_REVOKED_is_sorted(sk: *const stack_st_X509_REVOKED) -> ::core::ffi::c_int;
17324}
17325unsafe extern "C" {
17326    #[link_name = "sk_X509_REVOKED_set_cmp_func__extern"]
17327    pub fn sk_X509_REVOKED_set_cmp_func(
17328        sk: *mut stack_st_X509_REVOKED,
17329        comp: sk_X509_REVOKED_cmp_func,
17330    ) -> sk_X509_REVOKED_cmp_func;
17331}
17332unsafe extern "C" {
17333    #[link_name = "sk_X509_REVOKED_deep_copy__extern"]
17334    pub fn sk_X509_REVOKED_deep_copy(
17335        sk: *const stack_st_X509_REVOKED,
17336        copy_func: sk_X509_REVOKED_copy_func,
17337        free_func: sk_X509_REVOKED_free_func,
17338    ) -> *mut stack_st_X509_REVOKED;
17339}
17340unsafe extern "C" {
17341    pub fn X509_CRL_up_ref(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17342}
17343unsafe extern "C" {
17344    pub fn X509_CRL_dup(crl: *const X509_CRL) -> *mut X509_CRL;
17345}
17346unsafe extern "C" {
17347    pub fn X509_CRL_free(crl: *mut X509_CRL);
17348}
17349unsafe extern "C" {
17350    pub fn d2i_X509_CRL(
17351        out: *mut *mut X509_CRL,
17352        inp: *mut *const u8,
17353        len: ::core::ffi::c_long,
17354    ) -> *mut X509_CRL;
17355}
17356unsafe extern "C" {
17357    pub fn i2d_X509_CRL(crl: *const X509_CRL, outp: *mut *mut u8) -> ::core::ffi::c_int;
17358}
17359unsafe extern "C" {
17360    pub fn X509_CRL_match(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
17361}
17362unsafe extern "C" {
17363    pub fn X509_CRL_get_version(crl: *const X509_CRL) -> ::core::ffi::c_long;
17364}
17365unsafe extern "C" {
17366    pub fn X509_CRL_get0_lastUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17367}
17368unsafe extern "C" {
17369    pub fn X509_CRL_get0_nextUpdate(crl: *const X509_CRL) -> *const ASN1_TIME;
17370}
17371unsafe extern "C" {
17372    pub fn X509_CRL_get_issuer(crl: *const X509_CRL) -> *mut X509_NAME;
17373}
17374unsafe extern "C" {
17375    pub fn X509_CRL_get0_by_serial(
17376        crl: *mut X509_CRL,
17377        out: *mut *mut X509_REVOKED,
17378        serial: *const ASN1_INTEGER,
17379    ) -> ::core::ffi::c_int;
17380}
17381unsafe extern "C" {
17382    pub fn X509_CRL_get0_by_cert(
17383        crl: *mut X509_CRL,
17384        out: *mut *mut X509_REVOKED,
17385        x509: *const X509,
17386    ) -> ::core::ffi::c_int;
17387}
17388unsafe extern "C" {
17389    pub fn X509_CRL_get_REVOKED(crl: *mut X509_CRL) -> *mut stack_st_X509_REVOKED;
17390}
17391unsafe extern "C" {
17392    pub fn X509_CRL_get0_extensions(crl: *const X509_CRL) -> *const stack_st_X509_EXTENSION;
17393}
17394unsafe extern "C" {
17395    pub fn X509_CRL_get_ext_count(x: *const X509_CRL) -> ::core::ffi::c_int;
17396}
17397unsafe extern "C" {
17398    pub fn X509_CRL_get_ext_by_NID(
17399        x: *const X509_CRL,
17400        nid: ::core::ffi::c_int,
17401        lastpos: ::core::ffi::c_int,
17402    ) -> ::core::ffi::c_int;
17403}
17404unsafe extern "C" {
17405    pub fn X509_CRL_get_ext_by_OBJ(
17406        x: *const X509_CRL,
17407        obj: *const ASN1_OBJECT,
17408        lastpos: ::core::ffi::c_int,
17409    ) -> ::core::ffi::c_int;
17410}
17411unsafe extern "C" {
17412    pub fn X509_CRL_get_ext_by_critical(
17413        x: *const X509_CRL,
17414        crit: ::core::ffi::c_int,
17415        lastpos: ::core::ffi::c_int,
17416    ) -> ::core::ffi::c_int;
17417}
17418unsafe extern "C" {
17419    pub fn X509_CRL_get_ext(x: *const X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17420}
17421unsafe extern "C" {
17422    pub fn X509_CRL_get_ext_d2i(
17423        crl: *const X509_CRL,
17424        nid: ::core::ffi::c_int,
17425        out_critical: *mut ::core::ffi::c_int,
17426        out_idx: *mut ::core::ffi::c_int,
17427    ) -> *mut ::core::ffi::c_void;
17428}
17429unsafe extern "C" {
17430    pub fn X509_CRL_get0_signature(
17431        crl: *const X509_CRL,
17432        out_sig: *mut *const ASN1_BIT_STRING,
17433        out_alg: *mut *const X509_ALGOR,
17434    );
17435}
17436unsafe extern "C" {
17437    pub fn X509_CRL_get_signature_nid(crl: *const X509_CRL) -> ::core::ffi::c_int;
17438}
17439unsafe extern "C" {
17440    pub fn i2d_X509_CRL_tbs(
17441        crl: *const X509_CRL,
17442        outp: *mut *mut ::core::ffi::c_uchar,
17443    ) -> ::core::ffi::c_int;
17444}
17445unsafe extern "C" {
17446    pub fn X509_CRL_verify(crl: *const X509_CRL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17447}
17448unsafe extern "C" {
17449    pub fn X509_CRL_new() -> *mut X509_CRL;
17450}
17451unsafe extern "C" {
17452    pub fn X509_CRL_set_version(
17453        crl: *mut X509_CRL,
17454        version: ::core::ffi::c_long,
17455    ) -> ::core::ffi::c_int;
17456}
17457unsafe extern "C" {
17458    pub fn X509_CRL_set_issuer_name(
17459        crl: *mut X509_CRL,
17460        name: *const X509_NAME,
17461    ) -> ::core::ffi::c_int;
17462}
17463unsafe extern "C" {
17464    pub fn X509_CRL_set1_lastUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17465        -> ::core::ffi::c_int;
17466}
17467unsafe extern "C" {
17468    pub fn X509_CRL_set1_nextUpdate(crl: *mut X509_CRL, tm: *const ASN1_TIME)
17469        -> ::core::ffi::c_int;
17470}
17471unsafe extern "C" {
17472    pub fn X509_CRL_add0_revoked(crl: *mut X509_CRL, rev: *mut X509_REVOKED) -> ::core::ffi::c_int;
17473}
17474unsafe extern "C" {
17475    pub fn X509_CRL_sort(crl: *mut X509_CRL) -> ::core::ffi::c_int;
17476}
17477unsafe extern "C" {
17478    pub fn X509_CRL_delete_ext(x: *mut X509_CRL, loc: ::core::ffi::c_int) -> *mut X509_EXTENSION;
17479}
17480unsafe extern "C" {
17481    pub fn X509_CRL_add_ext(
17482        x: *mut X509_CRL,
17483        ex: *const X509_EXTENSION,
17484        loc: ::core::ffi::c_int,
17485    ) -> ::core::ffi::c_int;
17486}
17487unsafe extern "C" {
17488    pub fn X509_CRL_add1_ext_i2d(
17489        x: *mut X509_CRL,
17490        nid: ::core::ffi::c_int,
17491        value: *mut ::core::ffi::c_void,
17492        crit: ::core::ffi::c_int,
17493        flags: ::core::ffi::c_ulong,
17494    ) -> ::core::ffi::c_int;
17495}
17496unsafe extern "C" {
17497    pub fn X509_CRL_sign(
17498        crl: *mut X509_CRL,
17499        pkey: *mut EVP_PKEY,
17500        md: *const EVP_MD,
17501    ) -> ::core::ffi::c_int;
17502}
17503unsafe extern "C" {
17504    pub fn X509_CRL_sign_ctx(crl: *mut X509_CRL, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17505}
17506unsafe extern "C" {
17507    pub fn i2d_re_X509_CRL_tbs(
17508        crl: *mut X509_CRL,
17509        outp: *mut *mut ::core::ffi::c_uchar,
17510    ) -> ::core::ffi::c_int;
17511}
17512unsafe extern "C" {
17513    pub fn X509_CRL_set1_signature_algo(
17514        crl: *mut X509_CRL,
17515        algo: *const X509_ALGOR,
17516    ) -> ::core::ffi::c_int;
17517}
17518unsafe extern "C" {
17519    pub fn X509_CRL_set1_signature_value(
17520        crl: *mut X509_CRL,
17521        sig: *const u8,
17522        sig_len: usize,
17523    ) -> ::core::ffi::c_int;
17524}
17525unsafe extern "C" {
17526    pub fn X509_REVOKED_new() -> *mut X509_REVOKED;
17527}
17528unsafe extern "C" {
17529    pub fn X509_REVOKED_free(rev: *mut X509_REVOKED);
17530}
17531unsafe extern "C" {
17532    pub fn d2i_X509_REVOKED(
17533        out: *mut *mut X509_REVOKED,
17534        inp: *mut *const u8,
17535        len: ::core::ffi::c_long,
17536    ) -> *mut X509_REVOKED;
17537}
17538unsafe extern "C" {
17539    pub fn i2d_X509_REVOKED(alg: *const X509_REVOKED, outp: *mut *mut u8) -> ::core::ffi::c_int;
17540}
17541unsafe extern "C" {
17542    pub fn X509_REVOKED_dup(rev: *const X509_REVOKED) -> *mut X509_REVOKED;
17543}
17544unsafe extern "C" {
17545    pub fn X509_REVOKED_get0_serialNumber(revoked: *const X509_REVOKED) -> *const ASN1_INTEGER;
17546}
17547unsafe extern "C" {
17548    pub fn X509_REVOKED_set_serialNumber(
17549        revoked: *mut X509_REVOKED,
17550        serial: *const ASN1_INTEGER,
17551    ) -> ::core::ffi::c_int;
17552}
17553unsafe extern "C" {
17554    pub fn X509_REVOKED_get0_revocationDate(revoked: *const X509_REVOKED) -> *const ASN1_TIME;
17555}
17556unsafe extern "C" {
17557    pub fn X509_REVOKED_set_revocationDate(
17558        revoked: *mut X509_REVOKED,
17559        tm: *const ASN1_TIME,
17560    ) -> ::core::ffi::c_int;
17561}
17562unsafe extern "C" {
17563    pub fn X509_REVOKED_get0_extensions(r: *const X509_REVOKED) -> *const stack_st_X509_EXTENSION;
17564}
17565unsafe extern "C" {
17566    pub fn X509_REVOKED_get_ext_count(x: *const X509_REVOKED) -> ::core::ffi::c_int;
17567}
17568unsafe extern "C" {
17569    pub fn X509_REVOKED_get_ext_by_NID(
17570        x: *const X509_REVOKED,
17571        nid: ::core::ffi::c_int,
17572        lastpos: ::core::ffi::c_int,
17573    ) -> ::core::ffi::c_int;
17574}
17575unsafe extern "C" {
17576    pub fn X509_REVOKED_get_ext_by_OBJ(
17577        x: *const X509_REVOKED,
17578        obj: *const ASN1_OBJECT,
17579        lastpos: ::core::ffi::c_int,
17580    ) -> ::core::ffi::c_int;
17581}
17582unsafe extern "C" {
17583    pub fn X509_REVOKED_get_ext_by_critical(
17584        x: *const X509_REVOKED,
17585        crit: ::core::ffi::c_int,
17586        lastpos: ::core::ffi::c_int,
17587    ) -> ::core::ffi::c_int;
17588}
17589unsafe extern "C" {
17590    pub fn X509_REVOKED_get_ext(
17591        x: *const X509_REVOKED,
17592        loc: ::core::ffi::c_int,
17593    ) -> *mut X509_EXTENSION;
17594}
17595unsafe extern "C" {
17596    pub fn X509_REVOKED_delete_ext(
17597        x: *mut X509_REVOKED,
17598        loc: ::core::ffi::c_int,
17599    ) -> *mut X509_EXTENSION;
17600}
17601unsafe extern "C" {
17602    pub fn X509_REVOKED_add_ext(
17603        x: *mut X509_REVOKED,
17604        ex: *const X509_EXTENSION,
17605        loc: ::core::ffi::c_int,
17606    ) -> ::core::ffi::c_int;
17607}
17608unsafe extern "C" {
17609    pub fn X509_REVOKED_get_ext_d2i(
17610        revoked: *const X509_REVOKED,
17611        nid: ::core::ffi::c_int,
17612        out_critical: *mut ::core::ffi::c_int,
17613        out_idx: *mut ::core::ffi::c_int,
17614    ) -> *mut ::core::ffi::c_void;
17615}
17616unsafe extern "C" {
17617    pub fn X509_REVOKED_add1_ext_i2d(
17618        x: *mut X509_REVOKED,
17619        nid: ::core::ffi::c_int,
17620        value: *mut ::core::ffi::c_void,
17621        crit: ::core::ffi::c_int,
17622        flags: ::core::ffi::c_ulong,
17623    ) -> ::core::ffi::c_int;
17624}
17625unsafe extern "C" {
17626    pub fn X509_REQ_dup(req: *const X509_REQ) -> *mut X509_REQ;
17627}
17628unsafe extern "C" {
17629    pub fn X509_REQ_free(req: *mut X509_REQ);
17630}
17631unsafe extern "C" {
17632    pub fn d2i_X509_REQ(
17633        out: *mut *mut X509_REQ,
17634        inp: *mut *const u8,
17635        len: ::core::ffi::c_long,
17636    ) -> *mut X509_REQ;
17637}
17638unsafe extern "C" {
17639    pub fn i2d_X509_REQ(req: *const X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17640}
17641unsafe extern "C" {
17642    pub fn X509_REQ_get_version(req: *const X509_REQ) -> ::core::ffi::c_long;
17643}
17644unsafe extern "C" {
17645    pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut X509_NAME;
17646}
17647unsafe extern "C" {
17648    pub fn X509_REQ_get0_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17649}
17650unsafe extern "C" {
17651    pub fn X509_REQ_get_pubkey(req: *const X509_REQ) -> *mut EVP_PKEY;
17652}
17653unsafe extern "C" {
17654    pub fn X509_REQ_check_private_key(
17655        req: *const X509_REQ,
17656        pkey: *const EVP_PKEY,
17657    ) -> ::core::ffi::c_int;
17658}
17659unsafe extern "C" {
17660    pub fn X509_REQ_get_attr_count(req: *const X509_REQ) -> ::core::ffi::c_int;
17661}
17662unsafe extern "C" {
17663    pub fn X509_REQ_get_attr(req: *const X509_REQ, loc: ::core::ffi::c_int) -> *mut X509_ATTRIBUTE;
17664}
17665unsafe extern "C" {
17666    pub fn X509_REQ_get_attr_by_NID(
17667        req: *const X509_REQ,
17668        nid: ::core::ffi::c_int,
17669        lastpos: ::core::ffi::c_int,
17670    ) -> ::core::ffi::c_int;
17671}
17672unsafe extern "C" {
17673    pub fn X509_REQ_get_attr_by_OBJ(
17674        req: *const X509_REQ,
17675        obj: *const ASN1_OBJECT,
17676        lastpos: ::core::ffi::c_int,
17677    ) -> ::core::ffi::c_int;
17678}
17679unsafe extern "C" {
17680    pub fn X509_REQ_extension_nid(nid: ::core::ffi::c_int) -> ::core::ffi::c_int;
17681}
17682unsafe extern "C" {
17683    pub fn X509_REQ_get_extensions(req: *const X509_REQ) -> *mut stack_st_X509_EXTENSION;
17684}
17685unsafe extern "C" {
17686    pub fn X509_REQ_get0_signature(
17687        req: *const X509_REQ,
17688        out_sig: *mut *const ASN1_BIT_STRING,
17689        out_alg: *mut *const X509_ALGOR,
17690    );
17691}
17692unsafe extern "C" {
17693    pub fn X509_REQ_get_signature_nid(req: *const X509_REQ) -> ::core::ffi::c_int;
17694}
17695unsafe extern "C" {
17696    pub fn X509_REQ_verify(req: *const X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17697}
17698unsafe extern "C" {
17699    pub fn X509_REQ_get1_email(req: *const X509_REQ) -> *mut stack_st_OPENSSL_STRING;
17700}
17701unsafe extern "C" {
17702    pub fn X509_REQ_new() -> *mut X509_REQ;
17703}
17704unsafe extern "C" {
17705    pub fn X509_REQ_set_version(
17706        req: *mut X509_REQ,
17707        version: ::core::ffi::c_long,
17708    ) -> ::core::ffi::c_int;
17709}
17710unsafe extern "C" {
17711    pub fn X509_REQ_set_subject_name(
17712        req: *mut X509_REQ,
17713        name: *mut X509_NAME,
17714    ) -> ::core::ffi::c_int;
17715}
17716unsafe extern "C" {
17717    pub fn X509_REQ_set_pubkey(req: *mut X509_REQ, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
17718}
17719unsafe extern "C" {
17720    pub fn X509_REQ_delete_attr(req: *mut X509_REQ, loc: ::core::ffi::c_int)
17721        -> *mut X509_ATTRIBUTE;
17722}
17723unsafe extern "C" {
17724    pub fn X509_REQ_add1_attr(
17725        req: *mut X509_REQ,
17726        attr: *const X509_ATTRIBUTE,
17727    ) -> ::core::ffi::c_int;
17728}
17729unsafe extern "C" {
17730    pub fn X509_REQ_add1_attr_by_OBJ(
17731        req: *mut X509_REQ,
17732        obj: *const ASN1_OBJECT,
17733        attrtype: ::core::ffi::c_int,
17734        data: *const ::core::ffi::c_uchar,
17735        len: ::core::ffi::c_int,
17736    ) -> ::core::ffi::c_int;
17737}
17738unsafe extern "C" {
17739    pub fn X509_REQ_add1_attr_by_NID(
17740        req: *mut X509_REQ,
17741        nid: ::core::ffi::c_int,
17742        attrtype: ::core::ffi::c_int,
17743        data: *const ::core::ffi::c_uchar,
17744        len: ::core::ffi::c_int,
17745    ) -> ::core::ffi::c_int;
17746}
17747unsafe extern "C" {
17748    pub fn X509_REQ_add1_attr_by_txt(
17749        req: *mut X509_REQ,
17750        attrname: *const ::core::ffi::c_char,
17751        attrtype: ::core::ffi::c_int,
17752        data: *const ::core::ffi::c_uchar,
17753        len: ::core::ffi::c_int,
17754    ) -> ::core::ffi::c_int;
17755}
17756unsafe extern "C" {
17757    pub fn X509_REQ_add_extensions_nid(
17758        req: *mut X509_REQ,
17759        exts: *const stack_st_X509_EXTENSION,
17760        nid: ::core::ffi::c_int,
17761    ) -> ::core::ffi::c_int;
17762}
17763unsafe extern "C" {
17764    pub fn X509_REQ_add_extensions(
17765        req: *mut X509_REQ,
17766        exts: *const stack_st_X509_EXTENSION,
17767    ) -> ::core::ffi::c_int;
17768}
17769unsafe extern "C" {
17770    pub fn X509_REQ_sign(
17771        req: *mut X509_REQ,
17772        pkey: *mut EVP_PKEY,
17773        md: *const EVP_MD,
17774    ) -> ::core::ffi::c_int;
17775}
17776unsafe extern "C" {
17777    pub fn X509_REQ_sign_ctx(req: *mut X509_REQ, ctx: *mut EVP_MD_CTX) -> ::core::ffi::c_int;
17778}
17779unsafe extern "C" {
17780    pub fn i2d_re_X509_REQ_tbs(req: *mut X509_REQ, outp: *mut *mut u8) -> ::core::ffi::c_int;
17781}
17782unsafe extern "C" {
17783    pub fn X509_REQ_set1_signature_algo(
17784        req: *mut X509_REQ,
17785        algo: *const X509_ALGOR,
17786    ) -> ::core::ffi::c_int;
17787}
17788unsafe extern "C" {
17789    pub fn X509_REQ_set1_signature_value(
17790        req: *mut X509_REQ,
17791        sig: *const u8,
17792        sig_len: usize,
17793    ) -> ::core::ffi::c_int;
17794}
17795#[repr(C)]
17796#[derive(Debug)]
17797pub struct stack_st_X509_NAME_ENTRY {
17798    _unused: [u8; 0],
17799}
17800pub type sk_X509_NAME_ENTRY_free_func =
17801    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME_ENTRY)>;
17802pub type sk_X509_NAME_ENTRY_copy_func = ::core::option::Option<
17803    unsafe extern "C" fn(arg1: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY,
17804>;
17805pub type sk_X509_NAME_ENTRY_cmp_func = ::core::option::Option<
17806    unsafe extern "C" fn(
17807        arg1: *const *const X509_NAME_ENTRY,
17808        arg2: *const *const X509_NAME_ENTRY,
17809    ) -> ::core::ffi::c_int,
17810>;
17811pub type sk_X509_NAME_ENTRY_delete_if_func = ::core::option::Option<
17812    unsafe extern "C" fn(
17813        arg1: *mut X509_NAME_ENTRY,
17814        arg2: *mut ::core::ffi::c_void,
17815    ) -> ::core::ffi::c_int,
17816>;
17817unsafe extern "C" {
17818    #[link_name = "sk_X509_NAME_ENTRY_call_free_func__extern"]
17819    pub fn sk_X509_NAME_ENTRY_call_free_func(
17820        free_func: OPENSSL_sk_free_func,
17821        ptr: *mut ::core::ffi::c_void,
17822    );
17823}
17824unsafe extern "C" {
17825    #[link_name = "sk_X509_NAME_ENTRY_call_copy_func__extern"]
17826    pub fn sk_X509_NAME_ENTRY_call_copy_func(
17827        copy_func: OPENSSL_sk_copy_func,
17828        ptr: *const ::core::ffi::c_void,
17829    ) -> *mut ::core::ffi::c_void;
17830}
17831unsafe extern "C" {
17832    #[link_name = "sk_X509_NAME_ENTRY_call_cmp_func__extern"]
17833    pub fn sk_X509_NAME_ENTRY_call_cmp_func(
17834        cmp_func: OPENSSL_sk_cmp_func,
17835        a: *const ::core::ffi::c_void,
17836        b: *const ::core::ffi::c_void,
17837    ) -> ::core::ffi::c_int;
17838}
17839unsafe extern "C" {
17840    #[link_name = "sk_X509_NAME_ENTRY_call_delete_if_func__extern"]
17841    pub fn sk_X509_NAME_ENTRY_call_delete_if_func(
17842        func: OPENSSL_sk_delete_if_func,
17843        obj: *mut ::core::ffi::c_void,
17844        data: *mut ::core::ffi::c_void,
17845    ) -> ::core::ffi::c_int;
17846}
17847unsafe extern "C" {
17848    #[link_name = "sk_X509_NAME_ENTRY_new__extern"]
17849    pub fn sk_X509_NAME_ENTRY_new(
17850        comp: sk_X509_NAME_ENTRY_cmp_func,
17851    ) -> *mut stack_st_X509_NAME_ENTRY;
17852}
17853unsafe extern "C" {
17854    #[link_name = "sk_X509_NAME_ENTRY_new_null__extern"]
17855    pub fn sk_X509_NAME_ENTRY_new_null() -> *mut stack_st_X509_NAME_ENTRY;
17856}
17857unsafe extern "C" {
17858    #[link_name = "sk_X509_NAME_ENTRY_num__extern"]
17859    pub fn sk_X509_NAME_ENTRY_num(sk: *const stack_st_X509_NAME_ENTRY) -> usize;
17860}
17861unsafe extern "C" {
17862    #[link_name = "sk_X509_NAME_ENTRY_zero__extern"]
17863    pub fn sk_X509_NAME_ENTRY_zero(sk: *mut stack_st_X509_NAME_ENTRY);
17864}
17865unsafe extern "C" {
17866    #[link_name = "sk_X509_NAME_ENTRY_value__extern"]
17867    pub fn sk_X509_NAME_ENTRY_value(
17868        sk: *const stack_st_X509_NAME_ENTRY,
17869        i: usize,
17870    ) -> *mut X509_NAME_ENTRY;
17871}
17872unsafe extern "C" {
17873    #[link_name = "sk_X509_NAME_ENTRY_set__extern"]
17874    pub fn sk_X509_NAME_ENTRY_set(
17875        sk: *mut stack_st_X509_NAME_ENTRY,
17876        i: usize,
17877        p: *mut X509_NAME_ENTRY,
17878    ) -> *mut X509_NAME_ENTRY;
17879}
17880unsafe extern "C" {
17881    #[link_name = "sk_X509_NAME_ENTRY_free__extern"]
17882    pub fn sk_X509_NAME_ENTRY_free(sk: *mut stack_st_X509_NAME_ENTRY);
17883}
17884unsafe extern "C" {
17885    #[link_name = "sk_X509_NAME_ENTRY_pop_free__extern"]
17886    pub fn sk_X509_NAME_ENTRY_pop_free(
17887        sk: *mut stack_st_X509_NAME_ENTRY,
17888        free_func: sk_X509_NAME_ENTRY_free_func,
17889    );
17890}
17891unsafe extern "C" {
17892    #[link_name = "sk_X509_NAME_ENTRY_insert__extern"]
17893    pub fn sk_X509_NAME_ENTRY_insert(
17894        sk: *mut stack_st_X509_NAME_ENTRY,
17895        p: *mut X509_NAME_ENTRY,
17896        where_: usize,
17897    ) -> usize;
17898}
17899unsafe extern "C" {
17900    #[link_name = "sk_X509_NAME_ENTRY_delete__extern"]
17901    pub fn sk_X509_NAME_ENTRY_delete(
17902        sk: *mut stack_st_X509_NAME_ENTRY,
17903        where_: usize,
17904    ) -> *mut X509_NAME_ENTRY;
17905}
17906unsafe extern "C" {
17907    #[link_name = "sk_X509_NAME_ENTRY_delete_ptr__extern"]
17908    pub fn sk_X509_NAME_ENTRY_delete_ptr(
17909        sk: *mut stack_st_X509_NAME_ENTRY,
17910        p: *const X509_NAME_ENTRY,
17911    ) -> *mut X509_NAME_ENTRY;
17912}
17913unsafe extern "C" {
17914    #[link_name = "sk_X509_NAME_ENTRY_delete_if__extern"]
17915    pub fn sk_X509_NAME_ENTRY_delete_if(
17916        sk: *mut stack_st_X509_NAME_ENTRY,
17917        func: sk_X509_NAME_ENTRY_delete_if_func,
17918        data: *mut ::core::ffi::c_void,
17919    );
17920}
17921unsafe extern "C" {
17922    #[link_name = "sk_X509_NAME_ENTRY_find__extern"]
17923    pub fn sk_X509_NAME_ENTRY_find(
17924        sk: *const stack_st_X509_NAME_ENTRY,
17925        out_index: *mut usize,
17926        p: *const X509_NAME_ENTRY,
17927    ) -> ::core::ffi::c_int;
17928}
17929unsafe extern "C" {
17930    #[link_name = "sk_X509_NAME_ENTRY_shift__extern"]
17931    pub fn sk_X509_NAME_ENTRY_shift(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
17932}
17933unsafe extern "C" {
17934    #[link_name = "sk_X509_NAME_ENTRY_push__extern"]
17935    pub fn sk_X509_NAME_ENTRY_push(
17936        sk: *mut stack_st_X509_NAME_ENTRY,
17937        p: *mut X509_NAME_ENTRY,
17938    ) -> usize;
17939}
17940unsafe extern "C" {
17941    #[link_name = "sk_X509_NAME_ENTRY_pop__extern"]
17942    pub fn sk_X509_NAME_ENTRY_pop(sk: *mut stack_st_X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
17943}
17944unsafe extern "C" {
17945    #[link_name = "sk_X509_NAME_ENTRY_dup__extern"]
17946    pub fn sk_X509_NAME_ENTRY_dup(
17947        sk: *const stack_st_X509_NAME_ENTRY,
17948    ) -> *mut stack_st_X509_NAME_ENTRY;
17949}
17950unsafe extern "C" {
17951    #[link_name = "sk_X509_NAME_ENTRY_sort__extern"]
17952    pub fn sk_X509_NAME_ENTRY_sort(sk: *mut stack_st_X509_NAME_ENTRY);
17953}
17954unsafe extern "C" {
17955    #[link_name = "sk_X509_NAME_ENTRY_sort_and_dedup__extern"]
17956    pub fn sk_X509_NAME_ENTRY_sort_and_dedup(
17957        sk: *mut stack_st_X509_NAME_ENTRY,
17958        free_func: sk_X509_NAME_ENTRY_free_func,
17959    );
17960}
17961unsafe extern "C" {
17962    #[link_name = "sk_X509_NAME_ENTRY_is_sorted__extern"]
17963    pub fn sk_X509_NAME_ENTRY_is_sorted(sk: *const stack_st_X509_NAME_ENTRY) -> ::core::ffi::c_int;
17964}
17965unsafe extern "C" {
17966    #[link_name = "sk_X509_NAME_ENTRY_set_cmp_func__extern"]
17967    pub fn sk_X509_NAME_ENTRY_set_cmp_func(
17968        sk: *mut stack_st_X509_NAME_ENTRY,
17969        comp: sk_X509_NAME_ENTRY_cmp_func,
17970    ) -> sk_X509_NAME_ENTRY_cmp_func;
17971}
17972unsafe extern "C" {
17973    #[link_name = "sk_X509_NAME_ENTRY_deep_copy__extern"]
17974    pub fn sk_X509_NAME_ENTRY_deep_copy(
17975        sk: *const stack_st_X509_NAME_ENTRY,
17976        copy_func: sk_X509_NAME_ENTRY_copy_func,
17977        free_func: sk_X509_NAME_ENTRY_free_func,
17978    ) -> *mut stack_st_X509_NAME_ENTRY;
17979}
17980#[repr(C)]
17981#[derive(Debug)]
17982pub struct stack_st_X509_NAME {
17983    _unused: [u8; 0],
17984}
17985pub type sk_X509_NAME_free_func =
17986    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_NAME)>;
17987pub type sk_X509_NAME_copy_func =
17988    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_NAME) -> *mut X509_NAME>;
17989pub type sk_X509_NAME_cmp_func = ::core::option::Option<
17990    unsafe extern "C" fn(
17991        arg1: *const *const X509_NAME,
17992        arg2: *const *const X509_NAME,
17993    ) -> ::core::ffi::c_int,
17994>;
17995pub type sk_X509_NAME_delete_if_func = ::core::option::Option<
17996    unsafe extern "C" fn(
17997        arg1: *mut X509_NAME,
17998        arg2: *mut ::core::ffi::c_void,
17999    ) -> ::core::ffi::c_int,
18000>;
18001unsafe extern "C" {
18002    #[link_name = "sk_X509_NAME_call_free_func__extern"]
18003    pub fn sk_X509_NAME_call_free_func(
18004        free_func: OPENSSL_sk_free_func,
18005        ptr: *mut ::core::ffi::c_void,
18006    );
18007}
18008unsafe extern "C" {
18009    #[link_name = "sk_X509_NAME_call_copy_func__extern"]
18010    pub fn sk_X509_NAME_call_copy_func(
18011        copy_func: OPENSSL_sk_copy_func,
18012        ptr: *const ::core::ffi::c_void,
18013    ) -> *mut ::core::ffi::c_void;
18014}
18015unsafe extern "C" {
18016    #[link_name = "sk_X509_NAME_call_cmp_func__extern"]
18017    pub fn sk_X509_NAME_call_cmp_func(
18018        cmp_func: OPENSSL_sk_cmp_func,
18019        a: *const ::core::ffi::c_void,
18020        b: *const ::core::ffi::c_void,
18021    ) -> ::core::ffi::c_int;
18022}
18023unsafe extern "C" {
18024    #[link_name = "sk_X509_NAME_call_delete_if_func__extern"]
18025    pub fn sk_X509_NAME_call_delete_if_func(
18026        func: OPENSSL_sk_delete_if_func,
18027        obj: *mut ::core::ffi::c_void,
18028        data: *mut ::core::ffi::c_void,
18029    ) -> ::core::ffi::c_int;
18030}
18031unsafe extern "C" {
18032    #[link_name = "sk_X509_NAME_new__extern"]
18033    pub fn sk_X509_NAME_new(comp: sk_X509_NAME_cmp_func) -> *mut stack_st_X509_NAME;
18034}
18035unsafe extern "C" {
18036    #[link_name = "sk_X509_NAME_new_null__extern"]
18037    pub fn sk_X509_NAME_new_null() -> *mut stack_st_X509_NAME;
18038}
18039unsafe extern "C" {
18040    #[link_name = "sk_X509_NAME_num__extern"]
18041    pub fn sk_X509_NAME_num(sk: *const stack_st_X509_NAME) -> usize;
18042}
18043unsafe extern "C" {
18044    #[link_name = "sk_X509_NAME_zero__extern"]
18045    pub fn sk_X509_NAME_zero(sk: *mut stack_st_X509_NAME);
18046}
18047unsafe extern "C" {
18048    #[link_name = "sk_X509_NAME_value__extern"]
18049    pub fn sk_X509_NAME_value(sk: *const stack_st_X509_NAME, i: usize) -> *mut X509_NAME;
18050}
18051unsafe extern "C" {
18052    #[link_name = "sk_X509_NAME_set__extern"]
18053    pub fn sk_X509_NAME_set(
18054        sk: *mut stack_st_X509_NAME,
18055        i: usize,
18056        p: *mut X509_NAME,
18057    ) -> *mut X509_NAME;
18058}
18059unsafe extern "C" {
18060    #[link_name = "sk_X509_NAME_free__extern"]
18061    pub fn sk_X509_NAME_free(sk: *mut stack_st_X509_NAME);
18062}
18063unsafe extern "C" {
18064    #[link_name = "sk_X509_NAME_pop_free__extern"]
18065    pub fn sk_X509_NAME_pop_free(sk: *mut stack_st_X509_NAME, free_func: sk_X509_NAME_free_func);
18066}
18067unsafe extern "C" {
18068    #[link_name = "sk_X509_NAME_insert__extern"]
18069    pub fn sk_X509_NAME_insert(
18070        sk: *mut stack_st_X509_NAME,
18071        p: *mut X509_NAME,
18072        where_: usize,
18073    ) -> usize;
18074}
18075unsafe extern "C" {
18076    #[link_name = "sk_X509_NAME_delete__extern"]
18077    pub fn sk_X509_NAME_delete(sk: *mut stack_st_X509_NAME, where_: usize) -> *mut X509_NAME;
18078}
18079unsafe extern "C" {
18080    #[link_name = "sk_X509_NAME_delete_ptr__extern"]
18081    pub fn sk_X509_NAME_delete_ptr(
18082        sk: *mut stack_st_X509_NAME,
18083        p: *const X509_NAME,
18084    ) -> *mut X509_NAME;
18085}
18086unsafe extern "C" {
18087    #[link_name = "sk_X509_NAME_delete_if__extern"]
18088    pub fn sk_X509_NAME_delete_if(
18089        sk: *mut stack_st_X509_NAME,
18090        func: sk_X509_NAME_delete_if_func,
18091        data: *mut ::core::ffi::c_void,
18092    );
18093}
18094unsafe extern "C" {
18095    #[link_name = "sk_X509_NAME_find__extern"]
18096    pub fn sk_X509_NAME_find(
18097        sk: *const stack_st_X509_NAME,
18098        out_index: *mut usize,
18099        p: *const X509_NAME,
18100    ) -> ::core::ffi::c_int;
18101}
18102unsafe extern "C" {
18103    #[link_name = "sk_X509_NAME_shift__extern"]
18104    pub fn sk_X509_NAME_shift(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18105}
18106unsafe extern "C" {
18107    #[link_name = "sk_X509_NAME_push__extern"]
18108    pub fn sk_X509_NAME_push(sk: *mut stack_st_X509_NAME, p: *mut X509_NAME) -> usize;
18109}
18110unsafe extern "C" {
18111    #[link_name = "sk_X509_NAME_pop__extern"]
18112    pub fn sk_X509_NAME_pop(sk: *mut stack_st_X509_NAME) -> *mut X509_NAME;
18113}
18114unsafe extern "C" {
18115    #[link_name = "sk_X509_NAME_dup__extern"]
18116    pub fn sk_X509_NAME_dup(sk: *const stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
18117}
18118unsafe extern "C" {
18119    #[link_name = "sk_X509_NAME_sort__extern"]
18120    pub fn sk_X509_NAME_sort(sk: *mut stack_st_X509_NAME);
18121}
18122unsafe extern "C" {
18123    #[link_name = "sk_X509_NAME_sort_and_dedup__extern"]
18124    pub fn sk_X509_NAME_sort_and_dedup(
18125        sk: *mut stack_st_X509_NAME,
18126        free_func: sk_X509_NAME_free_func,
18127    );
18128}
18129unsafe extern "C" {
18130    #[link_name = "sk_X509_NAME_is_sorted__extern"]
18131    pub fn sk_X509_NAME_is_sorted(sk: *const stack_st_X509_NAME) -> ::core::ffi::c_int;
18132}
18133unsafe extern "C" {
18134    #[link_name = "sk_X509_NAME_set_cmp_func__extern"]
18135    pub fn sk_X509_NAME_set_cmp_func(
18136        sk: *mut stack_st_X509_NAME,
18137        comp: sk_X509_NAME_cmp_func,
18138    ) -> sk_X509_NAME_cmp_func;
18139}
18140unsafe extern "C" {
18141    #[link_name = "sk_X509_NAME_deep_copy__extern"]
18142    pub fn sk_X509_NAME_deep_copy(
18143        sk: *const stack_st_X509_NAME,
18144        copy_func: sk_X509_NAME_copy_func,
18145        free_func: sk_X509_NAME_free_func,
18146    ) -> *mut stack_st_X509_NAME;
18147}
18148unsafe extern "C" {
18149    pub static X509_NAME_it: ASN1_ITEM;
18150}
18151unsafe extern "C" {
18152    pub fn X509_NAME_new() -> *mut X509_NAME;
18153}
18154unsafe extern "C" {
18155    pub fn X509_NAME_free(name: *mut X509_NAME);
18156}
18157unsafe extern "C" {
18158    pub fn d2i_X509_NAME(
18159        out: *mut *mut X509_NAME,
18160        inp: *mut *const u8,
18161        len: ::core::ffi::c_long,
18162    ) -> *mut X509_NAME;
18163}
18164unsafe extern "C" {
18165    pub fn i2d_X509_NAME(in_: *const X509_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18166}
18167unsafe extern "C" {
18168    pub fn X509_NAME_dup(name: *const X509_NAME) -> *mut X509_NAME;
18169}
18170unsafe extern "C" {
18171    pub fn X509_NAME_cmp(a: *const X509_NAME, b: *const X509_NAME) -> ::core::ffi::c_int;
18172}
18173unsafe extern "C" {
18174    pub fn X509_NAME_get0_der(
18175        name: *const X509_NAME,
18176        out_der: *mut *const u8,
18177        out_der_len: *mut usize,
18178    ) -> ::core::ffi::c_int;
18179}
18180unsafe extern "C" {
18181    pub fn X509_NAME_set(xn: *mut *mut X509_NAME, name: *const X509_NAME) -> ::core::ffi::c_int;
18182}
18183unsafe extern "C" {
18184    pub fn X509_NAME_entry_count(name: *const X509_NAME) -> ::core::ffi::c_int;
18185}
18186unsafe extern "C" {
18187    pub fn X509_NAME_get_index_by_NID(
18188        name: *const X509_NAME,
18189        nid: ::core::ffi::c_int,
18190        lastpos: ::core::ffi::c_int,
18191    ) -> ::core::ffi::c_int;
18192}
18193unsafe extern "C" {
18194    pub fn X509_NAME_get_index_by_OBJ(
18195        name: *const X509_NAME,
18196        obj: *const ASN1_OBJECT,
18197        lastpos: ::core::ffi::c_int,
18198    ) -> ::core::ffi::c_int;
18199}
18200unsafe extern "C" {
18201    pub fn X509_NAME_get_entry(
18202        name: *const X509_NAME,
18203        loc: ::core::ffi::c_int,
18204    ) -> *mut X509_NAME_ENTRY;
18205}
18206unsafe extern "C" {
18207    pub fn X509_NAME_delete_entry(
18208        name: *mut X509_NAME,
18209        loc: ::core::ffi::c_int,
18210    ) -> *mut X509_NAME_ENTRY;
18211}
18212unsafe extern "C" {
18213    pub fn X509_NAME_add_entry(
18214        name: *mut X509_NAME,
18215        entry: *const X509_NAME_ENTRY,
18216        loc: ::core::ffi::c_int,
18217        set: ::core::ffi::c_int,
18218    ) -> ::core::ffi::c_int;
18219}
18220unsafe extern "C" {
18221    pub fn X509_NAME_add_entry_by_OBJ(
18222        name: *mut X509_NAME,
18223        obj: *const ASN1_OBJECT,
18224        type_: ::core::ffi::c_int,
18225        bytes: *const u8,
18226        len: ossl_ssize_t,
18227        loc: ::core::ffi::c_int,
18228        set: ::core::ffi::c_int,
18229    ) -> ::core::ffi::c_int;
18230}
18231unsafe extern "C" {
18232    pub fn X509_NAME_add_entry_by_NID(
18233        name: *mut X509_NAME,
18234        nid: ::core::ffi::c_int,
18235        type_: ::core::ffi::c_int,
18236        bytes: *const u8,
18237        len: ossl_ssize_t,
18238        loc: ::core::ffi::c_int,
18239        set: ::core::ffi::c_int,
18240    ) -> ::core::ffi::c_int;
18241}
18242unsafe extern "C" {
18243    pub fn X509_NAME_add_entry_by_txt(
18244        name: *mut X509_NAME,
18245        field: *const ::core::ffi::c_char,
18246        type_: ::core::ffi::c_int,
18247        bytes: *const u8,
18248        len: ossl_ssize_t,
18249        loc: ::core::ffi::c_int,
18250        set: ::core::ffi::c_int,
18251    ) -> ::core::ffi::c_int;
18252}
18253unsafe extern "C" {
18254    pub fn X509_NAME_ENTRY_new() -> *mut X509_NAME_ENTRY;
18255}
18256unsafe extern "C" {
18257    pub fn X509_NAME_ENTRY_free(entry: *mut X509_NAME_ENTRY);
18258}
18259unsafe extern "C" {
18260    pub fn X509_NAME_ENTRY_dup(entry: *const X509_NAME_ENTRY) -> *mut X509_NAME_ENTRY;
18261}
18262unsafe extern "C" {
18263    pub fn X509_NAME_ENTRY_get_object(entry: *const X509_NAME_ENTRY) -> *mut ASN1_OBJECT;
18264}
18265unsafe extern "C" {
18266    pub fn X509_NAME_ENTRY_set_object(
18267        entry: *mut X509_NAME_ENTRY,
18268        obj: *const ASN1_OBJECT,
18269    ) -> ::core::ffi::c_int;
18270}
18271unsafe extern "C" {
18272    pub fn X509_NAME_ENTRY_get_data(entry: *const X509_NAME_ENTRY) -> *mut ASN1_STRING;
18273}
18274unsafe extern "C" {
18275    pub fn X509_NAME_ENTRY_set_data(
18276        entry: *mut X509_NAME_ENTRY,
18277        type_: ::core::ffi::c_int,
18278        bytes: *const u8,
18279        len: ossl_ssize_t,
18280    ) -> ::core::ffi::c_int;
18281}
18282unsafe extern "C" {
18283    pub fn X509_NAME_ENTRY_set(entry: *const X509_NAME_ENTRY) -> ::core::ffi::c_int;
18284}
18285unsafe extern "C" {
18286    pub fn X509_NAME_ENTRY_create_by_OBJ(
18287        out: *mut *mut X509_NAME_ENTRY,
18288        obj: *const ASN1_OBJECT,
18289        type_: ::core::ffi::c_int,
18290        bytes: *const u8,
18291        len: ossl_ssize_t,
18292    ) -> *mut X509_NAME_ENTRY;
18293}
18294unsafe extern "C" {
18295    pub fn X509_NAME_ENTRY_create_by_NID(
18296        out: *mut *mut X509_NAME_ENTRY,
18297        nid: ::core::ffi::c_int,
18298        type_: ::core::ffi::c_int,
18299        bytes: *const u8,
18300        len: ossl_ssize_t,
18301    ) -> *mut X509_NAME_ENTRY;
18302}
18303unsafe extern "C" {
18304    pub fn X509_NAME_ENTRY_create_by_txt(
18305        out: *mut *mut X509_NAME_ENTRY,
18306        field: *const ::core::ffi::c_char,
18307        type_: ::core::ffi::c_int,
18308        bytes: *const u8,
18309        len: ossl_ssize_t,
18310    ) -> *mut X509_NAME_ENTRY;
18311}
18312unsafe extern "C" {
18313    pub fn X509_PUBKEY_new() -> *mut X509_PUBKEY;
18314}
18315unsafe extern "C" {
18316    pub fn X509_PUBKEY_free(key: *mut X509_PUBKEY);
18317}
18318unsafe extern "C" {
18319    pub fn d2i_X509_PUBKEY(
18320        out: *mut *mut X509_PUBKEY,
18321        inp: *mut *const u8,
18322        len: ::core::ffi::c_long,
18323    ) -> *mut X509_PUBKEY;
18324}
18325unsafe extern "C" {
18326    pub fn i2d_X509_PUBKEY(key: *const X509_PUBKEY, outp: *mut *mut u8) -> ::core::ffi::c_int;
18327}
18328unsafe extern "C" {
18329    pub fn X509_PUBKEY_set(x: *mut *mut X509_PUBKEY, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
18330}
18331unsafe extern "C" {
18332    pub fn X509_PUBKEY_get0(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18333}
18334unsafe extern "C" {
18335    pub fn X509_PUBKEY_get(key: *const X509_PUBKEY) -> *mut EVP_PKEY;
18336}
18337unsafe extern "C" {
18338    pub fn X509_PUBKEY_set0_param(
18339        pub_: *mut X509_PUBKEY,
18340        obj: *mut ASN1_OBJECT,
18341        param_type: ::core::ffi::c_int,
18342        param_value: *mut ::core::ffi::c_void,
18343        key: *mut u8,
18344        key_len: ::core::ffi::c_int,
18345    ) -> ::core::ffi::c_int;
18346}
18347unsafe extern "C" {
18348    pub fn X509_PUBKEY_get0_param(
18349        out_obj: *mut *mut ASN1_OBJECT,
18350        out_key: *mut *const u8,
18351        out_key_len: *mut ::core::ffi::c_int,
18352        out_alg: *mut *mut X509_ALGOR,
18353        pub_: *mut X509_PUBKEY,
18354    ) -> ::core::ffi::c_int;
18355}
18356unsafe extern "C" {
18357    pub fn X509_PUBKEY_get0_public_key(pub_: *const X509_PUBKEY) -> *const ASN1_BIT_STRING;
18358}
18359unsafe extern "C" {
18360    pub static X509_EXTENSION_it: ASN1_ITEM;
18361}
18362unsafe extern "C" {
18363    pub fn X509_EXTENSION_new() -> *mut X509_EXTENSION;
18364}
18365unsafe extern "C" {
18366    pub fn X509_EXTENSION_free(ex: *mut X509_EXTENSION);
18367}
18368unsafe extern "C" {
18369    pub fn d2i_X509_EXTENSION(
18370        out: *mut *mut X509_EXTENSION,
18371        inp: *mut *const u8,
18372        len: ::core::ffi::c_long,
18373    ) -> *mut X509_EXTENSION;
18374}
18375unsafe extern "C" {
18376    pub fn i2d_X509_EXTENSION(ex: *const X509_EXTENSION, outp: *mut *mut u8) -> ::core::ffi::c_int;
18377}
18378unsafe extern "C" {
18379    pub fn X509_EXTENSION_dup(ex: *const X509_EXTENSION) -> *mut X509_EXTENSION;
18380}
18381unsafe extern "C" {
18382    pub fn X509_EXTENSION_create_by_NID(
18383        ex: *mut *mut X509_EXTENSION,
18384        nid: ::core::ffi::c_int,
18385        crit: ::core::ffi::c_int,
18386        data: *const ASN1_OCTET_STRING,
18387    ) -> *mut X509_EXTENSION;
18388}
18389unsafe extern "C" {
18390    pub fn X509_EXTENSION_create_by_OBJ(
18391        ex: *mut *mut X509_EXTENSION,
18392        obj: *const ASN1_OBJECT,
18393        crit: ::core::ffi::c_int,
18394        data: *const ASN1_OCTET_STRING,
18395    ) -> *mut X509_EXTENSION;
18396}
18397unsafe extern "C" {
18398    pub fn X509_EXTENSION_get_object(ex: *const X509_EXTENSION) -> *mut ASN1_OBJECT;
18399}
18400unsafe extern "C" {
18401    pub fn X509_EXTENSION_get_data(ne: *const X509_EXTENSION) -> *mut ASN1_OCTET_STRING;
18402}
18403unsafe extern "C" {
18404    pub fn X509_EXTENSION_get_critical(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
18405}
18406unsafe extern "C" {
18407    pub fn X509_EXTENSION_set_object(
18408        ex: *mut X509_EXTENSION,
18409        obj: *const ASN1_OBJECT,
18410    ) -> ::core::ffi::c_int;
18411}
18412unsafe extern "C" {
18413    pub fn X509_EXTENSION_set_critical(
18414        ex: *mut X509_EXTENSION,
18415        crit: ::core::ffi::c_int,
18416    ) -> ::core::ffi::c_int;
18417}
18418unsafe extern "C" {
18419    pub fn X509_EXTENSION_set_data(
18420        ex: *mut X509_EXTENSION,
18421        data: *const ASN1_OCTET_STRING,
18422    ) -> ::core::ffi::c_int;
18423}
18424pub type sk_X509_EXTENSION_free_func =
18425    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_EXTENSION)>;
18426pub type sk_X509_EXTENSION_copy_func = ::core::option::Option<
18427    unsafe extern "C" fn(arg1: *const X509_EXTENSION) -> *mut X509_EXTENSION,
18428>;
18429pub type sk_X509_EXTENSION_cmp_func = ::core::option::Option<
18430    unsafe extern "C" fn(
18431        arg1: *const *const X509_EXTENSION,
18432        arg2: *const *const X509_EXTENSION,
18433    ) -> ::core::ffi::c_int,
18434>;
18435pub type sk_X509_EXTENSION_delete_if_func = ::core::option::Option<
18436    unsafe extern "C" fn(
18437        arg1: *mut X509_EXTENSION,
18438        arg2: *mut ::core::ffi::c_void,
18439    ) -> ::core::ffi::c_int,
18440>;
18441unsafe extern "C" {
18442    #[link_name = "sk_X509_EXTENSION_call_free_func__extern"]
18443    pub fn sk_X509_EXTENSION_call_free_func(
18444        free_func: OPENSSL_sk_free_func,
18445        ptr: *mut ::core::ffi::c_void,
18446    );
18447}
18448unsafe extern "C" {
18449    #[link_name = "sk_X509_EXTENSION_call_copy_func__extern"]
18450    pub fn sk_X509_EXTENSION_call_copy_func(
18451        copy_func: OPENSSL_sk_copy_func,
18452        ptr: *const ::core::ffi::c_void,
18453    ) -> *mut ::core::ffi::c_void;
18454}
18455unsafe extern "C" {
18456    #[link_name = "sk_X509_EXTENSION_call_cmp_func__extern"]
18457    pub fn sk_X509_EXTENSION_call_cmp_func(
18458        cmp_func: OPENSSL_sk_cmp_func,
18459        a: *const ::core::ffi::c_void,
18460        b: *const ::core::ffi::c_void,
18461    ) -> ::core::ffi::c_int;
18462}
18463unsafe extern "C" {
18464    #[link_name = "sk_X509_EXTENSION_call_delete_if_func__extern"]
18465    pub fn sk_X509_EXTENSION_call_delete_if_func(
18466        func: OPENSSL_sk_delete_if_func,
18467        obj: *mut ::core::ffi::c_void,
18468        data: *mut ::core::ffi::c_void,
18469    ) -> ::core::ffi::c_int;
18470}
18471unsafe extern "C" {
18472    #[link_name = "sk_X509_EXTENSION_new__extern"]
18473    pub fn sk_X509_EXTENSION_new(comp: sk_X509_EXTENSION_cmp_func) -> *mut stack_st_X509_EXTENSION;
18474}
18475unsafe extern "C" {
18476    #[link_name = "sk_X509_EXTENSION_new_null__extern"]
18477    pub fn sk_X509_EXTENSION_new_null() -> *mut stack_st_X509_EXTENSION;
18478}
18479unsafe extern "C" {
18480    #[link_name = "sk_X509_EXTENSION_num__extern"]
18481    pub fn sk_X509_EXTENSION_num(sk: *const stack_st_X509_EXTENSION) -> usize;
18482}
18483unsafe extern "C" {
18484    #[link_name = "sk_X509_EXTENSION_zero__extern"]
18485    pub fn sk_X509_EXTENSION_zero(sk: *mut stack_st_X509_EXTENSION);
18486}
18487unsafe extern "C" {
18488    #[link_name = "sk_X509_EXTENSION_value__extern"]
18489    pub fn sk_X509_EXTENSION_value(
18490        sk: *const stack_st_X509_EXTENSION,
18491        i: usize,
18492    ) -> *mut X509_EXTENSION;
18493}
18494unsafe extern "C" {
18495    #[link_name = "sk_X509_EXTENSION_set__extern"]
18496    pub fn sk_X509_EXTENSION_set(
18497        sk: *mut stack_st_X509_EXTENSION,
18498        i: usize,
18499        p: *mut X509_EXTENSION,
18500    ) -> *mut X509_EXTENSION;
18501}
18502unsafe extern "C" {
18503    #[link_name = "sk_X509_EXTENSION_free__extern"]
18504    pub fn sk_X509_EXTENSION_free(sk: *mut stack_st_X509_EXTENSION);
18505}
18506unsafe extern "C" {
18507    #[link_name = "sk_X509_EXTENSION_pop_free__extern"]
18508    pub fn sk_X509_EXTENSION_pop_free(
18509        sk: *mut stack_st_X509_EXTENSION,
18510        free_func: sk_X509_EXTENSION_free_func,
18511    );
18512}
18513unsafe extern "C" {
18514    #[link_name = "sk_X509_EXTENSION_insert__extern"]
18515    pub fn sk_X509_EXTENSION_insert(
18516        sk: *mut stack_st_X509_EXTENSION,
18517        p: *mut X509_EXTENSION,
18518        where_: usize,
18519    ) -> usize;
18520}
18521unsafe extern "C" {
18522    #[link_name = "sk_X509_EXTENSION_delete__extern"]
18523    pub fn sk_X509_EXTENSION_delete(
18524        sk: *mut stack_st_X509_EXTENSION,
18525        where_: usize,
18526    ) -> *mut X509_EXTENSION;
18527}
18528unsafe extern "C" {
18529    #[link_name = "sk_X509_EXTENSION_delete_ptr__extern"]
18530    pub fn sk_X509_EXTENSION_delete_ptr(
18531        sk: *mut stack_st_X509_EXTENSION,
18532        p: *const X509_EXTENSION,
18533    ) -> *mut X509_EXTENSION;
18534}
18535unsafe extern "C" {
18536    #[link_name = "sk_X509_EXTENSION_delete_if__extern"]
18537    pub fn sk_X509_EXTENSION_delete_if(
18538        sk: *mut stack_st_X509_EXTENSION,
18539        func: sk_X509_EXTENSION_delete_if_func,
18540        data: *mut ::core::ffi::c_void,
18541    );
18542}
18543unsafe extern "C" {
18544    #[link_name = "sk_X509_EXTENSION_find__extern"]
18545    pub fn sk_X509_EXTENSION_find(
18546        sk: *const stack_st_X509_EXTENSION,
18547        out_index: *mut usize,
18548        p: *const X509_EXTENSION,
18549    ) -> ::core::ffi::c_int;
18550}
18551unsafe extern "C" {
18552    #[link_name = "sk_X509_EXTENSION_shift__extern"]
18553    pub fn sk_X509_EXTENSION_shift(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18554}
18555unsafe extern "C" {
18556    #[link_name = "sk_X509_EXTENSION_push__extern"]
18557    pub fn sk_X509_EXTENSION_push(
18558        sk: *mut stack_st_X509_EXTENSION,
18559        p: *mut X509_EXTENSION,
18560    ) -> usize;
18561}
18562unsafe extern "C" {
18563    #[link_name = "sk_X509_EXTENSION_pop__extern"]
18564    pub fn sk_X509_EXTENSION_pop(sk: *mut stack_st_X509_EXTENSION) -> *mut X509_EXTENSION;
18565}
18566unsafe extern "C" {
18567    #[link_name = "sk_X509_EXTENSION_dup__extern"]
18568    pub fn sk_X509_EXTENSION_dup(
18569        sk: *const stack_st_X509_EXTENSION,
18570    ) -> *mut stack_st_X509_EXTENSION;
18571}
18572unsafe extern "C" {
18573    #[link_name = "sk_X509_EXTENSION_sort__extern"]
18574    pub fn sk_X509_EXTENSION_sort(sk: *mut stack_st_X509_EXTENSION);
18575}
18576unsafe extern "C" {
18577    #[link_name = "sk_X509_EXTENSION_sort_and_dedup__extern"]
18578    pub fn sk_X509_EXTENSION_sort_and_dedup(
18579        sk: *mut stack_st_X509_EXTENSION,
18580        free_func: sk_X509_EXTENSION_free_func,
18581    );
18582}
18583unsafe extern "C" {
18584    #[link_name = "sk_X509_EXTENSION_is_sorted__extern"]
18585    pub fn sk_X509_EXTENSION_is_sorted(sk: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18586}
18587unsafe extern "C" {
18588    #[link_name = "sk_X509_EXTENSION_set_cmp_func__extern"]
18589    pub fn sk_X509_EXTENSION_set_cmp_func(
18590        sk: *mut stack_st_X509_EXTENSION,
18591        comp: sk_X509_EXTENSION_cmp_func,
18592    ) -> sk_X509_EXTENSION_cmp_func;
18593}
18594unsafe extern "C" {
18595    #[link_name = "sk_X509_EXTENSION_deep_copy__extern"]
18596    pub fn sk_X509_EXTENSION_deep_copy(
18597        sk: *const stack_st_X509_EXTENSION,
18598        copy_func: sk_X509_EXTENSION_copy_func,
18599        free_func: sk_X509_EXTENSION_free_func,
18600    ) -> *mut stack_st_X509_EXTENSION;
18601}
18602pub type X509_EXTENSIONS = stack_st_X509_EXTENSION;
18603unsafe extern "C" {
18604    pub fn d2i_X509_EXTENSIONS(
18605        out: *mut *mut X509_EXTENSIONS,
18606        inp: *mut *const u8,
18607        len: ::core::ffi::c_long,
18608    ) -> *mut X509_EXTENSIONS;
18609}
18610unsafe extern "C" {
18611    pub fn i2d_X509_EXTENSIONS(
18612        alg: *const X509_EXTENSIONS,
18613        outp: *mut *mut u8,
18614    ) -> ::core::ffi::c_int;
18615}
18616unsafe extern "C" {
18617    pub fn X509v3_get_ext_count(x: *const stack_st_X509_EXTENSION) -> ::core::ffi::c_int;
18618}
18619unsafe extern "C" {
18620    pub fn X509v3_get_ext_by_NID(
18621        x: *const stack_st_X509_EXTENSION,
18622        nid: ::core::ffi::c_int,
18623        lastpos: ::core::ffi::c_int,
18624    ) -> ::core::ffi::c_int;
18625}
18626unsafe extern "C" {
18627    pub fn X509v3_get_ext_by_OBJ(
18628        x: *const stack_st_X509_EXTENSION,
18629        obj: *const ASN1_OBJECT,
18630        lastpos: ::core::ffi::c_int,
18631    ) -> ::core::ffi::c_int;
18632}
18633unsafe extern "C" {
18634    pub fn X509v3_get_ext_by_critical(
18635        x: *const stack_st_X509_EXTENSION,
18636        crit: ::core::ffi::c_int,
18637        lastpos: ::core::ffi::c_int,
18638    ) -> ::core::ffi::c_int;
18639}
18640unsafe extern "C" {
18641    pub fn X509v3_get_ext(
18642        x: *const stack_st_X509_EXTENSION,
18643        loc: ::core::ffi::c_int,
18644    ) -> *mut X509_EXTENSION;
18645}
18646unsafe extern "C" {
18647    pub fn X509v3_delete_ext(
18648        x: *mut stack_st_X509_EXTENSION,
18649        loc: ::core::ffi::c_int,
18650    ) -> *mut X509_EXTENSION;
18651}
18652unsafe extern "C" {
18653    pub fn X509v3_add_ext(
18654        x: *mut *mut stack_st_X509_EXTENSION,
18655        ex: *const X509_EXTENSION,
18656        loc: ::core::ffi::c_int,
18657    ) -> *mut stack_st_X509_EXTENSION;
18658}
18659unsafe extern "C" {
18660    pub fn X509V3_EXT_d2i(ext: *const X509_EXTENSION) -> *mut ::core::ffi::c_void;
18661}
18662unsafe extern "C" {
18663    pub fn X509V3_get_d2i(
18664        extensions: *const stack_st_X509_EXTENSION,
18665        nid: ::core::ffi::c_int,
18666        out_critical: *mut ::core::ffi::c_int,
18667        out_idx: *mut ::core::ffi::c_int,
18668    ) -> *mut ::core::ffi::c_void;
18669}
18670unsafe extern "C" {
18671    pub fn X509V3_EXT_free(
18672        nid: ::core::ffi::c_int,
18673        ext_data: *mut ::core::ffi::c_void,
18674    ) -> ::core::ffi::c_int;
18675}
18676unsafe extern "C" {
18677    pub fn X509V3_EXT_i2d(
18678        ext_nid: ::core::ffi::c_int,
18679        crit: ::core::ffi::c_int,
18680        ext_struc: *mut ::core::ffi::c_void,
18681    ) -> *mut X509_EXTENSION;
18682}
18683unsafe extern "C" {
18684    pub fn X509V3_add1_i2d(
18685        x: *mut *mut stack_st_X509_EXTENSION,
18686        nid: ::core::ffi::c_int,
18687        value: *mut ::core::ffi::c_void,
18688        crit: ::core::ffi::c_int,
18689        flags: ::core::ffi::c_ulong,
18690    ) -> ::core::ffi::c_int;
18691}
18692#[repr(C)]
18693#[derive(Debug, Copy, Clone)]
18694pub struct BASIC_CONSTRAINTS_st {
18695    pub ca: ASN1_BOOLEAN,
18696    pub pathlen: *mut ASN1_INTEGER,
18697}
18698unsafe extern "C" {
18699    pub static BASIC_CONSTRAINTS_it: ASN1_ITEM;
18700}
18701unsafe extern "C" {
18702    pub fn BASIC_CONSTRAINTS_new() -> *mut BASIC_CONSTRAINTS;
18703}
18704unsafe extern "C" {
18705    pub fn BASIC_CONSTRAINTS_free(bcons: *mut BASIC_CONSTRAINTS);
18706}
18707unsafe extern "C" {
18708    pub fn d2i_BASIC_CONSTRAINTS(
18709        out: *mut *mut BASIC_CONSTRAINTS,
18710        inp: *mut *const u8,
18711        len: ::core::ffi::c_long,
18712    ) -> *mut BASIC_CONSTRAINTS;
18713}
18714unsafe extern "C" {
18715    pub fn i2d_BASIC_CONSTRAINTS(
18716        bcons: *const BASIC_CONSTRAINTS,
18717        outp: *mut *mut u8,
18718    ) -> ::core::ffi::c_int;
18719}
18720pub type EXTENDED_KEY_USAGE = stack_st_ASN1_OBJECT;
18721unsafe extern "C" {
18722    pub static EXTENDED_KEY_USAGE_it: ASN1_ITEM;
18723}
18724unsafe extern "C" {
18725    pub fn EXTENDED_KEY_USAGE_new() -> *mut EXTENDED_KEY_USAGE;
18726}
18727unsafe extern "C" {
18728    pub fn EXTENDED_KEY_USAGE_free(eku: *mut EXTENDED_KEY_USAGE);
18729}
18730unsafe extern "C" {
18731    pub fn d2i_EXTENDED_KEY_USAGE(
18732        out: *mut *mut EXTENDED_KEY_USAGE,
18733        inp: *mut *const u8,
18734        len: ::core::ffi::c_long,
18735    ) -> *mut EXTENDED_KEY_USAGE;
18736}
18737unsafe extern "C" {
18738    pub fn i2d_EXTENDED_KEY_USAGE(
18739        eku: *const EXTENDED_KEY_USAGE,
18740        outp: *mut *mut u8,
18741    ) -> ::core::ffi::c_int;
18742}
18743#[repr(C)]
18744#[derive(Debug, Copy, Clone)]
18745pub struct otherName_st {
18746    pub type_id: *mut ASN1_OBJECT,
18747    pub value: *mut ASN1_TYPE,
18748}
18749pub type OTHERNAME = otherName_st;
18750#[repr(C)]
18751#[derive(Debug, Copy, Clone)]
18752pub struct EDIPartyName_st {
18753    pub nameAssigner: *mut ASN1_STRING,
18754    pub partyName: *mut ASN1_STRING,
18755}
18756pub type EDIPARTYNAME = EDIPartyName_st;
18757#[repr(C)]
18758#[derive(Copy, Clone)]
18759pub struct GENERAL_NAME_st {
18760    pub type_: ::core::ffi::c_int,
18761    pub d: GENERAL_NAME_st__bindgen_ty_1,
18762}
18763#[repr(C)]
18764#[derive(Copy, Clone)]
18765pub union GENERAL_NAME_st__bindgen_ty_1 {
18766    pub ptr: *mut ::core::ffi::c_char,
18767    pub otherName: *mut OTHERNAME,
18768    pub rfc822Name: *mut ASN1_IA5STRING,
18769    pub dNSName: *mut ASN1_IA5STRING,
18770    pub x400Address: *mut ASN1_STRING,
18771    pub directoryName: *mut X509_NAME,
18772    pub ediPartyName: *mut EDIPARTYNAME,
18773    pub uniformResourceIdentifier: *mut ASN1_IA5STRING,
18774    pub iPAddress: *mut ASN1_OCTET_STRING,
18775    pub registeredID: *mut ASN1_OBJECT,
18776    pub ip: *mut ASN1_OCTET_STRING,
18777    pub dirn: *mut X509_NAME,
18778    pub ia5: *mut ASN1_IA5STRING,
18779    pub rid: *mut ASN1_OBJECT,
18780}
18781unsafe extern "C" {
18782    pub fn GENERAL_NAME_new() -> *mut GENERAL_NAME;
18783}
18784unsafe extern "C" {
18785    pub fn GENERAL_NAME_free(gen_: *mut GENERAL_NAME);
18786}
18787unsafe extern "C" {
18788    pub fn d2i_GENERAL_NAME(
18789        out: *mut *mut GENERAL_NAME,
18790        inp: *mut *const u8,
18791        len: ::core::ffi::c_long,
18792    ) -> *mut GENERAL_NAME;
18793}
18794unsafe extern "C" {
18795    pub fn i2d_GENERAL_NAME(in_: *const GENERAL_NAME, outp: *mut *mut u8) -> ::core::ffi::c_int;
18796}
18797unsafe extern "C" {
18798    pub fn GENERAL_NAME_dup(gen_: *const GENERAL_NAME) -> *mut GENERAL_NAME;
18799}
18800unsafe extern "C" {
18801    pub fn GENERAL_NAMES_new() -> *mut GENERAL_NAMES;
18802}
18803unsafe extern "C" {
18804    pub fn GENERAL_NAMES_free(gens: *mut GENERAL_NAMES);
18805}
18806unsafe extern "C" {
18807    pub fn d2i_GENERAL_NAMES(
18808        out: *mut *mut GENERAL_NAMES,
18809        inp: *mut *const u8,
18810        len: ::core::ffi::c_long,
18811    ) -> *mut GENERAL_NAMES;
18812}
18813unsafe extern "C" {
18814    pub fn i2d_GENERAL_NAMES(in_: *const GENERAL_NAMES, outp: *mut *mut u8) -> ::core::ffi::c_int;
18815}
18816unsafe extern "C" {
18817    pub fn OTHERNAME_new() -> *mut OTHERNAME;
18818}
18819unsafe extern "C" {
18820    pub fn OTHERNAME_free(name: *mut OTHERNAME);
18821}
18822unsafe extern "C" {
18823    pub fn EDIPARTYNAME_new() -> *mut EDIPARTYNAME;
18824}
18825unsafe extern "C" {
18826    pub fn EDIPARTYNAME_free(name: *mut EDIPARTYNAME);
18827}
18828unsafe extern "C" {
18829    pub fn GENERAL_NAME_set0_value(
18830        gen_: *mut GENERAL_NAME,
18831        type_: ::core::ffi::c_int,
18832        value: *mut ::core::ffi::c_void,
18833    );
18834}
18835unsafe extern "C" {
18836    pub fn GENERAL_NAME_get0_value(
18837        gen_: *const GENERAL_NAME,
18838        out_type: *mut ::core::ffi::c_int,
18839    ) -> *mut ::core::ffi::c_void;
18840}
18841unsafe extern "C" {
18842    pub fn GENERAL_NAME_set0_othername(
18843        gen_: *mut GENERAL_NAME,
18844        oid: *mut ASN1_OBJECT,
18845        value: *mut ASN1_TYPE,
18846    ) -> ::core::ffi::c_int;
18847}
18848unsafe extern "C" {
18849    pub fn GENERAL_NAME_get0_otherName(
18850        gen_: *const GENERAL_NAME,
18851        out_oid: *mut *mut ASN1_OBJECT,
18852        out_value: *mut *mut ASN1_TYPE,
18853    ) -> ::core::ffi::c_int;
18854}
18855#[repr(C)]
18856#[derive(Debug, Copy, Clone)]
18857pub struct AUTHORITY_KEYID_st {
18858    pub keyid: *mut ASN1_OCTET_STRING,
18859    pub issuer: *mut GENERAL_NAMES,
18860    pub serial: *mut ASN1_INTEGER,
18861}
18862unsafe extern "C" {
18863    pub static AUTHORITY_KEYID_it: ASN1_ITEM;
18864}
18865unsafe extern "C" {
18866    pub fn AUTHORITY_KEYID_new() -> *mut AUTHORITY_KEYID;
18867}
18868unsafe extern "C" {
18869    pub fn AUTHORITY_KEYID_free(akid: *mut AUTHORITY_KEYID);
18870}
18871unsafe extern "C" {
18872    pub fn d2i_AUTHORITY_KEYID(
18873        out: *mut *mut AUTHORITY_KEYID,
18874        inp: *mut *const u8,
18875        len: ::core::ffi::c_long,
18876    ) -> *mut AUTHORITY_KEYID;
18877}
18878unsafe extern "C" {
18879    pub fn i2d_AUTHORITY_KEYID(
18880        akid: *const AUTHORITY_KEYID,
18881        outp: *mut *mut u8,
18882    ) -> ::core::ffi::c_int;
18883}
18884#[repr(C)]
18885#[derive(Debug, Copy, Clone)]
18886pub struct GENERAL_SUBTREE_st {
18887    pub base: *mut GENERAL_NAME,
18888    pub minimum: *mut ASN1_INTEGER,
18889    pub maximum: *mut ASN1_INTEGER,
18890}
18891pub type GENERAL_SUBTREE = GENERAL_SUBTREE_st;
18892#[repr(C)]
18893#[derive(Debug)]
18894pub struct stack_st_GENERAL_SUBTREE {
18895    _unused: [u8; 0],
18896}
18897pub type sk_GENERAL_SUBTREE_free_func =
18898    ::core::option::Option<unsafe extern "C" fn(arg1: *mut GENERAL_SUBTREE)>;
18899pub type sk_GENERAL_SUBTREE_copy_func = ::core::option::Option<
18900    unsafe extern "C" fn(arg1: *const GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE,
18901>;
18902pub type sk_GENERAL_SUBTREE_cmp_func = ::core::option::Option<
18903    unsafe extern "C" fn(
18904        arg1: *const *const GENERAL_SUBTREE,
18905        arg2: *const *const GENERAL_SUBTREE,
18906    ) -> ::core::ffi::c_int,
18907>;
18908pub type sk_GENERAL_SUBTREE_delete_if_func = ::core::option::Option<
18909    unsafe extern "C" fn(
18910        arg1: *mut GENERAL_SUBTREE,
18911        arg2: *mut ::core::ffi::c_void,
18912    ) -> ::core::ffi::c_int,
18913>;
18914unsafe extern "C" {
18915    #[link_name = "sk_GENERAL_SUBTREE_call_free_func__extern"]
18916    pub fn sk_GENERAL_SUBTREE_call_free_func(
18917        free_func: OPENSSL_sk_free_func,
18918        ptr: *mut ::core::ffi::c_void,
18919    );
18920}
18921unsafe extern "C" {
18922    #[link_name = "sk_GENERAL_SUBTREE_call_copy_func__extern"]
18923    pub fn sk_GENERAL_SUBTREE_call_copy_func(
18924        copy_func: OPENSSL_sk_copy_func,
18925        ptr: *const ::core::ffi::c_void,
18926    ) -> *mut ::core::ffi::c_void;
18927}
18928unsafe extern "C" {
18929    #[link_name = "sk_GENERAL_SUBTREE_call_cmp_func__extern"]
18930    pub fn sk_GENERAL_SUBTREE_call_cmp_func(
18931        cmp_func: OPENSSL_sk_cmp_func,
18932        a: *const ::core::ffi::c_void,
18933        b: *const ::core::ffi::c_void,
18934    ) -> ::core::ffi::c_int;
18935}
18936unsafe extern "C" {
18937    #[link_name = "sk_GENERAL_SUBTREE_call_delete_if_func__extern"]
18938    pub fn sk_GENERAL_SUBTREE_call_delete_if_func(
18939        func: OPENSSL_sk_delete_if_func,
18940        obj: *mut ::core::ffi::c_void,
18941        data: *mut ::core::ffi::c_void,
18942    ) -> ::core::ffi::c_int;
18943}
18944unsafe extern "C" {
18945    #[link_name = "sk_GENERAL_SUBTREE_new__extern"]
18946    pub fn sk_GENERAL_SUBTREE_new(
18947        comp: sk_GENERAL_SUBTREE_cmp_func,
18948    ) -> *mut stack_st_GENERAL_SUBTREE;
18949}
18950unsafe extern "C" {
18951    #[link_name = "sk_GENERAL_SUBTREE_new_null__extern"]
18952    pub fn sk_GENERAL_SUBTREE_new_null() -> *mut stack_st_GENERAL_SUBTREE;
18953}
18954unsafe extern "C" {
18955    #[link_name = "sk_GENERAL_SUBTREE_num__extern"]
18956    pub fn sk_GENERAL_SUBTREE_num(sk: *const stack_st_GENERAL_SUBTREE) -> usize;
18957}
18958unsafe extern "C" {
18959    #[link_name = "sk_GENERAL_SUBTREE_zero__extern"]
18960    pub fn sk_GENERAL_SUBTREE_zero(sk: *mut stack_st_GENERAL_SUBTREE);
18961}
18962unsafe extern "C" {
18963    #[link_name = "sk_GENERAL_SUBTREE_value__extern"]
18964    pub fn sk_GENERAL_SUBTREE_value(
18965        sk: *const stack_st_GENERAL_SUBTREE,
18966        i: usize,
18967    ) -> *mut GENERAL_SUBTREE;
18968}
18969unsafe extern "C" {
18970    #[link_name = "sk_GENERAL_SUBTREE_set__extern"]
18971    pub fn sk_GENERAL_SUBTREE_set(
18972        sk: *mut stack_st_GENERAL_SUBTREE,
18973        i: usize,
18974        p: *mut GENERAL_SUBTREE,
18975    ) -> *mut GENERAL_SUBTREE;
18976}
18977unsafe extern "C" {
18978    #[link_name = "sk_GENERAL_SUBTREE_free__extern"]
18979    pub fn sk_GENERAL_SUBTREE_free(sk: *mut stack_st_GENERAL_SUBTREE);
18980}
18981unsafe extern "C" {
18982    #[link_name = "sk_GENERAL_SUBTREE_pop_free__extern"]
18983    pub fn sk_GENERAL_SUBTREE_pop_free(
18984        sk: *mut stack_st_GENERAL_SUBTREE,
18985        free_func: sk_GENERAL_SUBTREE_free_func,
18986    );
18987}
18988unsafe extern "C" {
18989    #[link_name = "sk_GENERAL_SUBTREE_insert__extern"]
18990    pub fn sk_GENERAL_SUBTREE_insert(
18991        sk: *mut stack_st_GENERAL_SUBTREE,
18992        p: *mut GENERAL_SUBTREE,
18993        where_: usize,
18994    ) -> usize;
18995}
18996unsafe extern "C" {
18997    #[link_name = "sk_GENERAL_SUBTREE_delete__extern"]
18998    pub fn sk_GENERAL_SUBTREE_delete(
18999        sk: *mut stack_st_GENERAL_SUBTREE,
19000        where_: usize,
19001    ) -> *mut GENERAL_SUBTREE;
19002}
19003unsafe extern "C" {
19004    #[link_name = "sk_GENERAL_SUBTREE_delete_ptr__extern"]
19005    pub fn sk_GENERAL_SUBTREE_delete_ptr(
19006        sk: *mut stack_st_GENERAL_SUBTREE,
19007        p: *const GENERAL_SUBTREE,
19008    ) -> *mut GENERAL_SUBTREE;
19009}
19010unsafe extern "C" {
19011    #[link_name = "sk_GENERAL_SUBTREE_delete_if__extern"]
19012    pub fn sk_GENERAL_SUBTREE_delete_if(
19013        sk: *mut stack_st_GENERAL_SUBTREE,
19014        func: sk_GENERAL_SUBTREE_delete_if_func,
19015        data: *mut ::core::ffi::c_void,
19016    );
19017}
19018unsafe extern "C" {
19019    #[link_name = "sk_GENERAL_SUBTREE_find__extern"]
19020    pub fn sk_GENERAL_SUBTREE_find(
19021        sk: *const stack_st_GENERAL_SUBTREE,
19022        out_index: *mut usize,
19023        p: *const GENERAL_SUBTREE,
19024    ) -> ::core::ffi::c_int;
19025}
19026unsafe extern "C" {
19027    #[link_name = "sk_GENERAL_SUBTREE_shift__extern"]
19028    pub fn sk_GENERAL_SUBTREE_shift(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
19029}
19030unsafe extern "C" {
19031    #[link_name = "sk_GENERAL_SUBTREE_push__extern"]
19032    pub fn sk_GENERAL_SUBTREE_push(
19033        sk: *mut stack_st_GENERAL_SUBTREE,
19034        p: *mut GENERAL_SUBTREE,
19035    ) -> usize;
19036}
19037unsafe extern "C" {
19038    #[link_name = "sk_GENERAL_SUBTREE_pop__extern"]
19039    pub fn sk_GENERAL_SUBTREE_pop(sk: *mut stack_st_GENERAL_SUBTREE) -> *mut GENERAL_SUBTREE;
19040}
19041unsafe extern "C" {
19042    #[link_name = "sk_GENERAL_SUBTREE_dup__extern"]
19043    pub fn sk_GENERAL_SUBTREE_dup(
19044        sk: *const stack_st_GENERAL_SUBTREE,
19045    ) -> *mut stack_st_GENERAL_SUBTREE;
19046}
19047unsafe extern "C" {
19048    #[link_name = "sk_GENERAL_SUBTREE_sort__extern"]
19049    pub fn sk_GENERAL_SUBTREE_sort(sk: *mut stack_st_GENERAL_SUBTREE);
19050}
19051unsafe extern "C" {
19052    #[link_name = "sk_GENERAL_SUBTREE_sort_and_dedup__extern"]
19053    pub fn sk_GENERAL_SUBTREE_sort_and_dedup(
19054        sk: *mut stack_st_GENERAL_SUBTREE,
19055        free_func: sk_GENERAL_SUBTREE_free_func,
19056    );
19057}
19058unsafe extern "C" {
19059    #[link_name = "sk_GENERAL_SUBTREE_is_sorted__extern"]
19060    pub fn sk_GENERAL_SUBTREE_is_sorted(sk: *const stack_st_GENERAL_SUBTREE) -> ::core::ffi::c_int;
19061}
19062unsafe extern "C" {
19063    #[link_name = "sk_GENERAL_SUBTREE_set_cmp_func__extern"]
19064    pub fn sk_GENERAL_SUBTREE_set_cmp_func(
19065        sk: *mut stack_st_GENERAL_SUBTREE,
19066        comp: sk_GENERAL_SUBTREE_cmp_func,
19067    ) -> sk_GENERAL_SUBTREE_cmp_func;
19068}
19069unsafe extern "C" {
19070    #[link_name = "sk_GENERAL_SUBTREE_deep_copy__extern"]
19071    pub fn sk_GENERAL_SUBTREE_deep_copy(
19072        sk: *const stack_st_GENERAL_SUBTREE,
19073        copy_func: sk_GENERAL_SUBTREE_copy_func,
19074        free_func: sk_GENERAL_SUBTREE_free_func,
19075    ) -> *mut stack_st_GENERAL_SUBTREE;
19076}
19077unsafe extern "C" {
19078    pub fn GENERAL_SUBTREE_new() -> *mut GENERAL_SUBTREE;
19079}
19080unsafe extern "C" {
19081    pub fn GENERAL_SUBTREE_free(subtree: *mut GENERAL_SUBTREE);
19082}
19083#[repr(C)]
19084#[derive(Debug, Copy, Clone)]
19085pub struct NAME_CONSTRAINTS_st {
19086    pub permittedSubtrees: *mut stack_st_GENERAL_SUBTREE,
19087    pub excludedSubtrees: *mut stack_st_GENERAL_SUBTREE,
19088}
19089unsafe extern "C" {
19090    pub static NAME_CONSTRAINTS_it: ASN1_ITEM;
19091}
19092unsafe extern "C" {
19093    pub fn NAME_CONSTRAINTS_new() -> *mut NAME_CONSTRAINTS;
19094}
19095unsafe extern "C" {
19096    pub fn NAME_CONSTRAINTS_free(ncons: *mut NAME_CONSTRAINTS);
19097}
19098#[repr(C)]
19099#[derive(Debug, Copy, Clone)]
19100pub struct ACCESS_DESCRIPTION_st {
19101    pub method: *mut ASN1_OBJECT,
19102    pub location: *mut GENERAL_NAME,
19103}
19104pub type ACCESS_DESCRIPTION = ACCESS_DESCRIPTION_st;
19105#[repr(C)]
19106#[derive(Debug)]
19107pub struct stack_st_ACCESS_DESCRIPTION {
19108    _unused: [u8; 0],
19109}
19110pub type sk_ACCESS_DESCRIPTION_free_func =
19111    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ACCESS_DESCRIPTION)>;
19112pub type sk_ACCESS_DESCRIPTION_copy_func = ::core::option::Option<
19113    unsafe extern "C" fn(arg1: *const ACCESS_DESCRIPTION) -> *mut ACCESS_DESCRIPTION,
19114>;
19115pub type sk_ACCESS_DESCRIPTION_cmp_func = ::core::option::Option<
19116    unsafe extern "C" fn(
19117        arg1: *const *const ACCESS_DESCRIPTION,
19118        arg2: *const *const ACCESS_DESCRIPTION,
19119    ) -> ::core::ffi::c_int,
19120>;
19121pub type sk_ACCESS_DESCRIPTION_delete_if_func = ::core::option::Option<
19122    unsafe extern "C" fn(
19123        arg1: *mut ACCESS_DESCRIPTION,
19124        arg2: *mut ::core::ffi::c_void,
19125    ) -> ::core::ffi::c_int,
19126>;
19127unsafe extern "C" {
19128    #[link_name = "sk_ACCESS_DESCRIPTION_call_free_func__extern"]
19129    pub fn sk_ACCESS_DESCRIPTION_call_free_func(
19130        free_func: OPENSSL_sk_free_func,
19131        ptr: *mut ::core::ffi::c_void,
19132    );
19133}
19134unsafe extern "C" {
19135    #[link_name = "sk_ACCESS_DESCRIPTION_call_copy_func__extern"]
19136    pub fn sk_ACCESS_DESCRIPTION_call_copy_func(
19137        copy_func: OPENSSL_sk_copy_func,
19138        ptr: *const ::core::ffi::c_void,
19139    ) -> *mut ::core::ffi::c_void;
19140}
19141unsafe extern "C" {
19142    #[link_name = "sk_ACCESS_DESCRIPTION_call_cmp_func__extern"]
19143    pub fn sk_ACCESS_DESCRIPTION_call_cmp_func(
19144        cmp_func: OPENSSL_sk_cmp_func,
19145        a: *const ::core::ffi::c_void,
19146        b: *const ::core::ffi::c_void,
19147    ) -> ::core::ffi::c_int;
19148}
19149unsafe extern "C" {
19150    #[link_name = "sk_ACCESS_DESCRIPTION_call_delete_if_func__extern"]
19151    pub fn sk_ACCESS_DESCRIPTION_call_delete_if_func(
19152        func: OPENSSL_sk_delete_if_func,
19153        obj: *mut ::core::ffi::c_void,
19154        data: *mut ::core::ffi::c_void,
19155    ) -> ::core::ffi::c_int;
19156}
19157unsafe extern "C" {
19158    #[link_name = "sk_ACCESS_DESCRIPTION_new__extern"]
19159    pub fn sk_ACCESS_DESCRIPTION_new(
19160        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19161    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19162}
19163unsafe extern "C" {
19164    #[link_name = "sk_ACCESS_DESCRIPTION_new_null__extern"]
19165    pub fn sk_ACCESS_DESCRIPTION_new_null() -> *mut stack_st_ACCESS_DESCRIPTION;
19166}
19167unsafe extern "C" {
19168    #[link_name = "sk_ACCESS_DESCRIPTION_num__extern"]
19169    pub fn sk_ACCESS_DESCRIPTION_num(sk: *const stack_st_ACCESS_DESCRIPTION) -> usize;
19170}
19171unsafe extern "C" {
19172    #[link_name = "sk_ACCESS_DESCRIPTION_zero__extern"]
19173    pub fn sk_ACCESS_DESCRIPTION_zero(sk: *mut stack_st_ACCESS_DESCRIPTION);
19174}
19175unsafe extern "C" {
19176    #[link_name = "sk_ACCESS_DESCRIPTION_value__extern"]
19177    pub fn sk_ACCESS_DESCRIPTION_value(
19178        sk: *const stack_st_ACCESS_DESCRIPTION,
19179        i: usize,
19180    ) -> *mut ACCESS_DESCRIPTION;
19181}
19182unsafe extern "C" {
19183    #[link_name = "sk_ACCESS_DESCRIPTION_set__extern"]
19184    pub fn sk_ACCESS_DESCRIPTION_set(
19185        sk: *mut stack_st_ACCESS_DESCRIPTION,
19186        i: usize,
19187        p: *mut ACCESS_DESCRIPTION,
19188    ) -> *mut ACCESS_DESCRIPTION;
19189}
19190unsafe extern "C" {
19191    #[link_name = "sk_ACCESS_DESCRIPTION_free__extern"]
19192    pub fn sk_ACCESS_DESCRIPTION_free(sk: *mut stack_st_ACCESS_DESCRIPTION);
19193}
19194unsafe extern "C" {
19195    #[link_name = "sk_ACCESS_DESCRIPTION_pop_free__extern"]
19196    pub fn sk_ACCESS_DESCRIPTION_pop_free(
19197        sk: *mut stack_st_ACCESS_DESCRIPTION,
19198        free_func: sk_ACCESS_DESCRIPTION_free_func,
19199    );
19200}
19201unsafe extern "C" {
19202    #[link_name = "sk_ACCESS_DESCRIPTION_insert__extern"]
19203    pub fn sk_ACCESS_DESCRIPTION_insert(
19204        sk: *mut stack_st_ACCESS_DESCRIPTION,
19205        p: *mut ACCESS_DESCRIPTION,
19206        where_: usize,
19207    ) -> usize;
19208}
19209unsafe extern "C" {
19210    #[link_name = "sk_ACCESS_DESCRIPTION_delete__extern"]
19211    pub fn sk_ACCESS_DESCRIPTION_delete(
19212        sk: *mut stack_st_ACCESS_DESCRIPTION,
19213        where_: usize,
19214    ) -> *mut ACCESS_DESCRIPTION;
19215}
19216unsafe extern "C" {
19217    #[link_name = "sk_ACCESS_DESCRIPTION_delete_ptr__extern"]
19218    pub fn sk_ACCESS_DESCRIPTION_delete_ptr(
19219        sk: *mut stack_st_ACCESS_DESCRIPTION,
19220        p: *const ACCESS_DESCRIPTION,
19221    ) -> *mut ACCESS_DESCRIPTION;
19222}
19223unsafe extern "C" {
19224    #[link_name = "sk_ACCESS_DESCRIPTION_delete_if__extern"]
19225    pub fn sk_ACCESS_DESCRIPTION_delete_if(
19226        sk: *mut stack_st_ACCESS_DESCRIPTION,
19227        func: sk_ACCESS_DESCRIPTION_delete_if_func,
19228        data: *mut ::core::ffi::c_void,
19229    );
19230}
19231unsafe extern "C" {
19232    #[link_name = "sk_ACCESS_DESCRIPTION_find__extern"]
19233    pub fn sk_ACCESS_DESCRIPTION_find(
19234        sk: *const stack_st_ACCESS_DESCRIPTION,
19235        out_index: *mut usize,
19236        p: *const ACCESS_DESCRIPTION,
19237    ) -> ::core::ffi::c_int;
19238}
19239unsafe extern "C" {
19240    #[link_name = "sk_ACCESS_DESCRIPTION_shift__extern"]
19241    pub fn sk_ACCESS_DESCRIPTION_shift(
19242        sk: *mut stack_st_ACCESS_DESCRIPTION,
19243    ) -> *mut ACCESS_DESCRIPTION;
19244}
19245unsafe extern "C" {
19246    #[link_name = "sk_ACCESS_DESCRIPTION_push__extern"]
19247    pub fn sk_ACCESS_DESCRIPTION_push(
19248        sk: *mut stack_st_ACCESS_DESCRIPTION,
19249        p: *mut ACCESS_DESCRIPTION,
19250    ) -> usize;
19251}
19252unsafe extern "C" {
19253    #[link_name = "sk_ACCESS_DESCRIPTION_pop__extern"]
19254    pub fn sk_ACCESS_DESCRIPTION_pop(
19255        sk: *mut stack_st_ACCESS_DESCRIPTION,
19256    ) -> *mut ACCESS_DESCRIPTION;
19257}
19258unsafe extern "C" {
19259    #[link_name = "sk_ACCESS_DESCRIPTION_dup__extern"]
19260    pub fn sk_ACCESS_DESCRIPTION_dup(
19261        sk: *const stack_st_ACCESS_DESCRIPTION,
19262    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19263}
19264unsafe extern "C" {
19265    #[link_name = "sk_ACCESS_DESCRIPTION_sort__extern"]
19266    pub fn sk_ACCESS_DESCRIPTION_sort(sk: *mut stack_st_ACCESS_DESCRIPTION);
19267}
19268unsafe extern "C" {
19269    #[link_name = "sk_ACCESS_DESCRIPTION_sort_and_dedup__extern"]
19270    pub fn sk_ACCESS_DESCRIPTION_sort_and_dedup(
19271        sk: *mut stack_st_ACCESS_DESCRIPTION,
19272        free_func: sk_ACCESS_DESCRIPTION_free_func,
19273    );
19274}
19275unsafe extern "C" {
19276    #[link_name = "sk_ACCESS_DESCRIPTION_is_sorted__extern"]
19277    pub fn sk_ACCESS_DESCRIPTION_is_sorted(
19278        sk: *const stack_st_ACCESS_DESCRIPTION,
19279    ) -> ::core::ffi::c_int;
19280}
19281unsafe extern "C" {
19282    #[link_name = "sk_ACCESS_DESCRIPTION_set_cmp_func__extern"]
19283    pub fn sk_ACCESS_DESCRIPTION_set_cmp_func(
19284        sk: *mut stack_st_ACCESS_DESCRIPTION,
19285        comp: sk_ACCESS_DESCRIPTION_cmp_func,
19286    ) -> sk_ACCESS_DESCRIPTION_cmp_func;
19287}
19288unsafe extern "C" {
19289    #[link_name = "sk_ACCESS_DESCRIPTION_deep_copy__extern"]
19290    pub fn sk_ACCESS_DESCRIPTION_deep_copy(
19291        sk: *const stack_st_ACCESS_DESCRIPTION,
19292        copy_func: sk_ACCESS_DESCRIPTION_copy_func,
19293        free_func: sk_ACCESS_DESCRIPTION_free_func,
19294    ) -> *mut stack_st_ACCESS_DESCRIPTION;
19295}
19296unsafe extern "C" {
19297    pub fn ACCESS_DESCRIPTION_new() -> *mut ACCESS_DESCRIPTION;
19298}
19299unsafe extern "C" {
19300    pub fn ACCESS_DESCRIPTION_free(desc: *mut ACCESS_DESCRIPTION);
19301}
19302pub type AUTHORITY_INFO_ACCESS = stack_st_ACCESS_DESCRIPTION;
19303unsafe extern "C" {
19304    pub static AUTHORITY_INFO_ACCESS_it: ASN1_ITEM;
19305}
19306unsafe extern "C" {
19307    pub fn AUTHORITY_INFO_ACCESS_new() -> *mut AUTHORITY_INFO_ACCESS;
19308}
19309unsafe extern "C" {
19310    pub fn AUTHORITY_INFO_ACCESS_free(aia: *mut AUTHORITY_INFO_ACCESS);
19311}
19312unsafe extern "C" {
19313    pub fn d2i_AUTHORITY_INFO_ACCESS(
19314        out: *mut *mut AUTHORITY_INFO_ACCESS,
19315        inp: *mut *const u8,
19316        len: ::core::ffi::c_long,
19317    ) -> *mut AUTHORITY_INFO_ACCESS;
19318}
19319unsafe extern "C" {
19320    pub fn i2d_AUTHORITY_INFO_ACCESS(
19321        aia: *const AUTHORITY_INFO_ACCESS,
19322        outp: *mut *mut u8,
19323    ) -> ::core::ffi::c_int;
19324}
19325#[repr(C)]
19326#[derive(Copy, Clone)]
19327pub struct DIST_POINT_NAME_st {
19328    pub type_: ::core::ffi::c_int,
19329    pub name: DIST_POINT_NAME_st__bindgen_ty_1,
19330    pub dpname: *mut X509_NAME,
19331}
19332#[repr(C)]
19333#[derive(Copy, Clone)]
19334pub union DIST_POINT_NAME_st__bindgen_ty_1 {
19335    pub fullname: *mut GENERAL_NAMES,
19336    pub relativename: *mut stack_st_X509_NAME_ENTRY,
19337}
19338pub type DIST_POINT_NAME = DIST_POINT_NAME_st;
19339unsafe extern "C" {
19340    pub fn DIST_POINT_NAME_new() -> *mut DIST_POINT_NAME;
19341}
19342unsafe extern "C" {
19343    pub fn DIST_POINT_NAME_free(name: *mut DIST_POINT_NAME);
19344}
19345#[repr(C)]
19346#[derive(Debug, Copy, Clone)]
19347pub struct DIST_POINT_st {
19348    pub distpoint: *mut DIST_POINT_NAME,
19349    pub reasons: *mut ASN1_BIT_STRING,
19350    pub CRLissuer: *mut GENERAL_NAMES,
19351}
19352#[repr(C)]
19353#[derive(Debug)]
19354pub struct stack_st_DIST_POINT {
19355    _unused: [u8; 0],
19356}
19357pub type sk_DIST_POINT_free_func =
19358    ::core::option::Option<unsafe extern "C" fn(arg1: *mut DIST_POINT)>;
19359pub type sk_DIST_POINT_copy_func =
19360    ::core::option::Option<unsafe extern "C" fn(arg1: *const DIST_POINT) -> *mut DIST_POINT>;
19361pub type sk_DIST_POINT_cmp_func = ::core::option::Option<
19362    unsafe extern "C" fn(
19363        arg1: *const *const DIST_POINT,
19364        arg2: *const *const DIST_POINT,
19365    ) -> ::core::ffi::c_int,
19366>;
19367pub type sk_DIST_POINT_delete_if_func = ::core::option::Option<
19368    unsafe extern "C" fn(
19369        arg1: *mut DIST_POINT,
19370        arg2: *mut ::core::ffi::c_void,
19371    ) -> ::core::ffi::c_int,
19372>;
19373unsafe extern "C" {
19374    #[link_name = "sk_DIST_POINT_call_free_func__extern"]
19375    pub fn sk_DIST_POINT_call_free_func(
19376        free_func: OPENSSL_sk_free_func,
19377        ptr: *mut ::core::ffi::c_void,
19378    );
19379}
19380unsafe extern "C" {
19381    #[link_name = "sk_DIST_POINT_call_copy_func__extern"]
19382    pub fn sk_DIST_POINT_call_copy_func(
19383        copy_func: OPENSSL_sk_copy_func,
19384        ptr: *const ::core::ffi::c_void,
19385    ) -> *mut ::core::ffi::c_void;
19386}
19387unsafe extern "C" {
19388    #[link_name = "sk_DIST_POINT_call_cmp_func__extern"]
19389    pub fn sk_DIST_POINT_call_cmp_func(
19390        cmp_func: OPENSSL_sk_cmp_func,
19391        a: *const ::core::ffi::c_void,
19392        b: *const ::core::ffi::c_void,
19393    ) -> ::core::ffi::c_int;
19394}
19395unsafe extern "C" {
19396    #[link_name = "sk_DIST_POINT_call_delete_if_func__extern"]
19397    pub fn sk_DIST_POINT_call_delete_if_func(
19398        func: OPENSSL_sk_delete_if_func,
19399        obj: *mut ::core::ffi::c_void,
19400        data: *mut ::core::ffi::c_void,
19401    ) -> ::core::ffi::c_int;
19402}
19403unsafe extern "C" {
19404    #[link_name = "sk_DIST_POINT_new__extern"]
19405    pub fn sk_DIST_POINT_new(comp: sk_DIST_POINT_cmp_func) -> *mut stack_st_DIST_POINT;
19406}
19407unsafe extern "C" {
19408    #[link_name = "sk_DIST_POINT_new_null__extern"]
19409    pub fn sk_DIST_POINT_new_null() -> *mut stack_st_DIST_POINT;
19410}
19411unsafe extern "C" {
19412    #[link_name = "sk_DIST_POINT_num__extern"]
19413    pub fn sk_DIST_POINT_num(sk: *const stack_st_DIST_POINT) -> usize;
19414}
19415unsafe extern "C" {
19416    #[link_name = "sk_DIST_POINT_zero__extern"]
19417    pub fn sk_DIST_POINT_zero(sk: *mut stack_st_DIST_POINT);
19418}
19419unsafe extern "C" {
19420    #[link_name = "sk_DIST_POINT_value__extern"]
19421    pub fn sk_DIST_POINT_value(sk: *const stack_st_DIST_POINT, i: usize) -> *mut DIST_POINT;
19422}
19423unsafe extern "C" {
19424    #[link_name = "sk_DIST_POINT_set__extern"]
19425    pub fn sk_DIST_POINT_set(
19426        sk: *mut stack_st_DIST_POINT,
19427        i: usize,
19428        p: *mut DIST_POINT,
19429    ) -> *mut DIST_POINT;
19430}
19431unsafe extern "C" {
19432    #[link_name = "sk_DIST_POINT_free__extern"]
19433    pub fn sk_DIST_POINT_free(sk: *mut stack_st_DIST_POINT);
19434}
19435unsafe extern "C" {
19436    #[link_name = "sk_DIST_POINT_pop_free__extern"]
19437    pub fn sk_DIST_POINT_pop_free(sk: *mut stack_st_DIST_POINT, free_func: sk_DIST_POINT_free_func);
19438}
19439unsafe extern "C" {
19440    #[link_name = "sk_DIST_POINT_insert__extern"]
19441    pub fn sk_DIST_POINT_insert(
19442        sk: *mut stack_st_DIST_POINT,
19443        p: *mut DIST_POINT,
19444        where_: usize,
19445    ) -> usize;
19446}
19447unsafe extern "C" {
19448    #[link_name = "sk_DIST_POINT_delete__extern"]
19449    pub fn sk_DIST_POINT_delete(sk: *mut stack_st_DIST_POINT, where_: usize) -> *mut DIST_POINT;
19450}
19451unsafe extern "C" {
19452    #[link_name = "sk_DIST_POINT_delete_ptr__extern"]
19453    pub fn sk_DIST_POINT_delete_ptr(
19454        sk: *mut stack_st_DIST_POINT,
19455        p: *const DIST_POINT,
19456    ) -> *mut DIST_POINT;
19457}
19458unsafe extern "C" {
19459    #[link_name = "sk_DIST_POINT_delete_if__extern"]
19460    pub fn sk_DIST_POINT_delete_if(
19461        sk: *mut stack_st_DIST_POINT,
19462        func: sk_DIST_POINT_delete_if_func,
19463        data: *mut ::core::ffi::c_void,
19464    );
19465}
19466unsafe extern "C" {
19467    #[link_name = "sk_DIST_POINT_find__extern"]
19468    pub fn sk_DIST_POINT_find(
19469        sk: *const stack_st_DIST_POINT,
19470        out_index: *mut usize,
19471        p: *const DIST_POINT,
19472    ) -> ::core::ffi::c_int;
19473}
19474unsafe extern "C" {
19475    #[link_name = "sk_DIST_POINT_shift__extern"]
19476    pub fn sk_DIST_POINT_shift(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19477}
19478unsafe extern "C" {
19479    #[link_name = "sk_DIST_POINT_push__extern"]
19480    pub fn sk_DIST_POINT_push(sk: *mut stack_st_DIST_POINT, p: *mut DIST_POINT) -> usize;
19481}
19482unsafe extern "C" {
19483    #[link_name = "sk_DIST_POINT_pop__extern"]
19484    pub fn sk_DIST_POINT_pop(sk: *mut stack_st_DIST_POINT) -> *mut DIST_POINT;
19485}
19486unsafe extern "C" {
19487    #[link_name = "sk_DIST_POINT_dup__extern"]
19488    pub fn sk_DIST_POINT_dup(sk: *const stack_st_DIST_POINT) -> *mut stack_st_DIST_POINT;
19489}
19490unsafe extern "C" {
19491    #[link_name = "sk_DIST_POINT_sort__extern"]
19492    pub fn sk_DIST_POINT_sort(sk: *mut stack_st_DIST_POINT);
19493}
19494unsafe extern "C" {
19495    #[link_name = "sk_DIST_POINT_sort_and_dedup__extern"]
19496    pub fn sk_DIST_POINT_sort_and_dedup(
19497        sk: *mut stack_st_DIST_POINT,
19498        free_func: sk_DIST_POINT_free_func,
19499    );
19500}
19501unsafe extern "C" {
19502    #[link_name = "sk_DIST_POINT_is_sorted__extern"]
19503    pub fn sk_DIST_POINT_is_sorted(sk: *const stack_st_DIST_POINT) -> ::core::ffi::c_int;
19504}
19505unsafe extern "C" {
19506    #[link_name = "sk_DIST_POINT_set_cmp_func__extern"]
19507    pub fn sk_DIST_POINT_set_cmp_func(
19508        sk: *mut stack_st_DIST_POINT,
19509        comp: sk_DIST_POINT_cmp_func,
19510    ) -> sk_DIST_POINT_cmp_func;
19511}
19512unsafe extern "C" {
19513    #[link_name = "sk_DIST_POINT_deep_copy__extern"]
19514    pub fn sk_DIST_POINT_deep_copy(
19515        sk: *const stack_st_DIST_POINT,
19516        copy_func: sk_DIST_POINT_copy_func,
19517        free_func: sk_DIST_POINT_free_func,
19518    ) -> *mut stack_st_DIST_POINT;
19519}
19520unsafe extern "C" {
19521    pub fn DIST_POINT_new() -> *mut DIST_POINT;
19522}
19523unsafe extern "C" {
19524    pub fn DIST_POINT_free(dp: *mut DIST_POINT);
19525}
19526pub type CRL_DIST_POINTS = stack_st_DIST_POINT;
19527unsafe extern "C" {
19528    pub static CRL_DIST_POINTS_it: ASN1_ITEM;
19529}
19530unsafe extern "C" {
19531    pub fn CRL_DIST_POINTS_new() -> *mut CRL_DIST_POINTS;
19532}
19533unsafe extern "C" {
19534    pub fn CRL_DIST_POINTS_free(crldp: *mut CRL_DIST_POINTS);
19535}
19536unsafe extern "C" {
19537    pub fn d2i_CRL_DIST_POINTS(
19538        out: *mut *mut CRL_DIST_POINTS,
19539        inp: *mut *const u8,
19540        len: ::core::ffi::c_long,
19541    ) -> *mut CRL_DIST_POINTS;
19542}
19543unsafe extern "C" {
19544    pub fn i2d_CRL_DIST_POINTS(
19545        crldp: *const CRL_DIST_POINTS,
19546        outp: *mut *mut u8,
19547    ) -> ::core::ffi::c_int;
19548}
19549#[repr(C)]
19550#[derive(Debug, Copy, Clone)]
19551pub struct ISSUING_DIST_POINT_st {
19552    pub distpoint: *mut DIST_POINT_NAME,
19553    pub onlyuser: ASN1_BOOLEAN,
19554    pub onlyCA: ASN1_BOOLEAN,
19555    pub onlysomereasons: *mut ASN1_BIT_STRING,
19556    pub indirectCRL: ASN1_BOOLEAN,
19557    pub onlyattr: ASN1_BOOLEAN,
19558}
19559unsafe extern "C" {
19560    pub static ISSUING_DIST_POINT_it: ASN1_ITEM;
19561}
19562unsafe extern "C" {
19563    pub fn ISSUING_DIST_POINT_new() -> *mut ISSUING_DIST_POINT;
19564}
19565unsafe extern "C" {
19566    pub fn ISSUING_DIST_POINT_free(idp: *mut ISSUING_DIST_POINT);
19567}
19568unsafe extern "C" {
19569    pub fn d2i_ISSUING_DIST_POINT(
19570        out: *mut *mut ISSUING_DIST_POINT,
19571        inp: *mut *const u8,
19572        len: ::core::ffi::c_long,
19573    ) -> *mut ISSUING_DIST_POINT;
19574}
19575unsafe extern "C" {
19576    pub fn i2d_ISSUING_DIST_POINT(
19577        idp: *const ISSUING_DIST_POINT,
19578        outp: *mut *mut u8,
19579    ) -> ::core::ffi::c_int;
19580}
19581#[repr(C)]
19582#[derive(Debug, Copy, Clone)]
19583pub struct NOTICEREF_st {
19584    pub organization: *mut ASN1_STRING,
19585    pub noticenos: *mut stack_st_ASN1_INTEGER,
19586}
19587pub type NOTICEREF = NOTICEREF_st;
19588unsafe extern "C" {
19589    pub fn NOTICEREF_new() -> *mut NOTICEREF;
19590}
19591unsafe extern "C" {
19592    pub fn NOTICEREF_free(ref_: *mut NOTICEREF);
19593}
19594#[repr(C)]
19595#[derive(Debug, Copy, Clone)]
19596pub struct USERNOTICE_st {
19597    pub noticeref: *mut NOTICEREF,
19598    pub exptext: *mut ASN1_STRING,
19599}
19600pub type USERNOTICE = USERNOTICE_st;
19601unsafe extern "C" {
19602    pub fn USERNOTICE_new() -> *mut USERNOTICE;
19603}
19604unsafe extern "C" {
19605    pub fn USERNOTICE_free(notice: *mut USERNOTICE);
19606}
19607#[repr(C)]
19608#[derive(Copy, Clone)]
19609pub struct POLICYQUALINFO_st {
19610    pub pqualid: *mut ASN1_OBJECT,
19611    pub d: POLICYQUALINFO_st__bindgen_ty_1,
19612}
19613#[repr(C)]
19614#[derive(Copy, Clone)]
19615pub union POLICYQUALINFO_st__bindgen_ty_1 {
19616    pub cpsuri: *mut ASN1_IA5STRING,
19617    pub usernotice: *mut USERNOTICE,
19618    pub other: *mut ASN1_TYPE,
19619}
19620pub type POLICYQUALINFO = POLICYQUALINFO_st;
19621#[repr(C)]
19622#[derive(Debug)]
19623pub struct stack_st_POLICYQUALINFO {
19624    _unused: [u8; 0],
19625}
19626pub type sk_POLICYQUALINFO_free_func =
19627    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYQUALINFO)>;
19628pub type sk_POLICYQUALINFO_copy_func = ::core::option::Option<
19629    unsafe extern "C" fn(arg1: *const POLICYQUALINFO) -> *mut POLICYQUALINFO,
19630>;
19631pub type sk_POLICYQUALINFO_cmp_func = ::core::option::Option<
19632    unsafe extern "C" fn(
19633        arg1: *const *const POLICYQUALINFO,
19634        arg2: *const *const POLICYQUALINFO,
19635    ) -> ::core::ffi::c_int,
19636>;
19637pub type sk_POLICYQUALINFO_delete_if_func = ::core::option::Option<
19638    unsafe extern "C" fn(
19639        arg1: *mut POLICYQUALINFO,
19640        arg2: *mut ::core::ffi::c_void,
19641    ) -> ::core::ffi::c_int,
19642>;
19643unsafe extern "C" {
19644    #[link_name = "sk_POLICYQUALINFO_call_free_func__extern"]
19645    pub fn sk_POLICYQUALINFO_call_free_func(
19646        free_func: OPENSSL_sk_free_func,
19647        ptr: *mut ::core::ffi::c_void,
19648    );
19649}
19650unsafe extern "C" {
19651    #[link_name = "sk_POLICYQUALINFO_call_copy_func__extern"]
19652    pub fn sk_POLICYQUALINFO_call_copy_func(
19653        copy_func: OPENSSL_sk_copy_func,
19654        ptr: *const ::core::ffi::c_void,
19655    ) -> *mut ::core::ffi::c_void;
19656}
19657unsafe extern "C" {
19658    #[link_name = "sk_POLICYQUALINFO_call_cmp_func__extern"]
19659    pub fn sk_POLICYQUALINFO_call_cmp_func(
19660        cmp_func: OPENSSL_sk_cmp_func,
19661        a: *const ::core::ffi::c_void,
19662        b: *const ::core::ffi::c_void,
19663    ) -> ::core::ffi::c_int;
19664}
19665unsafe extern "C" {
19666    #[link_name = "sk_POLICYQUALINFO_call_delete_if_func__extern"]
19667    pub fn sk_POLICYQUALINFO_call_delete_if_func(
19668        func: OPENSSL_sk_delete_if_func,
19669        obj: *mut ::core::ffi::c_void,
19670        data: *mut ::core::ffi::c_void,
19671    ) -> ::core::ffi::c_int;
19672}
19673unsafe extern "C" {
19674    #[link_name = "sk_POLICYQUALINFO_new__extern"]
19675    pub fn sk_POLICYQUALINFO_new(comp: sk_POLICYQUALINFO_cmp_func) -> *mut stack_st_POLICYQUALINFO;
19676}
19677unsafe extern "C" {
19678    #[link_name = "sk_POLICYQUALINFO_new_null__extern"]
19679    pub fn sk_POLICYQUALINFO_new_null() -> *mut stack_st_POLICYQUALINFO;
19680}
19681unsafe extern "C" {
19682    #[link_name = "sk_POLICYQUALINFO_num__extern"]
19683    pub fn sk_POLICYQUALINFO_num(sk: *const stack_st_POLICYQUALINFO) -> usize;
19684}
19685unsafe extern "C" {
19686    #[link_name = "sk_POLICYQUALINFO_zero__extern"]
19687    pub fn sk_POLICYQUALINFO_zero(sk: *mut stack_st_POLICYQUALINFO);
19688}
19689unsafe extern "C" {
19690    #[link_name = "sk_POLICYQUALINFO_value__extern"]
19691    pub fn sk_POLICYQUALINFO_value(
19692        sk: *const stack_st_POLICYQUALINFO,
19693        i: usize,
19694    ) -> *mut POLICYQUALINFO;
19695}
19696unsafe extern "C" {
19697    #[link_name = "sk_POLICYQUALINFO_set__extern"]
19698    pub fn sk_POLICYQUALINFO_set(
19699        sk: *mut stack_st_POLICYQUALINFO,
19700        i: usize,
19701        p: *mut POLICYQUALINFO,
19702    ) -> *mut POLICYQUALINFO;
19703}
19704unsafe extern "C" {
19705    #[link_name = "sk_POLICYQUALINFO_free__extern"]
19706    pub fn sk_POLICYQUALINFO_free(sk: *mut stack_st_POLICYQUALINFO);
19707}
19708unsafe extern "C" {
19709    #[link_name = "sk_POLICYQUALINFO_pop_free__extern"]
19710    pub fn sk_POLICYQUALINFO_pop_free(
19711        sk: *mut stack_st_POLICYQUALINFO,
19712        free_func: sk_POLICYQUALINFO_free_func,
19713    );
19714}
19715unsafe extern "C" {
19716    #[link_name = "sk_POLICYQUALINFO_insert__extern"]
19717    pub fn sk_POLICYQUALINFO_insert(
19718        sk: *mut stack_st_POLICYQUALINFO,
19719        p: *mut POLICYQUALINFO,
19720        where_: usize,
19721    ) -> usize;
19722}
19723unsafe extern "C" {
19724    #[link_name = "sk_POLICYQUALINFO_delete__extern"]
19725    pub fn sk_POLICYQUALINFO_delete(
19726        sk: *mut stack_st_POLICYQUALINFO,
19727        where_: usize,
19728    ) -> *mut POLICYQUALINFO;
19729}
19730unsafe extern "C" {
19731    #[link_name = "sk_POLICYQUALINFO_delete_ptr__extern"]
19732    pub fn sk_POLICYQUALINFO_delete_ptr(
19733        sk: *mut stack_st_POLICYQUALINFO,
19734        p: *const POLICYQUALINFO,
19735    ) -> *mut POLICYQUALINFO;
19736}
19737unsafe extern "C" {
19738    #[link_name = "sk_POLICYQUALINFO_delete_if__extern"]
19739    pub fn sk_POLICYQUALINFO_delete_if(
19740        sk: *mut stack_st_POLICYQUALINFO,
19741        func: sk_POLICYQUALINFO_delete_if_func,
19742        data: *mut ::core::ffi::c_void,
19743    );
19744}
19745unsafe extern "C" {
19746    #[link_name = "sk_POLICYQUALINFO_find__extern"]
19747    pub fn sk_POLICYQUALINFO_find(
19748        sk: *const stack_st_POLICYQUALINFO,
19749        out_index: *mut usize,
19750        p: *const POLICYQUALINFO,
19751    ) -> ::core::ffi::c_int;
19752}
19753unsafe extern "C" {
19754    #[link_name = "sk_POLICYQUALINFO_shift__extern"]
19755    pub fn sk_POLICYQUALINFO_shift(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19756}
19757unsafe extern "C" {
19758    #[link_name = "sk_POLICYQUALINFO_push__extern"]
19759    pub fn sk_POLICYQUALINFO_push(
19760        sk: *mut stack_st_POLICYQUALINFO,
19761        p: *mut POLICYQUALINFO,
19762    ) -> usize;
19763}
19764unsafe extern "C" {
19765    #[link_name = "sk_POLICYQUALINFO_pop__extern"]
19766    pub fn sk_POLICYQUALINFO_pop(sk: *mut stack_st_POLICYQUALINFO) -> *mut POLICYQUALINFO;
19767}
19768unsafe extern "C" {
19769    #[link_name = "sk_POLICYQUALINFO_dup__extern"]
19770    pub fn sk_POLICYQUALINFO_dup(
19771        sk: *const stack_st_POLICYQUALINFO,
19772    ) -> *mut stack_st_POLICYQUALINFO;
19773}
19774unsafe extern "C" {
19775    #[link_name = "sk_POLICYQUALINFO_sort__extern"]
19776    pub fn sk_POLICYQUALINFO_sort(sk: *mut stack_st_POLICYQUALINFO);
19777}
19778unsafe extern "C" {
19779    #[link_name = "sk_POLICYQUALINFO_sort_and_dedup__extern"]
19780    pub fn sk_POLICYQUALINFO_sort_and_dedup(
19781        sk: *mut stack_st_POLICYQUALINFO,
19782        free_func: sk_POLICYQUALINFO_free_func,
19783    );
19784}
19785unsafe extern "C" {
19786    #[link_name = "sk_POLICYQUALINFO_is_sorted__extern"]
19787    pub fn sk_POLICYQUALINFO_is_sorted(sk: *const stack_st_POLICYQUALINFO) -> ::core::ffi::c_int;
19788}
19789unsafe extern "C" {
19790    #[link_name = "sk_POLICYQUALINFO_set_cmp_func__extern"]
19791    pub fn sk_POLICYQUALINFO_set_cmp_func(
19792        sk: *mut stack_st_POLICYQUALINFO,
19793        comp: sk_POLICYQUALINFO_cmp_func,
19794    ) -> sk_POLICYQUALINFO_cmp_func;
19795}
19796unsafe extern "C" {
19797    #[link_name = "sk_POLICYQUALINFO_deep_copy__extern"]
19798    pub fn sk_POLICYQUALINFO_deep_copy(
19799        sk: *const stack_st_POLICYQUALINFO,
19800        copy_func: sk_POLICYQUALINFO_copy_func,
19801        free_func: sk_POLICYQUALINFO_free_func,
19802    ) -> *mut stack_st_POLICYQUALINFO;
19803}
19804unsafe extern "C" {
19805    pub fn POLICYQUALINFO_new() -> *mut POLICYQUALINFO;
19806}
19807unsafe extern "C" {
19808    pub fn POLICYQUALINFO_free(info: *mut POLICYQUALINFO);
19809}
19810#[repr(C)]
19811#[derive(Debug, Copy, Clone)]
19812pub struct POLICYINFO_st {
19813    pub policyid: *mut ASN1_OBJECT,
19814    pub qualifiers: *mut stack_st_POLICYQUALINFO,
19815}
19816pub type POLICYINFO = POLICYINFO_st;
19817#[repr(C)]
19818#[derive(Debug)]
19819pub struct stack_st_POLICYINFO {
19820    _unused: [u8; 0],
19821}
19822pub type sk_POLICYINFO_free_func =
19823    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICYINFO)>;
19824pub type sk_POLICYINFO_copy_func =
19825    ::core::option::Option<unsafe extern "C" fn(arg1: *const POLICYINFO) -> *mut POLICYINFO>;
19826pub type sk_POLICYINFO_cmp_func = ::core::option::Option<
19827    unsafe extern "C" fn(
19828        arg1: *const *const POLICYINFO,
19829        arg2: *const *const POLICYINFO,
19830    ) -> ::core::ffi::c_int,
19831>;
19832pub type sk_POLICYINFO_delete_if_func = ::core::option::Option<
19833    unsafe extern "C" fn(
19834        arg1: *mut POLICYINFO,
19835        arg2: *mut ::core::ffi::c_void,
19836    ) -> ::core::ffi::c_int,
19837>;
19838unsafe extern "C" {
19839    #[link_name = "sk_POLICYINFO_call_free_func__extern"]
19840    pub fn sk_POLICYINFO_call_free_func(
19841        free_func: OPENSSL_sk_free_func,
19842        ptr: *mut ::core::ffi::c_void,
19843    );
19844}
19845unsafe extern "C" {
19846    #[link_name = "sk_POLICYINFO_call_copy_func__extern"]
19847    pub fn sk_POLICYINFO_call_copy_func(
19848        copy_func: OPENSSL_sk_copy_func,
19849        ptr: *const ::core::ffi::c_void,
19850    ) -> *mut ::core::ffi::c_void;
19851}
19852unsafe extern "C" {
19853    #[link_name = "sk_POLICYINFO_call_cmp_func__extern"]
19854    pub fn sk_POLICYINFO_call_cmp_func(
19855        cmp_func: OPENSSL_sk_cmp_func,
19856        a: *const ::core::ffi::c_void,
19857        b: *const ::core::ffi::c_void,
19858    ) -> ::core::ffi::c_int;
19859}
19860unsafe extern "C" {
19861    #[link_name = "sk_POLICYINFO_call_delete_if_func__extern"]
19862    pub fn sk_POLICYINFO_call_delete_if_func(
19863        func: OPENSSL_sk_delete_if_func,
19864        obj: *mut ::core::ffi::c_void,
19865        data: *mut ::core::ffi::c_void,
19866    ) -> ::core::ffi::c_int;
19867}
19868unsafe extern "C" {
19869    #[link_name = "sk_POLICYINFO_new__extern"]
19870    pub fn sk_POLICYINFO_new(comp: sk_POLICYINFO_cmp_func) -> *mut stack_st_POLICYINFO;
19871}
19872unsafe extern "C" {
19873    #[link_name = "sk_POLICYINFO_new_null__extern"]
19874    pub fn sk_POLICYINFO_new_null() -> *mut stack_st_POLICYINFO;
19875}
19876unsafe extern "C" {
19877    #[link_name = "sk_POLICYINFO_num__extern"]
19878    pub fn sk_POLICYINFO_num(sk: *const stack_st_POLICYINFO) -> usize;
19879}
19880unsafe extern "C" {
19881    #[link_name = "sk_POLICYINFO_zero__extern"]
19882    pub fn sk_POLICYINFO_zero(sk: *mut stack_st_POLICYINFO);
19883}
19884unsafe extern "C" {
19885    #[link_name = "sk_POLICYINFO_value__extern"]
19886    pub fn sk_POLICYINFO_value(sk: *const stack_st_POLICYINFO, i: usize) -> *mut POLICYINFO;
19887}
19888unsafe extern "C" {
19889    #[link_name = "sk_POLICYINFO_set__extern"]
19890    pub fn sk_POLICYINFO_set(
19891        sk: *mut stack_st_POLICYINFO,
19892        i: usize,
19893        p: *mut POLICYINFO,
19894    ) -> *mut POLICYINFO;
19895}
19896unsafe extern "C" {
19897    #[link_name = "sk_POLICYINFO_free__extern"]
19898    pub fn sk_POLICYINFO_free(sk: *mut stack_st_POLICYINFO);
19899}
19900unsafe extern "C" {
19901    #[link_name = "sk_POLICYINFO_pop_free__extern"]
19902    pub fn sk_POLICYINFO_pop_free(sk: *mut stack_st_POLICYINFO, free_func: sk_POLICYINFO_free_func);
19903}
19904unsafe extern "C" {
19905    #[link_name = "sk_POLICYINFO_insert__extern"]
19906    pub fn sk_POLICYINFO_insert(
19907        sk: *mut stack_st_POLICYINFO,
19908        p: *mut POLICYINFO,
19909        where_: usize,
19910    ) -> usize;
19911}
19912unsafe extern "C" {
19913    #[link_name = "sk_POLICYINFO_delete__extern"]
19914    pub fn sk_POLICYINFO_delete(sk: *mut stack_st_POLICYINFO, where_: usize) -> *mut POLICYINFO;
19915}
19916unsafe extern "C" {
19917    #[link_name = "sk_POLICYINFO_delete_ptr__extern"]
19918    pub fn sk_POLICYINFO_delete_ptr(
19919        sk: *mut stack_st_POLICYINFO,
19920        p: *const POLICYINFO,
19921    ) -> *mut POLICYINFO;
19922}
19923unsafe extern "C" {
19924    #[link_name = "sk_POLICYINFO_delete_if__extern"]
19925    pub fn sk_POLICYINFO_delete_if(
19926        sk: *mut stack_st_POLICYINFO,
19927        func: sk_POLICYINFO_delete_if_func,
19928        data: *mut ::core::ffi::c_void,
19929    );
19930}
19931unsafe extern "C" {
19932    #[link_name = "sk_POLICYINFO_find__extern"]
19933    pub fn sk_POLICYINFO_find(
19934        sk: *const stack_st_POLICYINFO,
19935        out_index: *mut usize,
19936        p: *const POLICYINFO,
19937    ) -> ::core::ffi::c_int;
19938}
19939unsafe extern "C" {
19940    #[link_name = "sk_POLICYINFO_shift__extern"]
19941    pub fn sk_POLICYINFO_shift(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
19942}
19943unsafe extern "C" {
19944    #[link_name = "sk_POLICYINFO_push__extern"]
19945    pub fn sk_POLICYINFO_push(sk: *mut stack_st_POLICYINFO, p: *mut POLICYINFO) -> usize;
19946}
19947unsafe extern "C" {
19948    #[link_name = "sk_POLICYINFO_pop__extern"]
19949    pub fn sk_POLICYINFO_pop(sk: *mut stack_st_POLICYINFO) -> *mut POLICYINFO;
19950}
19951unsafe extern "C" {
19952    #[link_name = "sk_POLICYINFO_dup__extern"]
19953    pub fn sk_POLICYINFO_dup(sk: *const stack_st_POLICYINFO) -> *mut stack_st_POLICYINFO;
19954}
19955unsafe extern "C" {
19956    #[link_name = "sk_POLICYINFO_sort__extern"]
19957    pub fn sk_POLICYINFO_sort(sk: *mut stack_st_POLICYINFO);
19958}
19959unsafe extern "C" {
19960    #[link_name = "sk_POLICYINFO_sort_and_dedup__extern"]
19961    pub fn sk_POLICYINFO_sort_and_dedup(
19962        sk: *mut stack_st_POLICYINFO,
19963        free_func: sk_POLICYINFO_free_func,
19964    );
19965}
19966unsafe extern "C" {
19967    #[link_name = "sk_POLICYINFO_is_sorted__extern"]
19968    pub fn sk_POLICYINFO_is_sorted(sk: *const stack_st_POLICYINFO) -> ::core::ffi::c_int;
19969}
19970unsafe extern "C" {
19971    #[link_name = "sk_POLICYINFO_set_cmp_func__extern"]
19972    pub fn sk_POLICYINFO_set_cmp_func(
19973        sk: *mut stack_st_POLICYINFO,
19974        comp: sk_POLICYINFO_cmp_func,
19975    ) -> sk_POLICYINFO_cmp_func;
19976}
19977unsafe extern "C" {
19978    #[link_name = "sk_POLICYINFO_deep_copy__extern"]
19979    pub fn sk_POLICYINFO_deep_copy(
19980        sk: *const stack_st_POLICYINFO,
19981        copy_func: sk_POLICYINFO_copy_func,
19982        free_func: sk_POLICYINFO_free_func,
19983    ) -> *mut stack_st_POLICYINFO;
19984}
19985unsafe extern "C" {
19986    pub fn POLICYINFO_new() -> *mut POLICYINFO;
19987}
19988unsafe extern "C" {
19989    pub fn POLICYINFO_free(info: *mut POLICYINFO);
19990}
19991pub type CERTIFICATEPOLICIES = stack_st_POLICYINFO;
19992unsafe extern "C" {
19993    pub static CERTIFICATEPOLICIES_it: ASN1_ITEM;
19994}
19995unsafe extern "C" {
19996    pub fn CERTIFICATEPOLICIES_new() -> *mut CERTIFICATEPOLICIES;
19997}
19998unsafe extern "C" {
19999    pub fn CERTIFICATEPOLICIES_free(policies: *mut CERTIFICATEPOLICIES);
20000}
20001unsafe extern "C" {
20002    pub fn d2i_CERTIFICATEPOLICIES(
20003        out: *mut *mut CERTIFICATEPOLICIES,
20004        inp: *mut *const u8,
20005        len: ::core::ffi::c_long,
20006    ) -> *mut CERTIFICATEPOLICIES;
20007}
20008unsafe extern "C" {
20009    pub fn i2d_CERTIFICATEPOLICIES(
20010        policies: *const CERTIFICATEPOLICIES,
20011        outp: *mut *mut u8,
20012    ) -> ::core::ffi::c_int;
20013}
20014#[repr(C)]
20015#[derive(Debug, Copy, Clone)]
20016pub struct POLICY_MAPPING_st {
20017    pub issuerDomainPolicy: *mut ASN1_OBJECT,
20018    pub subjectDomainPolicy: *mut ASN1_OBJECT,
20019}
20020pub type POLICY_MAPPING = POLICY_MAPPING_st;
20021#[repr(C)]
20022#[derive(Debug)]
20023pub struct stack_st_POLICY_MAPPING {
20024    _unused: [u8; 0],
20025}
20026pub type sk_POLICY_MAPPING_free_func =
20027    ::core::option::Option<unsafe extern "C" fn(arg1: *mut POLICY_MAPPING)>;
20028pub type sk_POLICY_MAPPING_copy_func = ::core::option::Option<
20029    unsafe extern "C" fn(arg1: *const POLICY_MAPPING) -> *mut POLICY_MAPPING,
20030>;
20031pub type sk_POLICY_MAPPING_cmp_func = ::core::option::Option<
20032    unsafe extern "C" fn(
20033        arg1: *const *const POLICY_MAPPING,
20034        arg2: *const *const POLICY_MAPPING,
20035    ) -> ::core::ffi::c_int,
20036>;
20037pub type sk_POLICY_MAPPING_delete_if_func = ::core::option::Option<
20038    unsafe extern "C" fn(
20039        arg1: *mut POLICY_MAPPING,
20040        arg2: *mut ::core::ffi::c_void,
20041    ) -> ::core::ffi::c_int,
20042>;
20043unsafe extern "C" {
20044    #[link_name = "sk_POLICY_MAPPING_call_free_func__extern"]
20045    pub fn sk_POLICY_MAPPING_call_free_func(
20046        free_func: OPENSSL_sk_free_func,
20047        ptr: *mut ::core::ffi::c_void,
20048    );
20049}
20050unsafe extern "C" {
20051    #[link_name = "sk_POLICY_MAPPING_call_copy_func__extern"]
20052    pub fn sk_POLICY_MAPPING_call_copy_func(
20053        copy_func: OPENSSL_sk_copy_func,
20054        ptr: *const ::core::ffi::c_void,
20055    ) -> *mut ::core::ffi::c_void;
20056}
20057unsafe extern "C" {
20058    #[link_name = "sk_POLICY_MAPPING_call_cmp_func__extern"]
20059    pub fn sk_POLICY_MAPPING_call_cmp_func(
20060        cmp_func: OPENSSL_sk_cmp_func,
20061        a: *const ::core::ffi::c_void,
20062        b: *const ::core::ffi::c_void,
20063    ) -> ::core::ffi::c_int;
20064}
20065unsafe extern "C" {
20066    #[link_name = "sk_POLICY_MAPPING_call_delete_if_func__extern"]
20067    pub fn sk_POLICY_MAPPING_call_delete_if_func(
20068        func: OPENSSL_sk_delete_if_func,
20069        obj: *mut ::core::ffi::c_void,
20070        data: *mut ::core::ffi::c_void,
20071    ) -> ::core::ffi::c_int;
20072}
20073unsafe extern "C" {
20074    #[link_name = "sk_POLICY_MAPPING_new__extern"]
20075    pub fn sk_POLICY_MAPPING_new(comp: sk_POLICY_MAPPING_cmp_func) -> *mut stack_st_POLICY_MAPPING;
20076}
20077unsafe extern "C" {
20078    #[link_name = "sk_POLICY_MAPPING_new_null__extern"]
20079    pub fn sk_POLICY_MAPPING_new_null() -> *mut stack_st_POLICY_MAPPING;
20080}
20081unsafe extern "C" {
20082    #[link_name = "sk_POLICY_MAPPING_num__extern"]
20083    pub fn sk_POLICY_MAPPING_num(sk: *const stack_st_POLICY_MAPPING) -> usize;
20084}
20085unsafe extern "C" {
20086    #[link_name = "sk_POLICY_MAPPING_zero__extern"]
20087    pub fn sk_POLICY_MAPPING_zero(sk: *mut stack_st_POLICY_MAPPING);
20088}
20089unsafe extern "C" {
20090    #[link_name = "sk_POLICY_MAPPING_value__extern"]
20091    pub fn sk_POLICY_MAPPING_value(
20092        sk: *const stack_st_POLICY_MAPPING,
20093        i: usize,
20094    ) -> *mut POLICY_MAPPING;
20095}
20096unsafe extern "C" {
20097    #[link_name = "sk_POLICY_MAPPING_set__extern"]
20098    pub fn sk_POLICY_MAPPING_set(
20099        sk: *mut stack_st_POLICY_MAPPING,
20100        i: usize,
20101        p: *mut POLICY_MAPPING,
20102    ) -> *mut POLICY_MAPPING;
20103}
20104unsafe extern "C" {
20105    #[link_name = "sk_POLICY_MAPPING_free__extern"]
20106    pub fn sk_POLICY_MAPPING_free(sk: *mut stack_st_POLICY_MAPPING);
20107}
20108unsafe extern "C" {
20109    #[link_name = "sk_POLICY_MAPPING_pop_free__extern"]
20110    pub fn sk_POLICY_MAPPING_pop_free(
20111        sk: *mut stack_st_POLICY_MAPPING,
20112        free_func: sk_POLICY_MAPPING_free_func,
20113    );
20114}
20115unsafe extern "C" {
20116    #[link_name = "sk_POLICY_MAPPING_insert__extern"]
20117    pub fn sk_POLICY_MAPPING_insert(
20118        sk: *mut stack_st_POLICY_MAPPING,
20119        p: *mut POLICY_MAPPING,
20120        where_: usize,
20121    ) -> usize;
20122}
20123unsafe extern "C" {
20124    #[link_name = "sk_POLICY_MAPPING_delete__extern"]
20125    pub fn sk_POLICY_MAPPING_delete(
20126        sk: *mut stack_st_POLICY_MAPPING,
20127        where_: usize,
20128    ) -> *mut POLICY_MAPPING;
20129}
20130unsafe extern "C" {
20131    #[link_name = "sk_POLICY_MAPPING_delete_ptr__extern"]
20132    pub fn sk_POLICY_MAPPING_delete_ptr(
20133        sk: *mut stack_st_POLICY_MAPPING,
20134        p: *const POLICY_MAPPING,
20135    ) -> *mut POLICY_MAPPING;
20136}
20137unsafe extern "C" {
20138    #[link_name = "sk_POLICY_MAPPING_delete_if__extern"]
20139    pub fn sk_POLICY_MAPPING_delete_if(
20140        sk: *mut stack_st_POLICY_MAPPING,
20141        func: sk_POLICY_MAPPING_delete_if_func,
20142        data: *mut ::core::ffi::c_void,
20143    );
20144}
20145unsafe extern "C" {
20146    #[link_name = "sk_POLICY_MAPPING_find__extern"]
20147    pub fn sk_POLICY_MAPPING_find(
20148        sk: *const stack_st_POLICY_MAPPING,
20149        out_index: *mut usize,
20150        p: *const POLICY_MAPPING,
20151    ) -> ::core::ffi::c_int;
20152}
20153unsafe extern "C" {
20154    #[link_name = "sk_POLICY_MAPPING_shift__extern"]
20155    pub fn sk_POLICY_MAPPING_shift(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20156}
20157unsafe extern "C" {
20158    #[link_name = "sk_POLICY_MAPPING_push__extern"]
20159    pub fn sk_POLICY_MAPPING_push(
20160        sk: *mut stack_st_POLICY_MAPPING,
20161        p: *mut POLICY_MAPPING,
20162    ) -> usize;
20163}
20164unsafe extern "C" {
20165    #[link_name = "sk_POLICY_MAPPING_pop__extern"]
20166    pub fn sk_POLICY_MAPPING_pop(sk: *mut stack_st_POLICY_MAPPING) -> *mut POLICY_MAPPING;
20167}
20168unsafe extern "C" {
20169    #[link_name = "sk_POLICY_MAPPING_dup__extern"]
20170    pub fn sk_POLICY_MAPPING_dup(
20171        sk: *const stack_st_POLICY_MAPPING,
20172    ) -> *mut stack_st_POLICY_MAPPING;
20173}
20174unsafe extern "C" {
20175    #[link_name = "sk_POLICY_MAPPING_sort__extern"]
20176    pub fn sk_POLICY_MAPPING_sort(sk: *mut stack_st_POLICY_MAPPING);
20177}
20178unsafe extern "C" {
20179    #[link_name = "sk_POLICY_MAPPING_sort_and_dedup__extern"]
20180    pub fn sk_POLICY_MAPPING_sort_and_dedup(
20181        sk: *mut stack_st_POLICY_MAPPING,
20182        free_func: sk_POLICY_MAPPING_free_func,
20183    );
20184}
20185unsafe extern "C" {
20186    #[link_name = "sk_POLICY_MAPPING_is_sorted__extern"]
20187    pub fn sk_POLICY_MAPPING_is_sorted(sk: *const stack_st_POLICY_MAPPING) -> ::core::ffi::c_int;
20188}
20189unsafe extern "C" {
20190    #[link_name = "sk_POLICY_MAPPING_set_cmp_func__extern"]
20191    pub fn sk_POLICY_MAPPING_set_cmp_func(
20192        sk: *mut stack_st_POLICY_MAPPING,
20193        comp: sk_POLICY_MAPPING_cmp_func,
20194    ) -> sk_POLICY_MAPPING_cmp_func;
20195}
20196unsafe extern "C" {
20197    #[link_name = "sk_POLICY_MAPPING_deep_copy__extern"]
20198    pub fn sk_POLICY_MAPPING_deep_copy(
20199        sk: *const stack_st_POLICY_MAPPING,
20200        copy_func: sk_POLICY_MAPPING_copy_func,
20201        free_func: sk_POLICY_MAPPING_free_func,
20202    ) -> *mut stack_st_POLICY_MAPPING;
20203}
20204unsafe extern "C" {
20205    pub fn POLICY_MAPPING_new() -> *mut POLICY_MAPPING;
20206}
20207unsafe extern "C" {
20208    pub fn POLICY_MAPPING_free(mapping: *mut POLICY_MAPPING);
20209}
20210pub type POLICY_MAPPINGS = stack_st_POLICY_MAPPING;
20211unsafe extern "C" {
20212    pub static POLICY_MAPPINGS_it: ASN1_ITEM;
20213}
20214#[repr(C)]
20215#[derive(Debug, Copy, Clone)]
20216pub struct POLICY_CONSTRAINTS_st {
20217    pub requireExplicitPolicy: *mut ASN1_INTEGER,
20218    pub inhibitPolicyMapping: *mut ASN1_INTEGER,
20219}
20220pub type POLICY_CONSTRAINTS = POLICY_CONSTRAINTS_st;
20221unsafe extern "C" {
20222    pub static POLICY_CONSTRAINTS_it: ASN1_ITEM;
20223}
20224unsafe extern "C" {
20225    pub fn POLICY_CONSTRAINTS_new() -> *mut POLICY_CONSTRAINTS;
20226}
20227unsafe extern "C" {
20228    pub fn POLICY_CONSTRAINTS_free(pcons: *mut POLICY_CONSTRAINTS);
20229}
20230#[repr(C)]
20231#[derive(Debug)]
20232pub struct stack_st_X509_ALGOR {
20233    _unused: [u8; 0],
20234}
20235pub type sk_X509_ALGOR_free_func =
20236    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ALGOR)>;
20237pub type sk_X509_ALGOR_copy_func =
20238    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_ALGOR) -> *mut X509_ALGOR>;
20239pub type sk_X509_ALGOR_cmp_func = ::core::option::Option<
20240    unsafe extern "C" fn(
20241        arg1: *const *const X509_ALGOR,
20242        arg2: *const *const X509_ALGOR,
20243    ) -> ::core::ffi::c_int,
20244>;
20245pub type sk_X509_ALGOR_delete_if_func = ::core::option::Option<
20246    unsafe extern "C" fn(
20247        arg1: *mut X509_ALGOR,
20248        arg2: *mut ::core::ffi::c_void,
20249    ) -> ::core::ffi::c_int,
20250>;
20251unsafe extern "C" {
20252    #[link_name = "sk_X509_ALGOR_call_free_func__extern"]
20253    pub fn sk_X509_ALGOR_call_free_func(
20254        free_func: OPENSSL_sk_free_func,
20255        ptr: *mut ::core::ffi::c_void,
20256    );
20257}
20258unsafe extern "C" {
20259    #[link_name = "sk_X509_ALGOR_call_copy_func__extern"]
20260    pub fn sk_X509_ALGOR_call_copy_func(
20261        copy_func: OPENSSL_sk_copy_func,
20262        ptr: *const ::core::ffi::c_void,
20263    ) -> *mut ::core::ffi::c_void;
20264}
20265unsafe extern "C" {
20266    #[link_name = "sk_X509_ALGOR_call_cmp_func__extern"]
20267    pub fn sk_X509_ALGOR_call_cmp_func(
20268        cmp_func: OPENSSL_sk_cmp_func,
20269        a: *const ::core::ffi::c_void,
20270        b: *const ::core::ffi::c_void,
20271    ) -> ::core::ffi::c_int;
20272}
20273unsafe extern "C" {
20274    #[link_name = "sk_X509_ALGOR_call_delete_if_func__extern"]
20275    pub fn sk_X509_ALGOR_call_delete_if_func(
20276        func: OPENSSL_sk_delete_if_func,
20277        obj: *mut ::core::ffi::c_void,
20278        data: *mut ::core::ffi::c_void,
20279    ) -> ::core::ffi::c_int;
20280}
20281unsafe extern "C" {
20282    #[link_name = "sk_X509_ALGOR_new__extern"]
20283    pub fn sk_X509_ALGOR_new(comp: sk_X509_ALGOR_cmp_func) -> *mut stack_st_X509_ALGOR;
20284}
20285unsafe extern "C" {
20286    #[link_name = "sk_X509_ALGOR_new_null__extern"]
20287    pub fn sk_X509_ALGOR_new_null() -> *mut stack_st_X509_ALGOR;
20288}
20289unsafe extern "C" {
20290    #[link_name = "sk_X509_ALGOR_num__extern"]
20291    pub fn sk_X509_ALGOR_num(sk: *const stack_st_X509_ALGOR) -> usize;
20292}
20293unsafe extern "C" {
20294    #[link_name = "sk_X509_ALGOR_zero__extern"]
20295    pub fn sk_X509_ALGOR_zero(sk: *mut stack_st_X509_ALGOR);
20296}
20297unsafe extern "C" {
20298    #[link_name = "sk_X509_ALGOR_value__extern"]
20299    pub fn sk_X509_ALGOR_value(sk: *const stack_st_X509_ALGOR, i: usize) -> *mut X509_ALGOR;
20300}
20301unsafe extern "C" {
20302    #[link_name = "sk_X509_ALGOR_set__extern"]
20303    pub fn sk_X509_ALGOR_set(
20304        sk: *mut stack_st_X509_ALGOR,
20305        i: usize,
20306        p: *mut X509_ALGOR,
20307    ) -> *mut X509_ALGOR;
20308}
20309unsafe extern "C" {
20310    #[link_name = "sk_X509_ALGOR_free__extern"]
20311    pub fn sk_X509_ALGOR_free(sk: *mut stack_st_X509_ALGOR);
20312}
20313unsafe extern "C" {
20314    #[link_name = "sk_X509_ALGOR_pop_free__extern"]
20315    pub fn sk_X509_ALGOR_pop_free(sk: *mut stack_st_X509_ALGOR, free_func: sk_X509_ALGOR_free_func);
20316}
20317unsafe extern "C" {
20318    #[link_name = "sk_X509_ALGOR_insert__extern"]
20319    pub fn sk_X509_ALGOR_insert(
20320        sk: *mut stack_st_X509_ALGOR,
20321        p: *mut X509_ALGOR,
20322        where_: usize,
20323    ) -> usize;
20324}
20325unsafe extern "C" {
20326    #[link_name = "sk_X509_ALGOR_delete__extern"]
20327    pub fn sk_X509_ALGOR_delete(sk: *mut stack_st_X509_ALGOR, where_: usize) -> *mut X509_ALGOR;
20328}
20329unsafe extern "C" {
20330    #[link_name = "sk_X509_ALGOR_delete_ptr__extern"]
20331    pub fn sk_X509_ALGOR_delete_ptr(
20332        sk: *mut stack_st_X509_ALGOR,
20333        p: *const X509_ALGOR,
20334    ) -> *mut X509_ALGOR;
20335}
20336unsafe extern "C" {
20337    #[link_name = "sk_X509_ALGOR_delete_if__extern"]
20338    pub fn sk_X509_ALGOR_delete_if(
20339        sk: *mut stack_st_X509_ALGOR,
20340        func: sk_X509_ALGOR_delete_if_func,
20341        data: *mut ::core::ffi::c_void,
20342    );
20343}
20344unsafe extern "C" {
20345    #[link_name = "sk_X509_ALGOR_find__extern"]
20346    pub fn sk_X509_ALGOR_find(
20347        sk: *const stack_st_X509_ALGOR,
20348        out_index: *mut usize,
20349        p: *const X509_ALGOR,
20350    ) -> ::core::ffi::c_int;
20351}
20352unsafe extern "C" {
20353    #[link_name = "sk_X509_ALGOR_shift__extern"]
20354    pub fn sk_X509_ALGOR_shift(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20355}
20356unsafe extern "C" {
20357    #[link_name = "sk_X509_ALGOR_push__extern"]
20358    pub fn sk_X509_ALGOR_push(sk: *mut stack_st_X509_ALGOR, p: *mut X509_ALGOR) -> usize;
20359}
20360unsafe extern "C" {
20361    #[link_name = "sk_X509_ALGOR_pop__extern"]
20362    pub fn sk_X509_ALGOR_pop(sk: *mut stack_st_X509_ALGOR) -> *mut X509_ALGOR;
20363}
20364unsafe extern "C" {
20365    #[link_name = "sk_X509_ALGOR_dup__extern"]
20366    pub fn sk_X509_ALGOR_dup(sk: *const stack_st_X509_ALGOR) -> *mut stack_st_X509_ALGOR;
20367}
20368unsafe extern "C" {
20369    #[link_name = "sk_X509_ALGOR_sort__extern"]
20370    pub fn sk_X509_ALGOR_sort(sk: *mut stack_st_X509_ALGOR);
20371}
20372unsafe extern "C" {
20373    #[link_name = "sk_X509_ALGOR_sort_and_dedup__extern"]
20374    pub fn sk_X509_ALGOR_sort_and_dedup(
20375        sk: *mut stack_st_X509_ALGOR,
20376        free_func: sk_X509_ALGOR_free_func,
20377    );
20378}
20379unsafe extern "C" {
20380    #[link_name = "sk_X509_ALGOR_is_sorted__extern"]
20381    pub fn sk_X509_ALGOR_is_sorted(sk: *const stack_st_X509_ALGOR) -> ::core::ffi::c_int;
20382}
20383unsafe extern "C" {
20384    #[link_name = "sk_X509_ALGOR_set_cmp_func__extern"]
20385    pub fn sk_X509_ALGOR_set_cmp_func(
20386        sk: *mut stack_st_X509_ALGOR,
20387        comp: sk_X509_ALGOR_cmp_func,
20388    ) -> sk_X509_ALGOR_cmp_func;
20389}
20390unsafe extern "C" {
20391    #[link_name = "sk_X509_ALGOR_deep_copy__extern"]
20392    pub fn sk_X509_ALGOR_deep_copy(
20393        sk: *const stack_st_X509_ALGOR,
20394        copy_func: sk_X509_ALGOR_copy_func,
20395        free_func: sk_X509_ALGOR_free_func,
20396    ) -> *mut stack_st_X509_ALGOR;
20397}
20398unsafe extern "C" {
20399    pub static X509_ALGOR_it: ASN1_ITEM;
20400}
20401unsafe extern "C" {
20402    pub fn X509_ALGOR_new() -> *mut X509_ALGOR;
20403}
20404unsafe extern "C" {
20405    pub fn X509_ALGOR_dup(alg: *const X509_ALGOR) -> *mut X509_ALGOR;
20406}
20407unsafe extern "C" {
20408    pub fn X509_ALGOR_copy(dst: *mut X509_ALGOR, src: *const X509_ALGOR) -> ::core::ffi::c_int;
20409}
20410unsafe extern "C" {
20411    pub fn X509_ALGOR_free(alg: *mut X509_ALGOR);
20412}
20413unsafe extern "C" {
20414    pub fn d2i_X509_ALGOR(
20415        out: *mut *mut X509_ALGOR,
20416        inp: *mut *const u8,
20417        len: ::core::ffi::c_long,
20418    ) -> *mut X509_ALGOR;
20419}
20420unsafe extern "C" {
20421    pub fn i2d_X509_ALGOR(alg: *const X509_ALGOR, outp: *mut *mut u8) -> ::core::ffi::c_int;
20422}
20423unsafe extern "C" {
20424    pub fn X509_ALGOR_set0(
20425        alg: *mut X509_ALGOR,
20426        obj: *mut ASN1_OBJECT,
20427        param_type: ::core::ffi::c_int,
20428        param_value: *mut ::core::ffi::c_void,
20429    ) -> ::core::ffi::c_int;
20430}
20431unsafe extern "C" {
20432    pub fn X509_ALGOR_get0(
20433        out_obj: *mut *const ASN1_OBJECT,
20434        out_param_type: *mut ::core::ffi::c_int,
20435        out_param_value: *mut *const ::core::ffi::c_void,
20436        alg: *const X509_ALGOR,
20437    );
20438}
20439unsafe extern "C" {
20440    pub fn X509_ALGOR_set_md(alg: *mut X509_ALGOR, md: *const EVP_MD) -> ::core::ffi::c_int;
20441}
20442unsafe extern "C" {
20443    pub fn X509_ALGOR_cmp(a: *const X509_ALGOR, b: *const X509_ALGOR) -> ::core::ffi::c_int;
20444}
20445#[repr(C)]
20446#[derive(Debug)]
20447pub struct stack_st_X509_ATTRIBUTE {
20448    _unused: [u8; 0],
20449}
20450pub type sk_X509_ATTRIBUTE_free_func =
20451    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_ATTRIBUTE)>;
20452pub type sk_X509_ATTRIBUTE_copy_func = ::core::option::Option<
20453    unsafe extern "C" fn(arg1: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE,
20454>;
20455pub type sk_X509_ATTRIBUTE_cmp_func = ::core::option::Option<
20456    unsafe extern "C" fn(
20457        arg1: *const *const X509_ATTRIBUTE,
20458        arg2: *const *const X509_ATTRIBUTE,
20459    ) -> ::core::ffi::c_int,
20460>;
20461pub type sk_X509_ATTRIBUTE_delete_if_func = ::core::option::Option<
20462    unsafe extern "C" fn(
20463        arg1: *mut X509_ATTRIBUTE,
20464        arg2: *mut ::core::ffi::c_void,
20465    ) -> ::core::ffi::c_int,
20466>;
20467unsafe extern "C" {
20468    #[link_name = "sk_X509_ATTRIBUTE_call_free_func__extern"]
20469    pub fn sk_X509_ATTRIBUTE_call_free_func(
20470        free_func: OPENSSL_sk_free_func,
20471        ptr: *mut ::core::ffi::c_void,
20472    );
20473}
20474unsafe extern "C" {
20475    #[link_name = "sk_X509_ATTRIBUTE_call_copy_func__extern"]
20476    pub fn sk_X509_ATTRIBUTE_call_copy_func(
20477        copy_func: OPENSSL_sk_copy_func,
20478        ptr: *const ::core::ffi::c_void,
20479    ) -> *mut ::core::ffi::c_void;
20480}
20481unsafe extern "C" {
20482    #[link_name = "sk_X509_ATTRIBUTE_call_cmp_func__extern"]
20483    pub fn sk_X509_ATTRIBUTE_call_cmp_func(
20484        cmp_func: OPENSSL_sk_cmp_func,
20485        a: *const ::core::ffi::c_void,
20486        b: *const ::core::ffi::c_void,
20487    ) -> ::core::ffi::c_int;
20488}
20489unsafe extern "C" {
20490    #[link_name = "sk_X509_ATTRIBUTE_call_delete_if_func__extern"]
20491    pub fn sk_X509_ATTRIBUTE_call_delete_if_func(
20492        func: OPENSSL_sk_delete_if_func,
20493        obj: *mut ::core::ffi::c_void,
20494        data: *mut ::core::ffi::c_void,
20495    ) -> ::core::ffi::c_int;
20496}
20497unsafe extern "C" {
20498    #[link_name = "sk_X509_ATTRIBUTE_new__extern"]
20499    pub fn sk_X509_ATTRIBUTE_new(comp: sk_X509_ATTRIBUTE_cmp_func) -> *mut stack_st_X509_ATTRIBUTE;
20500}
20501unsafe extern "C" {
20502    #[link_name = "sk_X509_ATTRIBUTE_new_null__extern"]
20503    pub fn sk_X509_ATTRIBUTE_new_null() -> *mut stack_st_X509_ATTRIBUTE;
20504}
20505unsafe extern "C" {
20506    #[link_name = "sk_X509_ATTRIBUTE_num__extern"]
20507    pub fn sk_X509_ATTRIBUTE_num(sk: *const stack_st_X509_ATTRIBUTE) -> usize;
20508}
20509unsafe extern "C" {
20510    #[link_name = "sk_X509_ATTRIBUTE_zero__extern"]
20511    pub fn sk_X509_ATTRIBUTE_zero(sk: *mut stack_st_X509_ATTRIBUTE);
20512}
20513unsafe extern "C" {
20514    #[link_name = "sk_X509_ATTRIBUTE_value__extern"]
20515    pub fn sk_X509_ATTRIBUTE_value(
20516        sk: *const stack_st_X509_ATTRIBUTE,
20517        i: usize,
20518    ) -> *mut X509_ATTRIBUTE;
20519}
20520unsafe extern "C" {
20521    #[link_name = "sk_X509_ATTRIBUTE_set__extern"]
20522    pub fn sk_X509_ATTRIBUTE_set(
20523        sk: *mut stack_st_X509_ATTRIBUTE,
20524        i: usize,
20525        p: *mut X509_ATTRIBUTE,
20526    ) -> *mut X509_ATTRIBUTE;
20527}
20528unsafe extern "C" {
20529    #[link_name = "sk_X509_ATTRIBUTE_free__extern"]
20530    pub fn sk_X509_ATTRIBUTE_free(sk: *mut stack_st_X509_ATTRIBUTE);
20531}
20532unsafe extern "C" {
20533    #[link_name = "sk_X509_ATTRIBUTE_pop_free__extern"]
20534    pub fn sk_X509_ATTRIBUTE_pop_free(
20535        sk: *mut stack_st_X509_ATTRIBUTE,
20536        free_func: sk_X509_ATTRIBUTE_free_func,
20537    );
20538}
20539unsafe extern "C" {
20540    #[link_name = "sk_X509_ATTRIBUTE_insert__extern"]
20541    pub fn sk_X509_ATTRIBUTE_insert(
20542        sk: *mut stack_st_X509_ATTRIBUTE,
20543        p: *mut X509_ATTRIBUTE,
20544        where_: usize,
20545    ) -> usize;
20546}
20547unsafe extern "C" {
20548    #[link_name = "sk_X509_ATTRIBUTE_delete__extern"]
20549    pub fn sk_X509_ATTRIBUTE_delete(
20550        sk: *mut stack_st_X509_ATTRIBUTE,
20551        where_: usize,
20552    ) -> *mut X509_ATTRIBUTE;
20553}
20554unsafe extern "C" {
20555    #[link_name = "sk_X509_ATTRIBUTE_delete_ptr__extern"]
20556    pub fn sk_X509_ATTRIBUTE_delete_ptr(
20557        sk: *mut stack_st_X509_ATTRIBUTE,
20558        p: *const X509_ATTRIBUTE,
20559    ) -> *mut X509_ATTRIBUTE;
20560}
20561unsafe extern "C" {
20562    #[link_name = "sk_X509_ATTRIBUTE_delete_if__extern"]
20563    pub fn sk_X509_ATTRIBUTE_delete_if(
20564        sk: *mut stack_st_X509_ATTRIBUTE,
20565        func: sk_X509_ATTRIBUTE_delete_if_func,
20566        data: *mut ::core::ffi::c_void,
20567    );
20568}
20569unsafe extern "C" {
20570    #[link_name = "sk_X509_ATTRIBUTE_find__extern"]
20571    pub fn sk_X509_ATTRIBUTE_find(
20572        sk: *const stack_st_X509_ATTRIBUTE,
20573        out_index: *mut usize,
20574        p: *const X509_ATTRIBUTE,
20575    ) -> ::core::ffi::c_int;
20576}
20577unsafe extern "C" {
20578    #[link_name = "sk_X509_ATTRIBUTE_shift__extern"]
20579    pub fn sk_X509_ATTRIBUTE_shift(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20580}
20581unsafe extern "C" {
20582    #[link_name = "sk_X509_ATTRIBUTE_push__extern"]
20583    pub fn sk_X509_ATTRIBUTE_push(
20584        sk: *mut stack_st_X509_ATTRIBUTE,
20585        p: *mut X509_ATTRIBUTE,
20586    ) -> usize;
20587}
20588unsafe extern "C" {
20589    #[link_name = "sk_X509_ATTRIBUTE_pop__extern"]
20590    pub fn sk_X509_ATTRIBUTE_pop(sk: *mut stack_st_X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20591}
20592unsafe extern "C" {
20593    #[link_name = "sk_X509_ATTRIBUTE_dup__extern"]
20594    pub fn sk_X509_ATTRIBUTE_dup(
20595        sk: *const stack_st_X509_ATTRIBUTE,
20596    ) -> *mut stack_st_X509_ATTRIBUTE;
20597}
20598unsafe extern "C" {
20599    #[link_name = "sk_X509_ATTRIBUTE_sort__extern"]
20600    pub fn sk_X509_ATTRIBUTE_sort(sk: *mut stack_st_X509_ATTRIBUTE);
20601}
20602unsafe extern "C" {
20603    #[link_name = "sk_X509_ATTRIBUTE_sort_and_dedup__extern"]
20604    pub fn sk_X509_ATTRIBUTE_sort_and_dedup(
20605        sk: *mut stack_st_X509_ATTRIBUTE,
20606        free_func: sk_X509_ATTRIBUTE_free_func,
20607    );
20608}
20609unsafe extern "C" {
20610    #[link_name = "sk_X509_ATTRIBUTE_is_sorted__extern"]
20611    pub fn sk_X509_ATTRIBUTE_is_sorted(sk: *const stack_st_X509_ATTRIBUTE) -> ::core::ffi::c_int;
20612}
20613unsafe extern "C" {
20614    #[link_name = "sk_X509_ATTRIBUTE_set_cmp_func__extern"]
20615    pub fn sk_X509_ATTRIBUTE_set_cmp_func(
20616        sk: *mut stack_st_X509_ATTRIBUTE,
20617        comp: sk_X509_ATTRIBUTE_cmp_func,
20618    ) -> sk_X509_ATTRIBUTE_cmp_func;
20619}
20620unsafe extern "C" {
20621    #[link_name = "sk_X509_ATTRIBUTE_deep_copy__extern"]
20622    pub fn sk_X509_ATTRIBUTE_deep_copy(
20623        sk: *const stack_st_X509_ATTRIBUTE,
20624        copy_func: sk_X509_ATTRIBUTE_copy_func,
20625        free_func: sk_X509_ATTRIBUTE_free_func,
20626    ) -> *mut stack_st_X509_ATTRIBUTE;
20627}
20628unsafe extern "C" {
20629    pub fn X509_ATTRIBUTE_new() -> *mut X509_ATTRIBUTE;
20630}
20631unsafe extern "C" {
20632    pub fn X509_ATTRIBUTE_dup(attr: *const X509_ATTRIBUTE) -> *mut X509_ATTRIBUTE;
20633}
20634unsafe extern "C" {
20635    pub fn X509_ATTRIBUTE_free(attr: *mut X509_ATTRIBUTE);
20636}
20637unsafe extern "C" {
20638    pub fn d2i_X509_ATTRIBUTE(
20639        out: *mut *mut X509_ATTRIBUTE,
20640        inp: *mut *const u8,
20641        len: ::core::ffi::c_long,
20642    ) -> *mut X509_ATTRIBUTE;
20643}
20644unsafe extern "C" {
20645    pub fn i2d_X509_ATTRIBUTE(alg: *const X509_ATTRIBUTE, outp: *mut *mut u8)
20646        -> ::core::ffi::c_int;
20647}
20648unsafe extern "C" {
20649    pub fn X509_ATTRIBUTE_create(
20650        nid: ::core::ffi::c_int,
20651        attrtype: ::core::ffi::c_int,
20652        value: *mut ::core::ffi::c_void,
20653    ) -> *mut X509_ATTRIBUTE;
20654}
20655unsafe extern "C" {
20656    pub fn X509_ATTRIBUTE_create_by_NID(
20657        attr: *mut *mut X509_ATTRIBUTE,
20658        nid: ::core::ffi::c_int,
20659        attrtype: ::core::ffi::c_int,
20660        data: *const ::core::ffi::c_void,
20661        len: ::core::ffi::c_int,
20662    ) -> *mut X509_ATTRIBUTE;
20663}
20664unsafe extern "C" {
20665    pub fn X509_ATTRIBUTE_create_by_OBJ(
20666        attr: *mut *mut X509_ATTRIBUTE,
20667        obj: *const ASN1_OBJECT,
20668        attrtype: ::core::ffi::c_int,
20669        data: *const ::core::ffi::c_void,
20670        len: ::core::ffi::c_int,
20671    ) -> *mut X509_ATTRIBUTE;
20672}
20673unsafe extern "C" {
20674    pub fn X509_ATTRIBUTE_create_by_txt(
20675        attr: *mut *mut X509_ATTRIBUTE,
20676        attrname: *const ::core::ffi::c_char,
20677        type_: ::core::ffi::c_int,
20678        bytes: *const ::core::ffi::c_uchar,
20679        len: ::core::ffi::c_int,
20680    ) -> *mut X509_ATTRIBUTE;
20681}
20682unsafe extern "C" {
20683    pub fn X509_ATTRIBUTE_set1_object(
20684        attr: *mut X509_ATTRIBUTE,
20685        obj: *const ASN1_OBJECT,
20686    ) -> ::core::ffi::c_int;
20687}
20688unsafe extern "C" {
20689    pub fn X509_ATTRIBUTE_set1_data(
20690        attr: *mut X509_ATTRIBUTE,
20691        attrtype: ::core::ffi::c_int,
20692        data: *const ::core::ffi::c_void,
20693        len: ::core::ffi::c_int,
20694    ) -> ::core::ffi::c_int;
20695}
20696unsafe extern "C" {
20697    pub fn X509_ATTRIBUTE_get0_data(
20698        attr: *mut X509_ATTRIBUTE,
20699        idx: ::core::ffi::c_int,
20700        attrtype: ::core::ffi::c_int,
20701        unused: *mut ::core::ffi::c_void,
20702    ) -> *mut ::core::ffi::c_void;
20703}
20704unsafe extern "C" {
20705    pub fn X509_ATTRIBUTE_count(attr: *const X509_ATTRIBUTE) -> ::core::ffi::c_int;
20706}
20707unsafe extern "C" {
20708    pub fn X509_ATTRIBUTE_get0_object(attr: *mut X509_ATTRIBUTE) -> *mut ASN1_OBJECT;
20709}
20710unsafe extern "C" {
20711    pub fn X509_ATTRIBUTE_get0_type(
20712        attr: *mut X509_ATTRIBUTE,
20713        idx: ::core::ffi::c_int,
20714    ) -> *mut ASN1_TYPE;
20715}
20716unsafe extern "C" {
20717    pub fn X509_STORE_new() -> *mut X509_STORE;
20718}
20719unsafe extern "C" {
20720    pub fn X509_STORE_up_ref(store: *mut X509_STORE) -> ::core::ffi::c_int;
20721}
20722unsafe extern "C" {
20723    pub fn X509_STORE_free(store: *mut X509_STORE);
20724}
20725unsafe extern "C" {
20726    pub fn X509_STORE_add_cert(store: *mut X509_STORE, x509: *mut X509) -> ::core::ffi::c_int;
20727}
20728unsafe extern "C" {
20729    pub fn X509_STORE_add_crl(store: *mut X509_STORE, crl: *mut X509_CRL) -> ::core::ffi::c_int;
20730}
20731unsafe extern "C" {
20732    pub fn X509_STORE_get0_param(store: *mut X509_STORE) -> *mut X509_VERIFY_PARAM;
20733}
20734unsafe extern "C" {
20735    pub fn X509_STORE_set1_param(
20736        store: *mut X509_STORE,
20737        param: *const X509_VERIFY_PARAM,
20738    ) -> ::core::ffi::c_int;
20739}
20740unsafe extern "C" {
20741    pub fn X509_STORE_set_flags(
20742        store: *mut X509_STORE,
20743        flags: ::core::ffi::c_ulong,
20744    ) -> ::core::ffi::c_int;
20745}
20746unsafe extern "C" {
20747    pub fn X509_STORE_set_depth(
20748        store: *mut X509_STORE,
20749        depth: ::core::ffi::c_int,
20750    ) -> ::core::ffi::c_int;
20751}
20752unsafe extern "C" {
20753    pub fn X509_STORE_set_purpose(
20754        store: *mut X509_STORE,
20755        purpose: ::core::ffi::c_int,
20756    ) -> ::core::ffi::c_int;
20757}
20758unsafe extern "C" {
20759    pub fn X509_STORE_set_trust(
20760        store: *mut X509_STORE,
20761        trust: ::core::ffi::c_int,
20762    ) -> ::core::ffi::c_int;
20763}
20764#[repr(C)]
20765#[derive(Debug)]
20766pub struct stack_st_X509_OBJECT {
20767    _unused: [u8; 0],
20768}
20769pub type sk_X509_OBJECT_free_func =
20770    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_OBJECT)>;
20771pub type sk_X509_OBJECT_copy_func =
20772    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_OBJECT) -> *mut X509_OBJECT>;
20773pub type sk_X509_OBJECT_cmp_func = ::core::option::Option<
20774    unsafe extern "C" fn(
20775        arg1: *const *const X509_OBJECT,
20776        arg2: *const *const X509_OBJECT,
20777    ) -> ::core::ffi::c_int,
20778>;
20779pub type sk_X509_OBJECT_delete_if_func = ::core::option::Option<
20780    unsafe extern "C" fn(
20781        arg1: *mut X509_OBJECT,
20782        arg2: *mut ::core::ffi::c_void,
20783    ) -> ::core::ffi::c_int,
20784>;
20785unsafe extern "C" {
20786    #[link_name = "sk_X509_OBJECT_call_free_func__extern"]
20787    pub fn sk_X509_OBJECT_call_free_func(
20788        free_func: OPENSSL_sk_free_func,
20789        ptr: *mut ::core::ffi::c_void,
20790    );
20791}
20792unsafe extern "C" {
20793    #[link_name = "sk_X509_OBJECT_call_copy_func__extern"]
20794    pub fn sk_X509_OBJECT_call_copy_func(
20795        copy_func: OPENSSL_sk_copy_func,
20796        ptr: *const ::core::ffi::c_void,
20797    ) -> *mut ::core::ffi::c_void;
20798}
20799unsafe extern "C" {
20800    #[link_name = "sk_X509_OBJECT_call_cmp_func__extern"]
20801    pub fn sk_X509_OBJECT_call_cmp_func(
20802        cmp_func: OPENSSL_sk_cmp_func,
20803        a: *const ::core::ffi::c_void,
20804        b: *const ::core::ffi::c_void,
20805    ) -> ::core::ffi::c_int;
20806}
20807unsafe extern "C" {
20808    #[link_name = "sk_X509_OBJECT_call_delete_if_func__extern"]
20809    pub fn sk_X509_OBJECT_call_delete_if_func(
20810        func: OPENSSL_sk_delete_if_func,
20811        obj: *mut ::core::ffi::c_void,
20812        data: *mut ::core::ffi::c_void,
20813    ) -> ::core::ffi::c_int;
20814}
20815unsafe extern "C" {
20816    #[link_name = "sk_X509_OBJECT_new__extern"]
20817    pub fn sk_X509_OBJECT_new(comp: sk_X509_OBJECT_cmp_func) -> *mut stack_st_X509_OBJECT;
20818}
20819unsafe extern "C" {
20820    #[link_name = "sk_X509_OBJECT_new_null__extern"]
20821    pub fn sk_X509_OBJECT_new_null() -> *mut stack_st_X509_OBJECT;
20822}
20823unsafe extern "C" {
20824    #[link_name = "sk_X509_OBJECT_num__extern"]
20825    pub fn sk_X509_OBJECT_num(sk: *const stack_st_X509_OBJECT) -> usize;
20826}
20827unsafe extern "C" {
20828    #[link_name = "sk_X509_OBJECT_zero__extern"]
20829    pub fn sk_X509_OBJECT_zero(sk: *mut stack_st_X509_OBJECT);
20830}
20831unsafe extern "C" {
20832    #[link_name = "sk_X509_OBJECT_value__extern"]
20833    pub fn sk_X509_OBJECT_value(sk: *const stack_st_X509_OBJECT, i: usize) -> *mut X509_OBJECT;
20834}
20835unsafe extern "C" {
20836    #[link_name = "sk_X509_OBJECT_set__extern"]
20837    pub fn sk_X509_OBJECT_set(
20838        sk: *mut stack_st_X509_OBJECT,
20839        i: usize,
20840        p: *mut X509_OBJECT,
20841    ) -> *mut X509_OBJECT;
20842}
20843unsafe extern "C" {
20844    #[link_name = "sk_X509_OBJECT_free__extern"]
20845    pub fn sk_X509_OBJECT_free(sk: *mut stack_st_X509_OBJECT);
20846}
20847unsafe extern "C" {
20848    #[link_name = "sk_X509_OBJECT_pop_free__extern"]
20849    pub fn sk_X509_OBJECT_pop_free(
20850        sk: *mut stack_st_X509_OBJECT,
20851        free_func: sk_X509_OBJECT_free_func,
20852    );
20853}
20854unsafe extern "C" {
20855    #[link_name = "sk_X509_OBJECT_insert__extern"]
20856    pub fn sk_X509_OBJECT_insert(
20857        sk: *mut stack_st_X509_OBJECT,
20858        p: *mut X509_OBJECT,
20859        where_: usize,
20860    ) -> usize;
20861}
20862unsafe extern "C" {
20863    #[link_name = "sk_X509_OBJECT_delete__extern"]
20864    pub fn sk_X509_OBJECT_delete(sk: *mut stack_st_X509_OBJECT, where_: usize) -> *mut X509_OBJECT;
20865}
20866unsafe extern "C" {
20867    #[link_name = "sk_X509_OBJECT_delete_ptr__extern"]
20868    pub fn sk_X509_OBJECT_delete_ptr(
20869        sk: *mut stack_st_X509_OBJECT,
20870        p: *const X509_OBJECT,
20871    ) -> *mut X509_OBJECT;
20872}
20873unsafe extern "C" {
20874    #[link_name = "sk_X509_OBJECT_delete_if__extern"]
20875    pub fn sk_X509_OBJECT_delete_if(
20876        sk: *mut stack_st_X509_OBJECT,
20877        func: sk_X509_OBJECT_delete_if_func,
20878        data: *mut ::core::ffi::c_void,
20879    );
20880}
20881unsafe extern "C" {
20882    #[link_name = "sk_X509_OBJECT_find__extern"]
20883    pub fn sk_X509_OBJECT_find(
20884        sk: *const stack_st_X509_OBJECT,
20885        out_index: *mut usize,
20886        p: *const X509_OBJECT,
20887    ) -> ::core::ffi::c_int;
20888}
20889unsafe extern "C" {
20890    #[link_name = "sk_X509_OBJECT_shift__extern"]
20891    pub fn sk_X509_OBJECT_shift(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
20892}
20893unsafe extern "C" {
20894    #[link_name = "sk_X509_OBJECT_push__extern"]
20895    pub fn sk_X509_OBJECT_push(sk: *mut stack_st_X509_OBJECT, p: *mut X509_OBJECT) -> usize;
20896}
20897unsafe extern "C" {
20898    #[link_name = "sk_X509_OBJECT_pop__extern"]
20899    pub fn sk_X509_OBJECT_pop(sk: *mut stack_st_X509_OBJECT) -> *mut X509_OBJECT;
20900}
20901unsafe extern "C" {
20902    #[link_name = "sk_X509_OBJECT_dup__extern"]
20903    pub fn sk_X509_OBJECT_dup(sk: *const stack_st_X509_OBJECT) -> *mut stack_st_X509_OBJECT;
20904}
20905unsafe extern "C" {
20906    #[link_name = "sk_X509_OBJECT_sort__extern"]
20907    pub fn sk_X509_OBJECT_sort(sk: *mut stack_st_X509_OBJECT);
20908}
20909unsafe extern "C" {
20910    #[link_name = "sk_X509_OBJECT_sort_and_dedup__extern"]
20911    pub fn sk_X509_OBJECT_sort_and_dedup(
20912        sk: *mut stack_st_X509_OBJECT,
20913        free_func: sk_X509_OBJECT_free_func,
20914    );
20915}
20916unsafe extern "C" {
20917    #[link_name = "sk_X509_OBJECT_is_sorted__extern"]
20918    pub fn sk_X509_OBJECT_is_sorted(sk: *const stack_st_X509_OBJECT) -> ::core::ffi::c_int;
20919}
20920unsafe extern "C" {
20921    #[link_name = "sk_X509_OBJECT_set_cmp_func__extern"]
20922    pub fn sk_X509_OBJECT_set_cmp_func(
20923        sk: *mut stack_st_X509_OBJECT,
20924        comp: sk_X509_OBJECT_cmp_func,
20925    ) -> sk_X509_OBJECT_cmp_func;
20926}
20927unsafe extern "C" {
20928    #[link_name = "sk_X509_OBJECT_deep_copy__extern"]
20929    pub fn sk_X509_OBJECT_deep_copy(
20930        sk: *const stack_st_X509_OBJECT,
20931        copy_func: sk_X509_OBJECT_copy_func,
20932        free_func: sk_X509_OBJECT_free_func,
20933    ) -> *mut stack_st_X509_OBJECT;
20934}
20935unsafe extern "C" {
20936    pub fn X509_OBJECT_new() -> *mut X509_OBJECT;
20937}
20938unsafe extern "C" {
20939    pub fn X509_OBJECT_free(obj: *mut X509_OBJECT);
20940}
20941unsafe extern "C" {
20942    pub fn X509_OBJECT_get_type(obj: *const X509_OBJECT) -> ::core::ffi::c_int;
20943}
20944unsafe extern "C" {
20945    pub fn X509_OBJECT_get0_X509(obj: *const X509_OBJECT) -> *mut X509;
20946}
20947unsafe extern "C" {
20948    pub fn X509_STORE_get1_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
20949}
20950unsafe extern "C" {
20951    pub fn X509_STORE_CTX_new() -> *mut X509_STORE_CTX;
20952}
20953unsafe extern "C" {
20954    pub fn X509_STORE_CTX_free(ctx: *mut X509_STORE_CTX);
20955}
20956unsafe extern "C" {
20957    pub fn X509_STORE_CTX_init(
20958        ctx: *mut X509_STORE_CTX,
20959        store: *mut X509_STORE,
20960        x509: *mut X509,
20961        chain: *mut stack_st_X509,
20962    ) -> ::core::ffi::c_int;
20963}
20964unsafe extern "C" {
20965    pub fn X509_verify_cert(ctx: *mut X509_STORE_CTX) -> ::core::ffi::c_int;
20966}
20967unsafe extern "C" {
20968    pub fn X509_STORE_CTX_get0_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20969}
20970unsafe extern "C" {
20971    pub fn X509_STORE_CTX_get1_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20972}
20973unsafe extern "C" {
20974    pub fn X509_STORE_CTX_get_error(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
20975}
20976unsafe extern "C" {
20977    pub fn X509_STORE_CTX_set_error(ctx: *mut X509_STORE_CTX, err: ::core::ffi::c_int);
20978}
20979unsafe extern "C" {
20980    pub fn X509_verify_cert_error_string(err: ::core::ffi::c_long) -> *const ::core::ffi::c_char;
20981}
20982unsafe extern "C" {
20983    pub fn X509_STORE_CTX_get_error_depth(ctx: *const X509_STORE_CTX) -> ::core::ffi::c_int;
20984}
20985unsafe extern "C" {
20986    pub fn X509_STORE_CTX_get_current_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
20987}
20988unsafe extern "C" {
20989    pub fn X509_STORE_CTX_get0_current_crl(ctx: *const X509_STORE_CTX) -> *mut X509_CRL;
20990}
20991unsafe extern "C" {
20992    pub fn X509_STORE_CTX_get0_store(ctx: *const X509_STORE_CTX) -> *mut X509_STORE;
20993}
20994unsafe extern "C" {
20995    pub fn X509_STORE_CTX_get0_cert(ctx: *const X509_STORE_CTX) -> *mut X509;
20996}
20997unsafe extern "C" {
20998    pub fn X509_STORE_CTX_get0_untrusted(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
20999}
21000unsafe extern "C" {
21001    pub fn X509_STORE_CTX_set0_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
21002}
21003unsafe extern "C" {
21004    pub fn X509_STORE_CTX_set0_crls(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509_CRL);
21005}
21006unsafe extern "C" {
21007    pub fn X509_STORE_CTX_set_default(
21008        ctx: *mut X509_STORE_CTX,
21009        name: *const ::core::ffi::c_char,
21010    ) -> ::core::ffi::c_int;
21011}
21012unsafe extern "C" {
21013    pub fn X509_STORE_CTX_get0_param(ctx: *mut X509_STORE_CTX) -> *mut X509_VERIFY_PARAM;
21014}
21015unsafe extern "C" {
21016    pub fn X509_STORE_CTX_set0_param(ctx: *mut X509_STORE_CTX, param: *mut X509_VERIFY_PARAM);
21017}
21018unsafe extern "C" {
21019    pub fn X509_STORE_CTX_set_flags(ctx: *mut X509_STORE_CTX, flags: ::core::ffi::c_ulong);
21020}
21021unsafe extern "C" {
21022    pub fn X509_STORE_CTX_set_time(
21023        ctx: *mut X509_STORE_CTX,
21024        flags: ::core::ffi::c_ulong,
21025        t: time_t,
21026    );
21027}
21028unsafe extern "C" {
21029    pub fn X509_STORE_CTX_set_time_posix(
21030        ctx: *mut X509_STORE_CTX,
21031        flags: ::core::ffi::c_ulong,
21032        t: i64,
21033    );
21034}
21035unsafe extern "C" {
21036    pub fn X509_STORE_CTX_set_depth(ctx: *mut X509_STORE_CTX, depth: ::core::ffi::c_int);
21037}
21038unsafe extern "C" {
21039    pub fn X509_STORE_CTX_set_purpose(
21040        ctx: *mut X509_STORE_CTX,
21041        purpose: ::core::ffi::c_int,
21042    ) -> ::core::ffi::c_int;
21043}
21044unsafe extern "C" {
21045    pub fn X509_STORE_CTX_set_trust(
21046        ctx: *mut X509_STORE_CTX,
21047        trust: ::core::ffi::c_int,
21048    ) -> ::core::ffi::c_int;
21049}
21050unsafe extern "C" {
21051    pub fn X509_VERIFY_PARAM_new() -> *mut X509_VERIFY_PARAM;
21052}
21053unsafe extern "C" {
21054    pub fn X509_VERIFY_PARAM_free(param: *mut X509_VERIFY_PARAM);
21055}
21056unsafe extern "C" {
21057    pub fn X509_VERIFY_PARAM_inherit(
21058        to: *mut X509_VERIFY_PARAM,
21059        from: *const X509_VERIFY_PARAM,
21060    ) -> ::core::ffi::c_int;
21061}
21062unsafe extern "C" {
21063    pub fn X509_VERIFY_PARAM_set1(
21064        to: *mut X509_VERIFY_PARAM,
21065        from: *const X509_VERIFY_PARAM,
21066    ) -> ::core::ffi::c_int;
21067}
21068unsafe extern "C" {
21069    pub fn X509_VERIFY_PARAM_set_flags(
21070        param: *mut X509_VERIFY_PARAM,
21071        flags: ::core::ffi::c_ulong,
21072    ) -> ::core::ffi::c_int;
21073}
21074unsafe extern "C" {
21075    pub fn X509_VERIFY_PARAM_clear_flags(
21076        param: *mut X509_VERIFY_PARAM,
21077        flags: ::core::ffi::c_ulong,
21078    ) -> ::core::ffi::c_int;
21079}
21080unsafe extern "C" {
21081    pub fn X509_VERIFY_PARAM_get_flags(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_ulong;
21082}
21083unsafe extern "C" {
21084    pub fn X509_VERIFY_PARAM_set_depth(param: *mut X509_VERIFY_PARAM, depth: ::core::ffi::c_int);
21085}
21086unsafe extern "C" {
21087    pub fn X509_VERIFY_PARAM_get_depth(param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
21088}
21089unsafe extern "C" {
21090    pub fn X509_VERIFY_PARAM_set_time(param: *mut X509_VERIFY_PARAM, t: time_t);
21091}
21092unsafe extern "C" {
21093    pub fn X509_VERIFY_PARAM_set_time_posix(param: *mut X509_VERIFY_PARAM, t: i64);
21094}
21095unsafe extern "C" {
21096    pub fn X509_VERIFY_PARAM_add0_policy(
21097        param: *mut X509_VERIFY_PARAM,
21098        policy: *mut ASN1_OBJECT,
21099    ) -> ::core::ffi::c_int;
21100}
21101unsafe extern "C" {
21102    pub fn X509_VERIFY_PARAM_set1_policies(
21103        param: *mut X509_VERIFY_PARAM,
21104        policies: *const stack_st_ASN1_OBJECT,
21105    ) -> ::core::ffi::c_int;
21106}
21107unsafe extern "C" {
21108    pub fn X509_VERIFY_PARAM_set1_host(
21109        param: *mut X509_VERIFY_PARAM,
21110        name: *const ::core::ffi::c_char,
21111        name_len: usize,
21112    ) -> ::core::ffi::c_int;
21113}
21114unsafe extern "C" {
21115    pub fn X509_VERIFY_PARAM_add1_host(
21116        param: *mut X509_VERIFY_PARAM,
21117        name: *const ::core::ffi::c_char,
21118        name_len: usize,
21119    ) -> ::core::ffi::c_int;
21120}
21121unsafe extern "C" {
21122    pub fn X509_VERIFY_PARAM_set_hostflags(
21123        param: *mut X509_VERIFY_PARAM,
21124        flags: ::core::ffi::c_uint,
21125    );
21126}
21127unsafe extern "C" {
21128    pub fn X509_VERIFY_PARAM_set1_email(
21129        param: *mut X509_VERIFY_PARAM,
21130        email: *const ::core::ffi::c_char,
21131        email_len: usize,
21132    ) -> ::core::ffi::c_int;
21133}
21134unsafe extern "C" {
21135    pub fn X509_VERIFY_PARAM_set1_ip(
21136        param: *mut X509_VERIFY_PARAM,
21137        ip: *const u8,
21138        ip_len: usize,
21139    ) -> ::core::ffi::c_int;
21140}
21141unsafe extern "C" {
21142    pub fn X509_VERIFY_PARAM_set1_ip_asc(
21143        param: *mut X509_VERIFY_PARAM,
21144        ipasc: *const ::core::ffi::c_char,
21145    ) -> ::core::ffi::c_int;
21146}
21147unsafe extern "C" {
21148    pub fn X509_VERIFY_PARAM_set_purpose(
21149        param: *mut X509_VERIFY_PARAM,
21150        purpose: ::core::ffi::c_int,
21151    ) -> ::core::ffi::c_int;
21152}
21153unsafe extern "C" {
21154    pub fn X509_VERIFY_PARAM_set_trust(
21155        param: *mut X509_VERIFY_PARAM,
21156        trust: ::core::ffi::c_int,
21157    ) -> ::core::ffi::c_int;
21158}
21159unsafe extern "C" {
21160    pub fn X509_STORE_load_locations(
21161        store: *mut X509_STORE,
21162        file: *const ::core::ffi::c_char,
21163        dir: *const ::core::ffi::c_char,
21164    ) -> ::core::ffi::c_int;
21165}
21166unsafe extern "C" {
21167    pub fn X509_STORE_add_lookup(
21168        store: *mut X509_STORE,
21169        method: *const X509_LOOKUP_METHOD,
21170    ) -> *mut X509_LOOKUP;
21171}
21172unsafe extern "C" {
21173    pub fn X509_LOOKUP_hash_dir() -> *const X509_LOOKUP_METHOD;
21174}
21175unsafe extern "C" {
21176    pub fn X509_LOOKUP_file() -> *const X509_LOOKUP_METHOD;
21177}
21178unsafe extern "C" {
21179    pub fn X509_LOOKUP_load_file(
21180        lookup: *mut X509_LOOKUP,
21181        file: *const ::core::ffi::c_char,
21182        type_: ::core::ffi::c_int,
21183    ) -> ::core::ffi::c_int;
21184}
21185unsafe extern "C" {
21186    pub fn X509_LOOKUP_add_dir(
21187        lookup: *mut X509_LOOKUP,
21188        path: *const ::core::ffi::c_char,
21189        type_: ::core::ffi::c_int,
21190    ) -> ::core::ffi::c_int;
21191}
21192unsafe extern "C" {
21193    pub fn X509_LOOKUP_ctrl(
21194        lookup: *mut X509_LOOKUP,
21195        cmd: ::core::ffi::c_int,
21196        argc: *const ::core::ffi::c_char,
21197        argl: ::core::ffi::c_long,
21198        ret: *mut *mut ::core::ffi::c_char,
21199    ) -> ::core::ffi::c_int;
21200}
21201unsafe extern "C" {
21202    pub fn X509_load_cert_file(
21203        lookup: *mut X509_LOOKUP,
21204        file: *const ::core::ffi::c_char,
21205        type_: ::core::ffi::c_int,
21206    ) -> ::core::ffi::c_int;
21207}
21208unsafe extern "C" {
21209    pub fn X509_load_crl_file(
21210        lookup: *mut X509_LOOKUP,
21211        file: *const ::core::ffi::c_char,
21212        type_: ::core::ffi::c_int,
21213    ) -> ::core::ffi::c_int;
21214}
21215unsafe extern "C" {
21216    pub fn X509_load_cert_crl_file(
21217        lookup: *mut X509_LOOKUP,
21218        file: *const ::core::ffi::c_char,
21219        type_: ::core::ffi::c_int,
21220    ) -> ::core::ffi::c_int;
21221}
21222unsafe extern "C" {
21223    pub fn X509_NAME_hash(name: *const X509_NAME) -> u32;
21224}
21225unsafe extern "C" {
21226    pub fn X509_NAME_hash_old(name: *const X509_NAME) -> u32;
21227}
21228unsafe extern "C" {
21229    pub fn X509_STORE_set_default_paths(store: *mut X509_STORE) -> ::core::ffi::c_int;
21230}
21231unsafe extern "C" {
21232    pub fn X509_get_default_cert_area() -> *const ::core::ffi::c_char;
21233}
21234unsafe extern "C" {
21235    pub fn X509_get_default_cert_dir() -> *const ::core::ffi::c_char;
21236}
21237unsafe extern "C" {
21238    pub fn X509_get_default_cert_file() -> *const ::core::ffi::c_char;
21239}
21240unsafe extern "C" {
21241    pub fn X509_get_default_private_dir() -> *const ::core::ffi::c_char;
21242}
21243unsafe extern "C" {
21244    pub fn X509_get_default_cert_dir_env() -> *const ::core::ffi::c_char;
21245}
21246unsafe extern "C" {
21247    pub fn X509_get_default_cert_file_env() -> *const ::core::ffi::c_char;
21248}
21249#[repr(C)]
21250#[derive(Debug, Copy, Clone)]
21251pub struct Netscape_spki_st {
21252    pub spkac: *mut NETSCAPE_SPKAC,
21253    pub sig_algor: *mut X509_ALGOR,
21254    pub signature: *mut ASN1_BIT_STRING,
21255}
21256unsafe extern "C" {
21257    pub fn NETSCAPE_SPKI_new() -> *mut NETSCAPE_SPKI;
21258}
21259unsafe extern "C" {
21260    pub fn NETSCAPE_SPKI_free(spki: *mut NETSCAPE_SPKI);
21261}
21262unsafe extern "C" {
21263    pub fn d2i_NETSCAPE_SPKI(
21264        out: *mut *mut NETSCAPE_SPKI,
21265        inp: *mut *const u8,
21266        len: ::core::ffi::c_long,
21267    ) -> *mut NETSCAPE_SPKI;
21268}
21269unsafe extern "C" {
21270    pub fn i2d_NETSCAPE_SPKI(spki: *const NETSCAPE_SPKI, outp: *mut *mut u8) -> ::core::ffi::c_int;
21271}
21272unsafe extern "C" {
21273    pub fn NETSCAPE_SPKI_verify(
21274        spki: *mut NETSCAPE_SPKI,
21275        pkey: *mut EVP_PKEY,
21276    ) -> ::core::ffi::c_int;
21277}
21278unsafe extern "C" {
21279    pub fn NETSCAPE_SPKI_b64_decode(
21280        str_: *const ::core::ffi::c_char,
21281        len: ossl_ssize_t,
21282    ) -> *mut NETSCAPE_SPKI;
21283}
21284unsafe extern "C" {
21285    pub fn NETSCAPE_SPKI_b64_encode(spki: *mut NETSCAPE_SPKI) -> *mut ::core::ffi::c_char;
21286}
21287unsafe extern "C" {
21288    pub fn NETSCAPE_SPKI_get_pubkey(spki: *const NETSCAPE_SPKI) -> *mut EVP_PKEY;
21289}
21290unsafe extern "C" {
21291    pub fn NETSCAPE_SPKI_set_pubkey(
21292        spki: *mut NETSCAPE_SPKI,
21293        pkey: *mut EVP_PKEY,
21294    ) -> ::core::ffi::c_int;
21295}
21296unsafe extern "C" {
21297    pub fn NETSCAPE_SPKI_sign(
21298        spki: *mut NETSCAPE_SPKI,
21299        pkey: *mut EVP_PKEY,
21300        md: *const EVP_MD,
21301    ) -> ::core::ffi::c_int;
21302}
21303#[repr(C)]
21304#[derive(Debug, Copy, Clone)]
21305pub struct Netscape_spkac_st {
21306    pub pubkey: *mut X509_PUBKEY,
21307    pub challenge: *mut ASN1_IA5STRING,
21308}
21309unsafe extern "C" {
21310    pub fn NETSCAPE_SPKAC_new() -> *mut NETSCAPE_SPKAC;
21311}
21312unsafe extern "C" {
21313    pub fn NETSCAPE_SPKAC_free(spkac: *mut NETSCAPE_SPKAC);
21314}
21315unsafe extern "C" {
21316    pub fn d2i_NETSCAPE_SPKAC(
21317        out: *mut *mut NETSCAPE_SPKAC,
21318        inp: *mut *const u8,
21319        len: ::core::ffi::c_long,
21320    ) -> *mut NETSCAPE_SPKAC;
21321}
21322unsafe extern "C" {
21323    pub fn i2d_NETSCAPE_SPKAC(
21324        spkac: *const NETSCAPE_SPKAC,
21325        outp: *mut *mut u8,
21326    ) -> ::core::ffi::c_int;
21327}
21328#[repr(C)]
21329#[derive(Debug, Copy, Clone)]
21330pub struct rsa_pss_params_st {
21331    pub hashAlgorithm: *mut X509_ALGOR,
21332    pub maskGenAlgorithm: *mut X509_ALGOR,
21333    pub saltLength: *mut ASN1_INTEGER,
21334    pub trailerField: *mut ASN1_INTEGER,
21335    pub maskHash: *mut X509_ALGOR,
21336}
21337unsafe extern "C" {
21338    pub static RSA_PSS_PARAMS_it: ASN1_ITEM;
21339}
21340unsafe extern "C" {
21341    pub fn RSA_PSS_PARAMS_new() -> *mut RSA_PSS_PARAMS;
21342}
21343unsafe extern "C" {
21344    pub fn RSA_PSS_PARAMS_free(params: *mut RSA_PSS_PARAMS);
21345}
21346unsafe extern "C" {
21347    pub fn d2i_RSA_PSS_PARAMS(
21348        out: *mut *mut RSA_PSS_PARAMS,
21349        inp: *mut *const u8,
21350        len: ::core::ffi::c_long,
21351    ) -> *mut RSA_PSS_PARAMS;
21352}
21353unsafe extern "C" {
21354    pub fn i2d_RSA_PSS_PARAMS(in_: *const RSA_PSS_PARAMS, outp: *mut *mut u8)
21355        -> ::core::ffi::c_int;
21356}
21357unsafe extern "C" {
21358    pub fn PKCS8_PRIV_KEY_INFO_new() -> *mut PKCS8_PRIV_KEY_INFO;
21359}
21360unsafe extern "C" {
21361    pub fn PKCS8_PRIV_KEY_INFO_free(key: *mut PKCS8_PRIV_KEY_INFO);
21362}
21363unsafe extern "C" {
21364    pub fn d2i_PKCS8_PRIV_KEY_INFO(
21365        out: *mut *mut PKCS8_PRIV_KEY_INFO,
21366        inp: *mut *const u8,
21367        len: ::core::ffi::c_long,
21368    ) -> *mut PKCS8_PRIV_KEY_INFO;
21369}
21370unsafe extern "C" {
21371    pub fn i2d_PKCS8_PRIV_KEY_INFO(
21372        key: *const PKCS8_PRIV_KEY_INFO,
21373        outp: *mut *mut u8,
21374    ) -> ::core::ffi::c_int;
21375}
21376unsafe extern "C" {
21377    pub fn EVP_PKCS82PKEY(p8: *const PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY;
21378}
21379unsafe extern "C" {
21380    pub fn EVP_PKEY2PKCS8(pkey: *const EVP_PKEY) -> *mut PKCS8_PRIV_KEY_INFO;
21381}
21382unsafe extern "C" {
21383    pub fn X509_SIG_new() -> *mut X509_SIG;
21384}
21385unsafe extern "C" {
21386    pub fn X509_SIG_free(key: *mut X509_SIG);
21387}
21388unsafe extern "C" {
21389    pub fn d2i_X509_SIG(
21390        out: *mut *mut X509_SIG,
21391        inp: *mut *const u8,
21392        len: ::core::ffi::c_long,
21393    ) -> *mut X509_SIG;
21394}
21395unsafe extern "C" {
21396    pub fn i2d_X509_SIG(sig: *const X509_SIG, outp: *mut *mut u8) -> ::core::ffi::c_int;
21397}
21398unsafe extern "C" {
21399    pub fn X509_SIG_get0(
21400        sig: *const X509_SIG,
21401        out_alg: *mut *const X509_ALGOR,
21402        out_digest: *mut *const ASN1_OCTET_STRING,
21403    );
21404}
21405unsafe extern "C" {
21406    pub fn X509_SIG_getm(
21407        sig: *mut X509_SIG,
21408        out_alg: *mut *mut X509_ALGOR,
21409        out_digest: *mut *mut ASN1_OCTET_STRING,
21410    );
21411}
21412unsafe extern "C" {
21413    pub fn X509_print_ex(
21414        bp: *mut BIO,
21415        x: *const X509,
21416        nmflag: ::core::ffi::c_ulong,
21417        cflag: ::core::ffi::c_ulong,
21418    ) -> ::core::ffi::c_int;
21419}
21420unsafe extern "C" {
21421    pub fn X509_print_ex_fp(
21422        fp: *mut FILE,
21423        x: *const X509,
21424        nmflag: ::core::ffi::c_ulong,
21425        cflag: ::core::ffi::c_ulong,
21426    ) -> ::core::ffi::c_int;
21427}
21428unsafe extern "C" {
21429    pub fn X509_print(bp: *mut BIO, x: *const X509) -> ::core::ffi::c_int;
21430}
21431unsafe extern "C" {
21432    pub fn X509_print_fp(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
21433}
21434unsafe extern "C" {
21435    pub fn X509_CRL_print(bp: *mut BIO, x: *const X509_CRL) -> ::core::ffi::c_int;
21436}
21437unsafe extern "C" {
21438    pub fn X509_CRL_print_fp(fp: *mut FILE, x: *const X509_CRL) -> ::core::ffi::c_int;
21439}
21440unsafe extern "C" {
21441    pub fn X509_REQ_print_ex(
21442        bp: *mut BIO,
21443        x: *const X509_REQ,
21444        nmflag: ::core::ffi::c_ulong,
21445        cflag: ::core::ffi::c_ulong,
21446    ) -> ::core::ffi::c_int;
21447}
21448unsafe extern "C" {
21449    pub fn X509_REQ_print(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21450}
21451unsafe extern "C" {
21452    pub fn X509_REQ_print_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21453}
21454unsafe extern "C" {
21455    pub fn X509_NAME_print_ex(
21456        out: *mut BIO,
21457        nm: *const X509_NAME,
21458        indent: ::core::ffi::c_int,
21459        flags: ::core::ffi::c_ulong,
21460    ) -> ::core::ffi::c_int;
21461}
21462unsafe extern "C" {
21463    pub fn X509_NAME_print(
21464        bp: *mut BIO,
21465        name: *const X509_NAME,
21466        obase: ::core::ffi::c_int,
21467    ) -> ::core::ffi::c_int;
21468}
21469unsafe extern "C" {
21470    pub fn X509_NAME_oneline(
21471        name: *const X509_NAME,
21472        buf: *mut ::core::ffi::c_char,
21473        size: ::core::ffi::c_int,
21474    ) -> *mut ::core::ffi::c_char;
21475}
21476unsafe extern "C" {
21477    pub fn X509_NAME_print_ex_fp(
21478        fp: *mut FILE,
21479        nm: *const X509_NAME,
21480        indent: ::core::ffi::c_int,
21481        flags: ::core::ffi::c_ulong,
21482    ) -> ::core::ffi::c_int;
21483}
21484unsafe extern "C" {
21485    pub fn X509_signature_dump(
21486        bio: *mut BIO,
21487        sig: *const ASN1_STRING,
21488        indent: ::core::ffi::c_int,
21489    ) -> ::core::ffi::c_int;
21490}
21491unsafe extern "C" {
21492    pub fn X509_signature_print(
21493        bio: *mut BIO,
21494        alg: *const X509_ALGOR,
21495        sig: *const ASN1_STRING,
21496    ) -> ::core::ffi::c_int;
21497}
21498unsafe extern "C" {
21499    pub fn X509V3_EXT_print(
21500        out: *mut BIO,
21501        ext: *const X509_EXTENSION,
21502        flag: ::core::ffi::c_ulong,
21503        indent: ::core::ffi::c_int,
21504    ) -> ::core::ffi::c_int;
21505}
21506unsafe extern "C" {
21507    pub fn X509V3_EXT_print_fp(
21508        out: *mut FILE,
21509        ext: *const X509_EXTENSION,
21510        flag: ::core::ffi::c_int,
21511        indent: ::core::ffi::c_int,
21512    ) -> ::core::ffi::c_int;
21513}
21514unsafe extern "C" {
21515    pub fn X509V3_extensions_print(
21516        out: *mut BIO,
21517        title: *const ::core::ffi::c_char,
21518        exts: *const stack_st_X509_EXTENSION,
21519        flag: ::core::ffi::c_ulong,
21520        indent: ::core::ffi::c_int,
21521    ) -> ::core::ffi::c_int;
21522}
21523unsafe extern "C" {
21524    pub fn GENERAL_NAME_print(out: *mut BIO, gen_: *const GENERAL_NAME) -> ::core::ffi::c_int;
21525}
21526unsafe extern "C" {
21527    pub fn X509_pubkey_digest(
21528        x509: *const X509,
21529        md: *const EVP_MD,
21530        out: *mut u8,
21531        out_len: *mut ::core::ffi::c_uint,
21532    ) -> ::core::ffi::c_int;
21533}
21534unsafe extern "C" {
21535    pub fn X509_digest(
21536        x509: *const X509,
21537        md: *const EVP_MD,
21538        out: *mut u8,
21539        out_len: *mut ::core::ffi::c_uint,
21540    ) -> ::core::ffi::c_int;
21541}
21542unsafe extern "C" {
21543    pub fn X509_CRL_digest(
21544        crl: *const X509_CRL,
21545        md: *const EVP_MD,
21546        out: *mut u8,
21547        out_len: *mut ::core::ffi::c_uint,
21548    ) -> ::core::ffi::c_int;
21549}
21550unsafe extern "C" {
21551    pub fn X509_REQ_digest(
21552        req: *const X509_REQ,
21553        md: *const EVP_MD,
21554        out: *mut u8,
21555        out_len: *mut ::core::ffi::c_uint,
21556    ) -> ::core::ffi::c_int;
21557}
21558unsafe extern "C" {
21559    pub fn X509_NAME_digest(
21560        name: *const X509_NAME,
21561        md: *const EVP_MD,
21562        out: *mut u8,
21563        out_len: *mut ::core::ffi::c_uint,
21564    ) -> ::core::ffi::c_int;
21565}
21566unsafe extern "C" {
21567    pub fn d2i_X509_bio(bp: *mut BIO, x509: *mut *mut X509) -> *mut X509;
21568}
21569unsafe extern "C" {
21570    pub fn d2i_X509_CRL_bio(bp: *mut BIO, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21571}
21572unsafe extern "C" {
21573    pub fn d2i_X509_REQ_bio(bp: *mut BIO, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21574}
21575unsafe extern "C" {
21576    pub fn d2i_RSAPrivateKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21577}
21578unsafe extern "C" {
21579    pub fn d2i_RSAPublicKey_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21580}
21581unsafe extern "C" {
21582    pub fn d2i_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *mut *mut RSA) -> *mut RSA;
21583}
21584unsafe extern "C" {
21585    pub fn d2i_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21586}
21587unsafe extern "C" {
21588    pub fn d2i_DSAPrivateKey_bio(bp: *mut BIO, dsa: *mut *mut DSA) -> *mut DSA;
21589}
21590unsafe extern "C" {
21591    pub fn d2i_EC_PUBKEY_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21592}
21593unsafe extern "C" {
21594    pub fn d2i_ECPrivateKey_bio(bp: *mut BIO, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21595}
21596unsafe extern "C" {
21597    pub fn d2i_PKCS8_bio(bp: *mut BIO, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21598}
21599unsafe extern "C" {
21600    pub fn d2i_PKCS8_PRIV_KEY_INFO_bio(
21601        bp: *mut BIO,
21602        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21603    ) -> *mut PKCS8_PRIV_KEY_INFO;
21604}
21605unsafe extern "C" {
21606    pub fn d2i_PUBKEY_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21607}
21608unsafe extern "C" {
21609    pub fn d2i_DHparams_bio(bp: *mut BIO, dh: *mut *mut DH) -> *mut DH;
21610}
21611unsafe extern "C" {
21612    pub fn d2i_PrivateKey_bio(bp: *mut BIO, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21613}
21614unsafe extern "C" {
21615    pub fn i2d_X509_bio(bp: *mut BIO, x509: *const X509) -> ::core::ffi::c_int;
21616}
21617unsafe extern "C" {
21618    pub fn i2d_X509_CRL_bio(bp: *mut BIO, crl: *const X509_CRL) -> ::core::ffi::c_int;
21619}
21620unsafe extern "C" {
21621    pub fn i2d_X509_REQ_bio(bp: *mut BIO, req: *const X509_REQ) -> ::core::ffi::c_int;
21622}
21623unsafe extern "C" {
21624    pub fn i2d_RSAPrivateKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21625}
21626unsafe extern "C" {
21627    pub fn i2d_RSAPublicKey_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21628}
21629unsafe extern "C" {
21630    pub fn i2d_RSA_PUBKEY_bio(bp: *mut BIO, rsa: *const RSA) -> ::core::ffi::c_int;
21631}
21632unsafe extern "C" {
21633    pub fn i2d_DSA_PUBKEY_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21634}
21635unsafe extern "C" {
21636    pub fn i2d_DSAPrivateKey_bio(bp: *mut BIO, dsa: *const DSA) -> ::core::ffi::c_int;
21637}
21638unsafe extern "C" {
21639    pub fn i2d_EC_PUBKEY_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21640}
21641unsafe extern "C" {
21642    pub fn i2d_ECPrivateKey_bio(bp: *mut BIO, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21643}
21644unsafe extern "C" {
21645    pub fn i2d_PKCS8_bio(bp: *mut BIO, p8: *const X509_SIG) -> ::core::ffi::c_int;
21646}
21647unsafe extern "C" {
21648    pub fn i2d_PKCS8_PRIV_KEY_INFO_bio(
21649        bp: *mut BIO,
21650        p8inf: *const PKCS8_PRIV_KEY_INFO,
21651    ) -> ::core::ffi::c_int;
21652}
21653unsafe extern "C" {
21654    pub fn i2d_PrivateKey_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21655}
21656unsafe extern "C" {
21657    pub fn i2d_PUBKEY_bio(bp: *mut BIO, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21658}
21659unsafe extern "C" {
21660    pub fn i2d_DHparams_bio(bp: *mut BIO, dh: *const DH) -> ::core::ffi::c_int;
21661}
21662unsafe extern "C" {
21663    pub fn i2d_PKCS8PrivateKeyInfo_bio(bp: *mut BIO, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21664}
21665unsafe extern "C" {
21666    pub fn d2i_X509_fp(fp: *mut FILE, x509: *mut *mut X509) -> *mut X509;
21667}
21668unsafe extern "C" {
21669    pub fn d2i_X509_CRL_fp(fp: *mut FILE, crl: *mut *mut X509_CRL) -> *mut X509_CRL;
21670}
21671unsafe extern "C" {
21672    pub fn d2i_X509_REQ_fp(fp: *mut FILE, req: *mut *mut X509_REQ) -> *mut X509_REQ;
21673}
21674unsafe extern "C" {
21675    pub fn d2i_RSAPrivateKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21676}
21677unsafe extern "C" {
21678    pub fn d2i_RSAPublicKey_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21679}
21680unsafe extern "C" {
21681    pub fn d2i_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *mut *mut RSA) -> *mut RSA;
21682}
21683unsafe extern "C" {
21684    pub fn d2i_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21685}
21686unsafe extern "C" {
21687    pub fn d2i_DSAPrivateKey_fp(fp: *mut FILE, dsa: *mut *mut DSA) -> *mut DSA;
21688}
21689unsafe extern "C" {
21690    pub fn d2i_EC_PUBKEY_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21691}
21692unsafe extern "C" {
21693    pub fn d2i_ECPrivateKey_fp(fp: *mut FILE, eckey: *mut *mut EC_KEY) -> *mut EC_KEY;
21694}
21695unsafe extern "C" {
21696    pub fn d2i_PKCS8_fp(fp: *mut FILE, p8: *mut *mut X509_SIG) -> *mut X509_SIG;
21697}
21698unsafe extern "C" {
21699    pub fn d2i_PKCS8_PRIV_KEY_INFO_fp(
21700        fp: *mut FILE,
21701        p8inf: *mut *mut PKCS8_PRIV_KEY_INFO,
21702    ) -> *mut PKCS8_PRIV_KEY_INFO;
21703}
21704unsafe extern "C" {
21705    pub fn d2i_PrivateKey_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21706}
21707unsafe extern "C" {
21708    pub fn d2i_PUBKEY_fp(fp: *mut FILE, a: *mut *mut EVP_PKEY) -> *mut EVP_PKEY;
21709}
21710unsafe extern "C" {
21711    pub fn i2d_X509_fp(fp: *mut FILE, x509: *const X509) -> ::core::ffi::c_int;
21712}
21713unsafe extern "C" {
21714    pub fn i2d_X509_CRL_fp(fp: *mut FILE, crl: *const X509_CRL) -> ::core::ffi::c_int;
21715}
21716unsafe extern "C" {
21717    pub fn i2d_X509_REQ_fp(fp: *mut FILE, req: *const X509_REQ) -> ::core::ffi::c_int;
21718}
21719unsafe extern "C" {
21720    pub fn i2d_RSAPrivateKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21721}
21722unsafe extern "C" {
21723    pub fn i2d_RSAPublicKey_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21724}
21725unsafe extern "C" {
21726    pub fn i2d_RSA_PUBKEY_fp(fp: *mut FILE, rsa: *const RSA) -> ::core::ffi::c_int;
21727}
21728unsafe extern "C" {
21729    pub fn i2d_DSA_PUBKEY_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21730}
21731unsafe extern "C" {
21732    pub fn i2d_DSAPrivateKey_fp(fp: *mut FILE, dsa: *const DSA) -> ::core::ffi::c_int;
21733}
21734unsafe extern "C" {
21735    pub fn i2d_EC_PUBKEY_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21736}
21737unsafe extern "C" {
21738    pub fn i2d_ECPrivateKey_fp(fp: *mut FILE, eckey: *const EC_KEY) -> ::core::ffi::c_int;
21739}
21740unsafe extern "C" {
21741    pub fn i2d_PKCS8_fp(fp: *mut FILE, p8: *const X509_SIG) -> ::core::ffi::c_int;
21742}
21743unsafe extern "C" {
21744    pub fn i2d_PKCS8_PRIV_KEY_INFO_fp(
21745        fp: *mut FILE,
21746        p8inf: *const PKCS8_PRIV_KEY_INFO,
21747    ) -> ::core::ffi::c_int;
21748}
21749unsafe extern "C" {
21750    pub fn i2d_PKCS8PrivateKeyInfo_fp(fp: *mut FILE, key: *const EVP_PKEY) -> ::core::ffi::c_int;
21751}
21752unsafe extern "C" {
21753    pub fn i2d_PrivateKey_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21754}
21755unsafe extern "C" {
21756    pub fn i2d_PUBKEY_fp(fp: *mut FILE, pkey: *const EVP_PKEY) -> ::core::ffi::c_int;
21757}
21758unsafe extern "C" {
21759    pub fn X509_find_by_issuer_and_serial(
21760        sk: *const stack_st_X509,
21761        name: *const X509_NAME,
21762        serial: *const ASN1_INTEGER,
21763    ) -> *mut X509;
21764}
21765unsafe extern "C" {
21766    pub fn X509_find_by_subject(sk: *const stack_st_X509, name: *const X509_NAME) -> *mut X509;
21767}
21768unsafe extern "C" {
21769    pub fn X509_cmp_time(s: *const ASN1_TIME, t: *const time_t) -> ::core::ffi::c_int;
21770}
21771unsafe extern "C" {
21772    pub fn X509_cmp_time_posix(s: *const ASN1_TIME, t: i64) -> ::core::ffi::c_int;
21773}
21774unsafe extern "C" {
21775    pub fn X509_cmp_time_posix_nonstandard(s: *const ASN1_TIME, t: i64) -> ::core::ffi::c_int;
21776}
21777unsafe extern "C" {
21778    pub fn X509_cmp_current_time(s: *const ASN1_TIME) -> ::core::ffi::c_int;
21779}
21780unsafe extern "C" {
21781    pub fn X509_time_adj(
21782        s: *mut ASN1_TIME,
21783        offset_sec: ::core::ffi::c_long,
21784        t: *const time_t,
21785    ) -> *mut ASN1_TIME;
21786}
21787unsafe extern "C" {
21788    pub fn X509_time_adj_ex(
21789        s: *mut ASN1_TIME,
21790        offset_day: ::core::ffi::c_int,
21791        offset_sec: ::core::ffi::c_long,
21792        t: *const time_t,
21793    ) -> *mut ASN1_TIME;
21794}
21795unsafe extern "C" {
21796    pub fn X509_gmtime_adj(s: *mut ASN1_TIME, offset_sec: ::core::ffi::c_long) -> *mut ASN1_TIME;
21797}
21798unsafe extern "C" {
21799    pub fn X509_issuer_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21800}
21801unsafe extern "C" {
21802    pub fn X509_subject_name_cmp(a: *const X509, b: *const X509) -> ::core::ffi::c_int;
21803}
21804unsafe extern "C" {
21805    pub fn X509_CRL_cmp(a: *const X509_CRL, b: *const X509_CRL) -> ::core::ffi::c_int;
21806}
21807unsafe extern "C" {
21808    pub fn X509_issuer_name_hash(x509: *const X509) -> u32;
21809}
21810unsafe extern "C" {
21811    pub fn X509_subject_name_hash(x509: *const X509) -> u32;
21812}
21813unsafe extern "C" {
21814    pub fn X509_issuer_name_hash_old(x509: *const X509) -> u32;
21815}
21816unsafe extern "C" {
21817    pub fn X509_subject_name_hash_old(x509: *const X509) -> u32;
21818}
21819unsafe extern "C" {
21820    pub fn X509_get_ex_new_index(
21821        argl: ::core::ffi::c_long,
21822        argp: *mut ::core::ffi::c_void,
21823        unused: *mut CRYPTO_EX_unused,
21824        dup_unused: CRYPTO_EX_dup,
21825        free_func: CRYPTO_EX_free,
21826    ) -> ::core::ffi::c_int;
21827}
21828unsafe extern "C" {
21829    pub fn X509_set_ex_data(
21830        r: *mut X509,
21831        idx: ::core::ffi::c_int,
21832        arg: *mut ::core::ffi::c_void,
21833    ) -> ::core::ffi::c_int;
21834}
21835unsafe extern "C" {
21836    pub fn X509_get_ex_data(r: *mut X509, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
21837}
21838unsafe extern "C" {
21839    pub fn X509_STORE_CTX_get_ex_new_index(
21840        argl: ::core::ffi::c_long,
21841        argp: *mut ::core::ffi::c_void,
21842        unused: *mut CRYPTO_EX_unused,
21843        dup_unused: CRYPTO_EX_dup,
21844        free_func: CRYPTO_EX_free,
21845    ) -> ::core::ffi::c_int;
21846}
21847unsafe extern "C" {
21848    pub fn X509_STORE_CTX_set_ex_data(
21849        ctx: *mut X509_STORE_CTX,
21850        idx: ::core::ffi::c_int,
21851        data: *mut ::core::ffi::c_void,
21852    ) -> ::core::ffi::c_int;
21853}
21854unsafe extern "C" {
21855    pub fn X509_STORE_CTX_get_ex_data(
21856        ctx: *mut X509_STORE_CTX,
21857        idx: ::core::ffi::c_int,
21858    ) -> *mut ::core::ffi::c_void;
21859}
21860unsafe extern "C" {
21861    pub fn ASN1_digest(
21862        i2d: i2d_of_void,
21863        type_: *const EVP_MD,
21864        data: *mut ::core::ffi::c_char,
21865        md: *mut ::core::ffi::c_uchar,
21866        len: *mut ::core::ffi::c_uint,
21867    ) -> ::core::ffi::c_int;
21868}
21869unsafe extern "C" {
21870    pub fn ASN1_item_digest(
21871        it: *const ASN1_ITEM,
21872        type_: *const EVP_MD,
21873        data: *mut ::core::ffi::c_void,
21874        md: *mut ::core::ffi::c_uchar,
21875        len: *mut ::core::ffi::c_uint,
21876    ) -> ::core::ffi::c_int;
21877}
21878unsafe extern "C" {
21879    pub fn ASN1_item_verify(
21880        it: *const ASN1_ITEM,
21881        algor1: *const X509_ALGOR,
21882        signature: *const ASN1_BIT_STRING,
21883        data: *mut ::core::ffi::c_void,
21884        pkey: *mut EVP_PKEY,
21885    ) -> ::core::ffi::c_int;
21886}
21887unsafe extern "C" {
21888    pub fn ASN1_item_sign(
21889        it: *const ASN1_ITEM,
21890        algor1: *mut X509_ALGOR,
21891        algor2: *mut X509_ALGOR,
21892        signature: *mut ASN1_BIT_STRING,
21893        data: *mut ::core::ffi::c_void,
21894        pkey: *mut EVP_PKEY,
21895        type_: *const EVP_MD,
21896    ) -> ::core::ffi::c_int;
21897}
21898unsafe extern "C" {
21899    pub fn ASN1_item_sign_ctx(
21900        it: *const ASN1_ITEM,
21901        algor1: *mut X509_ALGOR,
21902        algor2: *mut X509_ALGOR,
21903        signature: *mut ASN1_BIT_STRING,
21904        asn: *mut ::core::ffi::c_void,
21905        ctx: *mut EVP_MD_CTX,
21906    ) -> ::core::ffi::c_int;
21907}
21908unsafe extern "C" {
21909    pub fn X509_supported_extension(ex: *const X509_EXTENSION) -> ::core::ffi::c_int;
21910}
21911unsafe extern "C" {
21912    pub fn X509_check_ca(x509: *const X509) -> ::core::ffi::c_int;
21913}
21914unsafe extern "C" {
21915    pub fn X509_check_issued(issuer: *const X509, subject: *const X509) -> ::core::ffi::c_int;
21916}
21917unsafe extern "C" {
21918    pub fn NAME_CONSTRAINTS_check(
21919        x509: *const X509,
21920        nc: *const NAME_CONSTRAINTS,
21921    ) -> ::core::ffi::c_int;
21922}
21923unsafe extern "C" {
21924    pub fn X509_check_host(
21925        x509: *const X509,
21926        chk: *const ::core::ffi::c_char,
21927        chklen: usize,
21928        flags: ::core::ffi::c_uint,
21929        out_peername: *mut *mut ::core::ffi::c_char,
21930    ) -> ::core::ffi::c_int;
21931}
21932unsafe extern "C" {
21933    pub fn X509_check_email(
21934        x509: *const X509,
21935        chk: *const ::core::ffi::c_char,
21936        chklen: usize,
21937        flags: ::core::ffi::c_uint,
21938    ) -> ::core::ffi::c_int;
21939}
21940unsafe extern "C" {
21941    pub fn X509_check_ip(
21942        x509: *const X509,
21943        chk: *const u8,
21944        chklen: usize,
21945        flags: ::core::ffi::c_uint,
21946    ) -> ::core::ffi::c_int;
21947}
21948unsafe extern "C" {
21949    pub fn X509_check_ip_asc(
21950        x509: *const X509,
21951        ipasc: *const ::core::ffi::c_char,
21952        flags: ::core::ffi::c_uint,
21953    ) -> ::core::ffi::c_int;
21954}
21955unsafe extern "C" {
21956    pub fn X509_STORE_CTX_get1_issuer(
21957        out_issuer: *mut *mut X509,
21958        ctx: *mut X509_STORE_CTX,
21959        x509: *const X509,
21960    ) -> ::core::ffi::c_int;
21961}
21962unsafe extern "C" {
21963    pub fn X509_check_purpose(
21964        x509: *mut X509,
21965        purpose: ::core::ffi::c_int,
21966        ca: ::core::ffi::c_int,
21967    ) -> ::core::ffi::c_int;
21968}
21969unsafe extern "C" {
21970    pub fn X509_check_trust(
21971        x509: *mut X509,
21972        id: ::core::ffi::c_int,
21973        flags: ::core::ffi::c_int,
21974    ) -> ::core::ffi::c_int;
21975}
21976unsafe extern "C" {
21977    pub fn X509_STORE_CTX_get1_certs(
21978        ctx: *mut X509_STORE_CTX,
21979        name: *const X509_NAME,
21980    ) -> *mut stack_st_X509;
21981}
21982unsafe extern "C" {
21983    pub fn X509_STORE_CTX_get1_crls(
21984        ctx: *mut X509_STORE_CTX,
21985        name: *const X509_NAME,
21986    ) -> *mut stack_st_X509_CRL;
21987}
21988unsafe extern "C" {
21989    pub fn X509_STORE_CTX_get_by_subject(
21990        ctx: *mut X509_STORE_CTX,
21991        type_: ::core::ffi::c_int,
21992        name: *const X509_NAME,
21993        ret: *mut X509_OBJECT,
21994    ) -> ::core::ffi::c_int;
21995}
21996#[repr(C)]
21997#[derive(Debug, Copy, Clone)]
21998pub struct private_key_st {
21999    pub dec_pkey: *mut EVP_PKEY,
22000}
22001#[repr(C)]
22002#[derive(Debug, Copy, Clone)]
22003pub struct X509_info_st {
22004    pub x509: *mut X509,
22005    pub crl: *mut X509_CRL,
22006    pub x_pkey: *mut X509_PKEY,
22007    pub enc_cipher: EVP_CIPHER_INFO,
22008    pub enc_len: ::core::ffi::c_int,
22009    pub enc_data: *mut ::core::ffi::c_char,
22010}
22011#[repr(C)]
22012#[derive(Debug)]
22013pub struct stack_st_X509_INFO {
22014    _unused: [u8; 0],
22015}
22016pub type sk_X509_INFO_free_func =
22017    ::core::option::Option<unsafe extern "C" fn(arg1: *mut X509_INFO)>;
22018pub type sk_X509_INFO_copy_func =
22019    ::core::option::Option<unsafe extern "C" fn(arg1: *const X509_INFO) -> *mut X509_INFO>;
22020pub type sk_X509_INFO_cmp_func = ::core::option::Option<
22021    unsafe extern "C" fn(
22022        arg1: *const *const X509_INFO,
22023        arg2: *const *const X509_INFO,
22024    ) -> ::core::ffi::c_int,
22025>;
22026pub type sk_X509_INFO_delete_if_func = ::core::option::Option<
22027    unsafe extern "C" fn(
22028        arg1: *mut X509_INFO,
22029        arg2: *mut ::core::ffi::c_void,
22030    ) -> ::core::ffi::c_int,
22031>;
22032unsafe extern "C" {
22033    #[link_name = "sk_X509_INFO_call_free_func__extern"]
22034    pub fn sk_X509_INFO_call_free_func(
22035        free_func: OPENSSL_sk_free_func,
22036        ptr: *mut ::core::ffi::c_void,
22037    );
22038}
22039unsafe extern "C" {
22040    #[link_name = "sk_X509_INFO_call_copy_func__extern"]
22041    pub fn sk_X509_INFO_call_copy_func(
22042        copy_func: OPENSSL_sk_copy_func,
22043        ptr: *const ::core::ffi::c_void,
22044    ) -> *mut ::core::ffi::c_void;
22045}
22046unsafe extern "C" {
22047    #[link_name = "sk_X509_INFO_call_cmp_func__extern"]
22048    pub fn sk_X509_INFO_call_cmp_func(
22049        cmp_func: OPENSSL_sk_cmp_func,
22050        a: *const ::core::ffi::c_void,
22051        b: *const ::core::ffi::c_void,
22052    ) -> ::core::ffi::c_int;
22053}
22054unsafe extern "C" {
22055    #[link_name = "sk_X509_INFO_call_delete_if_func__extern"]
22056    pub fn sk_X509_INFO_call_delete_if_func(
22057        func: OPENSSL_sk_delete_if_func,
22058        obj: *mut ::core::ffi::c_void,
22059        data: *mut ::core::ffi::c_void,
22060    ) -> ::core::ffi::c_int;
22061}
22062unsafe extern "C" {
22063    #[link_name = "sk_X509_INFO_new__extern"]
22064    pub fn sk_X509_INFO_new(comp: sk_X509_INFO_cmp_func) -> *mut stack_st_X509_INFO;
22065}
22066unsafe extern "C" {
22067    #[link_name = "sk_X509_INFO_new_null__extern"]
22068    pub fn sk_X509_INFO_new_null() -> *mut stack_st_X509_INFO;
22069}
22070unsafe extern "C" {
22071    #[link_name = "sk_X509_INFO_num__extern"]
22072    pub fn sk_X509_INFO_num(sk: *const stack_st_X509_INFO) -> usize;
22073}
22074unsafe extern "C" {
22075    #[link_name = "sk_X509_INFO_zero__extern"]
22076    pub fn sk_X509_INFO_zero(sk: *mut stack_st_X509_INFO);
22077}
22078unsafe extern "C" {
22079    #[link_name = "sk_X509_INFO_value__extern"]
22080    pub fn sk_X509_INFO_value(sk: *const stack_st_X509_INFO, i: usize) -> *mut X509_INFO;
22081}
22082unsafe extern "C" {
22083    #[link_name = "sk_X509_INFO_set__extern"]
22084    pub fn sk_X509_INFO_set(
22085        sk: *mut stack_st_X509_INFO,
22086        i: usize,
22087        p: *mut X509_INFO,
22088    ) -> *mut X509_INFO;
22089}
22090unsafe extern "C" {
22091    #[link_name = "sk_X509_INFO_free__extern"]
22092    pub fn sk_X509_INFO_free(sk: *mut stack_st_X509_INFO);
22093}
22094unsafe extern "C" {
22095    #[link_name = "sk_X509_INFO_pop_free__extern"]
22096    pub fn sk_X509_INFO_pop_free(sk: *mut stack_st_X509_INFO, free_func: sk_X509_INFO_free_func);
22097}
22098unsafe extern "C" {
22099    #[link_name = "sk_X509_INFO_insert__extern"]
22100    pub fn sk_X509_INFO_insert(
22101        sk: *mut stack_st_X509_INFO,
22102        p: *mut X509_INFO,
22103        where_: usize,
22104    ) -> usize;
22105}
22106unsafe extern "C" {
22107    #[link_name = "sk_X509_INFO_delete__extern"]
22108    pub fn sk_X509_INFO_delete(sk: *mut stack_st_X509_INFO, where_: usize) -> *mut X509_INFO;
22109}
22110unsafe extern "C" {
22111    #[link_name = "sk_X509_INFO_delete_ptr__extern"]
22112    pub fn sk_X509_INFO_delete_ptr(
22113        sk: *mut stack_st_X509_INFO,
22114        p: *const X509_INFO,
22115    ) -> *mut X509_INFO;
22116}
22117unsafe extern "C" {
22118    #[link_name = "sk_X509_INFO_delete_if__extern"]
22119    pub fn sk_X509_INFO_delete_if(
22120        sk: *mut stack_st_X509_INFO,
22121        func: sk_X509_INFO_delete_if_func,
22122        data: *mut ::core::ffi::c_void,
22123    );
22124}
22125unsafe extern "C" {
22126    #[link_name = "sk_X509_INFO_find__extern"]
22127    pub fn sk_X509_INFO_find(
22128        sk: *const stack_st_X509_INFO,
22129        out_index: *mut usize,
22130        p: *const X509_INFO,
22131    ) -> ::core::ffi::c_int;
22132}
22133unsafe extern "C" {
22134    #[link_name = "sk_X509_INFO_shift__extern"]
22135    pub fn sk_X509_INFO_shift(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22136}
22137unsafe extern "C" {
22138    #[link_name = "sk_X509_INFO_push__extern"]
22139    pub fn sk_X509_INFO_push(sk: *mut stack_st_X509_INFO, p: *mut X509_INFO) -> usize;
22140}
22141unsafe extern "C" {
22142    #[link_name = "sk_X509_INFO_pop__extern"]
22143    pub fn sk_X509_INFO_pop(sk: *mut stack_st_X509_INFO) -> *mut X509_INFO;
22144}
22145unsafe extern "C" {
22146    #[link_name = "sk_X509_INFO_dup__extern"]
22147    pub fn sk_X509_INFO_dup(sk: *const stack_st_X509_INFO) -> *mut stack_st_X509_INFO;
22148}
22149unsafe extern "C" {
22150    #[link_name = "sk_X509_INFO_sort__extern"]
22151    pub fn sk_X509_INFO_sort(sk: *mut stack_st_X509_INFO);
22152}
22153unsafe extern "C" {
22154    #[link_name = "sk_X509_INFO_sort_and_dedup__extern"]
22155    pub fn sk_X509_INFO_sort_and_dedup(
22156        sk: *mut stack_st_X509_INFO,
22157        free_func: sk_X509_INFO_free_func,
22158    );
22159}
22160unsafe extern "C" {
22161    #[link_name = "sk_X509_INFO_is_sorted__extern"]
22162    pub fn sk_X509_INFO_is_sorted(sk: *const stack_st_X509_INFO) -> ::core::ffi::c_int;
22163}
22164unsafe extern "C" {
22165    #[link_name = "sk_X509_INFO_set_cmp_func__extern"]
22166    pub fn sk_X509_INFO_set_cmp_func(
22167        sk: *mut stack_st_X509_INFO,
22168        comp: sk_X509_INFO_cmp_func,
22169    ) -> sk_X509_INFO_cmp_func;
22170}
22171unsafe extern "C" {
22172    #[link_name = "sk_X509_INFO_deep_copy__extern"]
22173    pub fn sk_X509_INFO_deep_copy(
22174        sk: *const stack_st_X509_INFO,
22175        copy_func: sk_X509_INFO_copy_func,
22176        free_func: sk_X509_INFO_free_func,
22177    ) -> *mut stack_st_X509_INFO;
22178}
22179unsafe extern "C" {
22180    pub fn X509_INFO_free(info: *mut X509_INFO);
22181}
22182pub type X509V3_EXT_NEW =
22183    ::core::option::Option<unsafe extern "C" fn() -> *mut ::core::ffi::c_void>;
22184pub type X509V3_EXT_FREE =
22185    ::core::option::Option<unsafe extern "C" fn(ext: *mut ::core::ffi::c_void)>;
22186pub type X509V3_EXT_D2I = ::core::option::Option<
22187    unsafe extern "C" fn(
22188        ext: *mut ::core::ffi::c_void,
22189        inp: *mut *const u8,
22190        len: ::core::ffi::c_long,
22191    ) -> *mut ::core::ffi::c_void,
22192>;
22193pub type X509V3_EXT_I2D = ::core::option::Option<
22194    unsafe extern "C" fn(ext: *mut ::core::ffi::c_void, outp: *mut *mut u8) -> ::core::ffi::c_int,
22195>;
22196pub type X509V3_EXT_I2V = ::core::option::Option<
22197    unsafe extern "C" fn(
22198        method: *const X509V3_EXT_METHOD,
22199        ext: *mut ::core::ffi::c_void,
22200        extlist: *mut stack_st_CONF_VALUE,
22201    ) -> *mut stack_st_CONF_VALUE,
22202>;
22203pub type X509V3_EXT_V2I = ::core::option::Option<
22204    unsafe extern "C" fn(
22205        method: *const X509V3_EXT_METHOD,
22206        ctx: *const X509V3_CTX,
22207        values: *const stack_st_CONF_VALUE,
22208    ) -> *mut ::core::ffi::c_void,
22209>;
22210pub type X509V3_EXT_I2S = ::core::option::Option<
22211    unsafe extern "C" fn(
22212        method: *const X509V3_EXT_METHOD,
22213        ext: *mut ::core::ffi::c_void,
22214    ) -> *mut ::core::ffi::c_char,
22215>;
22216pub type X509V3_EXT_S2I = ::core::option::Option<
22217    unsafe extern "C" fn(
22218        method: *const X509V3_EXT_METHOD,
22219        ctx: *const X509V3_CTX,
22220        str_: *const ::core::ffi::c_char,
22221    ) -> *mut ::core::ffi::c_void,
22222>;
22223pub type X509V3_EXT_I2R = ::core::option::Option<
22224    unsafe extern "C" fn(
22225        method: *const X509V3_EXT_METHOD,
22226        ext: *mut ::core::ffi::c_void,
22227        out: *mut BIO,
22228        indent: ::core::ffi::c_int,
22229    ) -> ::core::ffi::c_int,
22230>;
22231pub type X509V3_EXT_R2I = ::core::option::Option<
22232    unsafe extern "C" fn(
22233        method: *const X509V3_EXT_METHOD,
22234        ctx: *const X509V3_CTX,
22235        str_: *const ::core::ffi::c_char,
22236    ) -> *mut ::core::ffi::c_void,
22237>;
22238#[repr(C)]
22239#[derive(Debug, Copy, Clone)]
22240pub struct v3_ext_method {
22241    pub ext_nid: ::core::ffi::c_int,
22242    pub ext_flags: ::core::ffi::c_int,
22243    pub it: *const ASN1_ITEM_st,
22244    pub ext_new: X509V3_EXT_NEW,
22245    pub ext_free: X509V3_EXT_FREE,
22246    pub d2i: X509V3_EXT_D2I,
22247    pub i2d: X509V3_EXT_I2D,
22248    pub i2s: X509V3_EXT_I2S,
22249    pub s2i: X509V3_EXT_S2I,
22250    pub i2v: X509V3_EXT_I2V,
22251    pub v2i: X509V3_EXT_V2I,
22252    pub i2r: X509V3_EXT_I2R,
22253    pub r2i: X509V3_EXT_R2I,
22254    pub usr_data: *mut ::core::ffi::c_void,
22255}
22256unsafe extern "C" {
22257    pub fn X509V3_EXT_get(ext: *const X509_EXTENSION) -> *const X509V3_EXT_METHOD;
22258}
22259unsafe extern "C" {
22260    pub fn X509V3_EXT_get_nid(nid: ::core::ffi::c_int) -> *const X509V3_EXT_METHOD;
22261}
22262unsafe extern "C" {
22263    pub fn X509V3_EXT_add(ext: *mut X509V3_EXT_METHOD) -> ::core::ffi::c_int;
22264}
22265unsafe extern "C" {
22266    pub fn X509V3_EXT_add_alias(
22267        nid_to: ::core::ffi::c_int,
22268        nid_from: ::core::ffi::c_int,
22269    ) -> ::core::ffi::c_int;
22270}
22271#[repr(C)]
22272#[derive(Debug, Copy, Clone)]
22273pub struct v3_ext_ctx {
22274    pub flags: ::core::ffi::c_int,
22275    pub issuer_cert: *const X509,
22276    pub subject_cert: *const X509,
22277    pub subject_req: *const X509_REQ,
22278    pub crl: *const X509_CRL,
22279    pub db: *const CONF,
22280}
22281unsafe extern "C" {
22282    pub fn X509V3_set_ctx(
22283        ctx: *mut X509V3_CTX,
22284        issuer: *const X509,
22285        subject: *const X509,
22286        req: *const X509_REQ,
22287        crl: *const X509_CRL,
22288        flags: ::core::ffi::c_int,
22289    );
22290}
22291unsafe extern "C" {
22292    pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *const CONF);
22293}
22294unsafe extern "C" {
22295    pub fn X509V3_EXT_nconf(
22296        conf: *const CONF,
22297        ctx: *const X509V3_CTX,
22298        name: *const ::core::ffi::c_char,
22299        value: *const ::core::ffi::c_char,
22300    ) -> *mut X509_EXTENSION;
22301}
22302unsafe extern "C" {
22303    pub fn X509V3_EXT_nconf_nid(
22304        conf: *const CONF,
22305        ctx: *const X509V3_CTX,
22306        ext_nid: ::core::ffi::c_int,
22307        value: *const ::core::ffi::c_char,
22308    ) -> *mut X509_EXTENSION;
22309}
22310unsafe extern "C" {
22311    pub fn X509V3_EXT_conf_nid(
22312        conf: *mut CRYPTO_MUST_BE_NULL,
22313        ctx: *const X509V3_CTX,
22314        ext_nid: ::core::ffi::c_int,
22315        value: *const ::core::ffi::c_char,
22316    ) -> *mut X509_EXTENSION;
22317}
22318unsafe extern "C" {
22319    pub fn X509V3_EXT_add_nconf_sk(
22320        conf: *const CONF,
22321        ctx: *const X509V3_CTX,
22322        section: *const ::core::ffi::c_char,
22323        sk: *mut *mut stack_st_X509_EXTENSION,
22324    ) -> ::core::ffi::c_int;
22325}
22326unsafe extern "C" {
22327    pub fn X509V3_EXT_add_nconf(
22328        conf: *const CONF,
22329        ctx: *const X509V3_CTX,
22330        section: *const ::core::ffi::c_char,
22331        cert: *mut X509,
22332    ) -> ::core::ffi::c_int;
22333}
22334unsafe extern "C" {
22335    pub fn X509V3_EXT_REQ_add_nconf(
22336        conf: *const CONF,
22337        ctx: *const X509V3_CTX,
22338        section: *const ::core::ffi::c_char,
22339        req: *mut X509_REQ,
22340    ) -> ::core::ffi::c_int;
22341}
22342unsafe extern "C" {
22343    pub fn X509V3_EXT_CRL_add_nconf(
22344        conf: *const CONF,
22345        ctx: *const X509V3_CTX,
22346        section: *const ::core::ffi::c_char,
22347        crl: *mut X509_CRL,
22348    ) -> ::core::ffi::c_int;
22349}
22350unsafe extern "C" {
22351    pub fn i2s_ASN1_OCTET_STRING(
22352        method: *const X509V3_EXT_METHOD,
22353        oct: *const ASN1_OCTET_STRING,
22354    ) -> *mut ::core::ffi::c_char;
22355}
22356unsafe extern "C" {
22357    pub fn s2i_ASN1_OCTET_STRING(
22358        method: *const X509V3_EXT_METHOD,
22359        ctx: *const X509V3_CTX,
22360        str_: *const ::core::ffi::c_char,
22361    ) -> *mut ASN1_OCTET_STRING;
22362}
22363unsafe extern "C" {
22364    pub fn i2s_ASN1_INTEGER(
22365        method: *const X509V3_EXT_METHOD,
22366        aint: *const ASN1_INTEGER,
22367    ) -> *mut ::core::ffi::c_char;
22368}
22369unsafe extern "C" {
22370    pub fn s2i_ASN1_INTEGER(
22371        method: *const X509V3_EXT_METHOD,
22372        value: *const ::core::ffi::c_char,
22373    ) -> *mut ASN1_INTEGER;
22374}
22375unsafe extern "C" {
22376    pub fn i2s_ASN1_ENUMERATED(
22377        method: *const X509V3_EXT_METHOD,
22378        aint: *const ASN1_ENUMERATED,
22379    ) -> *mut ::core::ffi::c_char;
22380}
22381unsafe extern "C" {
22382    pub fn X509V3_conf_free(val: *mut CONF_VALUE);
22383}
22384unsafe extern "C" {
22385    pub fn i2v_GENERAL_NAME(
22386        method: *const X509V3_EXT_METHOD,
22387        gen_: *const GENERAL_NAME,
22388        ret: *mut stack_st_CONF_VALUE,
22389    ) -> *mut stack_st_CONF_VALUE;
22390}
22391unsafe extern "C" {
22392    pub fn i2v_GENERAL_NAMES(
22393        method: *const X509V3_EXT_METHOD,
22394        gen_: *const GENERAL_NAMES,
22395        extlist: *mut stack_st_CONF_VALUE,
22396    ) -> *mut stack_st_CONF_VALUE;
22397}
22398unsafe extern "C" {
22399    pub fn a2i_IPADDRESS(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22400}
22401unsafe extern "C" {
22402    pub fn a2i_IPADDRESS_NC(ipasc: *const ::core::ffi::c_char) -> *mut ASN1_OCTET_STRING;
22403}
22404unsafe extern "C" {
22405    pub fn X509_get_notBefore(x509: *const X509) -> *mut ASN1_TIME;
22406}
22407unsafe extern "C" {
22408    pub fn X509_get_notAfter(x509: *const X509) -> *mut ASN1_TIME;
22409}
22410unsafe extern "C" {
22411    pub fn X509_set_notBefore(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22412}
22413unsafe extern "C" {
22414    pub fn X509_set_notAfter(x509: *mut X509, tm: *const ASN1_TIME) -> ::core::ffi::c_int;
22415}
22416unsafe extern "C" {
22417    pub fn X509_CRL_get_lastUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22418}
22419unsafe extern "C" {
22420    pub fn X509_CRL_get_nextUpdate(crl: *mut X509_CRL) -> *mut ASN1_TIME;
22421}
22422unsafe extern "C" {
22423    pub fn X509_get_serialNumber(x509: *mut X509) -> *mut ASN1_INTEGER;
22424}
22425unsafe extern "C" {
22426    pub fn X509_NAME_get_text_by_OBJ(
22427        name: *const X509_NAME,
22428        obj: *const ASN1_OBJECT,
22429        buf: *mut ::core::ffi::c_char,
22430        len: ::core::ffi::c_int,
22431    ) -> ::core::ffi::c_int;
22432}
22433unsafe extern "C" {
22434    pub fn X509_NAME_get_text_by_NID(
22435        name: *const X509_NAME,
22436        nid: ::core::ffi::c_int,
22437        buf: *mut ::core::ffi::c_char,
22438        len: ::core::ffi::c_int,
22439    ) -> ::core::ffi::c_int;
22440}
22441unsafe extern "C" {
22442    pub fn X509_STORE_CTX_get0_parent_ctx(ctx: *const X509_STORE_CTX) -> *mut X509_STORE_CTX;
22443}
22444unsafe extern "C" {
22445    pub fn X509_OBJECT_free_contents(obj: *mut X509_OBJECT);
22446}
22447unsafe extern "C" {
22448    pub fn X509_LOOKUP_free(ctx: *mut X509_LOOKUP);
22449}
22450unsafe extern "C" {
22451    pub fn X509_STORE_CTX_cleanup(ctx: *mut X509_STORE_CTX);
22452}
22453unsafe extern "C" {
22454    pub fn X509V3_add_standard_extensions() -> ::core::ffi::c_int;
22455}
22456unsafe extern "C" {
22457    pub fn X509_STORE_CTX_get_chain(ctx: *const X509_STORE_CTX) -> *mut stack_st_X509;
22458}
22459unsafe extern "C" {
22460    pub fn X509_STORE_CTX_trusted_stack(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22461}
22462pub type X509_STORE_CTX_verify_cb = ::core::option::Option<
22463    unsafe extern "C" fn(arg1: ::core::ffi::c_int, arg2: *mut X509_STORE_CTX) -> ::core::ffi::c_int,
22464>;
22465unsafe extern "C" {
22466    pub fn X509_STORE_CTX_set_verify_cb(
22467        ctx: *mut X509_STORE_CTX,
22468        verify_cb: ::core::option::Option<
22469            unsafe extern "C" fn(
22470                ok: ::core::ffi::c_int,
22471                ctx: *mut X509_STORE_CTX,
22472            ) -> ::core::ffi::c_int,
22473        >,
22474    );
22475}
22476unsafe extern "C" {
22477    pub fn X509_STORE_set_verify_cb(store: *mut X509_STORE, verify_cb: X509_STORE_CTX_verify_cb);
22478}
22479unsafe extern "C" {
22480    pub fn X509_STORE_CTX_set_chain(ctx: *mut X509_STORE_CTX, sk: *mut stack_st_X509);
22481}
22482unsafe extern "C" {
22483    pub fn X509_STORE_get0_objects(store: *mut X509_STORE) -> *mut stack_st_X509_OBJECT;
22484}
22485unsafe extern "C" {
22486    pub fn X509_PURPOSE_get_by_sname(sname: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
22487}
22488unsafe extern "C" {
22489    pub fn X509_PURPOSE_get0(id: ::core::ffi::c_int) -> *const X509_PURPOSE;
22490}
22491unsafe extern "C" {
22492    pub fn X509_PURPOSE_get_id(purpose: *const X509_PURPOSE) -> ::core::ffi::c_int;
22493}
22494#[repr(C)]
22495#[derive(Debug, Copy, Clone)]
22496pub struct X509_algor_st {
22497    pub algorithm: *mut ASN1_OBJECT,
22498    pub parameter: *mut ASN1_TYPE,
22499}
22500pub type pem_password_cb = ::core::option::Option<
22501    unsafe extern "C" fn(
22502        out: *mut ::core::ffi::c_char,
22503        max_out: ::core::ffi::c_int,
22504        enc: ::core::ffi::c_int,
22505        userdata: *mut ::core::ffi::c_void,
22506    ) -> ::core::ffi::c_int,
22507>;
22508unsafe extern "C" {
22509    pub fn PEM_def_callback(
22510        buf: *mut ::core::ffi::c_char,
22511        size: ::core::ffi::c_int,
22512        enc: ::core::ffi::c_int,
22513        userdata: *mut ::core::ffi::c_void,
22514    ) -> ::core::ffi::c_int;
22515}
22516unsafe extern "C" {
22517    pub fn PEM_read_bio_X509(
22518        bio: *mut BIO,
22519        out: *mut *mut X509,
22520        cb: pem_password_cb,
22521        userdata: *mut ::core::ffi::c_void,
22522    ) -> *mut X509;
22523}
22524unsafe extern "C" {
22525    pub fn PEM_write_bio_X509(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22526}
22527unsafe extern "C" {
22528    pub fn PEM_read_bio_X509_AUX(
22529        bio: *mut BIO,
22530        out: *mut *mut X509,
22531        cb: pem_password_cb,
22532        userdata: *mut ::core::ffi::c_void,
22533    ) -> *mut X509;
22534}
22535unsafe extern "C" {
22536    pub fn PEM_write_bio_X509_AUX(bio: *mut BIO, in_: *const X509) -> ::core::ffi::c_int;
22537}
22538unsafe extern "C" {
22539    pub fn PEM_read_bio_X509_CRL(
22540        bio: *mut BIO,
22541        out: *mut *mut X509_CRL,
22542        cb: pem_password_cb,
22543        userdata: *mut ::core::ffi::c_void,
22544    ) -> *mut X509_CRL;
22545}
22546unsafe extern "C" {
22547    pub fn PEM_write_bio_X509_CRL(bio: *mut BIO, in_: *const X509_CRL) -> ::core::ffi::c_int;
22548}
22549unsafe extern "C" {
22550    pub fn PEM_read_bio_X509_REQ(
22551        bio: *mut BIO,
22552        out: *mut *mut X509_REQ,
22553        cb: pem_password_cb,
22554        userdata: *mut ::core::ffi::c_void,
22555    ) -> *mut X509_REQ;
22556}
22557unsafe extern "C" {
22558    pub fn PEM_write_bio_X509_REQ(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22559}
22560unsafe extern "C" {
22561    pub fn PEM_write_bio_X509_REQ_NEW(bio: *mut BIO, in_: *const X509_REQ) -> ::core::ffi::c_int;
22562}
22563unsafe extern "C" {
22564    pub fn PEM_read_bio_PKCS7(
22565        bio: *mut BIO,
22566        out: *mut *mut PKCS7,
22567        cb: pem_password_cb,
22568        userdata: *mut ::core::ffi::c_void,
22569    ) -> *mut PKCS7;
22570}
22571unsafe extern "C" {
22572    pub fn PEM_write_bio_PKCS7(bio: *mut BIO, in_: *const PKCS7) -> ::core::ffi::c_int;
22573}
22574unsafe extern "C" {
22575    pub fn PEM_X509_INFO_read_bio(
22576        bio: *mut BIO,
22577        sk: *mut stack_st_X509_INFO,
22578        cb: pem_password_cb,
22579        userdata: *mut ::core::ffi::c_void,
22580    ) -> *mut stack_st_X509_INFO;
22581}
22582unsafe extern "C" {
22583    pub fn PEM_read_bio_PrivateKey(
22584        bio: *mut BIO,
22585        out: *mut *mut EVP_PKEY,
22586        cb: pem_password_cb,
22587        userdata: *mut ::core::ffi::c_void,
22588    ) -> *mut EVP_PKEY;
22589}
22590unsafe extern "C" {
22591    pub fn PEM_write_bio_PrivateKey(
22592        bio: *mut BIO,
22593        in_: *const EVP_PKEY,
22594        enc: *const EVP_CIPHER,
22595        pass: *const u8,
22596        pass_len: ::core::ffi::c_int,
22597        cb: pem_password_cb,
22598        userdata: *mut ::core::ffi::c_void,
22599    ) -> ::core::ffi::c_int;
22600}
22601unsafe extern "C" {
22602    pub fn PEM_read_bio_PUBKEY(
22603        bio: *mut BIO,
22604        out: *mut *mut EVP_PKEY,
22605        cb: pem_password_cb,
22606        userdata: *mut ::core::ffi::c_void,
22607    ) -> *mut EVP_PKEY;
22608}
22609unsafe extern "C" {
22610    pub fn PEM_write_bio_PUBKEY(bio: *mut BIO, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
22611}
22612unsafe extern "C" {
22613    pub fn PEM_write_bio_PKCS8PrivateKey_nid(
22614        bio: *mut BIO,
22615        in_: *const EVP_PKEY,
22616        nid: ::core::ffi::c_int,
22617        pass: *const ::core::ffi::c_char,
22618        pass_len: ::core::ffi::c_int,
22619        cb: pem_password_cb,
22620        userdata: *mut ::core::ffi::c_void,
22621    ) -> ::core::ffi::c_int;
22622}
22623unsafe extern "C" {
22624    pub fn PEM_write_bio_PKCS8PrivateKey(
22625        bio: *mut BIO,
22626        in_: *const EVP_PKEY,
22627        enc: *const EVP_CIPHER,
22628        pass: *const ::core::ffi::c_char,
22629        pass_len: ::core::ffi::c_int,
22630        cb: pem_password_cb,
22631        userdata: *mut ::core::ffi::c_void,
22632    ) -> ::core::ffi::c_int;
22633}
22634unsafe extern "C" {
22635    pub fn PEM_write_PKCS8PrivateKey_nid(
22636        fp: *mut FILE,
22637        in_: *const EVP_PKEY,
22638        nid: ::core::ffi::c_int,
22639        pass: *const ::core::ffi::c_char,
22640        pass_len: ::core::ffi::c_int,
22641        cb: pem_password_cb,
22642        userdata: *mut ::core::ffi::c_void,
22643    ) -> ::core::ffi::c_int;
22644}
22645unsafe extern "C" {
22646    pub fn PEM_write_PKCS8PrivateKey(
22647        fp: *mut FILE,
22648        in_: *const EVP_PKEY,
22649        enc: *const EVP_CIPHER,
22650        pass: *const ::core::ffi::c_char,
22651        pass_len: ::core::ffi::c_int,
22652        cb: pem_password_cb,
22653        userdata: *mut ::core::ffi::c_void,
22654    ) -> ::core::ffi::c_int;
22655}
22656unsafe extern "C" {
22657    pub fn PEM_read_bio_PKCS8(
22658        bio: *mut BIO,
22659        out: *mut *mut X509_SIG,
22660        cb: pem_password_cb,
22661        userdata: *mut ::core::ffi::c_void,
22662    ) -> *mut X509_SIG;
22663}
22664unsafe extern "C" {
22665    pub fn PEM_write_bio_PKCS8(bio: *mut BIO, in_: *const X509_SIG) -> ::core::ffi::c_int;
22666}
22667unsafe extern "C" {
22668    pub fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(
22669        bio: *mut BIO,
22670        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22671        cb: pem_password_cb,
22672        userdata: *mut ::core::ffi::c_void,
22673    ) -> *mut PKCS8_PRIV_KEY_INFO;
22674}
22675unsafe extern "C" {
22676    pub fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(
22677        bio: *mut BIO,
22678        in_: *const PKCS8_PRIV_KEY_INFO,
22679    ) -> ::core::ffi::c_int;
22680}
22681unsafe extern "C" {
22682    pub fn PEM_read_bio_RSAPrivateKey(
22683        bio: *mut BIO,
22684        out: *mut *mut RSA,
22685        cb: pem_password_cb,
22686        userdata: *mut ::core::ffi::c_void,
22687    ) -> *mut RSA;
22688}
22689unsafe extern "C" {
22690    pub fn PEM_write_bio_RSAPrivateKey(
22691        bio: *mut BIO,
22692        in_: *const RSA,
22693        enc: *const EVP_CIPHER,
22694        pass: *const u8,
22695        pass_len: ::core::ffi::c_int,
22696        cb: pem_password_cb,
22697        userdata: *mut ::core::ffi::c_void,
22698    ) -> ::core::ffi::c_int;
22699}
22700unsafe extern "C" {
22701    pub fn PEM_read_bio_RSAPublicKey(
22702        bio: *mut BIO,
22703        out: *mut *mut RSA,
22704        cb: pem_password_cb,
22705        userdata: *mut ::core::ffi::c_void,
22706    ) -> *mut RSA;
22707}
22708unsafe extern "C" {
22709    pub fn PEM_write_bio_RSAPublicKey(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22710}
22711unsafe extern "C" {
22712    pub fn PEM_read_bio_RSA_PUBKEY(
22713        bio: *mut BIO,
22714        out: *mut *mut RSA,
22715        cb: pem_password_cb,
22716        userdata: *mut ::core::ffi::c_void,
22717    ) -> *mut RSA;
22718}
22719unsafe extern "C" {
22720    pub fn PEM_write_bio_RSA_PUBKEY(bio: *mut BIO, in_: *const RSA) -> ::core::ffi::c_int;
22721}
22722unsafe extern "C" {
22723    pub fn PEM_read_bio_DSAPrivateKey(
22724        bio: *mut BIO,
22725        out: *mut *mut DSA,
22726        cb: pem_password_cb,
22727        userdata: *mut ::core::ffi::c_void,
22728    ) -> *mut DSA;
22729}
22730unsafe extern "C" {
22731    pub fn PEM_write_bio_DSAPrivateKey(
22732        bio: *mut BIO,
22733        in_: *const DSA,
22734        enc: *const EVP_CIPHER,
22735        pass: *const u8,
22736        pass_len: ::core::ffi::c_int,
22737        cb: pem_password_cb,
22738        userdata: *mut ::core::ffi::c_void,
22739    ) -> ::core::ffi::c_int;
22740}
22741unsafe extern "C" {
22742    pub fn PEM_read_bio_DSA_PUBKEY(
22743        bio: *mut BIO,
22744        out: *mut *mut DSA,
22745        cb: pem_password_cb,
22746        userdata: *mut ::core::ffi::c_void,
22747    ) -> *mut DSA;
22748}
22749unsafe extern "C" {
22750    pub fn PEM_write_bio_DSA_PUBKEY(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22751}
22752unsafe extern "C" {
22753    pub fn PEM_read_bio_DSAparams(
22754        bio: *mut BIO,
22755        out: *mut *mut DSA,
22756        cb: pem_password_cb,
22757        userdata: *mut ::core::ffi::c_void,
22758    ) -> *mut DSA;
22759}
22760unsafe extern "C" {
22761    pub fn PEM_write_bio_DSAparams(bio: *mut BIO, in_: *const DSA) -> ::core::ffi::c_int;
22762}
22763unsafe extern "C" {
22764    pub fn PEM_read_bio_ECPrivateKey(
22765        bio: *mut BIO,
22766        out: *mut *mut EC_KEY,
22767        cb: pem_password_cb,
22768        userdata: *mut ::core::ffi::c_void,
22769    ) -> *mut EC_KEY;
22770}
22771unsafe extern "C" {
22772    pub fn PEM_write_bio_ECPrivateKey(
22773        bio: *mut BIO,
22774        in_: *const EC_KEY,
22775        enc: *const EVP_CIPHER,
22776        pass: *const u8,
22777        pass_len: ::core::ffi::c_int,
22778        cb: pem_password_cb,
22779        userdata: *mut ::core::ffi::c_void,
22780    ) -> ::core::ffi::c_int;
22781}
22782unsafe extern "C" {
22783    pub fn PEM_read_bio_EC_PUBKEY(
22784        bio: *mut BIO,
22785        out: *mut *mut EC_KEY,
22786        cb: pem_password_cb,
22787        userdata: *mut ::core::ffi::c_void,
22788    ) -> *mut EC_KEY;
22789}
22790unsafe extern "C" {
22791    pub fn PEM_write_bio_EC_PUBKEY(bio: *mut BIO, in_: *const EC_KEY) -> ::core::ffi::c_int;
22792}
22793unsafe extern "C" {
22794    pub fn PEM_read_bio_DHparams(
22795        bio: *mut BIO,
22796        out: *mut *mut DH,
22797        cb: pem_password_cb,
22798        userdata: *mut ::core::ffi::c_void,
22799    ) -> *mut DH;
22800}
22801unsafe extern "C" {
22802    pub fn PEM_write_bio_DHparams(bio: *mut BIO, in_: *const DH) -> ::core::ffi::c_int;
22803}
22804unsafe extern "C" {
22805    pub fn PEM_read_X509(
22806        fp: *mut FILE,
22807        out: *mut *mut X509,
22808        cb: pem_password_cb,
22809        userdata: *mut ::core::ffi::c_void,
22810    ) -> *mut X509;
22811}
22812unsafe extern "C" {
22813    pub fn PEM_read_X509_CRL(
22814        fp: *mut FILE,
22815        out: *mut *mut X509_CRL,
22816        cb: pem_password_cb,
22817        userdata: *mut ::core::ffi::c_void,
22818    ) -> *mut X509_CRL;
22819}
22820unsafe extern "C" {
22821    pub fn PEM_read_X509_AUX(
22822        fp: *mut FILE,
22823        out: *mut *mut X509,
22824        cb: pem_password_cb,
22825        userdata: *mut ::core::ffi::c_void,
22826    ) -> *mut X509;
22827}
22828unsafe extern "C" {
22829    pub fn PEM_X509_INFO_read(
22830        fp: *mut FILE,
22831        sk: *mut stack_st_X509_INFO,
22832        cb: pem_password_cb,
22833        userdata: *mut ::core::ffi::c_void,
22834    ) -> *mut stack_st_X509_INFO;
22835}
22836unsafe extern "C" {
22837    pub fn PEM_read_X509_REQ(
22838        fp: *mut FILE,
22839        out: *mut *mut X509_REQ,
22840        cb: pem_password_cb,
22841        userdata: *mut ::core::ffi::c_void,
22842    ) -> *mut X509_REQ;
22843}
22844unsafe extern "C" {
22845    pub fn PEM_read_PKCS7(
22846        fp: *mut FILE,
22847        out: *mut *mut PKCS7,
22848        cb: pem_password_cb,
22849        userdata: *mut ::core::ffi::c_void,
22850    ) -> *mut PKCS7;
22851}
22852unsafe extern "C" {
22853    pub fn PEM_read_PKCS8(
22854        fp: *mut FILE,
22855        out: *mut *mut X509_SIG,
22856        cb: pem_password_cb,
22857        userdata: *mut ::core::ffi::c_void,
22858    ) -> *mut X509_SIG;
22859}
22860unsafe extern "C" {
22861    pub fn PEM_read_PKCS8_PRIV_KEY_INFO(
22862        fp: *mut FILE,
22863        out: *mut *mut PKCS8_PRIV_KEY_INFO,
22864        cb: pem_password_cb,
22865        userdata: *mut ::core::ffi::c_void,
22866    ) -> *mut PKCS8_PRIV_KEY_INFO;
22867}
22868unsafe extern "C" {
22869    pub fn PEM_read_RSAPrivateKey(
22870        fp: *mut FILE,
22871        out: *mut *mut RSA,
22872        cb: pem_password_cb,
22873        userdata: *mut ::core::ffi::c_void,
22874    ) -> *mut RSA;
22875}
22876unsafe extern "C" {
22877    pub fn PEM_read_RSAPublicKey(
22878        fp: *mut FILE,
22879        out: *mut *mut RSA,
22880        cb: pem_password_cb,
22881        userdata: *mut ::core::ffi::c_void,
22882    ) -> *mut RSA;
22883}
22884unsafe extern "C" {
22885    pub fn PEM_read_RSA_PUBKEY(
22886        fp: *mut FILE,
22887        out: *mut *mut RSA,
22888        cb: pem_password_cb,
22889        userdata: *mut ::core::ffi::c_void,
22890    ) -> *mut RSA;
22891}
22892unsafe extern "C" {
22893    pub fn PEM_read_DSAPrivateKey(
22894        fp: *mut FILE,
22895        out: *mut *mut DSA,
22896        cb: pem_password_cb,
22897        userdata: *mut ::core::ffi::c_void,
22898    ) -> *mut DSA;
22899}
22900unsafe extern "C" {
22901    pub fn PEM_read_DSA_PUBKEY(
22902        fp: *mut FILE,
22903        out: *mut *mut DSA,
22904        cb: pem_password_cb,
22905        userdata: *mut ::core::ffi::c_void,
22906    ) -> *mut DSA;
22907}
22908unsafe extern "C" {
22909    pub fn PEM_read_DSAparams(
22910        fp: *mut FILE,
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_read_ECPrivateKey(
22918        fp: *mut FILE,
22919        out: *mut *mut EC_KEY,
22920        cb: pem_password_cb,
22921        userdata: *mut ::core::ffi::c_void,
22922    ) -> *mut EC_KEY;
22923}
22924unsafe extern "C" {
22925    pub fn PEM_read_EC_PUBKEY(
22926        fp: *mut FILE,
22927        out: *mut *mut EC_KEY,
22928        cb: pem_password_cb,
22929        userdata: *mut ::core::ffi::c_void,
22930    ) -> *mut EC_KEY;
22931}
22932unsafe extern "C" {
22933    pub fn PEM_read_DHparams(
22934        fp: *mut FILE,
22935        out: *mut *mut DH,
22936        cb: pem_password_cb,
22937        userdata: *mut ::core::ffi::c_void,
22938    ) -> *mut DH;
22939}
22940unsafe extern "C" {
22941    pub fn PEM_read_PrivateKey(
22942        fp: *mut FILE,
22943        out: *mut *mut EVP_PKEY,
22944        cb: pem_password_cb,
22945        userdata: *mut ::core::ffi::c_void,
22946    ) -> *mut EVP_PKEY;
22947}
22948unsafe extern "C" {
22949    pub fn PEM_read_PUBKEY(
22950        fp: *mut FILE,
22951        out: *mut *mut EVP_PKEY,
22952        cb: pem_password_cb,
22953        userdata: *mut ::core::ffi::c_void,
22954    ) -> *mut EVP_PKEY;
22955}
22956unsafe extern "C" {
22957    pub fn PEM_write_X509(fp: *mut FILE, x: *const X509) -> ::core::ffi::c_int;
22958}
22959unsafe extern "C" {
22960    pub fn PEM_write_X509_CRL(fp: *mut FILE, in_: *const X509_CRL) -> ::core::ffi::c_int;
22961}
22962unsafe extern "C" {
22963    pub fn PEM_write_X509_AUX(fp: *mut FILE, in_: *const X509) -> ::core::ffi::c_int;
22964}
22965unsafe extern "C" {
22966    pub fn PEM_write_X509_REQ(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
22967}
22968unsafe extern "C" {
22969    pub fn PEM_write_X509_REQ_NEW(fp: *mut FILE, in_: *const X509_REQ) -> ::core::ffi::c_int;
22970}
22971unsafe extern "C" {
22972    pub fn PEM_write_PKCS7(fp: *mut FILE, in_: *const PKCS7) -> ::core::ffi::c_int;
22973}
22974unsafe extern "C" {
22975    pub fn PEM_write_PKCS8(fp: *mut FILE, in_: *const X509_SIG) -> ::core::ffi::c_int;
22976}
22977unsafe extern "C" {
22978    pub fn PEM_write_PKCS8_PRIV_KEY_INFO(
22979        fp: *mut FILE,
22980        in_: *const PKCS8_PRIV_KEY_INFO,
22981    ) -> ::core::ffi::c_int;
22982}
22983unsafe extern "C" {
22984    pub fn PEM_write_RSAPrivateKey(
22985        fp: *mut FILE,
22986        in_: *const RSA,
22987        enc: *const EVP_CIPHER,
22988        pass: *const u8,
22989        pass_len: ::core::ffi::c_int,
22990        cb: pem_password_cb,
22991        userdata: *mut ::core::ffi::c_void,
22992    ) -> ::core::ffi::c_int;
22993}
22994unsafe extern "C" {
22995    pub fn PEM_write_RSAPublicKey(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
22996}
22997unsafe extern "C" {
22998    pub fn PEM_write_RSA_PUBKEY(fp: *mut FILE, in_: *const RSA) -> ::core::ffi::c_int;
22999}
23000unsafe extern "C" {
23001    pub fn PEM_write_DSAPrivateKey(
23002        fp: *mut FILE,
23003        in_: *const DSA,
23004        enc: *const EVP_CIPHER,
23005        pass: *const u8,
23006        pass_len: ::core::ffi::c_int,
23007        cb: pem_password_cb,
23008        userdata: *mut ::core::ffi::c_void,
23009    ) -> ::core::ffi::c_int;
23010}
23011unsafe extern "C" {
23012    pub fn PEM_write_DSA_PUBKEY(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
23013}
23014unsafe extern "C" {
23015    pub fn PEM_write_DSAparams(fp: *mut FILE, in_: *const DSA) -> ::core::ffi::c_int;
23016}
23017unsafe extern "C" {
23018    pub fn PEM_write_ECPrivateKey(
23019        fp: *mut FILE,
23020        in_: *const EC_KEY,
23021        enc: *const EVP_CIPHER,
23022        pass: *const u8,
23023        pass_len: ::core::ffi::c_int,
23024        cb: pem_password_cb,
23025        userdata: *mut ::core::ffi::c_void,
23026    ) -> ::core::ffi::c_int;
23027}
23028unsafe extern "C" {
23029    pub fn PEM_write_EC_PUBKEY(fp: *mut FILE, in_: *const EC_KEY) -> ::core::ffi::c_int;
23030}
23031unsafe extern "C" {
23032    pub fn PEM_write_DHparams(fp: *mut FILE, in_: *const DH) -> ::core::ffi::c_int;
23033}
23034unsafe extern "C" {
23035    pub fn PEM_write_PrivateKey(
23036        fp: *mut FILE,
23037        in_: *const EVP_PKEY,
23038        enc: *const EVP_CIPHER,
23039        pass: *const u8,
23040        pass_len: ::core::ffi::c_int,
23041        cb: pem_password_cb,
23042        userdata: *mut ::core::ffi::c_void,
23043    ) -> ::core::ffi::c_int;
23044}
23045unsafe extern "C" {
23046    pub fn PEM_write_PUBKEY(fp: *mut FILE, in_: *const EVP_PKEY) -> ::core::ffi::c_int;
23047}
23048unsafe extern "C" {
23049    pub fn PEM_read_bio(
23050        bio: *mut BIO,
23051        out_name: *mut *mut ::core::ffi::c_char,
23052        out_header: *mut *mut ::core::ffi::c_char,
23053        out_data: *mut *mut u8,
23054        out_len: *mut ::core::ffi::c_long,
23055    ) -> ::core::ffi::c_int;
23056}
23057unsafe extern "C" {
23058    pub fn PEM_read(
23059        fp: *mut FILE,
23060        out_name: *mut *mut ::core::ffi::c_char,
23061        out_header: *mut *mut ::core::ffi::c_char,
23062        out_data: *mut *mut u8,
23063        out_len: *mut ::core::ffi::c_long,
23064    ) -> ::core::ffi::c_int;
23065}
23066unsafe extern "C" {
23067    pub fn PEM_write_bio(
23068        bio: *mut BIO,
23069        name: *const ::core::ffi::c_char,
23070        hdr: *const ::core::ffi::c_char,
23071        data: *const u8,
23072        len: ::core::ffi::c_long,
23073    ) -> ::core::ffi::c_int;
23074}
23075unsafe extern "C" {
23076    pub fn PEM_write(
23077        fp: *mut FILE,
23078        name: *const ::core::ffi::c_char,
23079        hdr: *const ::core::ffi::c_char,
23080        data: *const u8,
23081        len: ::core::ffi::c_long,
23082    ) -> ::core::ffi::c_int;
23083}
23084unsafe extern "C" {
23085    pub fn PEM_bytes_read_bio(
23086        out_data: *mut *mut u8,
23087        out_len: *mut ::core::ffi::c_long,
23088        out_name: *mut *mut ::core::ffi::c_char,
23089        expected_name: *const ::core::ffi::c_char,
23090        bio: *mut BIO,
23091        cb: pem_password_cb,
23092        userdata: *mut ::core::ffi::c_void,
23093    ) -> ::core::ffi::c_int;
23094}
23095unsafe extern "C" {
23096    pub fn d2i_PKCS8PrivateKey_bio(
23097        bio: *mut BIO,
23098        out: *mut *mut EVP_PKEY,
23099        cb: pem_password_cb,
23100        userdata: *mut ::core::ffi::c_void,
23101    ) -> *mut EVP_PKEY;
23102}
23103unsafe extern "C" {
23104    pub fn i2d_PKCS8PrivateKey_bio(
23105        bio: *mut BIO,
23106        in_: *const EVP_PKEY,
23107        enc: *const EVP_CIPHER,
23108        pass: *const ::core::ffi::c_char,
23109        pass_len: ::core::ffi::c_int,
23110        cb: pem_password_cb,
23111        userdata: *mut ::core::ffi::c_void,
23112    ) -> ::core::ffi::c_int;
23113}
23114unsafe extern "C" {
23115    pub fn i2d_PKCS8PrivateKey_nid_bio(
23116        bio: *mut BIO,
23117        in_: *const EVP_PKEY,
23118        nid: ::core::ffi::c_int,
23119        pass: *const ::core::ffi::c_char,
23120        pass_len: ::core::ffi::c_int,
23121        cb: pem_password_cb,
23122        userdata: *mut ::core::ffi::c_void,
23123    ) -> ::core::ffi::c_int;
23124}
23125unsafe extern "C" {
23126    pub fn i2d_PKCS8PrivateKey_fp(
23127        fp: *mut FILE,
23128        in_: *const EVP_PKEY,
23129        enc: *const EVP_CIPHER,
23130        pass: *const ::core::ffi::c_char,
23131        pass_len: ::core::ffi::c_int,
23132        cb: pem_password_cb,
23133        userdata: *mut ::core::ffi::c_void,
23134    ) -> ::core::ffi::c_int;
23135}
23136unsafe extern "C" {
23137    pub fn i2d_PKCS8PrivateKey_nid_fp(
23138        fp: *mut FILE,
23139        in_: *const EVP_PKEY,
23140        nid: ::core::ffi::c_int,
23141        pass: *const ::core::ffi::c_char,
23142        pass_len: ::core::ffi::c_int,
23143        cb: pem_password_cb,
23144        userdata: *mut ::core::ffi::c_void,
23145    ) -> ::core::ffi::c_int;
23146}
23147unsafe extern "C" {
23148    pub fn d2i_PKCS8PrivateKey_fp(
23149        fp: *mut FILE,
23150        out: *mut *mut EVP_PKEY,
23151        cb: pem_password_cb,
23152        userdata: *mut ::core::ffi::c_void,
23153    ) -> *mut EVP_PKEY;
23154}
23155unsafe extern "C" {
23156    pub fn PEM_ASN1_read_bio(
23157        d2i: d2i_of_void,
23158        name: *const ::core::ffi::c_char,
23159        bio: *mut BIO,
23160        out: *mut *mut ::core::ffi::c_void,
23161        cb: pem_password_cb,
23162        userdata: *mut ::core::ffi::c_void,
23163    ) -> *mut ::core::ffi::c_void;
23164}
23165unsafe extern "C" {
23166    pub fn PEM_ASN1_read(
23167        d2i: d2i_of_void,
23168        name: *const ::core::ffi::c_char,
23169        fp: *mut FILE,
23170        out: *mut *mut ::core::ffi::c_void,
23171        cb: pem_password_cb,
23172        userdata: *mut ::core::ffi::c_void,
23173    ) -> *mut ::core::ffi::c_void;
23174}
23175unsafe extern "C" {
23176    pub fn PEM_ASN1_write_bio(
23177        i2d: i2d_of_void,
23178        name: *const ::core::ffi::c_char,
23179        bio: *mut BIO,
23180        in_: *const ::core::ffi::c_void,
23181        enc: *const EVP_CIPHER,
23182        pass: *const u8,
23183        pass_len: ::core::ffi::c_int,
23184        cb: pem_password_cb,
23185        userdata: *mut ::core::ffi::c_void,
23186    ) -> ::core::ffi::c_int;
23187}
23188unsafe extern "C" {
23189    pub fn PEM_ASN1_write(
23190        i2d: i2d_of_void,
23191        name: *const ::core::ffi::c_char,
23192        fp: *mut FILE,
23193        in_: *const ::core::ffi::c_void,
23194        enc: *const EVP_CIPHER,
23195        pass: *const u8,
23196        pass_len: ::core::ffi::c_int,
23197        callback: pem_password_cb,
23198        userdata: *mut ::core::ffi::c_void,
23199    ) -> ::core::ffi::c_int;
23200}
23201unsafe extern "C" {
23202    pub fn PKCS8_encrypt(
23203        pbe_nid: ::core::ffi::c_int,
23204        cipher: *const EVP_CIPHER,
23205        pass: *const ::core::ffi::c_char,
23206        pass_len: ::core::ffi::c_int,
23207        salt: *const u8,
23208        salt_len: usize,
23209        iterations: ::core::ffi::c_int,
23210        p8inf: *mut PKCS8_PRIV_KEY_INFO,
23211    ) -> *mut X509_SIG;
23212}
23213unsafe extern "C" {
23214    pub fn PKCS8_marshal_encrypted_private_key(
23215        out: *mut CBB,
23216        pbe_nid: ::core::ffi::c_int,
23217        cipher: *const EVP_CIPHER,
23218        pass: *const ::core::ffi::c_char,
23219        pass_len: usize,
23220        salt: *const u8,
23221        salt_len: usize,
23222        iterations: ::core::ffi::c_int,
23223        pkey: *const EVP_PKEY,
23224    ) -> ::core::ffi::c_int;
23225}
23226unsafe extern "C" {
23227    pub fn PKCS8_decrypt(
23228        pkcs8: *mut X509_SIG,
23229        pass: *const ::core::ffi::c_char,
23230        pass_len: ::core::ffi::c_int,
23231    ) -> *mut PKCS8_PRIV_KEY_INFO;
23232}
23233unsafe extern "C" {
23234    pub fn PKCS8_parse_encrypted_private_key(
23235        cbs: *mut CBS,
23236        pass: *const ::core::ffi::c_char,
23237        pass_len: usize,
23238    ) -> *mut EVP_PKEY;
23239}
23240unsafe extern "C" {
23241    pub fn PKCS12_get_key_and_certs(
23242        out_key: *mut *mut EVP_PKEY,
23243        out_certs: *mut stack_st_X509,
23244        in_: *mut CBS,
23245        password: *const ::core::ffi::c_char,
23246    ) -> ::core::ffi::c_int;
23247}
23248unsafe extern "C" {
23249    pub fn PKCS12_PBE_add();
23250}
23251unsafe extern "C" {
23252    pub fn d2i_PKCS12(
23253        out_p12: *mut *mut PKCS12,
23254        ber_bytes: *mut *const u8,
23255        ber_len: usize,
23256    ) -> *mut PKCS12;
23257}
23258unsafe extern "C" {
23259    pub fn d2i_PKCS12_bio(bio: *mut BIO, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23260}
23261unsafe extern "C" {
23262    pub fn d2i_PKCS12_fp(fp: *mut FILE, out_p12: *mut *mut PKCS12) -> *mut PKCS12;
23263}
23264unsafe extern "C" {
23265    pub fn i2d_PKCS12(p12: *const PKCS12, out: *mut *mut u8) -> ::core::ffi::c_int;
23266}
23267unsafe extern "C" {
23268    pub fn i2d_PKCS12_bio(bio: *mut BIO, p12: *const PKCS12) -> ::core::ffi::c_int;
23269}
23270unsafe extern "C" {
23271    pub fn i2d_PKCS12_fp(fp: *mut FILE, p12: *const PKCS12) -> ::core::ffi::c_int;
23272}
23273unsafe extern "C" {
23274    pub fn PKCS12_parse(
23275        p12: *const PKCS12,
23276        password: *const ::core::ffi::c_char,
23277        out_pkey: *mut *mut EVP_PKEY,
23278        out_cert: *mut *mut X509,
23279        out_ca_certs: *mut *mut stack_st_X509,
23280    ) -> ::core::ffi::c_int;
23281}
23282unsafe extern "C" {
23283    pub fn PKCS12_verify_mac(
23284        p12: *const PKCS12,
23285        password: *const ::core::ffi::c_char,
23286        password_len: ::core::ffi::c_int,
23287    ) -> ::core::ffi::c_int;
23288}
23289unsafe extern "C" {
23290    pub fn PKCS12_create(
23291        password: *const ::core::ffi::c_char,
23292        name: *const ::core::ffi::c_char,
23293        pkey: *const EVP_PKEY,
23294        cert: *mut X509,
23295        chain: *const stack_st_X509,
23296        key_nid: ::core::ffi::c_int,
23297        cert_nid: ::core::ffi::c_int,
23298        iterations: ::core::ffi::c_int,
23299        mac_iterations: ::core::ffi::c_int,
23300        key_type: ::core::ffi::c_int,
23301    ) -> *mut PKCS12;
23302}
23303unsafe extern "C" {
23304    pub fn PKCS12_free(p12: *mut PKCS12);
23305}
23306pub type poly1305_state = [u8; 512usize];
23307unsafe extern "C" {
23308    pub fn CRYPTO_poly1305_init(state: *mut poly1305_state, key: *const u8);
23309}
23310unsafe extern "C" {
23311    pub fn CRYPTO_poly1305_update(state: *mut poly1305_state, in_: *const u8, in_len: usize);
23312}
23313unsafe extern "C" {
23314    pub fn CRYPTO_poly1305_finish(state: *mut poly1305_state, mac: *mut u8);
23315}
23316unsafe extern "C" {
23317    pub fn RAND_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23318}
23319unsafe extern "C" {
23320    pub fn RAND_enable_fork_unsafe_buffering(fd: ::core::ffi::c_int);
23321}
23322unsafe extern "C" {
23323    pub fn RAND_disable_fork_unsafe_buffering();
23324}
23325unsafe extern "C" {
23326    pub fn RAND_get_system_entropy_for_custom_prng(buf: *mut u8, len: usize);
23327}
23328unsafe extern "C" {
23329    pub fn RAND_pseudo_bytes(buf: *mut u8, len: usize) -> ::core::ffi::c_int;
23330}
23331unsafe extern "C" {
23332    pub fn RAND_seed(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int);
23333}
23334unsafe extern "C" {
23335    pub fn RAND_load_file(
23336        path: *const ::core::ffi::c_char,
23337        num: ::core::ffi::c_long,
23338    ) -> ::core::ffi::c_int;
23339}
23340unsafe extern "C" {
23341    pub fn RAND_file_name(buf: *mut ::core::ffi::c_char, num: usize) -> *const ::core::ffi::c_char;
23342}
23343unsafe extern "C" {
23344    pub fn RAND_add(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int, entropy: f64);
23345}
23346unsafe extern "C" {
23347    pub fn RAND_egd(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
23348}
23349unsafe extern "C" {
23350    pub fn RAND_poll() -> ::core::ffi::c_int;
23351}
23352unsafe extern "C" {
23353    pub fn RAND_status() -> ::core::ffi::c_int;
23354}
23355unsafe extern "C" {
23356    pub fn RAND_cleanup();
23357}
23358#[repr(C)]
23359#[derive(Debug, Copy, Clone)]
23360pub struct rand_meth_st {
23361    pub seed: ::core::option::Option<
23362        unsafe extern "C" fn(buf: *const ::core::ffi::c_void, num: ::core::ffi::c_int),
23363    >,
23364    pub bytes: ::core::option::Option<
23365        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23366    >,
23367    pub cleanup: ::core::option::Option<unsafe extern "C" fn()>,
23368    pub add: ::core::option::Option<
23369        unsafe extern "C" fn(
23370            buf: *const ::core::ffi::c_void,
23371            num: ::core::ffi::c_int,
23372            entropy: f64,
23373        ),
23374    >,
23375    pub pseudorand: ::core::option::Option<
23376        unsafe extern "C" fn(buf: *mut u8, num: usize) -> ::core::ffi::c_int,
23377    >,
23378    pub status: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
23379}
23380unsafe extern "C" {
23381    pub fn RAND_SSLeay() -> *mut RAND_METHOD;
23382}
23383unsafe extern "C" {
23384    pub fn RAND_OpenSSL() -> *mut RAND_METHOD;
23385}
23386unsafe extern "C" {
23387    pub fn RAND_get_rand_method() -> *const RAND_METHOD;
23388}
23389unsafe extern "C" {
23390    pub fn RAND_set_rand_method(arg1: *const RAND_METHOD) -> ::core::ffi::c_int;
23391}
23392#[repr(C)]
23393#[derive(Debug, Copy, Clone)]
23394pub struct rc4_key_st {
23395    pub x: u32,
23396    pub y: u32,
23397    pub data: [u32; 256usize],
23398}
23399unsafe extern "C" {
23400    pub fn RC4_set_key(rc4key: *mut RC4_KEY, len: ::core::ffi::c_uint, key: *const u8);
23401}
23402unsafe extern "C" {
23403    pub fn RC4(key: *mut RC4_KEY, len: usize, in_: *const u8, out: *mut u8);
23404}
23405unsafe extern "C" {
23406    pub fn RC4_options() -> *const ::core::ffi::c_char;
23407}
23408#[repr(C)]
23409#[derive(Debug, Copy, Clone)]
23410pub struct RIPEMD160state_st {
23411    pub h: [u32; 5usize],
23412    pub Nl: u32,
23413    pub Nh: u32,
23414    pub data: [u8; 64usize],
23415    pub num: ::core::ffi::c_uint,
23416}
23417unsafe extern "C" {
23418    pub fn RIPEMD160_Init(ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23419}
23420unsafe extern "C" {
23421    pub fn RIPEMD160_Update(
23422        ctx: *mut RIPEMD160_CTX,
23423        data: *const ::core::ffi::c_void,
23424        len: usize,
23425    ) -> ::core::ffi::c_int;
23426}
23427unsafe extern "C" {
23428    pub fn RIPEMD160_Final(out: *mut u8, ctx: *mut RIPEMD160_CTX) -> ::core::ffi::c_int;
23429}
23430unsafe extern "C" {
23431    pub fn RIPEMD160(data: *const u8, len: usize, out: *mut u8) -> *mut u8;
23432}
23433unsafe extern "C" {
23434    pub fn RIPEMD160_Transform(ctx: *mut RIPEMD160_CTX, block: *const u8);
23435}
23436unsafe extern "C" {
23437    pub fn SIPHASH_24(key: *const u64, input: *const u8, input_len: usize) -> u64;
23438}
23439unsafe extern "C" {
23440    pub fn SLHDSA_SHA2_128S_generate_key_from_seed(
23441        out_public_key: *mut u8,
23442        out_private_key: *mut u8,
23443        seed: *const u8,
23444    );
23445}
23446unsafe extern "C" {
23447    pub fn SLHDSA_SHAKE_256F_generate_key_from_seed(
23448        out_public_key: *mut u8,
23449        out_private_key: *mut u8,
23450        seed: *const u8,
23451    );
23452}
23453unsafe extern "C" {
23454    pub fn SLHDSA_SHA2_128S_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23455}
23456unsafe extern "C" {
23457    pub fn SLHDSA_SHAKE_256F_generate_key(out_public_key: *mut u8, out_private_key: *mut u8);
23458}
23459unsafe extern "C" {
23460    pub fn SLHDSA_SHA2_128S_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23461}
23462unsafe extern "C" {
23463    pub fn SLHDSA_SHAKE_256F_public_from_private(out_public_key: *mut u8, private_key: *const u8);
23464}
23465unsafe extern "C" {
23466    pub fn SLHDSA_SHA2_128S_sign(
23467        out_signature: *mut u8,
23468        private_key: *const u8,
23469        msg: *const u8,
23470        msg_len: usize,
23471        context: *const u8,
23472        context_len: usize,
23473    ) -> ::core::ffi::c_int;
23474}
23475unsafe extern "C" {
23476    pub fn SLHDSA_SHAKE_256F_sign(
23477        out_signature: *mut u8,
23478        private_key: *const u8,
23479        msg: *const u8,
23480        msg_len: usize,
23481        context: *const u8,
23482        context_len: usize,
23483    ) -> ::core::ffi::c_int;
23484}
23485unsafe extern "C" {
23486    pub fn SLHDSA_SHA2_128S_verify(
23487        signature: *const u8,
23488        signature_len: usize,
23489        public_key: *const u8,
23490        msg: *const u8,
23491        msg_len: usize,
23492        context: *const u8,
23493        context_len: usize,
23494    ) -> ::core::ffi::c_int;
23495}
23496unsafe extern "C" {
23497    pub fn SLHDSA_SHAKE_256F_verify(
23498        signature: *const u8,
23499        signature_len: usize,
23500        public_key: *const u8,
23501        msg: *const u8,
23502        msg_len: usize,
23503        context: *const u8,
23504        context_len: usize,
23505    ) -> ::core::ffi::c_int;
23506}
23507unsafe extern "C" {
23508    pub fn SLHDSA_SHA2_128S_prehash_sign(
23509        out_signature: *mut u8,
23510        private_key: *const u8,
23511        hashed_msg: *const u8,
23512        hashed_msg_len: usize,
23513        hash_nid: ::core::ffi::c_int,
23514        context: *const u8,
23515        context_len: usize,
23516    ) -> ::core::ffi::c_int;
23517}
23518unsafe extern "C" {
23519    pub fn SLHDSA_SHA2_128S_prehash_verify(
23520        signature: *const u8,
23521        signature_len: usize,
23522        public_key: *const u8,
23523        hashed_msg: *const u8,
23524        hashed_msg_len: usize,
23525        hash_nid: ::core::ffi::c_int,
23526        context: *const u8,
23527        context_len: usize,
23528    ) -> ::core::ffi::c_int;
23529}
23530unsafe extern "C" {
23531    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_sign(
23532        out_signature: *mut u8,
23533        private_key: *const u8,
23534        hashed_msg: *const u8,
23535        hashed_msg_len: usize,
23536        hash_nid: ::core::ffi::c_int,
23537        context: *const u8,
23538        context_len: usize,
23539    ) -> ::core::ffi::c_int;
23540}
23541unsafe extern "C" {
23542    pub fn SLHDSA_SHA2_128S_prehash_warning_nonstandard_verify(
23543        signature: *const u8,
23544        signature_len: usize,
23545        public_key: *const u8,
23546        hashed_msg: *const u8,
23547        hashed_msg_len: usize,
23548        hash_nid: ::core::ffi::c_int,
23549        context: *const u8,
23550        context_len: usize,
23551    ) -> ::core::ffi::c_int;
23552}
23553unsafe extern "C" {
23554    pub fn TLS_method() -> *const SSL_METHOD;
23555}
23556unsafe extern "C" {
23557    pub fn DTLS_method() -> *const SSL_METHOD;
23558}
23559unsafe extern "C" {
23560    pub fn TLS_with_buffers_method() -> *const SSL_METHOD;
23561}
23562unsafe extern "C" {
23563    pub fn DTLS_with_buffers_method() -> *const SSL_METHOD;
23564}
23565unsafe extern "C" {
23566    pub fn SSL_CTX_new(method: *const SSL_METHOD) -> *mut SSL_CTX;
23567}
23568unsafe extern "C" {
23569    pub fn SSL_CTX_up_ref(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23570}
23571unsafe extern "C" {
23572    pub fn SSL_CTX_free(ctx: *mut SSL_CTX);
23573}
23574unsafe extern "C" {
23575    pub fn SSL_new(ctx: *mut SSL_CTX) -> *mut SSL;
23576}
23577unsafe extern "C" {
23578    pub fn SSL_free(ssl: *mut SSL);
23579}
23580unsafe extern "C" {
23581    pub fn SSL_get_SSL_CTX(ssl: *const SSL) -> *mut SSL_CTX;
23582}
23583unsafe extern "C" {
23584    pub fn SSL_set_connect_state(ssl: *mut SSL);
23585}
23586unsafe extern "C" {
23587    pub fn SSL_set_accept_state(ssl: *mut SSL);
23588}
23589unsafe extern "C" {
23590    pub fn SSL_is_server(ssl: *const SSL) -> ::core::ffi::c_int;
23591}
23592unsafe extern "C" {
23593    pub fn SSL_is_dtls(ssl: *const SSL) -> ::core::ffi::c_int;
23594}
23595unsafe extern "C" {
23596    pub fn SSL_is_quic(ssl: *const SSL) -> ::core::ffi::c_int;
23597}
23598unsafe extern "C" {
23599    pub fn SSL_set_bio(ssl: *mut SSL, rbio: *mut BIO, wbio: *mut BIO);
23600}
23601unsafe extern "C" {
23602    pub fn SSL_set0_rbio(ssl: *mut SSL, rbio: *mut BIO);
23603}
23604unsafe extern "C" {
23605    pub fn SSL_set0_wbio(ssl: *mut SSL, wbio: *mut BIO);
23606}
23607unsafe extern "C" {
23608    pub fn SSL_get_rbio(ssl: *const SSL) -> *mut BIO;
23609}
23610unsafe extern "C" {
23611    pub fn SSL_get_wbio(ssl: *const SSL) -> *mut BIO;
23612}
23613unsafe extern "C" {
23614    pub fn SSL_get_fd(ssl: *const SSL) -> ::core::ffi::c_int;
23615}
23616unsafe extern "C" {
23617    pub fn SSL_get_rfd(ssl: *const SSL) -> ::core::ffi::c_int;
23618}
23619unsafe extern "C" {
23620    pub fn SSL_get_wfd(ssl: *const SSL) -> ::core::ffi::c_int;
23621}
23622unsafe extern "C" {
23623    pub fn SSL_set_fd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23624}
23625unsafe extern "C" {
23626    pub fn SSL_set_rfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23627}
23628unsafe extern "C" {
23629    pub fn SSL_set_wfd(ssl: *mut SSL, fd: ::core::ffi::c_int) -> ::core::ffi::c_int;
23630}
23631unsafe extern "C" {
23632    pub fn SSL_do_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
23633}
23634unsafe extern "C" {
23635    pub fn SSL_connect(ssl: *mut SSL) -> ::core::ffi::c_int;
23636}
23637unsafe extern "C" {
23638    pub fn SSL_accept(ssl: *mut SSL) -> ::core::ffi::c_int;
23639}
23640unsafe extern "C" {
23641    pub fn SSL_read(
23642        ssl: *mut SSL,
23643        buf: *mut ::core::ffi::c_void,
23644        num: ::core::ffi::c_int,
23645    ) -> ::core::ffi::c_int;
23646}
23647unsafe extern "C" {
23648    pub fn SSL_peek(
23649        ssl: *mut SSL,
23650        buf: *mut ::core::ffi::c_void,
23651        num: ::core::ffi::c_int,
23652    ) -> ::core::ffi::c_int;
23653}
23654unsafe extern "C" {
23655    pub fn SSL_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23656}
23657unsafe extern "C" {
23658    pub fn SSL_has_pending(ssl: *const SSL) -> ::core::ffi::c_int;
23659}
23660unsafe extern "C" {
23661    pub fn SSL_write(
23662        ssl: *mut SSL,
23663        buf: *const ::core::ffi::c_void,
23664        num: ::core::ffi::c_int,
23665    ) -> ::core::ffi::c_int;
23666}
23667unsafe extern "C" {
23668    pub fn SSL_key_update(ssl: *mut SSL, request_type: ::core::ffi::c_int) -> ::core::ffi::c_int;
23669}
23670unsafe extern "C" {
23671    pub fn SSL_shutdown(ssl: *mut SSL) -> ::core::ffi::c_int;
23672}
23673unsafe extern "C" {
23674    pub fn SSL_CTX_set_quiet_shutdown(ctx: *mut SSL_CTX, mode: ::core::ffi::c_int);
23675}
23676unsafe extern "C" {
23677    pub fn SSL_CTX_get_quiet_shutdown(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
23678}
23679unsafe extern "C" {
23680    pub fn SSL_set_quiet_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
23681}
23682unsafe extern "C" {
23683    pub fn SSL_get_quiet_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
23684}
23685unsafe extern "C" {
23686    pub fn SSL_get_error(ssl: *const SSL, ret_code: ::core::ffi::c_int) -> ::core::ffi::c_int;
23687}
23688unsafe extern "C" {
23689    pub fn SSL_error_description(err: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
23690}
23691unsafe extern "C" {
23692    pub fn SSL_set_mtu(ssl: *mut SSL, mtu: ::core::ffi::c_uint) -> ::core::ffi::c_int;
23693}
23694unsafe extern "C" {
23695    pub fn DTLSv1_set_initial_timeout_duration(ssl: *mut SSL, duration_ms: u32);
23696}
23697unsafe extern "C" {
23698    pub fn DTLSv1_get_timeout(ssl: *const SSL, out: *mut timeval) -> ::core::ffi::c_int;
23699}
23700unsafe extern "C" {
23701    pub fn DTLSv1_handle_timeout(ssl: *mut SSL) -> ::core::ffi::c_int;
23702}
23703unsafe extern "C" {
23704    pub fn SSL_CTX_set_min_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23705}
23706unsafe extern "C" {
23707    pub fn SSL_CTX_set_max_proto_version(ctx: *mut SSL_CTX, version: u16) -> ::core::ffi::c_int;
23708}
23709unsafe extern "C" {
23710    pub fn SSL_CTX_get_min_proto_version(ctx: *const SSL_CTX) -> u16;
23711}
23712unsafe extern "C" {
23713    pub fn SSL_CTX_get_max_proto_version(ctx: *const SSL_CTX) -> u16;
23714}
23715unsafe extern "C" {
23716    pub fn SSL_set_min_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23717}
23718unsafe extern "C" {
23719    pub fn SSL_set_max_proto_version(ssl: *mut SSL, version: u16) -> ::core::ffi::c_int;
23720}
23721unsafe extern "C" {
23722    pub fn SSL_get_min_proto_version(ssl: *const SSL) -> u16;
23723}
23724unsafe extern "C" {
23725    pub fn SSL_get_max_proto_version(ssl: *const SSL) -> u16;
23726}
23727unsafe extern "C" {
23728    pub fn SSL_version(ssl: *const SSL) -> ::core::ffi::c_int;
23729}
23730unsafe extern "C" {
23731    pub fn SSL_CTX_set_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23732}
23733unsafe extern "C" {
23734    pub fn SSL_CTX_clear_options(ctx: *mut SSL_CTX, options: u32) -> u32;
23735}
23736unsafe extern "C" {
23737    pub fn SSL_CTX_get_options(ctx: *const SSL_CTX) -> u32;
23738}
23739unsafe extern "C" {
23740    pub fn SSL_set_options(ssl: *mut SSL, options: u32) -> u32;
23741}
23742unsafe extern "C" {
23743    pub fn SSL_clear_options(ssl: *mut SSL, options: u32) -> u32;
23744}
23745unsafe extern "C" {
23746    pub fn SSL_get_options(ssl: *const SSL) -> u32;
23747}
23748unsafe extern "C" {
23749    pub fn SSL_CTX_set_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23750}
23751unsafe extern "C" {
23752    pub fn SSL_CTX_clear_mode(ctx: *mut SSL_CTX, mode: u32) -> u32;
23753}
23754unsafe extern "C" {
23755    pub fn SSL_CTX_get_mode(ctx: *const SSL_CTX) -> u32;
23756}
23757unsafe extern "C" {
23758    pub fn SSL_set_mode(ssl: *mut SSL, mode: u32) -> u32;
23759}
23760unsafe extern "C" {
23761    pub fn SSL_clear_mode(ssl: *mut SSL, mode: u32) -> u32;
23762}
23763unsafe extern "C" {
23764    pub fn SSL_get_mode(ssl: *const SSL) -> u32;
23765}
23766unsafe extern "C" {
23767    pub fn SSL_CTX_set1_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
23768}
23769unsafe extern "C" {
23770    pub fn SSL_CREDENTIAL_new_x509() -> *mut SSL_CREDENTIAL;
23771}
23772unsafe extern "C" {
23773    pub fn SSL_CREDENTIAL_up_ref(cred: *mut SSL_CREDENTIAL);
23774}
23775unsafe extern "C" {
23776    pub fn SSL_CREDENTIAL_dup_ref(cred: *const SSL_CREDENTIAL) -> *mut SSL_CREDENTIAL;
23777}
23778unsafe extern "C" {
23779    pub fn SSL_CREDENTIAL_free(cred: *mut SSL_CREDENTIAL);
23780}
23781unsafe extern "C" {
23782    pub fn SSL_CREDENTIAL_is_complete(cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
23783}
23784unsafe extern "C" {
23785    pub fn SSL_CREDENTIAL_set1_private_key(
23786        cred: *mut SSL_CREDENTIAL,
23787        key: *mut EVP_PKEY,
23788    ) -> ::core::ffi::c_int;
23789}
23790unsafe extern "C" {
23791    pub fn SSL_CREDENTIAL_set1_signing_algorithm_prefs(
23792        cred: *mut SSL_CREDENTIAL,
23793        prefs: *const u16,
23794        num_prefs: usize,
23795    ) -> ::core::ffi::c_int;
23796}
23797unsafe extern "C" {
23798    pub fn SSL_CREDENTIAL_set1_cert_chain(
23799        cred: *mut SSL_CREDENTIAL,
23800        certs: *const *mut CRYPTO_BUFFER,
23801        num_certs: usize,
23802    ) -> ::core::ffi::c_int;
23803}
23804unsafe extern "C" {
23805    pub fn SSL_CREDENTIAL_set1_ocsp_response(
23806        cred: *mut SSL_CREDENTIAL,
23807        ocsp: *mut CRYPTO_BUFFER,
23808    ) -> ::core::ffi::c_int;
23809}
23810unsafe extern "C" {
23811    pub fn SSL_CREDENTIAL_set1_certificate_properties(
23812        cred: *mut SSL_CREDENTIAL,
23813        cert_property_list: *mut CRYPTO_BUFFER,
23814    ) -> ::core::ffi::c_int;
23815}
23816unsafe extern "C" {
23817    pub fn SSL_CREDENTIAL_set1_signed_cert_timestamp_list(
23818        cred: *mut SSL_CREDENTIAL,
23819        sct_list: *mut CRYPTO_BUFFER,
23820    ) -> ::core::ffi::c_int;
23821}
23822unsafe extern "C" {
23823    pub fn SSL_CREDENTIAL_set_must_match_issuer(
23824        cred: *mut SSL_CREDENTIAL,
23825        match_: ::core::ffi::c_int,
23826    );
23827}
23828unsafe extern "C" {
23829    pub fn SSL_CREDENTIAL_set1_session_id_context(
23830        cred: *mut SSL_CREDENTIAL,
23831        sid_ctx: *const u8,
23832        sid_ctx_len: usize,
23833    ) -> ::core::ffi::c_int;
23834}
23835unsafe extern "C" {
23836    pub fn SSL_CTX_add1_credential(
23837        ctx: *mut SSL_CTX,
23838        cred: *const SSL_CREDENTIAL,
23839    ) -> ::core::ffi::c_int;
23840}
23841unsafe extern "C" {
23842    pub fn SSL_add1_credential(ssl: *mut SSL, cred: *const SSL_CREDENTIAL) -> ::core::ffi::c_int;
23843}
23844unsafe extern "C" {
23845    pub fn SSL_certs_clear(ssl: *mut SSL);
23846}
23847unsafe extern "C" {
23848    pub fn SSL_get0_selected_credential(ssl: *const SSL) -> *const SSL_CREDENTIAL;
23849}
23850unsafe extern "C" {
23851    pub fn SSL_CTX_use_certificate(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23852}
23853unsafe extern "C" {
23854    pub fn SSL_use_certificate(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23855}
23856unsafe extern "C" {
23857    pub fn SSL_CTX_use_PrivateKey(ctx: *mut SSL_CTX, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
23858}
23859unsafe extern "C" {
23860    pub fn SSL_use_PrivateKey(ssl: *mut SSL, pkey: *mut EVP_PKEY) -> ::core::ffi::c_int;
23861}
23862unsafe extern "C" {
23863    pub fn SSL_CTX_set0_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23864}
23865unsafe extern "C" {
23866    pub fn SSL_CTX_set1_chain(ctx: *mut SSL_CTX, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23867}
23868unsafe extern "C" {
23869    pub fn SSL_set0_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23870}
23871unsafe extern "C" {
23872    pub fn SSL_set1_chain(ssl: *mut SSL, chain: *mut stack_st_X509) -> ::core::ffi::c_int;
23873}
23874unsafe extern "C" {
23875    pub fn SSL_CTX_add0_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23876}
23877unsafe extern "C" {
23878    pub fn SSL_CTX_add1_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23879}
23880unsafe extern "C" {
23881    pub fn SSL_add0_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23882}
23883unsafe extern "C" {
23884    pub fn SSL_CTX_add_extra_chain_cert(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
23885}
23886unsafe extern "C" {
23887    pub fn SSL_add1_chain_cert(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
23888}
23889unsafe extern "C" {
23890    pub fn SSL_CTX_clear_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23891}
23892unsafe extern "C" {
23893    pub fn SSL_CTX_clear_extra_chain_certs(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
23894}
23895unsafe extern "C" {
23896    pub fn SSL_clear_chain_certs(ssl: *mut SSL) -> ::core::ffi::c_int;
23897}
23898unsafe extern "C" {
23899    pub fn SSL_CTX_set_cert_cb(
23900        ctx: *mut SSL_CTX,
23901        cb: ::core::option::Option<
23902            unsafe extern "C" fn(
23903                ssl: *mut SSL,
23904                arg: *mut ::core::ffi::c_void,
23905            ) -> ::core::ffi::c_int,
23906        >,
23907        arg: *mut ::core::ffi::c_void,
23908    );
23909}
23910unsafe extern "C" {
23911    pub fn SSL_set_cert_cb(
23912        ssl: *mut SSL,
23913        cb: ::core::option::Option<
23914            unsafe extern "C" fn(
23915                ssl: *mut SSL,
23916                arg: *mut ::core::ffi::c_void,
23917            ) -> ::core::ffi::c_int,
23918        >,
23919        arg: *mut ::core::ffi::c_void,
23920    );
23921}
23922unsafe extern "C" {
23923    pub fn SSL_get0_certificate_types(ssl: *const SSL, out_types: *mut *const u8) -> usize;
23924}
23925unsafe extern "C" {
23926    pub fn SSL_get0_peer_verify_algorithms(ssl: *const SSL, out_sigalgs: *mut *const u16) -> usize;
23927}
23928unsafe extern "C" {
23929    pub fn SSL_get0_peer_delegation_algorithms(
23930        ssl: *const SSL,
23931        out_sigalgs: *mut *const u16,
23932    ) -> usize;
23933}
23934unsafe extern "C" {
23935    pub fn SSL_CTX_get0_certificate(ctx: *const SSL_CTX) -> *mut X509;
23936}
23937unsafe extern "C" {
23938    pub fn SSL_get_certificate(ssl: *const SSL) -> *mut X509;
23939}
23940unsafe extern "C" {
23941    pub fn SSL_CTX_get0_privatekey(ctx: *const SSL_CTX) -> *mut EVP_PKEY;
23942}
23943unsafe extern "C" {
23944    pub fn SSL_get_privatekey(ssl: *const SSL) -> *mut EVP_PKEY;
23945}
23946unsafe extern "C" {
23947    pub fn SSL_CTX_get0_chain_certs(
23948        ctx: *const SSL_CTX,
23949        out_chain: *mut *mut stack_st_X509,
23950    ) -> ::core::ffi::c_int;
23951}
23952unsafe extern "C" {
23953    pub fn SSL_CTX_get_extra_chain_certs(
23954        ctx: *const SSL_CTX,
23955        out_chain: *mut *mut stack_st_X509,
23956    ) -> ::core::ffi::c_int;
23957}
23958unsafe extern "C" {
23959    pub fn SSL_get0_chain_certs(
23960        ssl: *const SSL,
23961        out_chain: *mut *mut stack_st_X509,
23962    ) -> ::core::ffi::c_int;
23963}
23964unsafe extern "C" {
23965    pub fn SSL_CTX_set_signed_cert_timestamp_list(
23966        ctx: *mut SSL_CTX,
23967        list: *const u8,
23968        list_len: usize,
23969    ) -> ::core::ffi::c_int;
23970}
23971unsafe extern "C" {
23972    pub fn SSL_set_signed_cert_timestamp_list(
23973        ctx: *mut SSL,
23974        list: *const u8,
23975        list_len: usize,
23976    ) -> ::core::ffi::c_int;
23977}
23978unsafe extern "C" {
23979    pub fn SSL_CTX_set_ocsp_response(
23980        ctx: *mut SSL_CTX,
23981        response: *const u8,
23982        response_len: usize,
23983    ) -> ::core::ffi::c_int;
23984}
23985unsafe extern "C" {
23986    pub fn SSL_set_ocsp_response(
23987        ssl: *mut SSL,
23988        response: *const u8,
23989        response_len: usize,
23990    ) -> ::core::ffi::c_int;
23991}
23992unsafe extern "C" {
23993    pub fn SSL_get_signature_algorithm_name(
23994        sigalg: u16,
23995        include_curve: ::core::ffi::c_int,
23996    ) -> *const ::core::ffi::c_char;
23997}
23998unsafe extern "C" {
23999    pub fn SSL_get_all_signature_algorithm_names(
24000        out: *mut *const ::core::ffi::c_char,
24001        max_out: usize,
24002    ) -> usize;
24003}
24004unsafe extern "C" {
24005    pub fn SSL_get_signature_algorithm_key_type(sigalg: u16) -> ::core::ffi::c_int;
24006}
24007unsafe extern "C" {
24008    pub fn SSL_get_signature_algorithm_digest(sigalg: u16) -> *const EVP_MD;
24009}
24010unsafe extern "C" {
24011    pub fn SSL_is_signature_algorithm_rsa_pss(sigalg: u16) -> ::core::ffi::c_int;
24012}
24013unsafe extern "C" {
24014    pub fn SSL_CTX_set_signing_algorithm_prefs(
24015        ctx: *mut SSL_CTX,
24016        prefs: *const u16,
24017        num_prefs: usize,
24018    ) -> ::core::ffi::c_int;
24019}
24020unsafe extern "C" {
24021    pub fn SSL_set_signing_algorithm_prefs(
24022        ssl: *mut SSL,
24023        prefs: *const u16,
24024        num_prefs: usize,
24025    ) -> ::core::ffi::c_int;
24026}
24027unsafe extern "C" {
24028    pub fn SSL_CTX_set_chain_and_key(
24029        ctx: *mut SSL_CTX,
24030        certs: *const *mut CRYPTO_BUFFER,
24031        num_certs: usize,
24032        privkey: *mut EVP_PKEY,
24033        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
24034    ) -> ::core::ffi::c_int;
24035}
24036unsafe extern "C" {
24037    pub fn SSL_set_chain_and_key(
24038        ssl: *mut SSL,
24039        certs: *const *mut CRYPTO_BUFFER,
24040        num_certs: usize,
24041        privkey: *mut EVP_PKEY,
24042        privkey_method: *const SSL_PRIVATE_KEY_METHOD,
24043    ) -> ::core::ffi::c_int;
24044}
24045unsafe extern "C" {
24046    pub fn SSL_CTX_get0_chain(ctx: *const SSL_CTX) -> *const stack_st_CRYPTO_BUFFER;
24047}
24048unsafe extern "C" {
24049    pub fn SSL_get0_chain(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
24050}
24051unsafe extern "C" {
24052    pub fn SSL_CTX_use_RSAPrivateKey(ctx: *mut SSL_CTX, rsa: *mut RSA) -> ::core::ffi::c_int;
24053}
24054unsafe extern "C" {
24055    pub fn SSL_use_RSAPrivateKey(ssl: *mut SSL, rsa: *mut RSA) -> ::core::ffi::c_int;
24056}
24057unsafe extern "C" {
24058    pub fn SSL_CTX_use_certificate_ASN1(
24059        ctx: *mut SSL_CTX,
24060        der_len: usize,
24061        der: *const u8,
24062    ) -> ::core::ffi::c_int;
24063}
24064unsafe extern "C" {
24065    pub fn SSL_use_certificate_ASN1(
24066        ssl: *mut SSL,
24067        der: *const u8,
24068        der_len: usize,
24069    ) -> ::core::ffi::c_int;
24070}
24071unsafe extern "C" {
24072    pub fn SSL_CTX_use_PrivateKey_ASN1(
24073        pk: ::core::ffi::c_int,
24074        ctx: *mut SSL_CTX,
24075        der: *const u8,
24076        der_len: usize,
24077    ) -> ::core::ffi::c_int;
24078}
24079unsafe extern "C" {
24080    pub fn SSL_use_PrivateKey_ASN1(
24081        type_: ::core::ffi::c_int,
24082        ssl: *mut SSL,
24083        der: *const u8,
24084        der_len: usize,
24085    ) -> ::core::ffi::c_int;
24086}
24087unsafe extern "C" {
24088    pub fn SSL_CTX_use_RSAPrivateKey_ASN1(
24089        ctx: *mut SSL_CTX,
24090        der: *const u8,
24091        der_len: usize,
24092    ) -> ::core::ffi::c_int;
24093}
24094unsafe extern "C" {
24095    pub fn SSL_use_RSAPrivateKey_ASN1(
24096        ssl: *mut SSL,
24097        der: *const u8,
24098        der_len: usize,
24099    ) -> ::core::ffi::c_int;
24100}
24101unsafe extern "C" {
24102    pub fn SSL_CTX_use_RSAPrivateKey_file(
24103        ctx: *mut SSL_CTX,
24104        file: *const ::core::ffi::c_char,
24105        type_: ::core::ffi::c_int,
24106    ) -> ::core::ffi::c_int;
24107}
24108unsafe extern "C" {
24109    pub fn SSL_use_RSAPrivateKey_file(
24110        ssl: *mut SSL,
24111        file: *const ::core::ffi::c_char,
24112        type_: ::core::ffi::c_int,
24113    ) -> ::core::ffi::c_int;
24114}
24115unsafe extern "C" {
24116    pub fn SSL_CTX_use_certificate_file(
24117        ctx: *mut SSL_CTX,
24118        file: *const ::core::ffi::c_char,
24119        type_: ::core::ffi::c_int,
24120    ) -> ::core::ffi::c_int;
24121}
24122unsafe extern "C" {
24123    pub fn SSL_use_certificate_file(
24124        ssl: *mut SSL,
24125        file: *const ::core::ffi::c_char,
24126        type_: ::core::ffi::c_int,
24127    ) -> ::core::ffi::c_int;
24128}
24129unsafe extern "C" {
24130    pub fn SSL_CTX_use_PrivateKey_file(
24131        ctx: *mut SSL_CTX,
24132        file: *const ::core::ffi::c_char,
24133        type_: ::core::ffi::c_int,
24134    ) -> ::core::ffi::c_int;
24135}
24136unsafe extern "C" {
24137    pub fn SSL_use_PrivateKey_file(
24138        ssl: *mut SSL,
24139        file: *const ::core::ffi::c_char,
24140        type_: ::core::ffi::c_int,
24141    ) -> ::core::ffi::c_int;
24142}
24143unsafe extern "C" {
24144    pub fn SSL_CTX_use_certificate_chain_file(
24145        ctx: *mut SSL_CTX,
24146        file: *const ::core::ffi::c_char,
24147    ) -> ::core::ffi::c_int;
24148}
24149unsafe extern "C" {
24150    pub fn SSL_CTX_set_default_passwd_cb(ctx: *mut SSL_CTX, cb: pem_password_cb);
24151}
24152unsafe extern "C" {
24153    pub fn SSL_CTX_get_default_passwd_cb(ctx: *const SSL_CTX) -> pem_password_cb;
24154}
24155unsafe extern "C" {
24156    pub fn SSL_CTX_set_default_passwd_cb_userdata(
24157        ctx: *mut SSL_CTX,
24158        data: *mut ::core::ffi::c_void,
24159    );
24160}
24161unsafe extern "C" {
24162    pub fn SSL_CTX_get_default_passwd_cb_userdata(ctx: *const SSL_CTX) -> *mut ::core::ffi::c_void;
24163}
24164pub const ssl_private_key_result_t_ssl_private_key_success: ssl_private_key_result_t = 0;
24165pub const ssl_private_key_result_t_ssl_private_key_retry: ssl_private_key_result_t = 1;
24166pub const ssl_private_key_result_t_ssl_private_key_failure: ssl_private_key_result_t = 2;
24167pub type ssl_private_key_result_t = ::core::ffi::c_uint;
24168#[repr(C)]
24169#[derive(Debug, Copy, Clone)]
24170pub struct ssl_private_key_method_st {
24171    pub sign: ::core::option::Option<
24172        unsafe extern "C" fn(
24173            ssl: *mut SSL,
24174            out: *mut u8,
24175            out_len: *mut usize,
24176            max_out: usize,
24177            signature_algorithm: u16,
24178            in_: *const u8,
24179            in_len: usize,
24180        ) -> ssl_private_key_result_t,
24181    >,
24182    pub decrypt: ::core::option::Option<
24183        unsafe extern "C" fn(
24184            ssl: *mut SSL,
24185            out: *mut u8,
24186            out_len: *mut usize,
24187            max_out: usize,
24188            in_: *const u8,
24189            in_len: usize,
24190        ) -> ssl_private_key_result_t,
24191    >,
24192    pub complete: ::core::option::Option<
24193        unsafe extern "C" fn(
24194            ssl: *mut SSL,
24195            out: *mut u8,
24196            out_len: *mut usize,
24197            max_out: usize,
24198        ) -> ssl_private_key_result_t,
24199    >,
24200}
24201unsafe extern "C" {
24202    pub fn SSL_set_private_key_method(ssl: *mut SSL, key_method: *const SSL_PRIVATE_KEY_METHOD);
24203}
24204unsafe extern "C" {
24205    pub fn SSL_CTX_set_private_key_method(
24206        ctx: *mut SSL_CTX,
24207        key_method: *const SSL_PRIVATE_KEY_METHOD,
24208    );
24209}
24210unsafe extern "C" {
24211    pub fn SSL_CREDENTIAL_set_private_key_method(
24212        cred: *mut SSL_CREDENTIAL,
24213        key_method: *const SSL_PRIVATE_KEY_METHOD,
24214    ) -> ::core::ffi::c_int;
24215}
24216unsafe extern "C" {
24217    pub fn SSL_can_release_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
24218}
24219#[repr(C)]
24220#[derive(Debug)]
24221pub struct stack_st_SSL_CIPHER {
24222    _unused: [u8; 0],
24223}
24224pub type sk_SSL_CIPHER_free_func =
24225    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER)>;
24226pub type sk_SSL_CIPHER_copy_func =
24227    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_CIPHER) -> *const SSL_CIPHER>;
24228pub type sk_SSL_CIPHER_cmp_func = ::core::option::Option<
24229    unsafe extern "C" fn(
24230        arg1: *const *const SSL_CIPHER,
24231        arg2: *const *const SSL_CIPHER,
24232    ) -> ::core::ffi::c_int,
24233>;
24234pub type sk_SSL_CIPHER_delete_if_func = ::core::option::Option<
24235    unsafe extern "C" fn(
24236        arg1: *const SSL_CIPHER,
24237        arg2: *mut ::core::ffi::c_void,
24238    ) -> ::core::ffi::c_int,
24239>;
24240unsafe extern "C" {
24241    #[link_name = "sk_SSL_CIPHER_call_free_func__extern"]
24242    pub fn sk_SSL_CIPHER_call_free_func(
24243        free_func: OPENSSL_sk_free_func,
24244        ptr: *mut ::core::ffi::c_void,
24245    );
24246}
24247unsafe extern "C" {
24248    #[link_name = "sk_SSL_CIPHER_call_copy_func__extern"]
24249    pub fn sk_SSL_CIPHER_call_copy_func(
24250        copy_func: OPENSSL_sk_copy_func,
24251        ptr: *const ::core::ffi::c_void,
24252    ) -> *mut ::core::ffi::c_void;
24253}
24254unsafe extern "C" {
24255    #[link_name = "sk_SSL_CIPHER_call_cmp_func__extern"]
24256    pub fn sk_SSL_CIPHER_call_cmp_func(
24257        cmp_func: OPENSSL_sk_cmp_func,
24258        a: *const ::core::ffi::c_void,
24259        b: *const ::core::ffi::c_void,
24260    ) -> ::core::ffi::c_int;
24261}
24262unsafe extern "C" {
24263    #[link_name = "sk_SSL_CIPHER_call_delete_if_func__extern"]
24264    pub fn sk_SSL_CIPHER_call_delete_if_func(
24265        func: OPENSSL_sk_delete_if_func,
24266        obj: *mut ::core::ffi::c_void,
24267        data: *mut ::core::ffi::c_void,
24268    ) -> ::core::ffi::c_int;
24269}
24270unsafe extern "C" {
24271    #[link_name = "sk_SSL_CIPHER_new__extern"]
24272    pub fn sk_SSL_CIPHER_new(comp: sk_SSL_CIPHER_cmp_func) -> *mut stack_st_SSL_CIPHER;
24273}
24274unsafe extern "C" {
24275    #[link_name = "sk_SSL_CIPHER_new_null__extern"]
24276    pub fn sk_SSL_CIPHER_new_null() -> *mut stack_st_SSL_CIPHER;
24277}
24278unsafe extern "C" {
24279    #[link_name = "sk_SSL_CIPHER_num__extern"]
24280    pub fn sk_SSL_CIPHER_num(sk: *const stack_st_SSL_CIPHER) -> usize;
24281}
24282unsafe extern "C" {
24283    #[link_name = "sk_SSL_CIPHER_zero__extern"]
24284    pub fn sk_SSL_CIPHER_zero(sk: *mut stack_st_SSL_CIPHER);
24285}
24286unsafe extern "C" {
24287    #[link_name = "sk_SSL_CIPHER_value__extern"]
24288    pub fn sk_SSL_CIPHER_value(sk: *const stack_st_SSL_CIPHER, i: usize) -> *const SSL_CIPHER;
24289}
24290unsafe extern "C" {
24291    #[link_name = "sk_SSL_CIPHER_set__extern"]
24292    pub fn sk_SSL_CIPHER_set(
24293        sk: *mut stack_st_SSL_CIPHER,
24294        i: usize,
24295        p: *const SSL_CIPHER,
24296    ) -> *const SSL_CIPHER;
24297}
24298unsafe extern "C" {
24299    #[link_name = "sk_SSL_CIPHER_free__extern"]
24300    pub fn sk_SSL_CIPHER_free(sk: *mut stack_st_SSL_CIPHER);
24301}
24302unsafe extern "C" {
24303    #[link_name = "sk_SSL_CIPHER_pop_free__extern"]
24304    pub fn sk_SSL_CIPHER_pop_free(sk: *mut stack_st_SSL_CIPHER, free_func: sk_SSL_CIPHER_free_func);
24305}
24306unsafe extern "C" {
24307    #[link_name = "sk_SSL_CIPHER_insert__extern"]
24308    pub fn sk_SSL_CIPHER_insert(
24309        sk: *mut stack_st_SSL_CIPHER,
24310        p: *const SSL_CIPHER,
24311        where_: usize,
24312    ) -> usize;
24313}
24314unsafe extern "C" {
24315    #[link_name = "sk_SSL_CIPHER_delete__extern"]
24316    pub fn sk_SSL_CIPHER_delete(sk: *mut stack_st_SSL_CIPHER, where_: usize) -> *const SSL_CIPHER;
24317}
24318unsafe extern "C" {
24319    #[link_name = "sk_SSL_CIPHER_delete_ptr__extern"]
24320    pub fn sk_SSL_CIPHER_delete_ptr(
24321        sk: *mut stack_st_SSL_CIPHER,
24322        p: *const SSL_CIPHER,
24323    ) -> *const SSL_CIPHER;
24324}
24325unsafe extern "C" {
24326    #[link_name = "sk_SSL_CIPHER_delete_if__extern"]
24327    pub fn sk_SSL_CIPHER_delete_if(
24328        sk: *mut stack_st_SSL_CIPHER,
24329        func: sk_SSL_CIPHER_delete_if_func,
24330        data: *mut ::core::ffi::c_void,
24331    );
24332}
24333unsafe extern "C" {
24334    #[link_name = "sk_SSL_CIPHER_find__extern"]
24335    pub fn sk_SSL_CIPHER_find(
24336        sk: *const stack_st_SSL_CIPHER,
24337        out_index: *mut usize,
24338        p: *const SSL_CIPHER,
24339    ) -> ::core::ffi::c_int;
24340}
24341unsafe extern "C" {
24342    #[link_name = "sk_SSL_CIPHER_shift__extern"]
24343    pub fn sk_SSL_CIPHER_shift(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24344}
24345unsafe extern "C" {
24346    #[link_name = "sk_SSL_CIPHER_push__extern"]
24347    pub fn sk_SSL_CIPHER_push(sk: *mut stack_st_SSL_CIPHER, p: *const SSL_CIPHER) -> usize;
24348}
24349unsafe extern "C" {
24350    #[link_name = "sk_SSL_CIPHER_pop__extern"]
24351    pub fn sk_SSL_CIPHER_pop(sk: *mut stack_st_SSL_CIPHER) -> *const SSL_CIPHER;
24352}
24353unsafe extern "C" {
24354    #[link_name = "sk_SSL_CIPHER_dup__extern"]
24355    pub fn sk_SSL_CIPHER_dup(sk: *const stack_st_SSL_CIPHER) -> *mut stack_st_SSL_CIPHER;
24356}
24357unsafe extern "C" {
24358    #[link_name = "sk_SSL_CIPHER_sort__extern"]
24359    pub fn sk_SSL_CIPHER_sort(sk: *mut stack_st_SSL_CIPHER);
24360}
24361unsafe extern "C" {
24362    #[link_name = "sk_SSL_CIPHER_sort_and_dedup__extern"]
24363    pub fn sk_SSL_CIPHER_sort_and_dedup(
24364        sk: *mut stack_st_SSL_CIPHER,
24365        free_func: sk_SSL_CIPHER_free_func,
24366    );
24367}
24368unsafe extern "C" {
24369    #[link_name = "sk_SSL_CIPHER_is_sorted__extern"]
24370    pub fn sk_SSL_CIPHER_is_sorted(sk: *const stack_st_SSL_CIPHER) -> ::core::ffi::c_int;
24371}
24372unsafe extern "C" {
24373    #[link_name = "sk_SSL_CIPHER_set_cmp_func__extern"]
24374    pub fn sk_SSL_CIPHER_set_cmp_func(
24375        sk: *mut stack_st_SSL_CIPHER,
24376        comp: sk_SSL_CIPHER_cmp_func,
24377    ) -> sk_SSL_CIPHER_cmp_func;
24378}
24379unsafe extern "C" {
24380    #[link_name = "sk_SSL_CIPHER_deep_copy__extern"]
24381    pub fn sk_SSL_CIPHER_deep_copy(
24382        sk: *const stack_st_SSL_CIPHER,
24383        copy_func: sk_SSL_CIPHER_copy_func,
24384        free_func: sk_SSL_CIPHER_free_func,
24385    ) -> *mut stack_st_SSL_CIPHER;
24386}
24387unsafe extern "C" {
24388    pub fn SSL_get_cipher_by_value(value: u16) -> *const SSL_CIPHER;
24389}
24390unsafe extern "C" {
24391    pub fn SSL_CIPHER_get_protocol_id(cipher: *const SSL_CIPHER) -> u16;
24392}
24393unsafe extern "C" {
24394    pub fn SSL_CIPHER_is_aead(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24395}
24396unsafe extern "C" {
24397    pub fn SSL_CIPHER_is_block_cipher(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24398}
24399unsafe extern "C" {
24400    pub fn SSL_CIPHER_get_cipher_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24401}
24402unsafe extern "C" {
24403    pub fn SSL_CIPHER_get_digest_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24404}
24405unsafe extern "C" {
24406    pub fn SSL_CIPHER_get_kx_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24407}
24408unsafe extern "C" {
24409    pub fn SSL_CIPHER_get_auth_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24410}
24411unsafe extern "C" {
24412    pub fn SSL_CIPHER_get_handshake_digest(cipher: *const SSL_CIPHER) -> *const EVP_MD;
24413}
24414unsafe extern "C" {
24415    pub fn SSL_CIPHER_get_prf_nid(cipher: *const SSL_CIPHER) -> ::core::ffi::c_int;
24416}
24417unsafe extern "C" {
24418    pub fn SSL_CIPHER_get_min_version(cipher: *const SSL_CIPHER) -> u16;
24419}
24420unsafe extern "C" {
24421    pub fn SSL_CIPHER_get_max_version(cipher: *const SSL_CIPHER) -> u16;
24422}
24423unsafe extern "C" {
24424    pub fn SSL_CIPHER_standard_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24425}
24426unsafe extern "C" {
24427    pub fn SSL_CIPHER_get_kx_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
24428}
24429unsafe extern "C" {
24430    pub fn SSL_CIPHER_get_bits(
24431        cipher: *const SSL_CIPHER,
24432        out_alg_bits: *mut ::core::ffi::c_int,
24433    ) -> ::core::ffi::c_int;
24434}
24435unsafe extern "C" {
24436    pub fn SSL_get_all_cipher_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
24437}
24438unsafe extern "C" {
24439    pub fn SSL_get_all_standard_cipher_names(
24440        out: *mut *const ::core::ffi::c_char,
24441        max_out: usize,
24442    ) -> usize;
24443}
24444unsafe extern "C" {
24445    pub fn SSL_CTX_set_strict_cipher_list(
24446        ctx: *mut SSL_CTX,
24447        str_: *const ::core::ffi::c_char,
24448    ) -> ::core::ffi::c_int;
24449}
24450unsafe extern "C" {
24451    pub fn SSL_CTX_set_cipher_list(
24452        ctx: *mut SSL_CTX,
24453        str_: *const ::core::ffi::c_char,
24454    ) -> ::core::ffi::c_int;
24455}
24456unsafe extern "C" {
24457    pub fn SSL_set_strict_cipher_list(
24458        ssl: *mut SSL,
24459        str_: *const ::core::ffi::c_char,
24460    ) -> ::core::ffi::c_int;
24461}
24462unsafe extern "C" {
24463    pub fn SSL_set_cipher_list(
24464        ssl: *mut SSL,
24465        str_: *const ::core::ffi::c_char,
24466    ) -> ::core::ffi::c_int;
24467}
24468unsafe extern "C" {
24469    pub fn SSL_CTX_get_ciphers(ctx: *const SSL_CTX) -> *mut stack_st_SSL_CIPHER;
24470}
24471unsafe extern "C" {
24472    pub fn SSL_CTX_cipher_in_group(ctx: *const SSL_CTX, i: usize) -> ::core::ffi::c_int;
24473}
24474unsafe extern "C" {
24475    pub fn SSL_get_ciphers(ssl: *const SSL) -> *mut stack_st_SSL_CIPHER;
24476}
24477unsafe extern "C" {
24478    pub fn SSL_CTX_set1_tls13_ciphers(
24479        ctx: *mut SSL_CTX,
24480        cipher_ids: *const u16,
24481        flags: *const u32,
24482        num_cipher_ids: usize,
24483    ) -> ::core::ffi::c_int;
24484}
24485unsafe extern "C" {
24486    pub fn SSL_set1_tls13_ciphers(
24487        ssl: *mut SSL,
24488        cipher_ids: *const u16,
24489        flags: *const u32,
24490        num_cipher_ids: usize,
24491    ) -> ::core::ffi::c_int;
24492}
24493unsafe extern "C" {
24494    pub fn SSL_is_init_finished(ssl: *const SSL) -> ::core::ffi::c_int;
24495}
24496unsafe extern "C" {
24497    pub fn SSL_in_init(ssl: *const SSL) -> ::core::ffi::c_int;
24498}
24499unsafe extern "C" {
24500    pub fn SSL_in_false_start(ssl: *const SSL) -> ::core::ffi::c_int;
24501}
24502unsafe extern "C" {
24503    pub fn SSL_get_peer_certificate(ssl: *const SSL) -> *mut X509;
24504}
24505unsafe extern "C" {
24506    pub fn SSL_get_peer_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24507}
24508unsafe extern "C" {
24509    pub fn SSL_get_peer_full_cert_chain(ssl: *const SSL) -> *mut stack_st_X509;
24510}
24511unsafe extern "C" {
24512    pub fn SSL_get0_peer_certificates(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
24513}
24514unsafe extern "C" {
24515    pub fn SSL_get0_signed_cert_timestamp_list(
24516        ssl: *const SSL,
24517        out: *mut *const u8,
24518        out_len: *mut usize,
24519    );
24520}
24521unsafe extern "C" {
24522    pub fn SSL_get0_ocsp_response(ssl: *const SSL, out: *mut *const u8, out_len: *mut usize);
24523}
24524unsafe extern "C" {
24525    pub fn SSL_get_tls_unique(
24526        ssl: *const SSL,
24527        out: *mut u8,
24528        out_len: *mut usize,
24529        max_out: usize,
24530    ) -> ::core::ffi::c_int;
24531}
24532unsafe extern "C" {
24533    pub fn SSL_get_extms_support(ssl: *const SSL) -> ::core::ffi::c_int;
24534}
24535unsafe extern "C" {
24536    pub fn SSL_get_current_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
24537}
24538unsafe extern "C" {
24539    pub fn SSL_session_reused(ssl: *const SSL) -> ::core::ffi::c_int;
24540}
24541unsafe extern "C" {
24542    pub fn SSL_get_secure_renegotiation_support(ssl: *const SSL) -> ::core::ffi::c_int;
24543}
24544unsafe extern "C" {
24545    pub fn SSL_export_keying_material(
24546        ssl: *const SSL,
24547        out: *mut u8,
24548        out_len: usize,
24549        label: *const ::core::ffi::c_char,
24550        label_len: usize,
24551        context: *const u8,
24552        context_len: usize,
24553        use_context: ::core::ffi::c_int,
24554    ) -> ::core::ffi::c_int;
24555}
24556unsafe extern "C" {
24557    pub fn SSL_SESSION_new(ctx: *const SSL_CTX) -> *mut SSL_SESSION;
24558}
24559unsafe extern "C" {
24560    pub fn SSL_SESSION_up_ref(session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24561}
24562unsafe extern "C" {
24563    pub fn SSL_SESSION_free(session: *mut SSL_SESSION);
24564}
24565unsafe extern "C" {
24566    pub fn SSL_SESSION_to_bytes(
24567        in_: *const SSL_SESSION,
24568        out_data: *mut *mut u8,
24569        out_len: *mut usize,
24570    ) -> ::core::ffi::c_int;
24571}
24572unsafe extern "C" {
24573    pub fn SSL_SESSION_to_bytes_for_ticket(
24574        in_: *const SSL_SESSION,
24575        out_data: *mut *mut u8,
24576        out_len: *mut usize,
24577    ) -> ::core::ffi::c_int;
24578}
24579unsafe extern "C" {
24580    pub fn SSL_SESSION_from_bytes(
24581        in_: *const u8,
24582        in_len: usize,
24583        ctx: *const SSL_CTX,
24584    ) -> *mut SSL_SESSION;
24585}
24586unsafe extern "C" {
24587    pub fn PEM_read_bio_SSL_SESSION(
24588        bio: *mut BIO,
24589        out: *mut *mut SSL_SESSION,
24590        cb: pem_password_cb,
24591        userdata: *mut ::core::ffi::c_void,
24592    ) -> *mut SSL_SESSION;
24593}
24594unsafe extern "C" {
24595    pub fn PEM_read_SSL_SESSION(
24596        fp: *mut FILE,
24597        out: *mut *mut SSL_SESSION,
24598        cb: pem_password_cb,
24599        userdata: *mut ::core::ffi::c_void,
24600    ) -> *mut SSL_SESSION;
24601}
24602unsafe extern "C" {
24603    pub fn PEM_write_bio_SSL_SESSION(bio: *mut BIO, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24604}
24605unsafe extern "C" {
24606    pub fn PEM_write_SSL_SESSION(fp: *mut FILE, in_: *const SSL_SESSION) -> ::core::ffi::c_int;
24607}
24608unsafe extern "C" {
24609    pub fn SSL_SESSION_get_version(session: *const SSL_SESSION) -> *const ::core::ffi::c_char;
24610}
24611unsafe extern "C" {
24612    pub fn SSL_SESSION_get_protocol_version(session: *const SSL_SESSION) -> u16;
24613}
24614unsafe extern "C" {
24615    pub fn SSL_SESSION_set_protocol_version(
24616        session: *mut SSL_SESSION,
24617        version: u16,
24618    ) -> ::core::ffi::c_int;
24619}
24620unsafe extern "C" {
24621    pub fn SSL_SESSION_get_id(
24622        session: *const SSL_SESSION,
24623        out_len: *mut ::core::ffi::c_uint,
24624    ) -> *const u8;
24625}
24626unsafe extern "C" {
24627    pub fn SSL_SESSION_set1_id(
24628        session: *mut SSL_SESSION,
24629        sid: *const u8,
24630        sid_len: usize,
24631    ) -> ::core::ffi::c_int;
24632}
24633unsafe extern "C" {
24634    pub fn SSL_SESSION_get_time(session: *const SSL_SESSION) -> u64;
24635}
24636unsafe extern "C" {
24637    pub fn SSL_SESSION_get_timeout(session: *const SSL_SESSION) -> u32;
24638}
24639unsafe extern "C" {
24640    pub fn SSL_SESSION_get0_peer(session: *const SSL_SESSION) -> *mut X509;
24641}
24642unsafe extern "C" {
24643    pub fn SSL_SESSION_get0_peer_certificates(
24644        session: *const SSL_SESSION,
24645    ) -> *const stack_st_CRYPTO_BUFFER;
24646}
24647unsafe extern "C" {
24648    pub fn SSL_SESSION_get0_peer_rpk(session: *const SSL_SESSION) -> *mut EVP_PKEY;
24649}
24650unsafe extern "C" {
24651    pub fn SSL_SESSION_get0_signed_cert_timestamp_list(
24652        session: *const SSL_SESSION,
24653        out: *mut *const u8,
24654        out_len: *mut usize,
24655    );
24656}
24657unsafe extern "C" {
24658    pub fn SSL_SESSION_get0_ocsp_response(
24659        session: *const SSL_SESSION,
24660        out: *mut *const u8,
24661        out_len: *mut usize,
24662    );
24663}
24664unsafe extern "C" {
24665    pub fn SSL_SESSION_get_master_key(
24666        session: *const SSL_SESSION,
24667        out: *mut u8,
24668        max_out: usize,
24669    ) -> usize;
24670}
24671unsafe extern "C" {
24672    pub fn SSL_SESSION_set_time(session: *mut SSL_SESSION, time: u64) -> u64;
24673}
24674unsafe extern "C" {
24675    pub fn SSL_SESSION_set_timeout(session: *mut SSL_SESSION, timeout: u32) -> u32;
24676}
24677unsafe extern "C" {
24678    pub fn SSL_SESSION_get0_id_context(
24679        session: *const SSL_SESSION,
24680        out_len: *mut ::core::ffi::c_uint,
24681    ) -> *const u8;
24682}
24683unsafe extern "C" {
24684    pub fn SSL_SESSION_set1_id_context(
24685        session: *mut SSL_SESSION,
24686        sid_ctx: *const u8,
24687        sid_ctx_len: usize,
24688    ) -> ::core::ffi::c_int;
24689}
24690unsafe extern "C" {
24691    pub fn SSL_SESSION_should_be_single_use(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24692}
24693unsafe extern "C" {
24694    pub fn SSL_SESSION_is_resumable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24695}
24696unsafe extern "C" {
24697    pub fn SSL_SESSION_has_ticket(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24698}
24699unsafe extern "C" {
24700    pub fn SSL_SESSION_get0_ticket(
24701        session: *const SSL_SESSION,
24702        out_ticket: *mut *const u8,
24703        out_len: *mut usize,
24704    );
24705}
24706unsafe extern "C" {
24707    pub fn SSL_SESSION_set_ticket(
24708        session: *mut SSL_SESSION,
24709        ticket: *const u8,
24710        ticket_len: usize,
24711    ) -> ::core::ffi::c_int;
24712}
24713unsafe extern "C" {
24714    pub fn SSL_SESSION_get_ticket_lifetime_hint(session: *const SSL_SESSION) -> u32;
24715}
24716unsafe extern "C" {
24717    pub fn SSL_SESSION_get0_cipher(session: *const SSL_SESSION) -> *const SSL_CIPHER;
24718}
24719unsafe extern "C" {
24720    pub fn SSL_SESSION_has_peer_sha256(session: *const SSL_SESSION) -> ::core::ffi::c_int;
24721}
24722unsafe extern "C" {
24723    pub fn SSL_SESSION_get0_peer_sha256(
24724        session: *const SSL_SESSION,
24725        out_ptr: *mut *const u8,
24726        out_len: *mut usize,
24727    );
24728}
24729unsafe extern "C" {
24730    pub fn SSL_SESSION_is_resumable_across_names(session: *const SSL_SESSION)
24731        -> ::core::ffi::c_int;
24732}
24733unsafe extern "C" {
24734    pub fn SSL_CTX_set_session_cache_mode(
24735        ctx: *mut SSL_CTX,
24736        mode: ::core::ffi::c_int,
24737    ) -> ::core::ffi::c_int;
24738}
24739unsafe extern "C" {
24740    pub fn SSL_CTX_get_session_cache_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
24741}
24742unsafe extern "C" {
24743    pub fn SSL_set_session(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24744}
24745unsafe extern "C" {
24746    pub fn SSL_CTX_set_timeout(ctx: *mut SSL_CTX, timeout: u32) -> u32;
24747}
24748unsafe extern "C" {
24749    pub fn SSL_CTX_set_session_psk_dhe_timeout(ctx: *mut SSL_CTX, timeout: u32);
24750}
24751unsafe extern "C" {
24752    pub fn SSL_CTX_get_timeout(ctx: *const SSL_CTX) -> u32;
24753}
24754unsafe extern "C" {
24755    pub fn SSL_CTX_set_session_id_context(
24756        ctx: *mut SSL_CTX,
24757        sid_ctx: *const u8,
24758        sid_ctx_len: usize,
24759    ) -> ::core::ffi::c_int;
24760}
24761unsafe extern "C" {
24762    pub fn SSL_set_session_id_context(
24763        ssl: *mut SSL,
24764        sid_ctx: *const u8,
24765        sid_ctx_len: usize,
24766    ) -> ::core::ffi::c_int;
24767}
24768unsafe extern "C" {
24769    pub fn SSL_get0_session_id_context(ssl: *const SSL, out_len: *mut usize) -> *const u8;
24770}
24771unsafe extern "C" {
24772    pub fn SSL_CTX_sess_set_cache_size(
24773        ctx: *mut SSL_CTX,
24774        size: ::core::ffi::c_ulong,
24775    ) -> ::core::ffi::c_ulong;
24776}
24777unsafe extern "C" {
24778    pub fn SSL_CTX_sess_get_cache_size(ctx: *const SSL_CTX) -> ::core::ffi::c_ulong;
24779}
24780unsafe extern "C" {
24781    pub fn SSL_CTX_sess_number(ctx: *const SSL_CTX) -> usize;
24782}
24783unsafe extern "C" {
24784    pub fn SSL_CTX_add_session(ctx: *mut SSL_CTX, session: *mut SSL_SESSION) -> ::core::ffi::c_int;
24785}
24786unsafe extern "C" {
24787    pub fn SSL_CTX_remove_session(
24788        ctx: *mut SSL_CTX,
24789        session: *mut SSL_SESSION,
24790    ) -> ::core::ffi::c_int;
24791}
24792unsafe extern "C" {
24793    pub fn SSL_CTX_flush_sessions(ctx: *mut SSL_CTX, time: u64);
24794}
24795pub type SSL_new_session_cb = ::core::option::Option<
24796    unsafe extern "C" fn(ssl: *mut SSL, session: *mut SSL_SESSION) -> ::core::ffi::c_int,
24797>;
24798unsafe extern "C" {
24799    pub fn SSL_CTX_sess_set_new_cb(ctx: *mut SSL_CTX, new_session_cb: SSL_new_session_cb);
24800}
24801unsafe extern "C" {
24802    pub fn SSL_CTX_sess_get_new_cb(ctx: *mut SSL_CTX) -> SSL_new_session_cb;
24803}
24804pub type SSL_remove_session_cb =
24805    ::core::option::Option<unsafe extern "C" fn(ctx: *mut SSL_CTX, session: *mut SSL_SESSION)>;
24806unsafe extern "C" {
24807    pub fn SSL_CTX_sess_set_remove_cb(ctx: *mut SSL_CTX, remove_session_cb: SSL_remove_session_cb);
24808}
24809unsafe extern "C" {
24810    pub fn SSL_CTX_sess_get_remove_cb(ctx: *mut SSL_CTX) -> SSL_remove_session_cb;
24811}
24812pub type SSL_get_session_cb = ::core::option::Option<
24813    unsafe extern "C" fn(
24814        ssl: *mut SSL,
24815        id: *const u8,
24816        id_len: ::core::ffi::c_int,
24817        out_copy: *mut ::core::ffi::c_int,
24818    ) -> *mut SSL_SESSION,
24819>;
24820unsafe extern "C" {
24821    pub fn SSL_CTX_sess_set_get_cb(ctx: *mut SSL_CTX, get_session_cb: SSL_get_session_cb);
24822}
24823unsafe extern "C" {
24824    pub fn SSL_CTX_sess_get_get_cb(ctx: *mut SSL_CTX) -> SSL_get_session_cb;
24825}
24826unsafe extern "C" {
24827    pub fn SSL_magic_pending_session_ptr() -> *mut SSL_SESSION;
24828}
24829unsafe extern "C" {
24830    pub fn SSL_CTX_set_resumption_across_names_enabled(
24831        ctx: *mut SSL_CTX,
24832        enabled: ::core::ffi::c_int,
24833    );
24834}
24835unsafe extern "C" {
24836    pub fn SSL_set_resumption_across_names_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
24837}
24838unsafe extern "C" {
24839    pub fn SSL_CTX_get_tlsext_ticket_keys(
24840        ctx: *mut SSL_CTX,
24841        out: *mut ::core::ffi::c_void,
24842        len: usize,
24843    ) -> ::core::ffi::c_int;
24844}
24845unsafe extern "C" {
24846    pub fn SSL_CTX_set_tlsext_ticket_keys(
24847        ctx: *mut SSL_CTX,
24848        in_: *const ::core::ffi::c_void,
24849        len: usize,
24850    ) -> ::core::ffi::c_int;
24851}
24852unsafe extern "C" {
24853    pub fn SSL_CTX_set_tlsext_ticket_key_cb(
24854        ctx: *mut SSL_CTX,
24855        callback: ::core::option::Option<
24856            unsafe extern "C" fn(
24857                ssl: *mut SSL,
24858                key_name: *mut u8,
24859                iv: *mut u8,
24860                ctx: *mut EVP_CIPHER_CTX,
24861                hmac_ctx: *mut HMAC_CTX,
24862                encrypt: ::core::ffi::c_int,
24863            ) -> ::core::ffi::c_int,
24864        >,
24865    ) -> ::core::ffi::c_int;
24866}
24867pub const ssl_ticket_aead_result_t_ssl_ticket_aead_success: ssl_ticket_aead_result_t = 0;
24868pub const ssl_ticket_aead_result_t_ssl_ticket_aead_retry: ssl_ticket_aead_result_t = 1;
24869pub const ssl_ticket_aead_result_t_ssl_ticket_aead_ignore_ticket: ssl_ticket_aead_result_t = 2;
24870pub const ssl_ticket_aead_result_t_ssl_ticket_aead_error: ssl_ticket_aead_result_t = 3;
24871pub type ssl_ticket_aead_result_t = ::core::ffi::c_uint;
24872#[repr(C)]
24873#[derive(Debug, Copy, Clone)]
24874pub struct ssl_ticket_aead_method_st {
24875    pub max_overhead: ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> usize>,
24876    pub seal: ::core::option::Option<
24877        unsafe extern "C" fn(
24878            ssl: *mut SSL,
24879            out: *mut u8,
24880            out_len: *mut usize,
24881            max_out_len: usize,
24882            in_: *const u8,
24883            in_len: usize,
24884        ) -> ::core::ffi::c_int,
24885    >,
24886    pub open: ::core::option::Option<
24887        unsafe extern "C" fn(
24888            ssl: *mut SSL,
24889            out: *mut u8,
24890            out_len: *mut usize,
24891            max_out_len: usize,
24892            in_: *const u8,
24893            in_len: usize,
24894        ) -> ssl_ticket_aead_result_t,
24895    >,
24896}
24897unsafe extern "C" {
24898    pub fn SSL_CTX_set_ticket_aead_method(
24899        ctx: *mut SSL_CTX,
24900        aead_method: *const SSL_TICKET_AEAD_METHOD,
24901    );
24902}
24903unsafe extern "C" {
24904    pub fn SSL_process_tls13_new_session_ticket(
24905        ssl: *mut SSL,
24906        buf: *const u8,
24907        buf_len: usize,
24908    ) -> *mut SSL_SESSION;
24909}
24910unsafe extern "C" {
24911    pub fn SSL_CTX_set_num_tickets(ctx: *mut SSL_CTX, num_tickets: usize) -> ::core::ffi::c_int;
24912}
24913unsafe extern "C" {
24914    pub fn SSL_CTX_get_num_tickets(ctx: *const SSL_CTX) -> usize;
24915}
24916unsafe extern "C" {
24917    pub fn SSL_CTX_set1_group_ids(
24918        ctx: *mut SSL_CTX,
24919        group_ids: *const u16,
24920        num_group_ids: usize,
24921    ) -> ::core::ffi::c_int;
24922}
24923unsafe extern "C" {
24924    pub fn SSL_set1_group_ids(
24925        ssl: *mut SSL,
24926        group_ids: *const u16,
24927        num_group_ids: usize,
24928    ) -> ::core::ffi::c_int;
24929}
24930unsafe extern "C" {
24931    pub fn SSL_CTX_set1_group_ids_with_flags(
24932        ctx: *mut SSL_CTX,
24933        group_ids: *const u16,
24934        flags: *const u32,
24935        num_group_ids: usize,
24936    ) -> ::core::ffi::c_int;
24937}
24938unsafe extern "C" {
24939    pub fn SSL_set1_group_ids_with_flags(
24940        ssl: *mut SSL,
24941        group_ids: *const u16,
24942        flags: *const u32,
24943        num_group_ids: usize,
24944    ) -> ::core::ffi::c_int;
24945}
24946unsafe extern "C" {
24947    pub fn SSL_get_group_id(ssl: *const SSL) -> u16;
24948}
24949unsafe extern "C" {
24950    pub fn SSL_get_group_name(group_id: u16) -> *const ::core::ffi::c_char;
24951}
24952unsafe extern "C" {
24953    pub fn SSL_get_all_group_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
24954}
24955unsafe extern "C" {
24956    pub fn SSL_CTX_set1_groups(
24957        ctx: *mut SSL_CTX,
24958        groups: *const ::core::ffi::c_int,
24959        num_groups: usize,
24960    ) -> ::core::ffi::c_int;
24961}
24962unsafe extern "C" {
24963    pub fn SSL_set1_groups(
24964        ssl: *mut SSL,
24965        groups: *const ::core::ffi::c_int,
24966        num_groups: usize,
24967    ) -> ::core::ffi::c_int;
24968}
24969unsafe extern "C" {
24970    pub fn SSL_CTX_set1_groups_list(
24971        ctx: *mut SSL_CTX,
24972        groups: *const ::core::ffi::c_char,
24973    ) -> ::core::ffi::c_int;
24974}
24975unsafe extern "C" {
24976    pub fn SSL_set1_groups_list(
24977        ssl: *mut SSL,
24978        groups: *const ::core::ffi::c_char,
24979    ) -> ::core::ffi::c_int;
24980}
24981unsafe extern "C" {
24982    pub fn SSL_get_negotiated_group(ssl: *const SSL) -> ::core::ffi::c_int;
24983}
24984unsafe extern "C" {
24985    pub fn SSL_set1_client_key_shares(
24986        ssl: *mut SSL,
24987        group_ids: *const u16,
24988        num_group_ids: usize,
24989    ) -> ::core::ffi::c_int;
24990}
24991unsafe extern "C" {
24992    pub fn SSL_set1_server_supported_groups_hint(
24993        ssl: *mut SSL,
24994        server_groups: *const u16,
24995        num_server_groups: usize,
24996    ) -> ::core::ffi::c_int;
24997}
24998unsafe extern "C" {
24999    pub fn SSL_CTX_set_verify(
25000        ctx: *mut SSL_CTX,
25001        mode: ::core::ffi::c_int,
25002        callback: ::core::option::Option<
25003            unsafe extern "C" fn(
25004                ok: ::core::ffi::c_int,
25005                store_ctx: *mut X509_STORE_CTX,
25006            ) -> ::core::ffi::c_int,
25007        >,
25008    );
25009}
25010unsafe extern "C" {
25011    pub fn SSL_set_verify(
25012        ssl: *mut SSL,
25013        mode: ::core::ffi::c_int,
25014        callback: ::core::option::Option<
25015            unsafe extern "C" fn(
25016                ok: ::core::ffi::c_int,
25017                store_ctx: *mut X509_STORE_CTX,
25018            ) -> ::core::ffi::c_int,
25019        >,
25020    );
25021}
25022pub const ssl_verify_result_t_ssl_verify_ok: ssl_verify_result_t = 0;
25023pub const ssl_verify_result_t_ssl_verify_invalid: ssl_verify_result_t = 1;
25024pub const ssl_verify_result_t_ssl_verify_retry: ssl_verify_result_t = 2;
25025pub type ssl_verify_result_t = ::core::ffi::c_uint;
25026unsafe extern "C" {
25027    pub fn SSL_CTX_set_custom_verify(
25028        ctx: *mut SSL_CTX,
25029        mode: ::core::ffi::c_int,
25030        callback: ::core::option::Option<
25031            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
25032        >,
25033    );
25034}
25035unsafe extern "C" {
25036    pub fn SSL_set_custom_verify(
25037        ssl: *mut SSL,
25038        mode: ::core::ffi::c_int,
25039        callback: ::core::option::Option<
25040            unsafe extern "C" fn(ssl: *mut SSL, out_alert: *mut u8) -> ssl_verify_result_t,
25041        >,
25042    );
25043}
25044unsafe extern "C" {
25045    pub fn SSL_CTX_get_verify_mode(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
25046}
25047unsafe extern "C" {
25048    pub fn SSL_get_verify_mode(ssl: *const SSL) -> ::core::ffi::c_int;
25049}
25050unsafe extern "C" {
25051    pub fn SSL_CTX_get_verify_callback(
25052        ctx: *const SSL_CTX,
25053    ) -> ::core::option::Option<
25054        unsafe extern "C" fn(
25055            ctx: ::core::ffi::c_int,
25056            arg1: *mut X509_STORE_CTX,
25057        ) -> ::core::ffi::c_int,
25058    >;
25059}
25060unsafe extern "C" {
25061    pub fn SSL_get_verify_callback(
25062        ssl: *const SSL,
25063    ) -> ::core::option::Option<
25064        unsafe extern "C" fn(
25065            ssl: ::core::ffi::c_int,
25066            arg1: *mut X509_STORE_CTX,
25067        ) -> ::core::ffi::c_int,
25068    >;
25069}
25070unsafe extern "C" {
25071    pub fn SSL_set1_host(ssl: *mut SSL, hostname: *const ::core::ffi::c_char)
25072        -> ::core::ffi::c_int;
25073}
25074unsafe extern "C" {
25075    pub fn SSL_set_hostflags(ssl: *mut SSL, flags: ::core::ffi::c_uint);
25076}
25077unsafe extern "C" {
25078    pub fn SSL_CTX_set_verify_depth(ctx: *mut SSL_CTX, depth: ::core::ffi::c_int);
25079}
25080unsafe extern "C" {
25081    pub fn SSL_set_verify_depth(ssl: *mut SSL, depth: ::core::ffi::c_int);
25082}
25083unsafe extern "C" {
25084    pub fn SSL_CTX_get_verify_depth(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
25085}
25086unsafe extern "C" {
25087    pub fn SSL_get_verify_depth(ssl: *const SSL) -> ::core::ffi::c_int;
25088}
25089unsafe extern "C" {
25090    pub fn SSL_CTX_set1_param(
25091        ctx: *mut SSL_CTX,
25092        param: *const X509_VERIFY_PARAM,
25093    ) -> ::core::ffi::c_int;
25094}
25095unsafe extern "C" {
25096    pub fn SSL_set1_param(ssl: *mut SSL, param: *const X509_VERIFY_PARAM) -> ::core::ffi::c_int;
25097}
25098unsafe extern "C" {
25099    pub fn SSL_CTX_get0_param(ctx: *mut SSL_CTX) -> *mut X509_VERIFY_PARAM;
25100}
25101unsafe extern "C" {
25102    pub fn SSL_get0_param(ssl: *mut SSL) -> *mut X509_VERIFY_PARAM;
25103}
25104unsafe extern "C" {
25105    pub fn SSL_CTX_set_purpose(
25106        ctx: *mut SSL_CTX,
25107        purpose: ::core::ffi::c_int,
25108    ) -> ::core::ffi::c_int;
25109}
25110unsafe extern "C" {
25111    pub fn SSL_set_purpose(ssl: *mut SSL, purpose: ::core::ffi::c_int) -> ::core::ffi::c_int;
25112}
25113unsafe extern "C" {
25114    pub fn SSL_CTX_set_trust(ctx: *mut SSL_CTX, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
25115}
25116unsafe extern "C" {
25117    pub fn SSL_set_trust(ssl: *mut SSL, trust: ::core::ffi::c_int) -> ::core::ffi::c_int;
25118}
25119unsafe extern "C" {
25120    pub fn SSL_CTX_set_cert_store(ctx: *mut SSL_CTX, store: *mut X509_STORE);
25121}
25122unsafe extern "C" {
25123    pub fn SSL_CTX_get_cert_store(ctx: *const SSL_CTX) -> *mut X509_STORE;
25124}
25125unsafe extern "C" {
25126    pub fn SSL_CTX_set_default_verify_paths(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
25127}
25128unsafe extern "C" {
25129    pub fn SSL_CTX_load_verify_locations(
25130        ctx: *mut SSL_CTX,
25131        ca_file: *const ::core::ffi::c_char,
25132        ca_dir: *const ::core::ffi::c_char,
25133    ) -> ::core::ffi::c_int;
25134}
25135unsafe extern "C" {
25136    pub fn SSL_get_verify_result(ssl: *const SSL) -> ::core::ffi::c_long;
25137}
25138unsafe extern "C" {
25139    pub fn SSL_alert_from_verify_result(result: ::core::ffi::c_long) -> ::core::ffi::c_int;
25140}
25141unsafe extern "C" {
25142    pub fn SSL_get_ex_data_X509_STORE_CTX_idx() -> ::core::ffi::c_int;
25143}
25144unsafe extern "C" {
25145    pub fn SSL_CTX_set_cert_verify_callback(
25146        ctx: *mut SSL_CTX,
25147        callback: ::core::option::Option<
25148            unsafe extern "C" fn(
25149                store_ctx: *mut X509_STORE_CTX,
25150                arg: *mut ::core::ffi::c_void,
25151            ) -> ::core::ffi::c_int,
25152        >,
25153        arg: *mut ::core::ffi::c_void,
25154    );
25155}
25156unsafe extern "C" {
25157    pub fn SSL_enable_signed_cert_timestamps(ssl: *mut SSL);
25158}
25159unsafe extern "C" {
25160    pub fn SSL_CTX_enable_signed_cert_timestamps(ctx: *mut SSL_CTX);
25161}
25162unsafe extern "C" {
25163    pub fn SSL_enable_ocsp_stapling(ssl: *mut SSL);
25164}
25165unsafe extern "C" {
25166    pub fn SSL_CTX_enable_ocsp_stapling(ctx: *mut SSL_CTX);
25167}
25168unsafe extern "C" {
25169    pub fn SSL_CTX_set0_verify_cert_store(
25170        ctx: *mut SSL_CTX,
25171        store: *mut X509_STORE,
25172    ) -> ::core::ffi::c_int;
25173}
25174unsafe extern "C" {
25175    pub fn SSL_CTX_set1_verify_cert_store(
25176        ctx: *mut SSL_CTX,
25177        store: *mut X509_STORE,
25178    ) -> ::core::ffi::c_int;
25179}
25180unsafe extern "C" {
25181    pub fn SSL_set0_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25182}
25183unsafe extern "C" {
25184    pub fn SSL_set1_verify_cert_store(ssl: *mut SSL, store: *mut X509_STORE) -> ::core::ffi::c_int;
25185}
25186unsafe extern "C" {
25187    pub fn SSL_CTX_set_verify_algorithm_prefs(
25188        ctx: *mut SSL_CTX,
25189        prefs: *const u16,
25190        num_prefs: usize,
25191    ) -> ::core::ffi::c_int;
25192}
25193unsafe extern "C" {
25194    pub fn SSL_set_verify_algorithm_prefs(
25195        ssl: *mut SSL,
25196        prefs: *const u16,
25197        num_prefs: usize,
25198    ) -> ::core::ffi::c_int;
25199}
25200unsafe extern "C" {
25201    pub fn SSL_set_client_CA_list(ssl: *mut SSL, name_list: *mut stack_st_X509_NAME);
25202}
25203unsafe extern "C" {
25204    pub fn SSL_CTX_set_client_CA_list(ctx: *mut SSL_CTX, name_list: *mut stack_st_X509_NAME);
25205}
25206unsafe extern "C" {
25207    pub fn SSL_set0_client_CAs(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25208}
25209unsafe extern "C" {
25210    pub fn SSL_set0_CA_names(ssl: *mut SSL, name_list: *mut stack_st_CRYPTO_BUFFER);
25211}
25212unsafe extern "C" {
25213    pub fn SSL_CTX_set0_client_CAs(ctx: *mut SSL_CTX, name_list: *mut stack_st_CRYPTO_BUFFER);
25214}
25215unsafe extern "C" {
25216    pub fn SSL_get_client_CA_list(ssl: *const SSL) -> *mut stack_st_X509_NAME;
25217}
25218unsafe extern "C" {
25219    pub fn SSL_get0_server_requested_CAs(ssl: *const SSL) -> *const stack_st_CRYPTO_BUFFER;
25220}
25221unsafe extern "C" {
25222    pub fn SSL_CTX_get_client_CA_list(ctx: *const SSL_CTX) -> *mut stack_st_X509_NAME;
25223}
25224unsafe extern "C" {
25225    pub fn SSL_add_client_CA(ssl: *mut SSL, x509: *mut X509) -> ::core::ffi::c_int;
25226}
25227unsafe extern "C" {
25228    pub fn SSL_CTX_add_client_CA(ctx: *mut SSL_CTX, x509: *mut X509) -> ::core::ffi::c_int;
25229}
25230unsafe extern "C" {
25231    pub fn SSL_load_client_CA_file(file: *const ::core::ffi::c_char) -> *mut stack_st_X509_NAME;
25232}
25233unsafe extern "C" {
25234    pub fn SSL_dup_CA_list(list: *mut stack_st_X509_NAME) -> *mut stack_st_X509_NAME;
25235}
25236unsafe extern "C" {
25237    pub fn SSL_add_file_cert_subjects_to_stack(
25238        out: *mut stack_st_X509_NAME,
25239        file: *const ::core::ffi::c_char,
25240    ) -> ::core::ffi::c_int;
25241}
25242unsafe extern "C" {
25243    pub fn SSL_add_bio_cert_subjects_to_stack(
25244        out: *mut stack_st_X509_NAME,
25245        bio: *mut BIO,
25246    ) -> ::core::ffi::c_int;
25247}
25248unsafe extern "C" {
25249    pub fn SSL_CREDENTIAL_set1_trust_anchor_id(
25250        cred: *mut SSL_CREDENTIAL,
25251        id: *const u8,
25252        id_len: usize,
25253    ) -> ::core::ffi::c_int;
25254}
25255unsafe extern "C" {
25256    pub fn SSL_CREDENTIAL_add1_trust_anchor_group_inclusion(
25257        cred: *mut SSL_CREDENTIAL,
25258        base: *const u8,
25259        base_len: usize,
25260        min: u64,
25261        max: u64,
25262    ) -> ::core::ffi::c_int;
25263}
25264unsafe extern "C" {
25265    pub fn SSL_CTX_set1_requested_trust_anchors(
25266        ctx: *mut SSL_CTX,
25267        ids: *const u8,
25268        ids_len: usize,
25269    ) -> ::core::ffi::c_int;
25270}
25271unsafe extern "C" {
25272    pub fn SSL_set1_requested_trust_anchors(
25273        ssl: *mut SSL,
25274        ids: *const u8,
25275        ids_len: usize,
25276    ) -> ::core::ffi::c_int;
25277}
25278unsafe extern "C" {
25279    pub fn SSL_peer_matched_trust_anchor(ssl: *const SSL) -> ::core::ffi::c_int;
25280}
25281unsafe extern "C" {
25282    pub fn SSL_get0_peer_available_trust_anchors(
25283        ssl: *const SSL,
25284        out: *mut *const u8,
25285        out_len: *mut usize,
25286    );
25287}
25288unsafe extern "C" {
25289    pub fn SSL_CTX_set1_available_trust_anchors(
25290        ctx: *mut SSL_CTX,
25291        ids: *const u8,
25292        ids_len: usize,
25293    ) -> ::core::ffi::c_int;
25294}
25295unsafe extern "C" {
25296    pub fn SSL_set1_available_trust_anchors(
25297        ssl: *mut SSL,
25298        ids: *const u8,
25299        ids_len: usize,
25300    ) -> ::core::ffi::c_int;
25301}
25302unsafe extern "C" {
25303    pub fn SSL_set_tlsext_host_name(
25304        ssl: *mut SSL,
25305        name: *const ::core::ffi::c_char,
25306    ) -> ::core::ffi::c_int;
25307}
25308unsafe extern "C" {
25309    pub fn SSL_get_servername(
25310        ssl: *const SSL,
25311        type_: ::core::ffi::c_int,
25312    ) -> *const ::core::ffi::c_char;
25313}
25314unsafe extern "C" {
25315    pub fn SSL_get_servername_type(ssl: *const SSL) -> ::core::ffi::c_int;
25316}
25317unsafe extern "C" {
25318    pub fn SSL_CTX_set_tlsext_servername_callback(
25319        ctx: *mut SSL_CTX,
25320        callback: ::core::option::Option<
25321            unsafe extern "C" fn(
25322                ssl: *mut SSL,
25323                out_alert: *mut ::core::ffi::c_int,
25324                arg: *mut ::core::ffi::c_void,
25325            ) -> ::core::ffi::c_int,
25326        >,
25327    ) -> ::core::ffi::c_int;
25328}
25329unsafe extern "C" {
25330    pub fn SSL_CTX_set_tlsext_servername_arg(
25331        ctx: *mut SSL_CTX,
25332        arg: *mut ::core::ffi::c_void,
25333    ) -> ::core::ffi::c_int;
25334}
25335unsafe extern "C" {
25336    pub fn SSL_set_SSL_CTX(ssl: *mut SSL, ctx: *mut SSL_CTX) -> *mut SSL_CTX;
25337}
25338unsafe extern "C" {
25339    pub fn SSL_CTX_set_alpn_protos(
25340        ctx: *mut SSL_CTX,
25341        protos: *const u8,
25342        protos_len: usize,
25343    ) -> ::core::ffi::c_int;
25344}
25345unsafe extern "C" {
25346    pub fn SSL_set_alpn_protos(
25347        ssl: *mut SSL,
25348        protos: *const u8,
25349        protos_len: usize,
25350    ) -> ::core::ffi::c_int;
25351}
25352unsafe extern "C" {
25353    pub fn SSL_CTX_set_alpn_select_cb(
25354        ctx: *mut SSL_CTX,
25355        cb: ::core::option::Option<
25356            unsafe extern "C" fn(
25357                ssl: *mut SSL,
25358                out: *mut *const u8,
25359                out_len: *mut u8,
25360                in_: *const u8,
25361                in_len: ::core::ffi::c_uint,
25362                arg: *mut ::core::ffi::c_void,
25363            ) -> ::core::ffi::c_int,
25364        >,
25365        arg: *mut ::core::ffi::c_void,
25366    );
25367}
25368unsafe extern "C" {
25369    pub fn SSL_get0_alpn_selected(
25370        ssl: *const SSL,
25371        out_data: *mut *const u8,
25372        out_len: *mut ::core::ffi::c_uint,
25373    );
25374}
25375unsafe extern "C" {
25376    pub fn SSL_CTX_set_allow_unknown_alpn_protos(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25377}
25378unsafe extern "C" {
25379    pub fn SSL_add_application_settings(
25380        ssl: *mut SSL,
25381        proto: *const u8,
25382        proto_len: usize,
25383        settings: *const u8,
25384        settings_len: usize,
25385    ) -> ::core::ffi::c_int;
25386}
25387unsafe extern "C" {
25388    pub fn SSL_get0_peer_application_settings(
25389        ssl: *const SSL,
25390        out_data: *mut *const u8,
25391        out_len: *mut usize,
25392    );
25393}
25394unsafe extern "C" {
25395    pub fn SSL_has_application_settings(ssl: *const SSL) -> ::core::ffi::c_int;
25396}
25397unsafe extern "C" {
25398    pub fn SSL_set_alps_use_new_codepoint(ssl: *mut SSL, use_new: ::core::ffi::c_int);
25399}
25400pub type ssl_cert_compression_func_t = ::core::option::Option<
25401    unsafe extern "C" fn(
25402        ssl: *mut SSL,
25403        out: *mut CBB,
25404        in_: *const u8,
25405        in_len: usize,
25406    ) -> ::core::ffi::c_int,
25407>;
25408pub type ssl_cert_decompression_func_t = ::core::option::Option<
25409    unsafe extern "C" fn(
25410        ssl: *mut SSL,
25411        out: *mut *mut CRYPTO_BUFFER,
25412        uncompressed_len: usize,
25413        in_: *const u8,
25414        in_len: usize,
25415    ) -> ::core::ffi::c_int,
25416>;
25417unsafe extern "C" {
25418    pub fn SSL_CTX_add_cert_compression_alg(
25419        ctx: *mut SSL_CTX,
25420        alg_id: u16,
25421        compress: ssl_cert_compression_func_t,
25422        decompress: ssl_cert_decompression_func_t,
25423    ) -> ::core::ffi::c_int;
25424}
25425unsafe extern "C" {
25426    pub fn SSL_CTX_set_next_protos_advertised_cb(
25427        ctx: *mut SSL_CTX,
25428        cb: ::core::option::Option<
25429            unsafe extern "C" fn(
25430                ssl: *mut SSL,
25431                out: *mut *const u8,
25432                out_len: *mut ::core::ffi::c_uint,
25433                arg: *mut ::core::ffi::c_void,
25434            ) -> ::core::ffi::c_int,
25435        >,
25436        arg: *mut ::core::ffi::c_void,
25437    );
25438}
25439unsafe extern "C" {
25440    pub fn SSL_CTX_set_next_proto_select_cb(
25441        ctx: *mut SSL_CTX,
25442        cb: ::core::option::Option<
25443            unsafe extern "C" fn(
25444                ssl: *mut SSL,
25445                out: *mut *mut u8,
25446                out_len: *mut u8,
25447                in_: *const u8,
25448                in_len: ::core::ffi::c_uint,
25449                arg: *mut ::core::ffi::c_void,
25450            ) -> ::core::ffi::c_int,
25451        >,
25452        arg: *mut ::core::ffi::c_void,
25453    );
25454}
25455unsafe extern "C" {
25456    pub fn SSL_get0_next_proto_negotiated(
25457        ssl: *const SSL,
25458        out_data: *mut *const u8,
25459        out_len: *mut ::core::ffi::c_uint,
25460    );
25461}
25462unsafe extern "C" {
25463    pub fn SSL_select_next_proto(
25464        out: *mut *mut u8,
25465        out_len: *mut u8,
25466        peer: *const u8,
25467        peer_len: ::core::ffi::c_uint,
25468        supported: *const u8,
25469        supported_len: ::core::ffi::c_uint,
25470    ) -> ::core::ffi::c_int;
25471}
25472unsafe extern "C" {
25473    pub fn SSL_CTX_set_tls_channel_id_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25474}
25475unsafe extern "C" {
25476    pub fn SSL_set_tls_channel_id_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
25477}
25478unsafe extern "C" {
25479    pub fn SSL_CTX_set1_tls_channel_id(
25480        ctx: *mut SSL_CTX,
25481        private_key: *mut EVP_PKEY,
25482    ) -> ::core::ffi::c_int;
25483}
25484unsafe extern "C" {
25485    pub fn SSL_set1_tls_channel_id(ssl: *mut SSL, private_key: *mut EVP_PKEY)
25486        -> ::core::ffi::c_int;
25487}
25488unsafe extern "C" {
25489    pub fn SSL_get_tls_channel_id(ssl: *mut SSL, out: *mut u8, max_out: usize) -> usize;
25490}
25491#[repr(C)]
25492#[derive(Debug, Copy, Clone)]
25493pub struct srtp_protection_profile_st {
25494    pub name: *const ::core::ffi::c_char,
25495    pub id: ::core::ffi::c_ulong,
25496}
25497#[repr(C)]
25498#[derive(Debug)]
25499pub struct stack_st_SRTP_PROTECTION_PROFILE {
25500    _unused: [u8; 0],
25501}
25502pub type sk_SRTP_PROTECTION_PROFILE_free_func =
25503    ::core::option::Option<unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE)>;
25504pub type sk_SRTP_PROTECTION_PROFILE_copy_func = ::core::option::Option<
25505    unsafe extern "C" fn(arg1: *const SRTP_PROTECTION_PROFILE) -> *const SRTP_PROTECTION_PROFILE,
25506>;
25507pub type sk_SRTP_PROTECTION_PROFILE_cmp_func = ::core::option::Option<
25508    unsafe extern "C" fn(
25509        arg1: *const *const SRTP_PROTECTION_PROFILE,
25510        arg2: *const *const SRTP_PROTECTION_PROFILE,
25511    ) -> ::core::ffi::c_int,
25512>;
25513pub type sk_SRTP_PROTECTION_PROFILE_delete_if_func = ::core::option::Option<
25514    unsafe extern "C" fn(
25515        arg1: *const SRTP_PROTECTION_PROFILE,
25516        arg2: *mut ::core::ffi::c_void,
25517    ) -> ::core::ffi::c_int,
25518>;
25519unsafe extern "C" {
25520    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_free_func__extern"]
25521    pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(
25522        free_func: OPENSSL_sk_free_func,
25523        ptr: *mut ::core::ffi::c_void,
25524    );
25525}
25526unsafe extern "C" {
25527    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_copy_func__extern"]
25528    pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(
25529        copy_func: OPENSSL_sk_copy_func,
25530        ptr: *const ::core::ffi::c_void,
25531    ) -> *mut ::core::ffi::c_void;
25532}
25533unsafe extern "C" {
25534    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_cmp_func__extern"]
25535    pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(
25536        cmp_func: OPENSSL_sk_cmp_func,
25537        a: *const ::core::ffi::c_void,
25538        b: *const ::core::ffi::c_void,
25539    ) -> ::core::ffi::c_int;
25540}
25541unsafe extern "C" {
25542    #[link_name = "sk_SRTP_PROTECTION_PROFILE_call_delete_if_func__extern"]
25543    pub fn sk_SRTP_PROTECTION_PROFILE_call_delete_if_func(
25544        func: OPENSSL_sk_delete_if_func,
25545        obj: *mut ::core::ffi::c_void,
25546        data: *mut ::core::ffi::c_void,
25547    ) -> ::core::ffi::c_int;
25548}
25549unsafe extern "C" {
25550    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new__extern"]
25551    pub fn sk_SRTP_PROTECTION_PROFILE_new(
25552        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25553    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25554}
25555unsafe extern "C" {
25556    #[link_name = "sk_SRTP_PROTECTION_PROFILE_new_null__extern"]
25557    pub fn sk_SRTP_PROTECTION_PROFILE_new_null() -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25558}
25559unsafe extern "C" {
25560    #[link_name = "sk_SRTP_PROTECTION_PROFILE_num__extern"]
25561    pub fn sk_SRTP_PROTECTION_PROFILE_num(sk: *const stack_st_SRTP_PROTECTION_PROFILE) -> usize;
25562}
25563unsafe extern "C" {
25564    #[link_name = "sk_SRTP_PROTECTION_PROFILE_zero__extern"]
25565    pub fn sk_SRTP_PROTECTION_PROFILE_zero(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25566}
25567unsafe extern "C" {
25568    #[link_name = "sk_SRTP_PROTECTION_PROFILE_value__extern"]
25569    pub fn sk_SRTP_PROTECTION_PROFILE_value(
25570        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25571        i: usize,
25572    ) -> *const SRTP_PROTECTION_PROFILE;
25573}
25574unsafe extern "C" {
25575    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set__extern"]
25576    pub fn sk_SRTP_PROTECTION_PROFILE_set(
25577        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25578        i: usize,
25579        p: *const SRTP_PROTECTION_PROFILE,
25580    ) -> *const SRTP_PROTECTION_PROFILE;
25581}
25582unsafe extern "C" {
25583    #[link_name = "sk_SRTP_PROTECTION_PROFILE_free__extern"]
25584    pub fn sk_SRTP_PROTECTION_PROFILE_free(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25585}
25586unsafe extern "C" {
25587    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop_free__extern"]
25588    pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(
25589        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25590        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25591    );
25592}
25593unsafe extern "C" {
25594    #[link_name = "sk_SRTP_PROTECTION_PROFILE_insert__extern"]
25595    pub fn sk_SRTP_PROTECTION_PROFILE_insert(
25596        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25597        p: *const SRTP_PROTECTION_PROFILE,
25598        where_: usize,
25599    ) -> usize;
25600}
25601unsafe extern "C" {
25602    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete__extern"]
25603    pub fn sk_SRTP_PROTECTION_PROFILE_delete(
25604        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25605        where_: usize,
25606    ) -> *const SRTP_PROTECTION_PROFILE;
25607}
25608unsafe extern "C" {
25609    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_ptr__extern"]
25610    pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(
25611        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25612        p: *const SRTP_PROTECTION_PROFILE,
25613    ) -> *const SRTP_PROTECTION_PROFILE;
25614}
25615unsafe extern "C" {
25616    #[link_name = "sk_SRTP_PROTECTION_PROFILE_delete_if__extern"]
25617    pub fn sk_SRTP_PROTECTION_PROFILE_delete_if(
25618        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25619        func: sk_SRTP_PROTECTION_PROFILE_delete_if_func,
25620        data: *mut ::core::ffi::c_void,
25621    );
25622}
25623unsafe extern "C" {
25624    #[link_name = "sk_SRTP_PROTECTION_PROFILE_find__extern"]
25625    pub fn sk_SRTP_PROTECTION_PROFILE_find(
25626        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25627        out_index: *mut usize,
25628        p: *const SRTP_PROTECTION_PROFILE,
25629    ) -> ::core::ffi::c_int;
25630}
25631unsafe extern "C" {
25632    #[link_name = "sk_SRTP_PROTECTION_PROFILE_shift__extern"]
25633    pub fn sk_SRTP_PROTECTION_PROFILE_shift(
25634        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25635    ) -> *const SRTP_PROTECTION_PROFILE;
25636}
25637unsafe extern "C" {
25638    #[link_name = "sk_SRTP_PROTECTION_PROFILE_push__extern"]
25639    pub fn sk_SRTP_PROTECTION_PROFILE_push(
25640        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25641        p: *const SRTP_PROTECTION_PROFILE,
25642    ) -> usize;
25643}
25644unsafe extern "C" {
25645    #[link_name = "sk_SRTP_PROTECTION_PROFILE_pop__extern"]
25646    pub fn sk_SRTP_PROTECTION_PROFILE_pop(
25647        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25648    ) -> *const SRTP_PROTECTION_PROFILE;
25649}
25650unsafe extern "C" {
25651    #[link_name = "sk_SRTP_PROTECTION_PROFILE_dup__extern"]
25652    pub fn sk_SRTP_PROTECTION_PROFILE_dup(
25653        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25654    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25655}
25656unsafe extern "C" {
25657    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort__extern"]
25658    pub fn sk_SRTP_PROTECTION_PROFILE_sort(sk: *mut stack_st_SRTP_PROTECTION_PROFILE);
25659}
25660unsafe extern "C" {
25661    #[link_name = "sk_SRTP_PROTECTION_PROFILE_sort_and_dedup__extern"]
25662    pub fn sk_SRTP_PROTECTION_PROFILE_sort_and_dedup(
25663        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25664        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25665    );
25666}
25667unsafe extern "C" {
25668    #[link_name = "sk_SRTP_PROTECTION_PROFILE_is_sorted__extern"]
25669    pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(
25670        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25671    ) -> ::core::ffi::c_int;
25672}
25673unsafe extern "C" {
25674    #[link_name = "sk_SRTP_PROTECTION_PROFILE_set_cmp_func__extern"]
25675    pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(
25676        sk: *mut stack_st_SRTP_PROTECTION_PROFILE,
25677        comp: sk_SRTP_PROTECTION_PROFILE_cmp_func,
25678    ) -> sk_SRTP_PROTECTION_PROFILE_cmp_func;
25679}
25680unsafe extern "C" {
25681    #[link_name = "sk_SRTP_PROTECTION_PROFILE_deep_copy__extern"]
25682    pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(
25683        sk: *const stack_st_SRTP_PROTECTION_PROFILE,
25684        copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func,
25685        free_func: sk_SRTP_PROTECTION_PROFILE_free_func,
25686    ) -> *mut stack_st_SRTP_PROTECTION_PROFILE;
25687}
25688unsafe extern "C" {
25689    pub fn SSL_CTX_set_srtp_profiles(
25690        ctx: *mut SSL_CTX,
25691        profiles: *const ::core::ffi::c_char,
25692    ) -> ::core::ffi::c_int;
25693}
25694unsafe extern "C" {
25695    pub fn SSL_set_srtp_profiles(
25696        ssl: *mut SSL,
25697        profiles: *const ::core::ffi::c_char,
25698    ) -> ::core::ffi::c_int;
25699}
25700unsafe extern "C" {
25701    pub fn SSL_get_srtp_profiles(ssl: *const SSL) -> *const stack_st_SRTP_PROTECTION_PROFILE;
25702}
25703unsafe extern "C" {
25704    pub fn SSL_get_selected_srtp_profile(ssl: *mut SSL) -> *const SRTP_PROTECTION_PROFILE;
25705}
25706unsafe extern "C" {
25707    pub fn SSL_CREDENTIAL_new_pre_shared_key(
25708        key: *const u8,
25709        key_len: usize,
25710        id: *const u8,
25711        id_len: usize,
25712        md: *const EVP_MD,
25713        context: *const u8,
25714        context_len: usize,
25715    ) -> *mut SSL_CREDENTIAL;
25716}
25717unsafe extern "C" {
25718    pub fn SSL_CREDENTIAL_get0_pre_shared_key_id(
25719        cred: *const SSL_CREDENTIAL,
25720        id_len: *mut usize,
25721    ) -> *const u8;
25722}
25723unsafe extern "C" {
25724    pub fn SSL_CTX_set_psk_client_callback(
25725        ctx: *mut SSL_CTX,
25726        cb: ::core::option::Option<
25727            unsafe extern "C" fn(
25728                ssl: *mut SSL,
25729                hint: *const ::core::ffi::c_char,
25730                identity: *mut ::core::ffi::c_char,
25731                max_identity_len: ::core::ffi::c_uint,
25732                psk: *mut u8,
25733                max_psk_len: ::core::ffi::c_uint,
25734            ) -> ::core::ffi::c_uint,
25735        >,
25736    );
25737}
25738unsafe extern "C" {
25739    pub fn SSL_set_psk_client_callback(
25740        ssl: *mut SSL,
25741        cb: ::core::option::Option<
25742            unsafe extern "C" fn(
25743                ssl: *mut SSL,
25744                hint: *const ::core::ffi::c_char,
25745                identity: *mut ::core::ffi::c_char,
25746                max_identity_len: ::core::ffi::c_uint,
25747                psk: *mut u8,
25748                max_psk_len: ::core::ffi::c_uint,
25749            ) -> ::core::ffi::c_uint,
25750        >,
25751    );
25752}
25753unsafe extern "C" {
25754    pub fn SSL_CTX_set_psk_server_callback(
25755        ctx: *mut SSL_CTX,
25756        cb: ::core::option::Option<
25757            unsafe extern "C" fn(
25758                ssl: *mut SSL,
25759                identity: *const ::core::ffi::c_char,
25760                psk: *mut u8,
25761                max_psk_len: ::core::ffi::c_uint,
25762            ) -> ::core::ffi::c_uint,
25763        >,
25764    );
25765}
25766unsafe extern "C" {
25767    pub fn SSL_set_psk_server_callback(
25768        ssl: *mut SSL,
25769        cb: ::core::option::Option<
25770            unsafe extern "C" fn(
25771                ssl: *mut SSL,
25772                identity: *const ::core::ffi::c_char,
25773                psk: *mut u8,
25774                max_psk_len: ::core::ffi::c_uint,
25775            ) -> ::core::ffi::c_uint,
25776        >,
25777    );
25778}
25779unsafe extern "C" {
25780    pub fn SSL_CTX_use_psk_identity_hint(
25781        ctx: *mut SSL_CTX,
25782        identity_hint: *const ::core::ffi::c_char,
25783    ) -> ::core::ffi::c_int;
25784}
25785unsafe extern "C" {
25786    pub fn SSL_use_psk_identity_hint(
25787        ssl: *mut SSL,
25788        identity_hint: *const ::core::ffi::c_char,
25789    ) -> ::core::ffi::c_int;
25790}
25791unsafe extern "C" {
25792    pub fn SSL_get_psk_identity_hint(ssl: *const SSL) -> *const ::core::ffi::c_char;
25793}
25794unsafe extern "C" {
25795    pub fn SSL_get_psk_identity(ssl: *const SSL) -> *const ::core::ffi::c_char;
25796}
25797unsafe extern "C" {
25798    pub fn SSL_CREDENTIAL_new_delegated() -> *mut SSL_CREDENTIAL;
25799}
25800unsafe extern "C" {
25801    pub fn SSL_CREDENTIAL_set1_delegated_credential(
25802        cred: *mut SSL_CREDENTIAL,
25803        dc: *mut CRYPTO_BUFFER,
25804    ) -> ::core::ffi::c_int;
25805}
25806unsafe extern "C" {
25807    pub fn SSL_CREDENTIAL_new_raw_public_key(pkey: *mut EVP_PKEY) -> *mut SSL_CREDENTIAL;
25808}
25809unsafe extern "C" {
25810    pub fn SSL_CREDENTIAL_new_raw_public_key_custom(
25811        pubkey: *mut EVP_PKEY,
25812        method: *const SSL_PRIVATE_KEY_METHOD,
25813    ) -> *mut SSL_CREDENTIAL;
25814}
25815unsafe extern "C" {
25816    pub fn SSL_CTX_set1_accepted_peer_cert_types(
25817        ctx: *mut SSL_CTX,
25818        values: *const u8,
25819        num_values: usize,
25820    ) -> ::core::ffi::c_int;
25821}
25822unsafe extern "C" {
25823    pub fn SSL_set1_accepted_peer_cert_types(
25824        ssl: *mut SSL,
25825        values: *const u8,
25826        num_values: usize,
25827    ) -> ::core::ffi::c_int;
25828}
25829unsafe extern "C" {
25830    pub fn SSL_CTX_set1_available_client_cert_types(
25831        ctx: *mut SSL_CTX,
25832        values: *const u8,
25833        num_values: usize,
25834    ) -> ::core::ffi::c_int;
25835}
25836unsafe extern "C" {
25837    pub fn SSL_set1_available_client_cert_types(
25838        ssl: *mut SSL,
25839        values: *const u8,
25840        num_values: usize,
25841    ) -> ::core::ffi::c_int;
25842}
25843unsafe extern "C" {
25844    pub fn SSL_get_peer_cert_type(ssl: *const SSL) -> ::core::ffi::c_int;
25845}
25846unsafe extern "C" {
25847    pub fn SSL_get0_peer_rpk(ssl: *const SSL) -> *mut EVP_PKEY;
25848}
25849unsafe extern "C" {
25850    pub fn SSL_spake2plusv1_register(
25851        out_w0: *mut u8,
25852        out_w1: *mut u8,
25853        out_registration_record: *mut u8,
25854        password: *const u8,
25855        password_len: usize,
25856        client_identity: *const u8,
25857        client_identity_len: usize,
25858        server_identity: *const u8,
25859        server_identity_len: usize,
25860    ) -> ::core::ffi::c_int;
25861}
25862unsafe extern "C" {
25863    pub fn SSL_CREDENTIAL_new_spake2plusv1_client(
25864        context: *const u8,
25865        context_len: usize,
25866        client_identity: *const u8,
25867        client_identity_len: usize,
25868        server_identity: *const u8,
25869        server_identity_len: usize,
25870        error_limit: u32,
25871        w0: *const u8,
25872        w0_len: usize,
25873        w1: *const u8,
25874        w1_len: usize,
25875    ) -> *mut SSL_CREDENTIAL;
25876}
25877unsafe extern "C" {
25878    pub fn SSL_CREDENTIAL_new_spake2plusv1_server(
25879        context: *const u8,
25880        context_len: usize,
25881        client_identity: *const u8,
25882        client_identity_len: usize,
25883        server_identity: *const u8,
25884        server_identity_len: usize,
25885        rate_limit: u32,
25886        w0: *const u8,
25887        w0_len: usize,
25888        registration_record: *const u8,
25889        registration_record_len: usize,
25890    ) -> *mut SSL_CREDENTIAL;
25891}
25892pub const ssl_encryption_level_t_ssl_encryption_initial: ssl_encryption_level_t = 0;
25893pub const ssl_encryption_level_t_ssl_encryption_early_data: ssl_encryption_level_t = 1;
25894pub const ssl_encryption_level_t_ssl_encryption_handshake: ssl_encryption_level_t = 2;
25895pub const ssl_encryption_level_t_ssl_encryption_application: ssl_encryption_level_t = 3;
25896pub type ssl_encryption_level_t = ::core::ffi::c_uint;
25897#[repr(C)]
25898#[derive(Debug, Copy, Clone)]
25899pub struct ssl_quic_method_st {
25900    pub set_read_secret: ::core::option::Option<
25901        unsafe extern "C" fn(
25902            ssl: *mut SSL,
25903            level: ssl_encryption_level_t,
25904            cipher: *const SSL_CIPHER,
25905            secret: *const u8,
25906            secret_len: usize,
25907        ) -> ::core::ffi::c_int,
25908    >,
25909    pub set_write_secret: ::core::option::Option<
25910        unsafe extern "C" fn(
25911            ssl: *mut SSL,
25912            level: ssl_encryption_level_t,
25913            cipher: *const SSL_CIPHER,
25914            secret: *const u8,
25915            secret_len: usize,
25916        ) -> ::core::ffi::c_int,
25917    >,
25918    pub add_handshake_data: ::core::option::Option<
25919        unsafe extern "C" fn(
25920            ssl: *mut SSL,
25921            level: ssl_encryption_level_t,
25922            data: *const u8,
25923            len: usize,
25924        ) -> ::core::ffi::c_int,
25925    >,
25926    pub flush_flight:
25927        ::core::option::Option<unsafe extern "C" fn(ssl: *mut SSL) -> ::core::ffi::c_int>,
25928    pub send_alert: ::core::option::Option<
25929        unsafe extern "C" fn(
25930            ssl: *mut SSL,
25931            level: ssl_encryption_level_t,
25932            alert: u8,
25933        ) -> ::core::ffi::c_int,
25934    >,
25935}
25936unsafe extern "C" {
25937    pub fn SSL_quic_max_handshake_flight_len(
25938        ssl: *const SSL,
25939        level: ssl_encryption_level_t,
25940    ) -> usize;
25941}
25942unsafe extern "C" {
25943    pub fn SSL_quic_read_level(ssl: *const SSL) -> ssl_encryption_level_t;
25944}
25945unsafe extern "C" {
25946    pub fn SSL_quic_write_level(ssl: *const SSL) -> ssl_encryption_level_t;
25947}
25948unsafe extern "C" {
25949    pub fn SSL_provide_quic_data(
25950        ssl: *mut SSL,
25951        level: ssl_encryption_level_t,
25952        data: *const u8,
25953        len: usize,
25954    ) -> ::core::ffi::c_int;
25955}
25956unsafe extern "C" {
25957    pub fn SSL_process_quic_post_handshake(ssl: *mut SSL) -> ::core::ffi::c_int;
25958}
25959unsafe extern "C" {
25960    pub fn SSL_CTX_set_quic_method(
25961        ctx: *mut SSL_CTX,
25962        quic_method: *const SSL_QUIC_METHOD,
25963    ) -> ::core::ffi::c_int;
25964}
25965unsafe extern "C" {
25966    pub fn SSL_set_quic_method(
25967        ssl: *mut SSL,
25968        quic_method: *const SSL_QUIC_METHOD,
25969    ) -> ::core::ffi::c_int;
25970}
25971unsafe extern "C" {
25972    pub fn SSL_set_quic_transport_params(
25973        ssl: *mut SSL,
25974        params: *const u8,
25975        params_len: usize,
25976    ) -> ::core::ffi::c_int;
25977}
25978unsafe extern "C" {
25979    pub fn SSL_get_peer_quic_transport_params(
25980        ssl: *const SSL,
25981        out_params: *mut *const u8,
25982        out_params_len: *mut usize,
25983    );
25984}
25985unsafe extern "C" {
25986    pub fn SSL_set_quic_use_legacy_codepoint(ssl: *mut SSL, use_legacy: ::core::ffi::c_int);
25987}
25988unsafe extern "C" {
25989    pub fn SSL_set_quic_early_data_context(
25990        ssl: *mut SSL,
25991        context: *const u8,
25992        context_len: usize,
25993    ) -> ::core::ffi::c_int;
25994}
25995unsafe extern "C" {
25996    pub fn SSL_CTX_set_early_data_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
25997}
25998unsafe extern "C" {
25999    pub fn SSL_set_early_data_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
26000}
26001unsafe extern "C" {
26002    pub fn SSL_in_early_data(ssl: *const SSL) -> ::core::ffi::c_int;
26003}
26004unsafe extern "C" {
26005    pub fn SSL_SESSION_early_data_capable(session: *const SSL_SESSION) -> ::core::ffi::c_int;
26006}
26007unsafe extern "C" {
26008    pub fn SSL_SESSION_copy_without_early_data(session: *mut SSL_SESSION) -> *mut SSL_SESSION;
26009}
26010unsafe extern "C" {
26011    pub fn SSL_early_data_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
26012}
26013unsafe extern "C" {
26014    pub fn SSL_reset_early_data_reject(ssl: *mut SSL);
26015}
26016unsafe extern "C" {
26017    pub fn SSL_get_ticket_age_skew(ssl: *const SSL) -> i32;
26018}
26019pub const ssl_early_data_reason_t_ssl_early_data_unknown: ssl_early_data_reason_t = 0;
26020pub const ssl_early_data_reason_t_ssl_early_data_disabled: ssl_early_data_reason_t = 1;
26021pub const ssl_early_data_reason_t_ssl_early_data_accepted: ssl_early_data_reason_t = 2;
26022pub const ssl_early_data_reason_t_ssl_early_data_protocol_version: ssl_early_data_reason_t = 3;
26023pub const ssl_early_data_reason_t_ssl_early_data_peer_declined: ssl_early_data_reason_t = 4;
26024pub const ssl_early_data_reason_t_ssl_early_data_no_session_offered: ssl_early_data_reason_t = 5;
26025pub const ssl_early_data_reason_t_ssl_early_data_session_not_resumed: ssl_early_data_reason_t = 6;
26026pub const ssl_early_data_reason_t_ssl_early_data_unsupported_for_session: ssl_early_data_reason_t =
26027    7;
26028pub const ssl_early_data_reason_t_ssl_early_data_hello_retry_request: ssl_early_data_reason_t = 8;
26029pub const ssl_early_data_reason_t_ssl_early_data_alpn_mismatch: ssl_early_data_reason_t = 9;
26030pub const ssl_early_data_reason_t_ssl_early_data_channel_id: ssl_early_data_reason_t = 10;
26031pub const ssl_early_data_reason_t_ssl_early_data_ticket_age_skew: ssl_early_data_reason_t = 12;
26032pub const ssl_early_data_reason_t_ssl_early_data_quic_parameter_mismatch: ssl_early_data_reason_t =
26033    13;
26034pub const ssl_early_data_reason_t_ssl_early_data_alps_mismatch: ssl_early_data_reason_t = 14;
26035pub const ssl_early_data_reason_t_ssl_early_data_reason_max_value: ssl_early_data_reason_t = 14;
26036pub type ssl_early_data_reason_t = ::core::ffi::c_uint;
26037unsafe extern "C" {
26038    pub fn SSL_get_early_data_reason(ssl: *const SSL) -> ssl_early_data_reason_t;
26039}
26040unsafe extern "C" {
26041    pub fn SSL_early_data_reason_string(
26042        reason: ssl_early_data_reason_t,
26043    ) -> *const ::core::ffi::c_char;
26044}
26045unsafe extern "C" {
26046    pub fn SSL_set_enable_ech_grease(ssl: *mut SSL, enable: ::core::ffi::c_int);
26047}
26048unsafe extern "C" {
26049    pub fn SSL_set_reject_unusable_ech_config(ssl: *mut SSL, enable: ::core::ffi::c_int);
26050}
26051unsafe extern "C" {
26052    pub fn SSL_set1_ech_config_list(
26053        ssl: *mut SSL,
26054        ech_config_list: *const u8,
26055        ech_config_list_len: usize,
26056    ) -> ::core::ffi::c_int;
26057}
26058unsafe extern "C" {
26059    pub fn SSL_get0_ech_name_override(
26060        ssl: *const SSL,
26061        out_name: *mut *const ::core::ffi::c_char,
26062        out_name_len: *mut usize,
26063    );
26064}
26065unsafe extern "C" {
26066    pub fn SSL_get0_ech_retry_configs(
26067        ssl: *const SSL,
26068        out_retry_configs: *mut *const u8,
26069        out_retry_configs_len: *mut usize,
26070    );
26071}
26072unsafe extern "C" {
26073    pub fn SSL_marshal_ech_config(
26074        out: *mut *mut u8,
26075        out_len: *mut usize,
26076        config_id: u8,
26077        key: *const EVP_HPKE_KEY,
26078        public_name: *const ::core::ffi::c_char,
26079        max_name_len: usize,
26080    ) -> ::core::ffi::c_int;
26081}
26082unsafe extern "C" {
26083    pub fn SSL_ECH_KEYS_new() -> *mut SSL_ECH_KEYS;
26084}
26085unsafe extern "C" {
26086    pub fn SSL_ECH_KEYS_up_ref(keys: *mut SSL_ECH_KEYS);
26087}
26088unsafe extern "C" {
26089    pub fn SSL_ECH_KEYS_free(keys: *mut SSL_ECH_KEYS);
26090}
26091unsafe extern "C" {
26092    pub fn SSL_ECH_KEYS_add(
26093        keys: *mut SSL_ECH_KEYS,
26094        is_retry_config: ::core::ffi::c_int,
26095        ech_config: *const u8,
26096        ech_config_len: usize,
26097        key: *const EVP_HPKE_KEY,
26098    ) -> ::core::ffi::c_int;
26099}
26100unsafe extern "C" {
26101    pub fn SSL_ECH_KEYS_has_duplicate_config_id(keys: *const SSL_ECH_KEYS) -> ::core::ffi::c_int;
26102}
26103unsafe extern "C" {
26104    pub fn SSL_ECH_KEYS_marshal_retry_configs(
26105        keys: *const SSL_ECH_KEYS,
26106        out: *mut *mut u8,
26107        out_len: *mut usize,
26108    ) -> ::core::ffi::c_int;
26109}
26110unsafe extern "C" {
26111    pub fn SSL_CTX_set1_ech_keys(ctx: *mut SSL_CTX, keys: *mut SSL_ECH_KEYS) -> ::core::ffi::c_int;
26112}
26113unsafe extern "C" {
26114    pub fn SSL_ech_accepted(ssl: *const SSL) -> ::core::ffi::c_int;
26115}
26116unsafe extern "C" {
26117    pub fn SSL_alert_type_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26118}
26119unsafe extern "C" {
26120    pub fn SSL_alert_desc_string_long(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
26121}
26122unsafe extern "C" {
26123    pub fn SSL_send_fatal_alert(ssl: *mut SSL, alert: u8) -> ::core::ffi::c_int;
26124}
26125unsafe extern "C" {
26126    pub fn SSL_set_ex_data(
26127        ssl: *mut SSL,
26128        idx: ::core::ffi::c_int,
26129        data: *mut ::core::ffi::c_void,
26130    ) -> ::core::ffi::c_int;
26131}
26132unsafe extern "C" {
26133    pub fn SSL_get_ex_data(ssl: *const SSL, idx: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
26134}
26135unsafe extern "C" {
26136    pub fn SSL_get_ex_new_index(
26137        argl: ::core::ffi::c_long,
26138        argp: *mut ::core::ffi::c_void,
26139        unused: *mut CRYPTO_EX_unused,
26140        dup_unused: CRYPTO_EX_dup,
26141        free_func: CRYPTO_EX_free,
26142    ) -> ::core::ffi::c_int;
26143}
26144unsafe extern "C" {
26145    pub fn SSL_SESSION_set_ex_data(
26146        session: *mut SSL_SESSION,
26147        idx: ::core::ffi::c_int,
26148        data: *mut ::core::ffi::c_void,
26149    ) -> ::core::ffi::c_int;
26150}
26151unsafe extern "C" {
26152    pub fn SSL_SESSION_get_ex_data(
26153        session: *const SSL_SESSION,
26154        idx: ::core::ffi::c_int,
26155    ) -> *mut ::core::ffi::c_void;
26156}
26157unsafe extern "C" {
26158    pub fn SSL_SESSION_get_ex_new_index(
26159        argl: ::core::ffi::c_long,
26160        argp: *mut ::core::ffi::c_void,
26161        unused: *mut CRYPTO_EX_unused,
26162        dup_unused: CRYPTO_EX_dup,
26163        free_func: CRYPTO_EX_free,
26164    ) -> ::core::ffi::c_int;
26165}
26166unsafe extern "C" {
26167    pub fn SSL_CTX_set_ex_data(
26168        ctx: *mut SSL_CTX,
26169        idx: ::core::ffi::c_int,
26170        data: *mut ::core::ffi::c_void,
26171    ) -> ::core::ffi::c_int;
26172}
26173unsafe extern "C" {
26174    pub fn SSL_CTX_get_ex_data(
26175        ctx: *const SSL_CTX,
26176        idx: ::core::ffi::c_int,
26177    ) -> *mut ::core::ffi::c_void;
26178}
26179unsafe extern "C" {
26180    pub fn SSL_CTX_get_ex_new_index(
26181        argl: ::core::ffi::c_long,
26182        argp: *mut ::core::ffi::c_void,
26183        unused: *mut CRYPTO_EX_unused,
26184        dup_unused: CRYPTO_EX_dup,
26185        free_func: CRYPTO_EX_free,
26186    ) -> ::core::ffi::c_int;
26187}
26188unsafe extern "C" {
26189    pub fn SSL_CREDENTIAL_set_ex_data(
26190        cred: *mut SSL_CREDENTIAL,
26191        idx: ::core::ffi::c_int,
26192        data: *mut ::core::ffi::c_void,
26193    ) -> ::core::ffi::c_int;
26194}
26195unsafe extern "C" {
26196    pub fn SSL_CREDENTIAL_get_ex_data(
26197        cred: *const SSL_CREDENTIAL,
26198        idx: ::core::ffi::c_int,
26199    ) -> *mut ::core::ffi::c_void;
26200}
26201unsafe extern "C" {
26202    pub fn SSL_CREDENTIAL_get_ex_new_index(
26203        argl: ::core::ffi::c_long,
26204        argp: *mut ::core::ffi::c_void,
26205        unused: *mut CRYPTO_EX_unused,
26206        dup_unused: CRYPTO_EX_dup,
26207        free_func: CRYPTO_EX_free,
26208    ) -> ::core::ffi::c_int;
26209}
26210unsafe extern "C" {
26211    pub fn SSL_get_ivs(
26212        ssl: *const SSL,
26213        out_read_iv: *mut *const u8,
26214        out_write_iv: *mut *const u8,
26215        out_iv_len: *mut usize,
26216    ) -> ::core::ffi::c_int;
26217}
26218unsafe extern "C" {
26219    pub fn SSL_get_key_block_len(ssl: *const SSL) -> usize;
26220}
26221unsafe extern "C" {
26222    pub fn SSL_generate_key_block(
26223        ssl: *const SSL,
26224        out: *mut u8,
26225        out_len: usize,
26226    ) -> ::core::ffi::c_int;
26227}
26228unsafe extern "C" {
26229    pub fn SSL_get_read_sequence(ssl: *const SSL) -> u64;
26230}
26231unsafe extern "C" {
26232    pub fn SSL_get_write_sequence(ssl: *const SSL) -> u64;
26233}
26234unsafe extern "C" {
26235    pub fn SSL_CTX_set_record_protocol_version(
26236        ctx: *mut SSL_CTX,
26237        version: ::core::ffi::c_int,
26238    ) -> ::core::ffi::c_int;
26239}
26240unsafe extern "C" {
26241    pub fn SSL_is_dtls_handshake_idle(ssl: *const SSL) -> ::core::ffi::c_int;
26242}
26243unsafe extern "C" {
26244    pub fn SSL_get_dtls_handshake_read_seq(ssl: *const SSL) -> u32;
26245}
26246unsafe extern "C" {
26247    pub fn SSL_get_dtls_handshake_write_seq(ssl: *const SSL) -> u32;
26248}
26249unsafe extern "C" {
26250    pub fn SSL_get_dtls_read_epoch(ssl: *const SSL) -> u16;
26251}
26252unsafe extern "C" {
26253    pub fn SSL_get_dtls_write_epoch(ssl: *const SSL) -> u16;
26254}
26255unsafe extern "C" {
26256    pub fn SSL_get_dtls_read_sequence(ssl: *const SSL, epoch: u16) -> u64;
26257}
26258unsafe extern "C" {
26259    pub fn SSL_get_dtls_write_sequence(ssl: *const SSL, epoch: u16) -> u64;
26260}
26261unsafe extern "C" {
26262    pub fn SSL_get_dtls_read_traffic_secret(
26263        ssl: *const SSL,
26264        out_data: *mut *const u8,
26265        out_len: *mut usize,
26266        epoch: u16,
26267    ) -> ::core::ffi::c_int;
26268}
26269unsafe extern "C" {
26270    pub fn SSL_get_dtls_write_traffic_secret(
26271        ssl: *const SSL,
26272        out_data: *mut *const u8,
26273        out_len: *mut usize,
26274        epoch: u16,
26275    ) -> ::core::ffi::c_int;
26276}
26277unsafe extern "C" {
26278    pub fn SSL_serialize_capabilities(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26279}
26280unsafe extern "C" {
26281    pub fn SSL_request_handshake_hints(
26282        ssl: *mut SSL,
26283        client_hello: *const u8,
26284        client_hello_len: usize,
26285        capabilities: *const u8,
26286        capabilities_len: usize,
26287    ) -> ::core::ffi::c_int;
26288}
26289unsafe extern "C" {
26290    pub fn SSL_serialize_handshake_hints(ssl: *const SSL, out: *mut CBB) -> ::core::ffi::c_int;
26291}
26292unsafe extern "C" {
26293    pub fn SSL_set_handshake_hints(
26294        ssl: *mut SSL,
26295        hints: *const u8,
26296        hints_len: usize,
26297    ) -> ::core::ffi::c_int;
26298}
26299unsafe extern "C" {
26300    pub fn SSL_CTX_set_msg_callback(
26301        ctx: *mut SSL_CTX,
26302        cb: ::core::option::Option<
26303            unsafe extern "C" fn(
26304                is_write: ::core::ffi::c_int,
26305                version: ::core::ffi::c_int,
26306                content_type: ::core::ffi::c_int,
26307                buf: *const ::core::ffi::c_void,
26308                len: usize,
26309                ssl: *mut SSL,
26310                arg: *mut ::core::ffi::c_void,
26311            ),
26312        >,
26313    );
26314}
26315unsafe extern "C" {
26316    pub fn SSL_CTX_set_msg_callback_arg(ctx: *mut SSL_CTX, arg: *mut ::core::ffi::c_void);
26317}
26318unsafe extern "C" {
26319    pub fn SSL_set_msg_callback(
26320        ssl: *mut SSL,
26321        cb: ::core::option::Option<
26322            unsafe extern "C" fn(
26323                write_p: ::core::ffi::c_int,
26324                version: ::core::ffi::c_int,
26325                content_type: ::core::ffi::c_int,
26326                buf: *const ::core::ffi::c_void,
26327                len: usize,
26328                ssl: *mut SSL,
26329                arg: *mut ::core::ffi::c_void,
26330            ),
26331        >,
26332    );
26333}
26334unsafe extern "C" {
26335    pub fn SSL_set_msg_callback_arg(ssl: *mut SSL, arg: *mut ::core::ffi::c_void);
26336}
26337unsafe extern "C" {
26338    pub fn SSL_CTX_set_keylog_callback(
26339        ctx: *mut SSL_CTX,
26340        cb: ::core::option::Option<
26341            unsafe extern "C" fn(ssl: *const SSL, line: *const ::core::ffi::c_char),
26342        >,
26343    );
26344}
26345unsafe extern "C" {
26346    pub fn SSL_CTX_get_keylog_callback(
26347        ctx: *const SSL_CTX,
26348    ) -> ::core::option::Option<
26349        unsafe extern "C" fn(ctx: *const SSL, arg1: *const ::core::ffi::c_char),
26350    >;
26351}
26352unsafe extern "C" {
26353    pub fn SSL_CTX_set_current_time_cb(
26354        ctx: *mut SSL_CTX,
26355        cb: ::core::option::Option<unsafe extern "C" fn(ssl: *const SSL, out_clock: *mut timeval)>,
26356    );
26357}
26358unsafe extern "C" {
26359    pub fn SSL_set_shed_handshake_config(ssl: *mut SSL, enable: ::core::ffi::c_int);
26360}
26361pub const ssl_renegotiate_mode_t_ssl_renegotiate_never: ssl_renegotiate_mode_t = 0;
26362pub const ssl_renegotiate_mode_t_ssl_renegotiate_once: ssl_renegotiate_mode_t = 1;
26363pub const ssl_renegotiate_mode_t_ssl_renegotiate_freely: ssl_renegotiate_mode_t = 2;
26364pub const ssl_renegotiate_mode_t_ssl_renegotiate_ignore: ssl_renegotiate_mode_t = 3;
26365pub const ssl_renegotiate_mode_t_ssl_renegotiate_explicit: ssl_renegotiate_mode_t = 4;
26366pub type ssl_renegotiate_mode_t = ::core::ffi::c_uint;
26367unsafe extern "C" {
26368    pub fn SSL_set_renegotiate_mode(ssl: *mut SSL, mode: ssl_renegotiate_mode_t);
26369}
26370unsafe extern "C" {
26371    pub fn SSL_renegotiate(ssl: *mut SSL) -> ::core::ffi::c_int;
26372}
26373unsafe extern "C" {
26374    pub fn SSL_renegotiate_pending(ssl: *mut SSL) -> ::core::ffi::c_int;
26375}
26376unsafe extern "C" {
26377    pub fn SSL_total_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26378}
26379unsafe extern "C" {
26380    pub fn SSL_CTX_get_max_cert_list(ctx: *const SSL_CTX) -> usize;
26381}
26382unsafe extern "C" {
26383    pub fn SSL_CTX_set_max_cert_list(ctx: *mut SSL_CTX, max_cert_list: usize);
26384}
26385unsafe extern "C" {
26386    pub fn SSL_get_max_cert_list(ssl: *const SSL) -> usize;
26387}
26388unsafe extern "C" {
26389    pub fn SSL_set_max_cert_list(ssl: *mut SSL, max_cert_list: usize);
26390}
26391unsafe extern "C" {
26392    pub fn SSL_CTX_set_max_send_fragment(
26393        ctx: *mut SSL_CTX,
26394        max_send_fragment: usize,
26395    ) -> ::core::ffi::c_int;
26396}
26397unsafe extern "C" {
26398    pub fn SSL_set_max_send_fragment(ssl: *mut SSL, max_send_fragment: usize)
26399        -> ::core::ffi::c_int;
26400}
26401#[repr(C)]
26402#[derive(Debug, Copy, Clone)]
26403pub struct ssl_early_callback_ctx {
26404    pub ssl: *mut SSL,
26405    pub client_hello: *const u8,
26406    pub client_hello_len: usize,
26407    pub version: u16,
26408    pub random: *const u8,
26409    pub random_len: usize,
26410    pub session_id: *const u8,
26411    pub session_id_len: usize,
26412    pub dtls_cookie: *const u8,
26413    pub dtls_cookie_len: usize,
26414    pub cipher_suites: *const u8,
26415    pub cipher_suites_len: usize,
26416    pub compression_methods: *const u8,
26417    pub compression_methods_len: usize,
26418    pub extensions: *const u8,
26419    pub extensions_len: usize,
26420}
26421pub const ssl_select_cert_result_t_ssl_select_cert_success: ssl_select_cert_result_t = 1;
26422pub const ssl_select_cert_result_t_ssl_select_cert_retry: ssl_select_cert_result_t = 0;
26423pub const ssl_select_cert_result_t_ssl_select_cert_error: ssl_select_cert_result_t = -1;
26424pub const ssl_select_cert_result_t_ssl_select_cert_disable_ech: ssl_select_cert_result_t = -2;
26425pub type ssl_select_cert_result_t = ::core::ffi::c_int;
26426unsafe extern "C" {
26427    pub fn SSL_early_callback_ctx_extension_get(
26428        client_hello: *const SSL_CLIENT_HELLO,
26429        extension_type: u16,
26430        out_data: *mut *const u8,
26431        out_len: *mut usize,
26432    ) -> ::core::ffi::c_int;
26433}
26434unsafe extern "C" {
26435    pub fn SSL_CTX_set_select_certificate_cb(
26436        ctx: *mut SSL_CTX,
26437        cb: ::core::option::Option<
26438            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ssl_select_cert_result_t,
26439        >,
26440    );
26441}
26442unsafe extern "C" {
26443    pub fn SSL_CTX_set_dos_protection_cb(
26444        ctx: *mut SSL_CTX,
26445        cb: ::core::option::Option<
26446            unsafe extern "C" fn(arg1: *const SSL_CLIENT_HELLO) -> ::core::ffi::c_int,
26447        >,
26448    );
26449}
26450unsafe extern "C" {
26451    pub fn SSL_CTX_set_reverify_on_resume(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26452}
26453unsafe extern "C" {
26454    pub fn SSL_CTX_set_info_callback(
26455        ctx: *mut SSL_CTX,
26456        cb: ::core::option::Option<
26457            unsafe extern "C" fn(
26458                ssl: *const SSL,
26459                type_: ::core::ffi::c_int,
26460                value: ::core::ffi::c_int,
26461            ),
26462        >,
26463    );
26464}
26465unsafe extern "C" {
26466    pub fn SSL_CTX_get_info_callback(
26467        ctx: *mut SSL_CTX,
26468    ) -> ::core::option::Option<
26469        unsafe extern "C" fn(ctx: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26470    >;
26471}
26472unsafe extern "C" {
26473    pub fn SSL_set_info_callback(
26474        ssl: *mut SSL,
26475        cb: ::core::option::Option<
26476            unsafe extern "C" fn(
26477                ssl: *const SSL,
26478                type_: ::core::ffi::c_int,
26479                value: ::core::ffi::c_int,
26480            ),
26481        >,
26482    );
26483}
26484unsafe extern "C" {
26485    pub fn SSL_get_info_callback(
26486        ssl: *const SSL,
26487    ) -> ::core::option::Option<
26488        unsafe extern "C" fn(ssl: *const SSL, arg1: ::core::ffi::c_int, arg2: ::core::ffi::c_int),
26489    >;
26490}
26491unsafe extern "C" {
26492    pub fn SSL_state_string_long(ssl: *const SSL) -> *const ::core::ffi::c_char;
26493}
26494unsafe extern "C" {
26495    pub fn SSL_get_shutdown(ssl: *const SSL) -> ::core::ffi::c_int;
26496}
26497unsafe extern "C" {
26498    pub fn SSL_get_peer_signature_algorithm(ssl: *const SSL) -> u16;
26499}
26500unsafe extern "C" {
26501    pub fn SSL_get_client_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26502}
26503unsafe extern "C" {
26504    pub fn SSL_get_server_random(ssl: *const SSL, out: *mut u8, max_out: usize) -> usize;
26505}
26506unsafe extern "C" {
26507    pub fn SSL_get_signature_algorithm_used(ssl: *const SSL) -> u16;
26508}
26509unsafe extern "C" {
26510    pub fn SSL_get_pending_cipher(ssl: *const SSL) -> *const SSL_CIPHER;
26511}
26512unsafe extern "C" {
26513    pub fn SSL_set_retain_only_sha256_of_client_certs(ssl: *mut SSL, enable: ::core::ffi::c_int);
26514}
26515unsafe extern "C" {
26516    pub fn SSL_CTX_set_retain_only_sha256_of_client_certs(
26517        ctx: *mut SSL_CTX,
26518        enable: ::core::ffi::c_int,
26519    );
26520}
26521unsafe extern "C" {
26522    pub fn SSL_CTX_set_grease_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26523}
26524unsafe extern "C" {
26525    pub fn SSL_CTX_set_grease_sigalgs_enabled(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26526}
26527unsafe extern "C" {
26528    pub fn SSL_CTX_set_permute_extensions(ctx: *mut SSL_CTX, enabled: ::core::ffi::c_int);
26529}
26530unsafe extern "C" {
26531    pub fn SSL_set_permute_extensions(ssl: *mut SSL, enabled: ::core::ffi::c_int);
26532}
26533unsafe extern "C" {
26534    pub fn SSL_max_seal_overhead(ssl: *const SSL) -> usize;
26535}
26536unsafe extern "C" {
26537    pub fn SSL_CTX_set_false_start_allowed_without_alpn(
26538        ctx: *mut SSL_CTX,
26539        allowed: ::core::ffi::c_int,
26540    );
26541}
26542unsafe extern "C" {
26543    pub fn SSL_used_hello_retry_request(ssl: *const SSL) -> ::core::ffi::c_int;
26544}
26545unsafe extern "C" {
26546    pub fn SSL_set_jdk11_workaround(ssl: *mut SSL, enable: ::core::ffi::c_int);
26547}
26548unsafe extern "C" {
26549    pub fn SSL_parse_client_hello(
26550        ssl: *const SSL,
26551        out: *mut SSL_CLIENT_HELLO,
26552        in_: *const u8,
26553        len: usize,
26554    ) -> ::core::ffi::c_int;
26555}
26556unsafe extern "C" {
26557    pub fn SSL_library_init() -> ::core::ffi::c_int;
26558}
26559unsafe extern "C" {
26560    pub fn SSL_CIPHER_description(
26561        cipher: *const SSL_CIPHER,
26562        buf: *mut ::core::ffi::c_char,
26563        len: ::core::ffi::c_int,
26564    ) -> *const ::core::ffi::c_char;
26565}
26566unsafe extern "C" {
26567    pub fn SSL_CIPHER_get_version(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26568}
26569unsafe extern "C" {
26570    pub fn SSL_CIPHER_get_id(cipher: *const SSL_CIPHER) -> u32;
26571}
26572unsafe extern "C" {
26573    pub fn SSL_CIPHER_get_name(cipher: *const SSL_CIPHER) -> *const ::core::ffi::c_char;
26574}
26575pub type COMP_METHOD = ::core::ffi::c_void;
26576pub type SSL_COMP = ssl_comp_st;
26577#[repr(C)]
26578#[derive(Debug)]
26579pub struct stack_st_SSL_COMP {
26580    _unused: [u8; 0],
26581}
26582unsafe extern "C" {
26583    pub fn SSL_COMP_get_compression_methods() -> *mut stack_st_SSL_COMP;
26584}
26585unsafe extern "C" {
26586    pub fn SSL_COMP_add_compression_method(
26587        id: ::core::ffi::c_int,
26588        cm: *mut COMP_METHOD,
26589    ) -> ::core::ffi::c_int;
26590}
26591unsafe extern "C" {
26592    pub fn SSL_COMP_get_name(comp: *const COMP_METHOD) -> *const ::core::ffi::c_char;
26593}
26594unsafe extern "C" {
26595    pub fn SSL_COMP_get0_name(comp: *const SSL_COMP) -> *const ::core::ffi::c_char;
26596}
26597unsafe extern "C" {
26598    pub fn SSL_COMP_get_id(comp: *const SSL_COMP) -> ::core::ffi::c_int;
26599}
26600unsafe extern "C" {
26601    pub fn SSL_COMP_free_compression_methods();
26602}
26603unsafe extern "C" {
26604    pub fn SSLv23_method() -> *const SSL_METHOD;
26605}
26606unsafe extern "C" {
26607    pub fn TLSv1_method() -> *const SSL_METHOD;
26608}
26609unsafe extern "C" {
26610    pub fn TLSv1_1_method() -> *const SSL_METHOD;
26611}
26612unsafe extern "C" {
26613    pub fn TLSv1_2_method() -> *const SSL_METHOD;
26614}
26615unsafe extern "C" {
26616    pub fn DTLSv1_method() -> *const SSL_METHOD;
26617}
26618unsafe extern "C" {
26619    pub fn DTLSv1_2_method() -> *const SSL_METHOD;
26620}
26621unsafe extern "C" {
26622    pub fn TLS_server_method() -> *const SSL_METHOD;
26623}
26624unsafe extern "C" {
26625    pub fn TLS_client_method() -> *const SSL_METHOD;
26626}
26627unsafe extern "C" {
26628    pub fn SSLv23_server_method() -> *const SSL_METHOD;
26629}
26630unsafe extern "C" {
26631    pub fn SSLv23_client_method() -> *const SSL_METHOD;
26632}
26633unsafe extern "C" {
26634    pub fn TLSv1_server_method() -> *const SSL_METHOD;
26635}
26636unsafe extern "C" {
26637    pub fn TLSv1_client_method() -> *const SSL_METHOD;
26638}
26639unsafe extern "C" {
26640    pub fn TLSv1_1_server_method() -> *const SSL_METHOD;
26641}
26642unsafe extern "C" {
26643    pub fn TLSv1_1_client_method() -> *const SSL_METHOD;
26644}
26645unsafe extern "C" {
26646    pub fn TLSv1_2_server_method() -> *const SSL_METHOD;
26647}
26648unsafe extern "C" {
26649    pub fn TLSv1_2_client_method() -> *const SSL_METHOD;
26650}
26651unsafe extern "C" {
26652    pub fn DTLS_server_method() -> *const SSL_METHOD;
26653}
26654unsafe extern "C" {
26655    pub fn DTLS_client_method() -> *const SSL_METHOD;
26656}
26657unsafe extern "C" {
26658    pub fn DTLSv1_server_method() -> *const SSL_METHOD;
26659}
26660unsafe extern "C" {
26661    pub fn DTLSv1_client_method() -> *const SSL_METHOD;
26662}
26663unsafe extern "C" {
26664    pub fn DTLSv1_2_server_method() -> *const SSL_METHOD;
26665}
26666unsafe extern "C" {
26667    pub fn DTLSv1_2_client_method() -> *const SSL_METHOD;
26668}
26669unsafe extern "C" {
26670    pub fn SSL_clear(ssl: *mut SSL) -> ::core::ffi::c_int;
26671}
26672unsafe extern "C" {
26673    pub fn SSL_CTX_set_tmp_rsa_callback(
26674        ctx: *mut SSL_CTX,
26675        cb: ::core::option::Option<
26676            unsafe extern "C" fn(
26677                ssl: *mut SSL,
26678                is_export: ::core::ffi::c_int,
26679                keylength: ::core::ffi::c_int,
26680            ) -> *mut RSA,
26681        >,
26682    );
26683}
26684unsafe extern "C" {
26685    pub fn SSL_set_tmp_rsa_callback(
26686        ssl: *mut SSL,
26687        cb: ::core::option::Option<
26688            unsafe extern "C" fn(
26689                ssl: *mut SSL,
26690                is_export: ::core::ffi::c_int,
26691                keylength: ::core::ffi::c_int,
26692            ) -> *mut RSA,
26693        >,
26694    );
26695}
26696unsafe extern "C" {
26697    pub fn SSL_CTX_sess_connect(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26698}
26699unsafe extern "C" {
26700    pub fn SSL_CTX_sess_connect_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26701}
26702unsafe extern "C" {
26703    pub fn SSL_CTX_sess_connect_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26704}
26705unsafe extern "C" {
26706    pub fn SSL_CTX_sess_accept(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26707}
26708unsafe extern "C" {
26709    pub fn SSL_CTX_sess_accept_renegotiate(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26710}
26711unsafe extern "C" {
26712    pub fn SSL_CTX_sess_accept_good(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26713}
26714unsafe extern "C" {
26715    pub fn SSL_CTX_sess_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26716}
26717unsafe extern "C" {
26718    pub fn SSL_CTX_sess_cb_hits(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26719}
26720unsafe extern "C" {
26721    pub fn SSL_CTX_sess_misses(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26722}
26723unsafe extern "C" {
26724    pub fn SSL_CTX_sess_timeouts(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26725}
26726unsafe extern "C" {
26727    pub fn SSL_CTX_sess_cache_full(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26728}
26729unsafe extern "C" {
26730    pub fn SSL_cutthrough_complete(ssl: *const SSL) -> ::core::ffi::c_int;
26731}
26732unsafe extern "C" {
26733    pub fn SSL_num_renegotiations(ssl: *const SSL) -> ::core::ffi::c_int;
26734}
26735unsafe extern "C" {
26736    pub fn SSL_CTX_need_tmp_RSA(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26737}
26738unsafe extern "C" {
26739    pub fn SSL_need_tmp_RSA(ssl: *const SSL) -> ::core::ffi::c_int;
26740}
26741unsafe extern "C" {
26742    pub fn SSL_CTX_set_tmp_rsa(ctx: *mut SSL_CTX, rsa: *const RSA) -> ::core::ffi::c_int;
26743}
26744unsafe extern "C" {
26745    pub fn SSL_set_tmp_rsa(ssl: *mut SSL, rsa: *const RSA) -> ::core::ffi::c_int;
26746}
26747unsafe extern "C" {
26748    pub fn SSL_CTX_get_read_ahead(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
26749}
26750unsafe extern "C" {
26751    pub fn SSL_CTX_set_read_ahead(ctx: *mut SSL_CTX, yes: ::core::ffi::c_int)
26752        -> ::core::ffi::c_int;
26753}
26754unsafe extern "C" {
26755    pub fn SSL_get_read_ahead(ssl: *const SSL) -> ::core::ffi::c_int;
26756}
26757unsafe extern "C" {
26758    pub fn SSL_set_read_ahead(ssl: *mut SSL, yes: ::core::ffi::c_int) -> ::core::ffi::c_int;
26759}
26760unsafe extern "C" {
26761    pub fn SSL_set_state(ssl: *mut SSL, state: ::core::ffi::c_int);
26762}
26763unsafe extern "C" {
26764    pub fn SSL_get_shared_ciphers(
26765        ssl: *const SSL,
26766        buf: *mut ::core::ffi::c_char,
26767        len: ::core::ffi::c_int,
26768    ) -> *mut ::core::ffi::c_char;
26769}
26770unsafe extern "C" {
26771    pub fn SSL_get_shared_sigalgs(
26772        ssl: *mut SSL,
26773        idx: ::core::ffi::c_int,
26774        psign: *mut ::core::ffi::c_int,
26775        phash: *mut ::core::ffi::c_int,
26776        psignandhash: *mut ::core::ffi::c_int,
26777        rsig: *mut u8,
26778        rhash: *mut u8,
26779    ) -> ::core::ffi::c_int;
26780}
26781unsafe extern "C" {
26782    pub fn i2d_SSL_SESSION(in_: *const SSL_SESSION, pp: *mut *mut u8) -> ::core::ffi::c_int;
26783}
26784unsafe extern "C" {
26785    pub fn d2i_SSL_SESSION(
26786        out: *mut *mut SSL_SESSION,
26787        inp: *mut *const u8,
26788        len: ::core::ffi::c_long,
26789    ) -> *mut SSL_SESSION;
26790}
26791unsafe extern "C" {
26792    pub fn i2d_SSL_SESSION_bio(bio: *mut BIO, session: *const SSL_SESSION) -> ::core::ffi::c_int;
26793}
26794unsafe extern "C" {
26795    pub fn d2i_SSL_SESSION_bio(bio: *mut BIO, out: *mut *mut SSL_SESSION) -> *mut SSL_SESSION;
26796}
26797unsafe extern "C" {
26798    pub fn ERR_load_SSL_strings();
26799}
26800unsafe extern "C" {
26801    pub fn SSL_load_error_strings();
26802}
26803unsafe extern "C" {
26804    pub fn SSL_CTX_set_tlsext_use_srtp(
26805        ctx: *mut SSL_CTX,
26806        profiles: *const ::core::ffi::c_char,
26807    ) -> ::core::ffi::c_int;
26808}
26809unsafe extern "C" {
26810    pub fn SSL_set_tlsext_use_srtp(
26811        ssl: *mut SSL,
26812        profiles: *const ::core::ffi::c_char,
26813    ) -> ::core::ffi::c_int;
26814}
26815unsafe extern "C" {
26816    pub fn SSL_get_current_compression(ssl: *mut SSL) -> *const COMP_METHOD;
26817}
26818unsafe extern "C" {
26819    pub fn SSL_get_current_expansion(ssl: *mut SSL) -> *const COMP_METHOD;
26820}
26821unsafe extern "C" {
26822    pub fn SSL_get_server_tmp_key(ssl: *mut SSL, out_key: *mut *mut EVP_PKEY)
26823        -> ::core::ffi::c_int;
26824}
26825unsafe extern "C" {
26826    pub fn SSL_get_peer_tmp_key(ssl: *mut SSL, out_key: *mut *mut EVP_PKEY) -> ::core::ffi::c_int;
26827}
26828unsafe extern "C" {
26829    pub fn SSL_CTX_set_tmp_dh(ctx: *mut SSL_CTX, dh: *const DH) -> ::core::ffi::c_int;
26830}
26831unsafe extern "C" {
26832    pub fn SSL_set_tmp_dh(ssl: *mut SSL, dh: *const DH) -> ::core::ffi::c_int;
26833}
26834unsafe extern "C" {
26835    pub fn SSL_CTX_set_tmp_dh_callback(
26836        ctx: *mut SSL_CTX,
26837        cb: ::core::option::Option<
26838            unsafe extern "C" fn(
26839                ssl: *mut SSL,
26840                is_export: ::core::ffi::c_int,
26841                keylength: ::core::ffi::c_int,
26842            ) -> *mut DH,
26843        >,
26844    );
26845}
26846unsafe extern "C" {
26847    pub fn SSL_set_tmp_dh_callback(
26848        ssl: *mut SSL,
26849        cb: ::core::option::Option<
26850            unsafe extern "C" fn(
26851                ssl: *mut SSL,
26852                is_export: ::core::ffi::c_int,
26853                keylength: ::core::ffi::c_int,
26854            ) -> *mut DH,
26855        >,
26856    );
26857}
26858unsafe extern "C" {
26859    pub fn SSL_CTX_set1_sigalgs(
26860        ctx: *mut SSL_CTX,
26861        values: *const ::core::ffi::c_int,
26862        num_values: usize,
26863    ) -> ::core::ffi::c_int;
26864}
26865unsafe extern "C" {
26866    pub fn SSL_set1_sigalgs(
26867        ssl: *mut SSL,
26868        values: *const ::core::ffi::c_int,
26869        num_values: usize,
26870    ) -> ::core::ffi::c_int;
26871}
26872unsafe extern "C" {
26873    pub fn SSL_CTX_set1_sigalgs_list(
26874        ctx: *mut SSL_CTX,
26875        str_: *const ::core::ffi::c_char,
26876    ) -> ::core::ffi::c_int;
26877}
26878unsafe extern "C" {
26879    pub fn SSL_set1_sigalgs_list(
26880        ssl: *mut SSL,
26881        str_: *const ::core::ffi::c_char,
26882    ) -> ::core::ffi::c_int;
26883}
26884#[repr(C)]
26885#[derive(Debug, Copy, Clone)]
26886pub struct ssl_comp_st {
26887    pub id: ::core::ffi::c_int,
26888    pub name: *const ::core::ffi::c_char,
26889    pub method: *mut ::core::ffi::c_char,
26890}
26891pub type sk_SSL_COMP_free_func = ::core::option::Option<unsafe extern "C" fn(arg1: *mut SSL_COMP)>;
26892pub type sk_SSL_COMP_copy_func =
26893    ::core::option::Option<unsafe extern "C" fn(arg1: *const SSL_COMP) -> *mut SSL_COMP>;
26894pub type sk_SSL_COMP_cmp_func = ::core::option::Option<
26895    unsafe extern "C" fn(
26896        arg1: *const *const SSL_COMP,
26897        arg2: *const *const SSL_COMP,
26898    ) -> ::core::ffi::c_int,
26899>;
26900pub type sk_SSL_COMP_delete_if_func = ::core::option::Option<
26901    unsafe extern "C" fn(arg1: *mut SSL_COMP, arg2: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
26902>;
26903unsafe extern "C" {
26904    #[link_name = "sk_SSL_COMP_call_free_func__extern"]
26905    pub fn sk_SSL_COMP_call_free_func(
26906        free_func: OPENSSL_sk_free_func,
26907        ptr: *mut ::core::ffi::c_void,
26908    );
26909}
26910unsafe extern "C" {
26911    #[link_name = "sk_SSL_COMP_call_copy_func__extern"]
26912    pub fn sk_SSL_COMP_call_copy_func(
26913        copy_func: OPENSSL_sk_copy_func,
26914        ptr: *const ::core::ffi::c_void,
26915    ) -> *mut ::core::ffi::c_void;
26916}
26917unsafe extern "C" {
26918    #[link_name = "sk_SSL_COMP_call_cmp_func__extern"]
26919    pub fn sk_SSL_COMP_call_cmp_func(
26920        cmp_func: OPENSSL_sk_cmp_func,
26921        a: *const ::core::ffi::c_void,
26922        b: *const ::core::ffi::c_void,
26923    ) -> ::core::ffi::c_int;
26924}
26925unsafe extern "C" {
26926    #[link_name = "sk_SSL_COMP_call_delete_if_func__extern"]
26927    pub fn sk_SSL_COMP_call_delete_if_func(
26928        func: OPENSSL_sk_delete_if_func,
26929        obj: *mut ::core::ffi::c_void,
26930        data: *mut ::core::ffi::c_void,
26931    ) -> ::core::ffi::c_int;
26932}
26933unsafe extern "C" {
26934    #[link_name = "sk_SSL_COMP_new__extern"]
26935    pub fn sk_SSL_COMP_new(comp: sk_SSL_COMP_cmp_func) -> *mut stack_st_SSL_COMP;
26936}
26937unsafe extern "C" {
26938    #[link_name = "sk_SSL_COMP_new_null__extern"]
26939    pub fn sk_SSL_COMP_new_null() -> *mut stack_st_SSL_COMP;
26940}
26941unsafe extern "C" {
26942    #[link_name = "sk_SSL_COMP_num__extern"]
26943    pub fn sk_SSL_COMP_num(sk: *const stack_st_SSL_COMP) -> usize;
26944}
26945unsafe extern "C" {
26946    #[link_name = "sk_SSL_COMP_zero__extern"]
26947    pub fn sk_SSL_COMP_zero(sk: *mut stack_st_SSL_COMP);
26948}
26949unsafe extern "C" {
26950    #[link_name = "sk_SSL_COMP_value__extern"]
26951    pub fn sk_SSL_COMP_value(sk: *const stack_st_SSL_COMP, i: usize) -> *mut SSL_COMP;
26952}
26953unsafe extern "C" {
26954    #[link_name = "sk_SSL_COMP_set__extern"]
26955    pub fn sk_SSL_COMP_set(sk: *mut stack_st_SSL_COMP, i: usize, p: *mut SSL_COMP)
26956        -> *mut SSL_COMP;
26957}
26958unsafe extern "C" {
26959    #[link_name = "sk_SSL_COMP_free__extern"]
26960    pub fn sk_SSL_COMP_free(sk: *mut stack_st_SSL_COMP);
26961}
26962unsafe extern "C" {
26963    #[link_name = "sk_SSL_COMP_pop_free__extern"]
26964    pub fn sk_SSL_COMP_pop_free(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
26965}
26966unsafe extern "C" {
26967    #[link_name = "sk_SSL_COMP_insert__extern"]
26968    pub fn sk_SSL_COMP_insert(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP, where_: usize)
26969        -> usize;
26970}
26971unsafe extern "C" {
26972    #[link_name = "sk_SSL_COMP_delete__extern"]
26973    pub fn sk_SSL_COMP_delete(sk: *mut stack_st_SSL_COMP, where_: usize) -> *mut SSL_COMP;
26974}
26975unsafe extern "C" {
26976    #[link_name = "sk_SSL_COMP_delete_ptr__extern"]
26977    pub fn sk_SSL_COMP_delete_ptr(sk: *mut stack_st_SSL_COMP, p: *const SSL_COMP) -> *mut SSL_COMP;
26978}
26979unsafe extern "C" {
26980    #[link_name = "sk_SSL_COMP_delete_if__extern"]
26981    pub fn sk_SSL_COMP_delete_if(
26982        sk: *mut stack_st_SSL_COMP,
26983        func: sk_SSL_COMP_delete_if_func,
26984        data: *mut ::core::ffi::c_void,
26985    );
26986}
26987unsafe extern "C" {
26988    #[link_name = "sk_SSL_COMP_find__extern"]
26989    pub fn sk_SSL_COMP_find(
26990        sk: *const stack_st_SSL_COMP,
26991        out_index: *mut usize,
26992        p: *const SSL_COMP,
26993    ) -> ::core::ffi::c_int;
26994}
26995unsafe extern "C" {
26996    #[link_name = "sk_SSL_COMP_shift__extern"]
26997    pub fn sk_SSL_COMP_shift(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
26998}
26999unsafe extern "C" {
27000    #[link_name = "sk_SSL_COMP_push__extern"]
27001    pub fn sk_SSL_COMP_push(sk: *mut stack_st_SSL_COMP, p: *mut SSL_COMP) -> usize;
27002}
27003unsafe extern "C" {
27004    #[link_name = "sk_SSL_COMP_pop__extern"]
27005    pub fn sk_SSL_COMP_pop(sk: *mut stack_st_SSL_COMP) -> *mut SSL_COMP;
27006}
27007unsafe extern "C" {
27008    #[link_name = "sk_SSL_COMP_dup__extern"]
27009    pub fn sk_SSL_COMP_dup(sk: *const stack_st_SSL_COMP) -> *mut stack_st_SSL_COMP;
27010}
27011unsafe extern "C" {
27012    #[link_name = "sk_SSL_COMP_sort__extern"]
27013    pub fn sk_SSL_COMP_sort(sk: *mut stack_st_SSL_COMP);
27014}
27015unsafe extern "C" {
27016    #[link_name = "sk_SSL_COMP_sort_and_dedup__extern"]
27017    pub fn sk_SSL_COMP_sort_and_dedup(sk: *mut stack_st_SSL_COMP, free_func: sk_SSL_COMP_free_func);
27018}
27019unsafe extern "C" {
27020    #[link_name = "sk_SSL_COMP_is_sorted__extern"]
27021    pub fn sk_SSL_COMP_is_sorted(sk: *const stack_st_SSL_COMP) -> ::core::ffi::c_int;
27022}
27023unsafe extern "C" {
27024    #[link_name = "sk_SSL_COMP_set_cmp_func__extern"]
27025    pub fn sk_SSL_COMP_set_cmp_func(
27026        sk: *mut stack_st_SSL_COMP,
27027        comp: sk_SSL_COMP_cmp_func,
27028    ) -> sk_SSL_COMP_cmp_func;
27029}
27030unsafe extern "C" {
27031    #[link_name = "sk_SSL_COMP_deep_copy__extern"]
27032    pub fn sk_SSL_COMP_deep_copy(
27033        sk: *const stack_st_SSL_COMP,
27034        copy_func: sk_SSL_COMP_copy_func,
27035        free_func: sk_SSL_COMP_free_func,
27036    ) -> *mut stack_st_SSL_COMP;
27037}
27038unsafe extern "C" {
27039    pub fn SSL_cache_hit(ssl: *mut SSL) -> ::core::ffi::c_int;
27040}
27041unsafe extern "C" {
27042    pub fn SSL_get_default_timeout(ssl: *const SSL) -> ::core::ffi::c_long;
27043}
27044unsafe extern "C" {
27045    pub fn SSL_get_version(ssl: *const SSL) -> *const ::core::ffi::c_char;
27046}
27047unsafe extern "C" {
27048    pub fn SSL_get_all_version_names(out: *mut *const ::core::ffi::c_char, max_out: usize)
27049        -> usize;
27050}
27051unsafe extern "C" {
27052    pub fn SSL_get_cipher_list(
27053        ssl: *const SSL,
27054        n: ::core::ffi::c_int,
27055    ) -> *const ::core::ffi::c_char;
27056}
27057unsafe extern "C" {
27058    pub fn SSL_CTX_set_client_cert_cb(
27059        ctx: *mut SSL_CTX,
27060        cb: ::core::option::Option<
27061            unsafe extern "C" fn(
27062                ssl: *mut SSL,
27063                out_x509: *mut *mut X509,
27064                out_pkey: *mut *mut EVP_PKEY,
27065            ) -> ::core::ffi::c_int,
27066        >,
27067    );
27068}
27069unsafe extern "C" {
27070    pub fn SSL_want(ssl: *const SSL) -> ::core::ffi::c_int;
27071}
27072unsafe extern "C" {
27073    pub fn SSL_get_finished(ssl: *const SSL, buf: *mut ::core::ffi::c_void, count: usize) -> usize;
27074}
27075unsafe extern "C" {
27076    pub fn SSL_get_peer_finished(
27077        ssl: *const SSL,
27078        buf: *mut ::core::ffi::c_void,
27079        count: usize,
27080    ) -> usize;
27081}
27082unsafe extern "C" {
27083    pub fn SSL_alert_type_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
27084}
27085unsafe extern "C" {
27086    pub fn SSL_alert_desc_string(value: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
27087}
27088unsafe extern "C" {
27089    pub fn SSL_state_string(ssl: *const SSL) -> *const ::core::ffi::c_char;
27090}
27091#[repr(C)]
27092#[derive(Debug)]
27093pub struct ssl_conf_ctx_st {
27094    _unused: [u8; 0],
27095}
27096pub type SSL_CONF_CTX = ssl_conf_ctx_st;
27097unsafe extern "C" {
27098    pub fn SSL_state(ssl: *const SSL) -> ::core::ffi::c_int;
27099}
27100unsafe extern "C" {
27101    pub fn SSL_set_shutdown(ssl: *mut SSL, mode: ::core::ffi::c_int);
27102}
27103unsafe extern "C" {
27104    pub fn SSL_CTX_set_tmp_ecdh(ctx: *mut SSL_CTX, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
27105}
27106unsafe extern "C" {
27107    pub fn SSL_set_tmp_ecdh(ssl: *mut SSL, ec_key: *const EC_KEY) -> ::core::ffi::c_int;
27108}
27109unsafe extern "C" {
27110    pub fn SSL_add_dir_cert_subjects_to_stack(
27111        out: *mut stack_st_X509_NAME,
27112        dir: *const ::core::ffi::c_char,
27113    ) -> ::core::ffi::c_int;
27114}
27115unsafe extern "C" {
27116    pub fn SSL_CTX_enable_tls_channel_id(ctx: *mut SSL_CTX) -> ::core::ffi::c_int;
27117}
27118unsafe extern "C" {
27119    pub fn SSL_enable_tls_channel_id(ssl: *mut SSL) -> ::core::ffi::c_int;
27120}
27121unsafe extern "C" {
27122    pub fn BIO_f_ssl() -> *const BIO_METHOD;
27123}
27124unsafe extern "C" {
27125    pub fn BIO_set_ssl(
27126        bio: *mut BIO,
27127        ssl: *mut SSL,
27128        take_owership: ::core::ffi::c_int,
27129    ) -> ::core::ffi::c_long;
27130}
27131unsafe extern "C" {
27132    pub fn SSL_get_session(ssl: *const SSL) -> *mut SSL_SESSION;
27133}
27134unsafe extern "C" {
27135    pub fn SSL_get1_session(ssl: *mut SSL) -> *mut SSL_SESSION;
27136}
27137unsafe extern "C" {
27138    pub fn OPENSSL_init_ssl(
27139        opts: u64,
27140        settings: *const OPENSSL_INIT_SETTINGS,
27141    ) -> ::core::ffi::c_int;
27142}
27143unsafe extern "C" {
27144    pub fn SSL_set_tlsext_status_type(
27145        ssl: *mut SSL,
27146        type_: ::core::ffi::c_int,
27147    ) -> ::core::ffi::c_int;
27148}
27149unsafe extern "C" {
27150    pub fn SSL_get_tlsext_status_type(ssl: *const SSL) -> ::core::ffi::c_int;
27151}
27152unsafe extern "C" {
27153    pub fn SSL_set_tlsext_status_ocsp_resp(
27154        ssl: *mut SSL,
27155        resp: *mut u8,
27156        resp_len: usize,
27157    ) -> ::core::ffi::c_int;
27158}
27159unsafe extern "C" {
27160    pub fn SSL_get_tlsext_status_ocsp_resp(ssl: *const SSL, out: *mut *const u8) -> usize;
27161}
27162unsafe extern "C" {
27163    pub fn SSL_CTX_set_tlsext_status_cb(
27164        ctx: *mut SSL_CTX,
27165        callback: ::core::option::Option<
27166            unsafe extern "C" fn(
27167                ssl: *mut SSL,
27168                arg: *mut ::core::ffi::c_void,
27169            ) -> ::core::ffi::c_int,
27170        >,
27171    ) -> ::core::ffi::c_int;
27172}
27173unsafe extern "C" {
27174    pub fn SSL_CTX_set_tlsext_status_arg(
27175        ctx: *mut SSL_CTX,
27176        arg: *mut ::core::ffi::c_void,
27177    ) -> ::core::ffi::c_int;
27178}
27179unsafe extern "C" {
27180    pub fn SSL_get_curve_id(ssl: *const SSL) -> u16;
27181}
27182unsafe extern "C" {
27183    pub fn SSL_get_curve_name(curve_id: u16) -> *const ::core::ffi::c_char;
27184}
27185unsafe extern "C" {
27186    pub fn SSL_get_all_curve_names(out: *mut *const ::core::ffi::c_char, max_out: usize) -> usize;
27187}
27188unsafe extern "C" {
27189    pub fn SSL_CTX_set1_curves(
27190        ctx: *mut SSL_CTX,
27191        curves: *const ::core::ffi::c_int,
27192        num_curves: usize,
27193    ) -> ::core::ffi::c_int;
27194}
27195unsafe extern "C" {
27196    pub fn SSL_set1_curves(
27197        ssl: *mut SSL,
27198        curves: *const ::core::ffi::c_int,
27199        num_curves: usize,
27200    ) -> ::core::ffi::c_int;
27201}
27202unsafe extern "C" {
27203    pub fn SSL_CTX_set1_curves_list(
27204        ctx: *mut SSL_CTX,
27205        curves: *const ::core::ffi::c_char,
27206    ) -> ::core::ffi::c_int;
27207}
27208unsafe extern "C" {
27209    pub fn SSL_set1_curves_list(
27210        ssl: *mut SSL,
27211        curves: *const ::core::ffi::c_char,
27212    ) -> ::core::ffi::c_int;
27213}
27214unsafe extern "C" {
27215    pub fn SSL_CTX_check_private_key(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27216}
27217unsafe extern "C" {
27218    pub fn SSL_check_private_key(ssl: *const SSL) -> ::core::ffi::c_int;
27219}
27220unsafe extern "C" {
27221    pub fn SSL_CTX_get_security_level(ctx: *const SSL_CTX) -> ::core::ffi::c_int;
27222}
27223unsafe extern "C" {
27224    pub fn SSL_CTX_set0_buffer_pool(ctx: *mut SSL_CTX, pool: *mut CRYPTO_BUFFER_POOL);
27225}
27226pub const ssl_compliance_policy_t_ssl_compliance_policy_none: ssl_compliance_policy_t = 0;
27227pub const ssl_compliance_policy_t_ssl_compliance_policy_fips_202205: ssl_compliance_policy_t = 1;
27228pub const ssl_compliance_policy_t_ssl_compliance_policy_wpa3_192_202304: ssl_compliance_policy_t =
27229    2;
27230pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa_202407: ssl_compliance_policy_t = 3;
27231pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa1_202603: ssl_compliance_policy_t = 4;
27232pub const ssl_compliance_policy_t_ssl_compliance_policy_cnsa2_202603: ssl_compliance_policy_t = 5;
27233pub type ssl_compliance_policy_t = ::core::ffi::c_uint;
27234unsafe extern "C" {
27235    pub fn SSL_CTX_set_compliance_policy(
27236        ctx: *mut SSL_CTX,
27237        policy: ssl_compliance_policy_t,
27238    ) -> ::core::ffi::c_int;
27239}
27240unsafe extern "C" {
27241    pub fn SSL_CTX_get_compliance_policy(ctx: *const SSL_CTX) -> ssl_compliance_policy_t;
27242}
27243unsafe extern "C" {
27244    pub fn SSL_set_compliance_policy(
27245        ssl: *mut SSL,
27246        policy: ssl_compliance_policy_t,
27247    ) -> ::core::ffi::c_int;
27248}
27249unsafe extern "C" {
27250    pub fn SSL_get_compliance_policy(ssl: *const SSL) -> ssl_compliance_policy_t;
27251}
27252unsafe extern "C" {
27253    pub fn SSL_set_server_padding_request(ssl: *mut SSL, num_bytes: u16);
27254}
27255unsafe extern "C" {
27256    pub fn SSL_set_server_padding_enabled(ssl: *mut SSL, enabled: ::core::ffi::c_int);
27257}
27258unsafe extern "C" {
27259    pub fn SSL_server_sent_requested_padding(ssl: *const SSL) -> ::core::ffi::c_int;
27260}
27261unsafe extern "C" {
27262    pub fn CRYPTO_tls1_prf(
27263        digest: *const EVP_MD,
27264        out: *mut u8,
27265        out_len: usize,
27266        secret: *const u8,
27267        secret_len: usize,
27268        label: *const u8,
27269        label_len: usize,
27270        seed1: *const u8,
27271        seed1_len: usize,
27272        seed2: *const u8,
27273        seed2_len: usize,
27274    ) -> ::core::ffi::c_int;
27275}
27276unsafe extern "C" {
27277    pub fn TRUST_TOKEN_experiment_v1() -> *const TRUST_TOKEN_METHOD;
27278}
27279unsafe extern "C" {
27280    pub fn TRUST_TOKEN_experiment_v2_voprf() -> *const TRUST_TOKEN_METHOD;
27281}
27282unsafe extern "C" {
27283    pub fn TRUST_TOKEN_experiment_v2_pmb() -> *const TRUST_TOKEN_METHOD;
27284}
27285unsafe extern "C" {
27286    pub fn TRUST_TOKEN_pst_v1_voprf() -> *const TRUST_TOKEN_METHOD;
27287}
27288unsafe extern "C" {
27289    pub fn TRUST_TOKEN_pst_v1_pmb() -> *const TRUST_TOKEN_METHOD;
27290}
27291#[repr(C)]
27292#[derive(Debug, Copy, Clone)]
27293pub struct trust_token_st {
27294    pub data: *mut u8,
27295    pub len: usize,
27296}
27297#[repr(C)]
27298#[derive(Debug)]
27299pub struct stack_st_TRUST_TOKEN {
27300    _unused: [u8; 0],
27301}
27302pub type sk_TRUST_TOKEN_free_func =
27303    ::core::option::Option<unsafe extern "C" fn(arg1: *mut TRUST_TOKEN)>;
27304pub type sk_TRUST_TOKEN_copy_func =
27305    ::core::option::Option<unsafe extern "C" fn(arg1: *const TRUST_TOKEN) -> *mut TRUST_TOKEN>;
27306pub type sk_TRUST_TOKEN_cmp_func = ::core::option::Option<
27307    unsafe extern "C" fn(
27308        arg1: *const *const TRUST_TOKEN,
27309        arg2: *const *const TRUST_TOKEN,
27310    ) -> ::core::ffi::c_int,
27311>;
27312pub type sk_TRUST_TOKEN_delete_if_func = ::core::option::Option<
27313    unsafe extern "C" fn(
27314        arg1: *mut TRUST_TOKEN,
27315        arg2: *mut ::core::ffi::c_void,
27316    ) -> ::core::ffi::c_int,
27317>;
27318unsafe extern "C" {
27319    #[link_name = "sk_TRUST_TOKEN_call_free_func__extern"]
27320    pub fn sk_TRUST_TOKEN_call_free_func(
27321        free_func: OPENSSL_sk_free_func,
27322        ptr: *mut ::core::ffi::c_void,
27323    );
27324}
27325unsafe extern "C" {
27326    #[link_name = "sk_TRUST_TOKEN_call_copy_func__extern"]
27327    pub fn sk_TRUST_TOKEN_call_copy_func(
27328        copy_func: OPENSSL_sk_copy_func,
27329        ptr: *const ::core::ffi::c_void,
27330    ) -> *mut ::core::ffi::c_void;
27331}
27332unsafe extern "C" {
27333    #[link_name = "sk_TRUST_TOKEN_call_cmp_func__extern"]
27334    pub fn sk_TRUST_TOKEN_call_cmp_func(
27335        cmp_func: OPENSSL_sk_cmp_func,
27336        a: *const ::core::ffi::c_void,
27337        b: *const ::core::ffi::c_void,
27338    ) -> ::core::ffi::c_int;
27339}
27340unsafe extern "C" {
27341    #[link_name = "sk_TRUST_TOKEN_call_delete_if_func__extern"]
27342    pub fn sk_TRUST_TOKEN_call_delete_if_func(
27343        func: OPENSSL_sk_delete_if_func,
27344        obj: *mut ::core::ffi::c_void,
27345        data: *mut ::core::ffi::c_void,
27346    ) -> ::core::ffi::c_int;
27347}
27348unsafe extern "C" {
27349    #[link_name = "sk_TRUST_TOKEN_new__extern"]
27350    pub fn sk_TRUST_TOKEN_new(comp: sk_TRUST_TOKEN_cmp_func) -> *mut stack_st_TRUST_TOKEN;
27351}
27352unsafe extern "C" {
27353    #[link_name = "sk_TRUST_TOKEN_new_null__extern"]
27354    pub fn sk_TRUST_TOKEN_new_null() -> *mut stack_st_TRUST_TOKEN;
27355}
27356unsafe extern "C" {
27357    #[link_name = "sk_TRUST_TOKEN_num__extern"]
27358    pub fn sk_TRUST_TOKEN_num(sk: *const stack_st_TRUST_TOKEN) -> usize;
27359}
27360unsafe extern "C" {
27361    #[link_name = "sk_TRUST_TOKEN_zero__extern"]
27362    pub fn sk_TRUST_TOKEN_zero(sk: *mut stack_st_TRUST_TOKEN);
27363}
27364unsafe extern "C" {
27365    #[link_name = "sk_TRUST_TOKEN_value__extern"]
27366    pub fn sk_TRUST_TOKEN_value(sk: *const stack_st_TRUST_TOKEN, i: usize) -> *mut TRUST_TOKEN;
27367}
27368unsafe extern "C" {
27369    #[link_name = "sk_TRUST_TOKEN_set__extern"]
27370    pub fn sk_TRUST_TOKEN_set(
27371        sk: *mut stack_st_TRUST_TOKEN,
27372        i: usize,
27373        p: *mut TRUST_TOKEN,
27374    ) -> *mut TRUST_TOKEN;
27375}
27376unsafe extern "C" {
27377    #[link_name = "sk_TRUST_TOKEN_free__extern"]
27378    pub fn sk_TRUST_TOKEN_free(sk: *mut stack_st_TRUST_TOKEN);
27379}
27380unsafe extern "C" {
27381    #[link_name = "sk_TRUST_TOKEN_pop_free__extern"]
27382    pub fn sk_TRUST_TOKEN_pop_free(
27383        sk: *mut stack_st_TRUST_TOKEN,
27384        free_func: sk_TRUST_TOKEN_free_func,
27385    );
27386}
27387unsafe extern "C" {
27388    #[link_name = "sk_TRUST_TOKEN_insert__extern"]
27389    pub fn sk_TRUST_TOKEN_insert(
27390        sk: *mut stack_st_TRUST_TOKEN,
27391        p: *mut TRUST_TOKEN,
27392        where_: usize,
27393    ) -> usize;
27394}
27395unsafe extern "C" {
27396    #[link_name = "sk_TRUST_TOKEN_delete__extern"]
27397    pub fn sk_TRUST_TOKEN_delete(sk: *mut stack_st_TRUST_TOKEN, where_: usize) -> *mut TRUST_TOKEN;
27398}
27399unsafe extern "C" {
27400    #[link_name = "sk_TRUST_TOKEN_delete_ptr__extern"]
27401    pub fn sk_TRUST_TOKEN_delete_ptr(
27402        sk: *mut stack_st_TRUST_TOKEN,
27403        p: *const TRUST_TOKEN,
27404    ) -> *mut TRUST_TOKEN;
27405}
27406unsafe extern "C" {
27407    #[link_name = "sk_TRUST_TOKEN_delete_if__extern"]
27408    pub fn sk_TRUST_TOKEN_delete_if(
27409        sk: *mut stack_st_TRUST_TOKEN,
27410        func: sk_TRUST_TOKEN_delete_if_func,
27411        data: *mut ::core::ffi::c_void,
27412    );
27413}
27414unsafe extern "C" {
27415    #[link_name = "sk_TRUST_TOKEN_find__extern"]
27416    pub fn sk_TRUST_TOKEN_find(
27417        sk: *const stack_st_TRUST_TOKEN,
27418        out_index: *mut usize,
27419        p: *const TRUST_TOKEN,
27420    ) -> ::core::ffi::c_int;
27421}
27422unsafe extern "C" {
27423    #[link_name = "sk_TRUST_TOKEN_shift__extern"]
27424    pub fn sk_TRUST_TOKEN_shift(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27425}
27426unsafe extern "C" {
27427    #[link_name = "sk_TRUST_TOKEN_push__extern"]
27428    pub fn sk_TRUST_TOKEN_push(sk: *mut stack_st_TRUST_TOKEN, p: *mut TRUST_TOKEN) -> usize;
27429}
27430unsafe extern "C" {
27431    #[link_name = "sk_TRUST_TOKEN_pop__extern"]
27432    pub fn sk_TRUST_TOKEN_pop(sk: *mut stack_st_TRUST_TOKEN) -> *mut TRUST_TOKEN;
27433}
27434unsafe extern "C" {
27435    #[link_name = "sk_TRUST_TOKEN_dup__extern"]
27436    pub fn sk_TRUST_TOKEN_dup(sk: *const stack_st_TRUST_TOKEN) -> *mut stack_st_TRUST_TOKEN;
27437}
27438unsafe extern "C" {
27439    #[link_name = "sk_TRUST_TOKEN_sort__extern"]
27440    pub fn sk_TRUST_TOKEN_sort(sk: *mut stack_st_TRUST_TOKEN);
27441}
27442unsafe extern "C" {
27443    #[link_name = "sk_TRUST_TOKEN_sort_and_dedup__extern"]
27444    pub fn sk_TRUST_TOKEN_sort_and_dedup(
27445        sk: *mut stack_st_TRUST_TOKEN,
27446        free_func: sk_TRUST_TOKEN_free_func,
27447    );
27448}
27449unsafe extern "C" {
27450    #[link_name = "sk_TRUST_TOKEN_is_sorted__extern"]
27451    pub fn sk_TRUST_TOKEN_is_sorted(sk: *const stack_st_TRUST_TOKEN) -> ::core::ffi::c_int;
27452}
27453unsafe extern "C" {
27454    #[link_name = "sk_TRUST_TOKEN_set_cmp_func__extern"]
27455    pub fn sk_TRUST_TOKEN_set_cmp_func(
27456        sk: *mut stack_st_TRUST_TOKEN,
27457        comp: sk_TRUST_TOKEN_cmp_func,
27458    ) -> sk_TRUST_TOKEN_cmp_func;
27459}
27460unsafe extern "C" {
27461    #[link_name = "sk_TRUST_TOKEN_deep_copy__extern"]
27462    pub fn sk_TRUST_TOKEN_deep_copy(
27463        sk: *const stack_st_TRUST_TOKEN,
27464        copy_func: sk_TRUST_TOKEN_copy_func,
27465        free_func: sk_TRUST_TOKEN_free_func,
27466    ) -> *mut stack_st_TRUST_TOKEN;
27467}
27468unsafe extern "C" {
27469    pub fn TRUST_TOKEN_new(data: *const u8, len: usize) -> *mut TRUST_TOKEN;
27470}
27471unsafe extern "C" {
27472    pub fn TRUST_TOKEN_free(token: *mut TRUST_TOKEN);
27473}
27474unsafe extern "C" {
27475    pub fn TRUST_TOKEN_generate_key(
27476        method: *const TRUST_TOKEN_METHOD,
27477        out_priv_key: *mut u8,
27478        out_priv_key_len: *mut usize,
27479        max_priv_key_len: usize,
27480        out_pub_key: *mut u8,
27481        out_pub_key_len: *mut usize,
27482        max_pub_key_len: usize,
27483        id: u32,
27484    ) -> ::core::ffi::c_int;
27485}
27486unsafe extern "C" {
27487    pub fn TRUST_TOKEN_derive_key_from_secret(
27488        method: *const TRUST_TOKEN_METHOD,
27489        out_priv_key: *mut u8,
27490        out_priv_key_len: *mut usize,
27491        max_priv_key_len: usize,
27492        out_pub_key: *mut u8,
27493        out_pub_key_len: *mut usize,
27494        max_pub_key_len: usize,
27495        id: u32,
27496        secret: *const u8,
27497        secret_len: usize,
27498    ) -> ::core::ffi::c_int;
27499}
27500unsafe extern "C" {
27501    pub fn TRUST_TOKEN_CLIENT_new(
27502        method: *const TRUST_TOKEN_METHOD,
27503        max_batchsize: usize,
27504    ) -> *mut TRUST_TOKEN_CLIENT;
27505}
27506unsafe extern "C" {
27507    pub fn TRUST_TOKEN_CLIENT_free(ctx: *mut TRUST_TOKEN_CLIENT);
27508}
27509unsafe extern "C" {
27510    pub fn TRUST_TOKEN_CLIENT_dup_for_testing(
27511        ctx: *const TRUST_TOKEN_CLIENT,
27512    ) -> *mut TRUST_TOKEN_CLIENT;
27513}
27514unsafe extern "C" {
27515    pub fn TRUST_TOKEN_CLIENT_add_key(
27516        ctx: *mut TRUST_TOKEN_CLIENT,
27517        out_key_index: *mut usize,
27518        key: *const u8,
27519        key_len: usize,
27520    ) -> ::core::ffi::c_int;
27521}
27522unsafe extern "C" {
27523    pub fn TRUST_TOKEN_CLIENT_set_srr_key(
27524        ctx: *mut TRUST_TOKEN_CLIENT,
27525        key: *mut EVP_PKEY,
27526    ) -> ::core::ffi::c_int;
27527}
27528unsafe extern "C" {
27529    pub fn TRUST_TOKEN_CLIENT_begin_issuance(
27530        ctx: *mut TRUST_TOKEN_CLIENT,
27531        out: *mut *mut u8,
27532        out_len: *mut usize,
27533        count: usize,
27534    ) -> ::core::ffi::c_int;
27535}
27536unsafe extern "C" {
27537    pub fn TRUST_TOKEN_CLIENT_begin_issuance_over_message(
27538        ctx: *mut TRUST_TOKEN_CLIENT,
27539        out: *mut *mut u8,
27540        out_len: *mut usize,
27541        count: usize,
27542        msg: *const u8,
27543        msg_len: usize,
27544    ) -> ::core::ffi::c_int;
27545}
27546unsafe extern "C" {
27547    pub fn TRUST_TOKEN_CLIENT_finish_issuance(
27548        ctx: *mut TRUST_TOKEN_CLIENT,
27549        out_key_index: *mut usize,
27550        response: *const u8,
27551        response_len: usize,
27552    ) -> *mut stack_st_TRUST_TOKEN;
27553}
27554unsafe extern "C" {
27555    pub fn TRUST_TOKEN_CLIENT_begin_redemption(
27556        ctx: *mut TRUST_TOKEN_CLIENT,
27557        out: *mut *mut u8,
27558        out_len: *mut usize,
27559        token: *const TRUST_TOKEN,
27560        data: *const u8,
27561        data_len: usize,
27562        time: u64,
27563    ) -> ::core::ffi::c_int;
27564}
27565unsafe extern "C" {
27566    pub fn TRUST_TOKEN_CLIENT_finish_redemption(
27567        ctx: *mut TRUST_TOKEN_CLIENT,
27568        out_rr: *mut *mut u8,
27569        out_rr_len: *mut usize,
27570        out_sig: *mut *mut u8,
27571        out_sig_len: *mut usize,
27572        response: *const u8,
27573        response_len: usize,
27574    ) -> ::core::ffi::c_int;
27575}
27576unsafe extern "C" {
27577    pub fn TRUST_TOKEN_ISSUER_new(
27578        method: *const TRUST_TOKEN_METHOD,
27579        max_batchsize: usize,
27580    ) -> *mut TRUST_TOKEN_ISSUER;
27581}
27582unsafe extern "C" {
27583    pub fn TRUST_TOKEN_ISSUER_free(ctx: *mut TRUST_TOKEN_ISSUER);
27584}
27585unsafe extern "C" {
27586    pub fn TRUST_TOKEN_ISSUER_add_key(
27587        ctx: *mut TRUST_TOKEN_ISSUER,
27588        key: *const u8,
27589        key_len: usize,
27590    ) -> ::core::ffi::c_int;
27591}
27592unsafe extern "C" {
27593    pub fn TRUST_TOKEN_ISSUER_set_srr_key(
27594        ctx: *mut TRUST_TOKEN_ISSUER,
27595        key: *mut EVP_PKEY,
27596    ) -> ::core::ffi::c_int;
27597}
27598unsafe extern "C" {
27599    pub fn TRUST_TOKEN_ISSUER_issue(
27600        ctx: *const TRUST_TOKEN_ISSUER,
27601        out: *mut *mut u8,
27602        out_len: *mut usize,
27603        out_tokens_issued: *mut usize,
27604        request: *const u8,
27605        request_len: usize,
27606        public_metadata: u32,
27607        private_metadata: u8,
27608        max_issuance: usize,
27609    ) -> ::core::ffi::c_int;
27610}
27611unsafe extern "C" {
27612    pub fn TRUST_TOKEN_ISSUER_redeem(
27613        ctx: *const TRUST_TOKEN_ISSUER,
27614        out_public: *mut u32,
27615        out_private: *mut u8,
27616        out_token: *mut *mut TRUST_TOKEN,
27617        out_client_data: *mut *mut u8,
27618        out_client_data_len: *mut usize,
27619        request: *const u8,
27620        request_len: usize,
27621    ) -> ::core::ffi::c_int;
27622}
27623unsafe extern "C" {
27624    pub fn TRUST_TOKEN_ISSUER_redeem_over_message(
27625        ctx: *const TRUST_TOKEN_ISSUER,
27626        out_public: *mut u32,
27627        out_private: *mut u8,
27628        out_token: *mut *mut TRUST_TOKEN,
27629        out_client_data: *mut *mut u8,
27630        out_client_data_len: *mut usize,
27631        request: *const u8,
27632        request_len: usize,
27633        msg: *const u8,
27634        msg_len: usize,
27635    ) -> ::core::ffi::c_int;
27636}
27637unsafe extern "C" {
27638    pub fn TRUST_TOKEN_decode_private_metadata(
27639        method: *const TRUST_TOKEN_METHOD,
27640        out_value: *mut u8,
27641        key: *const u8,
27642        key_len: usize,
27643        nonce: *const u8,
27644        nonce_len: usize,
27645        encrypted_bit: u8,
27646    ) -> ::core::ffi::c_int;
27647}
27648pub type __builtin_va_list = [__va_list_tag; 1usize];
27649#[repr(C)]
27650#[derive(Debug, Copy, Clone)]
27651pub struct __va_list_tag {
27652    pub gp_offset: ::core::ffi::c_uint,
27653    pub fp_offset: ::core::ffi::c_uint,
27654    pub overflow_arg_area: *mut ::core::ffi::c_void,
27655    pub reg_save_area: *mut ::core::ffi::c_void,
27656}
27657#[repr(C)]
27658#[derive(Debug, Copy, Clone)]
27659pub struct CRYPTO_dynlock_value {
27660    pub _address: u8,
27661}
27662
27663// LINT.ThenChange(
27664//    //third_party/boringssl/src/include/openssl/aead.h |
27665//    //third_party/boringssl/src/include/openssl/aes.h |
27666//    //third_party/boringssl/src/include/openssl/asn1.h |
27667//    //third_party/boringssl/src/include/openssl/asn1t.h |
27668//    //third_party/boringssl/src/include/openssl/base.h |
27669//    //third_party/boringssl/src/include/openssl/base64.h |
27670//    //third_party/boringssl/src/include/openssl/bio.h |
27671//    //third_party/boringssl/src/include/openssl/blake2.h |
27672//    //third_party/boringssl/src/include/openssl/blowfish.h |
27673//    //third_party/boringssl/src/include/openssl/bn.h |
27674//    //third_party/boringssl/src/include/openssl/buf.h |
27675//    //third_party/boringssl/src/include/openssl/buffer.h |
27676//    //third_party/boringssl/src/include/openssl/bytestring.h |
27677//    //third_party/boringssl/src/include/openssl/cast.h |
27678//    //third_party/boringssl/src/include/openssl/chacha.h |
27679//    //third_party/boringssl/src/include/openssl/cipher.h |
27680//    //third_party/boringssl/src/include/openssl/cmac.h |
27681//    //third_party/boringssl/src/include/openssl/conf.h |
27682//    //third_party/boringssl/src/include/openssl/cpu.h |
27683//    //third_party/boringssl/src/include/openssl/crypto.h |
27684//    //third_party/boringssl/src/include/openssl/ctrdrbg.h |
27685//    //third_party/boringssl/src/include/openssl/curve25519.h |
27686//    //third_party/boringssl/src/include/openssl/des.h |
27687//    //third_party/boringssl/src/include/openssl/dh.h |
27688//    //third_party/boringssl/src/include/openssl/digest.h |
27689//    //third_party/boringssl/src/include/openssl/dsa.h |
27690//    //third_party/boringssl/src/include/openssl/dtls1.h |
27691//    //third_party/boringssl/src/include/openssl/e_os2.h |
27692//    //third_party/boringssl/src/include/openssl/ec.h |
27693//    //third_party/boringssl/src/include/openssl/ec_key.h |
27694//    //third_party/boringssl/src/include/openssl/ecdh.h |
27695//    //third_party/boringssl/src/include/openssl/ecdsa.h |
27696//    //third_party/boringssl/src/include/openssl/engine.h |
27697//    //third_party/boringssl/src/include/openssl/err.h |
27698//    //third_party/boringssl/src/include/openssl/evp.h |
27699//    //third_party/boringssl/src/include/openssl/evp_errors.h |
27700//    //third_party/boringssl/src/include/openssl/ex_data.h |
27701//    //third_party/boringssl/src/include/openssl/hkdf.h |
27702//    //third_party/boringssl/src/include/openssl/hmac.h |
27703//    //third_party/boringssl/src/include/openssl/hpke.h |
27704//    //third_party/boringssl/src/include/openssl/hrss.h |
27705//    //third_party/boringssl/src/include/openssl/is_boringssl.h |
27706//    //third_party/boringssl/src/include/openssl/kdf.h |
27707//    //third_party/boringssl/src/include/openssl/lhash.h |
27708//    //third_party/boringssl/src/include/openssl/md4.h |
27709//    //third_party/boringssl/src/include/openssl/md5.h |
27710//    //third_party/boringssl/src/include/openssl/mem.h |
27711//    //third_party/boringssl/src/include/openssl/mldsa.h |
27712//    //third_party/boringssl/src/include/openssl/mlkem.h |
27713//    //third_party/boringssl/src/include/openssl/nid.h |
27714//    //third_party/boringssl/src/include/openssl/obj.h |
27715//    //third_party/boringssl/src/include/openssl/obj_mac.h |
27716//    //third_party/boringssl/src/include/openssl/objects.h |
27717//    //third_party/boringssl/src/include/openssl/opensslconf.h |
27718//    //third_party/boringssl/src/include/openssl/opensslv.h |
27719//    //third_party/boringssl/src/include/openssl/ossl_typ.h |
27720//    //third_party/boringssl/src/include/openssl/pem.h |
27721//    //third_party/boringssl/src/include/openssl/pkcs12.h |
27722//    //third_party/boringssl/src/include/openssl/pkcs7.h |
27723//    //third_party/boringssl/src/include/openssl/pkcs8.h |
27724//    //third_party/boringssl/src/include/openssl/poly1305.h |
27725//    //third_party/boringssl/src/include/openssl/pool.h |
27726//    //third_party/boringssl/src/include/openssl/rand.h |
27727//    //third_party/boringssl/src/include/openssl/rc4.h |
27728//    //third_party/boringssl/src/include/openssl/ripemd.h |
27729//    //third_party/boringssl/src/include/openssl/rsa.h |
27730//    //third_party/boringssl/src/include/openssl/safestack.h |
27731//    //third_party/boringssl/src/include/openssl/sha.h |
27732//    //third_party/boringssl/src/include/openssl/sha2.h |
27733//    //third_party/boringssl/src/include/openssl/siphash.h |
27734//    //third_party/boringssl/src/include/openssl/slhdsa.h |
27735//    //third_party/boringssl/src/include/openssl/span.h |
27736//    //third_party/boringssl/src/include/openssl/srtp.h |
27737//    //third_party/boringssl/src/include/openssl/ssl.h |
27738//    //third_party/boringssl/src/include/openssl/ssl3.h |
27739//    //third_party/boringssl/src/include/openssl/stack.h |
27740//    //third_party/boringssl/src/include/openssl/target.h |
27741//    //third_party/boringssl/src/include/openssl/thread.h |
27742//    //third_party/boringssl/src/include/openssl/tls1.h |
27743//    //third_party/boringssl/src/include/openssl/tls_prf.h |
27744//    //third_party/boringssl/src/include/openssl/trust_token.h |
27745//    //third_party/boringssl/src/include/openssl/x509.h |
27746//    //third_party/boringssl/src/include/openssl/x509_vfy.h |
27747//    //third_party/boringssl/src/include/openssl/x509v3.h |
27748//    //third_party/boringssl/src/include/openssl/x509v3_errors.h |
27749//    //third_party/boringssl/src/rust/bssl-sys/wrapper.h
27750//)